新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > SM2965MCU及其在系統(tǒng)編程中的應(yīng)用

SM2965MCU及其在系統(tǒng)編程中的應(yīng)用

作者: 時(shí)間:2012-04-11 來(lái)源:網(wǎng)絡(luò) 收藏

1 引言

本文引用地址:http://m.butianyuan.cn/article/149255.htm

(ISP)技術(shù)的出現(xiàn)是對(duì)傳統(tǒng)方法的突破,它是指在用戶(hù)設(shè)計(jì)的微控制器中為配置新的功能對(duì)器件進(jìn)行重新的技術(shù),在線(xiàn)將程序代碼(固件)下載到程序存儲(chǔ)器中。繼SST公司推出具備ISP功能的FlashFlex51 [1]系列微控制器之后,PHILISPS、WINBOND、LG、ATMEL、SynCMOS等公司相繼推出具備ISP/IAP (In-Application Programming)功能的51系列微控制器[2]。這些器件的性能增強(qiáng)還表現(xiàn)在:(1)內(nèi)部ROM采用Flash存儲(chǔ)器,容量達(dá)到32~64k字節(jié),內(nèi)部RAM容量達(dá)到512~1024字節(jié);(2)增加特殊功能寄存器,控制功能進(jìn)一步增強(qiáng);(3)內(nèi)部配置看門(mén)狗定時(shí)器復(fù)位電路;(4)為降低 EMI可禁止ALE輸出;(5)雙DPTR指針等,這些功能使得微控制器外部擴(kuò)展進(jìn)一步簡(jiǎn)化,形成了真正的單片結(jié)構(gòu)。在POS收費(fèi)終端機(jī)中更換了SynCMOS公司的SM2965作為主處理器,不用修改硬件利用微控制器串行口即可方便地實(shí)現(xiàn)ISP功能。本文主要分析SM2965的ISP功能特點(diǎn)及在使用中的注意事項(xiàng)。

2 SM2965的特點(diǎn)

和標(biāo)準(zhǔn)的80C52相比,SM2965有以下特點(diǎn): ①編程電壓5V;②64k字節(jié)片內(nèi)Flash存儲(chǔ)器,分為128個(gè)頁(yè),每頁(yè)512字節(jié)(包括實(shí)現(xiàn)ISP功能的下載程序空間);③實(shí)現(xiàn)ISP功能下載程序空間大小可設(shè)置為 N×200H(N=0~8); ④256字節(jié)的片內(nèi)RAM+768字節(jié)的片內(nèi)擴(kuò)展RAM(ERAM);⑤看門(mén)狗定時(shí)器;⑥對(duì)PLCC和QFP封裝型號(hào)增加了P4口:P4.0~P4.3;⑦為降低EMI,無(wú)必要時(shí)可禁止ALE信號(hào)輸出;⑧復(fù)位后硬件檢測(cè)程序存儲(chǔ)器空間0000H地址如為空(即#0FFH),則自動(dòng)跳到ISP功能程序入口地址。

3 SM2965存儲(chǔ)器結(jié)構(gòu)

3.1 程序存儲(chǔ)器

SM2965內(nèi)部集成了64k字節(jié)的Flash存儲(chǔ)器作為程序存儲(chǔ)器,地址范圍為0000H~0FFFFH,用于存放執(zhí)行用戶(hù)程序的程序和執(zhí)行ISP功能的下載程序兩部分內(nèi)容。

執(zhí)行ISP功能的下載程序空間最大可配置到4K 字節(jié),空間大小=N×200H字節(jié),N=0表示不配置下載程序,64K字節(jié)Flash 存儲(chǔ)器全部用于程序;N=1表示0FE00H~0FFFFH共有200H個(gè)字節(jié)配置給下載程序空間使用,從0000H~FDFFH供程序使用; N=8表示下載程序空間達(dá)到最大配置,為4K字節(jié)。N 的大小只能通過(guò)商用編程器配置,一旦在編程器上配置為 N≠0,在系統(tǒng)中無(wú)法改變ISP空間的配置。SM2965程序空間組成如圖1所示。 0FFFFH-(N×200H)為下載程序的入口地址。

3.2 數(shù)據(jù)存儲(chǔ)器

SM2956在標(biāo)準(zhǔn)的80C52內(nèi)核的基礎(chǔ)上,增加了8個(gè)特殊功能寄存器,用于實(shí)現(xiàn)SM2965增加的功能和768字節(jié)的片內(nèi)擴(kuò)展數(shù)據(jù)存儲(chǔ)器Expanded Ram(ERAM),使片內(nèi)數(shù)據(jù)存儲(chǔ)器總?cè)萘窟_(dá)到1K字節(jié)。數(shù)據(jù)存儲(chǔ)器組成如圖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)下的目標(biāo)地址,F(xiàn)DAT為編程數(shù)據(jù)。

