国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

ATmega128L單片機的Micro SD卡讀寫

發布時間:2010-2-22 15:45    發布者:李寬
關鍵詞: Micro , SD卡 , 單片機
引言

隨著工業控制系統功能的增強,系統對于存儲介質的安全、容量、性能的要求越來越高。Micro SD卡是在SD卡和Mini SD卡基礎上發展起來的一種多功能存儲卡,具備串行和隨機存取能力,可以通過專用優化速度的串行接口訪問,數據傳輸可靠,安全性好,傳輸速度快,存儲容量大,體積小,被列為目前全球最小的迷你存儲卡。Micro SD卡支持SD模式和SPI模式。隨著高性能單片機的性能不斷提高,利用高性能、低功耗的AVR 8位ATmegal28L單片機的串行外設接口SPI與Micro SD卡之間進行高速同步數據傳輸,設計開發了一種嵌入式文件系統。

1 硬件電路設計

MicrO SD卡的接口可以支持兩種操作模式:SD模式和SPI模式。主機系統可以選擇其中任一模式。SD卡模式允許4線的高速數據傳輸,傳輸速率高,但是大部分單片機無此接口,使用軟件模擬協議復雜。SPI模式使用簡單通用的SPI通道接口就可實現數據傳輸,目前大多數單片機提供SPI接口。SPI模式的優勢在于可以使用標準主機,從而把外設減少到最低。SPI模式相對于SD模式的缺點是損失了傳輸速度;但是目前的微處理器的處理速度越來越高,利用SPI模式大都能滿足工程需要。

Micro SD卡要求用全雙工、8位的SPI操作。

ATmegal28L單片機和Micro SD卡之間只需要4根信號線就可以完成數據的讀寫,當CS信號線為低電平時,主機開始所有的總線傳輸。數據從單片機的MOSI引腳同步輸入Micro SD卡的DI引腳,并由Micro SD卡的DO線同步輸入單片機的MISO引腳,數據在CLK信號的上升沿同步輸入和輸出。在每個數據傳輸的結尾還必須提供8個額外的時鐘,以允許 Micro SD卡完成任何未完結的操作。由于Micro SD卡的電壓為3.3 V,所以選擇需要支持3.3 V的I/O端口輸出的ATmegal28L單片機。另外,使用SPI模式時,為了防止在無卡接人或卡驅動器呈高阻態時總線懸空,根據SD卡規范,這些信號需要在主機端用10 kQ~100 kΩ的上拉電阻,其硬件連接電路如圖1所示。



2 軟件設計

2.1 Micro SD卡初始化為SPI總線模式

ATmegal28L單片機包含一個串行外設接口SPI,可以方便地對Micro SD卡接口進行配置。為了配置時鐘和數據長度,需要對SPI控制寄存器SPCR和SPI狀態寄存器SPSR進行設置:使能SPI,選擇單片機為主機模式,時鐘上升沿鎖存數據,并且對SPI時鐘進行設置。Micro SD卡的SPI模式通信由主機控制。每一個指令或數據塊由8位的字節和CS標志構成,SPI通信由指令、響應和數據組成。主機先將Micro SD卡的片選CS置低,激活MicroSD卡進人工作狀態。

