專利名稱:裝有非易失性存儲器的單芯片微算機的制作方法
技術領域:
本發(fā)明涉及內(nèi)裝有能夠寫入、讀出數(shù)據(jù)的EEPROM等非易失性存儲器的單芯片微型計算機(以下簡稱微算機)。
一般,在單芯片微算機中裝有掩膜ROM(只讀存儲器),在該掩膜ROM中存儲著用來控制單芯片微算機操作的程序。還有,為了存儲運算數(shù)據(jù),裝有能夠讀、寫的RAM(隨機存取存儲器)。作為這種RAM,通常使用靜態(tài)RAM。
另一方面,作為存儲器,作為能夠把數(shù)據(jù)擦除的非易失性存儲器,已知有如下二種一種是能夠寫入、讀出數(shù)據(jù),同時,通過紫外線照射能夠把已寫入的數(shù)據(jù)匯總擦除的EPROM(可擦可編程只讀存儲器);另一種是能夠寫入、讀出數(shù)據(jù),同時,能夠電氣地把已寫入的數(shù)據(jù)擦除的EEPROM(電可擦可編程只讀存儲器)。
這些EPROM和EEPROM(以下稱為PROM)廣泛用于進行程序評價的評價用的微算機中。即,把評價的程序寫入評價用微算機的EPROM或EEPROM中,在此狀態(tài)下,通過操作微算機,進行程序的評價。而且,如果程序中有錯誤,就要修正錯誤,反復評價,一直到?jīng)]有錯誤為止。雖然在掩膜ROM中不能重寫數(shù)據(jù),但因在PROM中能夠重寫數(shù)據(jù),所以,這些PROM適用為評價用微算機的ROM。
另一方面,如果把PROM用為操作用程序的存儲器,則也可由用戶重寫程序。因此,把PROM作為操作程序的存儲器、用于批量生產(chǎn)的單芯片微算機,也是已知的。
在重寫裝有PROM的單芯片微算機程序的情況下,首先,把單芯片微算機配置到專用的寫入基板上。而且,把PROM寫入器連接到該寫入基板上,從PROM寫入器把寫入PROM的地址和寫入數(shù)據(jù)送到單芯片微算機上。由此,就能夠在單芯片微算機PROM的該地址上寫入所需的數(shù)據(jù)。
然而,為了在這樣的單芯片微算機上、把給定的數(shù)據(jù)寫入PROM中,需要專用的寫入板和PROM寫入器,存在著使這種作業(yè)變得很麻煩的問題。
還有,在通常把靜態(tài)RAM用作為存儲運算數(shù)據(jù)等存儲器的單芯片微算機中,電源一斷,靜態(tài)存儲器內(nèi)存儲的運算數(shù)據(jù)就消失。而且,即使重新供電,已消失的數(shù)據(jù)也恢復不了。因此,必須重新執(zhí)行以下步驟從執(zhí)行起始程序、把起始狀態(tài)的數(shù)據(jù)寫入靜態(tài)RAM中,之后,一直到掉電之前的運算。
如果能夠把PROM用作為運算數(shù)據(jù)等的存儲空間,這樣的問題就能夠解決。然而,因為單芯片微算機本身不能在PROM上寫入數(shù)據(jù),所以,不能用來代替數(shù)據(jù)用的RAM。
圖1為示出第一實施例單芯片微算機的構成的圖;圖2為示出第一、第二實施例的操作的時序圖;圖3為示出第一、第二實施例的操作的時序圖;圖4為示出第二實施例單芯片微算機的構成圖;圖5為示出第二實施例的操作的時序圖。
圖1為示出第一實施例單芯片微算機的構成圖,是內(nèi)裝有作為第一非易失性存儲器的EEPROM的微算機。
圖1中,(1)為EEPROM(第一非易失性存儲器),它能夠反復寫入、讀出數(shù)據(jù),能夠把數(shù)據(jù)電氣地擦除。(2)為掩膜ROM(第二非易失性存儲器),它是存儲著控制單芯片微算機操作的程序數(shù)據(jù)、不能再寫入的只讀存儲器。特別是,在掩膜ROM(2)的特定地址中存儲著作為子程序指令的控制EEPROM(1)的數(shù)據(jù)寫入、讀出操作的程序數(shù)據(jù)。(3)為程序計數(shù)器PC,計數(shù)給定的時鐘后,輸出用來訪問掩膜ROM(2)的地址的地址數(shù)據(jù)。(4)為指令寄存器IR,從掩膜ROM(2)讀出的程序數(shù)據(jù)通過數(shù)據(jù)總線(5)送來、保持在該指令寄存器中。(6)為指令譯碼器IDEC,把指令寄存器(4)中保持的程序數(shù)據(jù)譯碼,并產(chǎn)生用來操作單芯片微算機的控制信號。(7)為累加器ACC,累加通過數(shù)據(jù)總線(5)供給的、在單芯片微算機內(nèi)部的運算數(shù)據(jù)等。(8)為RAM(例如,1個字由8位構成,具有128個字節(jié)的容量),通過數(shù)據(jù)總線(5)與累加器(7)連接,在雙方之間進行數(shù)據(jù)交換。(9)為地址計數(shù)器,輸出對EEPROM(1)訪問的地址。
(10)為控制電路,把應該寫入EEPROM(1)中的數(shù)據(jù)DATA和時鐘CK串行地加到控制電路上。在這里,當EEPROM(1)中各地址的位數(shù)例如為8位時,如圖2所示那樣地,從控制電路(10)與時鐘CK下降同步地串行輸出8位數(shù)據(jù)DATA(最高有效位MSB D0~最低有效位LSB D7)。(11)為8位構成的移位寄存器,從控制電路(10)輸出的8位數(shù)據(jù)DATA串行輸入并保持在該移位寄存器(11)中。還有,如圖2所示那樣地,從控制電路(10)輸出與時鐘CK上升沿同步的脈沖RI。(12)為計數(shù)器,如圖2所示那樣地計數(shù)脈沖RI,以僅在從第7個脈沖RI下降沿到第8個脈沖RI下降沿的期間內(nèi)產(chǎn)生成為高電平的溢出信號OF那樣的方式構成內(nèi)部邏輯。因而,如圖2所示那樣地,只有第8個脈沖RI作為設定信號SET,從兩個輸入端連接到計數(shù)器(12)輸入、輸出線上的與門(13)輸出。總之,在以8位為1個單位的串行數(shù)據(jù)DATA的第8位,即D7在移位寄存器中保持的時間內(nèi),產(chǎn)生設定信號SET。
還有,(14)為控制寄存器,由標志F1、F2、……Fn構成。例如,借助于來自掩膜ROM(2)的程序指令,當產(chǎn)生下述中斷請求信號INTREQ時,使標志F1保持為“1”、當禁止產(chǎn)生中斷請求信號INTREQ時,使之保持為“0”。還有,借助于加上設定信號SET,使標志F2設定為“1”。再者,根據(jù)中斷請求信號INTREQ,當執(zhí)行從掩膜ROM(2)讀出的子程序的程序時,從設定狀態(tài)復位以后,把“0”寫入標志F2中??傊挥性诋a(chǎn)生中斷請求信號INTREQ時,標志F2為“1”就行,而在其它時間內(nèi),標志F2為“0”就行。進而,借助于來自掩膜ROM(2)的程序指令,控制電路(10)為操作狀態(tài)時,使標志Fn保持為“1”,當禁止控制電路(10)操作時,使之保持為“0”。(16)為與門,把控制寄存器(14)的標志F1和F2的內(nèi)容、以及下述的系統(tǒng)時鐘S4加到該與門(16)的三個輸入端上。在這里,單芯片微算機如圖3所示那樣地,把基于時鐘P1構成的S1~S6的6個周期時鐘作為一個機器周期而操作,只把其中的系統(tǒng)時鐘S4作為與門(16)的一個輸入,加到與門(16)上??傊斣跇酥綟1和F2同時為“1”的狀態(tài)下, 即允許產(chǎn)生中斷請求信號INTREQ、而且在設定信號SET變成“1”時,系統(tǒng)時鐘S4上升時,就從與門(16)輸出“1”。(17)、(18)為與漏極源極電路串聯(lián)連接的N溝道型MOS晶體管(以下,稱為NMOS晶體管),NMOS晶體管(17)為漏極開路型,NMOS晶體管(18)的源極接地,且在控制極上加上上述時鐘P1。因而,如圖3所示那樣地,當標志F1和F2、系統(tǒng)時鐘S4、時鐘P1全部為“1”時,NMOS晶體管(17)、(18)導通,中斷請求信號INTREQ變成“0”。在本實施例中,中斷請求信號INTREQ=“0”意味著,產(chǎn)生了中斷請求。
(19)為中斷電路,通過加上已變成“0”的中斷請求信號INTREQ,檢測中斷請求產(chǎn)生了。而且,中斷電路(19)對程序計數(shù)器(3)設定掩膜ROM(2)的地址數(shù)據(jù),該掩膜ROM(2)存儲著把移位寄存器(11)的內(nèi)容寫入EEPROM(1)中的程序。即,這時,程序計數(shù)器(3)的內(nèi)容依次從增大的狀態(tài),改變成上述地址數(shù)據(jù),借此,結果是,因產(chǎn)生了中斷請求信號INTREQ,掩膜ROM(2)的地址轉移到用來執(zhí)行中斷處理的子程序中。因而,從掩膜ROM(2)讀出控制向EEPROM(1)寫入操作的程序數(shù)據(jù),由指令譯碼器(6)把該程序數(shù)據(jù)譯碼,產(chǎn)生這種用途的控制信號。由此,移位寄存器(11)中保持的8位數(shù)據(jù)通過數(shù)據(jù)總線(5),在累加器(7)中累計以后,寫入RAM(8)中。反復這一操作,在RAM(8)中,例如把128個字節(jié)為一部分(一頁)的8位數(shù)據(jù)一寫入,就根據(jù)掩膜ROM(2)的之后的程序指令,由地址計數(shù)器(9),依次訪問EEPROM(1)中以1頁為一部分的給定地址,結果是,RAM(8)中存儲的8位數(shù)據(jù)通過累加器(7),依次寫入EEPROM(1)的指定地址中。例如,設定EEPROM(1)的存儲容量為1K字節(jié)。
向上述EEPROM(1)寫入數(shù)據(jù)的操作結束以后,掩膜ROM(2)返回到主程序的程序中,當掩膜ROM(2)的程序指令指示讀出EEPROM(1)的數(shù)據(jù)時,由地址計數(shù)器(9)訪問EEPROM(1)的給定地址,把從已訪問的地址中讀出的數(shù)據(jù)暫時存儲在累加器(7)中以后,通過數(shù)據(jù)總線(5),寫入RAM(8)中,就完成了從EEPROM(1)中讀出數(shù)據(jù)。
再者,在本實施例中,雖然說明了在從單芯片微算機外部作為起始數(shù)據(jù)取得了串行數(shù)據(jù)DATA以后,把該數(shù)據(jù)DATA寫入、讀出EEPROM(1)的有關操作,但是,本發(fā)明并不局限于此,作為把單芯片微算機通常操作中得到的運算數(shù)據(jù)等寫入或讀出的數(shù)據(jù)存儲器,當然也能夠使用EEPROM(1)來代替過去的靜態(tài)RAM。
根據(jù)上述描述,把能夠寫入、讀出數(shù)據(jù)的EEPROM(1)作為RAM的功能內(nèi)裝于單芯片微算機,實現(xiàn)了能夠按照掩膜ROM(2)中存儲的程序數(shù)據(jù),執(zhí)行向EEPROM(1)寫入、讀出、重寫數(shù)據(jù)的所謂能夠自讀、寫的單芯片微算機。借此,能夠縮短對EEPROM(1)讀、寫數(shù)據(jù)所需的時間;進而,因為EEPROM(1)中寫入的內(nèi)容即使斷電也能夠得以保持,所以,能夠適用于在單芯片微算機操作中需要故意通斷電源的情況,在重新接通電源時,能夠使單芯片微算機從剛剛斷電之前EEPROM(1)中存儲的數(shù)據(jù)內(nèi)容立刻繼續(xù)操作。
圖4為示出第二實施例單芯片微算機的圖。
圖4中,(101)為EEPROM(第一非易失性存儲器),存儲著用來操作單芯片微算機的程序數(shù)據(jù)和隨著執(zhí)行程序而使用的數(shù)據(jù)等。該EEPROM(101)例如具有50K個字節(jié)的存儲容量,每個字節(jié)(1個字)由8位構成。(102)為掩膜ROM,存儲著用來重寫EEPROM(101)中已寫入的各種數(shù)據(jù)的程序數(shù)據(jù)。再者,掩膜ROM(102)與EEPROM(101)同樣地具有50k個字節(jié)的存儲容量,每個字節(jié)由8位構成。而且,可以根據(jù)EEPROM(101)的數(shù)據(jù)重寫方法,把掩膜ROM(102)的程序存儲空間分割成多個庫。(103)為訪問EEPROM(101)和掩膜ROM(102)的地址的程序計數(shù)器PC。在這里,EEPROM(101)和掩膜ROM(102)的地址是在同一空間內(nèi)進行分配的,即,因為EEPROM(101)和掩膜ROM(102)的存儲容量合計為100K個字節(jié),所以,從程序計數(shù)器(103)輸出的地址數(shù)據(jù)為17位。即,程序計數(shù)器(103)的最高有效位為“0”時,可以訪問EEPROM(101);還有,最高有效位為“1”時,可以訪問掩膜ROM(102)。(104)為中斷電路,通過加上下述中斷請求信號INTREQ,強制地把程序計數(shù)器(103)的值變更為存儲著訪問掩膜ROM(102)的程序的EEPROM(101)的地址數(shù)據(jù)。
其次,產(chǎn)生上述中斷請求信號INTREQ的構成與上述第一實施例中所示的構成大體相同。第一實施例中的(10)~(14)、(16)~(18)分別對應于第二實施例的(105)~(112)。還有,標志Fn對應于F3。
因而,與第一實施例同樣地,當標志F1、F2為“1”,S4為“1”時,中斷請求信號INTREQ變成“0(低電平)”。
而且,中斷請求信號INTREQ為低電平時有效,通過將其加到中斷電路(104)上,強制地變更程序計數(shù)器(103)的值。再者,在本實施例中,雖然是以系統(tǒng)時鐘S4的定時產(chǎn)生中斷請求信號INTREQ的構成,但是,此外,還存在著由系統(tǒng)時鐘S1、S2、S3、S5和S6的定時產(chǎn)生不同中斷請求信號INTREQ的情況。為了產(chǎn)生不同定時的中斷請求信號INTREQ,必須把加到與門(110)上的系統(tǒng)時鐘信號S4變更成其它系統(tǒng)時鐘。
與門(113)、(114)和或門(115)構成多路轉換開關;雖然圖中未示出,但是,對應于從程序計數(shù)器(103)輸出的16位的地址數(shù)據(jù),設置了16個。程序計數(shù)器(103)的16位輸出與門(114)的一個輸入端連接,把下述信號EWRT通過倒相器(116)加到該與門(114)的另一個輸入端上。在從EEPROM(101)讀出主程序的程序以后,執(zhí)行一般操作的情況下,該信號EWRT為“0”。為此,在執(zhí)行一般操作時,與門(114)把門打開,程序計數(shù)器(103)的16位的地址數(shù)據(jù)加到EEPROM(101)上,訪問EEPROM(101)中的這個地址。再者,把上述信號EWRT直接加到與門(113)的一個輸入端上。
(117)為鎖存器電路,鎖存從EEPROM(101)讀出的8位數(shù)據(jù)。這種鎖存器電路(117),雖然圖中未示出,但是,對應于EEPROM(101)的8位輸出,設置了8個。而且,把從EEPROM(101)讀出的8位數(shù)據(jù)加到鎖存器電路(117)的L(鎖存輸入)端子上,把下述信號ROMLAT加到C(時鐘)端子上。還有,把從程序計數(shù)器(103)輸出的地址數(shù)據(jù)的最高有效位加到或門(118)的一個輸入端上,把下述信號ROMIB加到另一輸入端上。進而,或非門(119)與鎖存器電路(117)對應,也設置了8個,把從鎖存器電路(117)的Q(輸出)端子輸出的8位數(shù)據(jù)加到一個輸入端上,把或門(118)的輸出共同加到另一輸入端上。
在這里,利用圖5說明有關EEPROM(101)的讀出操作。程序計數(shù)器(103)的值與產(chǎn)生系統(tǒng)時鐘S1和S4的期間內(nèi)時鐘P1的上升沿同步地增大,被強制地變更為增量或者變更為給定值。為了把按照程序計數(shù)器(103)的16位地址數(shù)據(jù)從EEPROM(101)中讀出的8位數(shù)據(jù)保持在鎖存器電路(107)中,上述信號ROMLAT在程序計數(shù)器(103)的值剛剛變更之前的定時內(nèi),變成高電平。因而,因信號ROMLAT變成高電平,從鎖存器電路(117)讀出8位數(shù)據(jù)。還有,因為使鎖存器電路(117)的輸出從或非門(119)輸出,上述信號ROMIB在上述信號ROMLAT剛剛變成高電平之后的某一期間內(nèi),下降為低電平。那么,如上述那樣,EEPROM(101)和掩膜ROM(102)把地址數(shù)據(jù)分配到同一地址空間內(nèi),在EEPROM(101)地址數(shù)據(jù)的17位中,把最高有效位固定為“0”。為此,在EEPROM(101)的讀出期間內(nèi),只在信號ROMIB為低電平的期間中,或門(118)的輸出才變成低電平。因而,在信號ROMIB為低電平期間內(nèi),從或非門(119)輸出鎖存器電路(117)Q端子輸出的倒相信號。
(120)、(121)為P溝道型MOS晶體管(下面,稱為PMOS晶體管),源極與電源Vdd連接,漏極與8位數(shù)據(jù)總線(122)連接。進而,預先把數(shù)據(jù)總線(122)預充電到高電平的預充電信號PCG加到PMOS晶體管(120)的控制極上,PMOS晶體管(121)的控制極通過倒相器(123)、與數(shù)據(jù)總線(122)連接。即,因預充電信號PCG變成低電平,構成數(shù)據(jù)總線(122)的8條線全部保持為高電平。NMOS晶體管(124)對應于8個或非門(119),設置了8個。因而,8個NMOS晶體管(124)的控制極分別與對應的8個或非門(119)的輸出連接,各個漏極分別與數(shù)據(jù)總線(122)的8條線連接,源極接地。因而,在從EEPROM(101)輸出的8位數(shù)據(jù)中給定的1位為“0”的情況下,即,鎖存器電路(117)的Q端子輸出為“0”的情況下,或非門(119)的輸出變成“1”,NMOS晶體管(124)導通。為此,在數(shù)據(jù)總線(122)的與已導通的NMOS晶體管(124)連接的那條線上,傳輸?shù)碗娖?。相反地,在從EEPROM(1)輸出的8位數(shù)據(jù)中給定的1位為“1”的情況下,即,鎖存器電路(117)的Q端子輸出為“1”的情況下,或非門(119)的輸出變成“0”,NMOS晶體管(124)截止,在數(shù)據(jù)總線(122)的給定的那條線上傳輸高電平。
在掩膜ROM(102)的讀出側與EEPROM(101)的讀出側同樣地,也設置鎖存器電路(125)、或門(126)、或非門(127)、和NMOS晶體管(128)。再者,因為掩膜ROM(102)的地址總線最高有效位為“1”,把地址數(shù)據(jù)17位的最高有效位通過倒相器(129)加到或門(126)的一個輸入端上。因為掩膜ROM(102)的讀出操作與EEPROM(101)的讀出操作相同,故省略對該操作的說明。
(130)為指令寄存器IR,是使從EEPROM(101)或掩膜ROM(102)讀出的程序數(shù)據(jù)通過數(shù)據(jù)總線(122),保持8位的構成。(131)為指令譯碼器IDEC,對指令寄存器(130)中保持的內(nèi)容譯碼,產(chǎn)生用來控制單芯片微算機操作的控制信號。(132)為累加器ACC,與數(shù)據(jù)總線(122)連接,累計移位寄存器(106)中保持的8位數(shù)據(jù)DATA、各種運算數(shù)據(jù)等。(133)例如是,具有128個字節(jié)[EEPROM(101)中,以一頁為一部分]的存儲容量、各個字節(jié)由8位構成的RAM。把累加器(132)中存儲著的移位寄存器(106)的8位數(shù)據(jù)DATA通過數(shù)據(jù)總線(122),以128個字節(jié)為一部分寫入該RAM(133)中。(134)為邏輯運算單元ALU,基于從EEPROM(101)和掩膜ROM(102)讀出的程序數(shù)據(jù),進行各種邏輯運算,與數(shù)據(jù)總線(122)連接。
(135)、(136)是為了在重寫EEPROM(101)的數(shù)據(jù)時,訪問該EEPROM(101)的地址而使用的地址寄存器TRL、TRH,基于掩膜ROM(102)程序數(shù)據(jù)的譯碼結果,把低8位設定到地址寄存器(135)中,把高8位設定到地址寄存器(136)中。
下面,說明有關如上述那樣構成的圖4的操作。
首先,在EEPROM(101)中預先寫入了用來控制單芯片微算機操作的程序數(shù)據(jù),基于從EEPROM(101)讀出的主程序的程序數(shù)據(jù)譯碼結果,執(zhí)行一般操作。再者,在控制寄存器(109)的標志F1和F3中寫入“1”,控制電路(105)為操作狀態(tài),同時,變成允許中斷請求信號INTREQ產(chǎn)生的狀態(tài)。
那么,單芯片微算機用戶重寫EEPROM(101)中給定地址的程序數(shù)據(jù)時,以8位為單位,從外部輸入重寫用的程序數(shù)據(jù)DATA。借此,該程序數(shù)據(jù)DATA與時鐘CK的下降沿同步地進入控制電路(105)中,并依次保持在移位寄存器(106)中。而且,移位寄存器(106)中保持以8位為一部分的程序數(shù)據(jù)DATA,就在產(chǎn)生系統(tǒng)時鐘S4的期間內(nèi),產(chǎn)生低電平的中斷請求信號INTREQ,該中斷請求信號INTREQ加到中斷電路(104)上。于是,借助于中斷電路(104)的輸出,強制地把程序計數(shù)器(103)的值變更成存儲著用來把移位寄存器(106)保持的內(nèi)容寫入RAM(133)的程序數(shù)據(jù)的地址數(shù)據(jù)(變更成所謂子程序的首位地址)。而且,訪問EEPROM(101)中符合于程序計數(shù)器(103)中地址數(shù)據(jù)的地址,從EEPROM(101)讀出程序數(shù)據(jù)。讀出的程序數(shù)據(jù)由程序譯碼器(131)譯碼,產(chǎn)生控制信號。于是,基于該控制信號,移位寄存器(106)保持的內(nèi)容通過數(shù)據(jù)總線(122),暫時存儲在累加器(132)中以后,寫入RAM(133)的首位地址中。通過把該中斷操作反復128次,結果,以128個字節(jié)為一部分的數(shù)據(jù)逐個地址地依次寫入RAM(133)中。
而且,EEPROM(101)在子程序的程序結束以后,返回到主程序的程序中。在該主程序的程序中,訪問存儲著給定程序數(shù)據(jù)的地址。該給定的程序數(shù)據(jù)是用來訪問存儲著掩膜ROM(2)的給定庫的首位地址的程序數(shù)據(jù)(CALL指令)。從EEPROM(101)讀出程序數(shù)據(jù),把該程序數(shù)據(jù)在指令譯碼器(131)中譯碼,當判明為CALL指令時,就強制地把程序計數(shù)器(103)的值設定為從EEPROM(101)的下一個地址讀出的值。即,在信號ROMIB的定時內(nèi),從EEPROM(101)的下一個地址、依次讀出以17位為一部分的數(shù)據(jù),把讀出的數(shù)據(jù)作為訪問掩膜ROM(102)中給定庫的首位地址的地址數(shù)據(jù)、將其強制地設定到程序計數(shù)器(103)中。程序計數(shù)器(103)的值每增大一次,這種操作就進行一次。詳細地說,在存儲著EEPROM(101)CALL指令的地址的下三個地址中,存儲著上述地址數(shù)據(jù)的低8位、高8位、進而,最高有效位“1”。而且,每當信號ROMIB變成低電平時,就把這三個地址的數(shù)據(jù)依次設定到程序計數(shù)器(103)中。這樣,利用程序計數(shù)器(103)指定ROM(102)的地址,借此,程序操作轉向掩膜ROM(102)。而且,此后,把按照程序計數(shù)器(103)的值從掩膜ROM(102)中讀出的程序數(shù)據(jù)、在指令譯碼器(131)中譯碼。把地址寄存器(135)、(136)的重寫程序預先存儲到掩膜ROM(102)的程序數(shù)據(jù)(給定的庫)中。當掩膜ROM(102)的程序數(shù)據(jù)在指令譯碼器(131)中譯碼時,就把應該進行數(shù)據(jù)重寫的EEPROM(101)中的地址數(shù)據(jù)設定到地址寄存器(135)、(136)中。詳細地說,每當程序計數(shù)器(103)的值增大時,就把掩膜ROM(102)的下一個地址中存儲著的地址數(shù)據(jù)依次設定到地址寄存器(135)、(136)中。接著,當程序計數(shù)器(103)的值增大,譯碼掩膜ROM(102)的程序數(shù)據(jù)時,就把已寫入RAM(133)中、以1個字節(jié)為一部分的程序數(shù)據(jù)通過累加器(132)和數(shù)據(jù)總線(122),寫入由地址寄存器(135)、(136)決定的地址中。這時,因為信號EWRT變成“1”,所以,在EEPROM(101)中指定由地址寄存器(135)、(136)決定的地址。此后,當程序計數(shù)器(103)的值增大時,就把這時從掩膜ROM(102)讀出的程序數(shù)據(jù)譯碼,只把地址寄存器(135)的值在ALU(134)中加1以后,重新設定到地址寄存器(135)中。接著,當程序計數(shù)器(103)的值增大,譯碼掩膜ROM(102)的程序數(shù)據(jù)時,就把已寫入RAM(133)中下一個地址的、以1個字節(jié)為一部分的程序數(shù)據(jù)通過累加器(132)和數(shù)據(jù)總線(122),寫入由地址寄存器(135)、(136)決定的下一個地址中。反復這一操作,重復EEPROM(101)中以128個字節(jié)為一部分的程序數(shù)據(jù)。
根據(jù)以上描述,在單芯片微算機內(nèi),內(nèi)裝有能夠寫入、讀出數(shù)據(jù)的EEPROM(1)作為程序存儲器,同時,因為裝有存儲著用來重寫EEPROM(1)的程序數(shù)據(jù)的程序數(shù)據(jù)掩膜ROM(2),所以,重寫控制單芯片微算機操作的程序數(shù)據(jù)就變得很容易了,在短時間內(nèi)就能夠形成程序不同的單芯片微算機,還能夠抑制價格的上漲。
在上述第一和第二實施例中,作為第二非易失性存儲器設置了掩膜ROM2 102,分別存儲著向第一非易性存儲器即EEPROM1 101寫入數(shù)據(jù)用的程序。然而,第二非易性存儲器不用掩膜ROM,而是用EPROM、EEPROM等能夠重寫數(shù)據(jù)的存儲器也是合適的。
如果這樣構成,用戶就能夠重寫第二非易失性存儲器的內(nèi)容了。因而,用戶能夠重寫第一非易失性存儲器中數(shù)據(jù)用的程序,用戶能夠從多種數(shù)據(jù)重寫方法中選擇任一種方法。再者,第二非易失性存儲器借助于與外部裝置接口,能夠寫入數(shù)據(jù)。
權利要求
1.一種內(nèi)裝有非易失性存儲器的單芯片微算機,其特征是包括能夠寫入、讀出數(shù)據(jù)的第一非易失性存儲器;存儲用來把數(shù)據(jù)寫入該第一非易失性存儲器中的寫入程序數(shù)據(jù)的第二非易失性存儲器;基于從該第二非易失性存儲器讀出的程序數(shù)據(jù),控制所述第一非易失性存儲器的寫入的控制電路。
2.根據(jù)權利要求1所述的單芯片微算機,其特征是,把所述第一非易失性存儲器作為隨機存取存儲器使用。
3.根據(jù)權利要求1所述的單芯片微算機,其特征是,把所述第一非易失性存儲器作為預先存儲程序數(shù)據(jù)的只讀存儲器使用。
4.根據(jù)權利要求1所述的單芯片微算機,其特征是,所述控制電路基于從所述第二非易性存儲器讀出的程序數(shù)據(jù),指定所述第一非易失性存儲器的寫入地址,并把數(shù)據(jù)寫入該地址內(nèi)。
5.根據(jù)權利要求4中所述的單芯片微算機,其特征是,具有對從所述第一和第二非易失性存儲器中讀出的程序數(shù)據(jù)譯碼的譯碼電路;所述控制電路在從所述第二非易失性存儲器中讀出訪問所述第一非易失性存儲器的程序數(shù)據(jù)以后,在所述譯碼電路中將該程序數(shù)據(jù)譯碼完時,按照從所述第二非易失性存儲器讀出的程序數(shù)據(jù),指定在所述第一非易失性存儲器上的寫入數(shù)據(jù)的地址,并把數(shù)據(jù)寫入該地址。
6.根據(jù)權利要求5中所述的單芯片微算機,其特征是包括指定第一非易失性存儲器讀出地址的第一地址電路;指定第一非易失性存儲器寫入地址的第二地址電路;在第一地址電路的輸出和第二地址電路的輸出中,選擇某一個的選擇電路。
7.根據(jù)權利要求6中所述的單芯片微算機,其特征是,所述第一地址電路擇一地指定第一非易失性存儲器的存取地址和第二非易失性存儲器的存取地址。
8.根據(jù)權利要求7中所述的單芯片微算機,其特征是,在把數(shù)據(jù)寫入第一非易失性存儲器中時,把第二非易失性存儲器中存儲的數(shù)據(jù)存儲到第二地址電路中,把數(shù)據(jù)寫入由第二地址電路指定的地址中。
9.根據(jù)權利要求1~8中所述的單芯片微算機,其特征是,當產(chǎn)生指示所述第一非易失性存儲器進行寫入操作的中斷信號時,將所述第二非易失性存儲器的訪問地址轉移到存儲著執(zhí)行所述第一非易失性存儲器寫入操作的程序數(shù)據(jù)的地址上。
10.根據(jù)權利要求1~9中所述的單芯片微算機,其特征是還包括,當檢測出從外部供給的、應該寫入所述第一非易失性存儲器中的數(shù)據(jù)達到給定的位數(shù)時,產(chǎn)生所述中斷信號的中斷控制電路。
11.根據(jù)權利要求1~10中所述的單芯片微算機,其特征是,所述中斷控制電路具有計數(shù)所供給數(shù)據(jù)的計數(shù)器;當該計數(shù)器的值達到給定值時,產(chǎn)生中斷信號。
12.根據(jù)權利要求1~11中所述的單芯片微算機,其特征是,具有存儲所述從外部供給的數(shù)據(jù)的移位寄存器;借助于控制電路基于第二非易失性存儲器中存儲的程序數(shù)據(jù)進行操作,把移位寄存器中存儲的數(shù)據(jù)寫入第一非易失性存儲器中。
13.根據(jù)權利要求1~12中所述的單芯片微算機,其特征是,第二非易失性存儲器為不能重新寫入的只讀存儲器。
14.根據(jù)權利要求1~12中所述的單芯片微算機,其特征是,第二非易失性存儲器為能夠重新寫入的存儲器。
全文摘要
當從外部供給的數(shù)據(jù)DATA達到給定的位數(shù)時,計數(shù)器(12)就溢出,晶體管(17)導通,產(chǎn)生中斷信號INTREQ。由此,存取ROM(2)的給定地址,通過執(zhí)行該地址中存儲著的程序,把從外部供給的數(shù)據(jù)DATA寫入EEPROM(1)中。
文檔編號G06F12/06GK1156283SQ9511978
公開日1997年8月6日 申請日期1995年11月24日 優(yōu)先權日1994年11月24日
發(fā)明者小山 博, 大澤博 申請人:三洋電機株式會社