SCONF為系統(tǒng)控制寄存器,SCONF中的位2 與ISP功能有關(guān),SCONF各位定義如下:

WDR R R R R ISPE OME ALE1
MSB LSB
SCONF的3~6位保留未用,SCONF復(fù)位狀態(tài)為00000010B。
WDR:看門(mén)狗定時(shí)器溢出位;
OME:片內(nèi)擴(kuò)展數(shù)據(jù)存儲(chǔ)器ERAM選擇位,1 選擇片內(nèi),0 選擇片外;
ALEI:ALE輸出禁止位;
ISPE:為ISP功能總允許/禁止位,為1允許,為0禁止。ISPE設(shè)置為0,將屏蔽全部ISP功能。在執(zhí)行應(yīng)用程序時(shí)將ISPE=0可有效防止Flash存儲(chǔ)器內(nèi)容被非法改寫(xiě)。

Flash控制寄存器FCR在編程時(shí)起關(guān)鍵作用,其各位定義如下:

MSB LSB
其中FCR的2~6位保留未用,F(xiàn)CR復(fù)位狀態(tài)為00000000B。
START:ISP功能啟動(dòng)位;
START=1,啟動(dòng)ISP功能,具體功能由F1、 F0決定;START=0,無(wú)ISP操作。

在START位置1后,SM2965硬件自動(dòng)鎖存地址和數(shù)據(jù)并獲得程序指針控制權(quán)直到ISP功能結(jié)束,START自動(dòng)復(fù)位為0。下載程序中無(wú)須檢查 START的狀態(tài)。

F1~F0 ISP功能選擇位

F1F0 ISP功能
00 字節(jié)編程
01 芯片寫(xiě)保護(hù)
10 頁(yè)面擦除
11 整片擦除
Flash存儲(chǔ)器的一個(gè)頁(yè)面為200H字節(jié)。執(zhí)行ISP 功能,需要指定Flash存儲(chǔ)器地址;執(zhí)行字節(jié)編程功能,F(xiàn)lash存儲(chǔ)器地址為編程字節(jié)的目標(biāo)地址;執(zhí)行頁(yè)面擦除功能,該地址為該頁(yè)面內(nèi)任一地址;執(zhí)行整片擦除和芯片寫(xiě)保護(hù),則為0000H~0FFFFH 范圍內(nèi)任一地址;執(zhí)行整片擦除,SM2965將擦除ISP下載程序空間外的所有Flash存儲(chǔ)器;執(zhí)行芯片寫(xiě)保護(hù)功能,SM2965存儲(chǔ)器讀出內(nèi)容全部為00H。

4.2 ISP特殊功能寄存器使用舉例

例1:字節(jié)編程,#2CH編程到地址2005H

MOV SCONF, #04H ;開(kāi)放全部ISP功能
MOV FAH, #20H ;目標(biāo)地址高地址20H
MOV FAL, #05H ;目標(biāo)地址低地址 05H
MOV FDAT, #2CH ;寫(xiě)入數(shù)據(jù):2CH
MOV FCON, #80H ;設(shè)置START位為1,啟動(dòng)字節(jié)編程功能,將22H固化到1005H,ISP功能結(jié)束后,START自動(dòng)復(fù)位為0,PC指向下一條指令
例2:擦除Flash頁(yè)面,如擦除253CH地址所對(duì)應(yīng)的頁(yè)面
以512字節(jié)為一頁(yè),253CH處于頁(yè)面地址范圍為2400H~25FFH,執(zhí)行下面程序后,該頁(yè)面全部寫(xiě)成#0FFH。

MOV SCONF, #04H ;開(kāi)放全部ISP功能
MOV FAH, #25H ;目標(biāo)地址高地址25H或24H
MOV FAL, #3CH ;目標(biāo)地址低地址3CH或任意
MOV FDAT, #00H ;寫(xiě)入數(shù)據(jù):00H或任意
MOV FCON, #82H ;設(shè)置START位為1,啟動(dòng)頁(yè)面擦除功能。ISP功能結(jié)束后,START自動(dòng)復(fù)位為0,PC指向下一條指令

