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

下載本文檔

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

文檔簡介

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

2、件系統(tǒng)AbstractSD 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 Digital assistant (PDA) and multimedia playe

3、r, 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 and writing work, reality to SD card to a TXT

4、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桂林電子科技大學實訓(論文)報告用紙第1頁共1頁目 錄1 前言 11.1 ARM應用背景11.2 研究內(nèi)容 21.3 研究成果32 STM32處理器概述32.1 STM32 簡介32.1.1 STM32F103VET6 的參數(shù) 42.2 內(nèi)部資源 62.3 CORTEX-M3 內(nèi)核簡介62.4 STM32 SDIO 簡介 72.4.

5、1 SDIO 簡介72.4.2 SDIO功能特性83 SDIO的原理及實現(xiàn)方法 83.1 原理 93.2 SDIO 適配器 103.3 SDIO卡識別過程113.4 SDIO寫數(shù)據(jù)塊123.5 SDIO讀數(shù)據(jù)塊134 FATFS文件系統(tǒng)134.1 FATFS文件系統(tǒng)簡介 134.2 FATFS文件系統(tǒng)移植144.2.1 移植前工作 144.2.2 開始移植 145測試及結(jié)果155.1 JTAG仿真器介紹 165.2 現(xiàn)象及結(jié)果 166 結(jié)論 18致 i小19參考文獻 20桂林電子科技大學實訓(論文)報告用紙第11頁共24頁1 前言1.1 ARM應用背景如今,學習一種處理器的就有許多 ARM內(nèi)核

6、的處理器可供使用,現(xiàn)在社會 已步入嵌入式學習階段。在嵌入式領域,8位處理器已經(jīng)不再勝任一些復雜的應 用,比如GUI, TCP/IP, FILESYSTEM等,而ARM芯片憑借強大的處理能力 和極低的功耗,非常適合這些場合?,F(xiàn)在越來越多的產(chǎn)品在選型的時候考慮到使 用ARM處理器,ARM的應用是相當?shù)膹V泛。ARM勺嵌入式控制應用如:汽車、電子設備、保安設備、大容量存儲器、 調(diào)制解調(diào)器、打印機等。一個典型的 ARM嵌入式工業(yè)控制系統(tǒng)的功能模塊如圖 1-1所示。圖1-1 ARM嵌入式工業(yè)控制系統(tǒng)的功能模塊目前已有超過85%的無線通信設備采用了 ARMi術(shù),ARMZ其高性能和低成 本,在該領域的地位日益

7、鞏固。ARMS此方面的應用如:手提式計算機、移動電 話、PDA。隨著寬帶技術(shù)的推廣,采用 ARMft術(shù)的ADSL®片正逐步獲得競爭優(yōu)勢。此 外,ARMS語音及視頻處理上進行了優(yōu)化,并獲得廣泛支持。ARMJ術(shù)在目前流行的數(shù)字音頻播放器、數(shù)字機頂盒、游戲機、數(shù)碼相機、 數(shù)字式電視機、GPS機頂盒中得到廣泛采用?,F(xiàn)在流行的數(shù)碼相機和打印機中 絕大部分采用ARMS術(shù),手機中的32位SIM智能卡也采用了 ARMft術(shù)。如圖1-2 所示是基于ARMS術(shù)的數(shù)碼相機的功能模塊9 。1.2 研究內(nèi)容本設計旨在加深對 ARM勺學習,鞏固大學四年所學專業(yè)知識,提升動手 能力和思考問題解決問題的能力。本設計

8、選擇意法半導體的STM32F10系歹I處理 器,通過自制STM3加發(fā)板的過程,和對STM32F103C8T6片的研究學習,掌握 其各種外設功能。STM32F103VET6有一個 SDIO 口。 SD/SDIO/MMC機接口可以支持 MMC系 統(tǒng)規(guī)范4.2版中的3個不同的數(shù)據(jù)總線模式:1位(默認)、4位和8位。在8位模式下, 該接口可以使數(shù)據(jù)傳輸速率達到48MHz該接口兼容S的儲卡規(guī)范2.0版。SDIO 存儲卡規(guī)范2.0版支持兩種數(shù)據(jù)總線模式:1位(默認)和4位。目前的芯片版本只能一次支持一個 SD/SDIO/MMC.2版的卡,但可以同時支 持多個MM0.1版或之前版本的卡。除了 SD/SDIO

