SM2965MCU及其在系統編程中的應用
1 引言
本文引用地址:http://dyxdggzs.com/article/149255.htm在系統中編程(ISP)技術(shù)的出現是對傳統編程方法的突破,它是指在用戶(hù)設計的微控制器系統中為配置新的系統功能對器件進(jìn)行重新編程的技術(shù),在線(xiàn)將程序代碼(固件)下載到程序存儲器中。繼SST公司推出具備ISP功能的FlashFlex51 [1]系列微控制器之后,PHILISPS、WINBOND、LG、ATMEL、SynCMOS等公司相繼推出具備ISP/IAP (In-Application Programming)功能的51系列微控制器[2]。這些器件的性能增強還表現在:(1)內部ROM采用Flash存儲器,容量達到32~64k字節,內部RAM容量達到512~1024字節;(2)增加特殊功能寄存器,控制功能進(jìn)一步增強;(3)內部配置看門(mén)狗定時(shí)器復位電路;(4)為降低 EMI可禁止ALE輸出;(5)雙DPTR指針等,這些功能使得微控制器外部擴展進(jìn)一步簡(jiǎn)化,形成了真正的單片結構。在POS收費終端機中更換了SynCMOS公司的SM2965作為主處理器,不用修改硬件利用微控制器串行口即可方便地實(shí)現ISP功能。本文主要分析SM2965的ISP功能特點(diǎn)及在使用中的注意事項。
2 SM2965的特點(diǎn)
和標準的80C52相比,SM2965有以下特點(diǎn): ①編程電壓5V;②64k字節片內Flash存儲器,分為128個(gè)頁(yè),每頁(yè)512字節(包括實(shí)現ISP功能的下載程序空間);③實(shí)現ISP功能下載程序空間大小可設置為 N×200H(N=0~8); ④256字節的片內RAM+768字節的片內擴展RAM(ERAM);⑤看門(mén)狗定時(shí)器;⑥對PLCC和QFP封裝型號增加了P4口:P4.0~P4.3;⑦為降低EMI,無(wú)必要時(shí)可禁止ALE信號輸出;⑧復位后硬件檢測程序存儲器空間0000H地址如為空(即#0FFH),則自動(dòng)跳到ISP功能程序入口地址。
3 SM2965存儲器結構
3.1 程序存儲器
SM2965內部集成了64k字節的Flash存儲器作為程序存儲器,地址范圍為0000H~0FFFFH,用于存放執行用戶(hù)程序的應用程序和執行ISP功能的下載程序兩部分內容。
執行ISP功能的下載程序空間最大可配置到4K 字節,空間大小=N×200H字節,N=0表示不配置下載程序,64K字節Flash 存儲器全部用于應用程序;N=1表示0FE00H~0FFFFH共有200H個(gè)字節配置給下載程序空間使用,從0000H~FDFFH供應用程序使用; N=8表示下載程序空間達到最大配置,為4K字節。N 的大小只能通過(guò)商用編程器配置,一旦在編程器上配置為 N≠0,在系統中無(wú)法改變ISP空間的配置。SM2965程序空間組成如圖1所示。 0FFFFH-(N×200H)為下載程序的入口地址。

3.2 數據存儲器
SM2956在標準的80C52內核的基礎上,增加了8個(gè)特殊功能寄存器,用于實(shí)現SM2965增加的功能和768字節的片內擴展數據存儲器Expanded Ram(ERAM),使片內數據存儲器總容量達到1K字節。數據存儲器組成如圖2。SM2965增加的特殊功能寄存器[3]見(jiàn)表1。


4 與ISP功能有關(guān)的特殊功能寄存器
4.1 ISP特殊功能寄存器介紹
與ISP功能有關(guān)的特殊功能寄存器有FAH、 FAL、FDAT、SCONF和FCR,其中FAH×256+FAL為編程狀態(tài)下的目標地址,FDAT為編程數據。
SCONF為系統控制寄存器,SCONF中的位2 與ISP功能有關(guān),SCONF各位定義如下:

WDR R R R R ISPE OME ALE1
MSB LSB
SCONF的3~6位保留未用,SCONF復位狀態(tài)為00000010B。
WDR:看門(mén)狗定時(shí)器溢出位;
OME:片內擴展數據存儲器ERAM選擇位,1 選擇片內,0 選擇片外;
ALEI:ALE輸出禁止位;
ISPE:為ISP功能總允許/禁止位,為1允許,為0禁止。ISPE設置為0,將屏蔽全部ISP功能。在執行應用程序時(shí)將ISPE=0可有效防止Flash存儲器內容被非法改寫(xiě)。
Flash控制寄存器FCR在編程時(shí)起關(guān)鍵作用,其各位定義如下:

MSB LSB
其中FCR的2~6位保留未用,FCR復位狀態(tài)為00000000B。
START:ISP功能啟動(dòng)位;
START=1,啟動(dòng)ISP功能,具體功能由F1、 F0決定;START=0,無(wú)ISP操作。
在START位置1后,SM2965硬件自動(dòng)鎖存地址和數據并獲得程序指針控制權直到ISP功能結束,START自動(dòng)復位為0。下載程序中無(wú)須檢查 START的狀態(tài)。
F1~F0 ISP功能選擇位
F1F0 ISP功能
00 字節編程
01 芯片寫(xiě)保護
10 頁(yè)面擦除
11 整片擦除
Flash存儲器的一個(gè)頁(yè)面為200H字節。執行ISP 功能,需要指定Flash存儲器地址;執行字節編程功能,Flash存儲器地址為編程字節的目標地址;執行頁(yè)面擦除功能,該地址為該頁(yè)面內任一地址;執行整片擦除和芯片寫(xiě)保護,則為0000H~0FFFFH 范圍內任一地址;執行整片擦除,SM2965將擦除ISP下載程序空間外的所有Flash存儲器;執行芯片寫(xiě)保護功能,SM2965存儲器讀出內容全部為00H。
4.2 ISP特殊功能寄存器使用舉例
例1:字節編程,#2CH編程到地址2005H
MOV SCONF, #04H ;開(kāi)放全部ISP功能
MOV FAH, #20H ;目標地址高地址20H
MOV FAL, #05H ;目標地址低地址 05H
MOV FDAT, #2CH ;寫(xiě)入數據:2CH
MOV FCON, #80H ;設置START位為1,啟動(dòng)字節編程功能,將22H固化到1005H,ISP功能結束后,START自動(dòng)復位為0,PC指向下一條指令
例2:擦除Flash頁(yè)面,如擦除253CH地址所對應的頁(yè)面
以512字節為一頁(yè),253CH處于頁(yè)面地址范圍為2400H~25FFH,執行下面程序后,該頁(yè)面全部寫(xiě)成#0FFH。
MOV SCONF, #04H ;開(kāi)放全部ISP功能
MOV FAH, #25H ;目標地址高地址25H或24H
MOV FAL, #3CH ;目標地址低地址3CH或任意
MOV FDAT, #00H ;寫(xiě)入數據:00H或任意
MOV FCON, #82H ;設置START位為1,啟動(dòng)頁(yè)面擦除功能。ISP功能結束后,START自動(dòng)復位為0,PC指向下一條指令
5 應用中的問(wèn)題
SM2965的ISP開(kāi)發(fā)靈活方便,硬件上不需要任何輔助配件,應用系統線(xiàn)路無(wú)須做任何變動(dòng),可由設計者自定義任何編程通信協(xié)議,經(jīng)計算機或簡(jiǎn)單工具通過(guò)任何I/O口或UART口送入SM2965中,不像其它具有ISP的MCU那樣必須針對特定的管腳和特殊的TIMMING協(xié)議才能實(shí)現。但在不同應用中仍需注意以下幾點(diǎn):
(1)SM2965程序空間可分為執行ISP功能的下載程序和執行用戶(hù)程序的應用程序兩部分,下載程序空間的大小可在商用編程器上配置,一旦配置被寫(xiě)入,下載程序在系統應用中將保持不變。下載程序空間最大可配置到4 kB,該空間除存放下載程序外,還應將固定的應用程序(如主監控程序)也放在該空間內,而把需要頻繁更新的應用程序放在在線(xiàn)可編程的應用程序空間中。
(2)對于在應用系統中僅更新部分應用程序的情況,如改變系統運行時(shí)的一些重要參數或者把SM2965的Flash當作EEPROM使用,則在系統中不可以執行芯片寫(xiě)保護和整片擦除功能。這時(shí)芯片內的應用程序是可通過(guò)編程器讀出的。為了防止非法讀取,這些重要參數可通過(guò)加密算法(如DES密碼算法)形成密文后再存儲到應用程序空間,應用中通過(guò)下載程序空間(讀不出)的密碼算法和密鑰將密文還原為明文。
(3)對于在應用系統中更新全部應用程序的情況,則要注意Flash空間0000H地址的代碼寫(xiě)入順序的問(wèn)題,這是因為SM2965芯片復位后硬件檢測Flash空間0000H地址如為空(即#0FFH),則自動(dòng)跳到下載程序的入口地址,否則從0000H地址執行應用程序。所以對于更新全部應用程序時(shí),在下載程序中首先執行整片擦除,然后開(kāi)始從第1頁(yè)即0200H地址編程,最后編程第0頁(yè),從0001H地址開(kāi)始,所有地址編程全部確認(CRC校驗)無(wú)誤時(shí),再編程0000H地址。
(4)用主機進(jìn)行遠程下載更新程序時(shí),為了解決干擾產(chǎn)生的誤碼問(wèn)題,可把應用程序代碼分為若干個(gè)短數據包,每個(gè)數據包帶有CRC,下載程序應首先把數據包存入緩沖區,對CRC判斷正確后再進(jìn)行編程。
(5)在執行下載程序前,如果啟動(dòng)了SM2965 內部的看門(mén)狗定時(shí)器,在下載程序中應首先禁止看門(mén)狗定時(shí)器,以防止硬件復位造成下載失敗。
(6)對于更新全部應用程序的情況,下載完畢后建議通過(guò)硬件看門(mén)狗復位啟動(dòng)系統,而不要使用跳轉指令。
出現開(kāi)始使用SM2965時(shí),經(jīng)常會(huì )出現下載失敗,要通過(guò)商用編程器重新編程SM2965的問(wèn)題,采取上述措施后,近兩年來(lái)未發(fā)生一例下載失敗的現象。
相關(guān)推薦
技術(shù)專(zhuān)區
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線(xiàn)
- 開(kāi)關(guān)電源
- 單片機
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開(kāi)發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機控制
- 藍牙
- PLC
- PWM
- 汽車(chē)電子
- 轉換器
- 電源管理
- 信號放大器
評論