黃克亞
(蘇州大學(xué)陽(yáng)澄湖校區(qū)自動(dòng)控制系,江蘇蘇州 215131)
單片機(jī)作為嵌入式系統(tǒng)的一個(gè)重要分支,目前已廣泛地應(yīng)用于智能化家用電器、辦公自動(dòng)化設(shè)備、工業(yè)自動(dòng)化控制、智能化儀表、通信產(chǎn)品、汽車電子產(chǎn)品、航空航天、國(guó)防軍事等人類生活的各個(gè)領(lǐng)域。全國(guó)大中專院校電氣自動(dòng)化專業(yè)、應(yīng)用電子技術(shù)專業(yè)、通信專業(yè)、機(jī)電專業(yè)等許多專業(yè)相繼開設(shè)了單片機(jī)課程。掌握單片機(jī)最好的方法是動(dòng)手實(shí)踐。但目前高等學(xué)校單片機(jī)實(shí)踐教學(xué)存在控制芯片陳舊,功能有限,基本上還是以51單片機(jī)為主;商品化實(shí)驗(yàn)系統(tǒng)的硬件固定且不完全透明,只能完成數(shù)量有限的驗(yàn)證性實(shí)驗(yàn),絕大數(shù)學(xué)生是在“看實(shí)驗(yàn)”而不是在“做實(shí)驗(yàn)”;仿真器價(jià)格昂貴且不穩(wěn)定,編程器不利于反復(fù)修改程序。為此作者提出一種新的嵌入式系統(tǒng)實(shí)驗(yàn)?zāi)J剑瑢?1單片機(jī)升級(jí)為AVR 單片機(jī),大幅提升其控制性能,采用Proteus和CVAVR 軟件聯(lián)合仿真調(diào)試程序,利用ISP(in system programmable)技術(shù)在線更新下載程序。實(shí)踐證明,該模式具有控制芯片功能強(qiáng),系統(tǒng)實(shí)現(xiàn)容易,實(shí)驗(yàn)成本低,有利于提高學(xué)生的創(chuàng)新能力等優(yōu)點(diǎn)。
51單片機(jī)泛指所有采用Intel公司的MCS-51內(nèi)核結(jié)構(gòu),或稱為與MCS-51兼容的那些單片機(jī)。國(guó)內(nèi)高校中單片機(jī)系統(tǒng)的課程與教學(xué),20多年來(lái)基本上都是以51單片機(jī)作為構(gòu)成單片機(jī)系統(tǒng)的典型控制芯片來(lái)介紹,培養(yǎng)出大批熟悉、了解以及掌握51單片機(jī)的工程師和技術(shù)人員。因此,直到現(xiàn)在,國(guó)內(nèi)51單片機(jī)還是具有相當(dāng)多的用戶,在大部分學(xué)校的教學(xué)中,還是采用51單片機(jī)作為學(xué)習(xí)的典型芯片。從應(yīng)用和市場(chǎng)的角度看,51單片機(jī)仍舊能夠滿足許多應(yīng)用系統(tǒng)的需求,并且具有價(jià)格低廉、參考資料和工程實(shí)例最多等優(yōu)點(diǎn)。除此之外,現(xiàn)在許多半導(dǎo)體公司和生產(chǎn)廠商也在不斷推出以MCS-51為內(nèi)核的多種類型和型號(hào)、經(jīng)過較大改進(jìn)和擴(kuò)展的51兼容SOC單片機(jī),其性能比標(biāo)準(zhǔn)8051單片機(jī)要高得多,能夠滿足許多更高應(yīng)用需求[1]。
但是由于MCS-51本身內(nèi)核結(jié)構(gòu)的局限性,51單片機(jī),尤其是標(biāo)準(zhǔn)51架構(gòu)的單片機(jī),在性能、技術(shù)和軟硬件設(shè)計(jì)理念等多方面已經(jīng)落后,從技術(shù)角度看,已經(jīng)跟不上單片機(jī)流行和發(fā)展的趨勢(shì)。隨著單片機(jī)系統(tǒng)技術(shù)的發(fā)展,目前市場(chǎng)上出現(xiàn)了許多新型的8 位芯片。其中ATMEL 公司AVR 單片機(jī)的發(fā)展尤為引人注目。AVR 單片機(jī)采用了RISC 結(jié)構(gòu),其速度、內(nèi)存容量、外圍接口的集成度、向串行擴(kuò)展和更適合使用高級(jí)語(yǔ)言編程等眾多特性,以及其所使用的開發(fā)技術(shù)和仿真調(diào)試技術(shù)等,都充分體現(xiàn)和代表了當(dāng)前單片機(jī)嵌入式系統(tǒng)發(fā)展的趨勢(shì)。也正是由于這些顯著特點(diǎn),再加上其極高的性價(jià)比,使得AVR 得到了廣泛的應(yīng)用,在短時(shí)間內(nèi)成為市場(chǎng)上的主流芯片之一。
從教育的長(zhǎng)遠(yuǎn)和發(fā)展眼光出發(fā),我們的單片機(jī)教學(xué)與學(xué)習(xí)的目標(biāo)應(yīng)該更高些,要相應(yīng)地改變教學(xué)內(nèi)容、教學(xué)方式和學(xué)習(xí)方式,充分體現(xiàn)和融入新的技術(shù)、新的軟硬件設(shè)計(jì)理念和方法,為培養(yǎng)適應(yīng)當(dāng)今技術(shù)發(fā)展的嵌入式系統(tǒng)工程師打好堅(jiān)實(shí)的基礎(chǔ),以滿足社會(huì)對(duì)高水平人才的需求[2]。
傳統(tǒng)的單片機(jī)課程教學(xué)采用“先理論講解,再動(dòng)手實(shí)驗(yàn)”的教學(xué)模式,教學(xué)過程中以單片機(jī)原理為核心,用大量的原理來(lái)引導(dǎo)學(xué)生入門單片機(jī)的應(yīng)用只是點(diǎn)綴,這不僅使學(xué)生理解困難,感覺枯燥乏味,而且造成學(xué)生應(yīng)用能力不足;教學(xué)中將軟硬件分離介紹,對(duì)單片機(jī)軟硬件結(jié)合的系統(tǒng)設(shè)計(jì)方法強(qiáng)調(diào)不夠,也使得學(xué)生在構(gòu)建實(shí)際的應(yīng)用系統(tǒng)時(shí)缺少系統(tǒng)化的思路。本文中將Proteus和CVAVR 軟件聯(lián)合使用,實(shí)現(xiàn)單片機(jī)軟硬件的仿真。這種方法用虛擬單片機(jī)代替實(shí)驗(yàn)箱的硬件電路,形象具體,增強(qiáng)了學(xué)生的感性認(rèn)識(shí),有助于對(duì)單片機(jī)原理的理解。大量的教學(xué)實(shí)例通過軟件仿真,不僅節(jié)約了硬件資源,而且提高了教學(xué)效率[3]。
Proteus軟件是英國(guó)Lab center electronics公司出版的EDA 工具軟件。Proteus與其他電子仿真軟件不同的是,它不僅能仿真單片機(jī)的工作情況,還能仿真單片機(jī)外圍電路或沒有單片機(jī)參與的其他電路的工作情況。因此在仿真和程序調(diào)試時(shí),關(guān)心的不再是某些語(yǔ)句執(zhí)行時(shí)單片機(jī)寄存器和存儲(chǔ)器內(nèi)容的改變,而是從工程的角度直接看程序運(yùn)行和電路工作的過程和結(jié)果。從某種意義上講,這種仿真彌補(bǔ)了實(shí)驗(yàn)和工程應(yīng)用之間脫節(jié)的矛盾[4]。
CodeVision AVR 是HP Info Tech專門為AVR設(shè)計(jì)的一款低成本的C 語(yǔ)言編譯器,它產(chǎn)生的代碼非常嚴(yán)密,效率很高。它不僅包括了AVR C 編譯器,同時(shí)也是集成IDE 的AVR 開發(fā)平臺(tái),簡(jiǎn)稱CVAVR。與其他的C語(yǔ)言開發(fā)平臺(tái)相比較,CVAVR 對(duì)位(bit)變量的支持,大量擴(kuò)展的對(duì)一些標(biāo)準(zhǔn)的外部器件支持和接口函數(shù)(如:標(biāo)準(zhǔn)字符LCD 顯示器、I2C 接口、SPI接口、延時(shí)函數(shù)等),以及方便地對(duì)EEPROM 的操作功能等特點(diǎn)更加適合一般人員的學(xué)習(xí)和使用。
基于Proteus和CVAVR 聯(lián)合單片機(jī)系統(tǒng)的硬件仿真具體實(shí)現(xiàn)方法如下:首先分析問題、確定設(shè)計(jì)方案,在Proteus 軟件中繪制電路原理圖,然后在CVAVR 軟件中使用C 語(yǔ)言編寫控制程序,并編譯生成HEX 文件,隨后進(jìn)行軟硬件聯(lián)合仿真調(diào)試,即將Proteus硬件開發(fā)環(huán)境和CVAVR 軟件開發(fā)環(huán)境二者在計(jì)算機(jī)上結(jié)合使用,達(dá)到完美的單片機(jī)模擬開發(fā)全過程。
這種軟、硬件開發(fā)環(huán)境的結(jié)合使用方式有兩種,一種是靜態(tài)結(jié)合,一種是動(dòng)態(tài)結(jié)合[5]。靜態(tài)結(jié)合仿真就是把CVAVR 軟件下生成的HEX 文件,嵌入Proteus軟件進(jìn)行軟硬件模擬仿真;動(dòng)態(tài)結(jié)合仿真就是利用Proteus軟件支持第三方的軟件編譯和調(diào)試環(huán)境的特點(diǎn),把Proteus軟件和CVAVR 軟件動(dòng)態(tài)連接,實(shí)現(xiàn)二者的動(dòng)態(tài)實(shí)時(shí)仿真。為了簡(jiǎn)單起見,實(shí)際應(yīng)用中一般采用靜態(tài)結(jié)合的方法。最后觀察實(shí)驗(yàn)結(jié)果,單擊Proteus中的執(zhí)行按鈕,開始仿真,如果實(shí)驗(yàn)沒有達(dá)到預(yù)期效果,可以很方便地修改硬件電路或軟件程序重新實(shí)驗(yàn),直到完全達(dá)到控制要求為止[6]。
傳統(tǒng)的單片機(jī)實(shí)驗(yàn)教學(xué)主要有兩種模式,一種是采用仿真器模擬單片機(jī)的開發(fā)模式,另一種是采用直接“燒寫程序”的方式。在用仿真器模擬單片機(jī)的開發(fā)模式下可以任意修改程序,支持單步、中斷等多種調(diào)試方式,有利于快速推進(jìn)開發(fā)過程,但是仿真器價(jià)格昂貴,且穩(wěn)定性差,對(duì)實(shí)驗(yàn)結(jié)果有一定的干擾。而采用將程序編譯生成的目標(biāo)文件直接燒到單片機(jī)芯片中,然后再將單片機(jī)安裝到實(shí)驗(yàn)板上的這種方式成本較低,但單片機(jī)需反復(fù)拔插,較為麻煩且容易損傷單片機(jī)引腳[7]。
近年來(lái),USB通信技術(shù)和ISP(在系統(tǒng)可編程)技術(shù)均取得長(zhǎng)足的發(fā)展,使得只需要一根USB數(shù)據(jù)線和簡(jiǎn)單ISP電路即可將PC機(jī)上的目標(biāo)程序輕松寫入到單片機(jī)芯片中去,而且支持在線更新,使實(shí)驗(yàn)和調(diào)試變得十分容易。同時(shí)PC 機(jī)USB 端口提供的穩(wěn)定5V電源,也可以直接供實(shí)驗(yàn)板使用。這些均為研發(fā)一種新型單片機(jī)實(shí)驗(yàn)裝置提供了思路和技術(shù)支持[8]。
ISP在線下載電路主要實(shí)現(xiàn)PC 機(jī)與單片機(jī)USB通信功能,進(jìn)而將PC 機(jī)上目標(biāo)程序下載到實(shí)驗(yàn)板的單片機(jī)芯片中去。如圖1所示,ISP電路主要由AVR單片機(jī)ATmega8L(U1),USB端口(P3),10針I(yè)SP接口(P1),自鎖按鈕(P4),復(fù)位按鈕(P2),工作指示燈(LED1、LED2),時(shí)鐘電路等組成。ATmega8L 單片機(jī)用于USB 串口協(xié)議的軟件模擬和ISP 下載操作。10針I(yè)SP接口用于對(duì)其他設(shè)有ISP 接口的單片機(jī)開發(fā)板下載程序,使用時(shí)只需將兩個(gè)ISP接口使用一10針排線連接即可。自鎖按鈕用于選擇是否將USB 電源供給實(shí)驗(yàn)裝置;復(fù)位按鈕可以遠(yuǎn)程復(fù)位目標(biāo)板單片機(jī)系統(tǒng)。時(shí)鐘電路由外接晶振X1和微調(diào)電容C1、C2構(gòu)成。實(shí)驗(yàn)系統(tǒng)電源有兩種選擇,一種方式是直接由PC機(jī)USB端口供電,另外一種方式是外接+5V 直流電源,選擇哪一種供電方式由電路板上相應(yīng)跳線確定,在USB端口供電參數(shù)滿足實(shí)驗(yàn)要求的條件下一般選擇USB供電方式[9]。

