嵌入式系統開(kāi)發(fā)要素的選擇分析
關(guān)鍵詞:嵌入式系統 嵌入式處理器 實(shí)時(shí)操作系統 仿真器 調試器
引 言
在計算機、互聯(lián)網(wǎng)和通信技術(shù)高速發(fā)展的同時(shí),嵌入式系統開(kāi)發(fā)技術(shù)也取得迅速發(fā)展。這不僅表現在從事嵌入式系統開(kāi)發(fā)研究的人員隊伍日益壯大,嵌入式處理器和實(shí)時(shí)操作系統的性能增強和產(chǎn)品升級換代,更重要的體現在嵌入式技術(shù)應用范圍的急劇擴大。
嵌入式系統擁有巨大的市場(chǎng)空間,我國應該抓住機遇,與時(shí)俱進(jìn),奮起直追,在嵌入式系統領(lǐng)域趕超世界先進(jìn)水平。要達到這個(gè)目標,具有一定的現實(shí)可行性,這是因為同PC機系統相比,嵌入式系統更有自身的特征。在PC領(lǐng)域,雖有AMD系列處理器和Linux操作系統的市場(chǎng)沖擊,但是Win_Tel(Windows+Intel)體系架構仍占主導地位;可是,嵌入式系統本身是一個(gè)相當分散的工業(yè),典型特征是面向用戶(hù)、面向產(chǎn)品、面向應用的,市場(chǎng)應用才是嵌入式系統開(kāi)發(fā)的導向和前提,在當前的嵌入式市場(chǎng)中不存在壟斷的局面。
嵌入式系統包含硬件和軟件兩部分:硬件架構上以嵌入式處理器為中心,配置存儲器、I/O設備、通信模塊等必要的外設;軟件部分以軟件開(kāi)發(fā)平臺為核心,向上提供應用編程接口(API),向下屏蔽具體硬件特性的板級支持包BSP。嵌入式系統中,軟件和硬件緊密配合,協(xié)調工作,共同完成系統預定的功能。
對于不同的市場(chǎng)應用類(lèi)型,嵌入式系統開(kāi)發(fā)中的嵌入式處理器、實(shí)時(shí)操作系統、仿真器、調試器以及開(kāi)發(fā)隊伍的技術(shù)水平和結構比例等要素的選擇是至關(guān)重要的。本文參考一些嵌入式系統開(kāi)發(fā)的資料,結合具體的工程實(shí)踐經(jīng)驗,系統總結了進(jìn)行嵌入式系統開(kāi)發(fā)時(shí),如何全面考慮各開(kāi)發(fā)要素并進(jìn)行選擇,最后結合一個(gè)具體實(shí)例進(jìn)行詳細闡述。
1 嵌入式處理器
嵌入式系統的功能軟件集成于硬件系統之中,系統的應用軟件與硬件一體化。在嵌入式系統的硬件設備中,嵌入處理器是整個(gè)系統的核心部件,其性能的好壞直接決定整個(gè)系統的運行效果。
PC機銷(xiāo)售市場(chǎng)中,隨著(zhù)通用CPU技術(shù)的突破和工作頻率的倍增,舊款低檔CPU早已經(jīng)不見(jiàn)蹤跡。嵌入式系統開(kāi)發(fā)面向具體應用,不同領(lǐng)域的應用市場(chǎng)需要不同款式和性能指標的處理器來(lái)開(kāi)發(fā),于是在嵌入式處理器市場(chǎng)中,中低端的4位、8位和16位處理器依然存在,高性能的32位處理器也有很多產(chǎn)品。隨著(zhù)超大規模集成電路技術(shù)和微電子技術(shù)發(fā)展,包含嵌入式處理器以及部分外圍電路的微控制器產(chǎn)品也進(jìn)入市場(chǎng),片上系統SoC(System on Chip)產(chǎn)品也開(kāi)始出現。這些產(chǎn)品的上市,不僅豐富了嵌入式處理器產(chǎn)品,而且也更加方便了工程技術(shù)人員進(jìn)行嵌入式系統的技術(shù)開(kāi)發(fā)和擴大嵌入式產(chǎn)品的應用領(lǐng)域。
由于嵌入式系統應用需求的多樣性,市場(chǎng)上基于RISC結構的嵌入式處理器提供商也日漸增多。統計數字表明,1999年底市場(chǎng)銷(xiāo)售額排在前三位的公司分別是ARM、Motorola和MIPS,其中ARM公司的芯片銷(xiāo)售量達1.5億個(gè),市場(chǎng)份額超過(guò)50%。
面對這樣的嵌入式處理器市場(chǎng),開(kāi)發(fā)設計人員應該如何選擇呢?這里有兩個(gè)前提條件。
一是深入研究具體的嵌入式系統應用需求,充分的應用需求分析后獲取應用系統的性能指標。面向應用是嵌入式系統的特色,具體的應用需求決定著(zhù)嵌入式處理器的性能選型。在工業(yè)控制等特殊領(lǐng)域,系統需求分析員不僅需要和工作人員、上級主管親自面談,而且要到工作現場(chǎng)獲取第一手信息,收集充分的資料。應用需求分析后,需要定義產(chǎn)品具備的基本功能和性能指標,如系統處理的數據量大小和處理實(shí)時(shí)性要求、系統正常運行時(shí)的工作環(huán)境、系統運行過(guò)程中可能遇到的突發(fā)事件、系統的尺寸大小和功耗指標等。
第二個(gè)前提條件是,分析研究市場(chǎng)上各大廠(chǎng)商提供的各款嵌入式處理器的性能指標,如功耗、體積、成本、可靠性、速度、處理能力、電磁兼容性等。這些參數也是各個(gè)半導體芯片廠(chǎng)商之間競爭的熱點(diǎn)。
開(kāi)發(fā)人員通過(guò)應用需求分析獲取了產(chǎn)品的功能性和非功能性指標,研究了市場(chǎng)上嵌入式處理器的性能參數后,能夠對嵌入式處理器作出較好的選擇。嵌入式處理器選擇的基本原則是滿(mǎn)足具體功能性和非功能性指標需求的、市場(chǎng)應用反應良好的、硬件配置最少的嵌入式處理器。如簡(jiǎn)單的智能儀器儀表設計考慮使用4位或者8位低檔單片機8051;和數字信號處理密切相關(guān)的選用TI公司的TMX320x系列的DSP(數字信號處理)芯片;如果產(chǎn)品偏重于通信功能,考慮Motorola公司的嵌入式處理器68K系列;如果產(chǎn)品功能比較齊全,可選用嵌入式處理器領(lǐng)域的后起之秀ARM公司的高性能嵌入式處理器ARM芯片系列等。
除了上述的產(chǎn)品性能需求因素,選擇嵌入式處理器時(shí)也需要考慮開(kāi)發(fā)人員對此系列處理器的熟悉程度。因為不同公司開(kāi)發(fā)的嵌入式處理器差別較大,從一類(lèi)處理器轉移到另一類(lèi)處理器的難度比同一系列不同處理器間的轉移難度大得多,風(fēng)險多得多。
2 實(shí)時(shí)操作系統
以嵌入式處理器為中心,開(kāi)發(fā)人員搭建好硬件電路時(shí)僅提供了裸機運行平臺,要使整個(gè)系統有限的硬件資源充分利用起來(lái),還需要(嵌入式)實(shí)時(shí)操作系統RTOS(Real Time Operating System)的軟件支持。
RTOS與一般商用多任務(wù)OS(如Unix、Windows以及Linux等)有共同的一面,也有不同的一面。商用多任務(wù)OS主要目的是方便用戶(hù)管理計算機資源和追求系統資源的最大利用率;而RTOS重點(diǎn)追求的是實(shí)時(shí)性、可確定性、可靠性,當然也包括有限資源的管理。一般RTOS內核都很小,在幾KB~十幾KB之間。流行的RTOS基本上都支持基于優(yōu)先級的搶占式調度策略和時(shí)間片輪轉,具有微內核結構,有標準組件可供選用,支持虛擬存儲技術(shù)和存儲保護機制。
由于具體嵌入式應用的功能需求差異以及不同RTOS間不同的性能指標,RTOS的選擇有三種方案:一是根據應用需要和公司技術(shù)實(shí)力,考慮自主開(kāi)發(fā)研究(國內手機廠(chǎng)商寧波波導公司部分款式的手機操作系統就是自主開(kāi)發(fā)的);二是充分考慮系統需求和流行RTOS的性能指標及性?xún)r(jià)比選擇商用RTOS,如WinCE、VxWorks等;三是考慮嵌入式Linux(RT_Linux),RT_Linux是開(kāi)放源代碼的免費自由軟件,互聯(lián)網(wǎng)技術(shù)論壇較多,具備較好的裁減性以支持不同的應用范疇。
當前全球范圍內商用RTOS多達200多種,應用領(lǐng)域的多樣性使得市場(chǎng)反應較好的也將近有十幾種,如VxWorks、pSOS、Nucleus、QNX、WinCE以及中科院軟件研究中心研制的Hopen等。這些不同名稱(chēng)的RTOS,核心軟件差異微妙而且難以琢磨,選擇時(shí)重點(diǎn)是考慮它們的性能評價(jià)指標,主要包括調度算法、RTOS本身內存開(kāi)銷(xiāo)、RTOS內存管理模式、最大中斷禁止時(shí)間和最大任務(wù)切換時(shí)間。當然,也包括RTOS的購買(mǎi)成本和提供的技術(shù)支持等相關(guān)因素。針對實(shí)時(shí)性要求較高的應用,需要重點(diǎn)考慮RTOS的最大中斷禁止時(shí)間和最大任務(wù)切換時(shí)間。這兩個(gè)參數越小越好。減小這兩個(gè)參數值,除了選用較高工作主頻的嵌入式處理器外,還和RTOS本身任務(wù)調度和中斷處理機制密切相關(guān)。
選擇RTOS時(shí),通常還要考慮系統功能方面支持何種處理器硬件平臺,何種API,是否支持核心態(tài)用戶(hù)態(tài)、是否支持內存管理單元MMU、可移植性、調試支持、標準支持等。如果開(kāi)發(fā)網(wǎng)絡(luò )應用,還需要考慮該RTOS是否支持TCP/IP的網(wǎng)絡(luò )組件和I/O服務(wù)等。如果開(kāi)發(fā)游戲和娛樂(lè )市場(chǎng),要著(zhù)重研究該RTOS對多媒體的支持能力。市場(chǎng)應用需求的多樣性,使得RTOS本身應該支持用戶(hù)自定制能力,根據應用需要在微內核的基礎上選用標準組件。
3 仿真器和調試器
調試是嵌入式系統開(kāi)發(fā)過(guò)程的重要環(huán)節。嵌入式系統開(kāi)發(fā)調試和一般PC系統開(kāi)發(fā)調試有較大差別。在一般PC機系統開(kāi)發(fā)中,調試器和被調試程序是運行在相同的硬件和軟件平臺上的兩個(gè)進(jìn)程,調試器進(jìn)程通過(guò)操作系統專(zhuān)門(mén)提供的調試接口控制和訪(fǎng)問(wèn)被調試進(jìn)程。而在嵌入式系統中,調試器是運行在桌面操作系統上的應用程序,被調試程序是運行在基于特定硬件平臺的操作系統,兩個(gè)程序間需要實(shí)時(shí)通信。
嵌入式系統調試時(shí),主機上運行的集成開(kāi)發(fā)調試工具(調試器)通過(guò)仿真器和目標機相連。仿真器處理宿主機和目標機之間所有的通信,這個(gè)通信口可以是串口、并行口或者高速以太網(wǎng)接口。仿真器通過(guò)JTAG口和目標機相連。三者間的關(guān)系如圖1所示。
嵌入式系統開(kāi)發(fā)調試方法有快速原型仿真法和實(shí)時(shí)在線(xiàn)調試法??焖僭头抡娣ㄓ糜谟布O備尚未完成時(shí),直接在宿主機上對應用程序運行進(jìn)行仿真分析。在此過(guò)程中系統不直接和硬件打交道,由開(kāi)發(fā)調試軟件內部某一特定軟件模塊模擬硬件CPU系統執行過(guò)程,并可同時(shí)將仿真異常反饋給開(kāi)發(fā)者進(jìn)行錯誤定位和修改。實(shí)時(shí)在線(xiàn)調試法在具體的目標機平臺上調試應用程序,系統在調試狀態(tài)下的執行情況和實(shí)際運行模式完全一樣,這種方式更有利于開(kāi)發(fā)者實(shí)時(shí)對系統硬件和軟件故障進(jìn)行定位和修改,提高產(chǎn)品開(kāi)發(fā)速度。
選用的調試器是運行在主機上的集成開(kāi)發(fā)環(huán)境,一般需要集編輯、匯編、編譯、鏈接和調試環(huán)境于一體,支持低級匯編語(yǔ)言、C和C++語(yǔ)言,基于友好的圖形用戶(hù)界面(GUI),支持用戶(hù)觀(guān)察或修改嵌入式處理器的寄存器和存儲器配置、數據變量的類(lèi)型和數值,堆棧和寄存器的使用,支持程序斷點(diǎn)設置,單步、斷點(diǎn)或者全速運行等特性。
應用需求的多樣性導致市場(chǎng)上仿真器和調試器的提供商也較多,Windriver公司的Tornado是一個(gè)很好的開(kāi)發(fā)調試工具。根據實(shí)踐經(jīng)驗,一般配套選擇規模較大、信譽(yù)較好公司的仿真器和調試器,雖然價(jià)格偏高,但是這些公司技術(shù)實(shí)力強,售后服務(wù)好,調試器和仿真器開(kāi)發(fā)結合緊密。如果在開(kāi)發(fā)調試過(guò)程遇到技術(shù)障礙,可以通過(guò)電話(huà)或者電子郵件方式及時(shí)獲取技術(shù)支持。如選用ARM系列的嵌入式處理器時(shí),可以購買(mǎi)Multi-ICE仿真器,并附加ARM250集成開(kāi)發(fā)調試環(huán)境等。
4 開(kāi)發(fā)隊伍的技術(shù)水平和結構比例
嵌入式系統開(kāi)發(fā)中選擇好了嵌入式處理器、RTOS、仿真器和調試器等設備外,還需要考慮開(kāi)發(fā)隊伍的技術(shù)水平和結構比例。經(jīng)驗豐富的開(kāi)發(fā)小組都深有體會(huì ):民用產(chǎn)品開(kāi)發(fā)中,產(chǎn)品能夠在預計的時(shí)間內進(jìn)入市場(chǎng)贏(yíng)得效益,其整個(gè)技術(shù)范圍內新技術(shù)比例至多只能達到20%,超過(guò)這個(gè)界限,估算的時(shí)間期限可能會(huì )出現較大偏差。從高層規劃人員的角度分析:20%以?xún)鹊男录夹g(shù),公司可以集中力量,投入足夠多的人力、物力和財力進(jìn)行突破性研究,正常情況下可以達到滿(mǎn)意效果。如果新技術(shù)超出20%這個(gè)范圍,恐怕心有余而力不足。
公司運作以市場(chǎng)作為向導,是市場(chǎng)賦予它們生命。公司看重市場(chǎng),付出的勞動(dòng)有市場(chǎng)回報才能正常運轉。公司在開(kāi)發(fā)過(guò)程中一般都盡量避免風(fēng)險,而且整個(gè)開(kāi)發(fā)過(guò)程中始終將風(fēng)險分析作為重要的參考因素。公司一般都選擇保守的開(kāi)發(fā)模式,基于當前開(kāi)發(fā)人員的技術(shù)實(shí)力和已經(jīng)達到的技術(shù)儲備,在許多種備選方案的技術(shù)論證過(guò)程,充分分析成本收益、風(fēng)險大小、投入資源、開(kāi)發(fā)人員的技術(shù)水平等因素,全面考慮,權衡利弊,盡量選用可靠的,風(fēng)險小的設計方案。
在項目開(kāi)發(fā)中,分配開(kāi)發(fā)人員時(shí)不僅要確保任務(wù)在給定時(shí)間期限內完成的成功性,而且也要體現在鍛煉培養后繼人才方面。任何項目的開(kāi)發(fā),依據需求分析后,經(jīng)過(guò)概要設計和詳細設計,都會(huì )形成模塊化結構,其工作難度也有一定的層次性。這樣,公司在選派項目人員時(shí),需要合理的人員結構安排,現在一般公認的人才結構比例是1(博士或同等學(xué)歷)∶3(碩士或同等學(xué)歷)∶7(學(xué)士、大專(zhuān)或同等學(xué)歷)。在項目開(kāi)發(fā)中,除了開(kāi)發(fā)人員的技術(shù)水平和結構比例外,小組內部的民主化、科學(xué)化管理決策也是很重要的環(huán)節。
5 應用實(shí)例解析
在詳細討論了嵌入式系統開(kāi)發(fā)中的幾個(gè)關(guān)鍵因素后,下面具體闡述這些因素在工作中的具體體現。圖2是個(gè)人數字助理PDA和尋呼機二合一的手持式電子產(chǎn)品結構圖。
該產(chǎn)品的基本功能包括:
?、?個(gè)人數字助理――科學(xué)計算器、英漢互譯辭典、電話(huà)號碼簿、記事日程表等;
?、?交通信息――列車(chē)時(shí)刻表的車(chē)次查詢(xún)和車(chē)站查詢(xún)、民航時(shí)刻表的航班查詢(xún)等;
?、?尋呼信息――接收個(gè)人和公共尋呼信息,個(gè)人尋呼內容實(shí)時(shí)語(yǔ)音合成并播放,尋呼方式更新列車(chē)和民航時(shí)刻表數據等。
分析產(chǎn)品功能結構圖并結合產(chǎn)品的基本功能,可以獲得產(chǎn)品對嵌入式處理器的性能要求:高速嵌入式處理器處理列車(chē)和民航時(shí)刻表查詢(xún)、個(gè)人尋呼內容的實(shí)時(shí)語(yǔ)音合成并播放等。處理器外圍需要自帶語(yǔ)音錄放電路完成語(yǔ)音錄入和播放,串行口和紅外通信口進(jìn)行數據通信,LCD接口電路提供用戶(hù)輸入接口,也需要電源管理模塊完成便攜式電子產(chǎn)品的低功耗設計。
選用ARM公司的嵌入式微控制器EP7211:內含的32位微處理器ARM720T,提供18MHz、36MHz、54MHz和72MHz工作主頻,而且允許用戶(hù)在應用程序中對控制寄存器編程切換處理器工作頻率,這種切換頻率的工作方式,不僅滿(mǎn)足了不同的應用需求,而且降低了系統的功耗。EP7211提供了SRAM和Flash存儲芯片接口,2個(gè)RS232口(1個(gè)自帶紅外信號收發(fā)模塊),支持G_729.a標準的語(yǔ)音錄放Codec模塊,有LCD接口和電源管理部分,支持低電壓監測等。在休眠狀態(tài)下,EP7211支持中斷喚醒功能,喚醒時(shí)間是喚醒頻率的2~3個(gè)周期,芯片提供8kHz的喚醒頻率,使得在休眠狀態(tài)下系統收到尋呼前導信號時(shí)能夠及時(shí)喚醒。
選定了EP7211后就應選擇RTOS了。從產(chǎn)品功能和程序流程的角度分析,系統基本上是單任務(wù)順序處理,但要具備實(shí)時(shí)對尋呼中斷的響應能力。RTOS的選擇有兩個(gè)方案:一是使用已經(jīng)購買(mǎi)的用在油田測井系統SL3000型產(chǎn)品的商用Nucleus,二是使用自主開(kāi)發(fā)的、專(zhuān)門(mén)面向嵌入式應用系統的XGW軟件開(kāi)發(fā)平臺。
XGW軟件開(kāi)發(fā)平臺功能強大,模塊化設計,擴展性強;支持多種點(diǎn)陣和矢量字體;完善的中英文處理接口;支持漢王手寫(xiě)識別和拼音輸入法等。XGW開(kāi)發(fā)平臺是自主研發(fā)的,軟件產(chǎn)品升級和故障排除比較容易,產(chǎn)品成本費用相對較低。選擇EP7211嵌入式處理器和XGW開(kāi)發(fā)平臺,還因為二者在“GPS汽車(chē)導航系統”項目中獲得了成功應用。
關(guān)于集成開(kāi)發(fā)調試環(huán)境,我們購買(mǎi)了ARM公司的ARM250。它基于GUI用戶(hù)接口,一體化的編輯、匯編、編譯、連接和調試多窗口工作環(huán)境,支持單步跟蹤、斷點(diǎn)設置和內存查看等;同時(shí),ARM250開(kāi)發(fā)調試界面和Microsoft 的VC6++集成環(huán)境相似,有助于開(kāi)發(fā)人員快速熟悉和掌握。選用Multi_ICE仿真器,支持在線(xiàn)仿真調試,通過(guò)并行口連接主機,支持程序編譯鏈接后的程序代碼快速加載,加快了代碼調試進(jìn)度。
詳細分析了產(chǎn)品的技術(shù)風(fēng)險,對開(kāi)發(fā)小組而言,只有尋呼系統是比較成熟的新技術(shù),且工作頻率高達155MHz,需要重點(diǎn)解決和其它功能模塊的電磁兼容性,要投入較多的人力資源進(jìn)行重點(diǎn)突破。關(guān)于嵌入式處理器EP7211和自主研發(fā)的XGW軟件開(kāi)發(fā)平臺等,開(kāi)發(fā)人員都有一定的技術(shù)積累和豐富的工作經(jīng)驗。
在系統開(kāi)發(fā)中,設計了兩套技術(shù)調試方案:一是基于內存SRAM模式,二是基于閃存Flash模式。在內存SRAM模式中,系統加電冷啟動(dòng)時(shí),系統完成相關(guān)硬件初始化任務(wù)后執行一段代碼,將系統編譯連接生成的二進(jìn)制可執行代碼從Flash存儲空間完全拷貝到SRAM內存空間中,整個(gè)應用程序調試完全在內存空間執行。此種方案極大加快了龐大應用程序的調試步伐,加快產(chǎn)品開(kāi)發(fā)進(jìn)度。二是在SRAM內存模式調試完應用程序的基礎上,執行閃存Flash調試,系統啟動(dòng)后將中斷服務(wù)程序ISR和少量的內核代碼拷貝到SRAM后在SRAM中執行,其它應用程序在Flash中執行。Flash模式同SRAM模式相比,主要是修改系統啟動(dòng)代碼段,應用程序代碼完全保持一致。Flash模式減少了寶貴的SRAM資源需求、降低了產(chǎn)品開(kāi)發(fā)成本,但是運行速度較SRAM模式慢。
6 小 結
本文詳細闡述了在嵌入式系統開(kāi)發(fā)中嵌入式處理器、嵌入式操作系統、調試器、仿真器以及開(kāi)發(fā)人員的技術(shù)水平和結構比例等組成要素的選擇原則,并且使用一個(gè)具體的實(shí)例來(lái)進(jìn)一步分析說(shuō)明。需要指出的是,這些要素之間不是彼此獨立,而是緊密相關(guān),可能還會(huì )在某些方面相互沖突。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論