《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > CF卡在大容量數據采集中的應用
CF卡在大容量數據采集中的應用
王三武 張紅濤
摘要: CF卡和單片機接口的各種模式,比較了各種模式的利弊。給出了2種常用模式下的完整電路原理圖,簡要說明了IDE模式下存取工作的原理,闡述了映射存儲模式下CF卡的存取原理。
Abstract:
Key words :

  摘  要: CF卡單片機接口的各種模式,比較了各種模式的利弊。給出了2種常用模式下的完整電路原理圖,簡要說明了IDE模式下存取工作的原理,闡述了映射存儲模式下CF卡的存取原理。
  關鍵詞: CF卡  單片機  接口模式  讀寫扇區(qū)  大容量數據采集

   在單片機工業(yè)應用的許多場合需要存儲器來存儲大量的數據(如數據采集),而且要求斷電時能夠保存數據。但一些單片機的Flash Memory芯片容量有限,在大數據量的場合使用難以滿足要求。而擴展傳統的存儲器RAM在斷電時又不能保存數據,雖然EPROM等存儲器斷電時可保存數據,往往因為存儲空間小、尋址能力不足、價格過高等諸多問題而受到使用限制。相比較而言,CF(CompactFlash)卡存儲容量大(容量可以達到512MB)、攜帶方便、讀寫速度快、可與多種電腦操作系統平臺兼容且可多次讀寫。此外,CF卡能與單片機接口,靈活性強,故是一種理想的存儲器。
1 CF卡簡介
  CF卡廣泛應用在數碼相機、掌上電腦、MP3等設備中,采用間距50mil 的50針腳雙列封裝,其電氣特性符合ATA規(guī)范。通過專用的讀卡器,可以將CF卡的50針腳轉化為USB接口而能夠被PC機讀出。CF卡和單片機接口能夠用來存儲大容量的數據,筆者即用CF卡來存儲攝像頭采集來的水表圖像信息。
  CF卡的結構是在一個紙板火柴盒大小的卡空間上包含了一個單片控制器和閃存模塊,集成了控制裝置、Flash Memory陣列和讀寫緩沖區(qū),可以提供相當可觀的存儲容量和標準的電氣接口協議,控制器和主機接口允許閃存模塊的數據被讀寫。
2  CF卡的硬件接口模式
  由于CF卡有一個內置的控制器,因此對CF卡內部數據的存取和對ATA硬盤的存取很相似,而與大多數通過線性地址來存取數據的RAM、ROM和其他閃存卻不一樣。CF卡和主機的接口靈活,且有多種接口模式。每一種硬件接口模式都有自己的執(zhí)行設置,引腳的定義也略有差異。CF卡和主機接口一般有以下幾種模式。
2.1 真正的IDE模式(True IDE Mode)
  將CF卡連接器的-OE引腳接地,即可實現IDE模式。在IDE模式下,單片機對CF卡的存取如同單片機操作等容量的硬盤一樣。這種模式常用于不要求CF卡的可移動性或者是一旦主機系統上電,CF卡被專有使用的情況。CF卡轉化成IDE模式的典型電路如圖1所示。

 


  通過圖1所示的電路可以將CF卡的50個引腳轉化成44個引腳的IDE接口,1~40個引腳即可組成標準的IDE接口。轉化后的IDE接口和單片機相連使操作CF卡就像操作硬盤一樣,引腳CE1、CE2用作片選信號,引腳HD0~HD7用作數據線,IORD、IOWR和單片機讀寫引腳相連,通過主機發(fā)出讀寫信號來讀寫CF卡,IORDY作為輸入/輸出準備好信號,IOCS16用來決定是16位數據存取還是8位數據存取。如果此IDE接口和PC機的IDE接口相連,則能在Windows操作系統中顯示一個盤符。如果寫入的格式是標準文件格式FAT32,則寫入到CF卡的文件能在Windows操作系統中讀出來。
2.2 映射存儲模式
  在映射存儲模式(Memory Mapped Mode)下,CF卡被配置為主存儲空間的一個地址范圍,CF卡為缺省工作模式。該模式能夠通過配置選項寄存器(偏移地址為$200)來設置。