9、/MMC這個接口完全與 CE-ATA 數(shù)字協(xié)議版本1.1兼容。本實訓的作品是利用基于 ARM Cotex-M3內(nèi)核的嵌入式處理器STM32I帶的 SDIO硬件接口來驅(qū)動SD#,并結(jié)合文件系統(tǒng)FATFS R0.07C來完成一個基于嵌 入式ARM勺SD卡讀寫的作品,現(xiàn)實向SD卡寫入一個txt文件,并讀取SD卡的 文件目標并通過串口打印到 PC機顯示。本文第一章講述了該論文寫作背景, 主要闡述了 ARME用范疇,以及該論文 研究的內(nèi)容;第二章講述了該研究課題使用的核心芯片 STM32F103VET6各項參數(shù);第三章著重介紹了 SDIO的原理及實現(xiàn)方法;第四章著重介紹了 FAT文件系 統(tǒng)的原理;第五章

10、介紹了測試方法和結(jié)果。1.3 研究成果給硬件系統(tǒng)供電(5V),插上JLINK,插上用口線(兩頭都是母的交叉線),插 上MicroSD卡,打開超級終端,配置超級終端為 115200 8-N-1 ,將編譯好的程 序下載到硬件平臺,即可看到超級終端打印出如下信息:圖1-3顯不'結(jié)果圖2 STM32處理器概述2.1 STM32 簡介STM32F103xx增強型系列使用高性能的 ARM/Cortex-M3/32位的RISC內(nèi)核, 工作頻率為72MHz內(nèi)置高速存儲器(高達128K字節(jié)的閃存和20K字節(jié)的SRAM) 豐富的增強I/O端口和聯(lián)接到兩條APB總線的外設。所有型號的器件都包含 2 個12位

11、的ADC、3個通用16位定時器和一個PWMt時器,還包含標準和先進的 通信接口:多達2個I2C和SPI、3個USART一個USEffi一個CANSTM32F103xx增強型系列工作于-40 C至+105 C的溫度范圍,供電電壓 2.0V至3.6V, 一系列的省電模式保證低功耗應用的要求。完整的STM32F103x增強型系列產(chǎn)品包括從36腳至100腳的五種不同封裝 形式;根據(jù)不同的封裝形式,器件中的外設配置不盡相同。下面給出了該系列產(chǎn) 品中所有外設的基本介紹。這些豐富的外設配置,使得 STM32F103xB曾強型微控制器適合于多種應用場合: 電機驅(qū)動和應用控制; 醫(yī)療和手持設備; PC外設和GP

12、ST臺; 工業(yè)應用:可編程控制器、變頻器、打印機和掃描儀; 警報系統(tǒng),視頻對講,和暖氣通風空調(diào)系統(tǒng);2.1.1 STM32F103VET6 的參數(shù)STM32F103VET6芯片的參數(shù)如表2-1表2-1器件功能和配置(STM32F103xx增強型)外設SW32F1O3TXSntS2FW祗sra的解也麗區(qū)字節(jié))32ft4326412832641266412SRAM (K字節(jié))102010202010出20定時器通用2323a233高級1111通信SPI1212222IJCI212212215ABi23233233USB111I1111CAN111111I通用I/O瑞口2632518012位同步AD

13、C21。通道2ia通道216通道CPU頻率72WH1工作電壓2013.6V工作溫度TO至儂* C / -405+105* C封裝VFClFPX 研L0FP4SLQFP64LiQPPlOO, BGA100芯片引腳圖如圖2-2:QS4-I5 ,_ _ pmi o in rijffifSmdffiaQQQQQOi&OOQ< 4 D-Q.ELQ.D.lL-a-O-CLCLQ-LLXCLlQ.lX.E嚴2 片 口 1卷雷> > 0_ ft. CL -nnnnnnnnnnnnrinnnnnHnnnnriinFEZ E PE3CPE4C PE5C PEG亡 匚PCITAMPER-F

14、ITC CPCH-OSC32JN E PC15-OSC32 oirr eVSS 5IZ VDD_5 COSC.IN E OSC . &JT cINF15T 匚PCd E PCI匚 PCS C PC3EVSSA E VAEF. C VREF+亡VDDAC PAO-WKUP cPAI匚 m2 cn nnn n nn n加69367昭酹以 53 跑6leo*他575655£4s?5251 22言0*s裝sgco 需& M gslsL-6斯l?6VDD_2 VSS_2 NCPA 13RA 12PA 11PA 10Fft 9RA 8 PC9 pea PC7 PC6 PD15 P

