《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 其他 > 業(yè)界動(dòng)態(tài) > 基于AT45DB041B存儲(chǔ)器的手持?jǐn)?shù)據(jù)接收系統(tǒng)設(shè)計(jì)

基于AT45DB041B存儲(chǔ)器的手持?jǐn)?shù)據(jù)接收系統(tǒng)設(shè)計(jì)

2009-10-12
作者:張光宇1,吳敏波1,劉劍豪2

  摘 要: 針對(duì)海表氣象參數(shù)的存儲(chǔ),,設(shè)計(jì)了基于AT89LV52和AT45DB041B的手持數(shù)據(jù)接收存儲(chǔ)器系統(tǒng)。詳細(xì)闡述了系統(tǒng)硬件組成和軟件設(shè)計(jì),,給出了單片機(jī)與AT45DB041B的SPI接口電路、程序流程圖及部分程序代碼,。該系統(tǒng)具有存儲(chǔ)容量大,、數(shù)據(jù)保存非易失性等特點(diǎn)。
  關(guān)鍵詞: AT45DB041B,;存儲(chǔ)器,;手持接收系統(tǒng);單片機(jī)

?

?? 由于海表溫度,、空氣濕度,、氣壓等是影響蒸發(fā)波導(dǎo)的重要因素,近年來,,通過蒸發(fā)波導(dǎo)來增大雷達(dá)的探測(cè)距離從而形成超視距探測(cè),,已經(jīng)逐步成為世界各國(guó)海軍密切關(guān)注的研究方向。由于蒸發(fā)波導(dǎo)出現(xiàn)在海洋大氣近地層內(nèi),,受海氣交接面處微氣象條件影響與制約,,因此,對(duì)海面氣象特征參數(shù)的數(shù)據(jù)采集和存儲(chǔ),,以便分析蒸發(fā)波導(dǎo)模型,,從而利用蒸發(fā)波導(dǎo)模型來預(yù)報(bào)波導(dǎo)高度等特征量以及繪制修正折射指數(shù)剖面顯得十分重要。鑒于艦船長(zhǎng)期在海面工作,,針對(duì)目前手持接收設(shè)備自身存儲(chǔ)容量過小,,無法滿足大量數(shù)據(jù)采集的實(shí)際情況,本文設(shè)計(jì)了一種基于ATMEL公司生產(chǎn)的大容量Flash存儲(chǔ)器AT45DB041B的手持?jǐn)?shù)據(jù)接收系統(tǒng),,通過無線數(shù)傳的方式將前端采集的各種氣象數(shù)據(jù)進(jìn)行接收存儲(chǔ)和顯示。該系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,,抗干擾能力強(qiáng),,適合于復(fù)雜海洋環(huán)境下數(shù)據(jù)的接收和存儲(chǔ),具有很好的推廣應(yīng)用價(jià)值,。
1 系統(tǒng)設(shè)計(jì)
  手持?jǐn)?shù)據(jù)接收存儲(chǔ)系統(tǒng)結(jié)構(gòu)如圖1所示,,主要由AT89LV52單片機(jī)、AT45DB041B存儲(chǔ)器,、GPS模塊,、OLED顯示模塊以及鍵盤電路等組成,。

  根據(jù)系統(tǒng)結(jié)構(gòu)及功能需求,手持?jǐn)?shù)據(jù)接收存儲(chǔ)系統(tǒng)各模塊之間的關(guān)系與功能定義如下:
  (1)主控單元采用AT89LV52單片機(jī),,工作電壓為2.7~6.0 V,,與標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及8052產(chǎn)品引腳兼容。因?yàn)槠溥\(yùn)算效率高,、功耗低,、接口符合設(shè)計(jì)要求。
  (2)數(shù)據(jù)存儲(chǔ)模塊具有4 MB的串口Flash DATA,,是本設(shè)計(jì)的關(guān)鍵點(diǎn),。主要用于接收和保存采集到的氣象數(shù)據(jù),最后通過CH375芯片轉(zhuǎn)存到U盤,。其體積小,、容量大、耗電省,、接口簡(jiǎn)單,,特別是在移動(dòng)式智能化儀表中,可保存大量測(cè)量數(shù)據(jù),,有著廣泛的應(yīng)用領(lǐng)域,。
