基于嵌入式ARM的SD卡的讀寫_第1頁
基于嵌入式ARM的SD卡的讀寫_第2頁
基于嵌入式ARM的SD卡的讀寫_第3頁
基于嵌入式ARM的SD卡的讀寫_第4頁
基于嵌入式ARM的SD卡的讀寫_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、 桂林電子科技大學(xué)實訓(xùn)(論文)報告用紙 第 1 頁 共 2 頁 摘 要SD卡(Secure Digital Memory Card)中文翻譯為安全數(shù)碼卡,是一種基于半導(dǎo)體快閃記憶器的新一代記憶設(shè)備,它被廣泛地于便攜式裝置上使用,例如數(shù)碼相機、個人數(shù)碼助理(PDA)和多媒體播放器等。本實訓(xùn)的作品是利用基于ARM Cotex-M3內(nèi)核的嵌入式處理器STM32自帶的SDIO硬件接口來驅(qū)動SD卡,并結(jié)合文件系統(tǒng) FATFS R0.07C來完成一個基于嵌入式ARM的SD卡讀寫的作品,現(xiàn)實向SD卡寫入一個txt文件,并讀取SD卡的文件目標(biāo)并通過串口打印到PC機顯示。關(guān)鍵詞:嵌入式;ARM;STM32;SD

2、 卡;文件系統(tǒng) 桂林電子科技大學(xué)實訓(xùn)(論文)報告用紙 第 2 頁 共 2 頁 AbstractAbstractSD Card (Secure Digital Memory Card) Chinese translation for Secure Digital Card, it is a kind of based on semiconductor flash Memory of a new generation of Memory device, it is widely used in portable devices, such as Digital cameras, personal

3、Digital assistant (PDA) and multimedia player, etc. This training work is based on ARM Cotex - M3 kernel embedded processor STM32 own SDIO hardware interface to drive the SD card, and combined with the file system FATFS R0.07 C to complete a based on embedded ARM of the SD card, speaking, reading an

4、d writing work, reality to SD card to a TXT file, and read SD card file goals and through the serial port print to PC display.Key words:embedded;ARM;STM32; SD Card; File system 桂林電子科技大學(xué)實訓(xùn)(論文)報告用紙 第 0 頁 共 1 頁 目 錄1 前言前言 .11.1 ARM 應(yīng)用背景.11.2 研究內(nèi)容.21.3 研究成果.32 STM32 處理器概述處理器概述.32.1 STM32 簡介.32.1.1 STM32F

5、103VET6 的參數(shù).42.2 內(nèi)部資源.62.3 CORTEX-M3 內(nèi)核簡介.62.4 STM32 SDIO 簡介.82.4.1 SDIO 簡介 .82.4.2 SDIO 功能特性.83 SDIO 的原理及實現(xiàn)方法的原理及實現(xiàn)方法.93.1 原理.93.2 SDIO 適配器.103.3 SDIO 卡識別過程.113.4 SDIO 寫數(shù)據(jù)塊.123.5 SDIO 讀數(shù)據(jù)塊.134 FATFS 文件系統(tǒng)文件系統(tǒng).134.1 FATFS 文件系統(tǒng)簡介.134.2 FATFS 文件系統(tǒng)移植.144.2.1 移植前工作 .144.2.2 開始移植 .145 測試及結(jié)果測試及結(jié)果 .165.1 JT

6、AG 仿真器介紹.165.2 現(xiàn)象及結(jié)果.176 結(jié)論結(jié)論 .18致致 謝謝 .19參考文獻參考文獻 .20 桂林電子科技大學(xué)實訓(xùn)(論文)報告用紙 第 0 頁 共 24 頁 ARM處理器ADCI/O接口鍵盤RAM LED傳感器轉(zhuǎn)換器LCD DACEPROM主機1 前言前言1.11.1 ARMARM 應(yīng)用背景應(yīng)用背景如今,學(xué)習(xí)一種處理器的就有許多 ARM 內(nèi)核的處理器可供使用,現(xiàn)在社會已步入嵌入式學(xué)習(xí)階段。在嵌入式領(lǐng)域,8 位處理器已經(jīng)不再勝任一些復(fù)雜的應(yīng)用,比如 GUI,TCP/IP,F(xiàn)ILESYSTEM 等,而 ARM 芯片憑借強大的處理能力和極低的功耗,非常適合這些場合?,F(xiàn)在越來越多的產(chǎn)品

7、在選型的時候考慮到使用 ARM 處理器,ARM 的應(yīng)用是相當(dāng)?shù)膹V泛。 ARM 的嵌入式控制應(yīng)用如:汽車、電子設(shè)備、保安設(shè)備、大容量存儲器、調(diào)制解調(diào)器、打印機等。一個典型的 ARM 嵌入式工業(yè)控制系統(tǒng)的功能模塊如圖 1-1 所示。 輸入輸出圖 1-1 ARM 嵌入式工業(yè)控制系統(tǒng)的功能模塊目前已有超過 85的無線通信設(shè)備采用了 ARM 技術(shù),ARM 以其高性能和低成本,在該領(lǐng)域的地位日益鞏固。ARM 在此方面的應(yīng)用如:手提式計算機、移動電話、PDA 等。隨著寬帶技術(shù)的推廣,采用 ARM 技術(shù)的 ADSL 芯片正逐步獲得競爭優(yōu)勢。此外,ARM 在語音及視頻處理上進行了優(yōu)化,并獲得廣泛支持。ARM 技

