新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機內(nèi)部存儲器的使用研究

單片機內(nèi)部存儲器的使用研究

作者: 時間:2013-09-30 來源:網(wǎng)絡(luò) 收藏
隨著變頻調(diào)速以及微機控制技術(shù)的發(fā)展,適應(yīng)的Intel 8XC196MC系列應(yīng)用越來越廣泛。

與80C196MC相比,87C196MC帶有16 KB的OTPROM(One Tline Programmable Read-Only Memory),可以進行片內(nèi)編程操作,而且可以增強加密功能。對于普通的控制系統(tǒng)來說,其存儲容量足夠大,不必再使用外部擴展存儲器。然而87C196MC的OTPROM存在一個缺點:不可擦除,也就是說只能編程一次,不能實現(xiàn)重復(fù)編程,不利于大量普及使用。

當程序從仿真器移植到單片機的OTPROM時,并不能保證程序的一次成功性,由于單片機的不可擦除性,若程序脫機一次就使用一片單片機,顯然將造成巨大的資源浪費。另一方面,對于復(fù)雜系統(tǒng),16KB的O
TPROM容量如果不夠,則需要采用擴展外部存儲器,為了保證有效實現(xiàn)加密功能,應(yīng)保留一部分程序在片內(nèi)OTPROM,此時便涉及到單片機內(nèi)、外存儲器的銜接問題。

本文針對Intel 87C196MC單片機的不可擦除性,對兩種情況下的使用問題提供了可以有效實現(xiàn)重復(fù)編程的方法,并可以推廣至其他任何帶有OTPROM的單片機系列的編程應(yīng)用中。

1 87C196MC單片機的編程方式

Intel 87C196MC單片機支持三種編程方式:自動編程方式(使87C196MC單片機不用EPROM編程器即可從外部EPROM對自己編程)、從機編程方式(給外部EPROM編程器提供了一個標準接口)和實時編程方式(運行中編程方式,可以在軟件控制下實時對單個EPROM單元編程)。和其他方式不同,實時編程可以在不進入全EPROM編程方式下完成。

對于Intel 87C196MC單片機的OTPROM只能編程,不能擦除,但在編程時可以驗證是否已確實編程。對0TPROM可以采用2種編程方法:在從機編程方式下或在專門的OTPROM編程方式下編程。OTPROM為87C196MC單片機提供了輔助的存儲器保護手段,它可以禁止總線控制器執(zhí)行外部取指周期,若企圖把一個外部地址裝載到PC寄存器,芯片將復(fù)位。這種自動復(fù)位功能對跑飛的代碼也提供了一種額外的恢復(fù)手段。使用時應(yīng)根據(jù)實際需要采取不同的編程方式。

2 87C196MC單片機的重復(fù)編程方法

單片機87C196MC的EA引腳(外部訪問允許端,87C196MC PLCC84-36腳)用來控制訪問內(nèi)部存儲器或外部存儲器。當EA=O時,所有訪問都是對片外存儲器的;當EA=1時,對2000H~5FFFH單元的訪問都是對片內(nèi)OTPROM/ROM的。編程方式下,EA=12.5 V。由于復(fù)位時EA的電平被鎖存,難以通過外部硬件電路來實現(xiàn)程序空間的選擇。這里通過應(yīng)用程序語句來控制程序地址范圍,相當于EA的電平變化作用。本文主要應(yīng)用了Intel匯編語言的長跳轉(zhuǎn)指令UMP來實現(xiàn)控制訪問內(nèi)、外存儲器的功能,下面介紹兩種常用的方法。

2.1片內(nèi)編程操作方法

所謂87C196MC單片機OTPROM的不可擦除性,實質(zhì)上是不可實現(xiàn)從“0”到“1”的編程,而只能完成從“1”到“O”的編程。以下通過簡單的程序?qū)嵗齺斫榻B這種方法。

LJMP NEXTl
CSEG AT 2600H
NEXTl:……
上述語句實際上代表的是LJMP2600H.其機器碼為E79C04,當?shù)刂?600H變化時,得到一組對應(yīng)的機器碼,通過對這一組機器碼進行分析,就可以得到該方法的原理,如表1所列。

程序?qū)?yīng)機器碼表


機器碼E79C04的后兩個字節(jié)代表了匯編程序語句中的地址(04代表了2600H,14代表了3600H……)。當一個字節(jié)從4位全是“1”變成4位全是“O”,且每次只有一個“l(fā)”變?yōu)椤?”時,可以有多種不同的變法,如表2所列。

上一頁 1 2 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