嵌入式系統(tǒng)設(shè)計的軟硬件劃分研究
引 言
隨著嵌入式系統(tǒng)規(guī)模不斷增大,功能日益復(fù)雜,傳統(tǒng)“先硬件,后軟件”的設(shè)計方法已經(jīng)無法滿足當(dāng)下要求。國內(nèi)外學(xué)者進(jìn)行了廣泛的研究,提出和發(fā)展了很多軟硬件協(xié)同 設(shè)計方法,如改進(jìn)迭代算法、模擬退火算法、遺傳算法、基于UML 模型分析方法等 [1-2],挖掘系統(tǒng)軟硬件之間的并發(fā)性,達(dá)到性能與成本的最優(yōu)組合。但這些方法的共同缺點是偏重 于理論層面的分析,可操作性差,硬件模塊劃分粒度過大, 且較少考慮軟硬件成本變化、供應(yīng)鏈、研發(fā)周期、可維護(hù)性 等實際因素。
1 軟硬件劃分概述
由于嵌入式系統(tǒng)面臨技術(shù)上的復(fù)雜性和開發(fā)時間上的嚴(yán)格約束,設(shè)計方法已成為影響系統(tǒng)最終成本、性能、可制造性以及研制周期的關(guān)鍵因素。在滿足設(shè)計規(guī)范的前提下,兼顧軟硬件的特點,實現(xiàn)優(yōu)化的軟硬件協(xié)同設(shè)計是解決問題的關(guān)鍵。軟硬件劃分是軟硬件協(xié)同設(shè)計中的關(guān)鍵,其目標(biāo)是根據(jù)系統(tǒng)功能定義和相應(yīng)約束,從整體角度進(jìn)行協(xié)調(diào),獲得一個可滿足系統(tǒng)各方面要求的趨于最優(yōu)的實現(xiàn)方法。
2 去中心化的軟硬件劃分方法
嵌入式系統(tǒng)設(shè)計的關(guān)鍵是軟硬件功能劃分,即確定哪些系統(tǒng)功能由硬件實現(xiàn),哪些功能由軟件實現(xiàn)。硬件一般能夠提供更好的性能,而軟件更容易修改且不占用硬件面積。由于硬件模塊的可配置性、可編程性以及某些軟件功能的硬件化、固件化,當(dāng)下很多功能既能用軟件實現(xiàn),又能用硬件實現(xiàn),軟硬件的界限已經(jīng)不十分明顯 [3],加上近年來軟件即人力成本的提高和硬件價格的降低,這些新變化給系統(tǒng)軟硬件優(yōu)化組合提供了很大的創(chuàng)新操作空間。
基于上述原因,本文突破軟硬件劃分的固有模式,提出一種“去中心化”的軟硬件劃分方法?!叭ブ行幕笔侵笇⒐δ?、資源從一個中心重新進(jìn)行分配或分散的過程,相對于傳統(tǒng)一個處理器加外設(shè)擴(kuò)展的方法,去中心化是將資源均衡分布的過程 [4]。該方法遵從以下幾條指導(dǎo)原則 :
(1) 去中心化原則。系統(tǒng)處理功能不再集中于單一的核心處理器,而是根據(jù)功能分類由多個處理器共同分擔(dān),由單核心變?yōu)槎嗪诵摹?
(2) 負(fù)載均衡化原則。系統(tǒng)處理負(fù)載均衡分布于多個處理器,如數(shù)據(jù)處理、復(fù)雜的協(xié)議棧由專門的芯片來實現(xiàn),通過通信接口協(xié)同 [5]。
(3) 模塊化原則。功能相對獨立又集中的芯片組、電路、相關(guān)程序,設(shè)計成一個獨立運行的模塊,這部分程序由專門的處理器運行并進(jìn)行優(yōu)化,實現(xiàn)這部分程序的固件化。模塊內(nèi)部功能高度內(nèi)聚,與外界低耦合。
(4) 控制與顯示功能分離的原則。如工控領(lǐng)域中除了傳統(tǒng)控制功能,還需要電阻、電容觸摸屏和組態(tài)顯示,顯示功能相對復(fù)雜的,將其設(shè)計為獨立模塊,或者采購市場上的新型組態(tài)串口屏,主流供應(yīng)商有廣州大彩、北京迪文等。
(5) 盡量選用固化協(xié)議棧的接口芯片實現(xiàn)專門功能,特別是網(wǎng)絡(luò)接口芯片,如 TCP/IP、藍(lán)牙、WiFi、RFID等。例如具備全硬件 TCP/IP協(xié)議棧 +MAC+PHY的以太網(wǎng)芯片W5500,具備完整 WiFi功能的 ESP8266芯片,這些模組具有簡單快速、可靠性高、安全性好等顯著優(yōu)勢。
3 去中心化設(shè)計實例
某科研項目要設(shè)計一個醫(yī)用電子體溫計,其基本功能描述如下 :
(1) 將探頭置于人體腋下或口腔測量人體體溫,符合醫(yī)療器械標(biāo)準(zhǔn) GB/T21416-2008 的要求。
(2) 電容觸摸屏能夠顯示當(dāng)前溫度,查詢歷史數(shù)值,生成歷史曲線,進(jìn)行人機交互。
(3) 通過以太網(wǎng)接口接入網(wǎng)絡(luò),將測溫數(shù)據(jù)發(fā)送至云服務(wù)器,可在手機 APP上查看數(shù)據(jù)。
按照傳統(tǒng)的軟硬件劃分方法,該設(shè)備硬件部分的總體框架如圖 1 所示,虛線框內(nèi)表示由 CPU 實現(xiàn)的內(nèi)容。
內(nèi)部各模塊描述如下 :
(1) 溫度測量和 ADC 轉(zhuǎn)換電路為一個模塊,溫度誤差處理算法由核心處理器完成。
(2) 電容觸控電路和液晶顯示電路分別通過 I2C接口和RGB 接口接入核心處理器。
(3) TCP/IP協(xié)議棧由開源輕量級 LWIP實現(xiàn),運行在核心處理器中。
(4) 嵌入式圖形庫 UCGUI或者 emWin運行在核心處理器中。
(5) 大容量 NANDFLASH,SDRAM為核心處理器的擴(kuò)展,可為圖形界面提供存儲和緩沖。
按照“去中心化”軟硬件劃分原則,對圖 1 的設(shè)計方案重新進(jìn)行軟硬件劃分,得到圖 2 所示的優(yōu)化方案,描述如下 :
(1) 液晶顯示和電容觸控為相對獨立的部分,將相關(guān)資源整合,開發(fā)一種組態(tài)串口屏,也可采購現(xiàn)成的模組。通過UART串口與 1#CPU相連,控制功能與顯示分離。
(2) 測溫電路部分將電路與誤差處理整合,加上一個簡單 MCU,制成獨立模塊,通過 UART串口發(fā)送符合標(biāo)準(zhǔn)的體溫數(shù)據(jù)。
(3) 將 LWIP軟協(xié)議棧外移,選擇具有全硬件協(xié)議棧的芯片,如 WIZnet公司設(shè)計生產(chǎn)的以太網(wǎng)接口芯片 W5500、江蘇沁恒公司設(shè)計生產(chǎn)的網(wǎng)絡(luò)串口透傳芯片 CH9121等。
(4) 將之前的核心處理器功能降級為通過 UART,SPI 接口收發(fā)數(shù)據(jù)、控制指令, 用簡單的 MCU代替原來的CPU。
(5) 在軟件方面,將體溫數(shù)據(jù)處理、圖形庫、網(wǎng)絡(luò)協(xié)議棧分散到不同的更簡單的 CPU 中,降低了程序的開發(fā)難度,處理任務(wù)量減少,程序運行負(fù)載更加均衡。
優(yōu)化后的設(shè)計方案具有如下明顯優(yōu)勢 :
(1) 三個處理器硬件并行工作,程序并發(fā)執(zhí)行提升為真正的并行工作, 既提高了響應(yīng)速度, 又降低了網(wǎng)絡(luò)丟包率。
(2) 開發(fā)任務(wù)得到簡化。分割為三個相對簡單的模塊,降低了開發(fā)難度,更適合團(tuán)隊并行開發(fā)工作,縮短研發(fā)周期。
(3) 對 CPU的要求降低,可選用通用芯片,供應(yīng)鏈采購更容易,降低了物料成本。
(4) 研發(fā)成果更有價值,如顯示模塊、體溫測量模塊的通用性、可重用性得到提高。
4 結(jié) 語
針對傳統(tǒng)軟硬件劃分的弊端和軟硬件價格的變化,提出一種“去中心化”的軟硬件劃分方法,通過對功能和資源的重新分配、分散,將復(fù)雜任務(wù)轉(zhuǎn)化為若干簡單任務(wù)。重新劃分后的各模塊功能相對獨立,負(fù)載更加均衡。模塊內(nèi)部功能高度內(nèi)聚,模塊之間低耦合,在提高可重用性、系統(tǒng)可靠性的同時,降低了產(chǎn)品開發(fā)難度,方便后期故障檢測和系統(tǒng)維護(hù)。設(shè)計實例表明,這種將功能合理分散的“去中心化設(shè)計” 思路對嵌入式產(chǎn)品開發(fā)有很好的參考價值。