基于AT89S52和FAT16的SD卡讀寫系統(tǒng)設計
3.3.2 SD卡的初始化
SD卡的初始化流程如圖7所示。SD卡上電延時74個時鐘周期后,單片機向SD卡發(fā)送復位命令CMDO,使SD卡進入SPI模式。之后循環(huán)發(fā)送激活SD卡指令CMD1,直到接收到SD卡響應的第0位為0。本文引用地址:http://www.ex-cimer.com/article/173605.htm
3.3.3 SD卡數(shù)據(jù)塊的讀寫
完成SD卡的初始化后,就可以對SD卡進行讀寫操作。讀寫操作都是通過指令來完成的:單塊寫命令CMD24,多塊寫命令CMD25;單塊讀命令 CMD17,多塊讀命令CMD18。單塊讀寫時,數(shù)據(jù)塊的長度為512字節(jié),多塊讀寫時SD卡收到1個停止命令CMD12后停止讀寫。圖8、圖9分別是單塊讀、寫SD卡的軟件流程。
3.4 FAT16文件讀寫
按照FAT16文件系統(tǒng)的文件組織規(guī)范,編寫讀文件函數(shù)和寫文件函數(shù)。FAT16文件讀寫的軟件流程如圖10所示。
結 語
通過串口將本系統(tǒng)連接到PC進行測試,結果表明本系統(tǒng)完成了對FAT16文件系統(tǒng)下文件的讀寫。當采用11.059 2 MHz晶振時,讀寫速度和質(zhì)量都令人滿意。本系統(tǒng)采用51架構的AT89S52單片機,實現(xiàn)了基于FAT16文件系統(tǒng)的讀寫SD卡設計,整套系統(tǒng)成本較低,在嵌入式數(shù)據(jù)記錄和存儲中有廣泛應用前景。
評論