基于Proteus和ADS的ARM虛擬實驗室建設(shè)
ARM技術(shù)是一門實踐性很強(qiáng)的技術(shù),其實驗是電子類教學(xué)中十分重要的實踐教學(xué)環(huán)節(jié),是培養(yǎng)學(xué)生實驗技能、創(chuàng)新思維的重要課程。掌握ARM技術(shù)已是電子類學(xué)生就業(yè)的一個基本條件。目前各個高校相繼開設(shè)了ARM課程,并逐步開始建立ARM實驗室。這些實驗室基本都是采用相應(yīng)的硬件仿真設(shè)備來構(gòu)建的,但由于ARM的種類繁多再加上資金的限制,不可能在一個實驗室包括所有種類的ARM仿真設(shè)備。虛擬實驗作為傳統(tǒng)實驗的重要補(bǔ)充,克服了諸多條件的限制,豐富了實踐性教學(xué)的手段,有利于現(xiàn)代實驗教學(xué)觀念的更新。
1 ARM實驗教學(xué)存在的問題
目前,ARM教學(xué)中存在如下問題:
①ARM課堂教學(xué)多以理論教學(xué)為主,教學(xué)中需要很多硬件設(shè)備,一般理論課堂難以輔助硬件進(jìn)行教學(xué),即便演示,效果也不好。
②ARM實驗作為實驗中心的基礎(chǔ)實驗,學(xué)生除了上課外,平時難得有機(jī)會實踐;而采用的ARM實驗設(shè)備大多是成品,學(xué)生很難參與其中的細(xì)節(jié)設(shè)計,因此學(xué)生動手能力也很難得到提高。
③配套的實驗設(shè)備多采用硬件仿真器配目標(biāo)實驗板。這種配置方式直接導(dǎo)致該課程的實驗項目有限,實驗時間過長,設(shè)備維護(hù)工作量大等現(xiàn)實問題。
針對上述問題,提出利用Proteus和ADS整合構(gòu)建ARM虛擬實驗室的方案。所謂“虛擬實驗室”,就是將計算機(jī)上的各種虛擬儀器,按實驗要求和設(shè)計原理,虛擬出一個與現(xiàn)實相同的實驗系統(tǒng),進(jìn)而在這個系統(tǒng)上完成整個實驗。與傳統(tǒng)實驗?zāi)J较啾?,虛擬實驗具有比較明顯的優(yōu)勢。例如,涉及的實驗內(nèi)容全面,硬件投入少,學(xué)生可自行實驗,實驗過程中損耗小,與工程實踐最為接近等。
2 ARM虛擬實驗室的構(gòu)建
2.1 ARM虛擬實驗室的軟件支持
本方案主要是以Proteus軟件和ADS軟件來構(gòu)建該虛擬實驗室。
Proteus ISIS是英國Labcenter公司開發(fā)的電路分析與實物仿真軟件。它運(yùn)行于Windows操作系統(tǒng)上,可以仿真、分析(SPICE)各種模擬器件和集成電路。該軟件的特點是:
①實現(xiàn)了單片機(jī)仿真和SPICE電路仿真相結(jié)合。具有模擬電路仿真、數(shù)字電路仿真、單片機(jī)及其外圍電路組成的系統(tǒng)仿真,RS232動態(tài)仿真,I2C調(diào)試器,SPI調(diào)試器、鍵盤和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發(fā)生器等。
②支持主流單片機(jī)系統(tǒng)的仿真。目前支持的單片機(jī)類型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各種外圍芯片。
③提供軟件調(diào)試功能。在硬件仿真系統(tǒng)中具有全速、單步、設(shè)置斷點等調(diào)試功能,同時可以觀察各個變量、寄存器等的當(dāng)前狀態(tài),因此在該軟件仿真系統(tǒng)中,也必須具有這些功能;同時支持第三方的軟件編譯和調(diào)試環(huán)境,如Keil C51 uVision2等軟件。
④具有強(qiáng)大的原理圖繪制功能。
總之,該軟件是一款集單片機(jī)和SPICE分析于一身的仿真軟件,功能極其強(qiáng)大。
ADS(ARM Developer Suite)是ARM公司推出的新一代ARM集成開發(fā)工具。CodeWarrior for ARM是一套完整的集成開發(fā)工具,充分發(fā)揮了ARM RISC的優(yōu)勢,使產(chǎn)品開發(fā)人員能夠很好地應(yīng)用尖端的片上系統(tǒng)技術(shù)。該工具是專為基于ARM RISC的處理器而設(shè)計的。它可加速并簡化嵌入式開發(fā)過程中的每一個環(huán)節(jié),使得開發(fā)人員只需通過一個集成軟件開發(fā)環(huán)境就能研制出ARM產(chǎn)品;在整個開發(fā)周期中,開發(fā)人員無需離開CodeWarrior開發(fā)環(huán)境,節(jié)省了在操作工具上花的時間,而有更多的精力投入到代碼編寫上來。CodeWarrior集成開發(fā)環(huán)境(IDE)為管理和開發(fā)項目提供了簡單、多樣化的圖形用戶界面。用戶可以使用ADS的CodeWarrior IDE為ARM和Thumb處理器開發(fā)用C、C++或ARM匯編語言編寫的程序代碼,還可以生成程序代碼的十六進(jìn)制文件。
2.2 ARM虛擬實驗室的實驗內(nèi)容和實驗過程
結(jié)合Proteus和ADS構(gòu)建的虛擬實驗室能夠進(jìn)行ARM涉及的所有實驗內(nèi)容,其中包括中斷、流水燈、串口通信、SPI通信、脈寬調(diào)制器、看門狗、A/D轉(zhuǎn)換器、定時,以及基于μC/OS的實驗。
基于ARM虛擬實驗室的教學(xué)采用局域網(wǎng)多媒體教學(xué),教師可以通過多媒體演示電路圖并講解其原理,學(xué)生根據(jù)相關(guān)實驗原理在ADS和Proteus中完成整個實驗。過程如下:
①在ADS中編寫C語言源程序;
②編譯、調(diào)試源程序,最終生成后綴為.hex的文件;
③在Proteus中設(shè)計完整的原理圖;
④將生成的.hex文件導(dǎo)入相應(yīng)的ARM芯片。
完成以上步驟后,在Proteus中運(yùn)行即可;觀察仿真結(jié)果,并檢驗是否與設(shè)計要求一致。
基于Proteus和ADS構(gòu)建的ARM虛擬實驗平臺提供了大量的虛擬元件供學(xué)生使用,這樣就可以在虛擬實驗教學(xué)過程中培養(yǎng)學(xué)生的興趣,激發(fā)學(xué)生的創(chuàng)造性,增強(qiáng)互動性,提高教學(xué)效果。
3 ARM虛擬實驗教學(xué)實例分析
下面以用LPC2131設(shè)計一個流水燈的實驗為例,介紹如何通過Proteus與ADS的整合實現(xiàn)對ARM外圍電路的仿真。
3.1 軟件的實現(xiàn)
在ADS中編寫C語言程序添加到user組中。程序如下:
將該程序進(jìn)行編譯,編譯通過后,就生成后綴為.hex的文件。
3.2 硬件電路的實現(xiàn)
在Proteus中設(shè)計的流水燈原理電路,如圖1所示。其中用LPC2131的P1[25:18]控制LED8~LED1,低電平點亮。將后綴為.hex的文件添加到LPC2131中,運(yùn)行后觀察到的部分仿真結(jié)果與圖1完全一致。此時為8盞燈全亮。
仿真結(jié)果與設(shè)計要求完全一致,達(dá)到了預(yù)期的目的。
結(jié) 語
綜上所述,基于Proteus和ADS構(gòu)建ARM虛擬實驗室的方案是切實可行的。采用虛擬實驗的方式,不僅能夠解決傳統(tǒng)ARM實驗室設(shè)備資金短缺和維護(hù)困難的問題,而且使學(xué)生能夠充分利用課余時間進(jìn)行ARM系統(tǒng)的軟硬件設(shè)計,充分鍛煉了學(xué)生的動手能力。在實際運(yùn)行中,取得了良好的教學(xué)效果。使用該方案進(jìn)行系統(tǒng)虛擬開發(fā)成功之后再進(jìn)行實際制作,無疑可以提高開發(fā)效率、降低開發(fā)成本、提升開發(fā)速度,具有較高的推廣應(yīng)用價值。