Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1357230
  • 博文数量: 281
  • 博客积分: 8800
  • 博客等级: 中将
  • 技术积分: 3346
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-17 22:31
文章分类

全部博文(281)

文章存档

2013年(1)

2012年(18)

2011年(16)

2010年(44)

2009年(86)

2008年(41)

2007年(10)

2006年(65)

我的朋友

分类: LINUX

2009-06-19 11:21:29

以导航设备存储系统应用为例,本文讨论了Intel Xscale PXA255嵌入式处理器与CF卡的硬件接口设计,并以读写CF卡扇区的程序为例,给出了CF卡软件编写的。该设计为基于PXA255处理器的嵌入式系统提供了扩展存储空间的一种方法。

Intel Xscale PXA255
处理器是新一代的嵌入式处理器,基于
v5TE体系结构的微处理器,性价比较高、功耗较低,适合于数字移动电话、个人数字助理、路由器等嵌入式系统的应用。在采用PXA255处理器开发诸如车载导航系统时,电子地图等海量地理信息数据需要一个容量大、体积小、性能优异的存储器。“Compact Flash”卡,简称CF卡,具有高速度、大容量、体积小、重量轻、功耗低和高性价比等优点,十分适合嵌入式系统的应用。因此,可选择CF卡作为地理信息数据的存储载体。PXA255处理器提供了PCMCIA/CF卡控制器,可以方便地实现PXA255处理器与CF卡的接口设计。

CF
卡结构和工作原理
  

Compact Flash
技术是由CF协会(CFA)提出的一种与PCATA接口标准兼容的技术。如图1CF卡由两个基本部分构成:内部控制器和闪存模块。CF卡的闪存模块基本上都使用NAND型闪存,用于存储数据。内部控制器用来实现CF卡与主机的接口以及控制数据的传输。CF卡内部控制器的设计完全模拟硬盘,使用标准的ATA/IDE接口。





1CF卡结构框图  

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)BIT70


5
.柱面号寄存器(/),用来记录读、写、校验和寻址命令指定的柱面号或LBABIT238


6
.驱动器/磁头寄存器(/),记录读、写、校验和寻道命令指定的驱动器号、磁头号或LBABIT2724,其中BIT6(LBA)用来设置CF卡扇区的寻址方式(LBA=0,采用CHS模式;LBA=1,采用LBA模式)


7
.状态寄存器()和命令寄存器(/),读操作时,该寄存器是状态寄存器,指示CF卡控制器执行命令后的状态,读状态寄存器则返回CF卡的当前状态;写操作时,该寄存器是命令寄存器,接收主机发送给CF卡的控制命令。


PXA255
处理器与CF卡的硬件接口设计  

1. PXA255
PC Card/CF卡控制器
  

PXA255
处理器PC Card/CF卡控制器可以支持一个PCMCIA卡或CF卡插槽,利用nPSKTSEL引脚可以支持第2个插槽。寄存器MECR用于向PXA255处理器的PC Card/CF卡控制器指出是否有CF卡插入,以及系统支持的CF卡的插槽数目。在有卡插入时,软件必须将MECRCIT比特位置1;所有的卡拔出时,则必须将之清零。
  

PXA255
处理器PC Card/CF卡接口支持816位外围设备,而且可以处理公共存储器(Common Memory)I/O和特性存储器(Attribute Memory)三种方式的存取。每次访问的时间取决于MCMEMxMCATTxMCIOx寄存器的设置。图2给出了PXA255处理器16PC Card/CF卡地址空间的存储器映像。16PC Card/CF卡存储器映像空间分为8块。每个插槽对应其中4块,分别为公共存储器、I/O、特性存储器和保留空间。每个块的大小为64M




2CF卡地址空间存储映像

每次访问PC Card /CF卡对应的地址空间,PC Card/CF卡控制器将同时驱动信号SA_A250nPREGnPSKTSEL(注:PXA255处理器的地址总线为SA_A250
)  

如果访问公共存储器和特性存储器地址空间,PC Card/CF卡控制器驱动地址总线的时候,同时驱动nPCE1nPCE2信号,并使用nPOEnPWE信号作为读写控制信号。
  

如果是访问I/O空间,nPCE1nPCE2的值取决于CF卡的信号输出nIOIS16,而且在nIOIS16有效后,nPCE1nPCE2将有效固定的一段时间。nIOIS16信号用来决定传送的数据总线的宽度(8位或16)nIOIS16=1,表明当前的数据总线为8位,nPCE1有效;nIOIS16=0表明当前的数据总线为16位,nPCE1nPCE2同时有效。PXA255使用nPCE2向外部设备指出操作将使用数据总线的高8位,使用nPCE1向外部设备指出操作将使用数据总线的低8位。I/O地址空间的访问使用nPIOWnPIOR信号作为读写控制信号。

 

阅读(1120) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~