就像任何開發(fā)領域一樣,嵌入式系統(tǒng)的開發(fā)就像大海一樣:深海洋流相對上較穩(wěn)定,而看似平靜的海面下卻可能暗潮洶涌。冒著可能被淹沒的危險,我想表達的是,當今嵌入式系統(tǒng)的開發(fā)基礎,基本上就跟工程師當年必須在硬聯(lián)機微電腦上撥動套環(huán)開關才能跑程序代碼一樣。就像那些工程師一樣,我們至今仍得嘗試監(jiān)控外部事件,并做出適當?shù)仨憫?。那么,我們?nèi)绾卧诔掷m(xù)變化中求發(fā)展?
從表面上看,用于建構嵌入式系統(tǒng)的硬件、軟件和方法日益精進——或至少有所不同。為了衡量這些變化,《Embedded.com》分別在1999年、2009年和2019年進行了調查,而今借著比較并分析這些調查結果,將有助于一窺過去20年來嵌入式開發(fā)如何演變的縮影。
實際上,每一項調查的問題本身都反映了其中的一部份變化。1999年的調查涉及很多部份,針對交叉編譯程序、面向對象的設計方法以及電路中硬件仿真器出了許多問題,但針對操作系統(tǒng)(OS)方面的討論并不多。到了2009年的調查,排除了這些特定部份的問題,并加入了更多有關多處理器設計、OS以及特定的嵌入式Linux等更多信息,但諸如物聯(lián)網(wǎng)(IoT)和人工智能( AI)之類的主題還沒開始受到任何關注。而在2019年的調查中,包括IoT、AI以及安全性這些主題,才開始顯露更廣泛的興趣和積極運用。
由于在2009年時針對調查方法進行了大幅改變,因此很難比較這幾次調查的細節(jié)。在某些情況下,同樣的一般性問題被延伸為答案不只一個的多重選擇題。這對于任何解釋都增加了不確定性,這在以下的「設計功能」部份更多的討論。此外,調查結果中還缺少1999年的部份調查資料,因此有些部份只能看到2009年和2019年的數(shù)據(jù)。最后,值得注意的是,調查結果的誤差范圍通常在大約3%到6%以上,因此想要詳細加以比較可能極具風險。
嵌入式應用重點和功能
過去十年來,嵌入式設計的主要應用領域有什么改變?盡管工業(yè)和消費領域仍排名前五大重點應用,但汽車和IoT應用有關的設計開始占據(jù)主導地位。或許我們可以說在2009年被稱為數(shù)據(jù)通信(datacomm)的設計,可以包含在2019年的通訊中。
過去二十年來,設計的本質如何變化?1999年的調查列出了將Web技術整合于設計中的多個問題。在研究1999年的調查時,特別有趣的是一點是:有43%的受訪者表示并不打算這么做,但有14%的受訪者表示愿意。我其實并不確定該問題中「Web技術」究竟表示什么,但希望不會有人想把httpd服務器嵌入其系統(tǒng)中。
更廣泛地來看,表2顯示三項關鍵設計功能的演變。唯一真正的變化是連網(wǎng)設計大幅增加,從2000年初約占35%的設計,到2010年時已經(jīng)高達90%以上了。(我認為該調查方法沒注意到連網(wǎng)和無線可能互換,但從加總的統(tǒng)計數(shù)字來看, 2009年和2019年所顯示的連網(wǎng)設計量大致相同。)
同樣地,嵌入式開發(fā)人員打造以電池供電的設計至少長達十年之久了。有時候,業(yè)界會忘記電池供電的設計早在IoT和可穿戴裝置興起之前就已經(jīng)存在。
程序語言
值得注意的是,C/C++并不一定是嵌入式開發(fā)的主要語言。由于每項調查中可能潛藏其他的響應,加上更高性能的處理器崛起,很可能減少了對于組合程序代碼的一些需要。但事實是,只有約37%的項目能按時按期完成——盡管2009年表示希望加速開發(fā)流程,但這個數(shù)字到了2019年也沒有多大的改變。
2009年底,開放原始碼OS開始取代商用OS的使用。到了2019年,這一趨勢仍持續(xù)進展。有趣的是,取代商用OS并不僅僅是因為開源OS的興起??椭?內(nèi)部專有OS的使用率也持續(xù)增加。
處理器架構
過去十年來,32位的處理器架構雖然仍舊在使用中,但64位架構卻有了顯著的進展。可能有人會認為這就是演進的主要趨勢,因為開發(fā)人員不斷地尋求更寬的位寬度(從8位到16位、32位再到64位),以期實現(xiàn)更好的處理器性能以及更高效的內(nèi)存周期(包括指令快取)。
獨立型處理器 vs 多核心處理器
2010年最明顯的趨勢可能就是設計從多處理器芯片精簡為多核心組件——從采用相同處理器的多芯片演變成同質多核心組件,或者是從采用不同處理器的多芯片進展至異質的多核心組件。
選擇處理器的決定性因素
二十年來,決定處理器選擇的主要因素并沒什么改變。軟件開發(fā)工具的可用性仍然是工程師的首選。并不是所有人都情愿在面板上切換機器程序代碼。但有意思的是,從2000年開始以來,熟悉處理器架構不再是最重要的了,成本和IO/周邊裝置功能的重要性也(相對地)在持續(xù)下滑中。
技術挑戰(zhàn)
最后,對于即將到來的技術挑戰(zhàn)之看法有何轉變?如果我們比較2009年和2019年調查中列出的前五大挑戰(zhàn),那么,整合、程序代碼復雜度以及軟件工具仍然是最主要的顧慮。令人玩味的是,過去十年來,人們對于上述在開發(fā)過程的顧慮逐漸消失,取而代之的是開始擔心低功耗和安全性。
因此,對于安全的顧慮以及為了減輕威脅而采取的各種措施,構成了2019年的調查重點。在2009年,只有3%的受訪者認為安全問題很重要。但如同先前提到的,2009年和2019年在按時完成項目的統(tǒng)計相似度較低,顯示2019年對于開發(fā)過程中的顧慮轉變,主要是和更關鍵的問題出現(xiàn)有關。
那么,對于接下來的2020年代,這些結果又意味著什么?
我們可以從這些調查結果中推斷,軟件開發(fā)工具以及管理程序代碼大小等問題仍然很重要,而像性能和外圍裝置等處理器特性的重要性則相對降低些。另一方面,在2020年代,只有少數(shù)的新技術(例如不用編寫程序代碼的開發(fā)工具、量子運算以及支持現(xiàn)場訓練神經(jīng)網(wǎng)絡模型的AI核心等)出現(xiàn),似乎也為設計挑戰(zhàn)帶來了重大轉變。是這樣嗎?
嵌入式系統(tǒng)仍然需要工具來編寫(或產(chǎn)生)程序代碼,而且,對于更復雜的異質多處理器硬件設計而言,也確實需要這么做。這些設計仍然必須連接實體世界,但是,接口的性質可能更進一步發(fā)展,而不僅僅來自硬線接口、傳感器或協(xié)作對等裝置等。未來將會持續(xù)要求更多的功能性,從而需要更先進的硬件提供更高性能以及進一步強化的功能,才能執(zhí)行更復雜的應用。
在即將來臨的下一個十年,嵌入式系統(tǒng)設計仍將需要更有效地連接至數(shù)據(jù)來源,以最低延遲執(zhí)行更復雜的程序代碼,以及克服更復雜的安全威脅,同時還得保持在超低功耗。未來,我們很可能采用全然不同的途徑,但目標將保持不變。
? ? ?責任編輯:tzh
評論
查看更多