圖1 USB-ISP下載器原理圖
采用理論-實(shí)驗(yàn)一體化項(xiàng)目教學(xué)有利于克服傳統(tǒng)教學(xué)以章節(jié)為序、重理論、輕實(shí)踐的教學(xué)模式帶來(lái)困境。理-實(shí)一體的項(xiàng)目式教學(xué)作為一種具有職業(yè)教育特色的教學(xué)方式,有助于開展基于工作過程系統(tǒng)化的課程開發(fā),優(yōu)化教學(xué)過程,并提高教學(xué)質(zhì)量和效率,改變了傳統(tǒng)的以驗(yàn)證理論為目的的單片機(jī)實(shí)驗(yàn)教學(xué),使高職院校能夠根據(jù)崗位需求和經(jīng)濟(jì)發(fā)展組織教學(xué)。論文中提出的基于虛擬仿真和ISP 在線下載技術(shù)的AVR 單片機(jī)實(shí)驗(yàn)?zāi)J綖槔碚摚瓕?shí)驗(yàn)一體化項(xiàng)目教學(xué)提供了技術(shù)支持,而且更有利于提高學(xué)生單片機(jī)的綜合開發(fā)能力和培養(yǎng)創(chuàng)新能力[10]。
基于虛擬仿真和ISP在線下載技術(shù)的AVR 單片機(jī)實(shí)驗(yàn)?zāi)J饺鐖D2 所示。首先明確實(shí)施項(xiàng)目設(shè)計(jì)任務(wù),技術(shù)指標(biāo),合理劃分軟硬件功能,確定系統(tǒng)總體實(shí)施方案。然后同時(shí)開展軟硬件設(shè)計(jì),硬件電路設(shè)計(jì)主要包括硬件邏輯框圖設(shè)計(jì),合理選擇元器件,系統(tǒng)電路圖設(shè)計(jì),在萬(wàn)能板上完成電路制作并進(jìn)行測(cè)試,測(cè)試完成之后在Proteus軟件中完成與實(shí)際電路相對(duì)應(yīng)的硬件仿真圖設(shè)計(jì)。系統(tǒng)軟件設(shè)計(jì)主要包括軟件結(jié)構(gòu)設(shè)計(jì),確定實(shí)現(xiàn)算法,采用CVAVR 編寫控制程序,連接編譯成功之后生成目標(biāo)文件(HEX 格式)。硬件和軟件設(shè)計(jì)均完成之后,則進(jìn)入下一個(gè)環(huán)節(jié),即采用Proteus軟件和CVAVR 軟件進(jìn)行聯(lián)合仿真調(diào)試,檢驗(yàn)系統(tǒng)控制功能是否實(shí)現(xiàn),由于仿真電路和實(shí)際電路是完全相同的,其虛擬仿真的指導(dǎo)性很強(qiáng)的,而且仿真時(shí)可以設(shè)置連續(xù)、單步、中斷等調(diào)試方式,可以說(shuō)虛擬仿真技術(shù)幾乎可以完全取代傳統(tǒng)的硬件仿真器。仿真通過后進(jìn)入下一環(huán)節(jié),即將目標(biāo)程序通過自行制作的USB-ISP下載器下載到目標(biāo)板上進(jìn)行現(xiàn)場(chǎng)調(diào)試,調(diào)試通過,則圓滿地完成項(xiàng)目設(shè)計(jì)任務(wù),如果在調(diào)試中發(fā)現(xiàn)問題,則根據(jù)問題的不同轉(zhuǎn)入相應(yīng)階段進(jìn)行修改,直到系統(tǒng)能夠?qū)崿F(xiàn)全部控制功能[11]。
本文中以“LED 點(diǎn)陣實(shí)時(shí)溫度顯示系統(tǒng)”項(xiàng)目為例介紹基于虛擬仿真和ISP在線下載的AVR 單片機(jī)實(shí)驗(yàn)?zāi)J綄?shí)施過程。
4.2.1 確定項(xiàng)目設(shè)計(jì)任務(wù)及技術(shù)指示,給出系統(tǒng)總體實(shí)施方案

