- 相關推薦
單片機實現對CF卡的讀寫
摘要:CF卡是一種包含了控制和大容量Flash存儲器的標準器件,具有容量大、體積小、高性能、攜帶方便等優點,已廣泛應用在數據采集系統和許多消息類電子產品中。本文詳細介紹CF卡在單片機系統中的硬件接口電路,以及單片機對CF卡進行標準文件讀寫的實現,且寫入的文件能被Windows操作系統讀寫。引言
由于CF卡(Compact Flash Card)具有容量大、體積小、高性能、攜帶方便等優點,而且讀寫速度快,可與多種電腦操作系統平臺兼容,因此在數據采集系統中的數據記錄或與PC機之間的數據轉存多采用CF卡。為了在PC機中能方便地進行數據處理,在下位機端必須采用一種標準的格式組織數據,即將數據按照Windows標準文件格式寫入,在PC機端通過讀卡器將寫入CF的內容以標準文件形式讀出。Windows標準文件格式有FAT、FAT32和NTFS?紤]到廣泛使用的Windows 98系統的CF卡的容量等因素,通常采用FAT(File Allocation Table)文件系統。單片機系統對CF卡的讀寫,就是從底層對它進行直接操作,包括尋址、創建文件和讀寫等。
1 CF卡簡介
CF卡內集成了控制器、Flash Memory陣列和讀寫緩沖區,如圖1所示。內置的智能控制器,使外圍電路設計大大簡化,而且完全符合PC機內存卡的國際聯合會PCMCIA(Personal Computer Memory Card International Association)和ATA(Advanced Technology Attachment)接口規范。實際上,控制器起到了一種協議轉換的作用,即將對Flash Memory的讀寫轉化成了對控制器的訪問,這樣不同的CF卡都可以用單一的機構來讀寫,而不用擔心兼容性問題。CF卡的緩沖區結構,使得外部設備與CF卡通信的同時,CF卡的片內控制器可以對Flash進行讀寫。這種設計可以增加CF卡數據讀寫的可靠性,同時提高數據傳輸速率。
CF卡支持多種接口訪問模式,有符合PCMCIA規范的Memory Mapped模式、I/O Card模式和符合ATA規范的True IDE模式。上電時,OE(9腳)為低電平,CF卡進入True IDE模式,此時引腳OE也叫ATA SEL;上電時,OE(9腳)為高電平,CF卡進入PCMCIA模式,即Memory Mapped模式或I/O Card模式,此時可通過修改配置選項寄存器進入相應的模式。
配置選項寄存器格式如下:
SRESETLevelREQconf5conf4conf3conf2conf1conf0SRESET—軟復位信號;
Level REQ—中斷模式選擇(電平或邊沿觸發)。
例如,要加入Memory mapped模式,只需要在上電時保證OE為高電平,因為配置選項寄存器的conf5~conf0位的初始化值為“00000”;而要進入I/O Card模式,除了上電時保證OE為高電平外,還要進一步設置conf5~conf0,如表1所列。但是對于具體型號的CF卡而言,下面三種情況也是被CFA(CF card Association)所允許的:①上電時進入True IDE模式,工作過程中,只要監測到OE變為高,就退出True IDE模式;②允許卡在復位時重新配置;③上電時進入PCMCIA模式,允許過程中,只要監測到OE變為低,就進入True IDE模式。
表1 模式選擇
2 CF卡與51單片機的接口
CF卡在PC Memory方式與51芯片的接口電路如圖2所示。由于采用CF卡上電后自動進入的Memory模式,而且不存在對特性寄存器的讀寫,故可將REG接高電平。片選信號CE1和CE2組合可選擇數據位寬度,如表2所列。圖2中CE2接VCC,選用的是8位(D7~D0)數據寬度。
表2 數據寬度選擇
為了實現即插即用的功能,CE卡上提供了兩個用來檢測卡是否存在的引腳(CD1、CD2),由卡內部接地。當主機檢測到與其相連的CD1和CD2兩個引腳同時為低電平時,可判斷出卡與主機相連;否則,卡未與主機相連。
由于I/O口緊張,RDY/BSY引腳懸空不用,通過查詢狀態寄存器能判斷CF卡是否準備就緒。在實際應用中,由于一次至少要讀寫一個扇區512字節,所以要擴充一塊RAM。我們選用的是62256,容量為32KB,這樣便可以支持大到2GB的CF卡(參見下文),增加了其擴展性。
3 FAT文件系統
FAT文件系統是基于DOS的文件系統。常說的FAT有12位的FAT12和16位的FAT16,另外就是
【單片機實現對CF卡的讀寫】相關文章:
CF卡與雙核DSP的實現03-18
用CPLD實現單片機讀寫模塊03-20
HMAC認證協議的單片機實現03-18
利用VB實現PC機與多單片機通訊03-18
電子車速里程表的單片機實現方案03-21
在VC 中用ActiveX控件實現與單片機的串行通信03-19
SPI總線在51系列單片機系統中的實現03-19