MMC在便攜式數據采集系統中的應用

發(fā)布時(shí)間:2010-12-6 12:28    發(fā)布者:techshare
關(guān)鍵詞: MMC , 便攜式 , 數據采集
介紹了多媒體卡MMC的工作原理、MMC的串行外設接口協(xié)議模式及在大容量便攜式數據采集系統中的應用,最后給出了PIC16F73B微處理器與MMC的接口設計。

目前比較常見(jiàn)的數據采集及處理系統是功能完備的微機系統。這種系統雖然能較快地分析和處理監測到的信號,但往往只能在固定的位置使用,在野外和移動(dòng)的情況下則顯得十分笨重和不便。特別是野外數據采集作業(yè),往往需要長(cháng)時(shí)間地采集、記錄海量數據,需要體積小、重量輕、存儲容量大的數據采集及處理儀器。近幾年,隨著(zhù)非易失存儲技術(shù)的發(fā)展以及處理器(如嵌入式系統和DSP)性能的不斷提高,使信號采集存儲系統的耗電量和體積不斷減小,滿(mǎn)足了便攜式的要求,但其讀寫(xiě)速度不及MMC。多媒體卡MMC(Multimedia Card)是由美國SANDISK公司和德國西門(mén)子公司在1997年共同開(kāi)發(fā)研制的一種多功能、體積小、容量大的快閃存儲卡。MMC的發(fā)展目標主要是針對移動(dòng)電話(huà)、數碼相機、數碼攝像機、MP3音樂(lè )、PDA、電子書(shū)、玩具等產(chǎn)品。

MMC在一定程度上改善了CF卡讀寫(xiě)速度較慢的缺點(diǎn),并且其體積輕巧、抗沖擊性強、可反復讀寫(xiě)30萬(wàn)次左右。MMC4.0的標準提供了更寬的數據帶寬和更快的傳輸速率,并支持雙電壓操作模式。MMC還具備存儲區糾錯能力和低功耗特性,如果5ms內沒(méi)接收到系統控制命令字,MMC則會(huì )自動(dòng)轉入休眠狀態(tài),同時(shí)它還支持熱拔插操作。由此可見(jiàn),將MMC應用于大容量便攜式數據采集系統是一種很好的選擇。

1 MMC的結構及工作原理

1.1 MMC的管腳及功能

MMC常被設計為一種低成本的數據平臺和通訊介質(zhì),其存儲容量可達2GB。MMC的接口設計非常簡(jiǎn)單,如圖1所示。它采用7針接口,低成本的串行總線(xiàn),時(shí)鐘頻率可達20MHz。MMC的操作電壓為2.7~3.6V,讀/寫(xiě)電流也只有23mA和27mA。MMC最小數據傳送單位是塊,塊的大小缺省值定義為512B。MMC的讀寫(xiě)模式包括流式模式、多塊模式和單塊模式等。




MMC讀寫(xiě)接口可在MMC協(xié)議和SPI兩種通信協(xié)議下工作。MMC協(xié)議是MMCA協(xié)會(huì )開(kāi)發(fā)的高性能三線(xiàn)制通信協(xié)議,可尋址64 000張MMC多媒體卡,支持順序讀/寫(xiě)操作、單/多數據塊讀/寫(xiě)操作。表1是MMC使用SPI協(xié)議時(shí)的管腳定義。





1.2 MMC的內部邏輯結構及功能

MMC的內部邏輯結構可分為四部分:SPI/MMC通信協(xié)議接口、單芯片控制器、數據閃存模塊、控制線(xiàn)和數據線(xiàn)。SPI/MMC接口實(shí)現與主控制器的通信,單芯片控制器完成接口協(xié)議、數據存儲檢索、糾錯碼算法、故障判斷處理、電源管理和時(shí)鐘控制等功能。數據閃存模塊實(shí)現整個(gè)存儲區空間的單字節訪(fǎng)問(wèn),控制線(xiàn)和數據線(xiàn)實(shí)現單芯片控制器與數據閃存模塊的訪(fǎng)問(wèn)及數據傳輸。