圖2 AVR 單片機(jī)實(shí)驗(yàn)?zāi)J娇驁D
本系統(tǒng)設(shè)計(jì)目標(biāo)是能夠?qū)崟r(shí)采集現(xiàn)場(chǎng)溫度,并將溫度值顯示在LED 點(diǎn)陣顯示器上。主控芯片選擇高性能、低功耗的8位AVR 微處理器ATMEGAl6。由于DSl8B20獨(dú)特的單總線接口方式在多點(diǎn)測(cè)溫時(shí)有明顯的優(yōu)勢(shì),占用MCU 的I/O 引腳資源少,和MCU的通信協(xié)議比較簡(jiǎn)單,成本較低,傳輸距離遠(yuǎn),所以選用DSl8B20作為溫度測(cè)量的傳感器[12]。LED 點(diǎn)陣選擇4片8×8點(diǎn)陣模塊拼成1片1 6×1 6點(diǎn)陣模塊,使用時(shí)需要將相應(yīng)的行線和列線并聯(lián),控制時(shí)采用多個(gè)字符分時(shí)顯示的方式以顯示較多的信息,每個(gè)字符對(duì)應(yīng)的顯示碼是通過專用取字模軟件生成的,圖3為溫度單位“℃”的取字模界面。

圖3 字模提取軟件界面
4.2.2 完成系統(tǒng)軟硬件設(shè)計(jì),建立仿真電路和編寫控制程序并行聯(lián)合調(diào)試
首先在萬(wàn)能電路板上完成系統(tǒng)硬件電路設(shè)計(jì)。之所以選擇萬(wàn)能板主要考慮若采用PCB 板開發(fā)周期較長(zhǎng)且成本較高,若采用面包板雖然十分方便且比較經(jīng)濟(jì),但面包板搭建的電路經(jīng)常出現(xiàn)接觸不良,而且很難查找。萬(wàn)能板價(jià)格便宜,制作電路不太會(huì)出現(xiàn)接觸不良現(xiàn)象,特別是在萬(wàn)能板電路制作過程需要學(xué)生考慮芯片的每一個(gè)引腳,每一條線路的實(shí)際連接,更有利于提高學(xué)生的動(dòng)手能力和培養(yǎng)學(xué)生創(chuàng)新設(shè)計(jì)能力。接著完成系統(tǒng)軟硬件設(shè)計(jì),并在Proteus中建立仿真電路和用CVAVR 軟件編寫好控制程序,此時(shí)即可開展軟硬件聯(lián)合仿真調(diào)試,其仿真調(diào)試結(jié)果如圖4所示。

