電子硬件設計發(fā)生了一場悄無聲息的革命。隨著硅集成的繼續(xù)(由摩爾定律的經(jīng)濟學提供),工程師逐漸從主要在組件和電路級別開發(fā)轉向更多地使用電路板、模塊和子系統(tǒng)。
好處是電子設計效率的顯著提高。這種轉變現(xiàn)在正在軟件中復制,開發(fā)人員希望更多地使用可重用模塊,而不是主要依賴他們自己編寫的代碼行。
轉向模塊化設計有很多優(yōu)勢。一個是更大的能力分享規(guī)模經(jīng)濟,這些經(jīng)濟來自于使用吸引許多客戶的平臺。工業(yè)用戶在模塊化硬件方面有著悠久的歷史。Versa Module Eurocard (VME) 和 CompactPCI 標準為在小批量市場中工作的集成商和原始設備制造商 (OEM) 提供了使用高性能計算的能力。他們可以對計算機的功能進行更廣泛的定制,而無需在高端印刷電路板(PCB)設計上投入時間和精力。從那時起,摩爾定律在功能方面取得了令人難以置信的收益,同時還降低了單個零件的成本。Raspberry Pi單板計算機就是一個關鍵的例子。
經(jīng)濟高效的現(xiàn)成硬件
通過利用智能手機片上系統(tǒng)(SoC)平臺帶來的規(guī)模經(jīng)濟,Raspberry Pi背后的財團已經(jīng)能夠提供比最初為教育用途創(chuàng)建的設計更有效的產(chǎn)品。硅供應商產(chǎn)生的非經(jīng)常性工程(NRE)成本很容易被主要目標市場吸收,為Raspberry Pi的目標用戶提供了更大的價值。這種成本優(yōu)勢被傳遞給了工業(yè)部門。集成商和原始設備制造商利用了樹莓派平臺的模塊化,使用 HAT 擴展總線添加自己的自定義接口模塊。
Pi 模塊的使用使工程團隊不必采購類似的組件并將其設計到定制 PCB 上。與創(chuàng)建前端 HAT 模塊相比,這些通常需要更耗時的信號完整性和功能檢查。很多時候, 這些定制模塊可以使用相對簡單的兩層或四層 PCB.
現(xiàn)成軟件模塊的出現(xiàn)
模塊化軟件的類似趨勢已經(jīng)出現(xiàn)。工程師現(xiàn)在可以完全專注于可以增加價值的應用程序元素。這一趨勢不僅受到規(guī)模經(jīng)濟和一些供應商有效攤銷NRE的能力的推動,還受到網(wǎng)絡集成和服務驅動型商業(yè)模式的更大趨勢的推動。嵌入式系統(tǒng)在今天通常不完整,除非它構成更大的系統(tǒng)系統(tǒng)的一部分,例如物聯(lián)網(wǎng)(IoT)。在此環(huán)境中,設備可用于幫助提供一項或多項服務 - 其中許多服務將在用于支持它們的硬件的生命周期內(nèi)更改。物聯(lián)網(wǎng)和云的這種結合正在產(chǎn)生利用這些功能的新商業(yè)模式,例如軟件即服務(SaaS)和按使用付費。靈活性已成為這種商業(yè)環(huán)境中的一個關鍵標準:推動實施者尋求更多的模塊化結構。
模塊化始于操作系統(tǒng)。操作系統(tǒng)支持對構建靈活的模塊化環(huán)境至關重要的抽象。通常,操作系統(tǒng)提供一組服務,范圍從簡單的輸入/輸出到完整的網(wǎng)絡堆棧,所有這些都通過一組記錄的應用程序編程接口 (API) 進行訪問。只要服務繼續(xù)支持 API,交付它們的代碼就可以更改,而不會影響使用這些 API 的應用程序。對于隨許多微控制器開發(fā)工具一起提供的簡單實時調(diào)度程序FreeRTOS[1]也是如此,因為它適用于商業(yè)和更復雜的RTOS實現(xiàn),例如Wind River的VxWorks[2]。VxWorks為嵌入式操作系統(tǒng)設定了行業(yè)標準,為一些最關鍵的基礎設施和設備提供支持。
Linux 和其他操作系統(tǒng)可以通過將任務彼此隔離來使內(nèi)存管理走得更遠。簡單 RTOS 結構的一個可能問題是它們在完全未分區(qū)的內(nèi)存空間中運行。一個任務中的錯誤或惡意行為可能導致數(shù)據(jù)和代碼在另一個任務中被意外覆蓋,從而導致系統(tǒng)崩潰或其他不良結果。Linux 使用由硬件內(nèi)存管理單元調(diào)解的虛擬尋址來防止任務訪問彼此的內(nèi)存空間。它們只能通過操作系統(tǒng) API 或基于這些 API 構建的應用程序間協(xié)議進行交互。
虛擬內(nèi)存尋址不是任務隔離的絕對要求。一些微控制器架構,包括Arm Cortex-M和Cortex-R系列的幾個成員,可以在平面內(nèi)存空間中實施內(nèi)存保護。Arm 還在其許多處理器中提供了 Trustzone 安全軟件模式,這使得將敏感軟件與用戶級任務隔離開來成為可能。有了這種保護,就可以更輕松地將自定義代碼與為處理常見任務而開發(fā)的越來越多的現(xiàn)成軟件模塊相結合。
開源和專有功能的集成
今天,工程師可以通過Github,Sourceforge和其他服務訪問一系列免費的開源軟件模塊和協(xié)議棧。還提供為安全關鍵應用提供更強大支持、附加功能或認證的商用堆棧。芯片制造商組合在一起的參考設計通常會結合一系列開源和專有功能,使客戶更容易構建原型,直至完整的產(chǎn)品實施。在某些情況下,參考設計實現(xiàn)了最終用戶可以根據(jù)自己的需求進行調(diào)整的完整應用程序。
一些系統(tǒng)設計人員正在利用軟件日益模塊化的優(yōu)勢來構建調(diào)整參數(shù)和自動生成代碼的開發(fā)環(huán)境。這些工具通常使用開發(fā)人員在圖形用戶界面上組裝的軟件的基于塊的表示形式。一個例子是Microchip的MPLAB代碼配置器,用于PIC8、PIC16和PIC32微控制器系列。
高級應用程序,如機器學習和圖像處理,是用戶可以從專家的高NRE投資中受益的領域的例子,并且如果用戶必須從頭開始構建,這種軟件將需要多年的開發(fā)時間。Caffe,PyTorch和Google的Tensorflow使構建,訓練和調(diào)整復雜的人工智能(AI)模型成為可能,這些模型可以輕松集成到嵌入式處理管道中。對于圖像處理,OpenCV是一個廣泛使用的庫,可以很容易地集成到實時應用程序中。隨著機器學習的興起,當今越來越普遍的使用模型是OpenCV在傳遞給使用Caffe或Tensorflow構建的AI模型之前預處理圖像數(shù)據(jù),自定義代碼主要用于為模型檢測到的事件提供實時響應。
將一切整合在一起
開發(fā)人員現(xiàn)在可以訪問面向云的軟件模塊和工具,這些模塊和工具可輕松與常見的網(wǎng)絡堆棧和 RTOS 實施集成。這使得不同復雜程度的嵌入式系統(tǒng)能夠集成到物聯(lián)網(wǎng)中。例如,安富利的IoT Connect? Platform[5]為AI等復雜任務提供基于云的處理。由于系統(tǒng)由云和嵌入式設備軟件服務定義,因此Amazon Web Services和Microsoft Azure等云提供商現(xiàn)在提供一系列將兩者結合在一起的產(chǎn)品:所有這些都利用了他們采用的軟件組件的模塊化。
模塊化正在改變嵌入式軟件工程師所需的技能組合。責任的平衡正在從代碼開發(fā)轉向基于預先存在的模塊構建靈活架構的能力,這些模塊允許在部署新服務時輕松自定義編碼和運行時配置。通過利用這種模塊化,原始設備制造商和系統(tǒng)集成商可以輕松跟上客戶需求的步伐,這是傳統(tǒng)方式無法想象的。
審核編輯:郭婷
-
pcb
+關注
關注
4299文章
22792瀏覽量
393538 -
嵌入式
+關注
關注
5046文章
18836瀏覽量
298971 -
soc
+關注
關注
38文章
4031瀏覽量
217105
發(fā)布評論請先 登錄
相關推薦
評論