《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 業(yè)界動(dòng)態(tài) > MMC在便攜式數(shù)據(jù)采集系統(tǒng)中的應(yīng)用

MMC在便攜式數(shù)據(jù)采集系統(tǒng)中的應(yīng)用

《電子技術(shù)應(yīng)用》2007年第1期
2007-09-24
作者:洪家平

摘 要: 介紹了多媒體卡MMC的工作原理,、MMC的串行外設(shè)接口協(xié)議模式及在大容量" title="大容量">大容量便攜式數(shù)據(jù)采集" title="數(shù)據(jù)采集">數(shù)據(jù)采集系統(tǒng)中的應(yīng)用,,最后給出了PIC16F73B微處理器與MMC的接口設(shè)計(jì),。

關(guān)鍵詞: 嵌入式系統(tǒng) 數(shù)據(jù)采集 串行外設(shè)協(xié)議(SPI) MMC接口

?

目前比較常見的數(shù)據(jù)采集及處理系統(tǒng)是功能完備的微機(jī)系統(tǒng),。這種系統(tǒng)雖然能較快地分析和處理監(jiān)測(cè)到的信號(hào),但往往只能在固定的位置使用,,在野外和移動(dòng)的情況下則顯得十分笨重和不便,。特別是野外數(shù)據(jù)采集作業(yè),往往需要長(zhǎng)時(shí)間地采集,、記錄海量數(shù)據(jù),,需要體積小、重量輕,、存儲(chǔ)容量大的數(shù)據(jù)采集及處理儀器,。近幾年,隨著非易失存儲(chǔ)技術(shù)的發(fā)展以及處理器(如嵌入式系統(tǒng)和DSP)性能的不斷提高,,使信號(hào)采集存儲(chǔ)系統(tǒng)的耗電量和體積不斷減小,,滿足了便攜式的要求,但其讀寫速度不及MMC,。多媒體卡MMC(Multimedia Card)是由美國(guó)SANDISK公司和德國(guó)西門子公司在1997年共同開發(fā)研制的一種多功能,、體積小、容量大的快閃存儲(chǔ)卡,。MMC的發(fā)展目標(biāo)主要是針對(duì)移動(dòng)電話,、數(shù)碼相機(jī)、數(shù)碼攝像機(jī),、MP3音樂、PDA,、電子書,、玩具等產(chǎn)品,。
MMC在一定程度上改善了CF卡讀寫速度較慢的缺點(diǎn),并且其體積輕巧,、抗沖擊性強(qiáng),、可反復(fù)讀寫30萬次左右。MMC4.0的標(biāo)準(zhǔn)提供了更寬的數(shù)據(jù)帶寬和更快的傳輸速率,,并支持雙電壓操作模式,。MMC還具備存儲(chǔ)區(qū)糾錯(cuò)能力和低功耗特性,如果5ms內(nèi)沒接收到系統(tǒng)控制命令字,,MMC則會(huì)自動(dòng)轉(zhuǎn)入休眠狀態(tài),,同時(shí)它還支持熱拔插操作。由此可見,,將MMC應(yīng)用于大容量便攜式數(shù)據(jù)采集系統(tǒng)" title="數(shù)據(jù)采集系統(tǒng)">數(shù)據(jù)采集系統(tǒng)是一種很好的選擇,。
1 MMC的結(jié)構(gòu)及工作原理[1]
1.1 MMC的管腳及功能

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


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

?