8、術(shù)在目前流行的數(shù)字音頻播放器、數(shù)字機頂盒、游戲機、數(shù)碼相機、數(shù)字式電視機、GPS、機頂盒中得到廣泛采用?,F(xiàn)在流行的數(shù)碼相機和打印機中絕大部分采用 ARM 技術(shù),手機中的 32 位 SIM 智能卡也采用了 ARM 技術(shù)。如圖1-2 所示是基于 ARM 技術(shù)的數(shù)碼相機的功能模塊9。 桂林電子科技大學(xué)實訓(xùn)(論文)報告用紙 第 1 頁 共 24 頁 ARM處理器LCD控制器主機接口CCDADC控制電路和編碼電路存儲器圖 1-2 基于 ARM 技術(shù)的數(shù)碼相機的功能模塊1.21.2 研究內(nèi)容研究內(nèi)容 本設(shè)計旨在加深對 ARM 的學(xué)習(xí),鞏固大學(xué)四年所學(xué)專業(yè)知識,提升動手能力和思考問題解決問題的能力。本設(shè)計選

9、擇意法半導(dǎo)體的 STM32F103 系列處理器,通過自制 STM32 開發(fā)板的過程,和對 STM32F103C8T6 芯片的研究學(xué)習(xí),掌握其各種外設(shè)功能。STM32F103VET6具有一個SDIO接口。SD/SDIO/MMC主機接口可以支持MMC卡系統(tǒng)規(guī)范4.2版中的3個不同的數(shù)據(jù)總線模式:1位(默認(rèn))、4位和8位。在8位模式下,該接口可以使數(shù)據(jù)傳輸速率達(dá)到48MHz,該接口兼容SD存儲卡規(guī)范2.0版。SDIO存儲卡規(guī)范2.0版支持兩種數(shù)據(jù)總線模式:1位(默認(rèn))和4位。 目前的芯片版本只能一次支持一個 SD/SDIO/MMC 4.2 版的卡,但可以同時支持多個 MMC 4.1 版或之前版本的卡

10、。除了 SD/SDIO/MMC,這個接口完全與 CE-ATA 數(shù)字協(xié)議版本 1.1 兼容。本實訓(xùn)的作品是利用基于 ARM Cotex-M3 內(nèi)核的嵌入式處理器 STM32 自帶的SDIO 硬件接口來驅(qū)動 SD 卡,并結(jié)合文件系統(tǒng) FATFS R0.07C 來完成一個基于嵌入式 ARM 的 SD 卡讀寫的作品,現(xiàn)實向 SD 卡寫入一個 txt 文件,并讀取 SD 卡的文件目標(biāo)并通過串口打印到 PC 機顯示。本文第一章講述了該論文寫作背景,主要闡述了 ARM 應(yīng)用范疇,以及該論文研究的內(nèi)容;第二章講述了該研究課題使用的核心芯片 STM32F103VET6 的各 桂林電子科技大學(xué)實訓(xùn)(論文)報告用紙

11、 第 2 頁 共 24 頁 項參數(shù);第三章著重介紹了 SDIO 的原理及實現(xiàn)方法;第四章著重介紹了 FAT 文件系統(tǒng)的原理;第五章介紹了測試方法和結(jié)果。1.31.3 研究成果研究成果給硬件系統(tǒng)供電(5V),插上 JLINK,插上串口線(兩頭都是母的交叉線),插上 MicroSD 卡,打開超級終端,配置超級終端為 115200 8-N-1,將編譯好的程序下載到硬件平臺,即可看到超級終端打印出如下信息:圖 1-3 顯示結(jié)果圖2 STM32 處理器概述處理器概述2.12.1 STM32STM32 簡介簡介 STM32F103xx 增強型系列使用高性能的 ARM/Cortex-M3/32 位的 RIS

12、C 內(nèi)核,工作頻率為 72MHz,內(nèi)置高速存儲器(高達(dá) 128K 字節(jié)的閃存和 20K 字節(jié)的 SRAM),豐富的增強 I/O 端口和聯(lián)接到兩條 APB 總線的外設(shè)。所有型號的器件都包含 2個 12 位的 ADC 、3 個通用 16 位定時器和一個 PWM 定時器,還包含標(biāo)準(zhǔn)和先進的通信接口:多達(dá) 2 個 I2C 和 SPI、3 個 USART、一個 USB 和一個 CAN。 STM32F103xx 增強型系列工作于-40至+105 的溫度范圍,供電電壓2.0V 至 3.6V,一系列的省電模式保證低功耗應(yīng)用的要求。 桂林電子科技大學(xué)實訓(xùn)(論文)報告用紙 第 3 頁 共 24 頁 完整的 STM

13、32F103xx 增強型系列產(chǎn)品包括從 36 腳至 100 腳的五種不同封裝形式;根據(jù)不同的封裝形式,器件中的外設(shè)配置不盡相同。下面給出了該系列產(chǎn)品中所有外設(shè)的基本介紹。 這些豐富的外設(shè)配置,使得 STM32F103xx 增強型微控制器適合于多種應(yīng)用場合: 電機驅(qū)動和應(yīng)用控制 ; 醫(yī)療和手持設(shè)備 ; PC 外設(shè)和 GPS 平臺; 工業(yè)應(yīng)用:可編程控制器、變頻器、打印機和掃描儀 ; 警報系統(tǒng),視頻對講,和暖氣通風(fēng)空調(diào)系統(tǒng) ;2.1.1 STM32F103VET6 的參數(shù)STM32F103VET6 芯片的參數(shù)如表 2-1 桂林電子科技大學(xué)實訓(xùn)(論文)報告用紙 第 4 頁 共 24 頁 表 2-1