1.3 SPI/MMC通信協(xié)議

MMC協(xié)議是MMC默認的通信協(xié)議,SPI協(xié)議作為MMC協(xié)議的一個(gè)子集,是MMC協(xié)議的可選協(xié)議。其工作效率雖然不及MMC協(xié)議強大,但是SPI協(xié)議簡(jiǎn)單易用、兼容性好、便于和單片機連接使用,且可以把設計費用減到最小。SPI協(xié)議主要應用于MMC需要數量不大并且數據傳輸率要求不太高的系統。

MMC通電后,會(huì )以默認方式進(jìn)入MMC協(xié)議模式;如果要轉入SPI協(xié)議模式,則需要進(jìn)行相應的協(xié)議模式切換;如果要從SPI協(xié)議模式轉入MMC協(xié)議模式,只要切斷電源后重新通電,系統即能以默認方式進(jìn)入。本設計采用SPI通信協(xié)議模式。

1.4 MMC的文件系統

MMC的文件格式定義并不包括在系統規范內。為了提高資料的互換性,MMC定義了三種基本的文件系統,其中除了不帶分區的DOS-FAT文件系統和類(lèi)似硬盤(pán)帶分區的文件系統外,開(kāi)發(fā)者還可以定義自己獨特的文件系統。這些定義使得MMC同樣具有廣泛的操作系統平臺(如DOS系統、Windows系統及Linux系統等)支持。

2 MMC的SPI協(xié)議

2.1 SPI接口及通信模式

SPI接口是一種通用同步串行接口總線(xiàn),用來(lái)同外部設備進(jìn)行通信,字長(cháng)為8位。SPI接口利用CLK、DataIn、 DataOut三線(xiàn)進(jìn)行數據的讀寫(xiě)操作。其中,CLK為時(shí)鐘信號,由外部控制器提供;DataIn和DataOut為數據輸入和輸出線(xiàn)。是MMC的片選信號線(xiàn),在整個(gè)SPI操作過(guò)程中,必須始終保持低電平有效。

2.2 MMC命令的CRC校驗

為了確保數據存儲的準確性,MMC在數據處理時(shí)均采用CRC校驗字。MMC的CRC校驗分為CRC7和CRC16兩種。CRC7幾乎適合于MMC的所有命令(只是應答信號格式為R3的除外),CRC7的算法表達式為:G(x)=x7+x3+1。而CRC16用于數據塊傳輸模式的保護處理,它的算法表達式為:G(x)=x16+x12+x5+1。

2.3 MMC命令的應答信號格式

所有MMC的命令字長(cháng)度均為6個(gè)字節,傳輸從高位開(kāi)始,且包含一個(gè)CRC校驗字。命令字的格式如表2所示。




對于MMC的命令,MMC有多種應答信號格式,且應答信號的傳輸方向也是從高位開(kāi)始。在SPI協(xié)議模式下,有5種應答信號格式:即R1、R2、R3、Busy和R1b。

通常,MMC接收到每個(gè)命令字后,都會(huì )發(fā)送一個(gè)格式為R1的應答信號(卡狀態(tài)查詢(xún)命令字CMD13除外),此應答信號為1字節,最高位為0,其他位為錯誤標志位,如表3所示。




Busy格式應答信號的長(cháng)度為多個(gè)字節。各位均為0時(shí),表示MMC正忙;如果存在非0位,表明MMC已經(jīng)準備好接收下一個(gè)命令。

R2格式應答信號的長(cháng)度為2個(gè)字節,用于答復卡狀態(tài)查詢(xún)命令字CMD13,首字節同R1,第2字節表示的是錯誤類(lèi)型,如表4所示。




R3格式應答信號的長(cháng)度為5個(gè)字節,用于答復卡內OCR寄存器,R3的首字節同R1,其余4字節為OCR寄存器的內容。