??? (3)鍵盤模塊采用44矩陣式鍵盤,采用逐行掃描的方法,。主要用于命令的下達(dá)和狀態(tài)的設(shè)定,,通過鍵盤輸入可以切換OLED屏的顯示模式,設(shè)置無線數(shù)傳的工作方式,,選擇所要采集信號(hào)的類型等,。同時(shí)具體在每個(gè)按鍵上設(shè)置一鍵多能的功能,使手持設(shè)備可以有選擇地接收和存儲(chǔ)數(shù)據(jù),。
??? (4)顯示部分采用128×64行點(diǎn)陣OLED,,單色、字符,、圖形形式模塊,。主要用來顯示數(shù)據(jù)傳輸?shù)墓ぷ鳡顟B(tài)、系統(tǒng)時(shí)間以及鍵盤輸入的數(shù)據(jù)等,,以方便工作人員進(jìn)行相應(yīng)的操作,。其厚度薄、重量輕,、功耗低,、具有良好的抗震性,適合于海上作業(yè),。
  (5)GPS模塊采用Holoux公司生產(chǎn)的基于Sirf3的高性能模塊,,主要用來對(duì)海上作業(yè)船只進(jìn)行經(jīng)緯度定位和提供系統(tǒng)時(shí)間校正,。
  (6)數(shù)據(jù)采集模塊由前端氣象采集傳感器和無線數(shù)傳單元組成,通過多點(diǎn)-點(diǎn)方式實(shí)現(xiàn)與手持設(shè)備之間的通信,。
  (7)由于數(shù)據(jù)接收器為手持設(shè)備,,且要滿足長(zhǎng)時(shí)間海上作業(yè)的要求,所以選用2節(jié)5號(hào)電池供電,,以最大限度地延長(zhǎng)操作時(shí)間,。
2 硬件電路
2.1 AT45DB041B
  AT45DB041B是ATMEL公司生產(chǎn)的AT45DB系列Flash存儲(chǔ)器中的一種,共有8個(gè)引腳,,其引腳功能如表1所示,,芯片內(nèi)部結(jié)構(gòu)原理框圖如圖2所示。該存儲(chǔ)器主要由主存儲(chǔ)器(Flash memory array)和2個(gè)264 B的緩存(buffer1和buffer2)構(gòu)成,,其中主存儲(chǔ)器容量為4 MB,,共分為2 048頁(yè),每頁(yè)容量為264 B,,每8頁(yè)構(gòu)成1個(gè)塊,,共256塊,主存儲(chǔ)區(qū)支持頁(yè)擦除和塊擦除操作,;緩存讀寫方便迅速,,但掉電數(shù)據(jù)會(huì)丟失,可以用作主存與外部進(jìn)行數(shù)據(jù)交換時(shí)的緩沖區(qū)域,;當(dāng)通過一個(gè)緩存器對(duì)主存儲(chǔ)區(qū)進(jìn)行編程時(shí),,另一個(gè)緩存器仍能進(jìn)行數(shù)據(jù)接收或者發(fā)送,實(shí)現(xiàn)虛擬的連續(xù)數(shù)據(jù)的存儲(chǔ),。AT45DB041B通過SPI口進(jìn)行數(shù)據(jù)的讀寫,,使得硬件結(jié)構(gòu)簡(jiǎn)單,系統(tǒng)可靠性增強(qiáng),。

?

?

2.2 AT45DB041B與單片機(jī)接口電路
??? 對(duì)于內(nèi)部有SPI接口的單片機(jī),,直接使用其SPI接口與AT45DB041B相連接即可;而內(nèi)部沒有SPI接口的單片機(jī)如MCS-51系列,,可以利用通常的I/O口,,用軟件接口模擬實(shí)現(xiàn)SPI接口與AT45DB041B相連接。以下簡(jiǎn)要介紹以89LV52單片機(jī)實(shí)現(xiàn)的AT45DB041B的接口,,其硬件電路如圖3所示,。這里使用89LV52的P2.3、P2.2,、P2.1、P2.0分別作為AT45DB041B的SO,、SI,、SCK,、/CS。一般情況下,,可以將AT45DB041B的/WP接高電平,。如對(duì)保存數(shù)據(jù)的保護(hù)要求非常高,可以另外使用單片機(jī)的1根I/O線驅(qū)動(dòng)AAT45DB041B的WP 引腳,,這樣只有在將/WP拉為低的情況下才能對(duì)AT45DB041B進(jìn)行寫入,,更進(jìn)一步提高了對(duì)數(shù)據(jù)的保護(hù)。