15、DH PD13P012PD11PD1GPD9PD8 PB15 PB14 PB13 PBIS卷sn- loo> 寸s> 3asr u事 導二Sd lusgd 當口 CL3d s' u M 出 wnjER ,nJZLUJd ET u = 3d 7 口 Dmd 與 u mLUd K usd Su s Z£ u 窯 0 國口 5a siu m a Su Sa 用口芯EL.圖 2-2 STM32F103xx 增強型 LQPFP100 管腳圖2.2 內(nèi)部資源STM32t豐富的內(nèi)部資源,如下所示: RealView MDK (Miertocontroller Developme

16、nt Kit )基于 ARM散控制器 的專業(yè)嵌入式開發(fā)工具; 內(nèi)置閃存存儲器; 內(nèi)置SRAM 嵌套的向量式中斷控制器(NVIC); 外部中斷/事件控制器(EXTI); 時鐘和啟動; 自舉模式; DMA ; RTC儀時時鐘)和后備寄存器; 窗口看門狗; I2C總線; 通用同步/異步接受發(fā)送器(USART) 串行外設接口(SPI); 控制器區(qū)域網(wǎng)絡(CAN); 通用串行總線(USB); 通用輸入/&出接口(GPIO); ADC模擬/數(shù)字轉(zhuǎn)換器); 溫度傳感器; 申行線JTAG調(diào)試口(SWJ-DP2.3 Cortex-M3 內(nèi)核簡介Cortex-M3內(nèi)核包含一個適用于傳統(tǒng) Thumbffi新

17、型Thumb-2指令的譯碼器、 一個支持硬件乘法和硬件除法的先進 ALU控制邏輯和用于連接處理器其他部件 的接口。Cortex-M3處理器是首款基于 ARMv7-M架構(gòu)的ARM處理器。中央 Cortex-M3內(nèi)核使用3級流水線哈佛架構(gòu),運用分支預測、單周期乘法和硬件除法功能實現(xiàn)了出色的效率(1.25DMIPS/MHZ。Cortex-M3處理器是一個32位處 理器,帶有32位寬的數(shù)據(jù)路徑、寄存器庫和基于傳統(tǒng)ARMTt理器的系統(tǒng)只支持 訪問對齊的數(shù)據(jù),沿著對齊的字邊界即可對數(shù)據(jù)進行訪問和存儲。Cortex-M3處理器采用非對齊數(shù)據(jù)訪問方式,使非對齊數(shù)據(jù)可以在單核訪問中進行傳輸。Cortex-M3處

18、理器是專為那些對成本和功耗非常敏感但同時對性能要求又相 當高的應用而設計的。憑借縮小的內(nèi)核尺寸和出色的中斷延遲性能、集成的系統(tǒng)部件、靈活的配置、簡單的高級編程和強大的軟件系統(tǒng),Cortex-M3處理器將成為從復雜的芯片系統(tǒng)到低端微控制器等各種系統(tǒng)的理想解決方案。表2-3為Cortex-M3處理器與ARM7作比較。表 2-3 Cortex-M3 與 ARM7 相比較比較項目ARM7Coriex-Ml架構(gòu)AEMv4T(咨諾儂里 指令和數(shù)據(jù)息端共用,袋出現(xiàn)瓶期ARhfv? M t 皚佛 指令和&據(jù)總統(tǒng)分開,無瓶削指令集位頌M指令+此位TIjuh*指外 兩堂指令之間需要進行狀態(tài)切換ThiiLu

19、b/Thumb-l 指與集1百位和32位指令可直慢混耳.無需狀去切換流水微1裂流水線苫出現(xiàn)轉(zhuǎn)移則將要到新流忒稅,損失慘翥3夔癱水線十分立前第凹現(xiàn)轉(zhuǎn)移時流水甄無靄刷新,凡手無描失性能0.5>5DMIPS-MHzARM 模式)L24HPMIHZ功耗0.28mW.-MHz0.19mW,!Nfflz低功耗犢式無內(nèi)置摩昵黑式而積。.42nmF 怛兩夜0a86jinr內(nèi)核十外設)中斷普通中斷IRQ和快速中斷OQ 太少,大量外設不得不復用中斷下可屏頡中斷NMI+1一謝個物理中斷 號個外設都可以獨占一個中斷,效率高中斯延退北卡時鐘周期,疆惺12個酎鐘周時,最快只需(5個中時壓帙軟件手工壓極,代超長且效率

20、低硬件自動區(qū)相,無需代碼且效率高存能保護無E陵存儲器保井單元(MPU)內(nèi)核寄存器寄存器分為容絹.能構(gòu)復雜,占樓面稅多寄存器不分組C:5P除外腦睹構(gòu)商單工作模式T種工準橇式,比較復雜只有基程碑式和處理黑式兩種,簡單弟除法指令多周期桑法指去,無除法指令三周期乘法指與,2-12周期朦法指令也:慢作無訪問外設重存器需分*德改寫”3步走先進的liil-bMd位鐮作技本 可直接訪問外設寄存器的某個位系統(tǒng)節(jié)指定盹無內(nèi)置系統(tǒng)節(jié)拍定時器,有耐干操作系統(tǒng)移植2.4 STM32 SDIO 簡介2.4.1 SDIO 簡介STM32F103VET6具有一個SDIO接口。SD/SDIO/MMC 主機接口可以支持MMC卡系

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

22、間提供了操作接口。多媒體卡系統(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位(默認)、4位和8位。 與較早的多媒體卡系統(tǒng)規(guī)格版本全兼容(向前兼容)。 與SD存儲卡規(guī)格版本2.0全兼容。 與SD I/O卡規(guī)格版本2.0全兼容:支持良種不同的數(shù)據(jù)總線模式:1位(默 認)和4位。 完全支持CE-ATA功能(與CE-ATA數(shù)字協(xié)議版本1.1全兼容)。 8位總線模式下數(shù)

23、據(jù)傳輸速率可達 48MHz。 數(shù)據(jù)和命令輸出使能信號,用于控制外部雙向驅(qū)動器。2 2) SDIO總線拓撲總線上的通信是通過傳送命令和數(shù)據(jù)實現(xiàn)。在多媒體卡/SD/SD I/O總線上的基本操作是命令/響應結(jié)構(gòu),這樣的總線操 作在命令或總線機制下實現(xiàn)信息交換;另外,某些操作還具有數(shù)據(jù)令牌。在SD/SDIO存儲器卡上傳送的數(shù)據(jù)是以數(shù)據(jù)塊的形式傳輸;在 MMC上傳 送的數(shù)據(jù)是以數(shù)據(jù)塊或數(shù)據(jù)流的形式傳輸;在CE-ATA設備上傳送的數(shù)據(jù)也是以數(shù)據(jù)塊的形式傳輸。3 SDIO的原理及實現(xiàn)方法3.1 原理SDIO包含2個部分: SDIO適配器模塊:實現(xiàn)所有 MMC/SD/SD I/O卡的相關功能,如時鐘的 產(chǎn)生、

24、命令和數(shù)據(jù)的傳送。 AHB總線接口:操作SDIO適配器模塊中的寄存器,并產(chǎn)生中斷和DMA 請求信號。圖3-1 SDIO框圖復位后默認情況下SDIO_D0用于數(shù)據(jù)傳輸。初始化后主機可以改變數(shù)據(jù)總 線的寬度。如果一個多媒體卡接到了總線上,則SDIO_D0、SDIO_D3:0或SDIO_D7:0 可以用于數(shù)據(jù)傳輸。MMC版本V3.31和之前版本的協(xié)議只支持1位數(shù)據(jù)線,所 以只能用SDIO_D0。如果一個SD或SD I/O卡接到了總線上,可以通過主機配置數(shù)據(jù)傳輸使用 SDIO_D0或SDIO_D3:0。所有的數(shù)據(jù)線都工作在推挽模式。SDIO_CMD有兩種操作模式: 用于初始化時的開路模式(僅用于MMC

25、版本V3.31或之前版本) 用于命令傳輸?shù)耐仆炷J剑⊿D/SD I/O卡和MMC V4.2在初始化時也使用 推挽驅(qū)動)SDIO_CK是卡的時鐘:每個時鐘周期在命令和數(shù)據(jù)線上傳輸 1位命令或數(shù) 據(jù)。對于多媒體卡 V3.31協(xié)議,時鐘頻率可以在 0MHz至20MHz間變化;對于 多媒體卡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 引腳