5 應(yīng)用中的問(wèn)題

SM2965的ISP開(kāi)發(fā)靈活方便,硬件上不需要任何輔助配件,應(yīng)用系統(tǒng)線(xiàn)路無(wú)須做任何變動(dòng),可由設(shè)計(jì)者自定義任何編程通信協(xié)議,經(jīng)計(jì)算機(jī)或簡(jiǎn)單工具通過(guò)任何I/O口或UART口送入SM2965中,不像其它具有ISP的MCU那樣必須針對(duì)特定的管腳和特殊的TIMMING協(xié)議才能實(shí)現(xiàn)。但在不同應(yīng)用中仍需注意以下幾點(diǎn):

(1)SM2965程序空間可分為執(zhí)行ISP功能的下載程序和執(zhí)行用戶(hù)程序的應(yīng)用程序兩部分,下載程序空間的大小可在商用編程器上配置,一旦配置被寫(xiě)入,下載程序在系統(tǒng)應(yīng)用中將保持不變。下載程序空間最大可配置到4 kB,該空間除存放下載程序外,還應(yīng)將固定的應(yīng)用程序(如主監(jiān)控程序)也放在該空間內(nèi),而把需要頻繁更新的應(yīng)用程序放在在線(xiàn)可編程的應(yīng)用程序空間中。

(2)對(duì)于在應(yīng)用系統(tǒng)中僅更新部分應(yīng)用程序的情況,如改變系統(tǒng)運(yùn)行時(shí)的一些重要參數(shù)或者把SM2965的Flash當(dāng)作EEPROM使用,則在系統(tǒng)中不可以執(zhí)行芯片寫(xiě)保護(hù)和整片擦除功能。這時(shí)芯片內(nèi)的應(yīng)用程序是可通過(guò)編程器讀出的。為了防止非法讀取,這些重要參數(shù)可通過(guò)加密算法(如DES密碼算法)形成密文后再存儲(chǔ)到應(yīng)用程序空間,應(yīng)用中通過(guò)下載程序空間(讀不出)的密碼算法和密鑰將密文還原為明文。

(3)對(duì)于在應(yīng)用系統(tǒng)中更新全部應(yīng)用程序的情況,則要注意Flash空間0000H地址的代碼寫(xiě)入順序的問(wèn)題,這是因?yàn)镾M2965芯片復(fù)位后硬件檢測(cè)Flash空間0000H地址如為空(即#0FFH),則自動(dòng)跳到下載程序的入口地址,否則從0000H地址執(zhí)行應(yīng)用程序。所以對(duì)于更新全部應(yīng)用程序時(shí),在下載程序中首先執(zhí)行整片擦除,然后開(kāi)始從第1頁(yè)即0200H地址編程,最后編程第0頁(yè),從0001H地址開(kāi)始,所有地址編程全部確認(rèn)(CRC校驗(yàn))無(wú)誤時(shí),再編程0000H地址。

(4)用主機(jī)進(jìn)行遠(yuǎn)程下載更新程序時(shí),為了解決干擾產(chǎn)生的誤碼問(wèn)題,可把應(yīng)用程序代碼分為若干個(gè)短數(shù)據(jù)包,每個(gè)數(shù)據(jù)包帶有CRC,下載程序應(yīng)首先把數(shù)據(jù)包存入緩沖區(qū),對(duì)CRC判斷正確后再進(jìn)行編程。

(5)在執(zhí)行下載程序前,如果啟動(dòng)了SM2965 內(nèi)部的看門(mén)狗定時(shí)器,在下載程序中應(yīng)首先禁止看門(mén)狗定時(shí)器,以防止硬件復(fù)位造成下載失敗。

(6)對(duì)于更新全部應(yīng)用程序的情況,下載完畢后建議通過(guò)硬件看門(mén)狗復(fù)位啟動(dòng)系統(tǒng),而不要使用跳轉(zhuǎn)指令。

出現(xiàn)開(kāi)始使用SM2965時(shí),經(jīng)常會(huì)出現(xiàn)下載失敗,要通過(guò)商用編程器重新編程SM2965的問(wèn)題,采取上述措施后,近兩年來(lái)未發(fā)生一例下載失敗的現(xiàn)象。



評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