?


3 系統(tǒng)軟件設(shè)計(jì)
3.1 系統(tǒng)主程序
  系統(tǒng)軟件采用C51語(yǔ)言編寫,,由主程序模塊,、無線數(shù)傳控制模塊、數(shù)據(jù)存取模塊,、GPS通信模塊,、顯示模塊、鍵盤處理模塊等組成,。各模塊均按結(jié)構(gòu)化程序設(shè)計(jì)思想進(jìn)行設(shè)計(jì),,使得軟件易于調(diào)試、維護(hù)和移植,,具有較強(qiáng)的通用性,。
  單片機(jī)是整個(gè)系統(tǒng)的核心,負(fù)責(zé)協(xié)調(diào)控制各個(gè)模塊的工作,。在系統(tǒng)啟動(dòng)以后,,單片機(jī)的主要工作有:系統(tǒng)初始化、GPS定位,、通過無線數(shù)傳模塊控制前端氣象數(shù)據(jù)采集傳感器傳回?cái)?shù)據(jù),、將數(shù)據(jù)寫入Flash芯片、控制OLED顯示等,。另外,,由于本系統(tǒng)功能較多,為節(jié)省硬件開銷,,在4×4鍵盤掃描的基礎(chǔ)上采用一鍵多能的鍵盤管理,。
3.2 AT45DB041B讀寫子程序
  在本手持?jǐn)?shù)據(jù)接收存儲(chǔ)器裝置中,AT45DB041B用于保存監(jiān)測(cè)的歷史氣象數(shù)據(jù)和相關(guān)的狀態(tài)參數(shù),,該數(shù)據(jù)包括溫度,、經(jīng)緯度以及相關(guān)的時(shí)間(年、月,、日,、時(shí)、分)等信息,,每保存1次數(shù)據(jù)需占用36 B,,數(shù)據(jù)從主存儲(chǔ)器的第0頁(yè)開始依次往高位地址保存,。同時(shí)該系統(tǒng)還具有歷史數(shù)據(jù)的回放和轉(zhuǎn)存功能,在測(cè)量現(xiàn)場(chǎng)可在OLED上查看所接收的不同時(shí)間段的歷史數(shù)據(jù),,也可以通過CH375芯片轉(zhuǎn)存到U盤,,這2個(gè)過程都需要從AT45DB041B中讀取數(shù)據(jù)。
  下面主要對(duì)AT45DB041B的數(shù)據(jù)讀寫作簡(jiǎn)要介紹,,AT45DB041的具體數(shù)據(jù)讀寫操作如圖4所示,。


  AT45DB041B的操作方式有21種,其具體的指令和讀寫操作已有不少介紹,,本文只重點(diǎn)介紹在編寫程序中感覺比較難理解和容易出錯(cuò)的地方,,這也是編寫正確接口程序的關(guān)鍵點(diǎn)。
  AT45DB041B的操作指令可以分為三大類:從主存和緩存讀數(shù)據(jù),、往主存和緩存寫數(shù)據(jù),、主存和緩存之間的數(shù)據(jù)傳輸和比較。根據(jù)筆者在實(shí)際中的應(yīng)用體會(huì),,以下幾點(diǎn)需要注意:
  (1)單片機(jī)在通過SI,、SO引腳與AT45DB041B通信期間必須保持/CS為低電平,但涉及到芯片內(nèi)部的操作(如主存與緩存之間的數(shù)據(jù)傳輸和比較,、頁(yè)的擦除和塊擦除等),,則是在芯片內(nèi)部自帶的時(shí)序電路控制下完成的,不需要單片機(jī)控制,。另外,,由于這些操作需要相對(duì)較長(zhǎng)的時(shí)間,在程序中有必要加入延時(shí)程序,。
  (2)單片機(jī)可直接從AT45DB041B主存頁(yè)的某個(gè)單元讀數(shù)據(jù),,但不能直接往某個(gè)單元寫數(shù)據(jù),此時(shí)若要向主存寫數(shù)據(jù)有2種方法:①先將數(shù)據(jù)寫入緩存,,然后采用自帶擦除方式將緩存中的數(shù)據(jù)寫入主存,;②直接通過緩存將數(shù)據(jù)寫入主存,該操作實(shí)際是將第1種方法的2步合并成1步(即往主存寫數(shù)據(jù)必須借助于緩存來完成),。
  (3)由于目前許多單片機(jī)并沒有集成SPI總線接口,,但并非兩者之間就不能通信,可以采用單片機(jī)的I/O口結(jié)合軟件的方法來模擬SPI時(shí)序,,實(shí)現(xiàn)兩者之間的通信,。本文正是基于上述思路和方法成功地實(shí)現(xiàn)了該存儲(chǔ)器與89LV52單片機(jī)(該單片機(jī)內(nèi)部不帶SPI接口)之間的通信。