26、定義引腳方向說明SDJC_CK輸出然媒體卡/smsDi??〞r鐘.這是從主機至卡的時鐘畿.SDIO_CMD雙向多媒體卡用口華口IQ卡命令*這是雙向的命令響應信號世.SDIO_D7 0雙向多媒體卡伯D,SDIO"1(據(jù)n這些是雙向的數(shù)據(jù)總線匚3.2 SDIO適配器下圖是簡化的SDIO適配器框圖:酊I口送配裾££llD七寓$010 D|7 0HCLK'2SUIOCLK$010 CMD和AH目 接口圖3-2 SDIO適配器 命令通道狀態(tài)機(CPSM)當寫入命令寄存器并設置了使能位, 開始發(fā)送命令。命令發(fā)送完成時,命令 通道狀態(tài)機(CPSM)設置狀態(tài)標志并在不需要響

27、應時進入空閑狀態(tài)(見下圖)。當收 到響應后,接收到的CRC碼將會與內(nèi)部產(chǎn)生的CRC碼比較,然后設置相應的狀 態(tài)標志。當進入等待(Wait)狀態(tài)時,命令定時器開始運行;當 CPSM進入接收 (Receive犬態(tài)之前,產(chǎn)生了超時,則設置超時標志并進入空閑 (Idle)狀態(tài)。 命令格式命令:命令是用于開始一項操作。主機向一個指定的卡或所有的卡發(fā)出帶地 址的命令或廣播命令(廣播命令只適合于 MMC V3.31或之前的版本)。命令在 CMD線上串行傳送。所有命令的長度固定為 48位,下表給出了多媒體卡、SD 存儲卡和SDIO卡上一般的命令格式。CE-ATA命令是MMC V4.2命令的擴充, 所以具有相同

28、的格式。命令通道操作于半雙工模式,這樣命令和響應可以分別桂林電子科技大學實訓(論文)報告用紙第15頁共24頁發(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)命令,并接收操作條件3 .得到的響應是所有卡的操作條件寄存器內(nèi)容的線與”4 .不兼

29、容的卡會被置于非激活狀態(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),并不再響應新的識別過程,同時它的輸出驅(qū)動從開路轉(zhuǎn)變?yōu)橥仆炷?式。8 . SDIO卡主機重復上述步

