新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于單片機的SD卡FAT文件系統讀寫設計

        基于單片機的SD卡FAT文件系統讀寫設計

        作者: 時間:2011-11-18 來源:網絡 收藏

        2 硬件設計
        有2種操作模式:模式、SPI模式。模式允許通過4線高速總線傳輸,但由于大部分單片機無此接口模塊,故選擇SPI模式。HCSl2X系列單片機內部都帶有此同步串行外部設備接口(Serial Peripheral Interface,SPI)。單片機可以通過SPI系統組成一個通信速率比SCI高的同步網絡,故使用SPI模式可以把外設減少到最低。SPI模式相對于SD卡模式的缺點是損失了傳輸速度;但是目前的微處理器的處理速度越來越高,利用SPI模式大都能滿足工程需要。
        的全雙工8位有4個引腳,分別為主入從出引腳MISO、主入從出引腳MOSI、串行時鐘引腳SCK以及從機片選引腳SS。當CS信號線為低電平時,主機開始所有的總線傳輸。數據從單片機的MOSI引腳同步輸入 SD卡的DA引腳, SD卡返回數據由DO線同步輸入單片機的MISO引腳,數據在CLK信號的上升沿同步輸入和輸出。

        3 軟件設計
        3.1 HCSl2X總線時鐘超頻
        MC9S12XSl28MAA默認總線時鐘默認同外接晶振相關,但可以通過配置PLL鎖相環實現單片機總線超頻,從而加快SD卡讀取速率。實驗中可通過下列代碼將單片機總線頻率超頻到80MHz:

        c.JPG

        3.2 HCSl2XSPl模塊初始化
        MC9S12XSl28MAA單片機包含2個串行外設接口SPI,可以很方便地實現對 SD卡接口的數據傳輸。為了配置時鐘和數據長度,需要對SPI控制寄存器(SPCRl和SPICR2)、SPI波特率寄存器SPIBR和SPI數據寄存器SPIDR進行設置:使能,將SPICRl中的MSTR位置1使單片機工作在主機模式,產生串行時鐘來同步主從雙方的移位寄存器,配置SPI時鐘極性位與SPI時鐘相位控制位,使能從機輸出選擇;初始化SPI波特率寄存器。
        3.3 SD卡初始化
        SD卡初始數據傳輸需工作在低于400 kb/s的頻率,因此配置SPI波特率寄存器,以工作在低速模式下。片選信號后應延時至少74個時鐘周期。SD卡默認缺省使用SD總線傳輸協議,主機需要發出命令CMDO(CMD_GO_IDLE_STATE)才能使SD卡工作在SPI傳輸模式下,當單片機返回0x 01時說明已經進入了IDLE狀態。此時應循環發送CMD55+ACMD41以確認是否為SD卡,如果回應超時則發送CMDl(CMD_SEND_OP_COND)以確認是否為MMC卡。經實驗發現,Kingston公司的Micro SD卡使用CMD55+ACMD41或者CMDl都可以進行激活。激活SD卡的SPI模式后SD卡進入準備狀態,此時發送CMDl6(CMD_SET_BLOCKLEN)設置SD卡的讀寫塊大小,然后重新配置SPI波特率寄存器SPIBR使單片機SPI工作在高速頻率下,延時8個時鐘周期后返回,完成SD卡初始化。圖2為SD卡SPI高速模式初始化流程。

        b.JPG

        51單片機相關文章:51單片機教程


        單片機相關文章:單片機教程


        單片機相關文章:單片機視頻教程


        單片機相關文章:單片機工作原理


        晶振相關文章:晶振原理
        鎖相環相關文章:鎖相環原理


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 宁乡县| 吉林市| 西乌珠穆沁旗| 阿克陶县| 荆州市| 富顺县| 赞皇县| 长宁县| 游戏| 万年县| 溧水县| 许昌市| 延长县| 山阴县| 慈溪市| 兴义市| 逊克县| 集安市| 鄂托克前旗| 清流县| 金门县| 中阳县| 中西区| 吴川市| 登封市| 广元市| 保靖县| 白山市| 邢台市| 简阳市| 阜阳市| 中宁县| 濮阳市| 三亚市| 阜南县| 宜阳县| 荥阳市| 静宁县| 邵武市| 古田县| 漳平市|