在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            關 閉

            新聞中心

            EEPW首頁 > 工控自動化 > 設計應用 > 基于STM32F103XX微處理器的Micr0 SD卡讀寫

            基于STM32F103XX微處理器的Micr0 SD卡讀寫

            作者: 時間:2010-12-23 來源:網絡 收藏

            從Micro SD卡中寫入一個塊與讀取塊相似。主機發(fā)送CMD24(MSD_WRITE_BLOCK)命令啟動寫操作過程,Micro SD卡將以R1命令響應格式進行應答。如果命令響應,則進行寫操作,主機發(fā)送起始令牌,然后發(fā)送固定數量的字節(jié)(512 B),返回一個數據響應令牌,指示需要寫入的數據是否完成,最后是2個字節(jié)的CRC校驗,寫入一個數據塊由函數u8 MSD_WriteBuffer(u8*pBuffer,u32 WriteAddr,u32 Num-ByteToWrite)來完成,向Micro SD卡寫數據函數中的參數與向Micro sD卡讀數據函數中的參數相同。讀/寫單塊數據流程如圖3所示。
            c.JPG

            2.3 Micro SD卡的文件
            由于需要Micro SD卡上的數據能夠在計算機上直接讀/寫,所以Micro SD卡文件系統必須與計算機的文件系統一致。目前常用的文件系統主要有微軟的FATl2,FATl6,FAT32,NTFS,以及Linux系統下的 EXT2,EXT3等。由于微軟Windows的廣泛應用,在當前的消費類電子產品中,用得最多的還是FAT文件系統,如U盤、MP3,MP4,數碼相機等,所以找到一款容易移植和使用、占用硬件資源相對較小而功能又強大的FAT開源文件系統,對于單片機系統設計者來說是很重要的。所以在Micro SD卡機制上,移植了FAT FS文件系統。FAT FS是一種完全免費開源的FAT文件系統模塊,是專門為小型嵌入式系統而設計的。它完全用標準C語言編寫,所以具有良好的硬件平臺獨立性,可以移植到多種平臺而只需做簡單的修改。需要使用者編寫移植代碼的是FAT FS提供的底層接口,包括介質讀/寫接口DiskIO和供給文件創(chuàng)建修改時間的實時時鐘RTC。
            FAT FS Module一開始就是為了能在不同的單片機上使用而設計的,所以具有良好的層次結構,如圖4所示。最頂層是應用層,使用者無需理會FAT FSModule的內部結構和復雜的FAT協議,只需要調用Module提供給用戶的一系列應用接口函數,如f-open,f-read,f- write,f-Close等就可以像在PC上讀/寫文件那樣簡單。
            2.3.1 文件(或目錄)創(chuàng)建
            在Micro SD卡上創(chuàng)建文件(或目錄)的過程就是在文件目錄表中申請登記項的過程。首先程序要檢測文件目錄表(FDT)中是否已經存在該文件,然后申請空閑的FDT 表項。如果存在同名的文件,則返回,創(chuàng)建文件(或目錄)失敗。申請FDT表項成功后,程序會檢測磁盤剩余的空間是否滿足新創(chuàng)文件數據長度的需要,而后尋找第一個空閑的簇號,并修改對應的FDT表項。根據文件的大小,不斷循環(huán)查找下一個空閑的簇,同時修改當前FAT項目為下一個簇號,直到最后一個FAT項寫入0xFFFFH,以表示文件結束。新建目錄時,只需要提供函數CreateDir()函數新建目錄的目錄名,其過程和創(chuàng)建文件一樣,只是不需要提供數據相關的信息。
            2.3.2 文件的讀寫
            Micro SD卡上的文件都是以簇(Cluster)為單位存取的。當讀取Micro SD卡上的文件時,首先要根據文件名查找到文件加目錄登記項(F-DT),根據文件中目錄登記項中起始簇號即可以找到文件在數據DATA區(qū)中的第一簇內容,并且可以在FAT表中找到第二個簇號。根據第二個簇號又能讀取第二簇的數據和FAT中第三個簇號,這樣就可以讀取全部文件數據。寫文件時要保證 FAT1和FAT2內容的一致性,即要對兩個FAT進行同樣的寫操作。當要在已有的文件中增添數據時,程序首先要分析原有文件最后一個扇區(qū)還有多少剩余空閑字節(jié)數,以便新添加數據與這最后一個扇區(qū)匯合,超過扇區(qū)的數據在申請新的空閑FAT表項時,其過程與新建文件類似。在文件的最后一簇填寫0xFFFFH 表示文件結束。
            2.3.3 文件(或目錄)的刪除
            刪除文件的操作需要提供函數DeleteFile()刪除文件的文件名和擴展名。刪除文件時,不涉及數據區(qū)的操作,只須在文件的目錄登記項(FDT)上做一個刪除標記,并把文件在FAT表中所占用的簇標記為“空簇”。
            程序先在FDT中查找是否有同名文件,如果存在同名文件,則將在對應的FDT表項中第一個字節(jié)內容改為0xE5H,表示該FDT表項的內容已經被刪除,新建文件可以使用該表項。最后還需要將FAT表中所有文件相關簇項目的內容都改成Ox0000,釋放出所對應的Micro SD卡磁盤空間。若未找到同名文件,則返回一個錯誤值。刪除目錄的操作只需要提供函數DeleteDir()刪除目錄的目錄名。程序先在FDT中查找是否有同名目錄項,如果存在同名目錄項,則將對應的FDT表項中第一個字節(jié)內容改為0xE5H。然后讀出對應目錄的起始簇號,在該簇號中去刪除該目錄下的所有文件。

            3 結語
            該方案已經成功應用于遠程智能心臟檢測儀器中,為心臟檢測儀器的數據采集提供了一種非易失性存儲器的解決方案,遠程智能心臟檢測儀器采集得到的數據信息以FAT32標準文件的格式保存于Micro sD卡中,數據文件可在Windows下讀取,在保證高性價比的同時,又方便了數據的進一步分析和處理。

            本文引用地址:http://www.biyoush.com/article/162539.htm

            上一頁 1 2 3 下一頁

            關鍵詞: 存儲 數據

            評論


            相關推薦

            技術專區(qū)

            關閉