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