Xscale PXA255处理器与CF卡的接口设计
发布时间:2008/5/27 0:00:00 访问次数:601
    
    
    以导航设备存储系统应用为例,本文讨论了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卡的当前状态;写操作时,