14、器件功能和配置(STM32F103xx 增強型)芯片引腳圖如圖 2-2:圖 2-2 STM32F103xx 增強型 LQPFP100 管腳圖 桂林電子科技大學(xué)實訓(xùn)(論文)報告用紙 第 5 頁 共 24 頁 2.22.2 內(nèi)部資源內(nèi)部資源STM32 有豐富的內(nèi)部資源,如下所示:RealView MDK(Miertocontroller Development Kit)基于 ARM 微控制器的專業(yè)嵌入式開發(fā)工具;內(nèi)置閃存存儲器;內(nèi)置 SRAM; 嵌套的向量式中斷控制器(NVIC);外部中斷/事件控制器(EXTI); 時鐘和啟動; 自舉模式; DMA ;RTC(實時時鐘)和后備寄存器 ;窗口看門狗;

15、 I2C 總線 ;通用同步/異步接受發(fā)送器(USART); 串行外設(shè)接口(SPI); 控制器區(qū)域網(wǎng)絡(luò)(CAN) ;通用串行總線(USB); 通用輸入輸出接口(GPIO); ADC(模擬/數(shù)字轉(zhuǎn)換器) ;溫度傳感器; 串行線 JTAG 調(diào)試口(SWJ-DP)。 2.32.3 Cortex-M3Cortex-M3 內(nèi)核簡介內(nèi)核簡介Cortex-M3 內(nèi)核包含一個適用于傳統(tǒng) Thumb 和新型 Thumb-2 指令的譯碼器、一個支持硬件乘法和硬件除法的先進 ALU、控制邏輯和用于連接處理器其他部件的接口。Cortex-M3 處理器是首款基于 ARMv7-M 架構(gòu)的 ARM 處理器。中央Cortex-

16、M3 內(nèi)核使用 3 級流水線哈佛架構(gòu),運用分支預(yù)測、單周期乘法和硬件 桂林電子科技大學(xué)實訓(xùn)(論文)報告用紙 第 6 頁 共 24 頁 除法功能實現(xiàn)了出色的效率(1.25DMIPS/MHz) 。Cortex-M3 處理器是一個 32 位處理器,帶有 32 位寬的數(shù)據(jù)路徑、寄存器庫和基于傳統(tǒng) ARM7 處理器的系統(tǒng)只支持訪問對齊的數(shù)據(jù),沿著對齊的字邊界即可對數(shù)據(jù)進行訪問和存儲。Cortex-M3 處理器采用非對齊數(shù)據(jù)訪問方式,使非對齊數(shù)據(jù)可以在單核訪問中進行傳輸。Cortex-M3 處理器是專為那些對成本和功耗非常敏感但同時對性能要求又相當(dāng)高的應(yīng)用而設(shè)計的。憑借縮小的內(nèi)核尺寸和出色的中斷延遲性能、

17、集成的系統(tǒng)部件、靈活的配置、簡單的高級編程和強大的軟件系統(tǒng),Cortex-M3 處理器將成為從復(fù)雜的芯片系統(tǒng)到低端微控制器等各種系統(tǒng)的理想解決方案。表 2-3為 Cortex-M3 處理器與 ARM7 作比較。表 2-3 Cortex-M3 與 ARM7 相比較 桂林電子科技大學(xué)實訓(xùn)(論文)報告用紙 第 7 頁 共 24 頁 2.42.4 STM32STM32 SDIOSDIO 簡介簡介.1 SDIOSDIO 簡介簡介STM32F103VET6 具有一個 SDIO 接口。SD/SDIO/MMC 主機接口可以支持MMC 卡系統(tǒng)規(guī)范 4.2 版中的 3 個不同的數(shù)據(jù)總線模式:1 位

18、(默認(rèn))、4 位和 8位。在 8 位模式下,該接口可以使數(shù)據(jù)傳輸速率達(dá)到 48MHz,該接口兼容 SD存儲卡規(guī)范 2.0 版。SDIO 存儲卡規(guī)范 2.0 版支持兩種數(shù)據(jù)總線模式:1 位(默認(rèn))和 4 位。 目前的芯片版本只能一次支持一個 SD/SDIO/MMC 4.2 版的卡,但可以同時支持多個 MMC 4.1 版或之前版本的卡。除了 SD/SDIO/MMC,這個接口完全與 CE-ATA 數(shù)字協(xié)議版本 1.1 兼容。.2 SDIOSDIO 功能特性功能特性 (1)主要功能SD/SDIO MMC 卡主機模塊(SDIO)在 AHB 外設(shè)總線和多媒體卡(MMC)、SD 存儲卡、SD

19、IO 卡和 CE-ATA 設(shè)備間提供了操作接口。 多媒體卡系統(tǒng)規(guī)格書由 MMCA 技術(shù)委員會發(fā)布,可以在多媒體卡協(xié)會的網(wǎng)站上()獲得。 CE-ATA 系統(tǒng)規(guī)格書可以在 CE-ATA 工作組的網(wǎng)站上()獲得。 SDIO 的主要功能如下: 與多媒體卡系統(tǒng)規(guī)格書版本 4.2 全兼容。支持三種不同的數(shù)據(jù)總線模式:1 位(默認(rèn))、4 位和 8 位。 與較早的多媒體卡系統(tǒng)規(guī)格版本全兼容(向前兼容)。 與 SD 存儲卡規(guī)格版本 2.0 全兼容。 與 SD I/O 卡規(guī)格版本 2.0 全兼容:支持良種不同的數(shù)據(jù)總線模式:1 位(默認(rèn))和 4 位。 完全支持

