W78E516及其在系統(tǒng)編程的實(shí)現(xiàn)
摘要: 近年來(lái),在系統(tǒng)編程(ISP)技術(shù)的不斷發(fā)展和成熟,使得硬件設(shè)計(jì)逐步軟件化,硬件結(jié)構(gòu)的通用性日益增強(qiáng),系統(tǒng)設(shè)計(jì)、生產(chǎn)、維護(hù)、升級(jí)等環(huán)節(jié)都發(fā)生著深刻的變革。本文以WINBOND公司的W78E516為例介紹ISP器件的結(jié)構(gòu)及其在系統(tǒng)編程原理。
關(guān)鍵字: W78E516在系統(tǒng)編程微控制器
使用傳統(tǒng)方法對(duì)CPU重新編程存在諸多不便,在系統(tǒng)編程技術(shù)(以下簡(jiǎn)稱ISP技術(shù))的出現(xiàn)是對(duì)傳統(tǒng)編程方法的突破。ISP(In System Programming)技術(shù)是指,在用戶設(shè)計(jì)的目標(biāo)系統(tǒng)中或印刷電路板上,為重新配置邏輯或?qū)崿F(xiàn)新的功能,而對(duì)器件進(jìn)行編程或反復(fù)編程的能力。ISP技術(shù)的出現(xiàn)和發(fā)展開(kāi)創(chuàng)了數(shù)字電子系統(tǒng)設(shè)計(jì)技術(shù)新的一頁(yè)。ISP技術(shù)無(wú)需編程器和較高的編程電壓,打破了先編程后裝配的慣例,形成產(chǎn)品后還可以在系統(tǒng)內(nèi)反復(fù)編程,使具有MTP-ROM可多次編程或反復(fù)編程的微控制器的優(yōu)越性得以更充分的發(fā)揮。尤其是在互聯(lián)網(wǎng)時(shí)代,依據(jù)系統(tǒng)環(huán)境和需要,經(jīng)調(diào)制解調(diào)裝置(MODEM)、串行口或?qū)S玫木幊探涌诰湍軌蛲ㄟ^(guò)軟件控制,實(shí)現(xiàn)系統(tǒng)遠(yuǎn)程升級(jí)和調(diào)試,提高產(chǎn)品的適應(yīng)性,延長(zhǎng)產(chǎn)品生存周期,經(jīng)濟(jì)效益顯著。真正的可編程系統(tǒng)的時(shí)代即將到來(lái)。
一、 W78E516的結(jié)構(gòu)
W78E516是一種8位微控制器,內(nèi)部含有在系統(tǒng)可編程的MTP-ROM,用于系統(tǒng)更新。W78E516與標(biāo)準(zhǔn)的8052完全兼容。
1. 特征
(1) 全靜態(tài)設(shè)計(jì),最高工作頻率為40MHz。
(2) 64KB APROM存儲(chǔ)應(yīng)用程序和4KB LDROM存儲(chǔ)控制ISP操作的程序。2塊存儲(chǔ)器均為MTP-ROM。
(3) 512字節(jié)的片內(nèi)RAM(包括256字節(jié)AUX-RAM,可由軟件選擇)內(nèi)部數(shù)據(jù)RAM有512字節(jié)。它分成2個(gè)存儲(chǔ)單元:256字節(jié)高速暫存和256字節(jié)輔存。這些地址有不同的確定方式:
① RAM 0H~127H:同8052一樣直接或間接尋址,地址指針是被選中的寄存器單元中的R0和R1。
② RAM 128H~255H:同8052一樣只能間接尋址,地址指針是被選中的寄存器單元中的R0和R1。
③ AUX-RAM 0H~255H:采用外部數(shù)據(jù)存儲(chǔ)器的方式間接尋址,用MOVX指令,地址指針是選中寄存器單元的R0和R1以及DPTR寄存器。在CHCON寄存器中的第4位置位后,AUX-RAM有效,訪問(wèn)AUX-RAM使用“MOVX@Ri”指令。當(dāng)執(zhí)行內(nèi)部程序存儲(chǔ)器的指令時(shí),訪問(wèn)AUX-RAM不會(huì)影響 P0,P2,WR和RD。AUX-RAM在復(fù)位后失效。
(4) 程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器可尋址空間范圍為64KB。
(5) 4個(gè)8位雙向口:P0~P3,1個(gè)4位雙向多用途編程口P4。
(6) 3個(gè)16位的定時(shí)器/計(jì)數(shù)器:T0,T1,T2。T0和T1功能與8051相同。T2是一個(gè)16位定時(shí)器/計(jì)數(shù)器,它由T2CON配置和控制。T2能作為外部時(shí)鐘計(jì)數(shù)器,也能作為內(nèi)部定時(shí)器,這取決于T2CON的C/T2位的配置情況。T2有3種操作方式:清零、自動(dòng)重寫、波特率發(fā)生器。在清零和自動(dòng)重寫方式時(shí),時(shí)鐘頻率與T0和T1相同。
(7) 具有一個(gè)全雙工串行口。
(8) 具有6個(gè)中斷源和2級(jí)中斷能力。
(9) 內(nèi)部電源管理:空閑方式和掉電方式,這兩種方式可由軟件選擇。
(10) 具有編程后的編碼保護(hù)功能。
2. 與ISP操作相關(guān)的特殊功能寄存器
(1) 在系統(tǒng)編程控制寄存器CHPCON(BFH)功能如表1所列。
表 1
BITNAME功能
7軟件復(fù)位該位置1且FBOOTSL和FPROGEN都置為1時(shí),微控制器復(fù)位,重新開(kāi)始正常操作。讀該位結(jié)果為邏輯1時(shí),可以確認(rèn)CPU處于F04KBOOT模式
6-保留
5-保留
4ENAUXRAM0:使AUX-RAM無(wú)效;
1:使AUX-RAM有效3
30必須置為0
20必須置為0
1EBPPRTSL程序地址選擇。 1:裝載程序位于64KB的APROM。4KB LDROM是重新編程的目標(biāo)地址。 0:裝載程序位于4KB的存儲(chǔ)器。64KB的APROM是重新編程的目標(biāo)地址
0FPROGENMTP-ROM編程使能。 1:使編程功能有效。微控制器進(jìn)入在系統(tǒng)編程狀態(tài)。在這種編程模式下,清除、編程、讀操作在設(shè)備進(jìn)入空閑模式后可以實(shí)現(xiàn)。 0:不能對(duì)ROM執(zhí)行寫操作
(2) 編程狀態(tài)下MTP-ROM的控制字節(jié)寄存器SFRCN(C7H)功能如表2所列。
表 2
BITNAME功能
7-保留
6WFWIN選擇ISP操作目標(biāo)存儲(chǔ)器。 0:對(duì)LDROM重新編程; 1:對(duì)APROM重新編程
5OENMTP-ROM輸出使能
4CENMTP-ROM使能
3,2,1,0CTRL[3:0]ROM控制信號(hào)
(3) SFRAH,SFRAL:在系統(tǒng)編程狀態(tài)下的目標(biāo)地址。SFRAH包含地址的高位字節(jié);SFRAL包含地址的低位字節(jié)。
(4) SFRFD:編程狀態(tài)下MTP-ROM的編程數(shù)據(jù)。
二、 W78E516的在系統(tǒng)編程方法
1. ISP操作實(shí)現(xiàn)過(guò)程
微控制器通常執(zhí)行APROM中的程序。如果APROM中的程序需要修改,用戶需要通過(guò)設(shè)置CHPCON寄存器來(lái)激活在系統(tǒng)編程模式。在默認(rèn)情況下,CHPCON是只讀的,必須依次向寄存器中寫入#87H和#59H,才能使CHPCON的寫特性有效。激活CHPCON的寫特性后,在其0位置位,進(jìn)入在系統(tǒng)編程模式。ISP操作包括進(jìn)入/退出在系統(tǒng)編程模式、編程、擦除、讀等,它們是在CPU處于空閑模式時(shí)完成的,因此,設(shè)置CHPCON寄存器后使 CPU進(jìn)入空閑模式,并由定時(shí)器中斷的發(fā)生來(lái)控制執(zhí)行每一種ISP操作的時(shí)間。定時(shí)器中斷到來(lái)時(shí),轉(zhuǎn)入LDROM中執(zhí)行相關(guān)的中斷服務(wù)程序。第一次執(zhí)行 RETI指令后, PC指針清零,指向LDROM中的00H。當(dāng)APROM中的內(nèi)容被完全更新后,將CHPCON的第0,1,7位設(shè)置為邏輯1,通過(guò)軟件復(fù)位的方式返回 APROM執(zhí)行其中的新程序。在應(yīng)用程序需要頻繁更新的情況下,這種在系統(tǒng)編程方式使工作簡(jiǎn)單而高效。
在默認(rèn)情況下,上電復(fù)位后W78E516從程序中啟動(dòng)。在某些情況下,可以使W78E516從LDROM中啟動(dòng)。當(dāng)APROM中的程序不能正常運(yùn)行,W78E516無(wú)法跳到LDROM中執(zhí)行ISP操作時(shí),CPU進(jìn)入F04KBOOT模式。在應(yīng)用系統(tǒng)設(shè)計(jì)中一定要注意P2,P3,ALE,EA和 PSEN引腳在復(fù)位時(shí)的值,以避免意外激活編程模式或F04KBOOT模式。復(fù)位時(shí)進(jìn)入F04KBOOT MODE時(shí)P4?3,P2.7,P2.6引腳電平及時(shí)序如圖1及圖2所示。
P4.3P2.7P2.6MODE
XLLF04KBOOT
LXXF04KBOOT
W78E516處于在系統(tǒng)編程模式時(shí),MTP-ROM可以被反復(fù)編程和檢驗(yàn)。向 MTP-ROM中完整、正確地寫入新代碼后,新代碼即被保護(hù)起來(lái)。W78E516有專用設(shè)置寄存器組(special setting re-gisters),其中包括安全性寄存器(security register)和公司/器件識(shí)別寄存器(company/device ID registers),處于編程模式時(shí)不能訪問(wèn)這些寄存器。安全性寄存器在LDROM空間的地址是0FFFFH,當(dāng)它的各個(gè)位被從1編程為0后就不能再被改變,將它們重新置位的惟一方式是執(zhí)行全部擦除操作,這樣就能保證其安全性。[!--empirenews.page--]
一般情況下,具有ISP功能的微控制器一般都具備2塊程序存儲(chǔ)區(qū)(暫時(shí)稱為A-ROM和B-ROM),其中A-ROM用于存儲(chǔ)通常狀況下的應(yīng)用程序,B-ROM用于存儲(chǔ)控制ISP操作的程序,向A-ROM中寫入新代碼。有些微控制器,A-ROM和B-ROM中的程序代碼均能控制ISP操作,由特殊功能寄存器來(lái)選擇其一,為設(shè)計(jì)人員提供了靈活的設(shè)計(jì)應(yīng)用空間。針對(duì)不同類型的ISP器件,對(duì)CPU進(jìn)行在系統(tǒng)編程的方法具有共同之處。
2 W78E516的 ISP功能特點(diǎn)
在MTP產(chǎn)品中,W78E516頗具特色。它在ISP功能方面具有突出的優(yōu)點(diǎn):
(1) 開(kāi)發(fā)靈活性??捎稍O(shè)計(jì)者自定任何編程通信協(xié)議,經(jīng)計(jì)算機(jī)或簡(jiǎn)單工具,將要修改的程序通過(guò)任何I/O口或UART口送入單片機(jī)內(nèi),不能像其他具有ISP功能的芯片那樣,而必須針對(duì)其特定引腳及特殊的TIMMING協(xié)議來(lái)實(shí)現(xiàn)。
(2) 操作連續(xù)性。市場(chǎng)上目前具有ISP功能的單片機(jī)在執(zhí)行ISP操作時(shí)(在未帶配件的情況下)必須停止其他操作;而有些應(yīng)用希望此時(shí)UART或 TIMER/COUNTER等功能仍然能夠運(yùn)作。W78E516可以滿足這種要求。因?yàn)樵趫?zhí)行ISP操作時(shí)只是控制權(quán)從64KB APROM變換到4KB LDROM,故仍可由4KB中的程序來(lái)繼續(xù)操作控制。
(3) 斷電時(shí)具有存儲(chǔ)數(shù)據(jù)能力。因W78E516擁有2塊大小不同的閃速存儲(chǔ)器,其中1塊可用于存儲(chǔ)斷電后仍必須被單片機(jī)保留的數(shù)據(jù),因此,設(shè)計(jì)者可減少外接EE2PROM芯片的線路與成本。 除具有上述特點(diǎn)外, W78E516在執(zhí)行ISP操作時(shí)不需輔以任何配件,受到用戶的歡迎。
三、 應(yīng)用實(shí)例
此實(shí)例是在機(jī)車故障檢測(cè)記錄儀系統(tǒng)內(nèi)對(duì)W78E516進(jìn)行ISP操作的實(shí)驗(yàn)。這是一個(gè)由PC機(jī)和微控制器組成的主從式系統(tǒng)。 PC機(jī)經(jīng)串行通信將新程序的二進(jìn)制代碼以數(shù)據(jù)形式下載,微控制器接收數(shù)據(jù),由軟件控制更新64KB APROM中的程序代碼。實(shí)驗(yàn)中微控制器經(jīng)RS-232接口接收數(shù)據(jù)并暫存于內(nèi)部AUX-RAM中,不需擴(kuò)展外部數(shù)據(jù)存儲(chǔ)器,節(jié)省了板上空間。檢測(cè)記錄儀與PC機(jī)的通信采用RS-232標(biāo)準(zhǔn),為簡(jiǎn)化硬件,只使用了該標(biāo)準(zhǔn)中的TXD、RXD以及地線3根連線,電平轉(zhuǎn)換由MAXIM232專用芯片完成。
實(shí)現(xiàn)ISP操作的軟件由兩部分組成:一是微控制器部分(包括APROM和LDROM中的程序),用MCS-51匯編語(yǔ)言編寫;二是PC機(jī)部分,由Microsoft Visual Basic開(kāi)發(fā)而來(lái),主要應(yīng)用MSCOMM控件與W78E516通信,完成數(shù)據(jù)下載。
微控制器上電后一般從64KB APROM中啟動(dòng)。64KB APROM中,包括了在系統(tǒng)編程子程序,還有其他檢測(cè)記錄系統(tǒng)的子程序。微控制器必須讀取撥碼盤的輸入,決定進(jìn)入哪一種工作狀態(tài),是否進(jìn)行在系統(tǒng)編程。值得注意的是,在寫CHPCON寄存器時(shí),應(yīng)將其第4位置1,使AUX-RAM有效;64KB APROM中的程序應(yīng)該始終包含圖3流程所示的程序段,以使系統(tǒng)具有進(jìn)入下一次在系統(tǒng)編程的能力。4KB LDROM中的程序主要作用是接收來(lái)自PC機(jī)的下載數(shù)據(jù),并控制各項(xiàng)ISP操作。執(zhí)行在系統(tǒng)編程時(shí),利用SFRAL、SFRAH、SFRFD、SFRCN 這幾個(gè)特殊功能寄存器,選擇在系統(tǒng)編程的地址單元,準(zhǔn)備待寫入的數(shù)據(jù),選擇待執(zhí)行的操作類型。當(dāng)從F04BOOT模式啟動(dòng)時(shí),軟件復(fù)位失效,必須硬件復(fù)位。在系統(tǒng)編程的數(shù)據(jù)由在此期間仍能正常工作的串行通信口進(jìn)入。這部分流程如圖6所示。
PC機(jī)通過(guò) RS-232串口發(fā)送數(shù)據(jù)。每一幀的前3個(gè)字節(jié)都為7EH,作為幀同步信號(hào)。隨后2個(gè)字節(jié)內(nèi)容均為幀指針,表明本幀數(shù)據(jù)的幀號(hào)。PC機(jī)在發(fā)送1幀數(shù)據(jù)后,等待單片機(jī)發(fā)回確認(rèn)數(shù)據(jù)幀,該幀數(shù)據(jù)應(yīng)包括數(shù)據(jù)接收正確與否的標(biāo)志及接收到的數(shù)據(jù)的幀號(hào)。
根據(jù)本文介紹的方法,在機(jī)車故障檢測(cè)記錄儀系統(tǒng)內(nèi)實(shí)現(xiàn)了對(duì)W78E516的在系統(tǒng)編程。
ISP技術(shù)高度的靈活性使同一種硬件結(jié)構(gòu)能夠?qū)崿F(xiàn)多種系統(tǒng)功能,成為多功能硬件,減少了系統(tǒng)所需電路板的品種,簡(jiǎn)化了生產(chǎn)流程;多功能硬件還能夠減少板上元件數(shù)目和系統(tǒng)電路板數(shù)目,使系統(tǒng)成本顯著降低。在機(jī)車系統(tǒng)中要對(duì)各部分進(jìn)行多種不同的測(cè)試,比如軸溫、軸速以及車門的開(kāi)關(guān)狀態(tài)等等,以便了解機(jī)車的運(yùn)行狀況。在現(xiàn)階段,處理這些模擬量或數(shù)字量需要設(shè)計(jì)生產(chǎn)多種不同的模塊。應(yīng)用ISP技術(shù)以后這一現(xiàn)狀會(huì)得以改變:設(shè)計(jì)人員設(shè)計(jì)出包括微控制器、A/D和 D/A轉(zhuǎn)換芯片、I/O口等在內(nèi)的通用模塊,將其安裝到需要進(jìn)行檢測(cè)的各個(gè)部分,然后利用ISP技術(shù)把不同的應(yīng)用程序下載到微控制器中,就可以完成各種不同的測(cè)試功能,其綜合經(jīng)濟(jì)效益不可低估。此外, ISP技術(shù)也為其他許多領(lǐng)域帶來(lái)了變革。總之,在系統(tǒng)編程技術(shù)具有廣闊的開(kāi)發(fā)應(yīng)用前景。MES
參考文獻(xiàn)
1 華邦公司?在系統(tǒng)可編程系列(W78E系列)?世界電子元器件,1999(2)
2 黃正瑾?在系統(tǒng)編程技術(shù)及其應(yīng)用?南京:東南大學(xué)出版社,1997