1.2 MMC的內(nèi)部邏輯結(jié)構(gòu)及功能
MMC的內(nèi)部邏輯結(jié)構(gòu)可分為四部分:SPI/MMC通信協(xié)議接口,、單芯片控制器,、數(shù)據(jù)閃存模塊、控制線和數(shù)據(jù)線,。SPI/MMC接口實(shí)現(xiàn)與主控制器的通信,,單芯片控制器完成接口協(xié)議、數(shù)據(jù)存儲(chǔ)檢索,、糾錯(cuò)碼算法,、故障判斷處理,、電源管理和時(shí)鐘控制等功能。數(shù)據(jù)閃存模塊實(shí)現(xiàn)整個(gè)存儲(chǔ)區(qū)空間的單字節(jié)訪問,,控制線和數(shù)據(jù)線實(shí)現(xiàn)單芯片控制器與數(shù)據(jù)閃存模塊的訪問及數(shù)據(jù)傳輸,。
1.3 SPI/MMC通信協(xié)議
MMC協(xié)議是MMC默認(rèn)的通信協(xié)議,SPI協(xié)議作為MMC協(xié)議的一個(gè)子集,,是MMC協(xié)議的可選協(xié)議,。其工作效率雖然不及MMC協(xié)議強(qiáng)大,但是SPI協(xié)議簡(jiǎn)單易用,、兼容性好,、便于和單片機(jī)連接使用,且可以把設(shè)計(jì)費(fèi)用減到最小,。SPI協(xié)議主要應(yīng)用于MMC需要數(shù)量不大并且數(shù)據(jù)傳輸率要求不太高的系統(tǒng),。
MMC通電后,會(huì)以默認(rèn)方式進(jìn)入MMC協(xié)議模式,;如果要轉(zhuǎn)入SPI協(xié)議模式,,則需要進(jìn)行相應(yīng)的協(xié)議模式切換;如果要從SPI協(xié)議模式轉(zhuǎn)入MMC協(xié)議模式,,只要切斷電源后重新通電,,系統(tǒng)即能以默認(rèn)方式進(jìn)入。本設(shè)計(jì)采用SPI通信協(xié)議模式,。
1.4 MMC的文件系統(tǒng)
MMC的文件格式定義并不包括在系統(tǒng)規(guī)范內(nèi),。為了提高資料的互換性,MMC定義了三種基本的文件系統(tǒng)" title="文件系統(tǒng)">文件系統(tǒng),,其中除了不帶分區(qū)的DOS-FAT文件系統(tǒng)和類似硬盤帶分區(qū)的文件系統(tǒng)外,,開發(fā)者還可以定義自己獨(dú)特的文件系統(tǒng)。這些定義使得MMC同樣具有廣泛的操作系統(tǒng)平臺(tái)(如DOS系統(tǒng),、Windows系統(tǒng)及Linux系統(tǒng)等)支持,。
2 MMC的SPI協(xié)議
2.1 SPI接口及通信模式
SPI接口是一種通用同步串行接口總線,用來同外部設(shè)備進(jìn)行通信,,字長(zhǎng)為8位,。SPI接口利用CLK、DataIn,、 DataOut三線進(jìn)行數(shù)據(jù)的讀寫操作,。其中,CLK為時(shí)鐘信號(hào),,由外部控制器提供,;DataIn和DataOut為數(shù)據(jù)輸入和輸出線。是MMC的片選信號(hào)線,在整個(gè)SPI操作過程中,,必須始終保持低電平有效,。
2.2 MMC命令的CRC校驗(yàn)
為了確保數(shù)據(jù)存儲(chǔ)的準(zhǔn)確性,,MMC在數(shù)據(jù)處理時(shí)均采用CRC校驗(yàn)字,。MMC的CRC校驗(yàn)分為CRC7和CRC16兩種。CRC7幾乎適合于MMC的所有命令(只是應(yīng)答信號(hào)格式為R3的除外),,CRC7的算法表達(dá)式為:G(x)=x7+x3+1,。而CRC16用于數(shù)據(jù)塊傳輸模式的保護(hù)處理,它的算法表達(dá)式為:G(x)=x16+x12+x5+1,。
2.3 MMC命令的應(yīng)答信號(hào)格式
所有MMC的命令字長(zhǎng)度均為6個(gè)字節(jié),,傳輸從高位開始,且包含一個(gè)CRC校驗(yàn)字,。命令字的格式如表2所示,。


對(duì)于MMC的命令,MMC有多種應(yīng)答信號(hào)格式,,且應(yīng)答信號(hào)的傳輸方向也是從高位開始,。在SPI協(xié)議模式下,有5種應(yīng)答信號(hào)格式:即R1,、R2,、R3、Busy和R1b,。
通常,,MMC接收到每個(gè)命令字后,都會(huì)發(fā)送一個(gè)格式為R1的應(yīng)答信號(hào)(卡狀態(tài)查詢命令字CMD13除外),,此應(yīng)答信號(hào)為1字節(jié),,最高位為0,其他位為錯(cuò)誤標(biāo)志位,,如表3所示,。

?


Busy格式應(yīng)答信號(hào)的長(zhǎng)度為多個(gè)字節(jié)。各位均為0時(shí),,表示MMC正忙,;如果存在非0位,表明MMC已經(jīng)準(zhǔn)備好接收下一個(gè)命令,。
R2格式應(yīng)答信號(hào)的長(zhǎng)度為2個(gè)字節(jié),,用于答復(fù)卡狀態(tài)查詢命令字CMD13,首字節(jié)同R1,,第2字節(jié)表示的是錯(cuò)誤類型,,如表4所示。

?