20、CE-ATA 功能(與 CE-ATA 數(shù)字協(xié)議版本 1.1 全兼容)。 8 位總線模式下數(shù)據(jù)傳輸速率可達(dá) 48MHz。 數(shù)據(jù)和命令輸出使能信號,用于控制外部雙向驅(qū)動器。(2)SDIO 總線拓?fù)淇偩€上的通信是通過傳送命令和數(shù)據(jù)實現(xiàn)。 在多媒體卡/SD/SD I/O 總線上的基本操作是命令/響應(yīng)結(jié)構(gòu),這樣的總線操 桂林電子科技大學(xué)實訓(xùn)(論文)報告用紙 第 8 頁 共 24 頁 作在命令或總線機制下實現(xiàn)信息交換;另外,某些操作還具有數(shù)據(jù)令牌。 在 SD/SDIO 存儲器卡上傳送的數(shù)據(jù)是以數(shù)據(jù)塊的形式傳輸;在 MMC 上傳送的數(shù)據(jù)是以數(shù)據(jù)塊或數(shù)據(jù)流的形式傳輸;在 CE-ATA 設(shè)備上傳送的數(shù)據(jù)也是以數(shù)

21、據(jù)塊的形式傳輸。3 SDIO 的原理及實現(xiàn)方法的原理及實現(xiàn)方法3.13.1 原理原理SDIO 包含 2 個部分: SDIO 適配器模塊:實現(xiàn)所有 MMC/SD/SD I/O 卡的相關(guān)功能,如時鐘的產(chǎn)生、命令和數(shù)據(jù)的傳送。 AHB 總線接口:操作 SDIO 適配器模塊中的寄存器,并產(chǎn)生中斷和DMA 請求信號。圖 3-1 SDIO 框圖復(fù)位后默認(rèn)情況下 SDIO_D0 用于數(shù)據(jù)傳輸。初始化后主機可以改變數(shù)據(jù)總線的寬度。 如果一個多媒體卡接到了總線上,則 SDIO_D0、SDIO_D3:0或SDIO_D7:0可以用于數(shù)據(jù)傳輸。MMC 版本 V3.31 和之前版本的協(xié)議只支持 1位數(shù)據(jù)線,所以只能用

22、SDIO_D0。 如果一個 SD 或 SD I/O 卡接到了總線上,可以通過主機配置數(shù)據(jù)傳輸使用SDIO_D0 或 SDIO_D3:0。所有的數(shù)據(jù)線都工作在推挽模式。 SDIO_CMD 有兩種操作模式: 用于初始化時的開路模式(僅用于 MMC 版本 V3.31 或之前版本) 用于命令傳輸?shù)耐仆炷J?SD/SD I/O 卡和 MMC V4.2 在初始化時也使 桂林電子科技大學(xué)實訓(xùn)(論文)報告用紙 第 9 頁 共 24 頁 用推挽驅(qū)動) SDIO_CK 是卡的時鐘:每個時鐘周期在命令和數(shù)據(jù)線上傳輸 1 位命令或數(shù)據(jù)。對于多媒體卡 V3.31 協(xié)議,時鐘頻率可以在 0MHz 至 20MHz 間變化;

23、對于多媒體卡 V4.0/4.2 協(xié)議,時鐘頻率可以在 0MHz 至 48MHz 間變化;對于 SD或 SD I/O 卡,時鐘頻率可以在 0MHz 至 25MHz 間變化。 SDIO 使用兩個時鐘信號: SDIO 適配器時鐘(SDIOCLK=HCLK) AHB 總線時鐘(HCLK/2) 下表適用于多媒體卡/SD/SD I/O 卡總線:表 3-1 SDIO 引腳定義3.23.2 SDIOSDIO 適配器適配器下圖是簡化的 SDIO 適配器框圖:圖 3-2 SDIO 適配器 命令通道狀態(tài)機(CPSM) 當(dāng)寫入命令寄存器并設(shè)置了使能位,開始發(fā)送命令。命令發(fā)送完成時,命令通道狀態(tài)機(CPSM)設(shè)置狀態(tài)標(biāo)

24、志并在不需要響應(yīng)時進入空閑狀態(tài)(見下圖)。當(dāng)收到響應(yīng)后,接收到的 CRC 碼將會與內(nèi)部產(chǎn)生的 CRC 碼比較,然后設(shè)置相應(yīng)的狀態(tài)標(biāo)志。當(dāng)進入等待(Wait)狀態(tài)時,命令定時器開始運行;當(dāng) CPSM 進 桂林電子科技大學(xué)實訓(xùn)(論文)報告用紙 第 10 頁 共 24 頁 入接收(Receive)狀態(tài)之前,產(chǎn)生了超時,則設(shè)置超時標(biāo)志并進入空閑(Idle)狀態(tài)。 命令格式 命令:命令是用于開始一項操作。主機向一個指定的卡或所有的卡發(fā)出帶地址的命令或廣播命令(廣播命令只適合于 MMC V3.31 或之前的版本)。命令在CMD 線上串行傳送。所有命令的長度固定為 48 位,下表給出了多媒體卡、SD存儲卡和

