關(guān) 閉

新聞中心

EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 大容量閃爍存儲器AT45D081及其在稅控加油機中的應(yīng)

大容量閃爍存儲器AT45D081及其在稅控加油機中的應(yīng)

作者: 時間:2004-12-21 來源:網(wǎng)絡(luò) 收藏
摘要:介紹了大容量閃爍存儲器45的特點和主要功能,描述了其引腳定義、工作原理、操作指令及讀寫時序。結(jié)合稅控加油機給出了它的硬件設(shè)計和相關(guān)的軟件編程。

關(guān)鍵詞:45;稅控加油機;可靠性

在電子產(chǎn)品的設(shè)計中,經(jīng)常存在斷電后數(shù)據(jù)或機器參數(shù)的保存問題。早期一般由電池為RAM供電,但由于環(huán)境及電池本身的原因,這種方式常使數(shù)據(jù)丟失。目前,小容量數(shù)據(jù)存儲多采用93系列EEPROM(如93C46)或24系列EEPROM(如24C45)。但如果要求存儲的數(shù)據(jù)量很大?這些芯片的存儲能力就不能勝任。為此,本文介紹一種大容量的閃爍存儲器芯片AT45D081,并給出其在稅控加油機中的應(yīng)用。

1 AT45D081簡介

1.1 AT45D081的特點

AT45D081A是ATMEL公司生產(chǎn)的閃爍存儲器。它采用串行方式傳送數(shù)據(jù), 符合ISO7816標準,時鐘頻率可高達15MHz, 并采用單5V電源供電。同時具有功耗低、體積小、容量大、傳送快速, 與CMOS和TTL電平兼容以及掉電后數(shù)據(jù)不丟失等特點。 由于讀寫時序與SPI模式0與模式3兼容, 因此,其硬件設(shè)計與軟件編程都很容易。

1.2 內(nèi)部結(jié)構(gòu)與引腳說明

AT45D081內(nèi)部由主存儲器陣列、兩個SRAM數(shù)據(jù)緩沖區(qū)BUFFER1、BUFFER2以及I/0接口組成。其中主存儲器陣列容量為8M Bits,由4096頁組成,每頁264字節(jié),為編程方便又把連續(xù)的8頁定義為一塊。每個SRAM數(shù)據(jù)緩沖區(qū)大小為264字節(jié)。 這兩個緩沖區(qū)可在主存儲器陣列訪問某一緩沖區(qū)或某緩沖區(qū)訪問主存儲器陣列時,另外一個緩沖區(qū)能同時與外部交換數(shù)據(jù)。主存儲器與緩沖區(qū)的相互訪問是在芯片內(nèi)部自動完成的,且不需要外部的干涉,這樣就大大提高了外部訪問的效率。但外部可以通過讀取芯片提供的只讀狀態(tài)存儲器的內(nèi)容知道芯片容量及工作狀態(tài)信息(可用就緒/忙標志指示緩沖區(qū)是否與指定的主存儲器陣列頁內(nèi)容一致)。

AT45D081的主要引腳功能見表1所列。當AT45D081的CS由高變低時,芯片啟動一次操作,而當CS由低變高時,終止操作。這時SI上的任何數(shù)據(jù)都被忽略,SO處于高阻態(tài)。 當WP為低時,主存儲器的前256頁不能被訪問。如果要訪問前256頁,則必須使WP為高。WP已被芯片內(nèi)部拉高,如果要對前256頁編程,那么,WP應(yīng)在外部置高電平。

1.3 操作指令及讀寫時序

