汪湛清, 彭熙偉, 郭玉潔, 鄭戍華
(北京理工大學自動化學院,北京100081)
隨著嵌入式系統在國內外自動化等各領域的需求變得日益廣泛而深入,北京理工大學自動化專業自2006年開設了嵌入式系統理論課。鑒于實驗教學在嵌入式系統教學中是一個至關重要的環節,近些年來在自動化學院展開了一系列嵌入式系統的實驗教學,目前已開設的嵌入式系統實驗教學課包括嵌入式系統課內實驗、嵌入式系統實驗選修課、嵌入式系統開放實驗課。
圖1給出了北京理工大學自動化專業嵌入式系統實驗課體系關系圖,此圖中嵌入式系統實驗課統領三個主要系列,從左到右依次為處理器系列(微機原理實驗、單片機課程設計、DSP實驗);接口系列(目前主要為現場總線技術實驗);結合控制對象系列(可編程序控制器實驗、組態軟件及自動化裝置實驗)。

圖1 嵌入式系統實驗課體系
嵌入式系統是一門匯集計算機軟硬件、數字電路設計、模擬電路設計、應用領域專業技術等方方面面知識的綜合性課程[1-2],因此需要學生掌握各種理論知識以及設計與調試實踐技能,這也給嵌入式系統實驗造成很大的挑戰。首先,需要設計一款合適的嵌入式系統實驗教學平臺;第二,合理選材與設置實驗前需要講授的知識技術內容;第三,克服陡峭學習曲線。針對這三個挑戰問題,在本文后續部分依次論述。

