王娟
摘要:針對當(dāng)前嵌入式系統(tǒng)教學(xué)中實驗難以開展、缺乏創(chuàng)新等問題,提出了在Proteus和Keil開發(fā)工具下,選用ARM7內(nèi)核的LPC2138微控制器設(shè)計了一套嵌入式系統(tǒng)虛擬實驗平臺。該平臺包含了最小系統(tǒng)、匯編語言、GPIO、外部中 斷、Timer、SPI、12C、UART、ADC、WDT、PWM、RTC、LCD、UC/OS-II操作系統(tǒng)等1 4個實驗?zāi)K,并以ADC實驗?zāi)K為例演示了平臺的仿真實現(xiàn)效果,最后總結(jié)了實驗平臺建設(shè)的實際意義。實踐表明,該虛擬實驗平臺應(yīng)用于教學(xué)后,突破了時空的局限,提高了學(xué)生的動手能力,教學(xué)效果顯著。
【關(guān)鍵詞】嵌入式系統(tǒng) 開放型 虛擬實驗平臺
嵌入式課程是電子信息類專業(yè)的一門核心課程,具有理論學(xué)習(xí)難度大、實踐操作性強(qiáng)等特點。隨著現(xiàn)代計算機(jī)仿真技術(shù)的飛速發(fā)展,在嵌入式課程的實驗教學(xué)中采用仿真軟件進(jìn)行虛擬實驗己變得非常普遍。國內(nèi)外已經(jīng)有不少大學(xué)對這方而進(jìn)行了研究,主要是利用計算機(jī)仿真技術(shù)實現(xiàn)實驗內(nèi)容、完成實驗操作。虛擬實驗在嵌入式課程體系教學(xué)中的應(yīng)用,也取得了一些成果。如何結(jié)合自己的教學(xué)實際,設(shè)計一套性能穩(wěn)定良好的嵌入式系統(tǒng)虛擬實驗平臺,使學(xué)生真正對課程感興趣、更全而的提高學(xué)生的動手實踐技能,就成了一個亟待解決的問題。
1 嵌入式實驗教學(xué)存在的問題
1.1 實驗教學(xué)難以開展
對于嵌入式系統(tǒng)的遠(yuǎn)程教學(xué)、網(wǎng)絡(luò)教學(xué)等開放教學(xué)模式來說,受空問和時問等因素的影響,很難開展實驗教學(xué),學(xué)生沒有辦法動手操作直接參與實驗。而對于傳統(tǒng)的而授教學(xué)來說,雖大部分院校配備有相關(guān)的配套實驗箱,但ARM實驗箱價格較為昂貴,所以課程的實體實驗資源非常有限,實驗需要分批、分時進(jìn)行,當(dāng)然,還有部分院校因?qū)嶒灄l件和資金的限制,根本不具備實驗的條件,只能單純進(jìn)行理論教學(xué)。缺乏了實驗教學(xué)的輔助作用,大大增加了ARM嵌入式教學(xué)的難度。
1.2 實驗教學(xué)缺乏創(chuàng)新
目前,課程的實驗教學(xué)一般采用驗證性實驗?zāi)J剑瑢嶒瀮?nèi)容較為單一。學(xué)生一般在老師的指導(dǎo)下,按照實驗手冊進(jìn)行簡單接線,然后直接將編寫好的程序下載到芯片中,觀察實驗現(xiàn)象,機(jī)械被動地進(jìn)行實驗操作。學(xué)生做完了實驗,只能做到實驗結(jié)果的表象認(rèn)知,缺乏“從概念到產(chǎn)品”的系統(tǒng)訓(xùn)練,對于嵌入式系統(tǒng)產(chǎn)品的設(shè)計并沒有深入的學(xué)習(xí)體會。
2 虛擬實驗平臺設(shè)計
為了有效加強(qiáng)課程實驗內(nèi)容的深度,提高學(xué)生綜合運用知識的能力,適應(yīng)市場的變化,在借鑒前人成果的基礎(chǔ)上,結(jié)合筆者的實際教學(xué)經(jīng)驗,采用仿真軟件Proteus和編程工具Keil,設(shè)計完成了一套適用于開放型教學(xué)的虛擬實驗平臺。本虛擬實驗平臺采用基于ARM7內(nèi)核的LPC2138微控制器作為核心控制芯片,共包括14個實驗?zāi)K,除“匯編語言實驗?zāi)K”外,其他模塊均采用C語言實現(xiàn)軟件程序的編寫,并且,在完成基本實驗要求的基礎(chǔ)上,學(xué)生可自行設(shè)計程序并修改。設(shè)計完成的適用于開放型教學(xué)的虛擬實驗平臺如圖l所示。
2.1 最小系統(tǒng)實驗?zāi)K
最小系統(tǒng)實驗?zāi)K包括LPC2138微控制器,3.3V供電電路,復(fù)位電路和時鐘電路,其中時鐘電路采用振蕩模式產(chǎn)生時鐘信號。通過學(xué)習(xí)可幫助學(xué)生理解最小系統(tǒng)的概念和組成部分。
2.2 匯編語言實驗?zāi)K
通過一個簡單的ARM匯編程序?qū)崿F(xiàn)兩個寄存器的循環(huán)相加??勺寣W(xué)生了解有關(guān)ARM匯編指令格式、程序結(jié)構(gòu)和基本風(fēng)格。
2.3 輸入輸出(GPIO)實驗?zāi)K
采用引腳分別連接1個按鍵輸入和1個蜂鳴器及1個LED輸出,完成最基本的GPIO輸入輸出控制。當(dāng)按鍵按下的情況下,蜂鳴器響,LED發(fā)光二極管滅;當(dāng)按鍵松開的情況下,蜂鳴器不響,LED發(fā)光二極管亮。為了和定時器實驗?zāi)K中的定時功能進(jìn)行對比學(xué)習(xí),本實驗?zāi)K中的延時功能采用for循環(huán)語句實現(xiàn)。
2.4 外部中斷實驗?zāi)K
輸出元件采用1個蜂鳴器、2個發(fā)光二極管,輸入元件采用1個按鍵模擬外部中斷信號。正常狀態(tài)下,2個發(fā)光二極管依次循環(huán)點亮,按下按鍵,檢測到中斷信號,進(jìn)而執(zhí)行中斷處理函數(shù),執(zhí)行完畢后,再返回主函數(shù)繼續(xù)執(zhí)行發(fā)光二極管的點亮任務(wù),模擬中斷流程。
2.5 定時器(Timer)實驗?zāi)K
主要使用定時器1實現(xiàn)比較匹配輸出控制LED閃爍,并采用四通道虛擬示波器的A端口檢測輸出信號的波形。為了讓學(xué)生熟悉示波器的使用以及各種信號的比較學(xué)習(xí),虛擬示波器的B、C、D端口分別輸入脈沖信號、時鐘信號和正弦信號三種信號源。
2.6 SPI實驗?zāi)K
采用串入并出顯示驅(qū)動芯片74HC595控制1個LED數(shù)碼管循環(huán)顯示O-F字符。通過學(xué)習(xí)可掌握全雙工同步串行接口SPI的工作原理、SPI的接口電路連接和LED數(shù)碼管顯示的編程控制方法。
2.7 I2C實驗?zāi)K
主要是通過操作帶I2C接口的存儲芯片F(xiàn)M24C02完成,F(xiàn)M24C02是2048位的串行電可擦除只讀存儲器,內(nèi)部有256個字節(jié)。該實驗?zāi)K主要是實現(xiàn)向該存儲芯片中寫入10字節(jié)數(shù)據(jù),然后讀回數(shù)據(jù),并判斷是否正確。讓學(xué)生學(xué)習(xí)和掌握設(shè)置I2C引腳連接、I2c時鐘頻率、主機(jī)發(fā)送起始信號、發(fā)送從機(jī)地址和判斷總線狀態(tài)等方法。
2.8 UART實驗?zāi)K
通過串行接口UARTO輸出字符串,輸出字符串可通過編程控制,采用虛擬終端接收并顯示,同時采用虛擬串行接口器件COMPIM,向上位機(jī)PC發(fā)送該字符串,并且使PC終端顯示收到字符串,實現(xiàn)微控制器芯片與上位機(jī)PC的通信。
2.9 ADC實驗?zāi)K
主要通過可調(diào)電阻改變輸入引腳的電壓提供模擬量輸入,實驗平臺通過ADC對模擬量外部輸入電壓進(jìn)行AD采樣轉(zhuǎn)換,并把結(jié)果轉(zhuǎn)換成電壓值,然后發(fā)送到串行接口UARTO,結(jié)合UART實驗?zāi)K中的虛擬終端進(jìn)行顯示。endprint
2.10 WDT實驗?zāi)K
看門狗定時器實驗?zāi)K開始主要先控制4個LED發(fā)光二極管循環(huán)閃爍8次,期問不斷進(jìn)行喂狗處理,然后只點亮其中1個LED發(fā)光二極管,并進(jìn)入死循環(huán),等待WDT復(fù)位。通過學(xué)習(xí)讓學(xué)生了解看門狗的原理以及如何設(shè)置相關(guān)寄存器完成看門狗的使能、啟動、喂狗等操作。
2.11 PWM實驗?zāi)K
主要采用PWM2輸出PWM信號,并由按鍵控制PWM的占空比,每按一次按鍵將會改變一次PWM的占空比,從而控制LED發(fā)光二極管的閃爍亮度。利用虛擬交流電壓表檢測輸出端口的電壓大小,并利用示波器顯示輸出端口的波形,便于觀察LED發(fā)光二極管的閃爍亮度和理解PWM的作用。
2.12 RTC實驗?zāi)K
主要采用微控制器內(nèi)部RTC的實時時鐘控制LED發(fā)光二極管的閃爍,即通過設(shè)置RTC秒值的增量產(chǎn)生中斷,每產(chǎn)生一次中斷,取反LED發(fā)光二極管控制口,并利用示波器檢測輸出端口的波形。
2.13 LCD實驗?zāi)K
實現(xiàn)通過輸出端口控制液晶顯示屏LM032L顯示字符,顯示字符可通過程序改變。
2.4 UC/OS-II操作系統(tǒng)實驗?zāi)K
基于UC/os-n實時操作系統(tǒng),通過芯片引腳分別控制1個按鍵輸入和1個蜂鳴器及1個LED發(fā)光二極管輸出,實現(xiàn)基于實時操作系統(tǒng)的GPIO輸入輸出功能。通過學(xué)習(xí)幫助學(xué)生簡單理解芯片在操作系統(tǒng)下進(jìn)行控制的方法以及和在沒有操作系統(tǒng)的情況下進(jìn)行控制的區(qū)別。
該實驗平臺己通過打包工具生成了安裝包,學(xué)生只需將安裝包通過現(xiàn)有網(wǎng)絡(luò)版實驗管理系統(tǒng)下載到PC機(jī)中或通過U盤等存儲工具復(fù)制到PC機(jī)中,按照安裝步驟完成簡單安裝后,就可以利用虛擬仿真技術(shù)在PC機(jī)上進(jìn)行實驗操作。
3 仿真效果舉例
本節(jié)主要選取虛擬實驗平臺中的一個模塊ADC實驗?zāi)K演示仿真效果,ADC實驗?zāi)K主要通過可調(diào)電阻改變輸入引腳的電壓提供模擬量輸入,進(jìn)行AD采樣轉(zhuǎn)換,并把結(jié)果轉(zhuǎn)換成電壓值,發(fā)送到串行接口UARTO進(jìn)行顯示。圖2為ADC實驗?zāi)K的主函數(shù);圖3為ADC實驗?zāi)K的仿真演示效果。
4 實驗平臺建設(shè)意義
4.1 節(jié)省資金投入
本文設(shè)計完成的虛擬實驗平臺可方便快捷的安裝到計算機(jī)中,這樣既可以緩解實驗設(shè)備緊張、建設(shè)資金有限的問題,也可以解決實驗設(shè)備更新速度慢等問題,保證每個學(xué)生都能做到真正參與實驗。
4.2 培養(yǎng)實踐能力
通過虛擬實驗平臺,可讓學(xué)生形象深刻的了解嵌入式系統(tǒng)的工作原理,掌握知識本身,如在實驗條件允許的情況下,在虛擬實驗的基礎(chǔ)上,再加上傳統(tǒng)的實驗箱教學(xué),形成“虛實”結(jié)合的實驗?zāi)J?,將大大有利于學(xué)生學(xué)習(xí)課程的興趣和學(xué)生動手實踐技能的提高。
4.3 突破時空的局限
該平臺的實現(xiàn)為學(xué)生提供了開放的學(xué)習(xí)環(huán)境,學(xué)生可選擇合適的時問和地點進(jìn)行學(xué)習(xí),從而很好的解決了學(xué)生學(xué)習(xí)時在時空上的局限性。
4.4 提供借鑒意義
隨著仿真軟件的功能越來越強(qiáng)大和應(yīng)用越來越成熟,在實驗教學(xué)中采用仿真軟件進(jìn)行虛擬仿真實驗己變得非常普遍。本文對嵌入式虛擬實驗平臺的研究對其它各類專業(yè)虛擬實驗室的建設(shè)具有一定的借鑒意義。
5 結(jié)論
本文在Proteus和Keil軟件平臺下,選用ARM7內(nèi)核的LPC2138微控制器設(shè)計了一套嵌入式系統(tǒng)虛擬實驗平臺。該平臺包含了最小系統(tǒng)、匯編語言、GPIO、外部中斷、Timer、SPI. 12C、UART、ADC. WDT. PWM.RTC、LCD、UC/OS-II操作系統(tǒng)等14個實驗?zāi)K,知識點全而,安裝簡單方便,教學(xué)使用效果較好。
參考文獻(xiàn)
[1]徐俊艷,劉瑞清,王志忠.VRML與MatLab在自動控制虛擬實驗室開發(fā)中的應(yīng)用[J].實踐與經(jīng)驗,2009 (03):100-108.
[2]丁美榮,虛擬實驗與真實實驗整合的計算機(jī)網(wǎng)絡(luò)研究性實驗教學(xué)探究[J].實驗技術(shù)與管理,2011,28 (05):163-166.
[3]程立英,張志美,魏春娟等,虛擬實驗在分級實驗教學(xué)中的應(yīng)用探究[J].沈陽師范大學(xué)學(xué)報(自然科學(xué)版), 2011, 29 (02): 326-329.
[4]楊繼森,張靜,朱革,鄭芳燕.基于ARM Cortex平臺的嵌入式系統(tǒng)課程虛擬實驗平臺設(shè)計[J].實驗技術(shù)與管理,2014,31(07):96-101.
[5]梁宜勇,王曉萍,趙文義等.“嵌入式系統(tǒng)”課程教學(xué)與實踐探討[J].中國大學(xué)教學(xué),2009 (05): 36-37.
[6]李飛.單片機(jī)課程一體化教學(xué)模式的改革與實踐[J].中國成人教育,2013 (15):171-172.
[7]楊繼森,楊奕,張靜,虛擬實驗平臺在嵌入式系統(tǒng)教學(xué)改革中的應(yīng)用[J].實驗室研究與探索,2011,30 (02): 51-52.
[8]張旭濤.Proteus軟件在單片機(jī)仿真實驗中的用法淺析[J].軟件,2011, 32 (02):102-103.
[9]張杰.基于Proteus軟件的單片機(jī)數(shù)字時鐘系統(tǒng)開發(fā)[J].中國新技術(shù)新產(chǎn)品,2010 (13):40.
[10]唐前輝,丁明亮.Proteus ISIS和Keil在單片機(jī)教學(xué)中的應(yīng)用[J].重慶電力高等專科學(xué)校學(xué)報,2006,11(04): 46-49.
[11]侯繼紅.聯(lián)合仿真在單片機(jī)教學(xué)中的應(yīng)用[J].職業(yè)教育研究,2009 (01):151-152.
[12]周潤景.ARM7嵌入式系統(tǒng)設(shè)計與仿真基于Proteus、Keil與IAR [M].北京:清華大學(xué)出版社,2012.
[13]丁桂芝,嚴(yán)海穎,趙宇楓.ARM嵌入式系統(tǒng)應(yīng)用開發(fā)基礎(chǔ)[M].大連:東軟出版社.2013.
[14]周立功.ARM嵌入式系統(tǒng)基礎(chǔ)教程[M].北京:北京航空航天大學(xué)出版社,2008.
[15]代芬,王衛(wèi)星,鄧小玲,姜晟,孫道宗,陸健強(qiáng),單片機(jī)綜合實驗開發(fā)板設(shè)計[J].實驗室研究與探索,2010,29(08):213-215.endprint