《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > ARM嵌入式系統(tǒng)應用中的問題總結分析
ARM嵌入式系統(tǒng)應用中的問題總結分析
互聯(lián)網(wǎng)
摘要:  由于各種新型微處理器的出現(xiàn)和應用的不斷深化,,嵌入式系統(tǒng)在后PC時代得到了空前的發(fā)展,。隨著時間的推移和技術的進步,,在工業(yè)控制和新興的手持式應用等領域,,用戶體驗成為產(chǎn)品成功的關鍵因素之一,越來越多的產(chǎn)品需要良好的用戶界面,、互聯(lián)功能以及較強的數(shù)據(jù)處理能力,,這對嵌入式處理器硬件、軟件,、教學等提出了新的要求。
Abstract:
Key words :

  引言

  由于各種新型微處理器的出現(xiàn)和應用的不斷深化,,嵌入式系統(tǒng)" title="嵌入式系統(tǒng)">嵌入式系統(tǒng)在后PC時代得到了空前的發(fā)展,。隨著時間的推移和技術的進步,在工業(yè)控制和新興的手持式應用等領域,,用戶體驗成為產(chǎn)品成功的關鍵因素之一,,越來越多的產(chǎn)品需要良好的用戶界面,、互聯(lián)功能以及較強的數(shù)據(jù)處理能力,這對嵌入式處理器硬件,、軟件,、教學等提出了新的要求。

  1  嵌入式處理器與硬件

  在處理器方面,,目前大量的中,、低端嵌入式應用,主要使用8/16位單片機,。在國內,,由于歷史的原因,主要是以MCS51核為主的許多不同型號單片機,,主要廠商有Atmel,、Philips、Winbond,、宏晶等,。還有一些近幾年發(fā)展較快的新型單片機,如PIC,、AVR,、MSP430系列等。這些單片機各有特點,,但從目前的發(fā)展角度來看,,單片機針對特定應用領域的個性化發(fā)展愈發(fā)明顯,典型的例子就是TI公司的MSP430系列16位單片機,、ST公司的STM8L系列8位單片機和STM32L系列32位超低功耗單片機,。

  在嵌入式中的高端應用領域,像工業(yè)控制,、POS機,、網(wǎng)絡設備、圖像處理,、手機,、PDA等,目前主要使用ARM" title="ARM">ARM,、MIPS,、PowerPC、DSP等16~64位處理器,,以32位處理器為主,。各種類型的處理器都有其一定的應用針對性。例如,,DSP對數(shù)字信號處理技術中用到的常用運算,、算法做了優(yōu)化設計,,主要用于實時信號處理領域,如實時音視頻處理,、電機控制等,。MIPS處理器性能很好,但功耗較大,,適合于有交流電源供電的固定應用,,如固定的網(wǎng)絡設備、機頂盒等,。ARM處理器性能高,,功耗低,適合于用電池供電的便攜,、手持式設備,。由于近幾年便攜、手持式嵌入式應用的高速發(fā)展,,ARM處理器的增長速度和市場占有率也快速提升,,成為目前32位應用中的主力產(chǎn)品。

  由于嵌入式應用系統(tǒng)的廣泛性,,嵌入式系統(tǒng)的硬件設計涉及的知識面很廣,,從模擬到數(shù)字、低頻到高頻,、小信號到大功率,,以及復雜的時序邏輯設計和PCB設計,還要考慮軟硬件資源的合理分配,,不僅要有廣而扎實的理論基礎,,更需要豐富的實踐經(jīng)驗。只有對大大小小各種應用系統(tǒng)反復實戰(zhàn)演練,,了解新技術,、新器件,使用過多種多樣的處理器和模擬/數(shù)字器件,,才能逐步積累,,聚沙成塔,對一個新的應用系統(tǒng)給出快速,、合理的硬件方案與設計,。

  2  ARM處理器的優(yōu)勢

  對于如今大量出現(xiàn)的32位嵌入式應用,以筆者之見,,ARM處理器的優(yōu)勢主要有以下幾個方面,。

  2.1  高性能、低功耗、低價格

  把ARM處理器的性能拿來和一些著名的通用處理器(如Pentium)相比是不合適的,,因為他們各自針對的應用需求是不同的。Pentium處理器采用多條指令流水線的超標量結構,,追求通用應用目標下的超強性能,,功耗大,可以用散熱器加風扇散熱,。ARM針對嵌入式應用,,在滿足性能要求的前提下,力求最低的功率消耗,。ARM結構的優(yōu)點是能兼顧到性能,、功耗、代碼密度,、價格等幾個方面,,而且做得比較均衡。在性能/功耗比(MIPS/W)方面,ARM處理器具有業(yè)界領先的性能,?;贏RM核的芯片價格也很低,目前ARM CortexM的芯片價格可低至10元人民幣左右,。

  2.2  豐富的可選擇芯片

  ARM只是一個核,,ARM公司自己不生產(chǎn)芯片,采用授權方式給半導體生產(chǎn)商,。目前,,全球幾乎所有的半導體廠家都向ARM公司購買了各種ARM核,配上多種不同的控制器(如LCD控制器,、SDRAM控制器,、DMA控制器等)和外設、接口,,生產(chǎn)各種基于ARM核的芯片,。目前,基于ARM核的各種處理器型號有好幾百種,,在國內市場上,,常見的有ST、TI,、NXP,、Atmel、Samsung,、OKI,、Sharp、Hynix、Crystal等廠家的芯片,。用戶可以根據(jù)各自的應用需求,,從性能、功能等方面考察,,在許多具體型號中選擇最合適的芯片來設計自己的應用系統(tǒng),。由于ARM核采用向上兼容的指令系統(tǒng),用戶開發(fā)的軟件可以非常方便地移植到更高的ARM平臺,。

  2.3  廣泛的第三方支持

  以如今的技術,,設計一個處理器并非難事,但要使這個處理器得到大家認可,,并取得市場成功卻是非常困難的,,其中涉及許多技術與非技術的因素和環(huán)節(jié),還包括時機,、運氣,。因為現(xiàn)在許多產(chǎn)品的開發(fā),不是一個簡單的處理器加幾百條指令,、語句就可以解決的,。要用到32位處理器,一般都要有編譯器,、高效的開發(fā)工具(仿真器及調試環(huán)境),、操作系統(tǒng)、協(xié)議棧等,,這些東西都不是一個芯片生產(chǎn)商可以解決的,,而需要許多第三方的支持。這就像一粒種子,,需要土壤,、空氣、水等環(huán)境才能發(fā)芽,、成長,。這也是我們的一些“中國芯”該反思之處。

  ARM通過近20年的培育,、發(fā)展,,得到了廣泛的第三方合作伙伴支持。目前,,除通用編譯器GCC,,ARM有自己的高效編譯、調試環(huán)境(MDK,、Keil),全球約有50家以上的實時操作系統(tǒng)(RTOS)軟件廠商和30家以上的EDA工具制造商,,還有很多高效率的實時跟蹤調試工具的廠商,,對ARM提供了很好的支持。用戶采用ARM處理器開發(fā)產(chǎn)品,,既可以獲得廣泛的支持,,也便于和同行交流,加快開發(fā)進度,,縮短產(chǎn)品的上市時間,。

  2.4  完整的產(chǎn)品線和發(fā)展規(guī)劃

  ARM核根據(jù)不同應用需求對處理器的性能要求,有一個從ARM7,、ARM9到ARM10、ARM11,,以及新定義的CortexM/R/A系列完整的產(chǎn)品線,。前幾年應用較多的主要是基于V4架構的ARM7TDMI、ARM720T,、ARM920T核的一些處理器芯片,,如NXP的LPC2000系列、ST的STR7/9系列,、Atmel 的AT91系列和Samsung的S3C系列,。近兩年,ARM Cortex系列以更好的性能,、更低的價格得到快速推廣,,典型的就是基于CortexM3的STM32系列。

  ARM CortexM/R/A系列分別針對不同的應用領域,。M系列主要面向傳統(tǒng)微控制器(MCU/單片機)應用,,這類應用面很廣,要求處理器有豐富的外設,,并且各方面比較均衡,;R系列強調實時性,主要用于實時控制,,如汽車引擎,;A系列面向高性能、低功耗應用系統(tǒng),,如智能手機,。選用ARM處理器進行開發(fā),技術積累性較強,,生命周期長,,設計重用度高,不易被淘汰,。用戶在選擇ARM處理器時,,可以針對應用需求,從大量的ARM芯片中選用滿足性能、功能要求的產(chǎn)品,,以獲得較好的性價比,。

  3  ARM嵌入式系統(tǒng)的軟件

  由于嵌入式系統(tǒng)的差異性很大,對不同的應用需求,,必須選擇不同的軟件設計方法,、開發(fā)平臺和系統(tǒng)工具。

  對于一些不需要復雜圖形用戶界面,、通信協(xié)議和復雜文件操作(如同時打開多個文件)的應用,,如果選用CortexM3核的處理器就已可以滿足要求,任務數(shù)不多,,任務之間的關系也不復雜,,則不一定需要移植復雜的操作系統(tǒng)。這樣一方面可以降低系統(tǒng)硬件開銷,,也可以獲得更好的實時性和執(zhí)行速度,。不過,這樣的軟件開發(fā)方法需要開發(fā)人員有較好的程序設計思想,,對所用器件有深入的了解,,并掌握其編程控制方法。若引入一個簡單的操作系統(tǒng),,如μC/OS,,可以簡化程序結構,但開發(fā)者最好熟悉其內核結構,,并有使用經(jīng)驗,,否則可能會需要更多的系統(tǒng)開發(fā)、調試時間,。

  如果選擇了帶存儲器管理單元(MMU)的ARM處理器(如ARM920T,、CortexA8等),這種應用系統(tǒng)根據(jù)應用,、實時性,、開發(fā)環(huán)境等因素,移植一個功能較強的操作系統(tǒng)一般情況下會比較合適,,如Linux,、WinCE,甚至新的Android等,。這種系統(tǒng)的開發(fā)難度主要是在OS的移植以及硬件驅動程序的開發(fā)上,。當這二步工作完成后,主要的軟件開發(fā)工作已和在PC機上開發(fā)沒有多大區(qū)別,,可以按照一般的軟件工程方法來進行,,要注意的只是與ARM硬件平臺相關的軟件優(yōu)化問題,。

  由于嵌入式系統(tǒng)硬件資源的有限性,嵌入式軟件與其他應用軟件的主要區(qū)別,,在于嵌入式軟件要有較高的效率,,包括執(zhí)行速度和存儲空間,盡管這二者經(jīng)常是相互矛盾的,。目前一般要求更多的是速度優(yōu)化,。要編寫出高效的ARM程序,需要開發(fā)人員熟悉ARM的體系結構,,包括內核結構,、指令系統(tǒng)、Cache與存儲器結構等,,還要有好的程序設計思想,,以及對一些常用函數(shù)、算法的深刻理解,。這個過程也是ARM系統(tǒng)開發(fā)從低級到高級的進階之路。

  目前,,由于應用系統(tǒng)越來越復雜,,嵌入式軟件的移植性和重用性也得到了人們的高度重視,因為它直接影響到嵌入式軟件的開發(fā)效率和質量,。選擇一種通用的開發(fā)環(huán)境和高級編程語言,,使開發(fā)的嵌入式軟件可以方便地移植到不同的硬件平臺,是實現(xiàn)軟件重用的基礎,。目前在ARM嵌入式系統(tǒng)開發(fā)中,,ARM RealView、Keil以及IAR的EWARM是較好的開發(fā)平臺,,C/C++語言是應用最廣泛的編程語言,,并具有廣泛的庫函數(shù)、程序支持,,在今后很長一段時間內,,仍將在嵌入式系統(tǒng)應用領域中占重要地位。

  4  嵌入式系統(tǒng)的教學

  如今,,嵌入式系統(tǒng)作為一個熱門領域,,其教學問題也頗受高校的關注。教學的主要目的是培養(yǎng)社會需要的人,,由于嵌入式系統(tǒng)的廣泛性,、差異性,社會對從事嵌入系統(tǒng)開發(fā)人員的要求也有很大的不同,,既需要從事簡單8/16位單片機開發(fā)的人員,,也需要從事ARM,、DSP開發(fā)的人員;既要有從事硬件,、底層軟件開發(fā)的人員,,也要有從事OS移植、應用軟件開發(fā)的人員,。由于整個大學學習時間和課程教學時數(shù)的限制,,一個人顯然不可能學習、掌握嵌入系統(tǒng)開發(fā)的各個層面,。所以,,各個學校首先應根據(jù)自身情況,明確定位,,確定自己培養(yǎng)學生的社會適應面,,然后再制定教學大綱,確定課程內容和實驗平臺,。對于高職,、普通高校的電類與非電類專業(yè)、軟件學院等,,都應該有不同的選擇,,而不是人云亦云,一哄而上,。

  就目前的發(fā)展看,,由于ARM等32位處理器應用漸成主流,開發(fā)工具已較完善,、成熟,,對于普通高校計算機學科的嵌入式系統(tǒng)教學,筆者認為可以定位在以32位嵌入式系統(tǒng)開發(fā)為主,,重點是嵌入式系統(tǒng)的軟硬件結構,、嵌入式OS的知識,以及嵌入式軟件設計(包括優(yōu)化),。課程主體內容基本與硬件平臺(處理器型號)無關,,實驗可以采用基于ARM核的不同廠家處理器的實驗平臺。主要考慮以下幾點:

 

 ?、僭?2位嵌入式系統(tǒng)開發(fā)上,,軟件開發(fā)人員的需求比硬件開發(fā)人員要多得多(盡管目前硬件開發(fā)人員較難找,但這應該是電子等專業(yè)培養(yǎng)的),。一般在一個從事嵌入式應用系統(tǒng)開發(fā)的公司中,,軟硬件人員的比例不會小于10:1。由于學習時間有限,,教學重點應該偏軟件,。

 ?、诂F(xiàn)代社會強調分工、合作,,以求得整體利益的最大化,。對個人的要求首先是專才,能把局部工作做精,、做好,。通才是需要的,但數(shù)量會比專才少得多,,而且通才是練出來的,,不是教出來的。今后的大學是大眾教育,,教學只能面向大眾需求,。在相關專業(yè)的研究生階段,對一些有基礎,、有興趣的學生,,可以進行一些系統(tǒng)級硬件、底層軟件的開發(fā)實踐,,同時也可滿足社會對高層次嵌入式人才的需要,。

  ③以此為主,,可以再開設2門選修課。向下為“單片機原理與應用”,,此課程以實踐為主,,讓有興趣的學生可以自己設計、制作一些單片機應用系統(tǒng),,同時也鍛煉了硬件動手能力,。向上為“數(shù)字信號處理(DSP)”,讓那些數(shù)學基礎較好,、對實時信號處理有興趣的學生有用武之地(現(xiàn)在這樣的學生很難得),。

  另外,由于應用日趨復雜,,而教學時間有限,,一個本科生在校期間不可能深入學習嵌入式系統(tǒng)的很多細節(jié),嵌入式教學應采用自上而下的教學方法,。一開始不必花很多時間講解處理器內核架構/指令系統(tǒng),,只要知道各種內核的基本特點即可,重點學習,、掌握處理器,、外設的編程結構(即編程者角度看到的編程模型結構,,非具體物理實現(xiàn)結構)。真實的應用,、研究設計都是從粗粒度向細粒度進階的,,是一個自頂向下的過程,首先要重視的是系統(tǒng)架構和各個抽象層,。1000行的C程序,,編譯后生成的目標代碼只有10 KB左右,試想現(xiàn)在的MCU Flash動輒幾百KB,,為什么,?一個目標代碼幾百KB的C程序,一般不是完全由個人寫出來的,,而都會使用一些第三方的庫函數(shù),、中間件等。硬件也一樣,,現(xiàn)在很多硬件系統(tǒng)都會使用一些模塊(Module),,盡管這些模塊看上去還是一個芯片,但實際上已經(jīng)是一個SiP模塊,,如WiFi模塊,。所以,在了解基本嵌入式系統(tǒng)結構的基礎上,,本科階段要更多地學習各種系統(tǒng),、模塊、外設,、協(xié)議,、庫函數(shù)的“邊界(InteRFace)”,能夠搭建一個簡單系統(tǒng)(How to do),,今后在工作,、或研究生階段進一步去做好一個系統(tǒng)(How to do better)。

  5結語

  嵌入式系統(tǒng)作為一種特殊的計算機應用系統(tǒng),,在任何時期都有相對的高,、中、低端應用,,即使在今后,,沒有OS支持的4位或8位單片機的嵌入式應用仍有大量需求,但趨勢是系統(tǒng)化,、復雜化,。這既是嵌入式系統(tǒng)的特點--廣泛性、差異性和不可壟斷性,,也是廣大嵌入系統(tǒng)研發(fā)人員的生存與發(fā)展空間,。ARM處理器在便攜,、手持式設備以及工業(yè)控制等應用領域,在今后相當長的時間內是一個很好的選擇,。當然,,沒有一種型號的處理器是可以覆蓋所有應用的,也不是搬上一個嵌入式OS,,就可以很好地解決軟件問題的,。深入了解各種器件特性,選擇最合適的處理器,、外圍器件,、操作系統(tǒng)和軟件庫,盡可能地優(yōu)化軟件設計,,最貼切地滿足應用需求,,以獲得最好的系統(tǒng)性價比,是嵌入式系統(tǒng)設計開發(fā)的精髓,。

此內容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權禁止轉載。