• <center id="ckp5g"></center>
    <thead id="ckp5g"><video id="ckp5g"></video></thead>

      <bdo id="ckp5g"></bdo>
      1. <button id="ckp5g"><video id="ckp5g"><small id="ckp5g"></small></video></button>
        中文字幕av日韩精品一区二区,少妇厨房愉情理伦片bd在线观看 ,久久久久人妻精品一区三寸蜜桃 ,91久久精品亚洲中文字幕无码,三级国产三级在线,A亚洲VA欧美VA国产综合,无码人妻AV一区二区三区蜜臀,日韩精品久久久久久免费

        收藏壹芯微 | 在線留言| 網站地圖

        您好!歡迎光臨壹芯微科技品牌官網

        壹芯微

        深圳市壹芯微科技有限公司二極管·三極管·MOS管·橋堆

        全國服務熱線:13534146615

        壹芯微二極管
        首頁 » 壹芯微資訊中心 » 常見問題解答 » 基于FatFs文件系統的SD卡存儲器設計介紹

        基于FatFs文件系統的SD卡存儲器設計介紹

        返回列表來源:壹芯微 發布日期 2022-01-21 瀏覽:-

        基于FatFs文件系統的SD卡存儲器設計介紹

        近年來,以Flash為存儲體的SD卡因其具備體積小、功耗低、可擦寫以及非易失性等特點而被廣泛應用于消費類電子產品中。在SD卡存儲器的設計中,利用文件系統對存儲媒介進行管理已成為嵌入式系統的一個發展方向,因此需要一種可靠的文件系統,本文提出了一種基于FatFs文件系統的SD卡存儲器設計,采用了開源文件系統FatFsR0.07C。FatFs是一種免費開源的FAT文件系統模塊,專門為嵌入式系統而設計。它完全用標準C語言編寫,具有良好的硬件平臺獨立性,經過簡單的修改就可以移植到多種嵌入式處理器上。系統以ST公司的STM32F103R為核心,通過SPI總線與SD卡進行通信,實現了數據的便攜式存儲。給出了系統的硬件結構圖,詳細探討了SD卡驅動程序以及FatFs移植方面的軟件設計。

        1.硬件設計

        SD卡具有兩種通信模式:SD模式和SPI模式。由于多數嵌入式處理器都配有SPI接口,因此相對于SD模式,SPI模式應用的更廣泛一些。本設計采用STM32F103R對SD卡進行控制,STM32F103R是ST公司的一款基于ARMCoutex.M3的微控制器,該控制器片內設備豐富,處理速度快,性能穩定,其與SD卡的接口電路圖如圖1所示。

        STM32F103R與SD卡的接口電路圖

        圖1 STM32F103R與SD卡的接口電路圖

        2.軟件設計

        本系統的軟件設計是基于FatFs文件系統的。FatFs具有非常清晰的層次結構,如圖2所示。最頂層是應用層,這一層為用戶提供了一系列API函數,如f_open、f_close、f_read、f_write等,用戶即使不理解Fat協議,也可以利用API函數輕松地讀/寫文件。中間層FatFsModule完整地實現了Fat協議,用戶無需對此進行任何修改。最底層是用戶在移植過程需要處理的接口,包括存儲媒介讀/寫接口DisklO和文件創建修改時間時所需的實時時鐘,用戶根據具體的硬件編寫程序,填充相關函數,即可使FatFs文件系統應用在具體的嵌入式平臺設備上。

        FatFs結構圖

        圖2 FatFs結構圖

        根據層次式軟件設計的思想,將軟件設計工作分為3步:編寫SD卡的通信函數、編寫RTC時鐘函數和FatFs的移植。

        2.1SD卡通信函數

        將SD卡通信函數分為3層,如圖3所示。

        SD卡通信結構軟件結構圖

        圖3 SD卡通信結構軟件結構圖

        (1)SPI接口函數

        SPI接口函數是與處理器相關的代碼,這里的處理器是STM32F103R,主要包含SPI模式的配置以及SPI單字節的讀寫函數。

        (2)SD卡底層接口函數

        SD卡底層接口函數主要包含SD卡寫命令和讀數據等函數,按照標準的時序調用SPI接口函數即可。

        (3)SD卡高級接口函數

        SD卡高級函數依據SD卡通信協議V2.0編寫,需要SPI接口函數以及SD卡底層接口函數的支持。這部分主要是SD卡的初始化函數和扇區讀/寫函數,此外還有一些用來讀SD卡信息(廠商,容量,速度等)的函數。初始化工作是SD卡驅動程序編寫的一個難點,這里給出詳細的流程圖(如圖4所示),扇區讀/寫函數結構圖如圖5和圖6所示。

        SD卡初始化軟件流程圖

        圖4 SD卡初始化軟件流程圖

        SD卡讀扇區結構圖

        圖5 SD卡讀扇區結構圖

        SD卡寫扇區結構圖

        圖6 SD卡寫扇區結構圖

        2.2RTC時鐘函數

        STM32F103R內含RTC設備,利用這個設備可以輕松地實現實時時鐘功能,從而為文件系統提供準確的時間。相關的軟件工作就是RTC的設置以及日歷系統的實現。

        2.3FatFs的移植

        完成了上面的基礎工作后,就可以開始進行FatFs的移植,具體的移植工作有2步:編寫FatFs接El函數和FatFs的設置。

        (1)FatFs的接口函數

        這項工作就是編寫disk.C中的6個函數。

        DSTATUSdisk_initialize(BYTEDrive):存儲介質初始化函數。本設計中就是SD卡的初始化函數。Drive是存儲介質號碼,本設計只需支持SD卡一個存儲介質,因此Drive設為0即可。

        DSTATUSdisk_status(BYTEDrive):存儲介質狀態檢測函數。檢測是否支持當前的存儲介質。事實上只要Drive為0,系統就默認為支持,函數執行無誤返回0。

        DRESUTdisk_read(BYTEDrvive,BYTE*Buf,DWORDSectorNumber,BYTESectorCount):讀扇區函數。在SD卡SPI接口函數的基礎上編寫,Drive設為0,*Buf指向存儲的數據,SectorNumber是讀的起始扇區,SectorCount是需要讀的扇區數目。函數執行無誤返回0,錯誤返回非0。

        DRESULJTdisk_write(BYTEDrvive,BYTE*Buff,DWORDSectorNumber,BYTESectorCount):寫扇區函數。在SD卡SPI接口函數的基礎上編寫,Drive設為0,*Buf指向寫入的數據,SectorNumber是寫的起始扇區,SectorCount是需要寫的扇區數目。函數執行無誤返回0,錯誤返回非0。

        DRESULTdisk_ioctl(BYTEDrive,BYTECommand,Void*Buf):存儲介質控制函數。Command是控制命令,Buf指向存儲或接收的控制數據(命令參數)。可以在此函數里編寫自己需要的功能代碼,比如獲取存儲介質的容量、檢測存儲介質的相關信息等。如果是簡單的應用,也可以不編寫,函數直接返回0即可。

        DWORDget_fattime(Void):實時時鐘函數。需要RTC函數的支持。返回一個32位無符號整數,時鐘信息包含在這32位中,如圖7所示。

        時鐘位

        圖7 時鐘位

        (2)FatFs的配置

        通過FatFs的配置,可以根據需要對代碼進行裁剪,以獲取最適合的代碼,該工作主要是在fconf.h中完成的。FatFs的配置可以分為4類,如圖8所示。

        FatFs配置結構圖

        圖8 FatFs配置結構圖

        FunctionandBuffer:對FatFs進行功能性的裁剪,有6個選項。

        #define_FS_TINY(0或者1)。設置為1的時候,FatFs在進行數據傳輸時使用文件系統自建的緩存,這樣可以減少內存的占用率。

        #define_FS_READONLY(0或者1)。設置為1的時候文件為只讀,編譯時移除與寫入相關的函數。其余的4個選項都是對代碼進行裁剪的。

        LocaleandNamespace:對文件所支持的語言,有5個選項。

        #define_CODE_PAGE。有多個取值,取不同的值可以支持不同的語言。例如,取936就支持簡體中文,取437就支持美式英語。這里取1,支持ASCII,此時不需要對此類中其余的選項進行配置。

        PhysicalDrive:與實際物理磁盤相關的配置,有3個選項。

        #define_DRIVES。物理磁盤的數量,設為1。

        #define_MAX_SS。扇區大小,在使用MemoryCard時必須設為512。

        #define_MULTI_PARTITION。分區數量,設為0。

        System:文件系統的配置,有3個選項。

        #define_WORD_ACCESS。字寫入方法的配置,推薦設置為1以獲得較好的性能。

        但是當處理器使用大端模式或設為1時,系統運行不正確時,應設為0。

        #define_FS_REENTRANT。Reentrancy的使能,設為0時剩下的兩個函數(_FS_TIMEOUT,_SYSNC_t)失效。這里設為0。

        3.系統測試及結果

        在測試中STM32F103R采用12MHz的晶振,設置SPI時鐘為6MHz,分別對2GB的microSD(Kingston)和4GB的SDHC(Transcend)的卡進行讀寫。通過對一定容量(200KB和10MB)的文件讀寫時間來計算讀寫速度,測試結果如表1所示。

        SD卡讀寫測試

        從測試結果上可以看出,讀寫速度令人滿意,若采用更快的SPI時鐘,讀寫速度可以進一步提高,完全可以適應嵌入式系統的需求。

        結束語

        本文總結了基于FatFs文件系統的SD卡存儲器設計方案,該存儲器讀寫速度快,可靠性強,設計流程簡單,為嵌入式數據的存儲提供了一種較好的方法。

        〔壹芯微〕專業研發生產二極管,三極管,MOS管,橋堆,專注領域,專業品質,研發技術-芯片源自中國臺灣,擁有全工序封裝生產線,配備高標準可靠性實驗室,引入國外先進測試儀器,檢測設備,以及專業團隊豐富的生產經驗,保障每個器件的參數和性能的充分穩定性,同時實現了高度全自動化生產,大幅度降低人工成本,并與中國臺灣芯片制造商達成合作,產品低于同行10%,壹芯微還提供有選型替代,技術支持,售后FAE,歡迎點擊頁面右側"在線客服" 咨詢了解產品詳情和最新報價,提供免費樣品送予測試

        手機號/微信:13534146615

        QQ:2881579535

        推薦閱讀

        【本文標簽】:

        【責任編輯】:壹芯微 版權所有:http://www.kannic.com/轉載請注明出處

        最新資訊

        1高效能源轉換:正激和反激開關電源的設計原理揭秘

        2突破性的儀表放大器抑制方法:優化信號處理效率

        3優化MOS管開關性能:應對米勒效應的最新技術與方法

        4優化電路設計:7800系列穩壓器的最佳實踐指南

        5三端穩壓管內部結構解析:探秘穩壓管電路的構成與工作原理

        6預防轉換器啟動時的輸出涌流:重要性與應對方法

        7實用指南:步步詳解如何搭建自己的隔離式半橋柵極驅動器系統

        8精益求精:優化簡單電流監測電路的性能與穩定性

        9高效應對EMC挑戰:電源PCB設計的5個關鍵步驟

        10全橋驅動螺線管技術:提高關斷速度的實用方法

        全國服務熱線13534146615

        地 址/Address

        工廠地址:安徽省六安市金寨產業園區
        深圳辦事處地址:深圳市福田區寶華大廈A1428
        中山辦事處地址:中山市古鎮長安燈飾配件城C棟11卡
        杭州辦事處:杭州市西湖區文三西路118號杭州電子商務大廈6層B座
        電話:13534146615 企業QQ:2881579535

        掃一掃!

        深圳市壹芯微科技有限公司 版權所有 | 備案號:粵ICP備2020121154號

        主站蜘蛛池模板: 久久久精品爱爱视频| 国产精品一码二码三码四码| 久久中文精品无码| 中文字幕在线视频不卡一区二区| 国产一区二区综合在线| 中文字幕av无码不卡免费| 亚洲五月天综合| 三级av级毛片在线观看| 久久久久无码中| 欧美日韩国产内地在线| 黑人巨大精品欧美一区二区.. | 久国产精品韩国三级视频 | 国产精品日韩专区第一页| 大香蕉在线精品| 一本久久a久久精品综合香蕉| 97影院理论片手机在线观看| 日韩a一级欧美一级| 伊人久久亚洲精品一区| 久久久久无码国产精品不卡| 91青娱国产盛宴精品| 青青青在线视频精品| 国产一区二区不卡高清更新| 99热这里都是国产精品| 久久久久亚洲AV成人无码麻豆| 91 欧美精品| 狼人无码精华AV午夜精品| 欧美成年黄网站色| 人妻少妇啊灬啊灬用力啊快| 国产福利高颜值在线观看 | 亚洲аv电影天堂网无码| 国产乱人伦av在线a三方| 国产香线蕉手机在线观看| 在线a亚洲视频播放在线观看| 最近高清无吗免费看| 天天摸天天做天天爽天天弄| 国产乱子伦在线观看| 亚洲成av人片天堂网无码| 亚洲成人精品在线伊人网| 蓬安县| av免费不卡国产观看| 欧美综合激情另类专区|