2.3 映射I/O模式
  通過配置選項寄存器(偏移地址為$200)來設置CF卡到映射I/O模式(I/O Mapped Mode)。該模式能和PC-AT(ISA)信號兼容,并通過引腳-SPKR、-IORD、-IOWR、-IREQ、-IOCS16、-INPACK和-STSCHNG來達到這一目的。映射I/O模式允許設計者將閃存地址空間合并到Intel處理器的存儲空間,使得CF卡似乎有明確的輸入/輸出地址線。
2.4 由PCMCIA控制裝置控制的PCMCIA卡模式
  這種模式完全獨立于主機設計,CF卡能夠通過一個PC卡接口芯片控制器(如PD6710 PC,Intel 365卡主機適配器)被主機系統存取。PCMCIA是一種很好的工業(yè)標準,能夠支持除ATA閃存卡以外的其他存儲卡。此外,考慮到該模式下主機上電工作時CF卡的可移動性是很重要時,這種模式的優(yōu)勢更明顯。
3 典型接口電路及工作原理
  對于與單片機接口而言,IDE模式和映射存儲模式是2種應用最多的模式,而映射I/O模式和PCMCIA卡模式主要用于和PC機接口,不是本文所討論的范圍,故在此不詳述。下面以映射存儲模式下的典型接口電路為例來說明單片機存取CF卡的工作原理。CF卡的典型電路如圖2所示。

 


  CF卡的主要功能引腳有:數據線D0~D15(用于數據的讀寫),地址線A0~A9,片選及數據選擇CS1、CS0,讀寫控制端ATA SEL、WE,寄存器選擇REG,卡讀寫忙判斷INTRQ、RESET等。CF可以工作于16位數據總線方式也可以工作于8位總線方式。在讀寫速度的要求不是很嚴格的情況下,為了便于和8位MCU接口,一般選擇8位數據總線工作方式。若選擇8位工作方式,CS1應接固定高電平,而CS0低電平有效。CF卡在Memory工作方式下,僅地址線A0~A3起作用,用于選擇讀寫端口,其余地址線可以接固定電平。REG用于選擇是對CF卡發(fā)送命令、狀態(tài)讀寫還是讀寫CF卡的屬性寄存器。REG=1時為讀寫命令。在Memory方式下,對CF的控制和數據讀寫均是通過對這幾個端口的讀寫來實現的。INTRQ用于判斷CF卡是否處于讀寫忙狀態(tài),可以在對CF卡進行讀寫之前利用此引腳來判斷CF卡是否空閑。在數據讀寫量較小的情況下,使用一定的延時即可。
  圖2中:CF卡工作于Memory方式,8位數據總線,單片機按標準的P2、P0口復用方式與CF卡接口。CS0~CS1、REG分別接單片機的P2.6、P2.5、P2.7,端口選擇A3~A0接收經373鎖存的低4位地址,CF卡的讀寫引腳分別與單片機的讀寫信號相接。若把閑置地址引腳接固定電平,則系統分配給CF卡的端口地址為[B000]~[B007]。INTRQ(即BSY/RDY)腳接到單片機的P1.7。
  CF卡讀寫以扇區(qū)為單位,每扇區(qū)為512字節(jié),每次可讀寫1個或多個連續(xù)的扇區(qū)。設計時使用邏輯塊尋址方式(Logical Block Addressing,LBA)訪問CF卡數據。讀寫操作時首先指定讀寫的扇區(qū)數和LBA地址,然后往命令寄存器發(fā)出讀命令(20H)或寫命令(30H),等待CF卡就緒后即可通過數據寄存器連續(xù)讀寫數據。使用LBA模式來存取CF卡的子程序如下:
  

  

  本文給出了CF卡和單片機接口的方法,通過這些方法能夠實現大容量的數據采集和存儲,存儲到CF卡中的數據能長期保存,攜帶方便。實踐證明,CF卡是一種理想的大容量數據存儲卡,具有廣泛的應用前景。
參考文獻
1   CompactFlash Association.CF+ and CompactFlash Specification Revision 2.0.1998~2003
2   蘇廣川,沈瑛.高級微型計算機系統及接口技術.北京:北京理工大學出版社,2001
3   程擁強,郭鳳龍,朱勁.單片機對CF存儲卡文件讀寫的實現.計算機應用,2003;(9)
4   吳產樂.微機系統與接口技術.武漢:華中科技大學出版社,2002
 

此內容為AET網站原創(chuàng),未經授權禁止轉載。