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