


下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、自己動(dòng)手編寫STC單片機(jī)的ISP協(xié)議(轉(zhuǎn))2008-11-28 23:27:09|分類:默認(rèn)分類|標(biāo)簽:|字號(hào)大中小訂閱STC單片機(jī)包含兩個(gè)Flash塊,在一塊Flash中運(yùn)行的程序可對(duì)另一塊Flash進(jìn)行擦除和重新編程.一般都將ISP程序存放在容量較小的一 塊Flash中(Block1),而將用戶代碼存放在容量較大的一塊Flash中(Block0).Block1中的ISP程序?qū)lock0中的用戶代碼進(jìn)行擦除和重新編程.在做 STC單片機(jī)解密或是使用的朋友都知道,在STC單片機(jī)的程序存儲(chǔ)區(qū)后,還有一段大約3K的代碼,這段代碼就是STC單片機(jī)的ISP程序,在 STC單片機(jī)的數(shù)據(jù)手冊(cè)里有關(guān)于對(duì)于
2、ISP的生機(jī)資料,既然這段代碼是可以升級(jí)的,那么我們就可以肯定這個(gè)區(qū)域是可以改寫的,呵呵,這些涉及 到了對(duì)STC單片機(jī)軟解密的技術(shù),我不多提了,大家可以動(dòng)用自己的智慧。下面為大家提供一些自己設(shè)計(jì)STC ISP協(xié)議的資料。許多應(yīng)用系統(tǒng)中都需要進(jìn)行程序代碼升級(jí),如果程序代碼在外部Flash存儲(chǔ)器中, 實(shí)現(xiàn)程序代碼升級(jí)可以對(duì)外部Flash直接操作.但對(duì)于在單片機(jī)內(nèi)部的一些系統(tǒng)程序代碼,就要求此單片機(jī)支持IAP(In-A pplication-Programming) 功能本文即介紹此情況下的ISP(In-System-Programming)程序設(shè)計(jì)方法,以及在SST和STC單片機(jī)上的具體實(shí)現(xiàn).1
3、ISP實(shí)現(xiàn)基本結(jié)構(gòu)其中,判斷用戶ISP選擇,一般有以下幾種方式.(1) 連接計(jì)算機(jī)系統(tǒng),由系統(tǒng)的命令選擇進(jìn)入用戶ISP選擇判斷時(shí),先由單片機(jī)發(fā)送特定特征數(shù)據(jù),然后等待命令數(shù)據(jù),如果在一定的時(shí)間內(nèi),接收到計(jì)算機(jī)系統(tǒng)發(fā)出的選擇命令則 進(jìn)入用戶代碼升級(jí),否則直接跳轉(zhuǎn)到用戶代碼執(zhí)行.(2) 由用戶板上的跳線選擇一般利用單片機(jī)空余的端口,設(shè)計(jì)一個(gè)代碼升級(jí)選擇跳線.進(jìn)入用戶ISP選擇判斷時(shí),單片機(jī)可以直接根據(jù)此端口的狀態(tài)判斷進(jìn)入用戶代 碼升級(jí)還是直接跳轉(zhuǎn)到用戶代碼執(zhí)行.(3) 由用戶板操作功能選擇在用戶板的功能菜單或功能組合中,允許用戶選擇代碼升級(jí)功能,同時(shí),在外部存儲(chǔ)器中存放相應(yīng)的標(biāo)志.當(dāng)選擇代碼升級(jí)功
4、能時(shí),在外部 存儲(chǔ)器中寫入特定數(shù)據(jù),然后程序復(fù)位.進(jìn)入用戶ISP選擇判斷時(shí),判斷外部存儲(chǔ)器中的數(shù)據(jù),如果符合條件則進(jìn)入用戶代碼升級(jí),否則直接跳轉(zhuǎn)到用戶 代碼執(zhí)行.2 IAP程序設(shè)計(jì)目前,許多單片機(jī)都支持IAP功能,一般這些單片機(jī)內(nèi)部都包含兩個(gè)Flash塊,在一塊Flash中運(yùn)行的程序可對(duì)另一塊Flash進(jìn)行擦除和 重新編程.一般都將ISP程序存放在容量較小的一塊Flash中(Block1),而將用戶代碼存放在容量較大的一塊Flash中(Block0).Block1中的ISP程序 對(duì)Block0中的用戶代碼進(jìn)行擦除和重新編程.下面以兩種51系列兼容的Flash單片機(jī)為例,介紹IAP的程序設(shè)計(jì).一
5、種是SST89C54,另一種是STC89C516RD.(1) SST89C54相關(guān)特性SST89C54 內(nèi)部有 20KB(16KB+4KB)程序存儲(chǔ)器,統(tǒng)一編址.Block0 為 0000H3FFFH;Block1 為 F000H FFFFH.Block1 可以選擇映射 到0000H地址開始的1KB/2KB/4KB程序區(qū).(2) STC89C516RD 相關(guān)特性SST89C516RD 內(nèi)部有72KB(64KB+8KB)程序存儲(chǔ)器.Block0為0000HFFFFH,Block1可以選擇映射到0000H地址開始的8KB程序 區(qū)(上電復(fù)位缺省為地址映射).SST與STC單片機(jī)的IAP操作幾乎完全相
6、同,本刊網(wǎng)站()中給出了 IAP函數(shù)的C程序源代碼IAP.C.要特別注意的 是,Block0_erase函數(shù)中對(duì)于block0的選擇,兩種單片機(jī)是不同的(正好相反).3 ISP程序到用戶代碼的切換在設(shè)計(jì)中一般都將ISP程序設(shè)計(jì)為上電復(fù)位后運(yùn)行的程序,如果不需要用戶代碼升級(jí)或升級(jí)完成后,就要將程序切換到用戶代碼執(zhí) 行.ISP程序到用戶代碼的切換,不同的單片機(jī)各不相同.(1) SST89C54程序區(qū)Blockl到BlockO的切換實(shí)現(xiàn)SST89C54單片機(jī)在燒錄時(shí) 將ISP程序?qū)懙紹lockl,并且燒錄映射選擇位 RB0/RB1(RE-MAP1:0).這樣程序上電復(fù)位時(shí),自動(dòng)將 Blockl映射到
7、0000H地址開始的4KB程序區(qū),進(jìn)入ISP程序執(zhí)行.由于Blockl同時(shí)還分配在地址F000H FFFFH,因此,編譯生成ISP程序代碼時(shí), 設(shè)定所有的地址范圍都在F000H FFFFH.需要切換到用戶代碼(Block0)運(yùn)行時(shí),修改SFCF7控制位VIS,將Blockl的0000H地址映射取消,然后程 序跳轉(zhuǎn)到地址0000H執(zhí)行,則開始運(yùn)行Block0中的用戶代碼程序.本刊網(wǎng)站中給出了 ISP的C程序源代碼ISP.C.需要注意的是,此程序在Keil-C中要建立工程文件,包含IAP.C函數(shù)以及 STARTUP.A51,并且在IAP.C和ISP.C中都要去掉 STC的定義.為了將地址范圍設(shè)定到
8、F000H FFFFH,要將STARTUP.A51中程序入口地址由0改為0F000H,如下:CSEG AT 0F000H?C_STARTUP: LJMP STARTUP1還要修改編譯選項(xiàng)設(shè)置 Target選項(xiàng)卡中Off-chip Code memory:Start=0xF000;Size=0x1000;還要設(shè)置 C51 選項(xiàng)卡中 Interrupt Vectors at address:0xF000.(2) STC89C516RD程序區(qū)Block1到Block0的切換實(shí)現(xiàn)STC89C516RD單片機(jī)在燒錄時(shí),將ISP程序?qū)懙紹lock1.(注意:并不燒錄SC0/SC1位).單片機(jī)上電復(fù)位時(shí)缺省
9、的Block1映射到0000H 地址開始的8KB程序區(qū),進(jìn)入ISP程序執(zhí)行.需要切換到用戶代碼(Block0)運(yùn)行時(shí),ISP修改SFCF1控制位SWR,產(chǎn)生一個(gè)軟復(fù)位(SoftwareReset).由于SC0和SC1都未燒錄,程序軟復(fù)位后,Block1將不再映射到0000H地址映,則開始運(yùn)行Block0中的用戶代碼程序.本刊網(wǎng)站中給出了 ISP的C程序源代碼ISP.C.要注意的是:此程序在Keil-C中要建立工程文件,包含IAP.C函數(shù),并且在IAP.C和ISP.C 中都要保留STC的定義.4與計(jì)算機(jī)的通信協(xié)議升級(jí)用戶代碼時(shí),需要與計(jì)算機(jī)進(jìn)行通信,一般采用RS232串行通信,數(shù)據(jù)協(xié)議采用簡(jiǎn)單協(xié)
10、議.此協(xié)議參考了 ADuC812單片機(jī)的ISP數(shù) 據(jù)協(xié)議.(ADuC812單片機(jī)硬件內(nèi)置ISP程序).(1) 復(fù)位命令(計(jì)算機(jī)單片機(jī))計(jì)算機(jī)發(fā)送4字節(jié)復(fù)位命令:21H,5AH,00H,A6H,單片機(jī)返回復(fù)位信息.(2) 復(fù)位信息(單片機(jī)計(jì)算機(jī))復(fù)位信息為25字節(jié),前3字節(jié)為單片機(jī)公司特征字符(如:“ADI” “SSTC ')郵 1字節(jié)為校驗(yàn)和.(3) 數(shù)據(jù)包格式(計(jì)算機(jī)單片機(jī))計(jì)算機(jī)發(fā)送數(shù)據(jù)包格式:07H、0EH、長(zhǎng)度、數(shù)據(jù)、校驗(yàn)和(長(zhǎng)度與數(shù)據(jù)的校驗(yàn)和).擦除命令計(jì)算機(jī)發(fā)送數(shù)據(jù)包,其中數(shù)據(jù)只有1字節(jié),內(nèi)容為:字符“檄;“C單片機(jī)擦除用戶程序區(qū)后返回1字節(jié)06H表示成功;05H表示失敗.(5) 編程命令計(jì)算機(jī)發(fā)送數(shù)據(jù)包,其中數(shù)據(jù)內(nèi)容:"四,00H,址高字節(jié),地址低字節(jié)程序數(shù)據(jù).單片機(jī)返回1字節(jié)06H表示成功;05H表示失敗.(6) 運(yùn)行用戶程序計(jì)算機(jī)發(fā)送數(shù)據(jù)包,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 信用貸款管理制度
- 信訪資料管理制度
- 修建水電管理制度
- 全封閉門衛(wèi)管理制度
- 公司零現(xiàn)金管理制度
- 加氣站公司管理制度
- 廠內(nèi)特種車管理制度
- 品牌蛋糕店管理制度
- 畜牧領(lǐng)域碩士研究生培養(yǎng)模式的創(chuàng)新與實(shí)踐
- 小公司合同管理制度
- 急性肺栓塞的急救護(hù)理
- 四川省攀枝花市(2024年-2025年小學(xué)五年級(jí)語(yǔ)文)部編版期末考試(下學(xué)期)試卷及答案
- 奶茶供貨合作協(xié)議書范文范本
- 明清家具完整版本
- GB/T 15822.2-2024無(wú)損檢測(cè)磁粉檢測(cè)第2部分:檢測(cè)介質(zhì)
- 2024年河南省現(xiàn)場(chǎng)流行病學(xué)調(diào)查職業(yè)技能競(jìng)賽理論考試題庫(kù)-中(多選題部分)
- 2024版中國(guó)血脂管理指南
- 學(xué)術(shù)誠(chéng)信講座
- 子宮頸機(jī)能不全臨床診治中國(guó)專家共識(shí)(2024年版)解讀1
- PDCA循環(huán)-FOCUS-PDCA提高院內(nèi)靜脈血栓栓塞癥規(guī)范預(yù)防率經(jīng)典案例匯報(bào)
- 專升本英語(yǔ)智慧樹知到答案2024年江蘇財(cái)會(huì)職業(yè)學(xué)院
評(píng)論
0/150
提交評(píng)論