Xscale PXA255處理器與CF卡的接口設計
發布時間:2008/5/27 0:00:00 訪問次數:596
    
    
    以導航設備存儲系統應用為例,本文討論了intel xscale pxa255嵌入式處理器與cf卡的硬件接口設計,并以讀寫cf卡扇區的程序為例,給出了cf卡軟件編寫的技巧。該設計為基于pxa255處理器的嵌入式系統提供了擴展存儲空間的一種方法。
    
    
    
    圖1:cf卡結構框圖。
    
    intel xscale pxa255處理器是新一代的嵌入式處理器,基于armv5te體系結構的微處理器,性價比較高、功耗較低,適合于數字移動電話、個人數字助理、網絡路由器等嵌入式系統的應用。在采用pxa255處理器開發諸如車載導航系統時,電子地圖等海量地理信息數據需要一個容量大、體積小、性能優異的存儲器。“compact flash”卡,簡稱cf卡,具有高速度、大容量、體積小、重量輕、功耗低和高性價比等優點,十分適合嵌入式系統的應用。因此,可選擇cf卡作為地理信息數據的存儲載體。pxa255處理器提供了pcmcia/cf卡控制器,可以方便地實現pxa255處理器與cf卡的接口設計。
    
    cf卡結構和工作原理
    
    compact flash技術是由cf協會(cfa)提出的一種與pc機ata接口標準兼容的技術。如圖1,cf卡由兩個基本部分構成:內部控制器和閃存模塊。cf卡的閃存模塊基本上都使用nand型閃存,用于存儲數據。內部控制器用來實現cf卡與主機的接口以及控制數據的傳輸。cf卡內部控制器的設計完全模擬硬盤,使用標準的ata/ide接口。
    
    cf卡的存取方式有三種:pc card memory模式、pc card i/o模式以及true ide模式。pc card模式與pcmcia標準兼容。true ide模式與ata標準兼容。三種方式相比,在true ide模式下,cf卡與主機通信的信號最少,硬件接口最簡單、軟件易于實現,因此本設計采用了true ide模式。
    
    cf卡扇區尋址有兩種方式:物理尋址方式(chs)和邏輯尋址方式(lba)。物理尋址方式使用柱面、磁頭和扇區號表示一個特定的扇區,起始扇區是0磁道、0磁頭、1扇區,接著是2扇區,一直到eof扇區;接下來是同一柱面1頭、1扇區等。邏輯尋址方式將整個cf卡同一尋址。邏輯塊地址和物理地址的關系為:lba地址=(柱面號×磁頭數+磁頭號)×扇區數+扇區數-1。
    
    cf卡沒有機械結構,因此cf卡的扇區尋址適宜采用邏輯尋址方式。邏輯尋址方式沒有磁頭和磁道的轉換操作,因此在訪問連續扇區時,操作速度比物理尋址方式快得多。
    
    對于cf卡的操作(如:讀/寫),其實就是對cf卡控制器的寄存器進行操作。所以,必須對cf卡的寄存器十分熟悉。這些寄存器統稱為任務文件(task file)寄存器:
    
    1.數據寄存器(讀/寫),用于cf卡的讀寫操作。主機通過該寄存器向cf卡數據緩沖寫入或從cf卡數據緩沖讀出數據。
    
    2.錯誤寄存器(read)和特性寄存器(write)。讀操作時,此寄存器為錯誤寄存器,用于指明錯誤的原因;寫操作時,此寄存器為特性寄存器。
    
    3.扇區數寄存器(讀/寫),用來記錄讀、寫扇區的數目。
    
    4.扇區號寄存器(讀/寫),用來記錄讀、寫和校驗命令指定的起始扇區號或邏輯塊地址(lba)的bit7:0。
    
    5.柱面號寄存器(讀/寫),用來記錄讀、寫、校驗和尋址命令指定的柱面號或lba的bit23:8。
    
    6.驅動器/磁頭寄存器(讀/寫),記錄讀、寫、校驗和尋道命令指定的驅動器號、磁頭號或lba的bit27:24,其中bit6(lba)用來設置cf卡扇區的尋址方式(lba=0,采用chs模式;lba=1,采用lba模式)。
    
    
    
    圖2:cf卡地址空間存儲映像。
    
    7.狀態寄存器(讀)和命令寄存器(讀/寫),讀操作時,該寄存器是狀態寄存器,指示cf卡控制器執行命令后的狀態,讀狀態寄存器則返回cf卡的當前狀態;寫操作時,
    
    
    以導航設備存儲系統應用為例,本文討論了intel xscale a255嵌入式處理器與cf卡的硬件接口設計,并以讀寫cf卡扇區的程序為例,給出了cf卡軟件編寫的技巧。該設計為基于a255處理器的嵌入式系統提供了擴展存儲空間的一種方法。
    
    
    
    圖1:cf卡結構框圖。
    
    intel xscale a255處理器是新一代的嵌入式處理器,基于armv5te體系結構的微處理器,性價比較高、功耗較低,適合于數字移動電話、個人數字助理、網絡路由器等嵌入式系統的應用。在采用a255處理器開發諸如車載導航系統時,電子地圖等海量地理信息數據需要一個容量大、體積小、性能優異的存儲器。“compact flash”卡,簡稱cf卡,具有高速度、大容量、體積小、重量輕、功耗低和高性價比等優點,十分適合嵌入式系統的應用。因此,可選擇cf卡作為地理信息數據的存儲載體。a255處理器提供了pcmcia/cf卡控制器,可以方便地實現a255處理器與cf卡的接口設計。
    
    cf卡結構和工作原理
    
    compact flash技術是由cf協會(cfa)提出的一種與pc機ata接口標準兼容的技術。如圖1,cf卡由兩個基本部分構成:內部控制器和閃存模塊。cf卡的閃存模塊基本上都使用nand型閃存,用于存儲數據。內部控制器用來實現cf卡與主機的接口以及控制數據的傳輸。cf卡內部控制器的設計完全模擬硬盤,使用標準的ata/ide接口。
    
    cf卡的存取方式有三種:pc card memory模式、pc card i/o模式以及true ide模式。pc card模式與pcmcia標準兼容。true ide模式與ata標準兼容。三種方式相比,在true ide模式下,cf卡與主機通信的信號最少,硬件接口最簡單、軟件易于實現,因此本設計采用了true ide模式。
    
    cf卡扇區尋址有兩種方式:物理尋址方式(chs)和邏輯尋址方式(lba)。物理尋址方式使用柱面、磁頭和扇區號表示一個特定的扇區,起始扇區是0磁道、0磁頭、1扇區,接著是2扇區,一直到eof扇區;接下來是同一柱面1頭、1扇區等。邏輯尋址方式將整個cf卡同一尋址。邏輯塊地址和物理地址的關系為:lba地址=(柱面號×磁頭數+磁頭號)×扇區數+扇區數-1。
    
    cf卡沒有機械結構,因此cf卡的扇區尋址適宜采用邏輯尋址方式。邏輯尋址方式沒有磁頭和磁道的轉換操作,因此在訪問連續扇區時,操作速度比物理尋址方式快得多。
    
    對于cf卡的操作(如:讀/寫),其實就是對cf卡控制器的寄存器進行操作。所以,必須對cf卡的寄存器十分熟悉。這些寄存器統稱為任務文件(task file)寄存器:
    
    1.數據寄存器(讀/寫),用于cf卡的讀寫操作。主機通過該寄存器向cf卡數據緩沖寫入或從cf卡數據緩沖讀出數據。
    
    2.錯誤寄存器(read)和特性寄存器(write)。讀操作時,此寄存器為錯誤寄存器,用于指明錯誤的原因;寫操作時,此寄存器為特性寄存器。
    
    3.扇區數寄存器(讀/寫),用來記錄讀、寫扇區的數目。
    
    4.扇區號寄存器(讀/寫),用來記錄讀、寫和校驗命令指定的起始扇區號或邏輯塊地址(lba)的bit7:0。
    
    5.柱面號寄存器(讀/寫),用來記錄讀、寫、校驗和尋址命令指定的柱面號或lba的bit23:8。
    
    6.驅動器/磁頭寄存器(讀/寫),記錄讀、寫、校驗和尋道命令指定的驅動器號、磁頭號或lba的bit27:24,其中bit6(lba)用來設置cf卡扇區的尋址方式(lba=0,采用chs模式;lba=1,采用lba模式)。
    
    
    
    圖2:cf卡地址空間存儲映像。
    
    7.狀態寄存器(讀)和命令寄存器(讀/寫),讀操作時,該寄存器是狀態寄存器,指示cf卡控制器執行命令后的狀態,讀狀態寄存器則返回cf卡的當前狀態;寫操作時,