剛上電時,Micro SD卡缺省使用專有的SD總線協議。將Micro SD卡切換到SPI模式,主機需要發出命令(2MD0(GO_IDLE_STATE)。Micro SD卡會檢測到SPI模式選擇信息,因為卡選擇(CS)引腳在該命令和其他所有SPI命令傳送過程中都保持為低電平。Micro SD卡以R1作為響應。空閑狀態位被置為高電平,此時Micro SD卡進入空閑狀態,此階段的SPI時鐘頻率不能超過400kHz(將SPCR寄存器設置為0x53)。Micro SD卡進入SPI模式后,主機應該先發一條初始化指令CMD1。此時可將SPI頻率設置為高速模式(將SPCR寄存器設置為0x50)。然后發送命令 CM1359決定是否開啟CRC校驗,設置讀、寫塊數據長度,最后延遲8個時鐘后返回。MicroSD初始化流程如圖2所示。



2.2 Micro SD卡讀寫單塊數據

從Micro SD卡中讀取一個數據塊只需要主機發送CMDl7(READl_SINGLE_BLOCK)命令,并將起始地址作為參數(此地址必須和介質上一個塊的起始位置對齊),然后.Micro SD卡會驗證這個字節地址,并以一個R1命令作為響應。完成了Micro SD卡讀取操作后,先發送一個起始數據命令,接著發送固定數量的數據,最后是兩個字節CRC校驗。

從Mimro SD卡中寫入一個數據塊和讀取數據塊相似,需要主機發送CMI)24(wRITE_BLOCK)命令啟動寫操作過程,Micro SD卡將以R1命令響應格式進行應答。如果命令響應,則進行寫操作,主機發送起始令牌,然后發送固定數量的數據字節(512字節),返回一個數據響應令牌指示需要寫入的數據是否完成,最后是兩個字節的CRC校驗,讀寫單塊數據流程如圖3所示。



2.3 Micro SD卡的文件存儲

為了方便ATmegal28L單片機對Micro SD卡中文件進行操作,以及要使Micro sD卡的數據能在PC機上得到正確的訪問,需要在Micro SD卡上創建它們支持的文件系統,這就需要設計自己的文件管理系統FAT。FAT文件系統有FATl2、FATl6、FAT32,它們的主要不同是在磁盤分配表結構中每個記錄所占的位數不同。FAT32文件分配表每一表項為32位。本文選擇建立FAT32文件系統。

文件分配表系統的分區應該有以下幾部分:

①保留區,FAT32稱這個區域為引導扇區(bootsec-tOr)。它是操作系統可以直接訪問的第一個扇區,主要包括與引導操作系統有關的引導參數和引導程序,還有就是與FAT文件系統有關的BPB參數(Bios ParameterBlock)。

②文件分配表,記錄磁盤上簇的分配情況,在條件允許的情況下,通常都會把文件分配表全部讀到內存中去。

③根目錄區,記錄根目錄的信息。文件和目錄數據區,是各種文件數據的實際存放區域。

一個文件管理系統的工作過程主要有三步:第一步是讀取MBR區,主要是讀DPT表,了解存儲設備分區情況。第二步,讀取BPB信息,確定FAT文件系統的各種基本參數。第三步,顯示當前目錄位置。文件系統的實現,就是把對應的文件目錄操作拆成相應的扇區讀寫命令就可以了。因此,應該在FAT初始化的時候將讀寫扇區函數指針指向Micro SD卡的讀寫函數:



2.4 FAT32文件系統應用接口函數的實現

FAT32文件系統向應用層提供的接口有:FAT_FindFreeCluster(),查找空簇;FAT_ModifyFAT(),修改FAT 項;FAT_OpenDir(),打開目錄;FAT_MkDir(),建目錄;FAT_RmI)ir(),刪除目錄;FAT_Rename(),重命名;FAT_Create(),創建文件;FAT_Open(),打開文件;FAT_write(),寫文件;FAT_Read(),讀文件;FAT_Close(),關閉打開文件;FAT_Delete(),刪除文件。下面對文件的打開、讀/寫和刪除函數接口作詳細介紹。

2.4.1 文件的打開

在該文件系統中,要讀/寫一個文件必須先打開它,這里通過調用函數FAT_Open()實現,文件的打開可以用只讀、只寫、讀寫的方式打開。其中,以只讀的方式打開文件時,如果文件不存在,則打開文件錯誤;以只寫的方式打開文件,如果文件存在,則文件先被刪除然后再建立這個文件;以讀寫的方式打開文件與只寫方式不同,若文件存在,則不會被刪除而是直接打開,否則就和只寫方式一樣。下面以只寫方式打開文件為例:

