国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

鐵電存儲(chǔ)器與SD卡的數(shù)據(jù)傳輸方法

2010-09-25 02:58郭剛米文鵬董巍巍胡禮勇
關(guān)鍵詞:鐵電扇區(qū)存儲(chǔ)器

郭剛,米文鵬,董巍巍,胡禮勇

(第二炮兵青州士官學(xué)校,262500 青州)

引 言

FM24C256鐵電存儲(chǔ)器具有非易失性和高可靠性,且結(jié)構(gòu)簡(jiǎn)單,因此被廣泛地應(yīng)用于手持振動(dòng)信號(hào)采集儀器中,作為數(shù)據(jù)采集存儲(chǔ)器使用。當(dāng)需要將鐵電存儲(chǔ)器中的數(shù)據(jù)傳送到上位機(jī)時(shí),目前的做法大多是通過(guò)串口或者USB接口連接采集器和上位機(jī),上位機(jī)通過(guò)專(zhuān)門(mén)的軟件接收數(shù)據(jù)。這樣做需要進(jìn)行線路連接,而且數(shù)據(jù)傳輸時(shí)間長(zhǎng)、可靠性低。

SD卡(Secure Digital Memory Card)是由日本松下、東芝及美國(guó)SanDisk公司于1999年 8月共同開(kāi)發(fā)研制的,一種基于半導(dǎo)體快速閃存的新一代記憶設(shè)備。它具備體積重量小、存儲(chǔ)容量大、數(shù)據(jù)傳輸快等諸多優(yōu)點(diǎn),支持SD和SPI兩種數(shù)據(jù)讀寫(xiě)模式,很容易和具有SPI接口的單片機(jī)進(jìn)行數(shù)據(jù)交互[1]。因此,先將鐵電存儲(chǔ)器中的數(shù)據(jù)以文件形式傳輸?shù)絊D卡上,再由上位機(jī)通過(guò)讀卡器讀取SD卡中的數(shù)據(jù),逐漸成為一種廉價(jià)、便捷、高效的采集數(shù)據(jù)傳輸方案。本文介紹了一種利用ATmega64L的TWI和SPI接口,快速地實(shí)現(xiàn) FM24C256鐵電存儲(chǔ)器數(shù)據(jù)向SD卡傳輸?shù)囊环N方法。

1 系統(tǒng)硬件設(shè)計(jì)

1.1 總體設(shè)計(jì)

本系統(tǒng)采用Atmel公司AVR系列的ATmega64L單片機(jī)作為控制核心。ATmega64L為基于RISC結(jié)構(gòu)的8位低功耗CMOS微處理器,大部分指令都可以在一個(gè)時(shí)鐘周期內(nèi)完成,最高可支持16 MHz的系統(tǒng)時(shí)鐘;具有片載64 KB的在系統(tǒng)內(nèi)可編程Flash、2 KB EEPROM 、4 KB SRAM,以及53個(gè)通用I/O口線、32個(gè)通用工作寄存器和串口、SPI接口、TWI接口等豐富的外圍接口電路。[2]

FM24C256是用先進(jìn)的鐵電技術(shù)制造的256 Kb的非易失性存儲(chǔ)器。它可以以總線速度進(jìn)行寫(xiě)操作,掉電后可以保存10年,可以承受超過(guò)100億次的讀寫(xiě)操作,同時(shí)具有功耗低、可靠性高、結(jié)構(gòu)簡(jiǎn)單等諸多優(yōu)點(diǎn),特別適合用作嵌入式手持?jǐn)?shù)據(jù)采集系統(tǒng)的數(shù)據(jù)存儲(chǔ)器。

系統(tǒng)硬件結(jié)構(gòu)框圖如圖1所示,本文只研究虛線框內(nèi)的部分。

1.2 ATmega64L與鐵電的硬件接口設(shè)計(jì)

圖1 系統(tǒng)硬件結(jié)構(gòu)框圖

