楊澤林, 何 莉
(重慶理工大學 電氣與電子工程學院,重慶 400054)
隨著嵌入式系統(tǒng)技術的發(fā)展,其應用越來廣泛,高校對嵌入式系統(tǒng)應用型人才的培養(yǎng)日益重視。國內很多高校在電子類、儀器類、計算機類等專業(yè)都開設了嵌入式系統(tǒng)課程,為幫助學生更好的理解和學習嵌入式系統(tǒng),理論教學的輔助手段多是Proteus仿真軟件[1-2]和課內實驗。但是在實際教學實踐中發(fā)現(xiàn)仍存在以下幾點問題: ①學生理論學習理解掌握困難。由于該課程所涉及的知識點較多,許多概念比較抽象,對于大多數初次接觸嵌入式系統(tǒng)且相應基礎較差的學生而言,普遍反映嵌入式系統(tǒng)是最難學的課程之一;②學生實驗過程與理論教學知識融合困難,課程綜合設計能力差。目前許多學校選用的實驗裝置普遍追求功能強大,實驗內容廣,項目難,配置高檔,使得裝置的軟硬件復雜[3],初學學生不易上手,忽視了學生的實際情況,很難完成在課時內對裝置的消化吸收和課程的教學目標要求;③硬件上沒有實作擴展空間,實驗內容多是驗證性程序應用實驗,不能親生經歷硬件的實作與軟硬件調試過程,缺乏自主性和體驗感,實驗過程懵懵懂懂;④實驗裝置的目標MCU大多不能與Proteus仿真軟件匹配,出現(xiàn)課堂教學與實驗裝置不能無縫銜接的尷尬局面。到后續(xù)課程綜合設計時,少有能獨立實踐動手操作完成的學生。
因此,根據我校的實際情況,配合教學需要,并考慮學生學習的個體差異,本著簡單易懂,實用方便原則[4],研發(fā)設計了以ARM LPC2138 為目標MCU的嵌入式系統(tǒng)教學輔助系統(tǒng),學生教師一人一套。以該教輔系統(tǒng)為支撐,精心設計教學范例和實驗例程,以引導學生入門,打好基礎為目的,改革教學方法[5-7],采用“引導-模仿-實踐”漸進式教學模式,使該系統(tǒng)成為學習嵌入式系統(tǒng)基礎階段有力的教學輔助工具,在理論課堂教學上幫助任課教師很好地展現(xiàn)授課內容;同時作為學生在課程實驗和課程設計中的必備裝置,直接應用于嵌入式系統(tǒng)課程的實驗教學和課程設計等教學環(huán)節(jié)中。實踐表明:該系統(tǒng)在嵌入式系統(tǒng)課程教學中,結合例程分解、項目驅動[8]等教學方法,對教學的輔助效果十分明顯,特別是對后續(xù)課程設計、課外實踐等環(huán)節(jié)教學質量的提高有很大的幫助。
ARM嵌入式教學輔助系統(tǒng)以經典的ARM7 LPC2148/38 MCU[9]為學習對象,分為核心板和擴展板兩部分,如圖1所示。核心板包括ARM7處理器最小系統(tǒng),配以串口通信/ISP下載控制接口,USB接口,電源模塊電路等。擴展板包括矩陣鍵盤、可以用作中斷輸入的獨立按鍵、字符和點陣LCD顯示接口、A/D采集電壓產生等輸入/輸出人機界面及引腳擴展。整個系統(tǒng)基本功能齊全,所有引腳及電源均引出,無需額外配接電源,便于與電腦配接,體積小,攜帶方便,非常便于學生自主學習與擴展應用實踐。
圖1教輔系統(tǒng)組成框圖
系統(tǒng)MCU采用的是ARM7系的一款經典產品ARM LPC2148/38 MCU。ARM LPC2148/38 MCU引腳少,工作原理簡單且具有強大的處理和控制功能,含有豐富的外設資源,以及可以實現(xiàn)系統(tǒng)ISP/IAP編程,功能較為齊全。同時在Proteus仿真軟件和Keil編程軟件中均支持該MCU,因此特別適合作為ARM嵌入式系統(tǒng)課程基礎階段的教學與學習實踐。
串口通信使用的是LPC2148/38 MCU的串口0。 LPC2148/38 MCU的串口0是ARM處理器的主要組成部分之一,不僅可以用于學習與PC機的串行通訊,配以相應的ISP電路后,PC機借助ARM集成開發(fā)編程軟件還可以將應用程序直接下載到MCU中進行應用實踐,降低了教輔系統(tǒng)的使用要求,方便了實踐教學的需要。
LPC2148 MCU自備有USB2.0從控制器,配以相應的接口電路后,可以方便地進行USB相關的教學內容;為了使用方便,教輔系統(tǒng)利用USB接口供電,串口下載程序,有效地利用了它的功能資源。
作為教輔系統(tǒng)的共性功能,幾乎在所有的應用學習以及程序調試中都會使用到相應的I/O接口。因此將P1端口用于字符LCD(LM1602)與點陣LCD(QC12864)的共用輸出,配合矩陣鍵盤輸入端口,同時設計相應例程在課堂上講授和練習,適當降低了學生自學時的使用難度,提高實踐的應用效率。同時將所有引腳及電源在擴展板上通過插針引出,極大地方便學生接入其他擴展應用的硬件。
教輔系統(tǒng)的軟件教學主要是對Poteus仿真軟件[10]、Keill集成開發(fā)軟件[11]、Flash Magic編程下載等3個工具軟件的認識,內容涉及到項目工程的建立與配置,程序文件的新建與添加,工程的編譯與鏈接,電路原理圖的匯制,程序下載與仿真運行、改錯等應用工程模板。例程SDK包含了LPC 2138/48MCU所有初始化控制函數,常見的人機接口輸入輸出函數等內容,供設計者調用使用,屬于高級應用范疇。例程SDK的學習和應用是幫助學生更好地進入嵌入式系統(tǒng)應用與開發(fā)的有效方式,因此,例程設計至關重要,不僅是對課程教學內容的驗證,加深和鞏固對嵌入式系統(tǒng)應用的認識,也是引導學生自主學習培養(yǎng)開發(fā)創(chuàng)新能力的橋梁。例程SDK開發(fā)運用單元模塊知識進行設計,遵循從基礎開始,由簡到難,從小模塊到大系統(tǒng)保證例程開發(fā)連續(xù)性,應用與原理并存的原則,設計嵌入式系統(tǒng)實踐教學范例。該教輔系統(tǒng)不僅提供了LPC2138/48 的所有硬件資源,還提供了有關輸入/輸出的SDK,大大節(jié)省了ARM基礎軟硬件平臺搭建的時間,使學生將主要精力和時間放在應用開發(fā)上,課程設計的效果和質量很好。
ARM嵌入式系統(tǒng)課程所涉及的知識面廣,原理性、專業(yè)性、綜合性、前沿性都比較強,ARM芯片資源豐富,實際應用廣泛,軟硬件技術綜合應用性強,學生理解掌握不容易。因此在傳統(tǒng)教學模式的基礎上,部分引入翻轉課堂理念[12],調整學時分配,以案例教學和項目驅動教學提高學生對嵌入式系統(tǒng)原理和應用的認識和掌握。在課堂教學、實驗教學以及課程設計實踐環(huán)節(jié)中“理論結合實踐,專業(yè)結合應用”,以教輔系統(tǒng)為支撐建立起“引導-模仿-實踐”的漸進式教學模式,如圖2所示。以應用為主組織教學內容,強調體系結構及實用的設計開發(fā)技術等工程實踐概念;以教輔系統(tǒng)為支撐設計相應的例程項目及范例實踐,分解講授,引導學生自主學習,由淺入深,由易到難,由基礎到綜合,切實讓學生從硬件到軟件,再從軟件到硬件實現(xiàn)對嵌入式系統(tǒng)軟硬件開發(fā)技術的完整認識,初步具備嵌入式系統(tǒng)設計與應用的基本技能。
圖2 基于教輔系統(tǒng)的教學構架
結合嵌入式系統(tǒng)課程的特點,以教輔系統(tǒng)為支撐,設計相應的例程項目和教學范例實踐,從“基礎模塊訓練-小項目例程模仿-簡單應用設計-開發(fā)擴展提高”4個層次逐步展開教學。①在教學初期以嵌入式產品實例介紹嵌入式系統(tǒng)的實際應用及發(fā)展前景,讓學生對嵌入式系統(tǒng)有一定的初步印象,激發(fā)他們的學習興趣。在這里,可以采用一種“倒推式”教學法[13],即以某個實際嵌入式產品為例,如采用D/A或PWM實現(xiàn)的音樂播放器,將其倒推分解到產品的開發(fā)設計過程,并將其歸屬到課程相關教學內容單元模塊(GPIO、定時器、A/D 、D/A、PWM及VIC中斷等)。在課程教學中,以產品的模塊為核心教學范例,組織教學內容,對相應的教學模塊進行范例教學及實踐,引導學生學習掌握ARM嵌入式系統(tǒng)應用開發(fā)的基本技能。②ARM嵌入式系統(tǒng)開發(fā)設計應用環(huán)境,即編程仿真軟件、工程建立和配置等軟件教學,是嵌入式系統(tǒng)學習不可繞開的第一步,學生在實際學習過程中極其容易出錯,導致學習的自信心受挫。因此以教輔系統(tǒng)為支撐,在課堂教學和實驗教學環(huán)節(jié)中,充分利用教輔系統(tǒng)編制了一組實用的例程SDK和教學范例[14],如GPIO類的LCD、矩陣鍵盤等模塊含源代碼的SDK,串行通訊類的短信收發(fā)遠程控制,PWM、D/A類的音樂播放器、A/D類的簡易頻譜分析儀及溫度測量等范例設計供學生程序閱讀、練習模仿。將采用匯編語言和C語言設計的教學例程SDK對實踐范例進行步驟分解,并對關鍵步驟進行了詳細注解,在課堂上要求學生跟著教師逐步模仿、操作、實踐學習,而且寫出書面的總結體會,確保學生在嵌入式系統(tǒng)學習中能順利邁出這第一步。教師在授課中分解各例程,讓學生分模塊模仿應用學習,在模仿中學習,在學習中提高。③加強實踐訓練。在Proteus仿真軟件和教輔系統(tǒng)的支持下,加大實際編程訓練內容,編寫了相應的實踐訓練項目,如計算器設計、電子日歷制作、動畫顯示(廣告)屏、正弦波示波器、直流電動機調速、步進電動機調速、條碼掃描顯示、音樂播放器、SD卡文件讀寫、RFID IC卡讀寫器等項目。這些教學實踐訓練項目不僅包含了課程理論知識的內容,而且涉及程序的編寫,系統(tǒng)設計的流程等嵌入式技術要求。在實踐項目訓練過程中,要求學生從能跟著教師操作演示逐步實現(xiàn)以教輔系統(tǒng)為基礎,輔以必要的簡單硬件設計制作,分組自選項目并獨立完成相應項目的應用開發(fā)設計;在訓練項目實踐過程中不斷再學習和升華講授的知識。④將課程設計教學環(huán)節(jié)和課外學生競賽、科研活動等作為嵌入式系統(tǒng)學習的延伸和提高。在課程設計環(huán)節(jié)可以由老師指定或學生根據個人喜好選擇題目,1或2人一組,設計一些相對綜合的應用設計項目,進一步加深學生對嵌入式系統(tǒng)的認識,并培養(yǎng)一定的嵌入式系統(tǒng)軟硬件開發(fā)應用設計能力。
表1 “音樂播放器”教學案例的教學內容設計
結合教學經驗和教學要求,以教學輔助系統(tǒng)為支撐,教師精心組織了“音樂播放器”項目案例[15-16]的教學內容如表1所示。在整個案例教學內容設計中,每個訓練子例程在課程教學中提供了相應的基本的SDK,首先由老師結合課程理論知識進行SDK分解講授,引導學生學習應用;然后學生可根據自己的喜好改變對應的SDK,實現(xiàn)個性化的小設計和個別調節(jié),比如音樂的曲目切換方式,音樂的音量音調調節(jié)等;學生借此理解ARM嵌入式系統(tǒng)技術的內容和設計方法之后,可以開展新的提升項目訓練。該項目案例教學設計4個學時,部分引入翻轉課堂教學模式,以“教師講解引導-學生實踐-學生課外作業(yè)及實踐-課堂收集教師點評”為主要的教學方法,實踐證明該教學案例設計獲得了很好的教學效果。項目案例化教學是目前普遍采用的一種教學改革手段,在編寫項目案例時不是簡單地給出程序代碼和注釋供學生閱讀,而是按照費米思維(定律)向學生展示項目的分解與集成、切入點、實施步驟與過程等開發(fā)技術,達到“授之以漁”的目的。以音樂播放器為例,該案例涉及到了項目分析和技術分解、嵌入式系統(tǒng)程序架構搭建、接口技術、定時器應用、中斷技術及中斷應用等概念;包含了LPC2148/38 GPIO、VIC中斷控制器、A/D、定時器、串行通信等內部硬件模塊的初始化與使用,點陣/字符LCD、矩陣鍵盤等外部硬件的使用等;在教學案例設計上可以組織設計4個訓練子例程:①GPIO輸入/輸出例程,實現(xiàn)音樂的起停,歌曲切換;②定時器可調周期方波輸出實例,實現(xiàn)音樂輸出的節(jié)拍調節(jié);③A/D、D/A模擬電壓輸入輸出驗證實例(采樣驗證,音入音出),而且D/A輸出也可與兩個定時器配合實現(xiàn)音樂播放,自制音樂文件;④PWM脈沖寬度調制方式,利用脈沖周期改變音調,利用脈沖占空比變化改變音量,自制音樂文件;最后還可以在此基礎上針對個別掌握比較好的同學,提出更高層次的設計要求,比如車載高清音樂播放器的設計,基于APE/FLAC數字音樂文件的音樂播放器的設計,以及音響效果的處理等,讓學生得到進一步的工程開發(fā)應用設計的鍛煉,對學生掌握嵌入式系統(tǒng)技術的基本架構有非常好的實際意義。
教學實踐證明,這種針對學生個體差異、以初學者為對象設計的教輔系統(tǒng),硬件電路簡單,學生能較輕松地掌握其電路原理,契合初學者教學對象的實際狀況。功能覆蓋面廣,在完成教學大綱要求的同時還滿足不同學生的需求。外圍硬件可自主擴充,大大地提高了學生的設計及動手能力。以LPC2138為目標MCU,靈活方便地在仿真和實物系統(tǒng)間轉換,增加了學生的學習興趣。該教輔系統(tǒng)已經在我校測控專業(yè)教學中投入使用2屆了,它將課堂教學、課程實驗、課程設計教學環(huán)節(jié)無縫連接在一起,通過一例一問,逐題增加,承前啟后式的教學內容與例題設計,基本解決了嵌入式系統(tǒng)課程難教、難學、難懂的系列問題。將課程考試放在課程設計之后,使學生在課程設計中進一步鞏固課堂知識,考試成績大幅提高,補考率也大幅降低,大多數學生還將該系統(tǒng)用在了畢業(yè)設計中,證明該教輔系統(tǒng)對嵌入式系統(tǒng)課程教學與實際應用起到了很好的輔助作用。
參考文獻(References):
[1]朱敏玲,張偉,侯凌燕.基于Proteus的微機原理與接口技術教學改革[J].實驗室研究與探索, 2016,35(1): 155-160.
[2]張鍵,梁建慧.基于Proteus的個人虛擬實驗室探究[J].電子測試,2013(8):122-123.
[3]油海東.基于ARM-Linux的嵌入式系統(tǒng)開發(fā)平臺教學實驗研究[J]. 中國現(xiàn)代教育裝備,2012(11):15-17.
[4]宋焱翼,陳禮,顏芳. 嵌入式系統(tǒng)實驗教學改革與實驗教學裝置開發(fā)[J]. 實驗室研究與探索, 2011,30(7): 239-241.
[5]張騰飛,顧亦然,郭前崗.“嵌入式系統(tǒng)及應用"課程教學改革探索與應用[J]. 中國電力教育, 2012(28):53-55.
[6]陳偉,林訓超. Cortex時代的ARM教學[J]. 單片機與嵌入式系統(tǒng)應用,2010(5):5-7.
[7]劉在英,楊平,張麗曉.程序設計課程實踐教學模式的探討[J].實驗室研究與探索, 2013,32(10):156-159.
[8]王曉嘩,溫顯斌,肖迎元.“項目驅動”實踐教學法在計算機接口課程群中的應用[J]. 實驗室研究與探索,2014,33(11):183-186.
[9]Philips Semiconductors.User manual LPC214x[Z],2006.
[10]范海紹,李方園,等.零起點學Proteus單片機仿真技術[M].北京:機械工業(yè)出版社,2012.
[11]李寧.ARM MCU開發(fā)工具MDK使用入門[M]. 北京:航空航天大學出版社,2012.
[12]王莉莉,陳德運,唐遠新.計算機程序設計課程翻轉課堂的探索與實踐[J].計算機教育, 2015(16):53-55.
[13]仲偉波,包亞萍.關于嵌入式系統(tǒng)教學的幾點思考[J].實驗室研究與探索,2006(12):1567.
[14]胡小勇,鄭曉丹,馮智慧.信息技術與教學深度融合的優(yōu)課課例研究[J].中國電化教育, 2015(4):36-40.
[15]何諧,唐大權,張淑廷,等.一種基于51單片機的音樂播放器的設計[J]. 現(xiàn)代電子技術, 2014,37(16):11-13.
[16]何諧.FAT 32文件系統(tǒng)在Cortex-M3音樂播放器中的應用[J].單片機與嵌入式系統(tǒng)應用,2013(6):71-73.