首先,函數要查找空閑的打開文件登記項,如果沒有找到則不能打開文件,如果找到則記錄。然后,獲取文件的內部名稱及所在目錄的首簇號,判斷目錄是否存在。最后,獲取:FDT登記項,判斷是否為目錄,刪除文件,添加FDT表項,修改打開文件的信息登記項,返回句柄。文件以只寫方式打開文件的流程如圖4所示。



2.4.2 文件的讀/寫

SD卡上文件都是以簇為單位存取的。讀SD卡上的文件,首先要在FAT初始化之前對SD卡初始化,將FAT中讀寫一個扇區指向SD卡中讀寫扇區函數,然后獲取文件所在邏輯盤的信息,計算數據所在扇區,讀取扇區中的數據,最后調整文件指針。



2.4.3 文件的刪除

刪除文件時,不涉及數據區的操作,只須在文件的目錄登記項上作一個刪除標記,并把文件在FAT表中所占用的簇標記為“空簇”。



結語

本設計將Micro SD卡的存儲方式應用到電腦橫機控制系統中,簡化了花型文件數據存儲設計,減小了系統的尺寸,提高了系統的可靠性,使得花型文件的讀出和存取簡單易行,裁剪了FAT32實現了嵌入式文件系統,提高了系統的存儲能力。采用ATmegal28L高性能單片機的串行外設接口SPI,滿足訪問Micro SD卡的功能要求,加快了整個系統的設計進程。實踐證明,該文件系統讀取Mi—cro SD卡上花型文件的速度滿足該控制系統的要求。該嵌入式文件系統只需對底層驅動進行簡單修改就可移植到CF卡、閃存等其他的存儲介質上。

參考文獻

   1. 陳冬云 ATmega128 單片機原理與開發指導 2006
   2. 段勇 基于MSP430單片機的SD卡讀寫 2007(9)
   3. 張洪濤.莫文承.李兵兵 基于 SPI協議的SD卡讀寫機制與實現方法 [期刊論文] -電子元器件應用2008(3)
   4. 鄧劍.楊曉非.廖俊卿 FAT 文件系統原理及實現 [期刊論文] -計算機與數字工程2005(9)
   5. 左源.劉新寧.師超 一種SD卡控制器的硬件實現 [期刊論文] -電子器件2007(2)

作者:西安工程大學 朱大銳 張團善 高文 來源:單片機與嵌入式系統應用 (5)
本文地址:http://m.qingdxww.cn/thread-8402-1-1.html     【打印本頁】

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

廠商推薦

  • Microchip視頻專區
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿澤電子(Mouser)專區

相關在線工具

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 老色批午夜免费视频网站 | 精品国产福利在线观看一区 | 国产精品一区在线观看 | 久久青青草原精品影院 | 韩国高清a在线观看 | 高颜值露脸极品在线播放 | 国产成人在线观看免费网站 | 久热中文字幕在线精品首页 | 国产成人亚洲影视在线 | 亚洲男人天堂视频 | 日韩影音 | 亚洲欧美一区二区三区久本道 | 一级毛片成人免费看a | 欧美成人免费tv在线播放 | 国产网曝门 | 国产a自拍 | 亚洲国产精品一区二区久久 | 色综合久久一区二区三区 | www.天天操.com | 91亚洲精品第一综合不卡播放 | 国内久久久久高清影视 | 999av| 青青草国产成人久久91网 | 91香蕉视频导航 | 青青在线精品2022国产 | 欧美一级欧美三级在线 | 蜜臀久久99精品久久久久久 | 视频一区二区欧美日韩在线 | 婷婷五月天.com | 欧美香蕉视频 | 四虎4hu永久免费国产精品 | avtom影院永久转四虎入口 | 麻豆日韩国产精品欧美在线 | 天堂亚洲国产日韩在线看 | 91极品哺乳期女神挤奶在线 | 色狗av| 国产一区二区三区免费视频 | 一级特黄女人生活片 | 亚洲三级在线免费观看 | 久久福利资源站免费观看i 久久福利资源网站免费看 久久福利影院 | 日韩欧一级毛片在线播无遮挡 |