Nios II與CF卡的接口設(shè)計(jì)
1 CF卡的特點(diǎn)及應(yīng)用
點(diǎn) CF卡是最近幾年蓬勃發(fā)展固態(tài)非易失的存儲(chǔ)介質(zhì),由于CF卡具有攜帶方便、易于升級(jí)、存儲(chǔ)量大、抗震性好等優(yōu)點(diǎn),在大容量便攜式數(shù)據(jù)存儲(chǔ)和傳輸過程中,CF 有著非常廣泛的應(yīng)用前景,如數(shù)碼相機(jī)、MP3播放器、PDA(個(gè)人數(shù)字助理)、數(shù)字式錄音機(jī)、筆記本電腦、手提電話、機(jī)頂盒等。預(yù)計(jì)今后在其他領(lǐng)域?qū)⒂懈鼮閺V泛的應(yīng)用。另外CF卡的兼容性佳,不僅同時(shí)支持3.3 V和5 V的電壓,而且不同的CF卡都可以用單一的機(jī)構(gòu)讀寫,特別是CF卡升級(jí)換代時(shí)也可以保證舊設(shè)備的兼容性。而純電子運(yùn)動(dòng)的CF卡耗電量很低,僅為IBM 微型硬盤的5%。目前,CF卡容量從最早的2 MB到現(xiàn)今的8 GB,數(shù)據(jù)傳輸從最早的5 MB/s發(fā)展到現(xiàn)在的20 MB/s。
CF卡由2個(gè)基本部分構(gòu)成:內(nèi)部控制器和閃存模塊。CF卡的閃存模塊基本上都使用NAND型閃存,用于存儲(chǔ)數(shù)據(jù)。內(nèi)部控制器用來實(shí)現(xiàn)CF卡與主機(jī)的接口以及控制數(shù)據(jù)的傳輸。CF卡內(nèi)部控制器的設(shè)計(jì)完全模擬硬盤,使用標(biāo)準(zhǔn)的ATA/IDE接口。
CF 的存取方式有3種:PC Card Memory模式、PC Card I/O模式以及True IDE模式。PC Card模式與PCMCIA標(biāo)準(zhǔn)兼容。True IDE模式與ATA標(biāo)準(zhǔn)兼容。
3種方式相比,在True IDE模式下,CF卡與主機(jī)通信的信號(hào)最少,硬件接口最簡(jiǎn)單、軟件易于實(shí)現(xiàn),因此本設(shè)計(jì)采用True IDE模式。
2 CF卡接口控制器的寄存器的定義
在設(shè)計(jì)中,采用Altera提供的一個(gè)CF接口控制器內(nèi)核實(shí)現(xiàn)CF卡數(shù)據(jù)的傳輸.該內(nèi)核提供一個(gè)連接片外CF卡的Avalon總線接口,通過使用適當(dāng)?shù)臅r(shí)序把Avalon總線信號(hào)映射到CF卡,提供了對(duì)標(biāo)準(zhǔn)的實(shí)IDE模式寄存器的訪問,允許設(shè)計(jì)者在Nios II系統(tǒng)中簡(jiǎn)易連接就可以使用CF卡。圖1所示為CF卡接口控制器內(nèi)核的結(jié)構(gòu)框圖。
圖1 CF卡控制器內(nèi)核結(jié)構(gòu)框圖
該內(nèi)核提供2個(gè)Avalon總線從端口.第一個(gè)是為了訪問CF設(shè)備內(nèi)部的寄存器組,第二個(gè)是為了訪問控制器內(nèi)核內(nèi)部的寄存器文件,CF核提供2個(gè)高有效的中斷請(qǐng)求輸出,一個(gè)是CF插入或移除的中斷信號(hào),另一個(gè)是把設(shè)備上的中斷信號(hào)傳送到Avalon主設(shè)備。
對(duì)于CF卡的操作(如:讀/寫),其實(shí)就是對(duì)CF卡控制器的寄存器進(jìn)行操作。所以,必須對(duì)CF卡的寄存器十分熟悉。這些寄存器統(tǒng)稱為任務(wù)文件(task file)寄存器:
(1)數(shù)據(jù)寄存器(讀/寫),用于CF卡的讀寫操作。主機(jī)通過該寄存器向CF卡數(shù)據(jù)緩沖寫入或從CF卡數(shù)據(jù)緩沖讀出數(shù)據(jù)。
(2)錯(cuò)誤寄存器(讀)和特性寄存器(寫) 讀操作時(shí),此寄存器為錯(cuò)誤寄存器,用于指明錯(cuò)誤的原因;寫操作時(shí),此寄存器為特性寄存器。
(3)扇區(qū)數(shù)寄存器(讀/寫)。用來記錄讀、寫扇區(qū)的數(shù)目。
(4)扇區(qū)號(hào)寄存器(讀/寫),用來記錄讀、寫和校驗(yàn)命令指定的起始扇區(qū)號(hào)或邏輯塊地址(LBA)的BIT7:0。
(5)柱面號(hào)寄存器(讀/寫),用來記錄讀、寫、校驗(yàn)和尋址命令指定的柱面號(hào)或LBA的BIT23:8。
(6)驅(qū)動(dòng)器/磁頭寄存器(讀/寫),記錄讀、寫、校驗(yàn)和尋道命令指定的驅(qū)動(dòng)器號(hào)、磁頭號(hào)或LBA的BIT27:24,其中BIT6(LBA)用來設(shè)置CF卡扇區(qū)的尋址方式(LBA=0,采用CHS模式;LBA=1。采用LBA模式)。
(7)狀態(tài)寄存器(讀)和命令寄存器(寫),在讀操作時(shí),該寄存器是狀態(tài)寄存器,指示CF卡控制器執(zhí)行命令后的狀態(tài),讀狀態(tài)寄存器則返回CF卡的當(dāng)前狀態(tài);在寫操作時(shí),該寄存器是命令寄存器,接收主機(jī)發(fā)送給CF卡的控制命令。
評(píng)論