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

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

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

 


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

 


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

  

  本文給出了CF卡和單片機(jī)接口的方法,通過(guò)這些方法能夠?qū)崿F(xiàn)大容量的數(shù)據(jù)采集和存儲(chǔ),存儲(chǔ)到CF卡中的數(shù)據(jù)能長(zhǎng)期保存,攜帶方便。實(shí)踐證明,CF卡是一種理想的大容量數(shù)據(jù)存儲(chǔ)卡,具有廣泛的應(yīng)用前景。
參考文獻(xiàn)
1   CompactFlash Association.CF+ and CompactFlash Specification Revision 2.0.1998~2003
2   蘇廣川,沈瑛.高級(jí)微型計(jì)算機(jī)系統(tǒng)及接口技術(shù).北京:北京理工大學(xué)出版社,2001
3   程擁強(qiáng),郭鳳龍,朱勁.單片機(jī)對(duì)CF存儲(chǔ)卡文件讀寫(xiě)的實(shí)現(xiàn).計(jì)算機(jī)應(yīng)用,2003;(9)
4   吳產(chǎn)樂(lè).微機(jī)系統(tǒng)與接口技術(shù).武漢:華中科技大學(xué)出版社,2002
 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。