王忠 夏傳良 胡芳凝 劉超群
摘 要:文中分析了傳統(tǒng)軟硬件劃分方法的缺點,基于嵌入式系統(tǒng)產(chǎn)品開發(fā)實際,提出了一種去中心化的軟硬件劃分方法。文中詳細描述了該方法的五條指導性原則,并用一個開發(fā)實例說明了上述原則的應用方法,驗證了該方法的有效性。該劃分方法簡化了復雜任務,提高了程序并發(fā)性水平,降低了系統(tǒng)開發(fā)難度,具有較高的參考價值。
關鍵詞:去中心化;軟硬件劃分;負載均衡;軟件固件化;嵌入式;并發(fā)性
中圖分類號:TP393 文獻標識碼:A 文章編號:2095-1302(2019)05-00-02
0 引 言
隨著嵌入式系統(tǒng)規(guī)模不斷增大,功能日益復雜,傳統(tǒng)“先硬件,后軟件”的設計方法已經(jīng)無法滿足當下要求。國內(nèi)外學者進行了廣泛的研究,提出和發(fā)展了很多軟硬件協(xié)同設計方法,如改進迭代算法、模擬退火算法、遺傳算法、基于UML模型分析方法等[1-2],挖掘系統(tǒng)軟硬件之間的并發(fā)性,達到性能與成本的最優(yōu)組合。但這些方法的共同缺點是偏重于理論層面的分析,可操作性差,硬件模塊劃分粒度過大,且較少考慮軟硬件成本變化、供應鏈、研發(fā)周期、可維護性等實際因素。
1 軟硬件劃分概述
由于嵌入式系統(tǒng)面臨技術上的復雜性和開發(fā)時間上的嚴格約束,設計方法已成為影響系統(tǒng)最終成本、性能、可制造性以及研制周期的關鍵因素。在滿足設計規(guī)范的前提下,兼顧軟硬件的特點,實現(xiàn)優(yōu)化的軟硬件協(xié)同設計是解決問題的關鍵。軟硬件劃分是軟硬件協(xié)同設計中的關鍵,其目標是根據(jù)系統(tǒng)功能定義和相應約束,從整體角度進行協(xié)調(diào),獲得一個可滿足系統(tǒng)各方面要求的趨于最優(yōu)的實現(xiàn)方法。
2 去中心化的軟硬件劃分方法
嵌入式系統(tǒng)設計的關鍵是軟硬件功能劃分,即確定哪些系統(tǒng)功能由硬件實現(xiàn),哪些功能由軟件實現(xiàn)。硬件一般能夠提供更好的性能,而軟件更容易修改且不占用硬件面積。由于硬件模塊的可配置性、可編程性以及某些軟件功能的硬件化、固件化,當下很多功能既能用軟件實現(xiàn),又能用硬件實現(xiàn),軟硬件的界限已經(jīng)不十分明顯[3],加上近年來軟件即人力成本的提高和硬件價格的降低,這些新變化給系統(tǒng)軟硬件優(yōu)化組合提供了很大的創(chuàng)新操作空間。
基于上述原因, 本文突破軟硬件劃分的固有模式,提出一種“去中心化”的軟硬件劃分方法?!叭ブ行幕笔侵笇⒐δ堋①Y源從一個中心重新進行分配或分散的過程,相對于傳統(tǒng)一個處理器加外設擴展的方法,去中心化是將資源均衡分布的過程[4]。該方法遵從以下幾條指導原則:
(1)去中心化原則。系統(tǒng)處理功能不再集中于單一的核心處理器,而是根據(jù)功能分類由多個處理器共同分擔,由單核心變?yōu)槎嗪诵摹?/p>
(2)負載均衡化原則。系統(tǒng)處理負載均衡分布于多個處理器,如數(shù)據(jù)處理、復雜的協(xié)議棧由專門的芯片來實現(xiàn),通過通信接口協(xié)同[5]。
(3)模塊化原則。功能相對獨立又集中的芯片組、電路、相關程序,設計成一個獨立運行的模塊,這部分程序由專門的處理器運行并進行優(yōu)化,實現(xiàn)這部分程序的固件化。模塊內(nèi)部功能高度內(nèi)聚,與外界低耦合。
(4)控制與顯示功能分離的原則。如工控領域中除了傳統(tǒng)控制功能,還需要電阻、電容觸摸屏和組態(tài)顯示,顯示功能相對復雜的,將其設計為獨立模塊,或者采購市場上的新型組態(tài)串口屏,主流供應商有廣州大彩、北京迪文等。
(5)盡量選用固化協(xié)議棧的接口芯片實現(xiàn)專門功能,特別是網(wǎng)絡接口芯片,如TCP/IP、藍牙、WiFi、RFID等。例如具備全硬件TCP/IP協(xié)議棧+MAC+PHY的以太網(wǎng)芯片W5500,具備完整WiFi功能的ESP8266芯片,這些模組具有簡單快速、可靠性高、安全性好等顯著優(yōu)勢。
3 去中心化設計實例
某科研項目要設計一個醫(yī)用電子體溫計,其基本功能描述如下:
(1)將探頭置于人體腋下或口腔測量人體體溫,符合醫(yī)療器械標準GB/T21416-2008的要求。
(2)電容觸摸屏能夠顯示當前溫度,查詢歷史數(shù)值,生成歷史曲線,進行人機交互。
(3)通過以太網(wǎng)接口接入網(wǎng)絡,將測溫數(shù)據(jù)發(fā)送至云服務器,可在手機APP上查看數(shù)據(jù)。
按照傳統(tǒng)的軟硬件劃分方法,該設備硬件部分的總體框架如圖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)大容量NAND FLASH,SDRAM為核心處理器的擴展,可為圖形界面提供存儲和緩沖。
按照“去中心化”軟硬件劃分原則,對圖1的設計方案重新進行軟硬件劃分,得到圖2所示的優(yōu)化方案,描述如下:
(1)液晶顯示和電容觸控為相對獨立的部分,將相關資源整合,開發(fā)一種組態(tài)串口屏,也可采購現(xiàn)成的模組。通過UART串口與1#CPU相連,控制功能與顯示分離。
(2)測溫電路部分將電路與誤差處理整合,加上一個簡單MCU,制成獨立模塊,通過UART串口發(fā)送符合標準的體溫數(shù)據(jù)。
(3)將LWIP軟協(xié)議棧外移,選擇具有全硬件協(xié)議棧的芯片,如WIZnet公司設計生產(chǎn)的以太網(wǎng)接口芯片W5500、江蘇沁恒公司設計生產(chǎn)的網(wǎng)絡串口透傳芯片CH9121等。
(4)將之前的核心處理器功能降級為通過UART,SPI接口收發(fā)數(shù)據(jù)、控制指令,用簡單的MCU代替原來的CPU。
(5)在軟件方面,將體溫數(shù)據(jù)處理、圖形庫、網(wǎng)絡協(xié)議棧分散到不同的更簡單的CPU中,降低了程序的開發(fā)難度,處理任務量減少,程序運行負載更加均衡。
優(yōu)化后的設計方案具有如下明顯優(yōu)勢:
(1)三個處理器硬件并行工作,程序并發(fā)執(zhí)行提升為真正的并行工作,既提高了響應速度,又降低了網(wǎng)絡丟包率。
(2)開發(fā)任務得到簡化。分割為三個相對簡單的模塊,降低了開發(fā)難度,更適合團隊并行開發(fā)工作,縮短研發(fā)周期。
(3)對CPU的要求降低,可選用通用芯片,供應鏈采購更容易,降低了物料成本。
(4)研發(fā)成果更有價值,如顯示模塊、體溫測量模塊的通用性、可重用性得到提高。
4 結(jié) 語
針對傳統(tǒng)軟硬件劃分的弊端和軟硬件價格的變化,提出一種“去中心化”的軟硬件劃分方法,通過對功能和資源的重新分配、分散,將復雜任務轉(zhuǎn)化為若干簡單任務。重新劃分后的各模塊功能相對獨立,負載更加均衡。模塊內(nèi)部功能高度內(nèi)聚,模塊之間低耦合,在提高可重用性、系統(tǒng)可靠性的同時,降低了產(chǎn)品開發(fā)難度,方便后期故障檢測和系統(tǒng)維護。設計實例表明,這種將功能合理分散的“去中心化設計”思路對嵌入式產(chǎn)品開發(fā)有很好的參考價值。
參 考 文 獻
[1]陳瑋,顧思思.基于組合算法的嵌入式系統(tǒng)軟硬件劃分方法[J].計算機應用與軟件,2015,32(10):241-242.
[2]李巖,屈媛,陳儀香.軟硬件協(xié)同設計中的軟硬件劃分方法綜述[J].單片機與嵌入式系統(tǒng)應用,2017(8):3-8.
[3]周哲熙.基于平臺和中間件的嵌入式系統(tǒng)軟硬件協(xié)同設計[J].電子測試,2018(12):129-130.
[4]陳思功,秦曉,章恒猻.基于UML的軟硬件協(xié)同設計的模型分析方法[J].軟件學報,2003,14(1):103-109.
[5]何翔.嵌入式多核操作系統(tǒng)負載均衡模型研究[J].電腦知識與技術,2018,14(5):67-68.
[6]陳亮,李峰,夏征儀,等.區(qū)塊鏈:物聯(lián)網(wǎng)應用進展研究[J].物聯(lián)網(wǎng)技術,2018,8(1):100-103.
[7]王世好,嚴迎建,吳清平.嵌入式系統(tǒng)軟硬件協(xié)調(diào)設計環(huán)境構(gòu)造與實現(xiàn)方法[J].計算機工程與應用,2002(16):223-225.
[8]耿強,黃雪琴,姜文波,等.基于網(wǎng)絡仿真軟件分析負載均衡協(xié)議[J].物聯(lián)網(wǎng)技術,2018,8(1):38-39.
[9]陳扶辛,康秀光,張彬.新的嵌入式系統(tǒng)設計方法學:軟硬件協(xié)同設計[J].科技資訊,2006(14):203.
[10]李正民,郭金金,呂瑩瑩.一種嵌入式系統(tǒng)軟硬件劃分方法[J].計算機仿真,2011,28(10):204-207.