30、驟5至7,直到收到超時條件。對于SD卡而言,卡識別過程以時鐘頻率 Fod開始,所有SDIO_CMD輸出 為推挽驅(qū)動而不是開路驅(qū)動,識別過程如下:1 .總線被激活2 . SDIO 卡主機廣播發(fā)送 SEND_APP_OP_COND(ACMD41)命令3 .得到的響應是所有卡的操作條件寄存器的內(nèi)容4 .不兼容的卡會被置于非激活狀態(tài)5 . SDIO卡主機廣播發(fā)送 ALL_SEND_CID(CMD2)至所有激活的卡6 .所有激活的卡發(fā)送回他們唯一卡識別號(CID)并進入識別狀態(tài)。7 . SDIO卡主機發(fā)送SET_RELATIVE_ADDR(CMD3)命令和一個地址到一個 激活的卡,這個新的地址被稱為相對

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

32、個卡轉(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ù)塊命令的卡 應該始終能夠接收由 WRITE_BL_LEN定義的數(shù)據(jù)塊。如果CRC校驗錯誤,卡 通過SDIO_D信號線指示錯誤,傳送的數(shù)據(jù)被丟棄而不被寫入,所有后續(xù)(在多塊寫模式下)傳送的數(shù)據(jù)塊將被忽略。如果主機傳送部分數(shù)據(jù),而累計的數(shù)據(jù)長度未與數(shù)據(jù)塊對齊,當不允許塊錯 位(未設置CSD的參數(shù) WRITE_BLK_MISALIGN),卡將在第

33、一個錯位的塊之前 檢測到塊錯位錯誤(設置狀態(tài)寄存器中的ADDRESS_ERROR錯誤位)。當主機試 圖寫一個寫保護區(qū)域時,寫操作也會被中止,此時卡會設置 WP_VIOLATION位。設置CID和CSD寄存器不需要事先設置塊長度,傳送的數(shù)據(jù)也是通過CRC 保護的。如果CSD或CID寄存器的部分是存儲在 ROM中,則這個不能更改的 部分必須與接收緩沖區(qū)的對應部分相一致, 如果有不一致之處,卡將報告一個錯 誤同時不修改任何寄存器的內(nèi)容。有些卡需要長的甚至不可預計的時間完成寫一 個數(shù)據(jù)塊,在接收一個數(shù)據(jù)塊并完成 CRC檢驗后,卡開始寫操作,如果它的寫 緩沖區(qū)已經(jīng)滿并且不能再從新的 WRITE_BLOC

