摘? 要: 介紹CompactFlash卡的基本結(jié)構(gòu)和工作原理;結(jié)合美國(guó)德州儀器(TI)公司的TMS320C54x 系列數(shù)字信號(hào)處理器(DSP),詳細(xì)地說(shuō)明了DSP與CompactFlash卡接口設(shè)計(jì)" title="接口設(shè)計(jì)">接口設(shè)計(jì)中的關(guān)鍵軟硬件技術(shù);同時(shí)以TMS320C549 DSP評(píng)估板為基礎(chǔ),設(shè)計(jì)完成了DSP與CompactFlash卡之間的接口電路,正確實(shí)現(xiàn)了DSP對(duì)CompactFlash卡的讀寫及數(shù)據(jù)管理等各種功能。
關(guān)鍵詞: DSP? CompactFlash卡? CPLD
?
隨著半導(dǎo)體技術(shù)的發(fā)展,小型化、大容量" title="大容量">大容量、低功耗" title="低功耗">低功耗、智能型是未來(lái)存儲(chǔ)技術(shù)的發(fā)展方向。近年來(lái),各種小型存儲(chǔ)媒體不斷問(wèn)世,在便攜式設(shè)備中應(yīng)用廣泛。這些存儲(chǔ)媒體大多以Flash Memory(閃爍存儲(chǔ)器)為主要載體,內(nèi)部用微處理器進(jìn)行時(shí)序控制和存儲(chǔ)管理,通常做成非易失性存儲(chǔ)卡" title="存儲(chǔ)卡">存儲(chǔ)卡形式。?
目前常見的存儲(chǔ)卡類型有:①M(fèi)ultiMedia Card(多媒體卡);②CompactFlash Card(快閃磁盤卡);③SmartMedia Card(智能媒體卡);④MemoryStick(記憶棒)。各存儲(chǔ)卡在功耗、體積、容量等方面各有特色,但它們之間的接口目前還互不兼容。?
CompactFlash 卡(以下簡(jiǎn)稱CF卡)最先由SanDisk 公司于1994年生產(chǎn),隨后CFA(CompactFlash Association) 協(xié)會(huì)(它是一個(gè)由國(guó)際著名IT公司為了共同利益而成立的非盈利機(jī)構(gòu))于1995年10月成立并陸續(xù)制訂了詳細(xì)的CompactFlash 存儲(chǔ)卡統(tǒng)一規(guī)范,該規(guī)范目前已成為一個(gè)工業(yè)標(biāo)準(zhǔn)。?
由于CF卡容量大、價(jià)格低,接口兼容磁盤IDE、ATA及Memory等格式,和其它存儲(chǔ)卡相比,CF卡使用越來(lái)越普遍。在大容量便攜式數(shù)據(jù)存儲(chǔ)和傳輸過(guò)程中,CF卡有著非常廣泛的應(yīng)用前景,如數(shù)碼相機(jī)、MP3播放器、PDA(個(gè)人數(shù)字助理)、數(shù)字式錄音機(jī)、筆記本電腦、手提電話、機(jī)頂盒等。預(yù)計(jì)今后在其它領(lǐng)域?qū)⒂懈鼮閺V泛的應(yīng)用。另外,隨著DSP技術(shù)的飛速發(fā)展,由DSP快速處理的大量數(shù)據(jù)需要大容量的存儲(chǔ)媒體進(jìn)行數(shù)據(jù)的保存、轉(zhuǎn)移等??紤]到CF卡和DSP相比接口速度較慢,因而DSP不能直接和CF卡接口兼容,為了實(shí)現(xiàn)DSP對(duì)CF卡的數(shù)據(jù)訪問(wèn)和管理功能,本文給出了基于DSP的CF卡接口設(shè)計(jì),該設(shè)計(jì)在多個(gè)科研項(xiàng)目中得到了應(yīng)用和推廣。?
1 CF卡簡(jiǎn)介?
目前有許多公司生產(chǎn)CF卡產(chǎn)品,由于CF卡已成為工業(yè)標(biāo)準(zhǔn),各公司生產(chǎn)的CF卡均符合標(biāo)準(zhǔn)規(guī)范,只是存儲(chǔ)容量、扇區(qū)緩沖器大小、訪問(wèn)速度、平均無(wú)故障時(shí)間、工作溫度、糾錯(cuò)編碼等指標(biāo)略有差異(這些差異在標(biāo)準(zhǔn)范圍內(nèi))。CF卡主要技術(shù)指標(biāo)如下:?
(1)結(jié)構(gòu)先進(jìn),以SanDisk公司為代表的CF卡內(nèi)部結(jié)構(gòu)如圖1所示。外部和主機(jī)接口采用50芯雙列0.05英寸間距物理連接。CF卡內(nèi)部采用一個(gè)微控制器(MCU)管理數(shù)據(jù)訪問(wèn)格式、接口控制時(shí)序等;一個(gè)512Byte以上的雙端口扇區(qū)緩沖器(SRAM BUFFER)和DMA控制器,用于和外部進(jìn)行快速數(shù)據(jù)交換;一個(gè)256Byte的固化只讀存儲(chǔ)器(Firmware Storage),放置該CF 卡的特征信息CIS(Card Information Structure),內(nèi)容包括扇區(qū)總數(shù)、柱面數(shù)、磁頭數(shù)、每磁道扇區(qū)數(shù)、公司序列號(hào)等;一個(gè)電源管理單元(PMU)可使CF卡在空閑時(shí)進(jìn)入睡眠狀態(tài),進(jìn)行有效的電源管理,降低系統(tǒng)功耗。先進(jìn)的內(nèi)部結(jié)構(gòu)使CF卡能支持多種接口訪問(wèn)模式,如Memory Card 模式、I/O" title="I/O">I/O Card模式和True IDE模式等。?
?
?
(2)訪問(wèn)速度快,寫入FLASH速度可維持在1.4MByte/s。?
(3)體積小,尺寸為36.4mm×42.8mm×3.3mm。?
(4)容量大,常見的有8、12、16、24、32、48、64、96、128、256、348、512MByte等,隨著超大規(guī)模集成電路的快速發(fā)展,目前CF卡的TYPE II型容量已經(jīng)達(dá)到了1.2GByte。?
(5)無(wú)機(jī)械結(jié)構(gòu),抗沖擊(達(dá)2000G),耐震動(dòng)(達(dá)15G)。?
(6)可靠性高,有效的數(shù)據(jù)保護(hù)及糾錯(cuò)編碼技術(shù),使得CF卡平均無(wú)故障工作時(shí)間達(dá)一百萬(wàn)小時(shí)。?
(7)供電靈活,支持5V或3.3V電源電壓。?
(8)具有熱插拔、掉電時(shí)數(shù)據(jù)不丟失、保存數(shù)據(jù)時(shí)間長(zhǎng)、可重復(fù)擦寫(一百萬(wàn)次)等特點(diǎn)。?
2 CF卡與DSP接口硬件設(shè)計(jì)?
2.1 CF卡接口簡(jiǎn)述?
CF卡采用50腳雙列0.05英寸細(xì)間距標(biāo)準(zhǔn)接口,管腳排列如表1所示。其電氣特性符合ATA/IDE磁盤接口規(guī)范,可直接插入PCMCIA TypeII適配卡中。支持5V和3.3V電源工作,允許不同系統(tǒng)對(duì)硬件和軟件的設(shè)計(jì)要求。數(shù)據(jù)訪問(wèn)以512Byte為一個(gè)扇區(qū)單元,完全和磁盤接口兼容,可用Memory mapped、IDE等格式進(jìn)行訪問(wèn)。由于IDE 訪問(wèn)模式涉及到復(fù)雜的文件管理,為了節(jié)省系統(tǒng)資源及簡(jiǎn)化設(shè)計(jì),本系統(tǒng)由DSP實(shí)現(xiàn)嵌入式設(shè)計(jì)并采用Memory mapped訪問(wèn)方式。另外,CF卡的上電缺省模式即是Memory mapped,免去了繁瑣的寄存器設(shè)置。CF卡的數(shù)據(jù)總線寬度為16bits,由-CE1和-CE2腳控制,可允許8位或16位訪問(wèn)。其詳細(xì)的管腳定義見參考文獻(xiàn)[1]。?
?
?
2.2 DSP簡(jiǎn)介?
隨著數(shù)字信號(hào)處理器(DSP)在理論上和技術(shù)上的快速發(fā)展,其技術(shù)已廣泛應(yīng)用于數(shù)字通信、雷達(dá)、聲納、語(yǔ)音合成、圖像處理、多媒體技術(shù)、生物醫(yī)學(xué)等各個(gè)領(lǐng)域。隨著科學(xué)技術(shù)的發(fā)展,其研究范圍和應(yīng)用領(lǐng)域還在不斷地發(fā)展和擴(kuò)大。本系統(tǒng)采用TI公司的TMS320C54x系列定點(diǎn)高性能低功耗型數(shù)字信號(hào)處理器實(shí)現(xiàn)和CF卡的連接。TMS320C54x DSP芯片的主要特點(diǎn)[2~4]如下:?
(1)40~160MIPS的運(yùn)算速度。?
(2)先進(jìn)的多總線結(jié)構(gòu)(1條程序總線、3條數(shù)據(jù)總線和4條地址總線)。?
(3)40位算術(shù)邏輯運(yùn)算單元(ALU)。?
(4)17×17位并行乘法器。?
(5)192K字可尋址存儲(chǔ)空間(64K字程序存儲(chǔ)器,64K字?jǐn)?shù)據(jù)存儲(chǔ)器以及64K字I/O空間),其中C548、C549和有些C54xx程序存儲(chǔ)空間可擴(kuò)展至8M字。?
(6)高效的并行指令系統(tǒng)。?
(7)多種外圍接口方式。?
(8)軟件可控的低功耗工作模式。?
DSP具有很強(qiáng)的數(shù)據(jù)處理能力,有多種外部接口形式,如有三組并行16位的數(shù)據(jù)接口(數(shù)據(jù)總線共用)和多個(gè)帶緩沖的串行接口。但這些端口不能和CF卡直接相連,本文采用一個(gè)復(fù)雜可編程邏輯器件(CPLD)[5]配合DSP和CF卡之間的邏輯控制和時(shí)序關(guān)系。?
2.3 硬件接口?
TMS320C54x對(duì)外有I/O、程序及數(shù)據(jù)3個(gè)并行16位訪問(wèn)空間,分別由對(duì)應(yīng)的空間選擇信號(hào)線選通,本設(shè)計(jì)選用I/O空間和CF卡接口,如圖2所示。主要由DSP、CF卡和CPLD組成memory連接模式,A3~A0為數(shù)據(jù)、命令或狀態(tài)寄存器地址線。D15~D0為數(shù)據(jù)總線,可16位或8位訪問(wèn),當(dāng)片選信號(hào)-CE1和-CE2同時(shí)有效時(shí),為16位訪問(wèn)格式;當(dāng)-CE2置高,-CE1單獨(dú)有效時(shí),為8位訪問(wèn)格式。CD1、CD2為CF卡存在性硬件檢測(cè)腳,內(nèi)部和地相連,當(dāng)CF卡有效插入卡座時(shí),對(duì)應(yīng)卡座上的CD1和CD2拉低,經(jīng)CPLD邏輯轉(zhuǎn)換可由硬件或軟件判斷CF卡是否存在。RDY/-BSY為CF卡狀態(tài)信號(hào),當(dāng)CF卡忙時(shí),該腳置低,此時(shí)DSP不能對(duì)其訪問(wèn)及進(jìn)行其它操作。-WE、-OE為讀寫有效信號(hào)。-REG為寄存器選擇信號(hào)線,-REG為高時(shí)訪問(wèn)數(shù)據(jù)存儲(chǔ)器(命令或數(shù)據(jù)),為低時(shí)訪問(wèn)屬性存儲(chǔ)器。上電時(shí),CF卡自動(dòng)完成復(fù)位,并在缺省狀態(tài)下進(jìn)入memory模式,也可由外部主機(jī)經(jīng)RESET腳對(duì)CF卡重新復(fù)位。DSP的A15~A12、-IOSTRB、-IS、R/-W腳輸出到CPLD,作為I/O空間的讀寫信號(hào)選通和地址譯碼。?
?
?
3 軟件設(shè)計(jì)?
3.1 CF卡指令及訪問(wèn)格式?
CF卡共有30條命令,在memory模式下16位訪問(wèn)時(shí)存儲(chǔ)器映射格式如表2所示。無(wú)論以何種方式工作,數(shù)據(jù)讀寫的最小單位為一個(gè)扇區(qū),8位格式訪問(wèn)時(shí)對(duì)應(yīng)一個(gè)扇區(qū)的數(shù)據(jù)量為512個(gè)字節(jié),16位時(shí)對(duì)應(yīng)一個(gè)扇區(qū)的數(shù)據(jù)量為256個(gè)字。為簡(jiǎn)化程序設(shè)計(jì),DSP用邏輯塊地址LBA(Logical Block Addressing)格式訪問(wèn)CF卡數(shù)據(jù)。LBA地址分段輸入,對(duì)應(yīng)的偏移地址分別為02H、04H、06H。CF卡最大存儲(chǔ)空間為137GByte(=228×512)。Sec_count表示一次可訪問(wèn)幾個(gè)扇區(qū),偏移地址06H的高8位(Command)為命令輸入。數(shù)據(jù)從偏移地址08H連續(xù)讀出或?qū)懭胍粋€(gè)扇區(qū)長(zhǎng)度。0CH、0EH空間顯示CF卡的狀態(tài)信息或?qū)懭胩卣髅睢?
?
?
3.2 常用命令編程?
CF卡的30條命令在文獻(xiàn)[1]中有詳細(xì)描述,限于篇幅,本文僅介紹CF卡的讀寫、CF卡信息獲取及刪除一個(gè)扇區(qū)命令的編程。另外需注意,盡管CF卡可在Burst方式下達(dá)到很高的數(shù)據(jù)傳輸速度,但與DSP相比還比較慢,在硬件設(shè)計(jì)時(shí)應(yīng)確保速度和時(shí)序的匹配。?
3.2.1 數(shù)據(jù)讀寫?
存儲(chǔ)器讀寫流程如圖3所示,上電后,可由DSP經(jīng)RESET腳對(duì)CF卡軟件復(fù)位,等CF卡準(zhǔn)備就緒后,寫入扇區(qū)數(shù)、LBA地址、讀(20H)或?qū)?30H)命令字。CF卡認(rèn)可后,連續(xù)從扇區(qū)緩沖器中讀出或?qū)懭?56個(gè)字。注意一點(diǎn),CF卡要求主機(jī)對(duì)扇區(qū)緩沖器連續(xù)讀寫,否則,在15ms后,CF卡會(huì)自動(dòng)進(jìn)入睡眠狀態(tài),使數(shù)據(jù)讀寫出錯(cuò)。?
?
?
3.2.2 讀出CF卡信息 ?
CF卡中有256Byte EPROM專門存放該卡的特征信息,主要包括磁盤柱面數(shù)、磁頭數(shù)、每磁道扇區(qū)數(shù)、扇區(qū)總數(shù)、緩沖區(qū)大小、緩沖區(qū)類型、糾錯(cuò)碼位數(shù)、公司序列號(hào)等,詳細(xì)內(nèi)容見參考文獻(xiàn)[1]。各公司的CF卡信息內(nèi)容有一定的差別,以該公司的數(shù)據(jù)手冊(cè)為準(zhǔn),命令格式和讀寫一樣,命令字為0ECH,當(dāng)CF卡收到讀信息命令字時(shí),會(huì)自動(dòng)忽略寫入扇區(qū)數(shù)及LBA地址,直接從EPROM中讀CF卡信息到扇區(qū)緩沖器。?
3.2.3 擦除一個(gè)扇區(qū)?
DSP先檢查CF卡狀態(tài),當(dāng)CF卡寫入有效時(shí),輸入指定扇區(qū)、LBA地址及擦除命令(0C0H),毋需檢查結(jié)果狀態(tài),該扇區(qū)被有效刪除后,扇區(qū)讀出值均為0。?
本文介紹的基于DSP的CompactFlash卡接口設(shè)計(jì),首先在TMS320C549 EVM 開發(fā)板上成功實(shí)現(xiàn)了DSP對(duì)CF卡的各種常用命令的操作,并通過(guò)設(shè)置CPLD的邏輯關(guān)系,正確實(shí)現(xiàn)了對(duì)CF卡采用8位或16位格式的操作,多種訪問(wèn)格式提高了應(yīng)用系統(tǒng)設(shè)計(jì)的靈活性。本文設(shè)計(jì)的接口電路具有廣泛的應(yīng)用價(jià)值,并已經(jīng)在數(shù)字語(yǔ)音錄音系統(tǒng)中獲得成功應(yīng)用。?
?
參考文獻(xiàn)?
1 CF+ and CompactFlash Specification Revision 1.4.CompactFlash Association, 1999.7?
2 TMS320C54x DSP Reference Set Volume 1:CPU and??Peripherals. Texas Instruments Incorporated,April 1999?
3 TMS320C54x DSP Reference Set Volume 4:Applications?Guide. Texas Instruments Incorporated.October 1996?
4 TMS320C54x DSP Reference Set Volume 5:Enhanced?Peripherals.Texas Instruments Incorporated,June 1999?
5 XC9500 In-System Programmable.CPLD Family.Xilinx Inc.September?15, 1999?