丁向榮
(廣東輕工職業(yè)技術(shù)學(xué)院 電子通信工程系,廣東 廣州 510300)
單片機(jī)仿真可分為軟件模擬仿真與在線系統(tǒng)仿真。
軟件模擬仿真是利用計(jì)算軟件模擬單片機(jī)系統(tǒng)硬件環(huán)境,進(jìn)行單片機(jī)系統(tǒng)應(yīng)用程序的調(diào)試,目前主要有Keil C集成開發(fā)環(huán)境的軟件模擬仿真與Proteus軟件的模擬仿真。由于軟件模擬仿真的系統(tǒng)環(huán)境是理想環(huán)境,因此,仿真效果與實(shí)際系統(tǒng)的運(yùn)行效果還是有差距的[1]。
在線仿真(調(diào)試)是一種在線系統(tǒng)調(diào)試方案,它是利用實(shí)際的單片機(jī)應(yīng)用系統(tǒng)環(huán)境,結(jié)合計(jì)算機(jī)仿真軟件進(jìn)行系統(tǒng)調(diào)試,仿真運(yùn)行效果與實(shí)際系統(tǒng)的運(yùn)行效果是一致的。它可以讓單片機(jī)以單步、跟蹤、執(zhí)行到光標(biāo)處、設(shè)置斷點(diǎn)、全速運(yùn)行等模式來執(zhí)行程序。每執(zhí)行一段或一行程序,就可以觀察該程序執(zhí)行完畢后的效果,并與寫該段或該行指令時(shí)的預(yù)期效果進(jìn)行比較。如果比較的結(jié)果一致,說明程序正確;如果不一致,說明程序或硬件出現(xiàn)問題,需作進(jìn)一步修改和調(diào)試。因此,在線仿真是單片機(jī)應(yīng)用系統(tǒng)開發(fā)過程中的重要步驟與重要調(diào)試手段[2-3]。
如圖1所示,在線仿真需要設(shè)計(jì)專門的硬件仿真器,才能應(yīng)用PC機(jī)對單片機(jī)目標(biāo)系統(tǒng)進(jìn)行仿真。雖然仿真器很貴,但在程序存儲器只能用ROM、PROM與EPROM的時(shí)代,單片機(jī)硬件仿真器是單片機(jī)應(yīng)用系統(tǒng)開發(fā)的必備工具,但對于單片機(jī)實(shí)驗(yàn)而言,就屬于奢侈品了[4]。
圖1 仿真器仿真連接線路圖
隨著集成電路技術(shù)的發(fā)展,誕生了可在線編程的Flash ROM程序存儲器芯片,可實(shí)現(xiàn)在線編程,使擦除程序存儲器的內(nèi)容與編寫程序可瞬間完成。傳統(tǒng)的硬件仿真器淡出了開發(fā)工具的行列,單片機(jī)應(yīng)用系統(tǒng)的開發(fā)模式改變?yōu)檐浖抡?“寫片”驗(yàn)證。這種模式雖然也很方便,但畢竟不能應(yīng)用單步、斷點(diǎn)等運(yùn)行模式進(jìn)行在線仿真調(diào)試,這會大大地降低單片機(jī)應(yīng)用系統(tǒng)的開發(fā)效率[2]。
ISD51在線仿真(調(diào)試)技術(shù)是Keil提供的一種在線調(diào)試技術(shù)。利用這種技術(shù),可以在沒有硬件仿真器的情況下,借用目標(biāo)單片機(jī)的串口完成單步、斷點(diǎn)運(yùn)行等調(diào)試手段。ISD51在線仿真(調(diào)試)技術(shù)是在目標(biāo)應(yīng)用程序適當(dāng)位置通過調(diào)用Keil提供的ISD51功能函數(shù)iskey(void)、ISDinit(void)、ISDwait(void)、ISDcheck(void)、ISDdisable(void)、ISDbreak(void)等來實(shí)現(xiàn)的。雖然ISD51在線仿真(調(diào)試)技術(shù)不需要硬件仿真器,但需要占用目標(biāo)單片機(jī)的串口資源以及需要在目標(biāo)應(yīng)用程序放置ISD51功能函數(shù),需要有較豐富的經(jīng)驗(yàn)才能做到,否則,不但不能幫助調(diào)試程序,還會影響目標(biāo)應(yīng)用程序的功能。因此,采用ISD51在線仿真(調(diào)試)技術(shù)需要較高的門檻[5]。
IAP15F2K61S2單片機(jī)的可仿真技術(shù)是STC公司推出的最新技術(shù),采用基于IAP(在線應(yīng)用編程)的“軟”核技術(shù)實(shí)現(xiàn)硬件仿真器的功能。IAP15F2K61S2單片機(jī)既可以作目標(biāo)芯片,也可用作仿真芯片。利用STC-ISP編程軟件的設(shè)置工具將一段在線仿真監(jiān)控程序下載到IAP15F2K61S2單片機(jī)中,IAP15F2K61S2單片機(jī)就是1顆仿真芯片了,不需增加任何外圍電路,就相當(dāng)于傳統(tǒng)的單片機(jī)硬件仿真器[6]。
在線仿真電路與STC單片機(jī)的在線編程電路是一致的,不需增加任何硬件開銷,如圖2所示。
圖2 在線仿真電路
IAP15F2K61S2單片機(jī)設(shè)置為仿真芯片的設(shè)置界面如圖3所示(設(shè)置界面在STC-ISP在線編程軟件界面中的“Keil仿真設(shè)置”選項(xiàng)中),點(diǎn)擊“將IAP15F2K60S2設(shè)置為2.0版仿真芯片”按鈕,然后將單片機(jī)重新上電,即可將IAP15F2K61S2單片機(jī)設(shè)置為仿真芯片。
圖3 仿真芯片的設(shè)置
Keil軟件是8051單片機(jī)應(yīng)用開發(fā)與學(xué)習(xí)的必會工具。Keil除可以編輯、編譯ASM或C51應(yīng)用程序,生成機(jī)器代碼程序以外,還可以實(shí)施軟件模擬仿真和在線仿真,所要做的只是進(jìn)行在線仿真設(shè)置和運(yùn)行:
(1) 選擇“STC Mon51仿真”模式;
(2) 選擇與在線編程電路一致的串口號;
(3) 選擇與在線編程電路一致的串口波特率;
(4) 在線仿真的運(yùn)行。
當(dāng)按照以上要求設(shè)置好后,就可以利用Keil軟件的單步、跟蹤、斷點(diǎn)、執(zhí)行到光標(biāo)、全速運(yùn)行模式對目標(biāo)程序進(jìn)行在線仿真(調(diào)試)了。在線調(diào)試時(shí),既可以在Keil軟件的調(diào)試界面上觀察目標(biāo)程序的運(yùn)行結(jié)果,又可以在目標(biāo)單片機(jī)應(yīng)用系統(tǒng)上直接觀察程序的運(yùn)行結(jié)果(與在系統(tǒng)調(diào)試一致)。經(jīng)反復(fù)調(diào)試,系統(tǒng)無誤后,利用在線編程軟件將調(diào)試好的程序下載到IAP15F2K61S2單片機(jī)中,IAP15F2K61S2單片機(jī)就成為目標(biāo)單片機(jī)了。
基于IAP15F2K61S2單片機(jī)的在線仿真,在不增加硬件開銷的情況下,具有傳統(tǒng)仿真器的仿真效果,可大大提高單片機(jī)應(yīng)用系統(tǒng)的開發(fā)效率。
單片機(jī)課程是一門實(shí)踐性、應(yīng)用性很強(qiáng)的課程,提高單片機(jī)課程教學(xué)效果必須從單片機(jī)實(shí)驗(yàn)技術(shù)與實(shí)驗(yàn)手段方面著手[7]。為了提高單片機(jī)的教學(xué)效果,人們探討采用項(xiàng)目教學(xué)、任務(wù)驅(qū)動的模式,實(shí)施“教、學(xué)、做”一體化教學(xué)方法,其根本在于實(shí)驗(yàn)教學(xué)模式的改變[8]。
目前,較為先進(jìn)的單片機(jī)實(shí)驗(yàn)?zāi)J绞恰癙roteus軟件模擬仿真”與“單片機(jī)開發(fā)板的在系統(tǒng)驗(yàn)真”相結(jié)合。由于價(jià)格便宜,人人擁有一塊單片機(jī)開發(fā)板已成為現(xiàn)實(shí),其最大的意義是使單片機(jī)實(shí)驗(yàn)室得到了無限擴(kuò)展。單片機(jī)開發(fā)板的在系統(tǒng)驗(yàn)真屬于“寫片”驗(yàn)證模式,雖然基于“Flash ROM”的在線編程技術(shù)已經(jīng)非常成熟與簡單了,“寫片”已是一件很方便的事情,但如果不能利用Keil軟件的單步、斷點(diǎn)等調(diào)試功能來調(diào)試單片機(jī)應(yīng)用程序,進(jìn)行程序的差錯(cuò)與糾錯(cuò),自然會降低實(shí)驗(yàn)效率,而且缺乏調(diào)試手段的實(shí)驗(yàn)不利于理解單片機(jī)應(yīng)用程序,影響單片機(jī)的學(xué)習(xí)效率[9-10]。
基于IAP的在線仿真技術(shù),即在在線編程電路的基礎(chǔ)上,不需增加任何硬件開銷,IAP15F2K61S2單片機(jī)即可設(shè)置為仿真單片機(jī)芯片,Keil軟件可以很方便地實(shí)施在線硬件仿真,給單片機(jī)應(yīng)用系統(tǒng)的技術(shù)開發(fā)注入了新的活力,它將使得單片機(jī)應(yīng)用系統(tǒng)的開發(fā)過程變得更加簡單與高效。單片機(jī)課程的實(shí)驗(yàn)教學(xué)時(shí)刻要與現(xiàn)實(shí)單片機(jī)應(yīng)用開發(fā)技術(shù)接軌,將“單片機(jī)開發(fā)板的在系統(tǒng)驗(yàn)真”的實(shí)操模式提升為“在線系統(tǒng)仿真”,充分利用Keil軟件的調(diào)試功能進(jìn)行程序的分析與功能調(diào)試,有利于提高學(xué)生的程序分析能力與編程能力,有利于鍛煉學(xué)生的綜合分析能力與創(chuàng)新能力。采用基于IAP在線仿真技術(shù)除必須采用“IAP15F2K61S2單片機(jī)”或“IAP15L2K61S2單片機(jī)”外,不需對單片機(jī)開發(fā)板作任何改動。提升實(shí)驗(yàn)技術(shù)是一種實(shí)驗(yàn)理念的改變,一種實(shí)驗(yàn)習(xí)慣的改變。
基于IAP(IAP15F2K61S2單片機(jī))的在線仿真技術(shù),是目前最先進(jìn)的一種在線仿真技術(shù),1顆芯片即為一個(gè)硬件仿真器。在不增加任何硬件開銷的情況下,可以具有傳統(tǒng)的、比較昂貴的硬件仿真器所具備的調(diào)試功能。保持實(shí)驗(yàn)教學(xué)與市場同步,培養(yǎng)與社會“零銜接”的人才,是當(dāng)代人才培養(yǎng)的教育理念,更是單片機(jī)應(yīng)用技術(shù)人才培養(yǎng)過程所提倡和追求的[11]。
[1] 底群.單片機(jī)實(shí)驗(yàn)教學(xué)仿真軟件設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2013(2):39-41,44.
[2] 丁向榮.增強(qiáng)型8051單片機(jī)原理與系統(tǒng)開發(fā)[M].北京:清華大學(xué)出版社,2013.
[3] 丁向榮.單片微機(jī)原理與單片機(jī)應(yīng)用技術(shù)[M].北京:電子工業(yè)出版社,2012.
[4] 常淑俊,黃杰勇.單片機(jī)實(shí)驗(yàn)教學(xué)的探討[J].實(shí)驗(yàn)科學(xué)與技術(shù),2013(4):82-83.
[5] 周堅(jiān).單片機(jī)C語言輕松入門[M].北京:北京航空航天大學(xué)出版社,2011.
[6] 深圳宏晶科技有限公司.STC15F2K60S2系列單片機(jī)中文數(shù)據(jù)資料手冊[M].深圳:深圳宏晶科技有限公司,2013.
[7] 李萍.以單片機(jī)實(shí)驗(yàn)教學(xué)改革探大學(xué)生實(shí)踐與創(chuàng)新能力培養(yǎng)模式[J].中國現(xiàn)代教育裝備,2012(11):49-50,59.
[8] 賈萍,丁向榮,胡美蘭.“教、學(xué)、做”一體化單片機(jī)教學(xué)實(shí)驗(yàn)平臺設(shè)計(jì)與應(yīng)用[J].實(shí)驗(yàn)技術(shù)與管理,2012,29(6):139-142.
[9] 楊琳,高宏亮.以提高學(xué)習(xí)興趣為導(dǎo)向的單片機(jī)實(shí)驗(yàn)課改革[J].實(shí)驗(yàn)室科學(xué),2013(4):95-98.
[10] 黃克亞.基于虛擬仿真和ISP下載的AVR單片機(jī)實(shí)驗(yàn)?zāi)J窖芯縖J].實(shí)驗(yàn)技術(shù)與管理,2013,30(8):81-85.
[11] 孟雷.應(yīng)用型本科院校單片機(jī)實(shí)驗(yàn)教學(xué)改革探討[J].現(xiàn)代商貿(mào)工業(yè),2013(8):129-130.