黃克亞
(蘇州大學(xué)陽澄湖校區(qū)自動控制系,江蘇蘇州 215131)
單片機作為嵌入式系統(tǒng)的一個重要分支,目前已廣泛地應(yīng)用于智能化家用電器、辦公自動化設(shè)備、工業(yè)自動化控制、智能化儀表、通信產(chǎn)品、汽車電子產(chǎn)品、航空航天、國防軍事等人類生活的各個領(lǐng)域。全國大中專院校電氣自動化專業(yè)、應(yīng)用電子技術(shù)專業(yè)、通信專業(yè)、機電專業(yè)等許多專業(yè)相繼開設(shè)了單片機課程。掌握單片機最好的方法是動手實踐。但目前高等學(xué)校單片機實踐教學(xué)存在控制芯片陳舊,功能有限,基本上還是以51單片機為主;商品化實驗系統(tǒng)的硬件固定且不完全透明,只能完成數(shù)量有限的驗證性實驗,絕大數(shù)學(xué)生是在“看實驗”而不是在“做實驗”;仿真器價格昂貴且不穩(wěn)定,編程器不利于反復(fù)修改程序。為此作者提出一種新的嵌入式系統(tǒng)實驗?zāi)J?,?1單片機升級為AVR 單片機,大幅提升其控制性能,采用Proteus和CVAVR 軟件聯(lián)合仿真調(diào)試程序,利用ISP(in system programmable)技術(shù)在線更新下載程序。實踐證明,該模式具有控制芯片功能強,系統(tǒng)實現(xiàn)容易,實驗成本低,有利于提高學(xué)生的創(chuàng)新能力等優(yōu)點。
51單片機泛指所有采用Intel公司的MCS-51內(nèi)核結(jié)構(gòu),或稱為與MCS-51兼容的那些單片機。國內(nèi)高校中單片機系統(tǒng)的課程與教學(xué),20多年來基本上都是以51單片機作為構(gòu)成單片機系統(tǒng)的典型控制芯片來介紹,培養(yǎng)出大批熟悉、了解以及掌握51單片機的工程師和技術(shù)人員。因此,直到現(xiàn)在,國內(nèi)51單片機還是具有相當(dāng)多的用戶,在大部分學(xué)校的教學(xué)中,還是采用51單片機作為學(xué)習(xí)的典型芯片。從應(yīng)用和市場的角度看,51單片機仍舊能夠滿足許多應(yīng)用系統(tǒng)的需求,并且具有價格低廉、參考資料和工程實例最多等優(yōu)點。除此之外,現(xiàn)在許多半導(dǎo)體公司和生產(chǎn)廠商也在不斷推出以MCS-51為內(nèi)核的多種類型和型號、經(jīng)過較大改進和擴展的51兼容SOC單片機,其性能比標(biāo)準(zhǔn)8051單片機要高得多,能夠滿足許多更高應(yīng)用需求[1]。
但是由于MCS-51本身內(nèi)核結(jié)構(gòu)的局限性,51單片機,尤其是標(biāo)準(zhǔn)51架構(gòu)的單片機,在性能、技術(shù)和軟硬件設(shè)計理念等多方面已經(jīng)落后,從技術(shù)角度看,已經(jīng)跟不上單片機流行和發(fā)展的趨勢。隨著單片機系統(tǒng)技術(shù)的發(fā)展,目前市場上出現(xiàn)了許多新型的8 位芯片。其中ATMEL 公司AVR 單片機的發(fā)展尤為引人注目。AVR 單片機采用了RISC 結(jié)構(gòu),其速度、內(nèi)存容量、外圍接口的集成度、向串行擴展和更適合使用高級語言編程等眾多特性,以及其所使用的開發(fā)技術(shù)和仿真調(diào)試技術(shù)等,都充分體現(xiàn)和代表了當(dāng)前單片機嵌入式系統(tǒng)發(fā)展的趨勢。也正是由于這些顯著特點,再加上其極高的性價比,使得AVR 得到了廣泛的應(yīng)用,在短時間內(nèi)成為市場上的主流芯片之一。
從教育的長遠和發(fā)展眼光出發(fā),我們的單片機教學(xué)與學(xué)習(xí)的目標(biāo)應(yīng)該更高些,要相應(yīng)地改變教學(xué)內(nèi)容、教學(xué)方式和學(xué)習(xí)方式,充分體現(xiàn)和融入新的技術(shù)、新的軟硬件設(shè)計理念和方法,為培養(yǎng)適應(yīng)當(dāng)今技術(shù)發(fā)展的嵌入式系統(tǒng)工程師打好堅實的基礎(chǔ),以滿足社會對高水平人才的需求[2]。
傳統(tǒng)的單片機課程教學(xué)采用“先理論講解,再動手實驗”的教學(xué)模式,教學(xué)過程中以單片機原理為核心,用大量的原理來引導(dǎo)學(xué)生入門單片機的應(yīng)用只是點綴,這不僅使學(xué)生理解困難,感覺枯燥乏味,而且造成學(xué)生應(yīng)用能力不足;教學(xué)中將軟硬件分離介紹,對單片機軟硬件結(jié)合的系統(tǒng)設(shè)計方法強調(diào)不夠,也使得學(xué)生在構(gòu)建實際的應(yīng)用系統(tǒng)時缺少系統(tǒng)化的思路。本文中將Proteus和CVAVR 軟件聯(lián)合使用,實現(xiàn)單片機軟硬件的仿真。這種方法用虛擬單片機代替實驗箱的硬件電路,形象具體,增強了學(xué)生的感性認(rèn)識,有助于對單片機原理的理解。大量的教學(xué)實例通過軟件仿真,不僅節(jié)約了硬件資源,而且提高了教學(xué)效率[3]。
Proteus軟件是英國Lab center electronics公司出版的EDA 工具軟件。Proteus與其他電子仿真軟件不同的是,它不僅能仿真單片機的工作情況,還能仿真單片機外圍電路或沒有單片機參與的其他電路的工作情況。因此在仿真和程序調(diào)試時,關(guān)心的不再是某些語句執(zhí)行時單片機寄存器和存儲器內(nèi)容的改變,而是從工程的角度直接看程序運行和電路工作的過程和結(jié)果。從某種意義上講,這種仿真彌補了實驗和工程應(yīng)用之間脫節(jié)的矛盾[4]。
CodeVision AVR 是HP Info Tech專門為AVR設(shè)計的一款低成本的C 語言編譯器,它產(chǎn)生的代碼非常嚴(yán)密,效率很高。它不僅包括了AVR C 編譯器,同時也是集成IDE 的AVR 開發(fā)平臺,簡稱CVAVR。與其他的C語言開發(fā)平臺相比較,CVAVR 對位(bit)變量的支持,大量擴展的對一些標(biāo)準(zhǔn)的外部器件支持和接口函數(shù)(如:標(biāo)準(zhǔn)字符LCD 顯示器、I2C 接口、SPI接口、延時函數(shù)等),以及方便地對EEPROM 的操作功能等特點更加適合一般人員的學(xué)習(xí)和使用。
基于Proteus和CVAVR 聯(lián)合單片機系統(tǒng)的硬件仿真具體實現(xiàn)方法如下:首先分析問題、確定設(shè)計方案,在Proteus 軟件中繪制電路原理圖,然后在CVAVR 軟件中使用C 語言編寫控制程序,并編譯生成HEX 文件,隨后進行軟硬件聯(lián)合仿真調(diào)試,即將Proteus硬件開發(fā)環(huán)境和CVAVR 軟件開發(fā)環(huán)境二者在計算機上結(jié)合使用,達到完美的單片機模擬開發(fā)全過程。
這種軟、硬件開發(fā)環(huán)境的結(jié)合使用方式有兩種,一種是靜態(tài)結(jié)合,一種是動態(tài)結(jié)合[5]。靜態(tài)結(jié)合仿真就是把CVAVR 軟件下生成的HEX 文件,嵌入Proteus軟件進行軟硬件模擬仿真;動態(tài)結(jié)合仿真就是利用Proteus軟件支持第三方的軟件編譯和調(diào)試環(huán)境的特點,把Proteus軟件和CVAVR 軟件動態(tài)連接,實現(xiàn)二者的動態(tài)實時仿真。為了簡單起見,實際應(yīng)用中一般采用靜態(tài)結(jié)合的方法。最后觀察實驗結(jié)果,單擊Proteus中的執(zhí)行按鈕,開始仿真,如果實驗沒有達到預(yù)期效果,可以很方便地修改硬件電路或軟件程序重新實驗,直到完全達到控制要求為止[6]。
傳統(tǒng)的單片機實驗教學(xué)主要有兩種模式,一種是采用仿真器模擬單片機的開發(fā)模式,另一種是采用直接“燒寫程序”的方式。在用仿真器模擬單片機的開發(fā)模式下可以任意修改程序,支持單步、中斷等多種調(diào)試方式,有利于快速推進開發(fā)過程,但是仿真器價格昂貴,且穩(wěn)定性差,對實驗結(jié)果有一定的干擾。而采用將程序編譯生成的目標(biāo)文件直接燒到單片機芯片中,然后再將單片機安裝到實驗板上的這種方式成本較低,但單片機需反復(fù)拔插,較為麻煩且容易損傷單片機引腳[7]。
近年來,USB通信技術(shù)和ISP(在系統(tǒng)可編程)技術(shù)均取得長足的發(fā)展,使得只需要一根USB數(shù)據(jù)線和簡單ISP電路即可將PC機上的目標(biāo)程序輕松寫入到單片機芯片中去,而且支持在線更新,使實驗和調(diào)試變得十分容易。同時PC 機USB 端口提供的穩(wěn)定5V電源,也可以直接供實驗板使用。這些均為研發(fā)一種新型單片機實驗裝置提供了思路和技術(shù)支持[8]。
ISP在線下載電路主要實現(xiàn)PC 機與單片機USB通信功能,進而將PC 機上目標(biāo)程序下載到實驗板的單片機芯片中去。如圖1所示,ISP電路主要由AVR單片機ATmega8L(U1),USB端口(P3),10針I(yè)SP接口(P1),自鎖按鈕(P4),復(fù)位按鈕(P2),工作指示燈(LED1、LED2),時鐘電路等組成。ATmega8L 單片機用于USB 串口協(xié)議的軟件模擬和ISP 下載操作。10針I(yè)SP接口用于對其他設(shè)有ISP 接口的單片機開發(fā)板下載程序,使用時只需將兩個ISP接口使用一10針排線連接即可。自鎖按鈕用于選擇是否將USB 電源供給實驗裝置;復(fù)位按鈕可以遠程復(fù)位目標(biāo)板單片機系統(tǒng)。時鐘電路由外接晶振X1和微調(diào)電容C1、C2構(gòu)成。實驗系統(tǒng)電源有兩種選擇,一種方式是直接由PC機USB端口供電,另外一種方式是外接+5V 直流電源,選擇哪一種供電方式由電路板上相應(yīng)跳線確定,在USB端口供電參數(shù)滿足實驗要求的條件下一般選擇USB供電方式[9]。
圖1 USB-ISP下載器原理圖
采用理論-實驗一體化項目教學(xué)有利于克服傳統(tǒng)教學(xué)以章節(jié)為序、重理論、輕實踐的教學(xué)模式帶來困境。理-實一體的項目式教學(xué)作為一種具有職業(yè)教育特色的教學(xué)方式,有助于開展基于工作過程系統(tǒng)化的課程開發(fā),優(yōu)化教學(xué)過程,并提高教學(xué)質(zhì)量和效率,改變了傳統(tǒng)的以驗證理論為目的的單片機實驗教學(xué),使高職院校能夠根據(jù)崗位需求和經(jīng)濟發(fā)展組織教學(xué)。論文中提出的基于虛擬仿真和ISP 在線下載技術(shù)的AVR 單片機實驗?zāi)J綖槔碚摚瓕嶒炓惑w化項目教學(xué)提供了技術(shù)支持,而且更有利于提高學(xué)生單片機的綜合開發(fā)能力和培養(yǎng)創(chuàng)新能力[10]。
基于虛擬仿真和ISP在線下載技術(shù)的AVR 單片機實驗?zāi)J饺鐖D2 所示。首先明確實施項目設(shè)計任務(wù),技術(shù)指標(biāo),合理劃分軟硬件功能,確定系統(tǒng)總體實施方案。然后同時開展軟硬件設(shè)計,硬件電路設(shè)計主要包括硬件邏輯框圖設(shè)計,合理選擇元器件,系統(tǒng)電路圖設(shè)計,在萬能板上完成電路制作并進行測試,測試完成之后在Proteus軟件中完成與實際電路相對應(yīng)的硬件仿真圖設(shè)計。系統(tǒng)軟件設(shè)計主要包括軟件結(jié)構(gòu)設(shè)計,確定實現(xiàn)算法,采用CVAVR 編寫控制程序,連接編譯成功之后生成目標(biāo)文件(HEX 格式)。硬件和軟件設(shè)計均完成之后,則進入下一個環(huán)節(jié),即采用Proteus軟件和CVAVR 軟件進行聯(lián)合仿真調(diào)試,檢驗系統(tǒng)控制功能是否實現(xiàn),由于仿真電路和實際電路是完全相同的,其虛擬仿真的指導(dǎo)性很強的,而且仿真時可以設(shè)置連續(xù)、單步、中斷等調(diào)試方式,可以說虛擬仿真技術(shù)幾乎可以完全取代傳統(tǒng)的硬件仿真器。仿真通過后進入下一環(huán)節(jié),即將目標(biāo)程序通過自行制作的USB-ISP下載器下載到目標(biāo)板上進行現(xiàn)場調(diào)試,調(diào)試通過,則圓滿地完成項目設(shè)計任務(wù),如果在調(diào)試中發(fā)現(xiàn)問題,則根據(jù)問題的不同轉(zhuǎn)入相應(yīng)階段進行修改,直到系統(tǒng)能夠?qū)崿F(xiàn)全部控制功能[11]。
本文中以“LED 點陣實時溫度顯示系統(tǒng)”項目為例介紹基于虛擬仿真和ISP在線下載的AVR 單片機實驗?zāi)J綄嵤┻^程。
4.2.1 確定項目設(shè)計任務(wù)及技術(shù)指示,給出系統(tǒng)總體實施方案
圖2 AVR 單片機實驗?zāi)J娇驁D
本系統(tǒng)設(shè)計目標(biāo)是能夠?qū)崟r采集現(xiàn)場溫度,并將溫度值顯示在LED 點陣顯示器上。主控芯片選擇高性能、低功耗的8位AVR 微處理器ATMEGAl6。由于DSl8B20獨特的單總線接口方式在多點測溫時有明顯的優(yōu)勢,占用MCU 的I/O 引腳資源少,和MCU的通信協(xié)議比較簡單,成本較低,傳輸距離遠,所以選用DSl8B20作為溫度測量的傳感器[12]。LED 點陣選擇4片8×8點陣模塊拼成1片1 6×1 6點陣模塊,使用時需要將相應(yīng)的行線和列線并聯(lián),控制時采用多個字符分時顯示的方式以顯示較多的信息,每個字符對應(yīng)的顯示碼是通過專用取字模軟件生成的,圖3為溫度單位“℃”的取字模界面。
圖3 字模提取軟件界面
4.2.2 完成系統(tǒng)軟硬件設(shè)計,建立仿真電路和編寫控制程序并行聯(lián)合調(diào)試
首先在萬能電路板上完成系統(tǒng)硬件電路設(shè)計。之所以選擇萬能板主要考慮若采用PCB 板開發(fā)周期較長且成本較高,若采用面包板雖然十分方便且比較經(jīng)濟,但面包板搭建的電路經(jīng)常出現(xiàn)接觸不良,而且很難查找。萬能板價格便宜,制作電路不太會出現(xiàn)接觸不良現(xiàn)象,特別是在萬能板電路制作過程需要學(xué)生考慮芯片的每一個引腳,每一條線路的實際連接,更有利于提高學(xué)生的動手能力和培養(yǎng)學(xué)生創(chuàng)新設(shè)計能力。接著完成系統(tǒng)軟硬件設(shè)計,并在Proteus中建立仿真電路和用CVAVR 軟件編寫好控制程序,此時即可開展軟硬件聯(lián)合仿真調(diào)試,其仿真調(diào)試結(jié)果如圖4所示。
圖4 系統(tǒng)聯(lián)合仿真調(diào)試結(jié)果圖
4.2.3 將生成的目標(biāo)程序下載到控制芯片中,實現(xiàn)用虛擬到現(xiàn)實的轉(zhuǎn)換
將CVAVR 中生成的目標(biāo)程序通過自制的USBISP編程器下載到萬能板上控制芯片中去,進行現(xiàn)場調(diào)試,實現(xiàn)由虛擬到現(xiàn)實的轉(zhuǎn)換。有些技術(shù)參數(shù),比方說I/O 口的驅(qū)動能力,只有在板運行才能觀測出來?,F(xiàn)場調(diào)試運行效果如圖5所示,可見項目設(shè)計達到了預(yù)期目標(biāo),完成了設(shè)計任務(wù),如果在調(diào)試中發(fā)現(xiàn)問題應(yīng)轉(zhuǎn)入相應(yīng)階段進行修改,直到完全滿足控制要求為止。
圖5 現(xiàn)場調(diào)試效果圖
基于虛擬仿真和ISP在線下載的AVR 單片機實驗?zāi)J绞且詥纹瑱C系統(tǒng)開發(fā)過程中實際存在的項目為載體,便于推進“基于工作過程系統(tǒng)化”的項目式教學(xué)改革。該模式無需購買昂貴的實驗設(shè)備,既節(jié)約了實驗成本又便于項目及時更新,使得教學(xué)內(nèi)容可以緊跟技術(shù)前沿,學(xué)生的設(shè)計作品也充滿創(chuàng)意。由系統(tǒng)規(guī)劃到組織實施,由虛擬仿真到現(xiàn)場調(diào)試,模式涉及單片機系統(tǒng)應(yīng)用的全過程,既是教學(xué)、實驗和實訓(xùn)過程,又是單片機系統(tǒng)開發(fā)過程,可以對學(xué)生單片機系統(tǒng)綜合應(yīng)用能力進行全方位的訓(xùn)練。總之,論文中所提出的AVR 單片機新的實驗?zāi)J绞且环N低成本、高效率、訓(xùn)練全面、更新容易的單片機系統(tǒng)教學(xué)和開發(fā)模式。
(
)
[1]馬潮.AVR 單片機嵌入式系統(tǒng)原理與應(yīng)用實踐[M].北京:北京航空航天大學(xué)出版社,2011.
[2]謝文苗,韓玉芬,徐春秀.基于AVR 系列單片機的電路綜合實驗課程改革[J].實驗技術(shù)與管理,2010,27(3):188-190.
[3]黃克亞.高職院校單片機虛擬實驗室建設(shè)方案研究[J].職業(yè)時空,2012,8(8):53-55.
[4]王海燕,楊艷華.Proteus和Keil軟件在單片機實驗教學(xué)中的應(yīng)用[J].實驗室研究與探索,2012,31(5):88-91.
[5]王娟.Proteus軟件在單片機專題實訓(xùn)中的應(yīng)用[J].實驗室研究與探索,2012,31(8):72-75.
[6]林志琦.基于Proteus的單片機可視化軟硬件仿真[M].北京:北京航天航空大學(xué)出版社,2006.
[7]黃克亞,鄭蕾.南京鐵道職業(yè)技術(shù)學(xué)院蘇州校區(qū)管理委員會.一種單片機USB-ISP 實驗裝置:中國,201120549747.4[P].2012-09-05.
[8]林凌,李蒙,李剛.一種基于ISP 技術(shù)的單片機多功能教學(xué)平臺[J].實驗技術(shù)與管理,2009,26(3):64-67.
[9]銀翔,李波.基于ISP技術(shù)的嵌入式系統(tǒng)課程設(shè)計的實施[J].實驗技術(shù)與管理,2010,27(11):301-303.
[10]黃克亞,尤鳳翔.基于“工作過程系統(tǒng)化”的單片機系列課程教學(xué)改革探索[J].職業(yè)時空,2011(10):74-75.
[11]朱向慶,胡均萬,陳宏華,等.多功能單片機實驗系統(tǒng)的研制[J].實驗室研究與探索,2012,31(4):41-44.
[12]李文華.單片機技術(shù)應(yīng)用與系統(tǒng)開發(fā)[M].大連:大連理工大學(xué)出版社,2008.