摘要:針對嵌入式技術綜合性強、涉及知識面廣的特點,在分析企業(yè)對嵌入式技術人才需求的基礎上,結合本校自動化專業(yè)學生的知識結構特點,首先進行嵌入式系統(tǒng)課程定位。在此基礎上對嵌入式系統(tǒng)課程教學過程中教學內(nèi)容選擇、實驗設計、教學手段、考核方式等相關問題進行討論。在中國地質(zhì)大學(武漢)的教學實踐應用表明,本文提出的有關嵌入式系統(tǒng)教學的思路和方法切實可行、行之有效。
關鍵詞:嵌入式課程;自動化專業(yè);課程定位;教學實踐
嵌入式系統(tǒng)己被廣泛應用于工業(yè)控制系統(tǒng)、信息家電、通信設備、醫(yī)療儀器等眾多領域。隨著社會的快速發(fā)展,行業(yè)對嵌入式技術人才的需求日益增加。嵌入式系統(tǒng)和相關技術受到廣大工程技術人員和教育者的關注,正成為新興的熱門領域。與傳統(tǒng)8位單片機嵌入式系統(tǒng)相比,以32位微處理器為核心構成的嵌入式系統(tǒng)的顯著特點是具有自己的操作系統(tǒng)和應用軟件,在實現(xiàn)復雜多任務功能時具有明顯優(yōu)勢。兩者在系統(tǒng)構成和研發(fā)方式上都明顯不同。近年來,國內(nèi)高校陸續(xù)開展嵌入式技術相關課程的教學。但由于嵌入式技術覆蓋的知識面較廣,各高校不同專業(yè)對嵌入式系統(tǒng)教學的相關理論教學內(nèi)容的選擇、實驗教學與實踐環(huán)節(jié)的組織,依然處于不斷探討和修正的階段[1-3]。
本文主要針對我校自動化專業(yè)的嵌入式系統(tǒng)課程教學,從課程定位、課程內(nèi)容、教學手段、課程考核等方面進行探討。
1嵌入式技術課程體系及其在本專業(yè)的定位研究
嵌入式系統(tǒng)不是一個獨立的學科。2004年,IEEE和ACM對計算機專業(yè)本科教育的課程體系進行設置,并認為嵌入式系統(tǒng)的課程應包括以下內(nèi)容:嵌入式的發(fā)展歷程和概述、嵌入式微處理器、嵌入式軟件設計、實時操作系統(tǒng)、低功耗計算、系統(tǒng)可靠性設計、設計方法學、嵌入式系統(tǒng)設計工具、嵌入式多處理器系統(tǒng)設計、網(wǎng)絡化嵌入式系統(tǒng)、接口和混和信號系統(tǒng)等[4]。據(jù)此可看出嵌入式技術是一項綜合性非常強的技術,涉及的知識面很廣,既涉及底層微處理器及外圍硬件接口設計,又涉及上層應用軟件設計,同時涉及信號的采集與處理技術、網(wǎng)絡傳輸技術、可靠性設計技術,等等。
除了嵌入式專業(yè)外,相關專業(yè)本科階段的嵌入式系統(tǒng)課程學時都非常有限,多則48學時,少則32學時。在有限的學時里,完成這么多內(nèi)容,學生無法充分消化所學知識,老師授課也很困難,由此,學生會產(chǎn)生畏難情緒,影響今后的學習。因此,我們認為教學內(nèi)容的選取是課程首先需要解決的問題,它取決于課程在本專業(yè)的定位,而定位的重要依據(jù)應是用人單位對嵌入式人才的需求。
一般來說,一個典型的嵌入式系統(tǒng)開發(fā)涉及以下3個方面。
1) 嵌入式系統(tǒng)設計:包括嵌入式處理器及外圍設備接口硬件平臺的構建和操作系統(tǒng)的裁剪和移植;
2) 嵌入式驅(qū)動開發(fā):包括特定操作系統(tǒng)下設備驅(qū)動程序的設計開發(fā);
3) 嵌入式應用開發(fā):包括基于特定軟硬件平臺的應用或控制軟件的設計開發(fā),包括網(wǎng)絡、圖形等。
因此,相關企業(yè)也是從嵌入式系統(tǒng)設計工程師、嵌入式驅(qū)動開發(fā)工程師、嵌入式應用開發(fā)工程師3個不同方向招收相關技術人才。從業(yè)者大多來自電子類和計算機類的相關專業(yè)。
在參加相關課程教學研討會、與兄弟院校教師交流、借鑒先期開設嵌入式系統(tǒng)設計學校課程設置,及學生學習效果討論的基礎上,我們結合上述企業(yè)需求,從學生特點出發(fā),對本校自動化專業(yè)嵌入式系統(tǒng)課程進行如下定位。
1) 與計算機專業(yè)相比,自動化專業(yè)學生的優(yōu)勢偏硬件,從利于學習的角度考慮,我們將課程重點放在培養(yǎng)學生的系統(tǒng)設計能力和驅(qū)動開發(fā)能力上;
2) 將相關嵌入式知識依難易程度劃分成基礎學習和深入進階兩個階段,在本科生和研究生中開展系列教學。根據(jù)學生在不同學習階段的特點和基礎情況,在本科生高年級階段和研究生階段按不同側重點安排教學內(nèi)容和實驗內(nèi)容。
在本科生高年級階段,我們以激發(fā)學生學習興趣為主,主要是為學生今后進一步深入學習打基礎。自動化專業(yè)一般應在大三下或大四上安排嵌入式系統(tǒng)設計的相關課程。此時,學生一般已具備模電、數(shù)電、單片機與微機原理、C語言編程、自動控制原理等基礎知識,但對于軟件工程和操作系統(tǒng),特別是嵌入式操作系統(tǒng)的知識卻相對比較缺乏,反映到嵌入式系統(tǒng)研發(fā)上,就是缺乏比較完善的知識結構,即只了解硬件,不了解軟件,只了解傳統(tǒng)51單片機系統(tǒng)的編程模式,而缺乏“有操作系統(tǒng)的”嵌入式編程的概念。
因此,我們認為學生沒有必要在學習階段掌握所有和嵌入式相關的知識。根據(jù)學生的基礎,本科生階段的課堂講述和相關實驗重點應放在嵌入式系統(tǒng)設計和簡單驅(qū)動程序的開發(fā)上,對操作系統(tǒng)移植只作一般性介紹,不做重點詳細講解。教學的重點是使學生了解典型嵌入式系統(tǒng)的構成和研發(fā)方式,特別是開發(fā)環(huán)境的建立和研發(fā)過程中相關工具軟件的使用。對于初學者暫時用不到,且目前理解困難的知識點,教師要用簡單的例子來說明,讓學生明白這些知識點是何時、如何在嵌入式系統(tǒng)研發(fā)過程中起作用,而更深更細的內(nèi)容我們不必深究。同時,我們要讓學生了解他們正在學習的內(nèi)容在整個嵌入式技術中所處的位置,了解課上未涉及內(nèi)容的獲取途徑,鼓勵學生上網(wǎng)查找資料解決問題,教師可提供一些好的學習網(wǎng)站供學生平時學習瀏覽。
研究生階段,我們可在本科生教學的基礎上進一步向縱深方向擴展各部分內(nèi)容,同時進一步安排若干大作業(yè),并讓學生組成項目小組,根據(jù)個人興趣,組員分別負責系統(tǒng)設計、驅(qū)動開發(fā)和應用程序的開發(fā),在項目實現(xiàn)的過程中,進一步學習相關知識并體會工程概念。
有了這樣的課程定位,我們就可進一步進行教學內(nèi)容和實驗內(nèi)容的選擇和安排。
2嵌入式系統(tǒng)理論教學內(nèi)容的選擇
我們在理論教學內(nèi)容的選擇上應側重系統(tǒng)設計和驅(qū)動程序開發(fā)的相關知識。在眾多嵌入式處理器和嵌入式操作系統(tǒng)中,選擇應用廣泛的Linux操作系統(tǒng)和ARM處理器作為軟硬件平臺。
我們應以學生比較了解的硬件為學習嵌入式技術的出發(fā)點,選擇當前主流嵌入式微處理器(如SUNGSAM公司的S3C2410芯片),讓學生先掌握底層核心硬件及外設接口部件的無操作系統(tǒng)簡單編程,再將它們組合起來構成一個相對復雜的軟件系統(tǒng),其實,這就是Bootloader的雛形,通過這種方式使學生輕松過渡到理解和編寫自己的Bootloader,進而編寫基于操作系統(tǒng)的驅(qū)動程序,并有機會深入鉆研操作系統(tǒng)內(nèi)核。
對于系統(tǒng)移植,我們只給出一般性介紹,不做重點詳細講解。實驗中直接利用移植好的系統(tǒng)。
對于嵌入式驅(qū)動部分,我們在本科階段只進行簡單字符設備驅(qū)動程序的介紹,讓學生掌握設備驅(qū)動程序工作的基本原理、掌握字符設備驅(qū)動程序的基本架構、相關數(shù)據(jù)結構和訪問控制,會編寫字符設備驅(qū)動程序。
大多例程都進行無操作系統(tǒng)和有操作系統(tǒng)兩種情況下的編程,通過比較簡單的例程讓學生更好地理解兩種編程方式,尤其是理解有操作系統(tǒng)時應用程序系統(tǒng)調(diào)用與驅(qū)動程序間的關系,從而實現(xiàn)復雜應用的編程。
有些觀點認為在高校嵌入式教學中注重處理器硬件結構和ARM指令的講解上是浪費時間,對此,我們認為要一分為二地看。如果學習者主攻方向為Bootloader和底層驅(qū)動,那么,必須花費相當?shù)臅r間和精力才能掌握。目前,嵌入式應用的主流處理器在體系結構上采用的哈佛結構和更深流水線架構甚至超深流水線、跳轉(zhuǎn)預測、單指令多數(shù)據(jù)等復雜技術,如果不進行詳細講解,學生很難理解透徹。當沒有操作系統(tǒng)時,嵌入式處理器就是一個功能強大的單片機,完全可以用于工業(yè)控制,那么,只有充分了解相關處理器的硬件結構和運行機制,才能很好地利用它完成所需功能;當有操作系統(tǒng)時,對開發(fā)人員來說,不論編寫B(tài)ootloader還是驅(qū)動程序,都需要對處理器及其相關接口具有相當?shù)牧私獠拍芡瓿?;但典型系統(tǒng)硬件組成比較復雜,全部在課堂上講解不可能也沒有必要。我們認為講解嵌入式處理器及其指令系統(tǒng)時最好結合Bootloader。將Bootloader第一階段匯編程序部分用到的硬件進行比較詳細的講解,可以為學生理解和編寫B(tài)ootloader創(chuàng)造條件,學生有了這部分的學習經(jīng)驗,對底層硬件中其他部分的自主學習也會變得順利。
3嵌入式系統(tǒng)實驗教學內(nèi)容的設計安排
嵌入式系統(tǒng)課程實驗依托本校實驗中心嵌入式系統(tǒng)實驗室,該實驗室配備多套北京博創(chuàng)公司的UP-NETARM2410-s試驗箱,可用于相關教學和實驗。
實驗內(nèi)容的安排與理論教學內(nèi)容相輔相成,主要是加深對課堂教學內(nèi)容的理解。
由于學生沒有操作系統(tǒng)的知識,在課程初期,我們從應用角度先簡單介紹Linux操作系統(tǒng)的安裝和配置方法及主要命令,同時,讓學生在課下加以學習和體會,彌補這部分知識的不足。
在實驗中,對于無操作系統(tǒng)的實驗,我們強調(diào)學生自己動手編寫程序,然后調(diào)試,以此熟悉底層硬件的調(diào)試環(huán)境和調(diào)試方法。所涉及的硬件操作應盡量簡單,主要目的是讓學生了解方法。
帶操作系統(tǒng)后的程序一般比較龐大,對這類實驗,我們主要強調(diào)對程序結構的理解,以驗證為主,在此基礎上,增加一些簡單功能,讓學生熟悉嵌入式系統(tǒng)軟硬件工作機制和設計流程。這樣既可以對嵌入式系統(tǒng)研發(fā)中所涉及的硬件接口、操作系統(tǒng)移植、底層驅(qū)動、應用程序設計環(huán)節(jié)及流程都有模塊化了解,又可為今后根據(jù)個人興趣進行更進一步的學習建立概念。另外,有興趣的同學也可在畢業(yè)設計階段進行相關選題的實現(xiàn),繼續(xù)進一步學習嵌入式技術。
由于現(xiàn)有實驗設備廠家提供的實驗指導書不能完全滿足使用要求,對此,我們針對教學內(nèi)容重新設計實驗,并編制相應的實驗指導書,方便學生學習和驗證。
4教學手段和課程考核方式
4.1強調(diào)對嵌入式系統(tǒng)開發(fā)環(huán)境、開發(fā)工具、基礎實驗及調(diào)試方法的重視
嵌入式系統(tǒng)學習強調(diào)實驗,然而,嵌入式系統(tǒng)的代碼規(guī)模較大,本科生實驗學時有限,課堂實驗應多以驗證性實驗為主。因此,學生必須認真對待基礎實驗,通過基礎實驗熟悉開發(fā)環(huán)境、開發(fā)工具及程序調(diào)試方法,為自主學習打下基礎。
在嵌入式學習過程中,實驗課對學生有非常重要的意義,但是,學生在實驗中如果只是根據(jù)實驗指導書所描述的原理和步驟,按部就班進行操作,那么,他們也只能得到一些實驗結果,卻無法了解具體實現(xiàn)細節(jié),基本達不到實驗的目的。要想通過實驗真正達到學習的目的,學生必須扎扎實實地從基礎實驗做起,不僅要了解實驗原理和步驟,還要認真研究實驗程序,搞清具體的實現(xiàn)細節(jié),并在開發(fā)環(huán)境中利用各種工具對各個細節(jié)加以調(diào)試和驗證,從中不斷發(fā)現(xiàn)問題、思考問題、解決問題,學習別人的編程方法和程序撰寫風格,逐步建立工程概念,達到學習的目的。每一個基礎實驗都有其學習重點,或針對某一具體硬件接口,或針對某種訪問方法,只有掌握了相關基礎硬件操作方法和實驗方法,才能通過實驗來學習和研究新器件、新原理、新方法,才能進行綜合設計、才能談到創(chuàng)新。本科生嵌入式課程總課時少、實驗課時有限、課下自主學習時間不能保證,因此,認真做好基礎實驗、熟悉開發(fā)環(huán)境和掌握開發(fā)調(diào)試實驗方法,對學生今后進一步學習非常有益。
對嵌入式技術興趣濃厚的學生,我們可指導其在課余或畢業(yè)設計時進行綜合性項目實踐,將任務按處理器及硬件接口設計、系統(tǒng)移植、驅(qū)動程序設計、應用軟件設計等劃分成若干模塊,讓學生分工合作,在實踐過程中深入學習。
4.2通過學生自己的設計實例演示激發(fā)學生的學習興趣和學習信心
嵌入式技術內(nèi)容多、學時少,學習難度大。因此,本科教學應以實際應用為主選擇教學內(nèi)容,加強實驗,理論教學和實驗各占20學時。同時,由于嵌入式系統(tǒng)與特定行業(yè)應用密不可分[5],泛泛的教學很難激發(fā)學生的興趣。為提高學生學習興趣,我們可以利用畢業(yè)設計對學生感興趣的消費類電子產(chǎn)品,如家庭安防系統(tǒng)、mp3、mp4、學生信息管理系統(tǒng)進行先期研發(fā),并在完善后將其在教學中給學生演示,以激發(fā)學生學習興趣,讓學生有一個感性認識,并作為嵌入式系統(tǒng)設計實例進行詳細分析。雖然上述示例中的內(nèi)容學生比較熟悉,但是,如果它們是由學生親自動手設計制作,其意義就不同了,它不僅大大激發(fā)了學生的學習興趣,也大大提高了學生課堂學習積極性。
4.3考核方式設計
我們在考核方式上采用筆試+實驗的形式,筆試題目主要考察基本概念,實驗考核方式則是將實驗題目按難度分成若干等級,等級越高分值也越高,學生可自由選擇實驗等級,依完成程度在相應等級內(nèi)得分,以此鼓勵學生多學習、多實踐。
5課程的長期建設問題
隨著社會的發(fā)展,嵌入式系統(tǒng)課程越來越重要。嵌入式系統(tǒng)課程要想持續(xù)發(fā)展,必須具有一支實踐經(jīng)驗豐富的教師隊伍,實驗訓練設備和場所要有保證;同時,我們應鼓勵教師引導學生參加嵌入式系統(tǒng)設計大賽,在大賽中鍛煉學生,也鍛煉教師。目前,我校在這些方面都還處于起步階段,需適當加大這些方面的人力物力投入,逐步建立校內(nèi)外實訓基地。
由于一門課程涵蓋的內(nèi)容有限,因此需要對嵌入式系統(tǒng)課程體系進行深入研究,將嵌入式系統(tǒng)課程體系中的某些內(nèi)容與現(xiàn)有教學計劃中相關課程內(nèi)容進行合理拆分和組合融合,或適當增加一兩門選修課,使嵌入式系統(tǒng)設計課程在自動化專業(yè)的教學更加順暢,學生的知識結構更加合理,更加適應社會的需求。
嵌入式技術綜合性強、涉及知識面廣,要想在一門課程里覆蓋所有內(nèi)容不現(xiàn)實。本文在分析企業(yè)對嵌入式技術人才需求的基礎上,結合本校自動化專業(yè)學生的知識結構特點,進行課程定位,并對嵌入式系統(tǒng)課程教學過程中教學內(nèi)容選擇、實驗設計、教學手段及考核方式等相關問題進行論述。本文提出的方法,在中國地質(zhì)大學(武漢)自動化專業(yè)本科選修課教學及畢業(yè)設計中進行了實施,學生在40學時的課程學習中,對嵌入式系統(tǒng)設計中包括嵌入式處理器及外圍設備接口硬件平臺的構建和操作系統(tǒng)的裁剪和移植及Linux下設備驅(qū)動程序的設計開發(fā)的流程和方法有了基本的認識和了解,為后續(xù)進一步學習打下了基礎,達到了課程設置的目的。實踐表明,本文提出的有關嵌入式系統(tǒng)教學思路和方法切實可行、行之有效。
參考文獻:
[1