這是我所收藏的兩片關於傳統 8 bits MCU 所作的 Ethernet 版子。
其中那一片用PIC 寫的Daughter Board 好像是一位大學老師送我的...
這兩片Ethernet 版所用的網路晶片都是螃蟹的 RTL 8019AS。
以傳統8051 來作的話,因為系統擴充與資源問題,您就得再外掛SRAM...
那顆SRAM 看LOGO 應該是宇慶的~這家公司不知倒了多久了?!
(當然以現在一般大一點容量的變種的8051 也不用這麼麻煩了啦!)
-----
以下這一片就是用PIC 寫作的...他只是載版,他還需要外接一片Mother Board 。
----
我相信這樣子的作法沒有不對,當然也有他的市場所在...不過呢,大部分都是希望做到
一個簡單的觀念:遠端監控...
從硬體的眼光來看這樣子的應用,您覺得硬體問題大不大?!我覺得還好。
但是我相信軟體Effort 應該不小。尤其是用8 bits MCU 來寫的話...
所以啦,在韌體與軟體端就必須有一些限制:譬如您就搞清楚您要做到TCP/IP 或是要支援
UDP 或是balala....一大堆的...相信寫過的人都應該比我還清楚。以前搞網路晶片的
也都是這樣子熬過來的,只不過,我所認識這些人好像都已經死得死,逃得逃了...
您還記得以前有一家叫 F3 的嗎?!不是偶像團體F4 喔!!...
老闆現在已經轉行改作小系統成品了。(其實他應該是可以退休了吧!)
------
但我相信:現在如果還這麼做的話,應該就找不到工程師來維護這樣子的系統了,
這樣子的故事應該就像您也很難找到單晶片工程師願意寫 6502 程式的道理是一樣的。
所以我才說:不是我們就非得要用 32 bits MCU 不可,這也就是一般傳統 8 bits MCU ,
所碰到系統應用端的問題:簡單的東西,也沒有您值得搞的,難一點的應用您就得
東擠擠,西壓壓的硬是要搞出一個平台,厲不厲害?!
當然厲害啊~我還給您拍拍手啊。............... 但然後呢?!
就像我手上還有那個用8051 組合語言寫的水果盤程式。連那個彈珠台對我小孩子
來說:已經沒有ipad 上的那個水果忍者好玩吧!更不用說什麼憤怒鳥了。
-----
我們就來檢視一般傳統 8 bits MCU 的系統應用問題:
8051 已經使用超過 20 年以上了,學校會教,也有一大堆工程師都會用。
當然的也知道他該用在哪一種系統上。(當然啊,也應該知道什麼東西就不要去硬搞了!)
相容性的供應商一大堆...但對您來說:也就只有那一家而已吧!
然後在大家的努力下,也有很多東西都已經達到他的使用極限了,不管您要用
哪一種變種方法。因為他架構就是長成那樣子了:Code + Data/idata + Xdata。
您的Stack 的深度就也只能在內部SRAM 裡跑來跑去...這一點真的對於要寫一個像樣的
RTOS 真的要很用力寫,還要很小心安排。....如果再不行呢?!大家都一樣:
開始切Bank ...Code 切Bank ,讓您可以玩到 1MBytes ,XData 也可以...就連
Stack Pointer 也可以,只要您硬體上可以保證中斷跳來跳去不打架就可以了。
(Silicon Labs 新版一棵 C8051F 39x/37x 就是標榜加值不加價,硬給您塞了
一大堆周邊,塞到 5 組Timer,又有SPI/I2C/ADC/PWM....但控制上就是需要
定義 Control Register...8051 內部架構就是那個data/idata 加一加就那麼多(256 bytes)。
支援的中斷多~那您的Stack 就得要夠深...怎麼辦?!就開始長的奇奇怪怪了!
他裡面的 Stack 就是用硬體幫您切Bank ...厲害吧...我也只能說:還真辛苦啦!)
---
除了硬體,就回到我們文中所提的,那軟體平台呢?!...以前還有所謂的組合語言的世界。
我們老人家就不要再倚老賣老的扯這一種 "想當年啦...balala....."。
人家就直接跟您說了:您用的開發平台應該就會開始停留在所謂 Keil uVision 3.xx
已經夠用得嚇嚇叫了啦,人家那個 4.xx 是留給 32 bits ARM 的~人家還一天到晚
持續一直在增加支援IC 型號,又開始整合 RTOS 一大堆有的沒有的...
還有的用就要偷笑了啦。您還想跟人家玩那個所謂物件導向的C++?!
人家直接點出一句話: Assembly language skills not common in 21 st Century。
---
講這些,其實講來也讓我們這些LKK 工程師很辛酸,我們何嘗不想多抓住一些機會呢?
但是:真的~在新產品系統需求與開發上,8 bits MCU 真的很難找實際應用市場了。
我講的是那一種Stand alone 的純MCU 系統應用市場...反而就只剩下其他幫人抬轎的
系統應用市場:譬如人家一棵 RF IC 就直接Embedded 一棵 8051 給您用。
(這樣子講起來好像這一種東西,也好像是8051 比較多 PIC Like 比較少喔~...)
或是另外 BlueTooth 4.0 的~也直接奉送一棵 8051 給您。
不過,這樣子講起來~現在就連賣這一種 RF IC 或特殊功能SOC 的~不Embedded
一棵 8051 也不好賣的樣子?!那賣RF IC 不好賣,就連搭配的 Stand alone 的MCU
也不好推了.....
----
下圖是一棵Sub 1GHz RF SOC ... 隨隨便便就跟一般Stand Alone 的8051 還好用。
(就跟我最上那一張8051 + SRAM 的Ethernet 版的8051來比?!)
------
而以下是自從 iPhone 4S 以後支援的 BlueTooth 4.0 (BLE) SOC 。
這應該是一個會很火紅的系統應用標準...
您說TI 沒有自己的MSP430 MCU 嗎?!那他為什麼還要用 8051 呢?!
不好意思~他的程式容量是 128 KBytes...SRAM 是8KBytes!
您現在要特地去找一棵支援128 KBytes 的8051 還不容易耶。(因為還要切BANK...)
(TI 官方網站的牌價是:US$: 1.95~2.25/1K )。還有 256 KBytes 版.......
----
您覺得台灣這些廠商可不可以做?!...答案最大的挑戰還是在於開發平台吧!
因為台灣這些MCU 廠在ISP 或是系統開發平台整合上,過去都喜歡用最便宜、最簡單,
甚至想用偷雞的方法搞...就連那個 JTAG Debug 回路的Gate Count (邏輯閘)數也想省啊。
唉~...您還能說什麼呢?!....
=====
補記: 如果您現在要個TCP/IP 層應用的話,也可以直接引用網路上標準的
程式平台, Based on ARM 的:http://www.keil.com/rl-arm/rl-tcpnet.asp
這種用8051跑TCP/IP的作法小弟之前也玩過...不需要OS,用的是這個瑞典老外寫的uIP:
回覆刪除http://dunkels.com/adam/
不過說實話...功能非常有限,最多只能跑1,2條TCP connection,作作簡單的RS232TCP/IP大概就是他的極限了
從這個連結可以看到,uIP已經變成RTOS contiki的一部分,小弟猜想大概也是覺得沒有OS作這種東西實在太痛苦了... :))
但是呢,Keil 這軟體貴了點,我目前都用 Gnu C 系列來作開發
回覆刪除下回跟老闆講...東省西省,最後還不是得付出代價的啦。
刪除以前我也看過工程師用Gnu C 表演整個開發流程給我看...
是啊~沒錯啊,不需要華麗的GUI 介面,看起來很效率似的,
結果就是整個團隊就在那邊不斷的Try And Error 反覆的搞。
大家都很忙啊...最後表演說明給我看這位工程師今年換工作了,
他說:他寧願去寫寫 8051 算了。 :)) ...
我看GNU C用的很行的人...要不就是學生時代就開始接觸,要不就是研究單位出來...或者天縱英才這種的,不然這對一般工程師來說門檻很高的,光GNU C的版本就讓人眼花撩亂,而且不是光學GNU C就好了,makefile要不要學?而且他還有一堆週邊tool(如autotool, awk, cmake,perl, ruby, python, shell script...),如果您的code有用到這些東西搞不好多少都要學一下
回覆刪除如果想不開自己去build toolchain...那大概今天就不用做事了
如果我是業餘人士或是學生,我當然可以慢慢摸,但是對第一線工程師來說壓力就很大了,因為真正的產品還沒開始作就先被這些tool給搞到累垮,而台灣老闆又特喜歡壓schedule
Keil C跟GNU C我都有用過,我想我講這些話還算公道
如果我讓我選擇的話,我搞不好還是會選8051,要不然選cortex M0,因為很簡單...team work開發軟韌體不是那麼簡單的事,要不團隊裡面每個都是學歷比高經歷比嚇人的,您要這些人聽你的指揮!?要不就是很爛訓練起來痛苦萬分...(簡單來說台灣人在團隊開發軟體這件事上至少落後國外10年以上)
但是讓我一個人單幹的話,我起碼可以在自己的範圍內做好自己的事,也不用在那邊協調來協調過去~ :))
唉~所以說嘛!...以前會搞這些Script file 時,都以為自己
刪除應該多厲害~多專業啊。但是呢?!要真正分析系統效能時?!
反而常常搞不清楚。您說現在大家只是拼功能而已嗎?!
有很多產品基本上,只要大家多看幾次之後,大概您會,我也會了。
那差別在哪?!當然就是拼效能或效率。
您看人家現在IDE Tool 已經整合到什麼地步了:
東西搞到會動,誰不會啊,這一點連大陸都比您搞得更像一回事似的。
只是人家的東西用個幾十年也沒啥大問題,而我們的呢?!
過沒多久就開始自己很心虛的怕這個出包,明天要哪裡要出包?
-----
至於軟體要搞Team Work 的?!我看在國內是很難的啦,
誠如小老弟您常說的:軟體工程師在許多科技公司(大部分都是以賣
硬體為主!),幾乎都是二等公民似的,有時還被當MIS 工程師用。
所以啦~您說的沒錯,可以一個人自己搞定,就一個搞定吧!
至於萬一這一個人離職了後呢?!.....那是老闆自己要擔心的,
新接手工程師更要擔心的。至於我們自己呢?!爽啊! :)) ...
現在韌體工程師動不動都要求碩士以上, 想當年我們以前公司裡高工夜校生就要上陣了 :P
回覆刪除那您就知道現在我們研究所畢業的素質與程度到哪裡了吧!
刪除:)) ... :)) ... :)) ...
我們就不要只怪經濟或政治,有時也要關心一下我們的教育問題。
happosai、賈老師的真老公兩位前輩,小弟資淺算不上什麼經驗豐富的開發人員。的確如兩位所說的,Gcc 系列的確使用上不容易,而我是使用Code Sourcery 內的 CS-make 與 Newlib 搭配自己寫的makefile和Loader Script 來作,撰寫Cortex-M3的程式。但是我抱持的心態是想要脫離商用軟體的掌控而作的,而我的老闆也能夠接受這點。商用軟體固然好,但是用久了是不是會陷入DRAM廠那種「反正別人的設備這麼棒,我只要買來就可以賺錢了」這種心態呢?
回覆刪除我想許多事情也不一定誠如您所說的。當然啊~每一個產業或行業
刪除也不一定就得要拿像DRAM 慘業那一種模式來比較。
我最近有遇到一位園區附近的老闆,他跟我說:他以前也曾經
相信過,只要我們自己肯努力用功,我們也可以做出跟國外的東西一樣好。
(他指的是某一種商用IC ...)結果他前前後後為了配合這些Local 廠商
方案的產品開發。他說幾乎賠了上千萬元是跑不掉的。
所以他現在都很實實在在的抓著我的手說:Chamber ...真的~
聽我的建議,重要的IC 您還是用一線或國外品牌東西,寧願少賺一點,
但至少不會有太多風險啊。
----
您們還記得我最近一兩篇文章中有Show 出一張商業企畫書嗎?!
最後一頁是什麼?一年產品完成設計,兩年量產,三年IPO 前置作業,
四年完成IPO....代表什麼?!這些公司技術團隊只想開公司四年而已。
...四年後呢?!...大家可以去查一查我們很多高科技公司,尤其是
那一種很小公司出身的,搞了幾年,IPO之後,現在都不知道他們還
在幹什麼?!一大堆啊。
當滿街都是這樣子的人一大堆時,您就別奢望會有以前科技新貴
那麼好康的事,會掉到我身上啊! :))
有句話是這麼說的「除了核心競爭力之外其餘都可以外包」,那貴公司的核心競爭力總不會是工具的使用吧?再說怕被商業軟體綁死,那我這麼說好了,您用的那顆cortex-m3也是會phase-out啊,就算找到一顆pin-to-pin的放上去,您能確保一行code都不用改,100%可以正常工作? :))
回覆刪除