25、 SDIO 卡上一般的命令格式。CE-ATA 命令是 MMC V4.2 命令的擴充,所以具有相同的格式。 命令通道操作于半雙工模式,這樣命令和響應(yīng)可以分別發(fā)送和接收。如果 CPSM 不處在發(fā)送狀態(tài),SDIO_CMD 輸出處于高阻狀態(tài)。SDIO_CMD 上的數(shù)據(jù)與 SDIO_CK 的上升沿同步。3.3 SDIO 卡識別過程多媒體卡和 SD 卡的卡識別過程是有區(qū)別的;對于多媒體卡,卡識別過程以時鐘頻率 Fod 開始,所有 SDIO_CMD 輸出為開路驅(qū)動,允許在這個過程中的卡的并行連接,識別過程如下: 1. 總線被激活 2. SDIO 卡主機廣播發(fā)送 SEND_OP_COND(CMD1)命令,并接

26、收操作條件 3. 得到的響應(yīng)是所有卡的操作條件寄存器內(nèi)容的“線與” 4. 不兼容的卡會被置于非激活狀態(tài) 5. SDIO 卡主機廣播發(fā)送 ALL_SEND_CID(CMD2)至所有激活的卡 6. 所有激活的卡同時串行地發(fā)送他們的 CID 號,那些檢測到輸出的 CID位與命令線上的數(shù)據(jù)不相符的卡必須停止發(fā)送,并等待下一個識別周期。最終只有一個卡能夠成功地傳送完整的 CID 至 SDIO 卡主機并進入識別狀態(tài)。 7. SDIO 卡主機發(fā)送 SET_RELATIVE_ADDR(CMD3)命令至這個卡,這個新的地址被稱為相對卡地址(RCA),它比 CID 短,用于對卡尋址。至此,這個卡轉(zhuǎn)入待機狀態(tài),并不

27、再響應(yīng)新的識別過程,同時它的輸出驅(qū)動從開路轉(zhuǎn)變?yōu)橥仆炷J健?8. SDIO 卡主機重復(fù)上述步驟 5 至 7,直到收到超時條件。 對于 SD 卡而言,卡識別過程以時鐘頻率 Fod 開始,所有 SDIO_CMD 輸出為推挽驅(qū)動而不是開路驅(qū)動,識別過程如下: 1. 總線被激活 2. SDIO 卡主機廣播發(fā)送 SEND_APP_OP_COND(ACMD41)命令 3. 得到的響應(yīng)是所有卡的操作條件寄存器的內(nèi)容 桂林電子科技大學(xué)實訓(xùn)(論文)報告用紙 第 11 頁 共 24 頁 4. 不兼容的卡會被置于非激活狀態(tài) 5. SDIO 卡主機廣播發(fā)送 ALL_SEND_CID(CMD2)至所有激活的卡 6. 所

28、有激活的卡發(fā)送回他們唯一卡識別號(CID)并進入識別狀態(tài)。 7. SDIO 卡主機發(fā)送 SET_RELATIVE_ADDR(CMD3)命令和一個地址到一個激活的卡,這個新的地址被稱為相對卡地址(RCA),它比 CID 短,用于對卡尋址。至此,這個卡轉(zhuǎn)入待機狀態(tài)。SDIO 卡主機可以再次發(fā)送該命令更改RCA,卡的 RCA 將是最后一次的賦值。 8. SDIO 卡主機對所有激活的卡重復(fù)上述步驟 5 至 7。 對于 SD I/O 卡而言,卡識別過程如下: 1. 總線被激活 2. SDIO 卡主機發(fā)送 IO_SEND_OP_COND(CMD5)命令 3. 得到的響應(yīng)是卡的操作條件寄存器的內(nèi)容 4. 不

29、兼容的卡會被置于非激活狀態(tài)5. SDIO 卡主機發(fā)送 SET_RELATIVE_ADDR(CMD3)命令和一個地址到一個激活的卡,這個新的地址被稱為相對卡地址(RCA),它比 CID 短,用于對卡尋址。至此,這個卡轉(zhuǎn)入待機狀態(tài)。SDIO 卡主機可以再次發(fā)送該命令更改RCA,卡的 RCA 將是最后一次的賦值。3.4 SDIO 寫數(shù)據(jù)塊執(zhí)行寫數(shù)據(jù)塊命令(CMD24-27)時,主機把一個或多個數(shù)據(jù)塊從主機傳送到卡中,同時在每個數(shù)據(jù)塊的末尾傳送一個 CRC 碼。一個支持寫數(shù)據(jù)塊命令的卡應(yīng)該始終能夠接收由 WRITE_BL_LEN 定義的數(shù)據(jù)塊。如果 CRC 校驗錯誤,卡通過 SDIO_D 信號線指示錯

30、誤,傳送的數(shù)據(jù)被丟棄而不被寫入,所有后續(xù)(在多塊寫模式下)傳送的數(shù)據(jù)塊將被忽略。 如果主機傳送部分?jǐn)?shù)據(jù),而累計的數(shù)據(jù)長度未與數(shù)據(jù)塊對齊,當(dāng)不允許塊錯位(未設(shè)置 CSD 的參數(shù) WRITE_BLK_MISALIGN),卡將在第一個錯位的塊之前檢測到塊錯位錯誤(設(shè)置狀態(tài)寄存器中的 ADDRESS_ERROR 錯誤位)。當(dāng)主機試圖寫一個寫保護區(qū)域時,寫操作也會被中止,此時卡會設(shè)置WP_VIOLATION 位。 設(shè)置 CID 和 CSD 寄存器不需要事先設(shè)置塊長度,傳送的數(shù)據(jù)也是通過CRC 保護的。如果 CSD 或 CID 寄存器的部分是存儲在 ROM 中,則這個不能更改的部分必須與接收緩沖區(qū)的對應(yīng)部

