王忠 夏傳良 胡芳凝 劉超群



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