<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 大容量閃爍存儲(chǔ)器AT45D081及其在稅控加油機(jī)中的應(yīng)用

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

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

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

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

          1 AT45D081簡(jiǎn)介

          1.1 AT45D081的特點(diǎn)

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

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

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

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

          1.3 操作指令及讀寫(xiě)時(shí)序

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

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

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

          圖2

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

          2.1 稅控加油機(jī)對(duì)存儲(chǔ)器的要求

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

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

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

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

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

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

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

          圖3

          2.4 AT45D081的讀寫(xiě)軟件編程

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

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

          writebuf:

          clr CS

          mov a,#84h

          lcall Byte_shift_out ;送命令碼

          clr a

          lcall Byte_shift_out ;送8位任意碼

          mov a,hi_(kāi)addr

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

          mov a,lo_addr

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

          writebuf0:

          mov a,@r0

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

          Readmain:

          clr CS

          mov a,#68h

          lcall Byte_shift_out ;送命令碼

          clr c

          mov a,lopageadd

          rlc a

          mov a,hi_(kāi)page_addradd;

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

          rlc a

          lcall Byte_shift_out;送前8位

          mov a,hi_(kāi)addr

          rrc a

          mov a,lopageadd

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

          lcall Byte_shift_out ;送第2個(gè)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位無(wú)關(guān)位

          readmain1:

          lcall Byte_shift_in

          mov @r0,a

          inc r0 ;

          ;連續(xù)從指定的頁(yè)及頁(yè)內(nèi)地址讀出R2個(gè)數(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指定的地址寫(xiě)入R2個(gè)數(shù)據(jù)到BUFFER1

          inc r0

          djnz r2,writebuf0

          setb CS

          ret

          3 結(jié)束語(yǔ)

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



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

          評(píng)論


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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();