www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]目前比較常見的數(shù)據(jù)采集及處理系統(tǒng)是功能完備的微機(jī)系統(tǒng)。這種系統(tǒng)雖然能較快地分析和處理監(jiān)測到的信號,但往往只能在固定的位置使用,在野外和移動的情況下則顯得十分笨重和不便。特別是野外數(shù)據(jù)采集作業(yè),往往需要

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

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

1 MMC的結(jié)構(gòu)及工作原理[1]

1.1 MMC的管腳及功能

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

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

1.2 MMC的內(nèi)部邏輯結(jié)構(gòu)及功能

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

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

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

MMC通電后,會以默認(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è)計采用SPI通信協(xié)議模式。

1.4 MMC的文件系統(tǒng)

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

2 MMC的SPI協(xié)議

2.1 SPI接口及通信模式

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

2.2 MMC命令的CRC校驗

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

2.3 MMC命令的應(yīng)答信號格式

所有MMC的命令字長度均為6個字節(jié),傳輸從高位開始,且包含一個CRC校驗字。命令字的格式如表2所示。

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

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

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

R2格式應(yīng)答信號的長度為2個字節(jié),用于答復(fù)卡狀態(tài)查詢命令字CMD13,首字節(jié)同R1,第2字節(jié)表示的是錯誤類型,如表4所示。

R3格式應(yīng)答信號的長度為5個字節(jié),用于答復(fù)卡內(nèi)OCR寄存器,R3的首字節(jié)同R1,其余4字節(jié)為OCR寄存器的內(nèi)容。

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

3 MMC的命令

MMC 的命令字共分為10個命令組,SPI協(xié)議模式支持其中的6個命令組,可以實現(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)行對比。如果不是上一張卡,再判定是否超時和超出卡的限定數(shù)量,從而確定該卡是否已進(jìn)入系統(tǒng)。堆棧的檢查管理命令流程圖如圖2所示。

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

4.1 MMC與嵌入式芯片的硬件接口設(shè)計

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

4.2 MMC與嵌入式芯片的軟件接口設(shè)計

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

在訪問MMC存儲單元前,需要首先設(shè)定訪問塊的長度,系統(tǒng)默認(rèn)訪問塊的長度為 512字節(jié),通過寫緩存芯片F(xiàn)M24CL64完成。當(dāng)寫入的數(shù)據(jù)達(dá)到512個字節(jié)時即轉(zhuǎn)入MMC主存,故讀寫長度不需要再重新設(shè)定。MMC格式化為FAT 文件系統(tǒng)結(jié)構(gòu)后,數(shù)據(jù)以文件的形式保存,這樣可方便上位機(jī)對MMC主存的讀取。以下是嵌入式系統(tǒng)對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搭建信號采集的硬件平臺,僅使用很少的外部邏輯電路。整個系統(tǒng)可以采用3.3V單一低電壓供電,供電電路非常簡單。在系統(tǒng)軟件實現(xiàn)上,可以采用交替式雙緩存機(jī)制,將采集到的數(shù)據(jù)先存入數(shù)據(jù)緩沖區(qū)(圖3中的FM24CL64)中。當(dāng)數(shù)據(jù)緩沖區(qū)寫滿時發(fā)出溢出中斷,再對MMC進(jìn)行突發(fā)式寫操作。當(dāng)寫操作完畢后可以發(fā)送命令,使MMC立即進(jìn)入休眠狀態(tài),將功耗降至最低。這樣在數(shù)據(jù)采集系統(tǒng)工作的大部分時間內(nèi),MMC處于休眠狀態(tài),工作電流很低。該系統(tǒng)適于野外(如地質(zhì)、石油等部門)的數(shù)據(jù)采集與存儲工作,數(shù)據(jù)文件可以在Windows環(huán)境下用讀卡器讀取,方便了數(shù)據(jù)的進(jìn)一步分析和處理,且具有低功耗、攜帶方便、性能價格比高等特點。

參考文獻(xiàn)

[1] Multimedia card product manual rev 5.1[S].SANDISK CORPORATION,2002.