圖4 系統(tǒng)聯(lián)合仿真調(diào)試結(jié)果圖
4.2.3 將生成的目標(biāo)程序下載到控制芯片中,實(shí)現(xiàn)用虛擬到現(xiàn)實(shí)的轉(zhuǎn)換
將CVAVR 中生成的目標(biāo)程序通過自制的USBISP編程器下載到萬(wàn)能板上控制芯片中去,進(jìn)行現(xiàn)場(chǎng)調(diào)試,實(shí)現(xiàn)由虛擬到現(xiàn)實(shí)的轉(zhuǎn)換。有些技術(shù)參數(shù),比方說(shuō)I/O 口的驅(qū)動(dòng)能力,只有在板運(yùn)行才能觀測(cè)出來(lái)。現(xiàn)場(chǎng)調(diào)試運(yùn)行效果如圖5所示,可見項(xiàng)目設(shè)計(jì)達(dá)到了預(yù)期目標(biāo),完成了設(shè)計(jì)任務(wù),如果在調(diào)試中發(fā)現(xiàn)問題應(yīng)轉(zhuǎn)入相應(yīng)階段進(jìn)行修改,直到完全滿足控制要求為止。

圖5 現(xiàn)場(chǎng)調(diào)試效果圖
基于虛擬仿真和ISP在線下載的AVR 單片機(jī)實(shí)驗(yàn)?zāi)J绞且詥纹瑱C(jī)系統(tǒng)開發(fā)過程中實(shí)際存在的項(xiàng)目為載體,便于推進(jìn)“基于工作過程系統(tǒng)化”的項(xiàng)目式教學(xué)改革。該模式無(wú)需購(gòu)買昂貴的實(shí)驗(yàn)設(shè)備,既節(jié)約了實(shí)驗(yàn)成本又便于項(xiàng)目及時(shí)更新,使得教學(xué)內(nèi)容可以緊跟技術(shù)前沿,學(xué)生的設(shè)計(jì)作品也充滿創(chuàng)意。由系統(tǒng)規(guī)劃到組織實(shí)施,由虛擬仿真到現(xiàn)場(chǎng)調(diào)試,模式涉及單片機(jī)系統(tǒng)應(yīng)用的全過程,既是教學(xué)、實(shí)驗(yàn)和實(shí)訓(xùn)過程,又是單片機(jī)系統(tǒng)開發(fā)過程,可以對(duì)學(xué)生單片機(jī)系統(tǒng)綜合應(yīng)用能力進(jìn)行全方位的訓(xùn)練。總之,論文中所提出的AVR 單片機(jī)新的實(shí)驗(yàn)?zāi)J绞且环N低成本、高效率、訓(xùn)練全面、更新容易的單片機(jī)系統(tǒng)教學(xué)和開發(fā)模式。
(
)
[1]馬潮.AVR 單片機(jī)嵌入式系統(tǒng)原理與應(yīng)用實(shí)踐[M].北京:北京航空航天大學(xué)出版社,2011.
[2]謝文苗,韓玉芬,徐春秀.基于AVR 系列單片機(jī)的電路綜合實(shí)驗(yàn)課程改革[J].實(shí)驗(yàn)技術(shù)與管理,2010,27(3):188-190.
[3]黃克亞.高職院校單片機(jī)虛擬實(shí)驗(yàn)室建設(shè)方案研究[J].職業(yè)時(shí)空,2012,8(8):53-55.
[4]王海燕,楊艷華.Proteus和Keil軟件在單片機(jī)實(shí)驗(yàn)教學(xué)中的應(yīng)用[J].實(shí)驗(yàn)室研究與探索,2012,31(5):88-91.
[5]王娟.Proteus軟件在單片機(jī)專題實(shí)訓(xùn)中的應(yīng)用[J].實(shí)驗(yàn)室研究與探索,2012,31(8):72-75.
[6]林志琦.基于Proteus的單片機(jī)可視化軟硬件仿真[M].北京:北京航天航空大學(xué)出版社,2006.
[7]黃克亞,鄭蕾.南京鐵道職業(yè)技術(shù)學(xué)院蘇州校區(qū)管理委員會(huì).一種單片機(jī)USB-ISP 實(shí)驗(yàn)裝置:中國(guó),201120549747.4[P].2012-09-05.
[8]林凌,李蒙,李剛.一種基于ISP 技術(shù)的單片機(jī)多功能教學(xué)平臺(tái)[J].實(shí)驗(yàn)技術(shù)與管理,2009,26(3):64-67.
[9]銀翔,李波.基于ISP技術(shù)的嵌入式系統(tǒng)課程設(shè)計(jì)的實(shí)施[J].實(shí)驗(yàn)技術(shù)與管理,2010,27(11):301-303.
[10]黃克亞,尤鳳翔.基于“工作過程系統(tǒng)化”的單片機(jī)系列課程教學(xué)改革探索[J].職業(yè)時(shí)空,2011(10):74-75.
[11]朱向慶,胡均萬(wàn),陳宏華,等.多功能單片機(jī)實(shí)驗(yàn)系統(tǒng)的研制[J].實(shí)驗(yàn)室研究與探索,2012,31(4):41-44.
[12]李文華.單片機(jī)技術(shù)應(yīng)用與系統(tǒng)開發(fā)[M].大連:大連理工大學(xué)出版社,2008.