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