R1b格式應答信號包括兩部分:R1格式部分和Busy格式可選附加部分。

3 MMC的命令

MMC的命令字共分為10個(gè)命令組,SPI協(xié)議模式支持其中的6個(gè)命令組,可以實(shí)現MMC系統的基本設定、數據塊讀、數據塊寫(xiě)、擦除、寫(xiě)保護和MMC鎖定等功能。以堆棧的檢查管理命令CIM_CHECK_STACK為例,它是命令組中基本設定命令之一。它主要通過(guò)命令SEND_CSD(CMD9)讀取MMC的信息,然后與進(jìn)入系統堆棧表的接口卡的信息進(jìn)行對比。如果不是上一張卡,再判定是否超時(shí)和超出卡的限定數量,從而確定該卡是否已進(jìn)入系統。堆棧的檢查管理命令流程圖如圖2所示。





4 MMC與嵌入式系統芯片組成的大容量便攜式數據采集器的接口

4.1 MMC與嵌入式芯片的硬件接口設計

圖3是MMC與嵌入式系統芯片PIC16F73B的硬件接口。圖中,FM24CL64為緩存芯片,采用Port C的硬件SPI接口對MMC卡進(jìn)行讀寫(xiě)操作。







4.2 MMC與嵌入式芯片的軟件接口設計

MMC與嵌入式芯片接口的部分軟件流程如圖4所示。





在訪(fǎng)問(wèn)MMC存儲單元前,需要首先設定訪(fǎng)問(wèn)塊的長(cháng)度,系統默認訪(fǎng)問(wèn)塊的長(cháng)度為512字節,通過(guò)寫(xiě)緩存芯片FM24CL64完成。當寫(xiě)入的數據達到512個(gè)字節時(shí)即轉入MMC主存,故讀寫(xiě)長(cháng)度不需要再重新設定。MMC格式化為FAT文件系統結構后,數據以文件的形式保存,這樣可方便上位機對MMC主存的讀取。以下是嵌入式系統對MMC卡寫(xiě)文件的部分程序代碼:

Void file_write(DIR_tag *file_tag,char*){

U16 j.offset=file_tag.StartCluster*2;

Mmc_read_block(&sdc,fat1_addr+offset/512,mmc-buffer);

Mmc_buffer[offset%512]=0xff;

Mmc_buffer[offset%512+1]=0xff;

Mmc_write_block (&sdc,fat1_addr+offset/512,mmc_buffer);

Mmc_write_block (&sdc,fat2_addr+offset/512,mmc_buffer);

For (j=0;jMmc_write_block(&sdc,519+(file_tag.StartCluster-2),mmc_buffer);

}

采用嵌入式系統芯片PIC16F73B與MMC搭建信號采集的硬件平臺,僅使用很少的外部邏輯電路。整個(gè)系統可以采用3.3V單一低電壓供電,供電電路非常簡(jiǎn)單。在系統軟件實(shí)現上,可以采用交替式雙緩存機制,將采集到的數據先存入數據緩沖區(圖3中的FM24CL64)中。當數據緩沖區寫(xiě)滿(mǎn)時(shí)發(fā)出溢出中斷,再對MMC進(jìn)行突發(fā)式寫(xiě)操作。當寫(xiě)操作完畢后可以發(fā)送命令,使MMC立即進(jìn)入休眠狀態(tài),將功耗降至最低。這樣在數據采集系統工作的大部分時(shí)間內,MMC處于休眠狀態(tài),工作電流很低。該系統適于野外(如地質(zhì)、石油等部門(mén))的數據采集與存儲工作,數據文件可以在Windows環(huán)境下用讀卡器讀取,方便了數據的進(jìn)一步分析和處理,且具有低功耗、攜帶方便、性能價(jià)格比高等特點(diǎn)。
本文地址:http://selenalain.com/thread-44248-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页