外部訪問主存儲器陣列和緩沖區(qū)及狀態(tài)寄存器是通過輸入命令來實現(xiàn)的。AT45D081共提供了26條命令?這些命令按功能可分為讀主存儲器陣列頁、主存儲器陣列頁內(nèi)容傳送到緩沖區(qū)、緩沖區(qū)內(nèi)容傳送到主存儲陣列頁、頁擦除、塊擦除、外部通過緩沖區(qū)對主存儲器頁寫入、自動頁重寫?緩沖區(qū)讀寫?狀態(tài)寄存器讀等。所有的命令都遵循下面的格式?首先是8位命令碼?然后是24位地址碼?有的命令后面還要輸入無關(guān)碼。輸入時高位在前?低位在后。輸入模式與SPI模式0與模式3兼容。表2所列是連續(xù)讀主存儲陣列、讀狀態(tài)寄存器和寫緩沖區(qū)命令格式。表中:r代表該位為保留位,p表示該位為頁地址位,b表示該位為頁內(nèi)字節(jié)地址位,x表示該位可以為0也可以為1,N/A表示輸入數(shù)據(jù)流中沒有這些位,由表2可知:24位地址可分為5位保留位, 7位塊地址,10位頁地址和9位頁內(nèi)字節(jié)地址。對于主寄存器陣列,頁內(nèi)字節(jié)的訪問,如連續(xù)讀主寄存器陣列,必須指定頁及頁內(nèi)地址作為訪問的首地址。同時還需注意,該命令24位地址后還有32位無關(guān)位輸入。而對于緩沖區(qū)的訪問?因緩沖區(qū)的大小為264字節(jié),因此指定9位地址就可以了。此外,在塊的擦除方面,由于是整塊操作,所以,只需指定7位塊地址而無需指定其它地址。

圖2所示是連續(xù)讀主寄存器陣列的時序。從時序圖可看出,當CS為高電平時,SI輸入的位流無效,此時,SO處于高阻態(tài)。當CS由高到低時,片選有效,此時將啟動操作命令,在時鐘SCK的上升沿把SI上已備好的數(shù)據(jù)串行送入芯片(高位在前)。對于連續(xù)讀主存儲器陣列命令,其輸入命令格式位流為:

01101000 rrrrrppp pppppppb bbbbbbbb xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx ,共64位。當?shù)冢叮祩€時鐘到來時?SO由高阻態(tài)變?yōu)橛行顟B(tài)而輸出數(shù)據(jù),數(shù)據(jù)輸出也是高位在前。

圖2

2 AT45D081在稅控加油機中的應(yīng)用

2.1 稅控加油機對存儲器的要求

稅控加油機是對車輛、油罐等設(shè)備進行加油并進行稅務(wù)管理的加油機器。為對加油過程進行有效監(jiān)督管理,稅控加油機必須達到國家要求的加油精度,并應(yīng)顯示每次加油的油價、加油量及加油金額,同時稅控加油機也必須能夠存儲7年之內(nèi)每天的加油記錄,并提供查詢接口。

為了滿足稅控加油機對數(shù)據(jù)存儲的要求,存儲器必須提供足夠大的存儲空間,且在掉電時不能丟失數(shù)據(jù)。同時應(yīng)有較強的防數(shù)據(jù)誤寫功能以保證存儲在存儲器中稅務(wù)數(shù)據(jù)的安全?;诙喾矫婵紤]?設(shè)計中選用了AT45D081。

2.2 稅控加油機的功能結(jié)構(gòu)

稅控加油機主要由稅控CPU、主控CPU以及其它一些外圍設(shè)備組成。稅控CPU和主控CPU之間是通過模擬的SPI總線來通信的。主控CPU通過SKH向稅控CPU請求通信,稅控CPU通過SKL作應(yīng)答。通信數(shù)據(jù)先由一方放到雙端口移位緩存中,然后通知對方到緩存中取數(shù)據(jù)。加油的工作過程如下,主控CPU檢測到提油槍信號后將向稅控CPU發(fā)出加油請求。如果稅控CPU允許加油,則一方面使能電機控制輸入端A,同時通知主控CPU,主控CPU接到通知后,立即使能電機控制端B,同時計算加油數(shù)據(jù)并通過SPI協(xié)議總線傳送到稅控CPU,再由稅控CPU驅(qū)動顯示。當主CPU檢測到油槍掛起后,它一方面送出關(guān)電機信號,另一方面通知稅控CPU也送出關(guān)機信號。當然,主控CPU也可以通過鍵盤向稅控CPU查詢時間及其它信息。