34、K命令接受新的數(shù)據(jù)時,它會把 SDIO_D信號線拉低。主機可以在任何時候使用 SEND_STATUS(CMD13)查詢卡 的狀態(tài),卡將返回當前狀態(tài)。READY_FOR_DATA狀態(tài)位指示卡是否可以接受 新的數(shù)據(jù)或?qū)懖僮魇欠襁€在進行。主機可以使用CMD7(選擇另一個卡)不選中某個卡,而把這個卡置于斷開狀態(tài),這樣可以釋放SDIO_D信號線而不中斷未完成 的寫操作;當重新選擇了一個卡,如果寫操作仍然在進行并且寫緩沖區(qū)仍不能使 用,它會重新通過拉低SDIO_D信號線指示忙的狀態(tài)3.5 SDIO讀數(shù)據(jù)塊在讀數(shù)據(jù)塊模式下,數(shù)據(jù)傳輸?shù)幕締卧菙?shù)據(jù)塊,它的大小在CSD中(READ_BL_LEN)定義。如果設

35、置了 READ_BL_PARTIAL ,同樣可以傳送較小的 數(shù)據(jù)塊,較小數(shù)據(jù)塊是指開始和結(jié)束地址完全包含在一個物理塊中, READ_BL_LEN定義了物理塊的大小。為保證數(shù)據(jù)傳輸?shù)恼_,每個數(shù)據(jù)塊后 都有一個 CRC校驗碼。CMD17(READ_SINGLE_BLOCK)啟動一次讀數(shù)據(jù)塊操 作,在傳輸結(jié)束后卡返回到發(fā)送狀態(tài)。CMD18(READ_MULTIPLE_BLOCK)啟動一次連續(xù)多個數(shù)據(jù)塊的讀操作。主機可以在多數(shù)據(jù)塊讀操作的任何時候中止操作,而不管操作的類型。發(fā)送停止傳輸命令即可中止操作。如果在多數(shù)據(jù)塊讀操作中(任一種類型)卡檢測到錯誤(例如:越界、地址錯位 或內(nèi)部錯誤),它將停止數(shù)據(jù)

36、傳輸并仍處于數(shù)據(jù)狀態(tài);此時主機必須發(fā)送停止傳 輸命令中止操作。在停止傳輸命令的響應中報告讀錯誤。如果主機發(fā)送停止傳輸命令時,卡已經(jīng)傳輸完一個確定數(shù)目的多個數(shù)據(jù)塊操 作中的最后一個數(shù)據(jù)塊,因為此時卡已經(jīng)不在數(shù)據(jù)狀態(tài),主機會得到一個非法命 令的響應。如果主機傳輸部分數(shù)據(jù)塊,而累計的數(shù)據(jù)長度不能與物理塊對齊同時 不允許塊錯位,卡會在出現(xiàn)第一個未對齊的塊時檢測出一個塊對齊錯誤,并在狀態(tài)寄存器中設置ADDRESS_ERROR錯誤標志。4 FatFS文件系統(tǒng)4.1 FatFS文件系統(tǒng)簡介FAFFS是面向小型嵌入式系統(tǒng)的一種通用的 FAT文件系統(tǒng)。FATFS完全是 由AISI C語言編寫并且完全獨立于底層的

37、I/O介質(zhì)。因此它可以很容易地不加 修改地移植到其他的處理器當中,如 8051、PIC、AVR、SH、Z80、H8、ARM 等。FATFS支持FAT12、FAT16、FAT32等格式,所以我們利用前面寫好的 SDIO 驅(qū)動,把FATFS文件系統(tǒng)代碼移植到工程之中,就可以利用文件系統(tǒng)的各種函 數(shù),對已格式化的SD卡進行讀寫文件了。4.2 FatFS文件系統(tǒng)移植4.2.1 移植前工作在移植FATFS文件系統(tǒng)之前,我們先要到 FAT的官網(wǎng)獲取源碼,版本為 R0.07C。解壓之后可看到里面有 doc和src這兩個文件夾。doc文件夾里面是 一些使用文檔,src里面是文件系統(tǒng)的源碼。圖4-1 FATFS

38、源碼4.2.2 開始移植首先我們要獲取一個完全沒有修改過的文件系統(tǒng)源碼,然后在 10-MicroSD 卡這個文件夾下的實驗代碼下移植,這個實驗代碼實現(xiàn)的是卡的底層的塊操作。 注意,我們在移植這個文件系統(tǒng)的過程中會盡量保持文件系統(tǒng)源碼的純凈,盡量做到在修改最少量的源碼的情況下移植成功。FATFS模塊在移植的時候,我們一般只需要修改 2個文件,即ffconf.h和 diskio.c。FATFS模塊的所有配置項都是存放在 ffconf.h里面,我們可以通過配置 里面的一些選項,來滿足自己的需求。接下來我們介紹幾個重要的配置選項。1) _FS_TINY。這個選項在R0.07版本中開始出現(xiàn),之前的版本都