31、分相一致,如果有不一致之處,卡將報告一個錯誤同時不修改任何寄存器的內(nèi)容。有些卡需要長的甚至不可預(yù)計的時 桂林電子科技大學(xué)實訓(xùn)(論文)報告用紙 第 12 頁 共 24 頁 間完成寫一個數(shù)據(jù)塊,在接收一個數(shù)據(jù)塊并完成 CRC 檢驗后,卡開始寫操作,如果它的寫緩沖區(qū)已經(jīng)滿并且不能再從新的 WRITE_BLOCK 命令接受新的數(shù)據(jù)時,它會把 SDIO_D 信號線拉低。主機可以在任何時候使用SEND_STATUS(CMD13)查詢卡的狀態(tài),卡將返回當(dāng)前狀態(tài)。READY_FOR_DATA 狀態(tài)位指示卡是否可以接受新的數(shù)據(jù)或?qū)懖僮魇欠襁€在進行。主機可以使用 CMD7(選擇另一個卡)不選中某個卡,而把這個卡置

32、于斷開狀態(tài),這樣可以釋放 SDIO_D 信號線而不中斷未完成的寫操作;當(dāng)重新選擇了一個卡,如果寫操作仍然在進行并且寫緩沖區(qū)仍不能使用,它會重新通過拉低SDIO_D 信號線指示忙的狀態(tài)。3.5 SDIO 讀數(shù)據(jù)塊在讀數(shù)據(jù)塊模式下,數(shù)據(jù)傳輸?shù)幕締卧菙?shù)據(jù)塊,它的大小在 CSD 中(READ_BL_LEN)定義。如果設(shè)置了 READ_BL_PARTIAL,同樣可以傳送較小的數(shù)據(jù)塊,較小數(shù)據(jù)塊是指開始和結(jié)束地址完全包含在一個物理塊中,READ_BL_LEN 定義了物理塊的大小。為保證數(shù)據(jù)傳輸?shù)恼_,每個數(shù)據(jù)塊后都有一個 CRC 校驗碼。CMD17(READ_SINGLE_BLOCK)啟動一次讀數(shù)據(jù)塊

33、操作,在傳輸結(jié)束后卡返回到發(fā)送狀態(tài)。 CMD18(READ_MULTIPLE_BLOCK)啟動一次連續(xù)多個數(shù)據(jù)塊的讀操作。 主機可以在多數(shù)據(jù)塊讀操作的任何時候中止操作,而不管操作的類型。發(fā)送停止傳輸命令即可中止操作。 如果在多數(shù)據(jù)塊讀操作中(任一種類型)卡檢測到錯誤(例如:越界、地址錯位或內(nèi)部錯誤),它將停止數(shù)據(jù)傳輸并仍處于數(shù)據(jù)狀態(tài);此時主機必須發(fā)送停止傳輸命令中止操作。在停止傳輸命令的響應(yīng)中報告讀錯誤。 如果主機發(fā)送停止傳輸命令時,卡已經(jīng)傳輸完一個確定數(shù)目的多個數(shù)據(jù)塊操作中的最后一個數(shù)據(jù)塊,因為此時卡已經(jīng)不在數(shù)據(jù)狀態(tài),主機會得到一個非法命令的響應(yīng)。如果主機傳輸部分?jǐn)?shù)據(jù)塊,而累計的數(shù)據(jù)長度不能

34、與物理塊對齊同時不允許塊錯位,卡會在出現(xiàn)第一個未對齊的塊時檢測出一個塊對齊錯誤,并在狀態(tài)寄存器中設(shè)置 ADDRESS_ERROR 錯誤標(biāo)志。4 FatFS 文件系統(tǒng)文件系統(tǒng)4.14.1 FatFSFatFS 文件系統(tǒng)簡介文件系統(tǒng)簡介FAFFS 是面向小型嵌入式系統(tǒng)的一種通用的 FAT 文件系統(tǒng)。FATFS 完全 桂林電子科技大學(xué)實訓(xùn)(論文)報告用紙 第 13 頁 共 24 頁 是由 AISI C 語言編寫并且完全獨立于底層的 I/O 介質(zhì)。因此它可以很容易地不加修改地移植到其他的處理器當(dāng)中,如8051、PIC、AVR、SH、Z80、H8、ARM 等。FATFS 支持FAT12、FAT16、FA

35、T32 等格式,所以我們利用前面寫好的 SDIO 驅(qū)動,把FATFS 文件系統(tǒng)代碼移植到工程之中,就可以利用文件系統(tǒng)的各種函數(shù),對已格式化的 SD 卡進行讀寫文件了。4.24.2 FatFSFatFS 文件系統(tǒng)移植文件系統(tǒng)移植.1 移植前工作移植前工作在移植 FATFS 文件系統(tǒng)之前,我們先要到 FAT 的官網(wǎng)獲取源碼,版本為R0.07C。解壓之后可看到里面有 doc 和 src 這兩個文件夾。doc 文件夾里面是一些使用文檔, src 里面是文件系統(tǒng)的源碼。圖 4-1 FATFS 源碼.2 開始移植開始移植首先我們要獲取一個完全沒有修改過的文件系統(tǒng)源碼,然后在

36、 10-MicroSD卡這個文件夾下的實驗代碼下移植,這個實驗代碼實現(xiàn)的是卡的底層的塊操作。注意,我們在移植這個文件系統(tǒng)的過程中會盡量保持文件系統(tǒng)源碼的純凈,盡量做到在修改最少量的源碼的情況下移植成功。 FATFS 模塊在移植的時候,我們一般只需要修改 2 個文件,即 ffconf.h 和diskio.c。FATFS 模塊的所有配置項都是存放在 ffconf.h 里面,我們可以通過配置里面的一些選項,來滿足自己的需求。接下來我們介紹幾個重要的配置選項。 桂林電子科技大學(xué)實訓(xùn)(論文)報告用紙 第 14 頁 共 24 頁 1)_FS_TINY。這個選項在 R0.07 版本中開始出現(xiàn),之前的版本都是