ATmega64L單片機(jī)內(nèi)部集成了 TWI(Two-Wire SerialInterface)接口模塊。TWI由總線接口單元、比特率發(fā)生器、地址匹配單元和控制單元等幾個(gè)子模塊組成。該總線只需兩個(gè)上拉電阻,使用時(shí)鐘線 SCL和數(shù)據(jù)線SDA就可以將128個(gè)不同的具有TWI接口的設(shè)備連接到一起。TWI接口是面向字節(jié)和基于中斷的,所有的總線事件都會(huì)產(chǎn)生一個(gè)TWI中斷。由于TWI接口是基于中斷的,因此TWI接口在字節(jié)發(fā)送和接收過(guò)程中不需要應(yīng)用程序干預(yù),而且支持主機(jī)和從機(jī)操作,數(shù)據(jù)傳輸頻率高達(dá)400 kHz[2]。

鐵電存儲(chǔ)器 FM24C256的 SCL、SDA引腳分別和ATmega64L單片機(jī)的SCL(PD0)、SDA(PD1)引腳連接,并且分別通過(guò)1個(gè)6.8 kΩ的上拉電阻連接到+5 V電源;寫(xiě)保護(hù)引腳VP則與單片機(jī)的PD4引腳連接,以控制鐵電存儲(chǔ)器的寫(xiě)保護(hù)狀態(tài)。

1.3 ATmega64L與SD卡的連接

SPI[2]接口是一種同步串行外設(shè)接口,允許CPU與各種外圍接口器件以串行方式進(jìn)行通信、交換信息。它使用4條線:串行時(shí)鐘線(SCK)、主機(jī)輸入/從機(jī)輸出線(MISO)、主機(jī)輸出/從機(jī)輸入線(MOSI)、低電平有效的使能信號(hào)線(SS)。ATmega64L自帶的SPI接口具有全雙工、3線同步數(shù)據(jù)傳輸、主機(jī)或從機(jī)操作、LSB首先發(fā)送或MSB首先發(fā)送、7種可編程的比特率、傳輸結(jié)束中斷、寫(xiě)碰撞標(biāo)志檢測(cè)、可以從閑置模式喚醒等特點(diǎn)。以ATmega64L為SPI的主設(shè)備時(shí),用戶(hù)只需編程控制SS引腳,向SPI數(shù)據(jù)寄存器寫(xiě)入數(shù)據(jù)(即啟動(dòng)SPI時(shí)鐘),傳輸結(jié)束后SPI時(shí)鐘停止,傳輸結(jié)束標(biāo)志SPIF置位。

SD 卡的 1(CS)、2(DI)、5(SCLK)、7(DO)引腳分別和ATmega64L單 片機(jī) 的 PB0(SS)、PB2(MOSI)、PB1(SCK)、PB3(MISO)引腳連接。其中,2和7引腳還分別通過(guò)一個(gè)10 kΩ的上拉電阻連接到+3.3 V電源;VDD引腳連接+3.3 V電源;3和6引腳接地;8、9引腳不連接。

2 系統(tǒng)軟件設(shè)計(jì)

2.1 FAT32文件系統(tǒng)

FAT32指的是文件分配表(File Allocation Table,FAT)采用32位二進(jìn)制數(shù)記錄管理的文件系統(tǒng)。FAT32文件系統(tǒng)將邏輯盤(pán)的空間劃分為3個(gè)部分:引導(dǎo)區(qū)(BOOT)、文件分配表區(qū)(FAT)和數(shù)據(jù)區(qū)(DATA)。引導(dǎo)區(qū)和文件分配表區(qū)又合稱(chēng)為“系統(tǒng)區(qū)”。

引導(dǎo)區(qū)(BOOT區(qū))從第1個(gè)扇區(qū)(邏輯扇區(qū)0)開(kāi)始,使用3個(gè)扇區(qū),之后還留有若干個(gè)保留扇區(qū),共占用32個(gè)扇區(qū)。其中,第1個(gè)扇區(qū)中的BPB參數(shù)塊記錄分區(qū)的起始扇區(qū)、結(jié)束扇區(qū)、文件存儲(chǔ)格式、硬盤(pán)介質(zhì)描述符、根目錄大小、FAT個(gè)數(shù)、分配單元大小等重要參數(shù)。

