唐義思
摘 要:具有ISP/IAP功能的單片機(jī)給使用者提供了極大的方便,特別是在高校,大部份的單片機(jī)實(shí)驗(yàn)室都采用SST89C××系列的單片機(jī),一是該型單片機(jī)價(jià)格低廉,二是該型單片機(jī)同時(shí)具有ISP/IAP功能。但是由于某些不可預(yù)料的原因,很容易造成用于實(shí)現(xiàn)ISP和IAP功能的監(jiān)控程序損壞,從而導(dǎo)致單片機(jī)無(wú)法工作,該文闡述了SST89C××單片機(jī)的ISP/IAP功能的實(shí)現(xiàn)方法。由于SST89C××系列的單片機(jī)在剛出廠時(shí)就已結(jié)具備了ISP功能,因此圖文并茂地著重介紹了具有ISP功能的SST89C××單片機(jī)在沒(méi)有專用編程器時(shí)該如何實(shí)現(xiàn)IAP功能的方法。
關(guān)鍵詞:?jiǎn)纹瑱C(jī) ISP IAP 監(jiān)控程序
中圖分類號(hào):TP27 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2015)07(c)-0011-02
如今單片機(jī)在電子領(lǐng)域的應(yīng)用已經(jīng)相當(dāng)普遍,在高校大多數(shù)的工科專業(yè)也開設(shè)了相應(yīng)的單片機(jī)課程,而且以C51單片機(jī)居多,因此單片機(jī)實(shí)驗(yàn)室從實(shí)用和方便的角度出發(fā),大多數(shù)就采用SST89C××型號(hào)的單片機(jī),因?yàn)樵撔蛦纹瑱C(jī)同時(shí)具有ISP/IAP功能。當(dāng)然,該型單片機(jī)也存在不足,那就是該型單片機(jī)很容易發(fā)生ISP/IAP監(jiān)控程序損壞的情況,從而導(dǎo)致單片機(jī)無(wú)法正常工作,那么怎樣來(lái)修復(fù)這種軟故障,這就是該文所要討論的內(nèi)容。
1 ISP/IAP概念及聯(lián)系
1.1 ISP概念
ISP(In System Programing),即在系統(tǒng)編程。ISP是指可以在板級(jí)上進(jìn)行編程,而不用把芯片拆下來(lái)放到燒寫器中,即不脫離系統(tǒng),所以稱作“在系統(tǒng)編程”,它是對(duì)整個(gè)程序的擦除和寫入,通過(guò)單片機(jī)專用的串行編程接口對(duì)單片機(jī)內(nèi)部的Flash存儲(chǔ)器進(jìn)行編程。即使芯片焊接在電路板上,只要留出和上位機(jī)接口的串行口就能進(jìn)行燒寫。ISP的在線下載需要適當(dāng)?shù)妮o助電路才能實(shí)現(xiàn)。
1.2 IAP概念
IAP( In applicating Programing),在應(yīng)用編程。IAP同樣是在板級(jí)上進(jìn)行編程,MCU獲取新代碼并對(duì)程序的某部分重新編程,即可用程序來(lái)改變程序,修改程序的一部分達(dá)到升級(jí)、消除bug的目的,而不影響系統(tǒng)的其它部分,燒寫過(guò)程中程序可以繼續(xù)運(yùn)行,這樣可以進(jìn)行遠(yuǎn)程升級(jí)而不影響應(yīng)用。IAP技術(shù)是從結(jié)構(gòu)上將Flash存儲(chǔ)器映射為兩個(gè)存儲(chǔ)體,當(dāng)運(yùn)行一個(gè)存儲(chǔ)體上的用戶程序時(shí),可對(duì)另一個(gè)存儲(chǔ)體重新編程,之后將控制從一個(gè)存儲(chǔ)體轉(zhuǎn)向另一個(gè)。IAP的實(shí)現(xiàn)更加靈活,通??衫脝纹瑱C(jī)的串行口接到計(jì)算機(jī)的RS232口,通過(guò)專門設(shè)計(jì)的固件程序來(lái)編程內(nèi)部存儲(chǔ)器。
1.3 ISP/IAP聯(lián)系
實(shí)際上單片機(jī)的ISP功能就是通過(guò)IAP技術(shù)來(lái)實(shí)現(xiàn)的,即片子在出廠前就已經(jīng)有一段小的boot程序在里面,片子上電后,開始運(yùn)行這段程序,當(dāng)檢測(cè)到上位機(jī)有下載要求時(shí),便和上位機(jī)通信,然后下載數(shù)據(jù)到數(shù)據(jù)存儲(chǔ)區(qū)。
2 ISP/IAP的實(shí)現(xiàn)方法
SST89C××系列單片機(jī)在廠家設(shè)計(jì)時(shí),已經(jīng)在硬件上使其具有了ISP/IAP功能的前提,但還需要使用編程器向其寫入與ISP/IAP相對(duì)應(yīng)的監(jiān)控程序才能達(dá)到在系統(tǒng)編程和在應(yīng)用編程的目的,另外,對(duì)于SST89C××系列單片機(jī),一般在出廠時(shí)廠家已經(jīng)寫入了與ISP功能所對(duì)應(yīng)的監(jiān)控程序,因此就剛買的SST89C××系列單片機(jī)而言,他已經(jīng)具備了ISP功能,但不具備IAP功能,但如果操作不當(dāng),同樣會(huì)導(dǎo)致ISP監(jiān)控程序的損壞。由于SST89C××單片機(jī)的Flash存儲(chǔ)器映射為兩個(gè)存儲(chǔ)體,監(jiān)控程序需寫入存儲(chǔ)體1。該文以SST89C58單片機(jī)為例來(lái)介紹SST89C××系列單片機(jī)的ISP/IAP如何從軟件上來(lái)實(shí)現(xiàn),其他型號(hào)的以此類推。SST89C58單片機(jī)的FLASH存儲(chǔ)器被映射為如下兩個(gè)區(qū):BLOCK1:F000H-F3FFH;BLOCK0:7000H-7FFFH,要使單片機(jī)實(shí)現(xiàn)ISP和IAP功能,就需要向BLOCK1區(qū)寫入相應(yīng)的監(jiān)控程序,監(jiān)控程序可以直接在網(wǎng)上下載。
2.1 ISP功能的實(shí)現(xiàn)
如果單片機(jī)不能實(shí)現(xiàn)ISP功能,這時(shí)必須要用專用的編程器向單片機(jī)BLOCK1區(qū)寫入ISP功能監(jiān)控程序,相應(yīng)的監(jiān)控程序名為F51MBLF3.HEX。
2.2 IAP功能的實(shí)現(xiàn)
要實(shí)現(xiàn)IAP功能,需要向BLOCK1區(qū)寫入仿真監(jiān)控程序SOFTICE58.HEX,下面分兩種情況來(lái)說(shuō)明。
第一種情況:如果用戶有專用的編程器,則直接寫入IAP功能監(jiān)控程序SOFTICE58.HEX即可。
第二種情況:對(duì)于一般的用戶來(lái)說(shuō)是沒(méi)有專用編程器的,那么該如何向BLOCK1區(qū)寫入IAP監(jiān)控程序呢?這時(shí)要實(shí)現(xiàn)IAP功能有一個(gè)前提,那就是單片機(jī)必須要有ISP功能,而前面已經(jīng)述及對(duì)于剛出廠的新SST89C××系列單片機(jī)是具有ISP功能的,這時(shí)只需要手工焊接一個(gè)簡(jiǎn)單的串口下載電路即可實(shí)現(xiàn)。
(1)串口下載電路。
(2)監(jiān)控程序IAP下載。
利用SST89C××系列單片機(jī)對(duì)應(yīng)的下載軟件SSTEasyIAP11F.exe下載IAP監(jiān)控程序到單片機(jī)中。相應(yīng)的操作如下。
第一步,運(yùn)行軟件SSTEasyIAP11F.exe,界面如下。
第二步,執(zhí)行菜單命令DetectChip/rs232->Detect Target MCU For Firmware1.1F And RS232 Config 。
在圖中選擇相應(yīng)的單片機(jī)型號(hào)。
第三步,設(shè)置連接串口,點(diǎn)擊Detect MCU 按鈕。
第四步,給下載電路通電,如果圖2窗口右邊Chip Information區(qū)域顯示單片機(jī)類型,則說(shuō)明系統(tǒng)已經(jīng)發(fā)現(xiàn)單片機(jī),如果沒(méi)有出現(xiàn)單片機(jī)類型,則系統(tǒng)沒(méi)發(fā)現(xiàn)單片機(jī),這時(shí)需要對(duì)單單片機(jī)進(jìn)行復(fù)位。點(diǎn)擊圖2中的download,出現(xiàn)圖5界面。
在File Name框中添加SOFTICE58.HEX仿真監(jiān)控程序并且在Starting框中輸入BLOCK1區(qū)的首地址,然后點(diǎn)擊OK即可下載。
綜上所述,SST89 C××單片機(jī)要實(shí)現(xiàn)ISP/IAP功能,必須要保證相應(yīng)的監(jiān)控程序不損壞,如果SST89 C××單片機(jī)發(fā)生了ISP/IAP故障,在硬件完好無(wú)損的情況下,則應(yīng)該根據(jù)實(shí)際情況向單片機(jī)存儲(chǔ)體1寫入相應(yīng)的監(jiān)控程序即可修復(fù)。
3 結(jié)語(yǔ)
SST89 C××系列單片機(jī)由于其能夠?qū)崿F(xiàn)ISP/IAP功能,因此其使用起來(lái)非常方便,故在高校單片機(jī)實(shí)驗(yàn)室和高校理工科學(xué)生中得到了較為廣泛的應(yīng)用,但由于某些不可預(yù)料的原因,經(jīng)常發(fā)生ISP及IAP監(jiān)控程序損壞的情況,導(dǎo)致單片機(jī)不能正常運(yùn)行,該文首先介紹了ISP及IAP功能的相關(guān)概念,二者之間的聯(lián)系及區(qū)別,然后介紹了單片機(jī)實(shí)現(xiàn)ISP/IAP功能的硬件要求,最后圖文并茂地重點(diǎn)介紹了IAP監(jiān)控程序的寫入方法。
參考文獻(xiàn)
[1] 馬忠梅.單片機(jī)C語(yǔ)言應(yīng)用程序設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2007:129-132.
[2] 陳明熒.8051單片機(jī)基礎(chǔ)教程[M].北京:科學(xué)出版社,2003:201-205.
[3] 李朝青.PC機(jī)及單片機(jī)數(shù)據(jù)通信技術(shù)[M].北京:北京航空航天大學(xué)出版社,2000:185-188.
[4] 彭偉.單片機(jī)C語(yǔ)言程序設(shè)計(jì)實(shí)訓(xùn)100例[M].北京:電子工業(yè)出版社,2013:210-214.
[5] 劉昌華.8051單片機(jī)的C語(yǔ)言應(yīng)用程序設(shè)計(jì)與實(shí)踐[M].北京:國(guó)防工業(yè)出版社,2009:170-173.
[6] 周潤(rùn)景,袁偉亭,景曉松.Proteus在MCS-51&ARM7系統(tǒng)中的應(yīng)用百例[M].北京:電子工業(yè)出版社,2014:178-181.