37、以獨立的 C 文件出現(xiàn)(FATFS 和 Tiny FATFS),有了這個選項之后,兩者整合在一起了,使用起來更方便。我們使用 FATFS,所以把這個選項定義為 0 即可。2)_FS_READONLY。這個用來配置是不是只讀,本章我們需要讀寫都用,所以這里設(shè)置為 0 即可。3)_USE_STRFUNC。這個用來設(shè)置是否支持字符串類操作,比如f_putc,f_puts 等,本章我們需要用到,故設(shè)置這里為 1。4)_USE_MKFS。這個用來定時是否使能格式化,本章需要用到,所以設(shè)置這里為 1。5)_USE_FASTSEEK。這個用來使能快速定位,我們設(shè)置為 1,使能快速定位。6)_CODE_PAG

38、E。這個用于設(shè)置語言類型,包括很多選項(見 FATFS 官網(wǎng)說明),我們這里設(shè)置為 936,即簡體中文(GBK 碼,需要 c936.c 文件支持,該文件在 option 文件夾)。7)_USE_LFN。該選項用于設(shè)置是否支持長文件名(還需要_CODE_PAGE 支持),取值范圍為 03。0,表示不支持長文件名,13 是支持長文件名,但是存儲地方不一樣,我們選擇使用 3,通過 ff_memalloc 函數(shù)來動態(tài)分配長文件名的存儲區(qū)域。8)_VOLUMES。用于設(shè)置 FATFS 支持的邏輯設(shè)備數(shù)目,我們設(shè)置為 2,即支持 2 個設(shè)備。9)_MAX_SS。扇區(qū)緩沖的最大值,一般設(shè)置為 512。下面我

39、們來講講 FATFS 的移植,F(xiàn)ATFS 的移植主要分為 3 步: 數(shù)據(jù)類型:在 integer.h 里面去定義好數(shù)據(jù)的類型。這里需要了解你用的編譯器的數(shù)據(jù)類型,并根據(jù)編譯器定義好數(shù)據(jù)類型。 配置:通過 ffconf.h 配置 FATFS 的相關(guān)功能,以滿足你的需要。 函數(shù)編寫:打開 diskio.c,進行底層驅(qū)動編寫,一般需要編寫 6 個接口函數(shù)。通過以上三步,我們即可完成對 FATFS 的移植。第一步,我們使用的是 MDK3.80a 編譯器,器數(shù)據(jù)類型和 integer.h 里面定義的一致,所以此步,我們不需要做任何改動。第二步,關(guān)于 ffconf.h 里面的相關(guān)配置,我們在前面已經(jīng)有介紹

40、(之前介 桂林電子科技大學(xué)實訓(xùn)(論文)報告用紙 第 15 頁 共 24 頁 紹的 9 個配置),我們將對應(yīng)配置修改為我們介紹時候的值即可,其他的配置用默認(rèn)配置。第三步,因為 FATFS 模塊完全與磁盤 I/O 層分開,因此需要下面的函數(shù)來實現(xiàn)底層物理磁盤的讀寫與獲取當(dāng)前時間。底層磁盤 I/O 模塊并不是 FATFS 的一部分,并且必須由用戶提供。5 測試及結(jié)果測試及結(jié)果5.15.1 JTAGJTAG 仿真器介紹仿真器介紹J-Link 是支持仿真 ARM 內(nèi)核芯片的 JTAG 仿真器。配合 IAR EWARM,ADS,KEIL,WINARM,RealView 等集成開發(fā)環(huán)境支持所有ARM7/AR

41、M9 內(nèi)核芯片的仿真,通過 RDI 接口和各集成開發(fā)環(huán)境無縫連接,操作方便、連接方便、簡單易學(xué),是學(xué)習(xí)開發(fā) ARM 最好最實用的開發(fā)工具。DQ 電子推出的 J-LinkV7 仿真器采用原版固件,參照原版原理圖,經(jīng)過DQ 團隊的長時間精工制作,板型合理,元件布局美觀大方,走線嚴(yán)謹(jǐn)精致,并且每一個產(chǎn)品都經(jīng)過功能和老化測試,功能完全與原版一致,支持在線升級。J-Link ARM 主要特點:IAR EWARM 集成開發(fā)環(huán)境無縫連接的 JTAG 仿真器。 支持所有 ARM7/ARM9 內(nèi)核的芯片,以及 cortexM3,包括 Thumb 模式。支持 ADS,IAR,KEIL,WINARM,REALVIE

42、W 等幾乎所有的開發(fā)環(huán)境。下載速度高達(dá) ARM7:600kB/s,ARM9:550kB/s,通過 DCC 最高可達(dá) 800 kB/s*最高 JTAG 速度 12MHz。目標(biāo)板電壓范圍 1.2V3.3V。 自動速度識別功能。監(jiān)測所有 JTAG 信號和目標(biāo)板電壓。 完全即插即用。 使用 USB 電源(可接通 J12 跳線給目標(biāo)板供電,出廠時未接通)。 帶 USB 連接線和 20 芯 JTAG 連接排線。 支持多 JTAG 器件串行連接。 標(biāo)準(zhǔn) 20 芯 JTAG 仿真插頭。 帶 J-Link TCP/IP server,允許通過 TCP/IP 網(wǎng)絡(luò)使用 J-Link 桂林電子科技大學(xué)實訓(xùn)(論文)報