39、是以獨立 的C文件出現(xiàn)(FATFS和Tiny FATFS),有了這個選項之后,兩者整合在一起 了,使用起來更方便。我們使用 FATFS,所以把這個選項定義為0即可。2) _FS_READONLY。這個用來配置是不是只讀,本章我們需要讀寫都用, 所以這里設置為0即可。桂林電子科技大學實訓(論文)報告用紙第19頁共24頁3) _USE_STRFUNC。這個用來設置是否支持字符串類操作,比如 f_putc, f_puts等,本章我們需要用到,故設置這里為 1。4) _USE_MKFS。這個用來定時是否使能格式化,本章需要用到,所以設 置這里為1。5) _USE_FASTSEEK。這個用來使能快速定位

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

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

42、前面已經(jīng)有介紹(之前介 紹的9個配置),我們將對應配置修改為我們介紹時候的值即可,其他的配置用 默認配置。第三步,因為FATFS模塊完全與磁盤I/O層分開,因此需要下面的函數(shù)來 實現(xiàn)底層物理磁盤的讀寫與獲取當前時間。底層磁盤I/O模塊并不是FATFS的一部分,并且必須由用戶提供。5測試及結(jié)果5.1 JTAG仿真器介紹J-Link是支持仿真ARM內(nèi)核芯片的JTAG仿真器。配合IAR EWARM ,ADS , KEIL , WINARM , RealView等集成開發(fā)環(huán)境支持所有 ARM7/ARM9 內(nèi)核芯片 的仿真,通過RDI接口和各集成開發(fā)環(huán)境無縫連接,操作方便、連接方便、簡 單易學,是學習開

43、發(fā)ARM最好最實用的開發(fā)工具。DQ電子推出的J-LinkV7仿真器采用原版固件,參照原版原理圖,經(jīng)過 DQ 團隊的長時間精工制作,板型合理,元件布局美觀大方,走線嚴謹精致,并且每 一個產(chǎn)品都經(jīng)過功能和老化測試,功能完全與原版一致,支持在線升級。J-Link ARM主要特點: IAR EWARM集成開發(fā)環(huán)境無縫連接的JTAG仿真器。 支持所有ARM7/ARM9內(nèi)核的芯片,以及cortexM3,包括Thumb模式。 支持ADS,IAR,KEIL,WINARM,REALVIEW等幾乎所有的開發(fā)環(huán)境。 下載速度高達 ARM7:600kB/s , ARM9:550kB/s ,通過DCC最高可達 800

44、kB/s*最高 JTAG 速度 12MHz。 目標板電壓范圍1.2V3.3V。 自動速度識別功能。 監(jiān)測所有JTAG信號和目標板電壓。 完全即插即用。 使用USB電源(可接通J12跳線給目標板供電,出廠時未接通)。 帶USB連接線和20芯JTAG連接排線。 支持多JTAG器件串行連接。 標準20芯JTAG仿真插頭。 帶 J-Link TCP/IP server,允許通過 TCP/IP 網(wǎng)絡使用 J-Link支持的內(nèi)核: ARM7TDMI (Rev 1); ARM7TDMI (Rev 3); ARM7TDMI-S (Rev 4); ARM720T ; CORTEXM3。5.2 現(xiàn)象及結(jié)果給硬件系

45、統(tǒng)供電(5V),插上JLINK,插上用口線(兩頭都是母的交叉線),插上MicroSD卡,打開超級終端,配置超級終端為115200 8-N-1,將編譯好的程序下載到硬件平臺,即可看到超級終端打印出如下信息:圖5-1測試效果圖6結(jié)論很多單片機系統(tǒng)都需要大容量存儲設備,以存儲數(shù)據(jù)。目前常用的有U盤,F(xiàn)LASH芯片,SD卡等。他們各有優(yōu)點,綜合比較,最適合單片機系統(tǒng)的莫過于 SD卡了,它不僅容量可以做到很大(32Gb以上),而且支持SPI接口,方便移 動,并且有幾種體積的尺寸可供選擇(標準的 SD卡尺寸,以及TF卡尺寸等), 能滿足不同應用的要求。本實訓的作品是利用基于ARM Cotex-M3內(nèi)核的嵌

