摘要:該文主要討論在嵌入式系統開發中,開發人員如何考慮和選擇嵌入式處理器、嵌入式操作系統、調試器、仿真器等組成要素;同時,權衡設計與購買的利弊,在系統靈活性、速度、成本、計劃和可用工具之間做出權衡。
關鍵詞:嵌入式系統;嵌入式處理器;實時操作系統;仿真器;調試器
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2010)01-130-02
Factor Analysis of Embedded Systems Development
YAN Yong-song
(Jingchu University of Technology, Jingmen 448000, China)
Abstract: This article focuses on the embedded system development, developers on how to consider and options embedded processors, embedded operating systems, debuggers, simulators and other elements; the same time, the design and purchase of weighing the pros and cons in the system flexibility, speed, costs, programs and tools available to make a trade-off between.
Key words: embedded system; embedded processor; real-time OS; emulator; debugger
嵌入式系統是以應用為中心,以計算機技術為基礎,并且軟硬件可裁剪,適用于應用系統對功能、可靠性、成本、體積、功耗有嚴格要求的專用計算機系統。它一般由嵌入式微處理器、外圍硬件設備、嵌入式操作系統以及用戶的應用程序等四個部分組成,用于實現對其他設備的控制、監視或管理等功能。在制造工業、過程控制、通訊、儀器、儀表、汽車、船舶、航空、航天、軍事裝備、消費類產品等方面均是嵌入式系統的應用領域。
嵌入式系統包含硬件和軟件兩部分:硬件架構上以嵌入式處理器為中心,配置存儲器、I/O設備、通信模塊等必要的外設;軟件部分以軟件開發平臺為核心,向上提供應用編程接口(API),向下屏蔽具體硬件特性的板級支持包BSP。嵌入式系統中,軟件和硬件緊密配合,協調工作,共同完成系統預定的功能。
對于不同的市場應用類型,嵌入式系統開發中的嵌入式處理器、實時操作系統、仿真器、調試器等要素的選擇是至關重要的。在進行嵌入式系統開發時,如何全面考慮各開發要素并進行選擇,是一個必須考慮的課題。本文描述了嵌入式系統開發的關鍵特性,并探討在選擇或開發硬件和軟件組件的基礎上開發高效嵌入式系統的解決方案。
1 嵌入式系統特性
嵌入式系統的設計挑戰是使嵌入式系統的獨特性能與設備的特殊約束條件相一致。以下是一些嵌入式系統的重要特性:
1)特殊應用系統-嵌入式系統不同于通用處理器,它針對特殊應用進行了優化。
2)反應性系統-反應性計算的意思是系統(主要是軟件部分)根據傳感器信息對環境作出響應,并利用激勵器控制環境,同時系統速度能與環境速度同步。
3)分布式-嵌入式系統的一般特征是多個通信進程在多個通過通信鏈路鏈接的CPU或ASIC上運行。
4)異類性-不同的嵌入式系統一般具有不同的結構,以便在處理嚴格設計約束的嵌入式系統時能夠提供更好的設計便利性。
5)苛刻環境-許多嵌入式系統并不工作在受控的環境中,因此它們必須能夠經受過熱、振動、沖擊、電源波動和其它惡劣的物理環境條件的考驗。
6)系統安全性和可靠性-由于嵌入式系統復雜度和運算量的不斷增長,需要更多地考慮系統安全因素。
7)小型化、重量輕-為了達到便攜目的,許多嵌入式系統的重量必須設計得很輕。
8)成本敏感性-不同的嵌入式系統對成本的敏感性有很大的不同。
2 實時系統特性
實時系統要求在外部環境指定的時間間隔內對來自環境的激勵信號作出響應(包括物理時間的過渡)。從輸入時間到輸出時間的延遲必須足夠小,以滿足可以接受的時間值。通常實時系統需要對環境作出連續及時的響應。
計算的正確性不僅依賴于結果,而且取決于輸出發生的時間。一個實時系統必須滿足有限響應時間約束條件,否則會產生嚴重的后果。如果后果是性能的劣化而不是故障,那么這種系統可以看作是一個軟實時系統。如果后果是系統發生故障,那么這種系統就是一種硬實時系統。
實時系統有反應式和嵌入式兩種類型。反應式實時系統會與環境發生連續的互作用,而嵌入式實時系統主要用于控制大型系統中安裝的特殊硬件。
3 嵌入式處理器選擇
在嵌入式系統的硬件設備中,嵌入處理器是整個系統的核心部件,其性能的好壞直接決定整個系統的運行效果。
嵌入式系統開發面向具體應用,不同領域的應用市場需要不同款式和性能指標的處理器來開發,于是在嵌入式處理器市場中,中低端的4位、8位和16位處理器依然存在,高性能的32位處理器也有很多產品。隨著超大規模集成電路技術和微電子技術發展,包含嵌入式處理器以及部分外圍電路的微控制器產品也進入市場,片上系統SoC(System on Chip)產品也開始出現。這些產品的上市,不僅豐富了嵌入式處理器產品,而且也更加方便了工程技術人員進行嵌入式系統的技術開發和擴大嵌入式產品的應用領域。
嵌入式處理器選擇的基本原則是滿足具體功能性和非功能性指標需求的、市場應用反應良好的、硬件配置最少的嵌入式處理器。如簡單的智能儀器儀表設計考慮使用4位或者8位低檔單片機8051;和數字信號處理密切相關的選用TI公司的TMX320x系列的DSP(數字信號處理)芯片;如果產品偏重于通信功能,考慮Motorola公司的嵌入式處理器68K系列;如果產品功能比較齊全,可選用嵌入式處理器領域的后起之秀ARM公司的高性能嵌入式處理器ARM芯片系列等。
4 實時操作系統選擇
要使整個系統有限的硬件資源充分利用起來,還需要(嵌入式)實時操作系統RTOS(Real Time Operating System)的軟件支持。
RTOS重點追求的是實時性、可確定性、可靠性,當然也包括有限資源的管理。一般RTOS內核都很小,在幾KB~十幾KB之間。流行的RTOS基本上都支持基于優先級的搶占式調度策略和時間片輪轉,具有微內核結構,有標準組件可供選用,支持虛擬存儲技術和存儲保護機制。
由于具體嵌入式應用的功能需求差異以及不同RTOS間不同的性能指標,RTOS的選擇有三種方案:一是根據應用需要和公司技術實力,考慮自主開發研究(國內手機廠商寧波波導公司部分款式的手機操作系統就是自主開發的);二是充分考慮系統需求和流行RTOS的性能指標及性價比選擇商用RTOS,如WinCE、VxWorks等;三是考慮嵌入式Linux(RT_Linux),RT_Linux是開放源代碼的免費自由軟件,互聯網技術論壇較多,具備較好的裁減性以支持不同的應用范疇。
在眾多的實時操作系統中,選擇時重點考慮的是它們的性能評價指標,主要包括調度算法、RTOS本身內存開銷、RTOS內存管理模式、最大中斷禁止時間和最大任務切換時間。當然,也包括RTOS的購買成本和提供的技術支持等相關因素。針對實時性要求較高的應用,需要重點考慮RTOS的最大中斷禁止時間和最大任務切換時間。這兩個參數越小越好。減小這兩個參數值,除了選用較高工作主頻的嵌入式處理器外,還和RTOS本身任務調度和中斷處理機制密切相關。
選擇RTOS時,通常還要考慮系統功能方面支持何種處理器硬件平臺,何種API,是否支持核心態用戶態、是否支持內存管理單元MMU、可移植性、調試支持、標準支持等。如果開發網絡應用,還需要考慮該RTOS是否支持TCP/IP的網絡組件和I/O服務等。如果開發游戲和娛樂市場,要著重研究該RTOS對多媒體的支持能力。市場應用需求的多樣性,使得RTOS本身應該支持用戶自定制能力,根據應用需要在微內核的基礎上選用標準組件。
5 仿真器和調試器的選擇
調試是嵌入式系統開發過程的重要環節。嵌入式系統調試時,主機上運行的集成開發調試工具(調試器)通過仿真器和目標機相連。仿真器處理宿主機和目標機之間所有的通信,這個通信口可以是串口、并行口或者高速以太網接口。
嵌入式系統開發調試方法有快速原型仿真法和實時在線調試法。快速原型仿真法用于硬件設備尚未完成時,直接在宿主機上對應用程序運行進行仿真分析。在此過程中系統不直接和硬件打交道,由開發調試軟件內部某一特定軟件模塊模擬硬件CPU系統執行過程,并可同時將仿真異常反饋給開發者進行錯誤定位和修改。實時在線調試法在具體的目標機平臺上調試應用程序,系統在調試狀態下的執行情況和實際運行模式完全一樣,這種方式更有利于開發者實時對系統硬件和軟件故障進行定位和修改,提高產品開發速度。
選用的調試器是運行在主機上的集成開發環境,一般需要集編輯、匯編、編譯、鏈接和調試環境于一體,支持低級匯編語言、C和C++語言,基于友好的圖形用戶界面(GUI),支持用戶觀察或修改嵌入式處理器的寄存器和存儲器配置、數據變量的類型和數值,堆棧和寄存器的使用,支持程序斷點設置,單步、斷點或者全速運行等特性。
應用需求的多樣性導致市場上仿真器和調試器的提供商也較多,Windriver公司的Tornado是一個很好的開發調試工具。根據實踐經驗,一般配套選擇規模較大、信譽較好公司的仿真器和調試器,雖然價格偏高,但是這些公司技術實力強,售后服務好,調試器和仿真器開發結合緊密。如果在開發調試過程遇到技術障礙,可以通過電話或者電子郵件方式及時獲取技術支持。如選用ARM系列的嵌入式處理器時,可以購買Multi-ICE仿真器,并附加ARM250集成開發調試環境等。
6 設計或購買
是自己設計還是購買成品呢?如果有可能不重新設計,價格也比較合理的話,購買要比自己開發更有利。由于嵌入式系統預算的縮減、實時操作系統(RTOS)和TCP/IP堆棧等商用技術的改進、嵌入式系統要求的擴展,采用商業性現成(COTS)技術正變得越來越普遍。采用COTS技術能夠縮短開發周期中編碼、調試、單元測試和代碼檢查階段的時間。
然而,做出購買而非設計的決定會改變一個組織的基礎開發流程。一個組織希望實現的新業務有:供應商調研和評估、產品評估以及實時的供應商交流與關系建立。產品開發的其它活動不會取消,但會作出一些改變。這些變化包括更關注如何將系統硬件與軟件更好地組合在一起,而不再把重點放在模塊自己內部的運作上。另外必須更側重于兼容性、可配置性和可集成性等結構上的問題。
必須很好的理解和高效地管理由于決定采用“購買”而非“設計創建”方式所導致的結果。首先,自然是對供應商提出產品要求、產品可靠性、計劃和產品文檔等依賴請求。這種情況下產品要求中的靈活性會打些折扣。購買商用產品意味著接受現有的產品要求,但這種要求也許不能完美地匹配自身產品的要求,這就需要設計人員把這種缺點與COTS技術提供的成本與上市時間優勢作一個理智的權衡。 因此重要的是最終用戶與技術人員必須參與COTS供應商的選擇,考慮的重點要放在業務需求上而非技術本身。性價比分析所要考慮的因素應包括易學性、易用性、供應商名聲和長期穩定性、許可方式和培訓。所有與性能有關的聲明必須盡可能采用內部或外部基準或演示來到得有效性認證。為了避免可能出現的偏差,評估標準應該在收到供應商建議前就制定好。選擇供應商的主要工作包括研究和理解技術標準和相當的文件、采用類似建議請求(RFP)的標準模式征求供應商的建議、對供應商建議進行評估和排序、選擇供應商并簽署合同。
除了評估技術外,還應對供應商本身進行評審。要充分了解供應商開業時間的長短、供應商的背景和名聲、供應商的其它用戶對它的評價和意見、供應商人力資源的投入和對你的計劃或項目的支持情況,以及供應商對你業務和要求的理解程度,甚至對未來項目的承諾。以前軟件團隊認為軟件開發方案遵循類似于創建架構的特定模式。提供符合一般模式的抽象方法能夠使軟件團隊定制符合他們特殊要求的方案,同時遵循被前人證明是高效和正確的模式。
嵌入式系統供應商已經認識到需要通過提供軟件組件和類似于設計模式的框架來加快軟件開發進程。在DSP領域,供應商向DSP設計工程師提供包括參考框架(RF)在內的上百個以DSP為核心的軟件組件用于產品和系統開發。設計完好的參考框架能夠在設備開發的早期階段讓設計人員快速入門。RF內含方便易用并且適合多種應用的源代碼。由此可以取消許多早期的低層設計決策,使開發人員能有更多的時間用在真正顯示產品特色的代碼開發上。設計人員可以選擇能夠最大程度滿足他們系統需要的專業RF,然后集成適配的算法(可以是其它供應商出售的DSP COTS算法,或供應商自己的算法)生成適合各種終端設備的特殊應用,如寬帶、語音、視頻圖像、生物測量和無線設施。這些RF提供百分之百的C語言源碼,并且沒有版稅要求。
7 小結
顯然開發嵌入式實時系統是一個相當復雜的過程,本文闡述了在嵌入式系統開發中嵌入式處理器、嵌入式操作系統、調試器、仿真器等組成要素的選擇原則,同時啟發開發人員在設計與購買時的利弊關系,要時刻在系統靈活性、速度、成本、計劃和可用工具之間做出權衡,并充分考慮各個供應商提供長期可靠支持的可能性。
參考文獻:
[1] Jean J.Labrosse.嵌入式實時操作系統UC/OS-II[M].邵貝貝,譯.2版.北京:北京航空航天大學出版社,2005.
[2] 楊剛.嵌入式基礎實踐教程[M].北京:北京大學出版社,2007.