[2] 孫方,顏國正,王文興。Multimedia Card及其與單片機(jī)接口[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2004,(6)。

[3] 李學(xué)海。PIC單片機(jī)實用教程[M].北京:北京航空航天大學(xué)出版社,2002.

[4] 張凱,姜熙君,陳 磊等。MMC的文件系統(tǒng)及其實現(xiàn)方法[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2006,(5)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

在工業(yè)物聯(lián)網(wǎng)設(shè)備部署中,Modbus通信故障是導(dǎo)致系統(tǒng)停機(jī)的首要原因之一。據(jù)統(tǒng)計,超過60%的現(xiàn)場問題源于通信配置錯誤或數(shù)據(jù)解析異常。本文從嵌入式系統(tǒng)開發(fā)視角,系統(tǒng)闡述Modbus通信調(diào)試的方法論,結(jié)合實際案例解析如何高...

關(guān)鍵字: 嵌入式系統(tǒng) Modbus通信

在工業(yè)控制系統(tǒng)中,Modbus RTU協(xié)議的CRC校驗如同通信網(wǎng)絡(luò)的"免疫系統(tǒng)",某石化廠DCS系統(tǒng)曾因CRC計算錯誤導(dǎo)致0.3%的數(shù)據(jù)包丟失,引發(fā)連鎖控制故障。本文將深入解析CRC-16/MODBUS算法原理,對比軟件...

關(guān)鍵字: Modbus RTU CRC 算法

在嵌入式系統(tǒng)開發(fā)中,看門狗(Watchdog Timer, WDT)是保障系統(tǒng)可靠性的核心組件,其初始化時機(jī)的選擇直接影響系統(tǒng)抗干擾能力和穩(wěn)定性。本文從硬件架構(gòu)、軟件流程、安全規(guī)范三個維度,系統(tǒng)分析看門狗初始化的最佳實踐...

關(guān)鍵字: 單片機(jī) 看門狗 嵌入式系統(tǒng)

人工智能(AI)和機(jī)器學(xué)習(xí)(ML)是使系統(tǒng)能夠從數(shù)據(jù)中學(xué)習(xí)、進(jìn)行推理并隨著時間的推移提高性能的關(guān)鍵技術(shù)。這些技術(shù)通常用于大型數(shù)據(jù)中心和功能強(qiáng)大的GPU,但在微控制器(MCU)等資源受限的器件上部署這些技術(shù)的需求也在不斷增...

關(guān)鍵字: 嵌入式系統(tǒng) 人工智能 機(jī)器學(xué)習(xí)

Zephyr開源項目由Linux基金會維護(hù),是一個針對資源受限的嵌入式設(shè)備優(yōu)化的小型、可縮放、多體系結(jié)構(gòu)實時操作系統(tǒng)(RTOS)。近年來,Zephyr RTOS在嵌入式開發(fā)中的采用度逐步增加,支持的開發(fā)板和傳感器不斷增加...

關(guān)鍵字: 嵌入式系統(tǒng) 軟件開發(fā) 實時操作系統(tǒng) Zephyr項目

在資源受限的嵌入式系統(tǒng)中,代碼執(zhí)行效率和內(nèi)存占用始終是開發(fā)者需要權(quán)衡的核心問題。內(nèi)聯(lián)函數(shù)(inline functions)和宏(macros)作為兩種常見的代碼展開技術(shù),在性能、可維護(hù)性和安全性方面表現(xiàn)出顯著差異。本文...

關(guān)鍵字: 內(nèi)聯(lián)函數(shù) 嵌入式系統(tǒng)

在嵌入式系統(tǒng)和服務(wù)器開發(fā)中,日志系統(tǒng)是故障排查和運(yùn)行監(jiān)控的核心組件。本文基于Linux環(huán)境實現(xiàn)一個輕量級C語言日志庫,支持DEBUG/INFO/WARN/ERROR四級日志分級,并實現(xiàn)按大小滾動的文件輪轉(zhuǎn)機(jī)制。該設(shè)計在某...

關(guān)鍵字: C語言 嵌入式系統(tǒng)

在嵌入式系統(tǒng)和底層驅(qū)動開發(fā)中,C語言因其高效性和可控性成為主流選擇,但缺乏原生單元測試支持成為開發(fā)痛點。本文提出一種基于宏定義和測試用例管理的輕量級單元測試框架方案,通過自定義斷言宏和測試注冊機(jī)制,實現(xiàn)無需外部依賴的嵌入...

關(guān)鍵字: C語言 嵌入式系統(tǒng) 驅(qū)動開發(fā)

在嵌入式系統(tǒng)與驅(qū)動開發(fā)中,內(nèi)存映射I/O(Memory-Mapped I/O, MMIO)是一種將硬件寄存器映射到處理器地址空間的技術(shù),允許開發(fā)者通過指針直接讀寫寄存器,實現(xiàn)高效、低延遲的硬件控制。本文通過C語言實戰(zhàn)案例...

關(guān)鍵字: 內(nèi)存映射 I/O操作 嵌入式系統(tǒng)
關(guān)閉