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