本文作者Jack Ganssle為資深嵌入式系統(tǒng)工程師
我最近讀了一本介紹美國馬里蘭州重要支流帕塔普斯科河(Patapsco River)歷史的書,對人類歷史的緩慢進展感到十分驚訝──因為17世紀的農(nóng)人生活感覺跟幾千年前的農(nóng)耕者好像也沒什么不同;對歷史上大多數(shù)的人來說,日常生活與曾曾祖父母其實是大同小異。
直到現(xiàn)在。發(fā)生在18世紀中葉的工業(yè)革命,把人們從農(nóng)地移往工廠,并創(chuàng)造了各式各樣的消費性產(chǎn)品;但大多數(shù)的人們?nèi)匀缓茇毟F。我記得在哪本書上看過,1810年全球有94%的人口處于相當貧困的狀態(tài),該比例在今日只有10%。
我已故的祖母是1898年生的,她在美國紐約曼哈頓(Manhattan)長大;我曾經(jīng)問她那時候她家有沒有電話,她的回答是她只知道有某個住在曼哈頓島那一頭的人家里有電話。而我記得在1950、60年代,長途電話是連絡我爸生意上的緊急狀況,或是通知親友訃告。事實上,那時候在美國是不允許私人擁有電話的,是AT&T (編按:美國第一家電信業(yè)者,被稱為“Ma Bell”)將電話租給消費者,而現(xiàn)在幾乎每個人天天都跟自己的手機形影不離。
在我家,經(jīng)歷了三代人,科技從遙不可及成為日常生活的一部分;別說今日的電子設備與1910、1950甚至是1980年代的設備根本不可同日而語,光是那些以電池驅(qū)動的便攜電腦,在幾年前可能就是很多人不曾想象的。
在1930年代我還是個孩子的時候,接觸到的科技產(chǎn)品是我爸自己做的真空管Heathkit收音機與放大器,是我們家很多年來唯一的音樂來源;我們在1960年那時有了一臺電視機,是黑白的,還常常需要一直調(diào)整水平/垂直同步控制鈕才能顯示畫面。印象中我們有的第一臺晶體管設備,是1960年代中期我自己做的Heathkit對講機。
工程師認真起來就是這么帥氣
我成為工程師的前一年,英特爾(Intel)發(fā)表首顆成功商用的微處理器;那款革命性的8008處理器組件,從很多面向創(chuàng)造了整個嵌入式系統(tǒng)產(chǎn)業(yè)。8008芯片還需要許多其他電子組件的搭配,才能執(zhí)行有用的工作;要有一片布滿邏輯組件的電路板,才能讓它擁有執(zhí)行軟件的能力,而且還需要另一片布滿芯片的板子當作RAM (通常是4KB),以及額外的EPROM來儲存程序。
那時的EPROM是1702,是有一扇石英小窗的256byte (不要懷疑,沒寫錯) ROM (如下圖);將該芯片暴露于紫外光下15分鐘,就能清除內(nèi)部儲存進行重新編程。
我們有一款早期的8008產(chǎn)品需要4KB的程序儲存空間(也就是說要16顆EPROM芯片!),該組件支持浮點線性回歸(floating-point linear regression),并以幾十微秒(microsecond)的速率實時擷取數(shù)據(jù)。以現(xiàn)在的幣值來算,一顆8088 (只有芯片本身)就要價約650美元。
現(xiàn)在,四十多年過去了,軟件程序大小通常是MB (megabyte)等級,單一顆微控制器芯片內(nèi)就可提供完整的運算、內(nèi)存等所有必備功能,而且尺寸小巧。在1970年代初期,5MB的硬盤機一個就要5,000美元(搭配一個抽取式14吋托盤),而現(xiàn)在則是50美元就能買到TB (terabyte)容量的硬盤機。
1970年代的個人計算機
科技領域的改變有多么大!但是很多其他專業(yè)領域并非如此,我有個兄弟是珠寶批發(fā)商,他說他的生意跟四十年前比起來幾乎沒什么變化,除了實體珠寶商店的數(shù)量因為在線購物而減少;我還有另一個兄弟是哲學家,則是利用現(xiàn)代化的工具來闡述古老的思想。
電子工程是一個只有“變化”是永恒不變的領域,有些人聲稱這個領域每兩年會重新改造一次,但這是個只考慮到我們的知識基礎有多少程度維持不變的愚蠢想法。馬克士威定律(Maxwell’s Laws)、克希荷夫定律(Kirchhoff)、笛摩根定律(De Morgan)、晶體管理論…等等許多對我們的工作來說是基礎的科目,跟我們在大學里學的幾乎相同。
但是,技術本身是以令人眼花撩亂的步伐在演進,像是上面那張圖片里的大型主機,現(xiàn)在完全可以塞進比指甲蓋還小的芯片里,而且價格不再是動輒數(shù)百萬美元,今日這些芯片的價格便宜到能拿來當做免費贈品。
要指出我們的技術有哪一些是完全沒變并不容易,就算是最不起眼的電阻,現(xiàn)在是0302薄膜組件;超級電容則能提供好幾法拉的大電容量。而四層PCB曾經(jīng)是難以想象,有數(shù)十層結構的電路板在目前并不罕見;更別說埋孔(buried vias)…誰在四十年前夢想過這種結構?
嵌入式軟件也有改變;在1970年代是匯編語言的天下,C與C++語言則是目前的主流;有人可能會說,C語言自1990年代崛起之后就一直停滯不前,不過韌 體生態(tài)系統(tǒng)與一年前也大不相同。今日人們可以用合理的套件價格取得如圖形用戶界面(GUI)、文件系統(tǒng)…等等好用的軟件組件;有靜態(tài)分析工具能自動糾錯,還有其他工具能產(chǎn)生單元測試。
我們以往在開發(fā)程序、修補二進制代碼時習慣利用紙磁帶(reassembling)來大量儲存以節(jié)省時間,現(xiàn)在則有酷炫的整合開發(fā)環(huán)境(IDE),能以圖形顯示那些任務在何時執(zhí)行,或是從一個以每秒上百萬指令集速度執(zhí)行的處理器擷取追蹤數(shù)據(jù)。
嵌入式系統(tǒng)一直以來都像是小鎮(zhèn)里被忽視的孩子,所有的技術光輝都集中在PC、平板裝置等產(chǎn)品上;要設計平板裝置的SoC芯片,需要行數(shù)以億計的硬件描述語言(HDL),這是驚人的工程成就,但對我來說,更令人興奮的是市面上那些廉價卻能提供迷人性能的32位MCU。
我們正處于歷史的奇異點(singular point),至少在嵌入式技術發(fā)展史上;今日那些既便宜、性能又強的32位MCU,不但內(nèi)建海量存儲器、數(shù)量驚人的周邊,還能具備超低功耗特性,以及各種通訊I/O與基礎功能,正在重新定義我們這個業(yè)務的本質(zhì)。
還有別忘了現(xiàn)在有大量可用的傳感器──以往的陀螺儀組件不但尺寸很大、很耗電、價格也很高,現(xiàn)在只要幾塊錢就買得到;長期以來,市場都渴望能擁有價格超低、能幾年不用換電池,又能將數(shù)據(jù)從各種地方傳輸?shù)街付ㄎ恢玫难b置,相關技術已經(jīng)到位,而且預期我們可以看到一些非??岬漠a(chǎn)品問世。
想想以上這些我在職業(yè)生涯觀察到的種種變化,讓我相信,工程師是這個星球上最棒的職業(yè)!