基于AT89S52和FAT16的SD卡讀寫系統(tǒng)設計
引 言
長期以來,閃存卡(SD卡、MMC卡等)因其體積小、功耗低、容量大和非易失性等特點,在嵌入式存儲領域的應用越來越廣泛。特別是近年來,隨著閃存技術的發(fā)展,閃存卡價格不斷下降且存儲容量不斷提高。當數(shù)據(jù)采集系統(tǒng)需要長時間地采集和記錄海量數(shù)據(jù)時,應用SD卡作為存儲介質是很好的選擇,例如電能檢測、溫度濕度檢測、病人心肺數(shù)據(jù)記錄等。FAT16文件系統(tǒng)是。Microsoft公司在其MS-DOS 操作系統(tǒng)中采用的文件系統(tǒng),具有出色的文件管理性能,能被當前大多數(shù)操作系統(tǒng)識別。因此,將SD卡與FAT16文件系統(tǒng)相結合是嵌入式數(shù)據(jù)存儲、記錄系統(tǒng)的理想方案,可以將采集記錄的數(shù)據(jù)直接在PC上讀取和處理。本文研究和設計了基于AT89S52單片機和FAT16文件系統(tǒng)的SD卡讀寫系統(tǒng)。
1 系統(tǒng)方案介紹
本系統(tǒng)采用MCS-51架構的AT89S52單片機。AT89S52是一種低成本、低功耗、高性能的CMOS 8位微控制器,具有8 KB在系統(tǒng)可編程Flash存儲器。應用AT89S52讀寫SD卡,首先要確定它們之間的通信方案。SD卡有2種可選的通信協(xié)議:SD模式和SPI模式。 SD模式是SD卡的標準讀寫方式,選用此模式需要選擇帶SD卡控制接口的MCU或者額外的SD卡控制單元;SPI模式通過SPI總線完成SD卡與主控制器的通信。AT89S52沒有集成SD卡控制器,為了不增加額外的SD卡控制單元硬件成本,本設計方案采用SD卡的SPI通信模式。雖然AT89S52也沒有集成SPI接口模塊,但可以用軟件的方式模擬SPI接口時序。
另外一個要解決的問題是SD卡與AT89S52的電平匹配。SD卡的邏輯電平相當于3.3 V的TTL電平標準,AT89S52的邏輯電平為5 V CMOS電平。
解決電平匹配問題的原則有2條:一為輸出電平器件輸出的高電平的最小值,應該大于接收電平器件識別為高電平的最低電壓值;另一條為輸出電平器件輸出低電平的最大電壓值,應該小于接收電平器件識別為低電平的最高電壓值。
考慮到SsD卡在SPI工作模式下,數(shù)據(jù)的傳輸都是單向的,這樣可以在單片機向SD卡傳輸數(shù)據(jù)時采用晶體管加下拉電阻的方法,基本電路如圖1所示。而在 SD卡向單片機傳輸數(shù)據(jù)時可以采用直接連接,因為它們之間的電平剛好滿足上述的電平兼容原則,既經(jīng)濟又實用。這個方案需要雙電源供電,1個5 V電源,1個3.3 V電源。
評論