R3格式應(yīng)答信號(hào)的長(zhǎng)度為5個(gè)字節(jié),用于答復(fù)卡內(nèi)OCR寄存器,,R3的首字節(jié)同R1,,其余4字節(jié)為OCR寄存器的內(nèi)容。
R1b格式應(yīng)答信號(hào)包括兩部分:R1格式部分和Busy格式可選附加部分,。
3 MMC的命令
MMC的命令字共分為10個(gè)命令組,,SPI協(xié)議模式支持其中的6個(gè)命令組,可以實(shí)現(xiàn)MMC系統(tǒng)的基本設(shè)定,、數(shù)據(jù)塊讀,、數(shù)據(jù)塊寫、擦除,、寫保護(hù)和MMC鎖定等功能,。以堆棧的檢查管理命令CIM_CHECK_STACK為例,它是命令組中基本設(shè)定命令之一,。它主要通過命令SEND_CSD(CMD9)讀取MMC的信息,,然后與進(jìn)入系統(tǒng)堆棧表的接口卡的信息進(jìn)行對(duì)比。如果不是上一張卡,,再判定是否超時(shí)和超出卡的限定數(shù)量,,從而確定該卡是否已進(jìn)入系統(tǒng)。堆棧的檢查管理命令流程圖如圖2所示,。


4 MMC與嵌入式系統(tǒng)芯片組成的大容量便攜式數(shù)據(jù)采集器的接口
4.1 MMC與嵌入式芯片的硬件接口設(shè)計(jì)

圖3是MMC與嵌入式系統(tǒng)芯片PIC16F73B的硬件接口,。圖中,F(xiàn)M24CL64為緩存芯片,,采用Port C的硬件SPI接口對(duì)MMC卡進(jìn)行讀寫操作[2][3],。

?


4.2 MMC與嵌入式芯片的軟件接口設(shè)計(jì)
MMC與嵌入式芯片接口的部分軟件流程如圖4所示。


在訪問MMC存儲(chǔ)單元前,,需要首先設(shè)定訪問塊的長(zhǎng)度,,系統(tǒng)默認(rèn)訪問塊的長(zhǎng)度為512字節(jié),通過寫緩存芯片F(xiàn)M24CL64完成,。當(dāng)寫入的數(shù)據(jù)達(dá)到512個(gè)字節(jié)時(shí)即轉(zhuǎn)入MMC主存,,故讀寫長(zhǎng)度不需要再重新設(shè)定。MMC格式化為FAT文件系統(tǒng)結(jié)構(gòu)后,,數(shù)據(jù)以文件的形式保存,,這樣可方便上位機(jī)對(duì)MMC主存的讀取。以下是嵌入式系統(tǒng)對(duì)MMC卡寫文件的部分程序代碼:
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),;
}
采用嵌入式系統(tǒng)芯片PIC16F73B與MMC搭建信號(hào)采集的硬件平臺(tái),,僅使用很少的外部邏輯電路。整個(gè)系統(tǒng)可以采用3.3V單一低電壓供電,,供電電路非常簡(jiǎn)單,。在系統(tǒng)軟件實(shí)現(xiàn)上,可以采用交替式雙緩存機(jī)制,,將采集到的數(shù)據(jù)先存入數(shù)據(jù)緩沖區(qū)(圖3中的FM24CL64)中,。當(dāng)數(shù)據(jù)緩沖區(qū)寫滿時(shí)發(fā)出溢出中斷,再對(duì)MMC進(jìn)行突發(fā)式寫操作,。當(dāng)寫操作完畢后可以發(fā)送命令,,使MMC立即進(jìn)入休眠狀態(tài),將功耗降至最低,。這樣在數(shù)據(jù)采集系統(tǒng)工作的大部分時(shí)間內(nèi),,MMC處于休眠狀態(tài),工作電流很低,。該系統(tǒng)適于野外(如地質(zhì),、石油等部門)的數(shù)據(jù)采集與存儲(chǔ)工作,數(shù)據(jù)文件可以在Windows環(huán)境下用讀卡器讀取,,方便了數(shù)據(jù)的進(jìn)一步分析和處理,,且具有低功耗、攜帶方便,、性能價(jià)格比高等特點(diǎn),。
參考文獻(xiàn)
[1] Multimedia card product manual rev 5.1[S].SANDISK?CORPORATION,2002.
[2] 孫方,,顏國(guó)正,,王文興.Multimedia Card及其與單片機(jī)接口[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2004,(6).
[3] 李學(xué)海.PIC單片機(jī)實(shí)用教程[M].北京:北京航空航天大學(xué)出版社,,2002.
[4] 張凱,,姜熙君,陳 磊等.MMC的文件系統(tǒng)及其實(shí)現(xiàn)方法[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,,2006,,(5).

本站內(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;郵箱:[email protected],。