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