46、入式處理器STM32自帶的SDIO硬件接口來驅(qū)動SD卡,并結(jié)合文件系統(tǒng) FATFS R0.07C來完成一個基于嵌入式 ARM的SD卡讀寫的作品,現(xiàn)實向SD卡寫入一 個txt文件,并讀取SD卡的文件目標并通過串口打印到 PC機顯示。通過本實訓, 我更加掌握了嵌入式ARM STM32的外圍應用設計以及SD卡的驅(qū)動和文件系統(tǒng) 的使用方法。本實訓從最初的選題到系統(tǒng)設計、程序編寫直到論文的撰寫過程中都得到了 孫安青老師的悉心指導與指正,您細心教導和熱心關懷使得我能夠順利完成本次 實訓任務。孫老師熱心的工作態(tài)度、嚴謹?shù)闹螌W態(tài)度,也使我受益匪淺,終生難 忘。同時要感謝我們班各位同學,你們細心地給我分析該設計

47、的設計流程,耐心地 講解程序運行過程,并給設計的不足提出很好的建議和方針 ,是你們的幫助,讓我 對本設計理解更透徹,在此表示衷心地感謝.大學里我并不孤獨,在老師和同學們陪伴下,我度過了愉快的四年,在此衷 心感謝大家桂林電子科技大學實訓(論文)報告用紙第20頁共24頁參考文獻1康華光.電子技術(shù)基礎模擬部分第四版M.北京:高等教育出版社,1999.6.2閻石.數(shù)字電子技術(shù)基礎第四版 M.北京:高等教育出版社,1999.6.3王福瑞等.單片微機測控系統(tǒng)設計大全.北京航空航天大學出版社,1998(331 337).4寧改娣,楊拴科.DSP控制器原理及應用M.科學出版社,2002.5周立功等.ARM嵌入

48、式系統(tǒng)基礎教程M.北京:北京航空航天大學出版社,2005.1.6周立功等.ARM嵌入式系統(tǒng)實驗教程M.北京:北京航空航天大學出版社,2005.1.7唐清善.Protel DXP高級實例教程M.中國水利水電出版社,2004.4.8羅浩等.一種新白基于ARMJ數(shù)據(jù)采集系統(tǒng)設計J.信陽師范學院學報(自然科學版), 2006.4.9秦偉等.基于ARM處理器的數(shù)據(jù)采集系統(tǒng)的設計J.自動化技術(shù)與應用.2006年第1期.10杜春雷.ARMfr系結(jié)構(gòu)與編程.清華大學出版社,2003.11李寧.ARMFF發(fā)工具ReaIView MDK使用入門M.北京航空航天大學出版社 ,2008.12李寧.基于MDKJ STM

49、3處理器開發(fā)應用M.北京航空航天大學出版社,2008.13劉黎明等.單片機與嵌入式系統(tǒng)應用J.英文刊名MICROCOTROLLER&EMBEDDSYSTEM.2002.14趙葵銀,王輝,吳俊.電壓空間矢量控制的三相PWME流器白研究J.上海第二工業(yè)大學學報,2003(2):43-50.15 Malinowski Mariusz.Jasin'ski Marek,Kazmierkowski Marian P.Simple Direct Power Control of Three-Phase PWM Rectifier Using Space-Vector ModulationJ.

50、IEEE Transactions on Industrial,Electronics,2004,51(2):447-454.桂林電子科技大學實訓(論文)報告用紙第23頁共24頁附錄一硬件原理圖1 .電源部分:POWER? 圣 |PWSV2.STM32處理器部分:MCUF&:0F»“ I1丁川口仙GIIFK QU nWTW FfflF4 謁 MTVTVMMIW E %»HJ懼i m/戶elcHt rujifij 2 "為':;"“ :!gX u_ H.:點幾口PllrMX&jun* 1-E.nwi <miwxii> a

51、m uA:T 門 上 A i 七tilieWwutT 二號M r?(!hULllAtfiYTuLm-OMjA 3 FUUt XjM" .口UgFXiTMlQjWIMlM tAJlAJTWMdtUluvJTioDaTi t.rHildnMjBlJ. MMsit 尸F(xiàn)kuocJ rkkirzivrbfmwci ana lOiVTkte C3lL«HeM£ a. Uk4Hi. MLriU£b-SWTFIMC SCLEM b b 3/1 TM hwjc產(chǎn)TH3 apUFIijMXH>Ttal! Lk-utUj UiU Ob RM-M"l3Ufl3iDlHil' Lm KjUrfA-4 TWAJ Wl3 0 EK Ka ul Mf-hrlKJM'i Iju*-UA v H. KdJfMi 4 TE13T r CXrowatfuiLK wrtCK 耐 KxbUCU_OJ1=+:杓t|-Hlfc-L-p-.

溫馨提示

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

評論

0/150

提交評論