43、告用紙 第 16 頁 共 24 頁 支持的內(nèi)核: ARM7TDMI(Rev 1); ARM7TDMI(Rev 3); ARM7TDMI-S(Rev 4); ARM720T ;CORTEXM3。5.25.2 現(xiàn)象及結(jié)果現(xiàn)象及結(jié)果給硬件系統(tǒng)供電(5V),插上 JLINK,插上串口線(兩頭都是母的交叉線),插上 MicroSD 卡,打開超級終端,配置超級終端為 115200 8-N-1,將編譯好的程序下載到硬件平臺,即可看到超級終端打印出如下信息:圖 5-1 測試效果圖 桂林電子科技大學(xué)實訓(xùn)(論文)報告用紙 第 17 頁 共 24 頁 6 結(jié)論結(jié)論很多單片機系統(tǒng)都需要大容量存儲設(shè)備,以存儲數(shù)據(jù)。目前

44、常用的有 U 盤,F(xiàn)LASH 芯片,SD 卡等。他們各有優(yōu)點,綜合比較,最適合單片機系統(tǒng)的莫過于 SD 卡了,它不僅容量可以做到很大(32Gb 以上) ,而且支持 SPI 接口,方便移動,并且有幾種體積的尺寸可供選擇(標(biāo)準(zhǔn)的 SD 卡尺寸,以及 TF 卡尺寸等) ,能滿足不同應(yīng)用的要求。本實訓(xùn)的作品是利用基于 ARM Cotex-M3 內(nèi)核的嵌入式處理器 STM32 自帶的 SDIO 硬件接口來驅(qū)動 SD 卡,并結(jié)合文件系統(tǒng) FATFS R0.07C 來完成一個基于嵌入式 ARM 的 SD 卡讀寫的作品,現(xiàn)實向 SD卡寫入一個 txt 文件,并讀取 SD 卡的文件目標(biāo)并通過串口打印到 PC 機

45、顯示。通過本實訓(xùn),我更加掌握了嵌入式 ARM STM32 的外圍應(yīng)用設(shè)計以及 SD 卡的驅(qū)動和文件系統(tǒng)的使用方法。 桂林電子科技大學(xué)實訓(xùn)(論文)報告用紙 第 18 頁 共 24 頁 致致 謝謝本實訓(xùn)從最初的選題到系統(tǒng)設(shè)計、程序編寫直到論文的撰寫過程中都得到了孫安青老師的悉心指導(dǎo)與指正,您細(xì)心教導(dǎo)和熱心關(guān)懷使得我能夠順利完成本次實訓(xùn)任務(wù)。孫老師熱心的工作態(tài)度、嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度,也使我受益匪淺,終生難忘。同時要感謝我們班各位同學(xué),你們細(xì)心地給我分析該設(shè)計的設(shè)計流程,耐心地講解程序運行過程,并給設(shè)計的不足提出很好的建議和方針,是你們的幫助,讓我對本設(shè)計理解更透徹,在此表示衷心地感謝.大學(xué)里我并不孤獨,

46、在老師和同學(xué)們陪伴下,我度過了愉快的四年,在此衷心感謝大家 桂林電子科技大學(xué)實訓(xùn)(論文)報告用紙 第 19 頁 共 24 頁 參考文獻參考文獻1 康華光.電子技術(shù)基礎(chǔ)模擬部分第四版M.北京:高等教育出版社,1999.6.2 閻石.數(shù)字電子技術(shù)基礎(chǔ)第四版M.北京:高等教育出版社,1999.6.3王福瑞等單片微機測控系統(tǒng)設(shè)計大全M北京航空航天大學(xué)出版社,1998(331337)4寧改娣,楊拴科DSP 控制器原理及應(yīng)用M科學(xué)出版社,20025 周立功等.ARM嵌入式系統(tǒng)基礎(chǔ)教程M.北京:北京航空航天大學(xué)出版社,2005.1.6 周立功等.ARM嵌入式系統(tǒng)實驗教程M.北京:北京航空航天大學(xué)出版社,20

47、05.1.7 唐清善.Protel DXP高級實例教程M.中國水利水電出版社,2004.4.8 羅浩等.一種新的基于ARM的數(shù)據(jù)采集系統(tǒng)設(shè)計J.信陽師范學(xué)院學(xué)報(自然科學(xué)版),2006.4.9 秦偉等.基于ARM 處理器的數(shù)據(jù)采集系統(tǒng)的設(shè)計J.自動化技術(shù)與應(yīng)用.2006 年第1期.10 杜春雷.ARM體系結(jié)構(gòu)與編程.清華大學(xué)出版社,2003. 11 李寧.ARM開發(fā)工具ReaIView MDK使用入門M.北京航空航天大學(xué)出版社,2008.12 李寧.基于MDK的STM32處理器開發(fā)應(yīng)用M.北京航空航天大學(xué)出版社,2008.13劉黎明等.單片機與嵌入式系統(tǒng)應(yīng)用J.英文刊名MICROCON TROLLER&EMBEDDED SYSTEM. 2002(7).14 趙葵銀,王輝,吳俊.電壓空間矢量控制的三相PWM整流器的研究J.上海第二工業(yè)大學(xué)學(xué)報,2003(2):43-50.15 Malinowski Mariusz.Jasinski Marek,Kazmierkowski Marian P.Simple Direct Power

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論