嵌入式系統教學(xué)模式探討
從1985年初接觸單片機到現在已有20余年,親歷我國嵌入式系統的發(fā)展,也從事著(zhù)嵌入式系統教學(xué)的探索。在社會(huì )上開(kāi)始單片機培訓7年后高校才大規模開(kāi)設單片機課程,而嵌入式系統課程只是全面鋪開(kāi),并沒(méi)有形成由應用推動(dòng)的嵌入式系統教學(xué)體系,這值得探討和反思。
由8/16位單片機到采用32位嵌入式處理器的嵌入式系統,一方面是互聯(lián)網(wǎng)的普及和高端應用的需求,另一方面是8位單片機對半導體公司來(lái)說(shuō)利潤空間已經(jīng)很小。由全國大學(xué)生電子設計競賽組委會(huì )主辦、Intel公司協(xié)辦的“全國大學(xué)生電子設計競賽——嵌入式系統專(zhuān)題競賽”進(jìn)一步豐富了全國大學(xué)生電子設計競賽的形式和內容,推動(dòng)了高校信息電子類(lèi)專(zhuān)業(yè)教學(xué)改革、課程體系及實(shí)驗室建設,各高校紛紛開(kāi)設嵌入式系統課程。2002年舉辦的首屆嵌入式系統專(zhuān)題競賽采用Intel公司提供的基于StrongARM和Windows CE的開(kāi)發(fā)板。只有北京大學(xué)參賽隊采用了Linux操作系統,并最終獲得了Intel杯。嵌入式系統不只是ARM和Linux的組合,可用于嵌入式應用的微處理器和嵌入式操作系統種類(lèi)繁多。下面評介流行的、適合嵌入式系統教學(xué)的微處理器和嵌入式操作系統,探討嵌入式系統教學(xué)模式和經(jīng)驗。
1 嵌入式處理器
用于嵌入式應用的處理器可分為4類(lèi):微控制器(即俗稱(chēng)單片機,Microcontroller Unit,MCU)、嵌入式微處理器(Embedded Microprocessor Unit,EMPU)、信號處理領(lǐng)域的DSP處理器(Digital Signal Processor,DSP)和高度集成的片上系統(System on Chip,SoC)。目前用于教學(xué)的嵌入式處理器大致形成了以8位、16位和32位劃分的局面。
單片機教學(xué)最流行的是8051系列。8051是Intel公司1980年設計的8位MCU。20世紀80年代中期,Intel公司將8051單片機內核使用權以專(zhuān)利互換或出售形式轉讓給世界許多著(zhù)名的IC制造廠(chǎng)商,如Philips、Atme1、Dallas、Infineon、ADI、Winbond和Silicon Labs公司等,這樣8051就變成有眾多制造廠(chǎng)商支持的、發(fā)展出上百個(gè)品種的大家族。到目前為止,其他任何一個(gè)單片機系列均未發(fā)展到如此的規模,近30年一直是普遍流行的產(chǎn)品,如此具有生命力。8051是單片機教學(xué)的首選機型,已成為單片機領(lǐng)域的實(shí)際標準?,F在C8051F系列和STC89系列就是8051生命力的最好體現,前一種是SoC型單片機,功能更強,后一種價(jià)格相當便宜。Oregano System公司的Core8051 IP和Synopsys公司的DW8051_core是與8051指令兼容的8位單片機IP核?;贗P核和FPGA的SoC設計方法具有極大的靈活性,可以大大縮短項目的開(kāi)發(fā)周期。
Microchip公司的PIC系列倚靠大學(xué)計劃,使得在單片機教學(xué)中采用PIC系列單片機的高校不少。值得欣賞的是這個(gè)公司非常專(zhuān)注,它把8位PIC單片機做到了60億顆?,F在他們才用MIPS核推出32位微控制器。MIPS是美國計算機體系結構課教學(xué)機型,國產(chǎn)的龍芯CPU就是MIPS兼容的。Atmel公司的AVR系列同PIC系列一樣也是RISC結構的單片機,得益于啟東人成長(cháng)起來(lái)的雙龍公司代理該系列產(chǎn)品。AVR系列單片機也在教學(xué)中采用,甚至推廣到了中學(xué)課外科技活動(dòng)中。這些從國內出版的單片機教材中可見(jiàn)一斑。
在DSP芯片教學(xué)中,TI公司做得最好,TMS320C54x系列靠大學(xué)計劃得到普及。該公司后續推廣的TMS320C240系列和MSP430系列單片機也得益于大學(xué)計劃。ADI公司也利用大學(xué)計劃推廣DSP芯片。Freescale公司(原Motorola公司半導體部)大學(xué)計劃推廣DSP芯片、通信用PowerPC芯片和單片機。
ARM公司是一家不生產(chǎn)芯片,只提供IP授權的公司,它的產(chǎn)品已經(jīng)成為32位嵌入式系統的事實(shí)標準。ARM嵌入式處理器以它獨特的IP授權形式得到了眾多半導體廠(chǎng)家的青睞。DSP生產(chǎn)廠(chǎng)家購買(mǎi)它的RISC核做雙核芯片,PLD生產(chǎn)廠(chǎng)商購買(mǎi)其IP核支持SoC設計,大多數半導體廠(chǎng)商設計MPU或MCU。NXP公司(原Philips公司半導體部)靠廣州周立功公司的推廣,其LPC系列ARM7核微控制器在教學(xué)中得到采用。采用ARM公司最新Cortex核的意法半導體公司的STM32系列和Luminary公司的群星系列微控制器正在推廣過(guò)程中。ARM9核芯片方面,因NXP公司和Atmel公司的芯片都不帶LCD控制器,做實(shí)驗箱普遍都采用了三星公司的S3C2410芯片。但三星公司對散客沒(méi)有支持,優(yōu)勢只是價(jià)格便宜。Intel公司出售了ARM核的XScale,主推自己的EIA架構,對高端嵌入式系統教學(xué)有一定的影響。
SoC片上系統更是嵌入式系統的終極目標。大學(xué)計劃做得最好的是Altera公司,它推出了Nios軟核的SOPC解決方案,并舉辦創(chuàng )新競賽。Xilinx公司也有大學(xué)計劃,推廣Microblaze軟核FPGA?,F在還有Actel公司,在推廣帶ARM CortexM硬核和8051軟核的FPGA芯片。
總之,嵌入式系統教學(xué)用處理器應選用主流芯片,或有廠(chǎng)家大學(xué)計劃支持的芯片。若教學(xué)偏重硬件設計,要教會(huì )學(xué)生制板、做硬件應用系統,最好選擇8/16位芯片、ARM7或CortexM芯片。200MHz以上的ARM9芯片對布線(xiàn)的要求高,而且表面貼裝引腳較多的芯片也需要專(zhuān)門(mén)的焊接設備。
2 嵌入式操作系統
Linux從1991年問(wèn)世到現在,短短十幾年時(shí)間已經(jīng)發(fā)展成為功能強大、設計完善的操作系統之一,不僅可以與各種傳統的商業(yè)操作系統抗爭,在新興的嵌入式系統領(lǐng)域內也獲得了飛速發(fā)展。嵌入式Linux以其可應用于多種硬件平臺、內核高效穩定、開(kāi)放源碼、軟件豐富、完善的網(wǎng)絡(luò )通信和文件管理機制等優(yōu)良特性,成為嵌入式系統領(lǐng)域中的一個(gè)研究熱點(diǎn)。Linux開(kāi)放源碼及內核可裁減非常適用于嵌入式系統教學(xué)。要注意,沒(méi)有MMU的微控制器只能使用μClinux,要使用流行的圖形用戶(hù)界面GUI需要ARM9以上的微處理器和普通Linux操作系統。
Windows CE是微軟公司從整體上為有限資源的平臺設計的多線(xiàn)程、完整優(yōu)先權、多任務(wù)的操作系統。它的模塊化設計允許對從掌上電腦到專(zhuān)用工業(yè)控制器的用戶(hù)電子設備進(jìn)行定制。微軟公司的大學(xué)計劃支持高校的嵌入式系統教學(xué),提供有時(shí)間限制的安裝軟件光盤(pán)和完整的教學(xué)課件。會(huì )微機編程的人能夠很容易上手Windows CE編程,軟件學(xué)院教學(xué)選用它很合適。更重要的是微軟提供完整的解決方案,學(xué)生可以專(zhuān)注于應用的開(kāi)發(fā)。
VxWorks操作系統是美國WindRiver公司于1983年設計開(kāi)發(fā)的一種實(shí)時(shí)操作系統。VxWorks擁有良好的持續發(fā)展能力、高性能的內核以及友好的用戶(hù)開(kāi)發(fā)環(huán)境,在實(shí)時(shí)操作系統領(lǐng)域占據一席之地。它以其良好的可靠性和卓越的實(shí)時(shí)性被廣泛地應用在通信、軍事、航空、航天等高精尖技術(shù)及實(shí)時(shí)性要求極高的領(lǐng)域中。VxWorks是商業(yè)化強實(shí)時(shí)操作系統,價(jià)格較高。風(fēng)河公司有大學(xué)計劃支持嵌入式系統教學(xué)?,F在它從FSMlabs購買(mǎi)了RTLinux,對實(shí)時(shí)Linux開(kāi)發(fā)設計提供專(zhuān)業(yè)的開(kāi)發(fā)平臺。
μC/OS是由美國人Jean J.Labrosse開(kāi)發(fā)的實(shí)時(shí)嵌入式操作系統內核。這個(gè)內核的產(chǎn)生和Linux有點(diǎn)相似:
由于從事嵌入式產(chǎn)品的相關(guān)開(kāi)發(fā)和Labrosse本人的興趣,他花了一年時(shí)間開(kāi)發(fā)了這個(gè)最初名為μC/OS的實(shí)時(shí)操作系統。值得注意的是μC/OS只是一個(gè)操作系統內核,沒(méi)有文件系統、網(wǎng)絡(luò )協(xié)議和圖形用戶(hù)界面。μC/OS是開(kāi)源的,但不免費。針對教育和非商業(yè)應用只要買(mǎi)Labrosse的書(shū)即可得到光盤(pán)上的源碼,但用其開(kāi)發(fā)產(chǎn)品是要付費的。周立功公司購買(mǎi)了μC/OS授權,自己設計了文件系統ZLG/FS、網(wǎng)絡(luò )協(xié)議ZLG/IP和圖形用戶(hù)界面ZLG/GUI,提供了開(kāi)發(fā)平臺。Labrosse的Micrium公司通過(guò)北京麥克泰軟件公司代理其產(chǎn)品。該軟件代碼很規范,沒(méi)有使用操作系統課程中很專(zhuān)業(yè)的進(jìn)程和線(xiàn)程的概念,只使用了任務(wù),適合沒(méi)有學(xué)過(guò)操作系統課程的開(kāi)發(fā)人員學(xué)習。
總之,嵌入式系統教學(xué)用嵌入式操作系統也要慎重選擇,能選用主流或有廠(chǎng)家大學(xué)計劃支持的更好。一般只需選擇一種,從精通一種到能開(kāi)發(fā)項目。實(shí)際上一通百通,再學(xué)習其他的操作系統也不困難。
本文引用地址:http://dyxdggzs.com/article/201706/349428.htm
3 嵌入式系統教學(xué)探索
3.1 應用推動(dòng)嵌入式教學(xué)
筆者1985年起給單片機培訓班上課,當時(shí)的培訓班學(xué)員來(lái)自研究所、公司和高校。培訓班的目的是銷(xiāo)售和培訓廠(chǎng)商的開(kāi)發(fā)工具,不收取費用。很多學(xué)員都有項目需求,學(xué)會(huì )使用工具后直接參與項目。這種單片機推廣培訓開(kāi)展7年后,國內高校才大規模開(kāi)課。由于單片機應用已經(jīng)全面鋪開(kāi),高校培養的學(xué)生很容易找到工作。
現在的嵌入式系統教學(xué)很大程度上不是由應用來(lái)推動(dòng)的,而是跟著(zhù)實(shí)驗箱廠(chǎng)家提供的內容來(lái)規劃授課內容,包括接口技術(shù)、匯編編程、C語(yǔ)言編程、操作系統移植。甚至ARM加Linux似乎就是嵌入式系統。存在的問(wèn)題是,Linux開(kāi)放源代碼、免費但無(wú)人支持,一旦碰到難點(diǎn)只能網(wǎng)上求援。很多小公司吃了苦頭,再不敢用Linux做產(chǎn)品;有的轉向Windows CE,因為無(wú)法把握產(chǎn)品的開(kāi)發(fā)周期,而且人員成本較大。雖然Linux可以免費得到,但是其上流行的圖形用戶(hù)界面GUI又是收費的,按照GPL協(xié)議還得公開(kāi)自己的源碼。Linux的教學(xué)難度也很大,一般學(xué)過(guò)操作系統才好辦。最早的嵌入式系統課將很大精力消耗在教學(xué)生怎么用Linux,直到計算機操作系統課加了Linux上機實(shí)驗上手才比較順利。從Intel公司大學(xué)計劃送給高校教學(xué)用的PDA參考設計——SitSang板子的培訓教師看,硬件部分的培訓教師是板子的設計者,是學(xué)電子技術(shù)的,主要講硬件原理,軟件只是用C語(yǔ)言編寫(xiě)測試程序來(lái)測試板子的各個(gè)部件是否工作正常;軟件部分的培訓教師是學(xué)計算機的,主要講如何移植Linux、設計驅動(dòng)程序和應用程序??梢?jiàn)大公司軟硬件人才分工很明確。
實(shí)際上一個(gè)項目的軟硬件開(kāi)發(fā)人員比例可以到8∶2。也就是說(shuō)若有10人,其中做硬件的只有2人,大部分人要開(kāi)發(fā)軟件。硬件有參考設計原理圖,做出來(lái)即可;而軟件體現著(zhù)創(chuàng )意,體現產(chǎn)品的附加值。軟件很重要,拿VCD機和蘋(píng)果公司的iPOD比較,國內VCD機只能賣(mài)到幾百元,而蘋(píng)果公司的iPOD要賣(mài)幾千元。硬件成本兩者相比差不多,關(guān)鍵是軟件。微軟的移動(dòng)和嵌入式研討會(huì )令人感到震撼。微軟資助用Windows Mobile開(kāi)發(fā)云南白藥集團企業(yè)管理用手機和城管通手機:
企業(yè)銷(xiāo)售人員用前者隨時(shí)和企業(yè)聯(lián)系,一次拜訪(fǎng)客戶(hù)即可把訂單做好;城管通手機使城管監督員可將所在地點(diǎn)的門(mén)牌標識和臟亂差的情況拍照,直接發(fā)送給城管部門(mén)。微軟公司介入嵌入式領(lǐng)域,提供的是完整的解決方案,用戶(hù)很快就能開(kāi)發(fā)出產(chǎn)品。反觀(guān)國內的嵌入式Linux,還陷在移植和底層接口模塊的使用上。一般來(lái)講這些適合偏硬件的人員做,距離做出產(chǎn)品還相去甚遠。半導體廠(chǎng)商偏愛(ài)Linux是因為它是免費的,只要移植到評估板上就能證明處理器是正常工作的。真正要能開(kāi)發(fā)出產(chǎn)品還得搭建應用平臺。目前大的廠(chǎng)商都有手機平臺、PDA平臺或汽車(chē)電子平臺。軟件類(lèi)嵌入式系統教學(xué)應該與硬件類(lèi)嵌入式系統教學(xué)有所不同,應側重平臺搭建、GUI應用的開(kāi)發(fā),讓學(xué)生能把自己的創(chuàng )意實(shí)現出來(lái)。至于編程,應以C語(yǔ)言為主、匯編語(yǔ)言為輔,優(yōu)化則采用模塊化混合編程。嵌入式系統課的實(shí)踐性非常強,要上成理論課就失去了它的意義。
3.2 嵌入式系統的專(zhuān)業(yè)化分工
嵌入式系統教學(xué)需要前期開(kāi)設的基礎課有:模擬電路和數字電路、微機原理或計算機組成原理、計算機接口技術(shù)、操作系統、C語(yǔ)言程序設計。嵌入式系統支柱學(xué)科有:微電子學(xué)科、計算機學(xué)科、電子技術(shù)學(xué)科及對象學(xué)科。微電子學(xué)科、計算機學(xué)科、電子技術(shù)學(xué)科為嵌入式應用構筑各種類(lèi)型的應用平臺,不介入嵌入式系統的具體應用;對象學(xué)科一定要在嵌入式系統應用平臺的基礎上,實(shí)現嵌入式系統在本學(xué)科領(lǐng)域的產(chǎn)品化應用,不必介入嵌入式系統的平臺構建。操作系統的構建應該定位在計算機學(xué)科領(lǐng)域。在對象領(lǐng)域中,操作系統被視為工具,只需了解操作系統與應用界面?;诖?,各個(gè)專(zhuān)業(yè)的嵌入式系統教學(xué)應有所側重,不能千篇一律;只有把國內的嵌入式應用推動(dòng)起來(lái),培養的學(xué)生才能好找工作。這樣看來(lái),本科教學(xué)中,電子技術(shù)專(zhuān)業(yè)應側重講接口技術(shù)和驅動(dòng)程序設計,非電類(lèi)的對象應用專(zhuān)業(yè)應側重單片機接口和C語(yǔ)言編程技術(shù),計算機專(zhuān)業(yè)應側重GUI應用和驅動(dòng)程序。至于操作系統移植,并非一般教學(xué)內容,應安排在本科畢業(yè)設計或研究生階段教學(xué)。實(shí)際教學(xué)能做到“師傅領(lǐng)進(jìn)門(mén),修行在個(gè)人”即可,主要是培養學(xué)生對嵌入式系統的興趣,而不能因涉及面太廣、難度太大而把學(xué)生們嚇跑。各高校嵌入式系統課多為選修課,學(xué)時(shí)有限,規劃主要的教學(xué)內容和實(shí)驗內容側重點(diǎn)是教師的首要任務(wù)。
3.3 加強嵌入式系統的實(shí)踐能力
筆者“嵌入式系統”選修課圍繞ARM和Linux,按照驗證性實(shí)驗、綜合性實(shí)驗和創(chuàng )新性實(shí)驗等3個(gè)層次逐漸培養學(xué)生開(kāi)發(fā)應用程序和驅動(dòng)程序的能力。實(shí)驗教學(xué)中心采購了多種實(shí)驗箱。針對實(shí)驗設備的多樣性,采用驅動(dòng)程序屏蔽的方法,給學(xué)生提供一致的應用程序編程接口,利用實(shí)驗設備共性的部分開(kāi)設基礎的驗證性實(shí)驗。同時(shí),針對各種外設開(kāi)發(fā)出各種實(shí)驗樣例程序,如液晶屏、觸摸屏、小鍵盤(pán)和攝像頭等,由學(xué)生自由組合成綜合性實(shí)驗。對于實(shí)驗設備選配件以及未開(kāi)發(fā)的部分,允許學(xué)生自主命題,申請器件進(jìn)行創(chuàng )新性設計。這已經(jīng)不是課內的內容,而是作為對嵌入式系統感興趣的學(xué)生的課外科技活動(dòng)?;贕TK+圖形庫的開(kāi)源LiPS手機平臺被移植到實(shí)驗箱上。手機是未來(lái)的電腦,三大Linux手機標準聯(lián)盟正推動(dòng)著(zhù)基于Linux的手機開(kāi)發(fā)。鼓勵大三和大四學(xué)生選修嵌入式系統課,側重圖片顯示、觸摸屏和視頻采集的內容,通過(guò)開(kāi)源手機平臺等提高學(xué)生對硬件類(lèi)課程的興趣。上課和開(kāi)設實(shí)驗更多是為了發(fā)現對嵌入式系統感興趣的學(xué)生,嵌入式系統課程不是普及教育,而是精英教育。光學(xué)課本,沒(méi)有長(cháng)時(shí)間的動(dòng)手實(shí)踐,根本不行?;叵虢佑|嵌入式Linux之初,買(mǎi)遍了市面上嵌入式Linux的書(shū)也沒(méi)有找到一個(gè)模塊化驅動(dòng)程序的開(kāi)發(fā)樣例,最后不得不求助在Freescale公司工作的學(xué)生。從只會(huì )畫(huà)單色圓的實(shí)驗設備做起到積累大量實(shí)驗樣例,深深感到只把Linux移植到具體的板子遠遠滿(mǎn)足不了嵌入式Linux應用的要求,應用程序和驅動(dòng)程序開(kāi)發(fā)才是嵌入式系統開(kāi)發(fā)的關(guān)鍵。只有把嵌入式Linux的應用推動(dòng)起來(lái),國內高端嵌入式應用才能健康發(fā)展?,F在更缺少嵌入式軟件人才,希望培養學(xué)生對嵌入式系統的興趣,更多地側重多媒體、人機交互和GUI的程序設計。
因實(shí)驗箱廠(chǎng)商的支持有限,倡議成立嵌入式系統教學(xué)聯(lián)盟,尋找提供交流的平臺。按照各個(gè)專(zhuān)業(yè)的特點(diǎn)設計實(shí)驗樣例,能有自己的OS和GUI。希望不久的將來(lái)在國內能看到大量基于Linux的產(chǎn)品,學(xué)生們也能更好找工作。
3.4 重視開(kāi)發(fā)環(huán)境的教學(xué)
2008年5~7月,ARM公司舉辦“微控制器市場(chǎng)創(chuàng )新研討會(huì )”。會(huì )議的主題內容是:ARM MCU市場(chǎng)和技術(shù)發(fā)展趨勢、各半導體廠(chǎng)商基于A(yíng)RM的MCU產(chǎn)品及技術(shù)方案和針對ARM MCU的開(kāi)發(fā)工具解決方案。ARM公司合作伙伴Atmel、Luminary、NXP和ST公司及其代理商介紹自己的MCU并展示開(kāi)發(fā)板。
ARM公司推出的CortexM核專(zhuān)門(mén)針對微控制器市場(chǎng)。ARM公司收購德國Keil公司并投資英蓓特公司,推出中國版的RealView MDK開(kāi)發(fā)平臺。這樣原用8051單片機的用戶(hù)可使用熟悉的開(kāi)發(fā)環(huán)境過(guò)渡到ARM MCU的應用。此次會(huì )議的新理念是,用ARM來(lái)統一支離破碎的微控制器市場(chǎng)開(kāi)發(fā)環(huán)境,以后微控制器的選型不再以8位、16位和32位來(lái)區分,而是以高、中、低檔芯片來(lái)劃分。因為這些微控制器都有統一的機“芯”,區別只是它們的外圍部件不同和廠(chǎng)商的技術(shù)支持不同。這樣,工具和軟件都可以重復使用,不用購置各種開(kāi)發(fā)工具。在整個(gè)芯片成本中CPU只占很少的部分,芯片的價(jià)格不是由CPU核來(lái)確定,再按位數來(lái)評價(jià)MCU沒(méi)有意義,應按外圍部件和Flash容量等來(lái)確定。Microchip公司用MIPS核推出了32位微控制器。這都顯現出通用的內核、廣泛的支持、一致的開(kāi)發(fā)環(huán)境是未來(lái)的發(fā)展趨勢,也是嵌入式系統教學(xué)的新曙光。
結語(yǔ)
其實(shí)各高校也不一定淘汰單片機教學(xué)而一味去講帶操作系統的嵌入式系統。適時(shí)更新一部分教學(xué)內容,跟上時(shí)代的發(fā)展即可。ARM現在也同樣看中單片機的應用市場(chǎng)。只要大家記住教學(xué)是為了滿(mǎn)足應用的需求,社會(huì )有什么需求,就朝什么方向努力。嵌入式系統沒(méi)有單一、通用的教學(xué)模式,正像嵌入式系統是面向對象領(lǐng)域的專(zhuān)用計算機系統,只有突出自己的專(zhuān)業(yè)特點(diǎn)才能更好地為社會(huì )服務(wù)。
評論