文件分配表(FAT)從邏輯扇區(qū)1開(kāi)始,是文件管理系統(tǒng)用來(lái)給每個(gè)文件分配磁盤(pán)物理空間的表格。它由表標(biāo)識(shí)和簇映射的集合組成,一個(gè)完全相同的鏡像副本連續(xù)存儲(chǔ)在主FAT表后。文件分配表的作用就是跟蹤文件,具體描述整個(gè)磁盤(pán)分區(qū)中的每個(gè)存儲(chǔ)單元(簇)的使用情況、文件數(shù)據(jù)的簇存儲(chǔ)情況(連續(xù)或碎片),以及樹(shù)型目錄結(jié)構(gòu)。文件分配表實(shí)際上就是一個(gè)卷中所有簇使用情況的映射表,每個(gè)文件、目錄都同表中的若干項(xiàng)具有對(duì)應(yīng)聯(lián)系,并在目錄中進(jìn)行索引。

FAT之后的根目錄區(qū)用來(lái)記錄整個(gè)磁盤(pán)上所有文件的有用信息,其中每一個(gè)文件占32字節(jié),包括文件名、文件屬性、文件的修改時(shí)間和文件的長(zhǎng)度等[3]。由于FAT32文件系統(tǒng)對(duì)文件的概念進(jìn)行了擴(kuò)展,根目錄也看作是文件,根目錄區(qū)自然屬于數(shù)據(jù)區(qū)的一部分,并位于數(shù)據(jù)區(qū)之首。根目錄區(qū)后面的其他數(shù)據(jù)區(qū),用來(lái)存儲(chǔ)組成各個(gè)文件的數(shù)據(jù)信息。

2.2 ATmega64L對(duì)鐵電存儲(chǔ)器和SD卡的讀寫(xiě)

ATmega64L通過(guò)片內(nèi)的 TWI和SPI接口分別對(duì)鐵電存儲(chǔ)器和SD卡進(jìn)行基本讀寫(xiě)操作的方法,在許多文章[3-5]中已有詳實(shí)介紹。這里僅給出自行編寫(xiě)的相應(yīng)功能函數(shù)。其中,SLA是鐵電地址,suba是子地址,Wdata是要寫(xiě)入的數(shù)據(jù),sector是扇區(qū)地址,buffer是數(shù)據(jù)緩存數(shù)組。

2.3 鐵電存儲(chǔ)器與SD卡的數(shù)據(jù)傳輸

2.3.1 SD卡初始化

選擇1個(gè)目前非常普及的2 GB SD卡,通過(guò)USB讀卡器連接上位機(jī);按FAT32格式對(duì)其進(jìn)行格式化,并把預(yù)先建立的每個(gè)64 KB的標(biāo)準(zhǔn)文本文件1.txt、2.txt、3.txt和4.txt依次復(fù)制到SD卡上。通過(guò)磁盤(pán)軟件WinHex查看SD卡中的信息,如圖2所示。

圖2明確顯示,初始化完成后的SD卡每個(gè)扇區(qū)包含 512字節(jié),每個(gè)簇包含4 096字節(jié)(即每個(gè)簇包含 8個(gè)扇區(qū)),整張SD卡包含490 557個(gè)簇;4個(gè).txt文件的容量大小都是64 KB,在SD卡上的起始扇區(qū)號(hào)分別為7712、7840、7968、8096;每個(gè)文件占據(jù) 16 個(gè)連續(xù)的簇,即占用128個(gè)連續(xù)的扇區(qū)。

圖2 扇區(qū)和簇容量關(guān)系圖

2.3.2 數(shù)據(jù)傳輸?shù)膶?shí)現(xiàn)

ATmega64L單片機(jī)采集到的每個(gè)電壓信號(hào)經(jīng)10位A/D轉(zhuǎn)換后存放在鐵電中,占用2個(gè)連續(xù)的字節(jié),而 SD卡數(shù)據(jù)區(qū)的1個(gè)字節(jié)對(duì)應(yīng)著文本文件中的1個(gè)字符。它們的轉(zhuǎn)化關(guān)系如圖3所示。

圖3 鐵電—SD卡數(shù)據(jù)存儲(chǔ)轉(zhuǎn)化關(guān)系圖

利用SD卡初始化后的文件結(jié)構(gòu)和ATmega64L對(duì)鐵電存儲(chǔ)器/SD卡的底層讀寫(xiě)函數(shù),每次從鐵電存儲(chǔ)器中讀出連續(xù)的256字節(jié)采樣數(shù)據(jù)(128個(gè)采樣點(diǎn)數(shù)據(jù)),轉(zhuǎn)化成512字節(jié)數(shù)據(jù)存放在緩沖數(shù)組中,然后再把這些數(shù)據(jù)寫(xiě)入SD卡對(duì)應(yīng)物理地址的一個(gè)扇區(qū)。按照順序重復(fù)上述過(guò)程,便可輕松實(shí)現(xiàn)鐵電存儲(chǔ)器中的數(shù)據(jù)向SD卡的傳輸。本文使用一個(gè)函數(shù)來(lái)實(shí)現(xiàn)4塊鐵電存儲(chǔ)器的數(shù)據(jù)向4個(gè)文本文件的傳輸。