2.3 提高可靠性的設(shè)計措施

加油的數(shù)據(jù)由稅控CPU保存在AT45D081中。為提高芯片的抗干擾能力,防止程序?qū)π酒恼`寫,有效保護片內(nèi)數(shù)據(jù)。硬件設(shè)計中采取了一些保護措施。其原理如下:

設(shè)CS為Q0,RDY為Q1,CPU的復位信號RE-SET為C。AT45D081的復位信號RESET1為Y, 則Y=(Q1Q2)C。因此,當CPU剛上電復位或由于主控CPU運行出錯(如程序跑飛)而使“看門狗”芯片MAX813輸出復位信號RESET產(chǎn)生熱復位時,系統(tǒng)迫使AT45D081復位,同時禁止對該片的任何讀寫操作。當CPU處于正常工作時,只有該片的片選信號有效,同時芯片處于就緒狀態(tài)時,才允許對其進行訪問,否則迫使芯片處于復位狀態(tài)并禁止訪問,這樣就防止了外界對其進行誤寫,從而有效地保護了片內(nèi)數(shù)據(jù)。

圖3

2.4 AT45D081的讀寫軟件編程

AT45D081有關(guān)引腳接線如圖3所示,下面給出針對寫緩沖區(qū)和連續(xù)讀主存儲器陣列命令的51匯編語言軟件編程。

;向緩沖區(qū)1寫入數(shù)據(jù)

writebuf:

clr CS

mov a,#84h

lcall Byte_shift_out ;送命令碼

clr a

lcall Byte_shift_out ;送8位任意碼

mov a,hi_addr

lcall Byte_shift_out ;送高字節(jié)地址

mov a,lo_addr

lcall Byte_shift_out ;送低字節(jié)地址

writebuf0:

mov a,@r0

;連續(xù)讀主存儲器陣列內(nèi)容

Readmain:

clr CS

mov a,#68h

lcall Byte_shift_out ;送命令碼

clr c

mov a,lopageadd

rlc a

mov a,hi_page_addradd;

;合成24位地址的9~18位

rlc a

lcall Byte_shift_out;送前8位

mov a,hi_addr

rrc a

mov a,lopageadd

rlc a ;合成24位地址0~8位

lcall Byte_shift_out ;送第2個8位

mov a,lo_addr

lcall Byte_shift_out ;送0~7位

clr a

mov r3,#04H

readmain0:

lcall Byte_shift_out

djnz r3,readmain0 ;送32位無關(guān)位

readmain1:

lcall Byte_shift_in

mov @r0,a

inc r0 ;

;連續(xù)從指定的頁及頁內(nèi)地址讀出R2個數(shù)據(jù)

djnz r2,readmain1 ; 送命令碼

setb CS

ret

ReadState: ;讀狀態(tài)寄存器內(nèi)容

clr fmcs

MOV a,#57h;

lcall outcommon

lCALL incommon

setb fmcs

lcall Byte_shift_out; 連續(xù)從R0指定的地址寫入R2個數(shù)據(jù)到BUFFER1

inc r0

djnz r2,writebuf0

setb CS

ret

3 結(jié)束語

本文設(shè)計的稅控加油機已通過國家稅控認證及電磁兼容試驗認證。產(chǎn)品投產(chǎn)5年來,運行一直穩(wěn)定可靠,各項指標均達到國家要求標準。尚未發(fā)現(xiàn)存儲在AT45D081中的數(shù)據(jù)出現(xiàn)丟失和異常現(xiàn)象。



關(guān)鍵詞: D081 45D AT

評論


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

關(guān)閉