3.3 SPI總線模擬
??? 本文只對(duì)比較難以理解的軟件模擬SPI時(shí)序進(jìn)行簡(jiǎn)要介紹,,并給出相關(guān)的C51程序代碼,。其他相關(guān)操作模式的函數(shù),限于篇幅,本文不再贅述,。
??? (1)從SPI上讀1個(gè)字節(jié)
??? uchar Flash_RByte(void)
??? {
????? uchar temp=0,;
????? uchar i;
????? for(i=0,;i<8;i++)
????? {
????????? Flash_CLK=0,;
????????? _nop_(),;
????????? Flash_CLK=1;
????????? temp=temp<<1,;
????????? if(Flash_SO==1)
????????? {temp=temp+1,;}
?????? }
??? return(temp);
??? (2)向SPI上寫1個(gè)字節(jié)
??? uchar Flash_WByte(uchar temp)
??? {
????? uchar i,;
????? for(i=0,;i<8;i++)
????? {
????????? if(temp<????????? { Flash_SI=1,;}
????????? else
????????? { Flash_SI=0,;}
???    Flash_CLK=0;
????????? _nop_(),;
????????? Flash_CLK=1,;
????? }
??? }
??? 在利用軟件編程模擬SPI總線的過程中,應(yīng)重點(diǎn)注意AT45DB041B的時(shí)序問題,。在此基礎(chǔ)上,,可以根據(jù)使用中的具體需要,建立自己的讀寫子函數(shù)庫(kù),,以方便實(shí)際開發(fā)應(yīng)用,。
??? 本文利用單片機(jī)普通I/O口模擬SPI接口實(shí)現(xiàn)了AT45DB041B和AT89LV52之間的通信,并在所設(shè)計(jì)的裝置中得到了成功地應(yīng)用,,且運(yùn)行穩(wěn)定可靠,。AT45DB041B串行Flash存儲(chǔ)芯片在實(shí)際應(yīng)用中效果好,編程比較簡(jiǎn)單,,與其他一些Flash存儲(chǔ)芯片相比,,AT45DB041B突出特點(diǎn)是電路簡(jiǎn)單、價(jià)格低,、存儲(chǔ)容量大,、占用系統(tǒng)資源少。構(gòu)建基于單片機(jī)的數(shù)據(jù)存儲(chǔ)系統(tǒng)應(yīng)用框架,,為進(jìn)一步的數(shù)據(jù)處理,、超視距雷達(dá)探測(cè)距離的研究提供了可行方案,能夠符合部隊(duì)雷達(dá)裝備發(fā)展的實(shí)際需要。
參考文獻(xiàn)
[1] 張毅坤,,程善久,,裘雪紅.單片微型計(jì)算機(jī)原理與應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2001.
[2] 楊金巖,,鄭應(yīng)強(qiáng),,張振仁.8051單片機(jī)數(shù)據(jù)傳輸接口擴(kuò)展技術(shù)與應(yīng)用實(shí)例[M].北京:人民郵電出版社,2005.
[3] 郭鐵寶.由海面蒸發(fā)波導(dǎo)預(yù)報(bào)平流海霧的方法[J].海洋預(yù)報(bào),,2004,,21(4):40-45.
[4] Atmel Corporation. AT89LV52 data sheet. 2005.
[5] Atmel Corporaiton. Serial data Flash product databook.2002.
[6] 張培仁.MCS-51單片機(jī)原理與應(yīng)用[M].北京:清華大學(xué)出版社,2003.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章,、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容,、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118,;郵箱:aet@chinaaet.com,。