結(jié) 語(yǔ)

本文在分析FAT32文件格式的基礎(chǔ)上,利用AT-mega64L單片機(jī)對(duì)鐵電存儲(chǔ)器和SD卡物理地址的底層讀寫(xiě)函數(shù),實(shí)現(xiàn)了鐵電存儲(chǔ)器中二進(jìn)制數(shù)據(jù)到SD卡上的傳輸,并保存為文本文件,為上位機(jī)對(duì)采集數(shù)據(jù)的進(jìn)一步分析提供了便利。利用Windows操作系統(tǒng)完成了SD卡的文件系統(tǒng)的構(gòu)建,單片機(jī)只需完成二進(jìn)制數(shù)據(jù)的搬運(yùn),而不必進(jìn)行復(fù)雜的FAT32文件系統(tǒng)的操作,從而提高了操作速度和可靠性。

經(jīng)過(guò)實(shí)驗(yàn)驗(yàn)證,這種操作方法只需17 s便可把4塊鐵電存儲(chǔ)器中的 128 KB(64K個(gè)采樣數(shù)據(jù))的數(shù)據(jù)傳輸?shù)絊D卡上,傳輸結(jié)果準(zhǔn)確無(wú)誤。只要不格式化SD卡或者更改.txt文件,這張SD卡上的剩余空間完全可以像普通SD卡一樣正常使用。這為小型嵌入式手持?jǐn)?shù)據(jù)采集系統(tǒng)的數(shù)據(jù)導(dǎo)出,提供了一種簡(jiǎn)單且高效的方法。

[1]SanDisk Corporation.SanDisk Secure Digital Card Product Manual,2003-12:1,9.

[2]Atmel Corporation.8-bit AVR Microcontroller ATmega64/64L M anual,2008-05:1-6,163-170,198-226.

[3]李文明,張濤,鄭麗娜.AVR單片機(jī)讀寫(xiě)SD卡技術(shù)[J].電子測(cè)量與儀器學(xué)報(bào),2009(增刊):605-608.

[4]SD Group.SD Memory Card Specifications Physical Layer Specification.Version 1.0,2000-03.

[5]張洪濤,莫文承,李兵兵.基于SPI協(xié)議的SD卡讀寫(xiě)機(jī)制與實(shí)現(xiàn)方法[J].電子元器件應(yīng)用,2008,10(3):42-43,47.

猜你喜歡
鐵電扇區(qū)存儲(chǔ)器
硅片上集成高介電調(diào)諧率的柱狀納米晶BaTiO3鐵電薄膜
分階段調(diào)整增加扇區(qū)通行能力策略
靜態(tài)隨機(jī)存儲(chǔ)器在軌自檢算法
鐵電材料中發(fā)現(xiàn)周期性半子晶格
U盤(pán)故障排除經(jīng)驗(yàn)談
鐵電隧道結(jié)界面效應(yīng)與界面調(diào)控
基于貝葉斯估計(jì)的短時(shí)空域扇區(qū)交通流量預(yù)測(cè)
鐵電-介電復(fù)合陶瓷的介電響應(yīng)
重建分區(qū)表與FAT32_DBR研究與實(shí)現(xiàn)
存儲(chǔ)器——安格爾(墨西哥)▲
安多县| 桐乡市| 南江县| 子洲县| 康平县| 阿荣旗| 凯里市| 南通市| 咸阳市| 临海市| 深水埗区| 班戈县| 广宗县| 东安县| 大化| 乌拉特中旗| 疏附县| 启东市| 珲春市| 恩施市| 丰城市| 南平市| 卫辉市| 洞头县| 黄骅市| 平安县| 体育| 兴业县| 永州市| 根河市| 凭祥市| 莱阳市| 大兴区| 泸定县| 京山县| 旬邑县| 绥芬河市| 平昌县| 洛扎县| 乌鲁木齐市| 琼结县|