大容量閃爍存儲器AT45D081及其在稅控加油機中的應
在電子產(chǎn)品的設計中,經(jīng)常存在斷電后數(shù)據(jù)或機器參數(shù)的保存問題。早期一般由電池為RAM供電,但由于環(huán)境及電池本身的原因,這種方式常使數(shù)據(jù)丟失。目前,小容量數(shù)據(jù)存儲多采用93系列EEPROM(如93C46)或24系列EEPROM(如24C45)。但如果要求存儲的數(shù)據(jù)量很大?這些芯片的存儲能力就不能勝任。為此,本文介紹一種大容量的閃爍存儲器芯片AT45D081,并給出其在稅控加油機中的應用。
1 AT45D081簡介
1.1 AT45D081的特點
AT45D081A是ATMEL公司生產(chǎn)的閃爍存儲器。它采用串行方式傳送數(shù)據(jù), 符合ISO7816標準,時鐘頻率可高達15MHz, 并采用單5V電源供電。同時具有功耗低、體積小、容量大、傳送快速, 與CMOS和TTL電平兼容以及掉電后數(shù)據(jù)不丟失等特點。 由于讀寫時序與SPI模式0與模式3兼容, 因此,其硬件設計與軟件編程都很容易。
1.2 內部結構與引腳說明
AT45D081內部由主存儲器陣列、兩個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ū)的相互訪問是在芯片內部自動完成的,且不需要外部的干涉,這樣就大大提高了外部訪問的效率。但外部可以通過讀取芯片提供的只讀狀態(tài)存儲器的內容知道芯片容量及工作狀態(tài)信息(可用就緒/忙標志指示緩沖區(qū)是否與指定的主存儲器陣列頁內容一致)。
AT45D081的主要引腳功能見表1所列。當AT45D081的CS由高變低時,芯片啟動一次操作,而當CS由低變高時,終止操作。這時SI上的任何數(shù)據(jù)都被忽略,SO處于高阻態(tài)。 當WP為低時,主存儲器的前256頁不能被訪問。如果要訪問前256頁,則必須使WP為高。WP已被芯片內部拉高,如果要對前256頁編程,那么,WP應在外部置高電平。
1.3 操作指令及讀寫時序
外部訪問主存儲器陣列和緩沖區(qū)及狀態(tài)寄存器是通過輸入命令來實現(xiàn)的。AT45D081共提供了26條命令?這些命令按功能可分為讀主存儲器陣列頁、主存儲器陣列頁內容傳送到緩沖區(qū)、緩沖區(qū)內容傳送到主存儲陣列頁、頁擦除、塊擦除、外部通過緩沖區(qū)對主存儲器頁寫入、自動頁重寫?緩沖區(qū)讀寫?狀態(tài)寄存器讀等。所有的命令都遵循下面的格式?首先是8位命令碼?然后是24位地址碼?有的命令后面還要輸入無關碼。輸入時高位在前?低位在后。輸入模式與SPI模式0與模式3兼容。表2所列是連續(xù)讀主存儲陣列、讀狀態(tài)寄存器和寫緩沖區(qū)命令格式。表中:r代表該位為保留位,p表示該位為頁地址位,b表示該位為頁內字節(jié)地址位,x表示該位可以為0也可以為1,N/A表示輸入數(shù)據(jù)流中沒有這些位,由表2可知:24位地址可分為5位保留位, 7位塊地址,10位頁地址和9位頁內字節(jié)地址。對于主寄存器陣列,頁內字節(jié)的訪問,如連續(xù)讀主寄存器陣列,必須指定頁及頁內地址作為訪問的首地址。同時還需注意,該命令24位地址后還有32位無關位輸入。而對于緩沖區(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在稅控加油機中的應用
2.1 稅控加油機對存儲器的要求
稅控加油機是對車輛、油罐等設備進行加油并進行稅務管理的加油機器。為對加油過程進行有效監(jiān)督管理,稅控加油機必須達到國家要求的加油精度,并應顯示每次加油的油價、加油量及加油金額,同時稅控加油機也必須能夠存儲7年之內每天的加油記錄,并提供查詢接口。
為了滿足稅控加油機對數(shù)據(jù)存儲的要求,存儲器必須提供足夠大的存儲空間,且在掉電時不能丟失數(shù)據(jù)。同時應有較強的防數(shù)據(jù)誤寫功能以保證存儲在存儲器中稅務數(shù)據(jù)的安全。基于多方面考慮?設計中選用了AT45D081。
2.2 稅控加油機的功能結構
稅控加油機主要由稅控CPU、主控CPU以及其它一些外圍設備組成。稅控CPU和主控CPU之間是通過模擬的SPI總線來通信的。主控CPU通過SKH向稅控CPU請求通信,稅控CPU通過SKL作應答。通信數(shù)據(jù)先由一方放到雙端口移位緩存中,然后通知對方到緩存中取數(shù)據(jù)。加油的工作過程如下,主控CPU檢測到提油槍信號后將向稅控CPU發(fā)出加油請求。如果稅控CPU允許加油,則一方面使能電機控制輸入端A,同時通知主控CPU,主控CPU接到通知后,立即使能電機控制端B,同時計算加油數(shù)據(jù)并通過SPI協(xié)議總線傳送到稅控CPU,再由稅控CPU驅動顯示。當主CPU檢測到油槍掛起后,它一方面送出關電機信號,另一方面通知稅控CPU也送出關機信號。當然,主控CPU也可以通過鍵盤向稅控CPU查詢時間及其它信息。
2.3 提高可靠性的設計措施
加油的數(shù)據(jù)由稅控CPU保存在AT45D081中。為提高芯片的抗干擾能力,防止程序對芯片的誤寫,有效保護片內數(shù)據(jù)。硬件設計中采取了一些保護措施。其原理如下:
設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)并禁止訪問,這樣就防止了外界對其進行誤寫,從而有效地保護了片內數(shù)據(jù)。
圖3
2.4 AT45D081的讀寫軟件編程
AT45D081有關引腳接線如圖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ù)讀主存儲器陣列內容
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位無關位
readmain1:
lcall Byte_shift_in
mov @r0,a
inc r0 ;
;連續(xù)從指定的頁及頁內地址讀出R2個數(shù)據(jù)
djnz r2,readmain1 ; 送命令碼
setb CS
ret
ReadState: ;讀狀態(tà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 結束語
本文設計的稅控加油機已通過國家稅控認證及電磁兼容試驗認證。產(chǎn)品投產(chǎn)5年來,運行一直穩(wěn)定可靠,各項指標均達到國家要求標準。尚未發(fā)現(xiàn)存儲在AT45D081中的數(shù)據(jù)出現(xiàn)丟失和異常現(xiàn)象。
評論