圖2 嵌入式系統實驗平臺核心及擴展功能單元
設計開發合理適用的實驗平臺對有效完成實驗教學至關重要。依據調研可知,ARM(Advanced RICS Machines)是嵌入式微處理器行業的一家知名企業,設計了大量高性能、廉價、低功耗的RISC處理器、相關技術及軟件。目前已有大量的廠商購買ARM的知識產權生產了不同性能和不同應用領域的ARM處理器,近十幾年來以ARM作為嵌入式系統教學的核心已成為一種趨勢。
在設計嵌入式系統實驗平臺時,首先需要考慮的是:選用哪一款ARM處理器?因為平臺的主要目的是教學實驗,所以選用目前市場上主流的Samsung公司的ARM 9[3]列處理器作為實驗平臺的核心處理器。與此同時,考慮到市場上日益出現的具有不同性能和針對不同應用的ARM處理器,希望本平臺能兼顧一些高性能和特殊應用的基于ARM的高性能嵌入式系統的開發,例如Marvell Xscale 270和TIDM355等。
為了兼顧多種處理器內核,考慮以“核心板”+“擴展板”作為本實驗平臺的基本架構。核心板即帶有不同ARM處理器的主板(可以是Samsung ARM9核心板、Marvell Xscale270核心板、TI DM355核心板等);擴展板則是既能兼顧三款核心板,又能擴展出多種外部接口單元以及各種定制模塊的電路板。因此本平臺的硬件研制重點分為五步:首先,要充分了解三種不同類型的ARM處理器的性能和應用;其次,劃分出三款核心板與擴展板各自的功能;第三,定義出核心板與擴展板的連接線;第四,在擴展板上,規劃出各個接口單元并為學生自主定制模塊設計預留接口;最后,分別設計核心板和擴展板。
圖2給出了基于上述設計思路而展開的圍繞嵌入式系統ARM核心的各功能單元介紹。其中,核心資源即是 Samsung ARM 9模塊,包括內核為 32-bit ARM920T的CPU內核,其最高工作頻率是203MHz;64MB的SDRAM;64MB的FLASH;1個主USB;1個從USB;1個10/100M以太網口;1個UART接口;電源模塊:將通用的5V轉換成Samsung ARM 9處理器所需的3.3V和1.8V。同時,各擴展功能單元包括輸入輸出接口單元;AD、DA轉換單元;LCD液晶顯示屏單元;觸摸屏單元;JTAG單元等等。此外,還有特別引出了定制模塊接口。
在北京理工大學自動化專業,嵌入式系統課程自開設以來,每年都有120名至180名學生選修這門課程。但在以往的課程中,選用的教材大多是針對某一具體的嵌入式控制器或嵌入式處理器而編寫的[4],這樣造成的問題是:①有具體硬件設備時,理論知識學起來非常抽象;②如果有具體硬件設備,往往又不能舉一反三;③理論課程中對其他相關知識介紹不足,不具連慣性和對比性,不易克服在綜合全面運用知識過程中的阻礙,學生難以將所學知識系統地結合起來,以至于學習最終趨于分數導向,學生死記硬背,所學知識僵化。為了規避消除上述問題,首先向學生們推薦國外著名高校在嵌入式系統教學中所使用的經典教材[5-6],針對某一特定嵌入式處理器或控制器,結合這些教材,除了在實驗課程中要穿插計算機科學相關知識(例如算法、數據結構、軟件工程、操作系統等)外,還專門設置了針對以下幾方面的實驗前講授內容:①同硬件平臺介紹(x86,ARM,DSP,FPGA);②ARM 核心架構以及基于ARM的匯編語言與C語言;③外設、接口、通訊;④電源與晶振;⑤負載驅動;⑥案例分析研究。
上述內容涵蓋了在嵌入式系統實際設計與應用中常常會遇到的問題及解決方法,在介紹這些內容時沒有固定的教材,而是取材于世界一流嵌入式系統企業針對實際工程問題編撰的設計應用參考資料,例如“5V to 3V Design Considerations”[7],源自飛思卡爾半導體公司的應用說明書,該說明書闡述在嵌入式系統設計中常常會遇到的3 V和5 V混合電源設計問題;“Linear and Switching Voltage Regulator Fundamentals”[8],這篇文章介紹嵌入式系統電源管理中的線性和開關電壓調節器設計的基本常識,源自國家半導體公司;“Crystal Oscillator Basics and Crystal Selection for rfPIC and PICmicro Devices”[9]和“HCMOS Crystal Oscillators”[10],介紹晶振的基本知識和選擇方法,分別源自微芯技術公司和快捷半導體公司;“High Speed Board Designs”[11]和“Ground Bounce & Vcc Sag”[12],分別介紹高速電路板設計注意事項和地彈電源下陷問題,二者都源自阿爾特拉半導體公司,“Choosing and Using Bypass Capacitors”[13],介紹旁路電容的選擇和使用,源自英特矽爾半導體公司。由于這些資料的作者都是嵌入式系統領域工程業界的一線工程設計人員,內容是他們基于各類典型問題的技術報告,總結了理論技術在實踐設計中遇到問題的解決辦法和注意事項,理論與工程實際緊密結合,對學生解決嵌入式系統設計與應用的實際問題非常有幫助。
案例分析則是結合實例介紹嵌入式系統工程設計的整個過程必經的環節與內容,對學生們今后的實踐,包括本文第四部分介紹的為克服陡峭學習曲線而采用的基于項目的實踐設計,起到引領示范的作用。
由于嵌入式系統匯集了方方面面的知識和技能,盡管學生們已具備一些先修基礎知識,依然存在陡峭學習曲線等待他們克服。
面對嵌入式系統實驗教學中存在的陡峭學習曲線之難題,傳統的實驗教學方法往往難以奏效。眾所周知,傳統教育片面強調教師在教育中的權威,在教學中體現為教師的單純灌輸和學生的被動接受,在這個過程中,學生總是處于一種被動的位置,削弱了學習知識的積極性和主動性。
根據多年的教學體會:無論教給學生多少概念,無論講的有多深,無論考試有多么難,留在學生腦中的只有那些觸動他們的!基于項目的實驗教學即是通過一個具體的項目“做中學”。“做中學”有利于現代教學中的師生關系的建立,從傳統上改變了師生關系,教師和學生的關系更類似于導演和演員的關系,這樣更能激發學生們的主觀能動性。
因此,采用基于項目的實驗教學方法來克服陡峭學習曲線。在實施過程中,在共計16周48學時的嵌入式系統實驗課的后8周引入基于項目的實踐教學方法,同學們2到4人形成項目組,項目的實施過程依次經歷技術分析、方案評審、設計實現、項目評估四個階段。首先,學生們鞏固了前8周所學知識,回顧了前8周基礎實驗的記憶;其次,在后8周磨礪了嵌入式系統實踐設計技能,加深了對于嵌入式系統知識的理解;第三,由于以項目組為單位實施考核,培養了學生團隊合作等能力。
通過8周的基于項目的實踐教學,每個學生除了完成基礎實驗之外,還要做一個綜合性比較強、比較復雜、多來自實際工程的項目,這樣培養出來的學生理論和動手能力都很強,就業率和就業質量都非常高。由于項目設有時間節點,學生要完成硬件設計,最終以論文和PPT答辯的形式進行評估,學生們的積極性和創造性被激發,盡管8周的時間非常煎熬,但是,學生們樂在其中,最終88%的學生能夠克服陡峭學習曲線。
在基于項目的嵌入式系統實驗教學中,學生既可以從教師設定的項目中選取項目,也可以自行擬定項目。在實驗課的初始階段就提醒學生們在日常生活和學習中有意識的關注嵌入式系統在實踐中的運用,以便早做儲備并于第8周進行方案評審。經過評審后,項目進入實施階段。要想最終完好的實現一個項目,8周24學時的實驗課往往是不夠的,因此學生們利用開放實驗時段積極到實驗室進行設計調試,同時還要利用課余時間到電子市場采購,甚至去企業調研,學習也由此從課堂、實驗室擴展到社會、企業。
學生完成的嵌入式系統項目設計包括基于ARM嵌入式系統的CAN總線模塊設計、基于ARM的GPS導航系統設計、超聲波測距模塊設計、步進電機設計、PWM電機調速控制實現、GSM模塊設計等等。以“基于ARM的GPS導航系統設計”為例,4名學生形成的項目組要在8周內協同完成以下內容:①了解GPS技術與需求;②手繪GPS模塊原理草圖,了解各元器件功能,采用Protel軟件設計GPS模塊原理圖和電路圖、PCB制版、器件采購與焊接、硬件電路調試;③操作系統(嵌入式Linux)的初始化、啟動、裁剪、移植、調試;④硬件設備驅動程序的編寫;⑤GPS應用程序實現。
在這個過程中,學生們首先要手繪原理圖,然后,教師引導學生學習初步的Protel設計知識與電路設計常識,學生們自行上網下載軟件并學習利用該軟件進行設計,這樣鍛煉了學生的自主學習能力。另外,學生們還要依照在工程設計中的規范格式填寫元器件清單并去電子市場調研詢價,還要找尋合適的廠家制作印制板。通過市場調研,學生們開闊了視野,也初步形成了將來在實際科研開發工作中所需具備的成本意識。關于嵌入式系統軟件的學習,特別是嵌入式LINUX操作系統的移植,教師則會向學生們推薦一些參考書[14-15],學生們根據這些書目進一步自學并完成軟件實驗內容。
本文回顧了近些年來在嵌入式系統實驗教學方面的一些經驗,盡管學生們在上課之初對嵌入式系統感到神秘,甚至畏懼,但是,基于對于嵌入式系統平臺的精心設計、實驗前知識內容的合理選材和設置,并且通過基于項目的實踐教學方法來克服陡峭學習曲線障礙,大多數學生通過這門實驗課對嵌入式系統有了深刻的認識和進一步深入研究的興趣。與此同時,經過基于項目的實踐教學的各個階段,學生在申請項目、自主學習、獨立工作、撰寫科技論文、做PPT報告、團隊合作等各方面得到培養和鍛煉,從而進一步提高了學生的綜合能力和素質,為學生畢業后進一步深造或走向社會打下堅實的基礎。
[1] Hamacher C,Vranesic Z,Zaky S,Computer Organization and Embedded Systems[M](6 Edition),The McGraw-Hill Companies,Inc,2013:386-443.
[2] Barry P,Crowley P,Modern Embedded Computing[M],Elsevier Inc,2013:3-41.
[3] User’s Manual S3C2410X 32-Bit RISC [S]. Microprocessor Revision 1.2.
[4] 周立功,ARM嵌入式系統基礎教程(第2版)[M].北京航空航天大學出版社,2008:41-99.
[5] Wolf W,Computers as Components:Principles of Embedded Computing System Design[M],Morgan Kaufmann Publishers,2001:177-233.
[6] Vahid F,Givargis T,Embedded System Design:A Unified Hardware/Software Introduction[M],John Wiley & Sons,Inc,2002:29-308.
[7] Filippi G,5V to 3V Design Considerations,Application Note AN2433/D Rev 0,12/2002[R].Application Engineering,Freescale Semiconductor.
[8] Simpson C,Linear and Switching Voltage Regulator Fundamentals[R].National Semiconductor.
[9] Bible S,Crystal Oscillator Basics and Crystal Selection for rfPIC and PICmicro Devices[R].Microchip Technology.
[10] HCMOS Crystal Oscillators,Application Note 340,1983[R].Fairchild Semiconductor.
[11] High Speed Board Designs,Application Note 75[R].November 2001,ver.4.0,Altera.
[12] Schmitz T,Wong M,Choosing and Using Bypass Capacitors,Application Note AN1325,August3,2007[R].Intersil.
[13] Ground Bounce & Vcc Sag,White Paper[R].Altera.
[14] 陳云川,嵌入式軟件調試技術[M],電子工業出版社,2009:41-99.
[15] 楊水清,張 劍,ARM嵌入式Linux系統開發技術詳解[M],電子工業出版社,2008:109-135.