|
嵌入式系統開發要素的選擇分析
; t6 A# ?# g2 V- u* g$ M
/ k( S0 J0 a" _$ @) N5 d& I引 言
: c0 M- Y9 [5 D% u" Y& t9 K2 t6 e |+ x3 @( Y6 s
在電腦、互聯網和通信技術高速發展的同時,嵌入式系統開發技術也取得迅速發展。這不僅表現在從事嵌入式系統開發研究的人員隊伍日益壯大,嵌入式處理器和即時操作系統的性能增強和產品升級換代,更重要的體現在嵌入式技術應用範圍的急劇擴大。 ( t( b' \! |" T$ k+ S1 f
嵌入式系統擁有巨大的市場空間,我國應該抓住機遇,與時俱進,奮起直追,在嵌入式系統領域趕超世界先進水準。要達到這個目標,具有一定的現實可行性,這是因為同PC機系統相比,嵌入式系統更有自身的特徵。在PC領域,雖有AMD系列處理器和Linux作業系統的市場衝擊,但是Win_Tel(Windows+Intel)體系架構仍占主導地位;可是,嵌入式系統本身是一個相當分散的工業,典型特徵是面向用戶、面向產品、面向應用的,市場應用才是嵌入式系統開發的導向和前提,在當前的嵌入式市場中不存在壟斷的局面。 0 P* r6 f& w' f
( q# l4 R8 }" \2 R
嵌入式系統包含硬體和軟體兩部分:硬體架構上以嵌入式處理器為中心,配置記憶體、I/O設備、通信模組等必要的外設;軟體部分以軟體發展平臺為核心,向上提供應用編程介面(API),向下遮罩具體硬體特性的板級支援包BSP。嵌入式系統中,軟體和硬體緊密配合,協調工作,共同完成系統預定的功能。5 Q* f. f9 Q8 B, |& E8 r, i ^1 n
( X0 Q1 q- Q( m$ i. r對於不同的市場應用類型,嵌入式系統開發中的嵌入式處理器、即時操作系統、模擬器、調試器以及開發隊伍的技術水準和結構比例等要素的選擇是至關重要的。本文參考一些嵌入式系統開發的資料,結合具體的工程實踐經驗,系統總結了進行嵌入式系統開發時,如何全面考慮各開發要素並進行選擇,最後結合一個具體實例進行詳細闡述。
+ N" @( o8 v( Z# S! k9 P) P7 V8 R& ?* O# Q v
1 嵌入式處理器
1 t! X% F- q: S( k# W) g& t# K5 X$ v1 f& h2 ?
嵌入式系統的功能軟體集成於硬體系統之中,系統的應用軟體與硬體一體化。在嵌入式系統的硬體設備中,嵌入處理器是整個系統的核心部件,其性能的好壞直接決定整個系統的運行效果。
# g8 J1 _+ c0 {* X/ ]' f
1 k8 K/ `3 n/ K* q! L, {% Z% O( GPC機銷售市場中,隨著通用CPU技術的突破和工作頻率的倍增,舊款低檔CPU早已經不見蹤跡。嵌入式系統開發面向具體應用,不同領域的應用市場需要不同款式和性能指標的處理器來開發,於是在嵌入式處理器市場中,中低端的4位、8位和16位處理器依然存在,高性能的32位處理器也有很多產品。隨著超大型積體電路技術和微電子技術發展,包含嵌入式處理器以及部分週邊電路的微控制器產品也進入市場,片上系統SoC(System on Chip)產品也開始出現。這些產品的上市,不僅豐富了嵌入式處理器產品,而且也更加方便了工程技術人員進行嵌入式系統的技術開發和擴大嵌入式產品的應用領域。
3 D! F1 ^4 S, c+ X( g1 Z$ y. a a! I a" |
由於嵌入式系統應用需求的多樣性,市場上基於RISC結構的嵌入式處理器提供商也日漸增多。統計數字表明,1999年底市場銷售額排在前三位的公司分別是ARM、Motorola和MIPS,其中ARM公司的晶片銷售量達1.5億個,市場份額超過50%。
1 J1 R8 u. V( y, A2 t5 e* |; ?. Z T) d8 y3 l5 Y# h: a6 @ Z- ?
面對這樣的嵌入式處理器市場,開發設計人員應該如何選擇呢?這�有兩個前提條件。
5 L, k* J. D1 V8 q2 s# L: W1 @
. h' [" u _& Y L4 X2 s8 m" Y: d, e一是深入研究具體的嵌入式系統應用需求,充分的應用需求分析後獲取應用系統的性能指標。面向應用是嵌入式系統的特色,具體的應用需求決定著嵌入式處理器的性能選型。在工業控制等特殊領域,系統需求分析員不僅需要和工作人員、上級主管親自面談,而且要到工作現場獲取第一手資訊,收集充分的資料。應用需求分析後,需要定義產品具備的基本功能和性能指標,如系統處理的資料量大小和處理即時性要求、系統正常運行時的工作環境、系統運行過程中可能遇到的突發事件、系統的尺寸大小和功耗指標等。
# B+ _. Y9 q/ N4 ^7 _- o) Z, p) s8 W" d- l/ n0 g# H
第二個前提條件是,分析研究市場上各大廠商提供的各款嵌入式處理器的性能指標,如功耗、體積、成本、可靠性、速度、處理能力、電磁相容性等。這些參數也是各個半導體晶片廠商之間競爭的熱點。
* f, C) l6 F- C+ C' u" e8 [) e1 j6 E/ L- O, f
開發人員通過應用需求分析獲取了產品的功能性和非功能性指標,研究了市場上嵌入式處理器的性能參數後,能夠對嵌入式處理器作出較好的選擇。嵌入式處理器選擇的基本原則是滿足具體功能性和非功能性指標需求的、市場應用反應良好的、硬體配置最少的嵌入式處理器。如簡單的智慧型儀器器儀錶設計考慮使用4位或者8位低檔單片機8051;和數位信號處理密切相關的選用TI公司的TMX320x系列的DSP(數位信號處理)晶片;如果產品偏重於通信功能,考慮Motorola公司的嵌入式處理器68K系列;如果產品功能比較齊全,可選用嵌入式處理器領域的後起之秀ARM公司的高性能嵌入式處理器ARM晶片系列等。8 \0 h* z y: \; o% V3 j
' X; N2 i* _$ A0 Y) x
除了上述的產品性能需求因素,選擇嵌入式處理器時也需要考慮開發人員對此系列處理器的熟悉程度。因為不同公司開發的嵌入式處理器差別較大,從一類處理器轉移到另一類處理器的難度比同一系列不同處理器間的轉移難度大得多,風險多得多。 8 I9 c2 f( h$ y& d4 V8 t
6 {" C3 {# @, Z+ ~! q% y2 即時操作系統
( v/ O* ^! \/ y, |, T% S6 [ y" G) W! i: j* J4 t
以嵌入式處理器為中心,開發人員搭建好硬體電路時僅提供了裸機運行平臺,要使整個系統有限的硬體資源充分利用起來,還需要(嵌入式)即時操作系統RTOS(Real Time Operating System)的軟體支援。
- T. {! }/ E9 G1 S( Z* x
6 X1 h3 \- k6 E: |' ERTOS與一般商用多工OS(如Unix、Windows以及Linux等)有共同的一面,也有不同的一面。商用多工OS主要目的是方便用戶管理電腦資源和追求系統資源的最大利用率;而RTOS重點追求的是即時性、可確定性、可靠性,當然也包括有限資源的管理。一般RTOS內核都很小,在幾KB~十幾KB之間。流行的RTOS基本上都支援基於優先順序的搶佔式調度策略和時間片輪轉,具有微內核結構,有標準元件可供選用,支援虛擬存儲技術和存儲保護機制。4 j' h9 w" k! K& C# X0 o
' R1 {. V6 R0 J5 j- l2 [
由於具體嵌入式應用的功能需求差異以及不同RTOS間不同的性能指標,RTOS的選擇有三種方案:一是根據應用需要和公司技術實力,考慮自主開發研究(國內手機廠商寧波波導公司部分款式的手機作業系統就是自主開發的);二是充分考慮系統需求和流行RTOS的性能指標及性價比選擇商用RTOS,如WinCE、VxWorks等;三是考慮嵌入式Linux(RT_Linux),RT_Linux是開放源代碼的免費自由軟體,互聯網技術論壇較多,具備較好的裁減性以支援不同的應用範疇。 9 I# A- L9 i9 E" N- o
) e/ M t5 t: |
當前全球範圍內商用RTOS多達200多種,應用領域的多樣性使得市場反應較好的也將近有十幾種,如VxWorks、pSOS、Nucleus、QNX、WinCE以及中科院軟體研究中心研製的Hopen等。這些不同名稱的RTOS,核心軟體差異微妙而且難以琢磨,選擇時重點是考慮它們的性能評價指標,主要包括調度演算法、RTOS本身記憶體開銷、RTOS記憶體管理模式、最大中斷禁止時間和最大任務切換時間。當然,也包括RTOS的購買成本和提供的技術支援等相關因素。針對即時性要求較高的應用,需要重點考慮RTOS的最大中斷禁止時間和最大任務切換時間。這兩個參數越小越好。減小這兩個參數值,除了選用較高工作主頻的嵌入式處理器外,還和RTOS本身任務調度和中斷處理機制密切相關。
( {5 n( x, k/ M$ L" d' c/ r
; ~; e3 X. ]# v0 J/ G7 D( h' ?- L選擇RTOS時,通常還要考慮系統功能方面支援何種處理器硬體平臺,何種API,是否支援核心態用戶態、是否支援記憶體管理單元MMU、可攜性、調試支援、標準支援等。如果開發網路應用,還需要考慮該RTOS是否支援TCP/IP的網路元件和I/O服務等。如果開發遊戲和娛樂市場,要著重研究該RTOS對多媒體的支援能力。市場應用需求的多樣性,使得RTOS本身應該支援用戶自定制能力,根據應用需要在微內核的基礎上選用標準元件。; C+ I6 z5 R7 V, A2 X
1 U/ X% R0 d) [( }- j' i3 模擬器和調試器3 @0 ]9 V) _, |; i) N5 v
) i$ n4 ^1 }! |' U- {調試是嵌入式系統開發過程的重要環節。嵌入式系統開發調試和一般PC系統開發調試有較大差別。在一般PC機系統開發中,調試器和被調試程式是運行在相同的硬體和軟體平臺上的兩個進程,調試器進程通過作業系統專門提供的調試介面控制和訪問被調試進程。而在嵌入式系統中,調試器是運行在桌面作業系統上的應用程式,被調試程式是運行在基於特定硬體平臺的作業系統,兩個程式間需要即時通信。
; b. q( a9 P% {9 C5 `7 O9 H* Z- \
& B6 u" Y W& \) P2 F嵌入式系統調試時,主機上運行的集成開發調試工具(調試器)通過模擬器和目的機相連。模擬器處理宿主機和目的機之間所有的通信,這個通信口可以是串口、並行口或者高速乙太網介面。模擬器通過JTAG口和目的機相連。三者間的關係如圖1所示。# N) G, ]! c. k s+ E8 R+ B3 ~0 e
Z6 g9 ?" o- B: J
_" ?8 u* t# J8 u/ E; ~/ w+ u: i/ B9 m8 z6 D$ F5 p9 Q2 A
嵌入式系統開發調試方法有快速原型仿真法和即時線上調試法。快速原型仿真法用於硬體設備尚未完成時,直接在宿主機上對應用程式運行進行仿真分析。在此過程中系統不直接和硬體打交道,由開發調試軟體內部某一特定軟體模組類比硬體CPU系統執行過程,並可同時將仿真異常回饋給開發者進行錯誤定位和修改。即時線上調試法在具體的目的機平臺上調試應用程式,系統在調試狀態下的執行情況和實際運行模式完全一樣,這種方式更有利於開發者即時對系統硬體和軟體故障進行定位和修改,提高產品開發速度。/ m8 |+ A. {: u) r. B
* |7 t! t6 x) W6 @' C5 x
選用的調試器是運行在主機上的集成開發環境,一般需要集編輯、彙編、編譯、鏈結和調試環境於一體,支持低級組合語言、C和C++語言,基於友好的圖形用戶介面(GUI),支援用戶觀察或修改嵌入式處理器的寄存器和記憶體配置、資料變數的類型和數值,堆疊和寄存器的使用,支援程式中斷點設置,單步、中斷點或者全速運行等特性。% K6 j7 B6 s7 U6 _, x7 Z
7 ^, n0 Y0 D+ v$ u5 C應用需求的多樣性導致市場上模擬器和調試器的提供商也較多,Windriver公司的Tornado是一個很好的開發調試工具。根據實踐經驗,一般配套選擇規模較大、信譽較好公司的模擬器和調試器,雖然價格偏高,但是這些公司技術實力強,售後服務好,調試器和模擬器開發結合緊密。如果在開發調試過程遇到技術障礙,可以通過電話或者電子郵件方式及時獲取技術支援。如選用ARM系列的嵌入式處理器時,可以購買Multi-ICE模擬器,並附加ARM250集成開發調試環境等。 |
|