基于SD卡的電能耗用記錄儀設計與實現(xiàn)
2、SD卡在SPI方式下的讀寫實現(xiàn)
SPI是一種通用同步串行接口總線,字長為8 bit。SPI協(xié)議是以主從方式工作的,通常有一個主設各和一個(或多個)從設備。工作時主設各通過提供同步時鐘和從設備使能信號來控制數(shù)據(jù)傳輸。主設各每次開始傳送數(shù)據(jù)時,必須先將片選信號置低以激活SD卡,使其進人工作狀態(tài)。SD卡在SPI方式下工作時,被選中的卡總是對來自于主設備的命令有所響應,當卡遇到錯誤時,將返回一個出錯響應來代替期望的數(shù)據(jù)。
2.1 SD卡初始化
SD卡在讀寫操作之前必須進行初始化,這是確保SD卡能在sPI方式下進行正常數(shù)據(jù)傳輸?shù)那疤?。由于大容量SD卡的出現(xiàn),SDI,x標準已經(jīng)升級為SD2.0,但也因此出現(xiàn)許多電子設各無法驅(qū)動大容量SD卡的情況,如何識別SDI.x與SD2.0就顯得特別重要。SD卡上電后默認進人SD工作方式,應等待至少74個時鐘周期后,將片選信號置低,發(fā)送復位命令CMD0,等SD卡復位完成后再向SD卡發(fā)送CMD8命令。如果收到的應答信號為01H,則表示為SD2.0卡,否則為SDI。x卡SDI.x與SD2 0最大不同之處在于命令地址的表示,SDI.x的地址單位是字節(jié),而SD2 0的地址單位是扇區(qū),因此在讀寫操作時應根據(jù)不同的卡對地址作相應處理。圖2所示為SD卡在sPI方式下的初始化流程。
圖2 SD卡在SPI方式下的初始化流程
2.2 FAT32文件系統(tǒng)
SD卡在能夠進行數(shù)據(jù)保存之前必須先按某種文件系統(tǒng)的規(guī)定進行格式化,F(xiàn)AT32文件系統(tǒng)因具有高度兼容性而被廣泛應用于移動存儲設備中。FAT32文件系統(tǒng)結(jié)構(gòu)分為五個部分:MBR區(qū)、DBR區(qū)、FAT區(qū)、EDT區(qū)、DATA區(qū)。
MBR區(qū)又稱為主引導記錄,其后為64 B的磁盤分區(qū)表DPT。
DBR區(qū)即操作系統(tǒng)引導記錄區(qū),占用分區(qū)的第0扇區(qū),共512 B,由跳轉(zhuǎn)指令、結(jié)束標志等幾部分組成。
評論