当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]Intel Xscale PXA255嵌入式处理器与CF卡的

以导航设备存储系统应用为例,本文讨论了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卡的当前状态;写操作时,该寄存器是命令寄存器,接收主机发送给CF卡的控制命令。

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

1. PXA255的PC Card/CF卡控制器

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

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

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

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

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

2. PXA255与CF卡硬件接口设计

图3:硬件接口电路  [!--empirenews.page--]

    本设计仅采用一个CF卡插槽,使用Socket0的I/O地址空间,而且CF卡采用True IDE模式。则访问地址空间为0x20000000-0x24000000时,PC Card/CF卡控制器将同时驱动信号SA_A25:0、nPREG和nPSKTSEL,并使用nPIOW和nPIOR信号作为读写控制信号。True IDE模式支持8位存取,也支持16位存取。

    在True IDE模式下,某些信号有特殊的含义,必须采用True IDE模式下特有的设置方法。如表1所示,nCE1是任务文件寄存器片选信号,低电平有效;nCE2是交替状态(Alternate Status)寄存器和设备控制(Device Control)寄存器片选信号,也是低电平有效。因为实际操作中,极少使用交替状态寄存器和设备控制寄存器,所以对CF卡的操作实际就是对任务文件寄存器的操作。因此,一般设置nCE1=0,nCE2=1。实现方法:在CPLD中设置nCE1=SA_A4,nCE2=not SA_A4。这样设置是有根据的。表1是True IDE模式下I/O编码表。主机操作CF卡时,系统仅使用地址总线A2:0,用于选择组成任务文件寄存器的8个寄存器之一。而地址总线A10:3由主机接地。因此,nCE1=SA_A4即nCE1=0;nCE2=not SA_A4即nCE2=1。表1中,-CE1=0时,对应的8个寄存器统称为任务文件寄存器。

    需要注意的是,在True IDE模式下,nOE不是读使能信号,而是CF卡True IED模式的使能信号。CF卡上电时,若nOE(PIN9)为"0",则CF卡自动进入True IDE模式;若nOE="1"则进入PC Card 模式。当电源一直接通时,热拔插CF卡将会使其从原来的True IDE模式重新配置成PC Card模式。因此,热插拔过程中,为了使CF卡工作在True IDE模式,需要在CF卡加电启动的时侯,同时将nOE信号接地。实现的方法:在CPLD中将nOE置0。True IDE模式下,nWE也不用作写使能信号,而应该由主机将之接地。处理方法:在CPLD中将其只置为1。

    还有一点需要注意的是: Reset信号在True IDE 模式下低电平有效,而在其它模式下高电平有效。将Reset信号接到PXA255的系统复位信号Reset_SYS。

    True IDE模式下,PXA255处理器与CF卡的硬件接口电路如图3所示。

    在图3中,D15:0为数据总线。RDnWR信号用来控制数据总线的方向(系统处于读状态时,RDnWR=1;系统处于写状态时,RDnWR=0)。nPSKTSEL信号用作数据总线的传输使能。SA_A10:0(CF_A10:0)为地址总线。在True IDE 模式下,CF卡的PSKTSEL引脚是主从(Master/Slave)选择信号:当PSKTSEL悬空时,CF卡是Slave设备;当PSKTSEL=0时,CF卡是Master设备。设计仅采用一个CF卡插槽,所以将PSKTSEL接地。在TRUE IDE模式下,REG信号没有用处,应该接电源VCC。IREQ是中断请求信号。利用IREQ信号,PXA255处理器可以判断CF卡是否处于读写忙状态,对CF卡进行读写之前利用此引脚判断CF卡是否空闲。nWAIT信号用于指示读写操作正在进行,请求处理器等待。

3. CF卡热插拔、即插即用功能的实现

    在自身设计上,CF卡注重软硬件两方面的配合。软硬件的协同设计可以实现CF卡热插拔、即插即用的功能。

    一是硬件提供判断条件。CF卡硬件电路提供了两个用来检测CF卡是否存在的引脚(nCD1和nCD2)。nCD1和nCD2的有效电平均为低电平,当主机检测到与其相连的nCD1和nCD2引脚同时为低电平时,可判断出CF卡与主机相连;当主机检测到与其相连的nCD1和nCD2两个引脚不同时为低电平,则可判断出CF卡未与主机相连。

表1:True IDE模式I/O编码

    二是软件。首先定义全局变量(如:Cf_IsInsert),用于记录CF卡是否与主机相连:当Cf_IsInsert为0时表示CF卡未与主机相连;当Cf_IsInsert为1时表示CF卡与主机相连。然后,在每次操作CF卡之前都先检测CF卡的nCD1和nCD2引脚。当检测到nCD1和nCD2引脚同时为低电平(有卡插入)且Cf_IsInsert为0时,复位CF卡,重新检测CF卡的FAT表,统计还有多少剩余空间可以分配。检测完毕后,置变量Cf_IsInsert为1,然后设置MECR寄存器CIT比特位。当检测到nCD1和nCD2引脚同时为低电平,且Cf_IsInsert为1时,设置MECR寄存器CIT比特位,继续CF卡的正常操作。当检测到nCD1和nCD2引脚为高时(无卡插入),停止CF卡操作,清除MECR寄存器CIT比特位,置变量Cf_IsInsert为0。

读/写CF卡扇区程序的编写方法

     CF卡的读写是以一个扇区为基本单位的。在读写一个扇区之前必须先指明当前需要读写的柱面、头和扇区或LBA地址,然后发送读写命令。一个扇区的512字节需要一次性连续读出或者写入。主机读/写CF卡上一个文件的过程是这样的:
1.CF卡初始化。CF卡上电复位和统计剩余空间的大小。
2.CF卡内部控制器向CF卡某些寄存器填写必要的信息。如向扇区号寄存器填写读写数据的起始扇区号或LBA地址、向扇区数寄存器填写读写数据所占的扇区个数、设置CF卡的扇区寻址方式等。
3.向CF卡的命令寄存器写入操作CF卡的命令。如写操作向CF卡的命令寄存器写入30H,读操作向CF卡的命令寄存器写入20H。
4.CF卡有数据传输请求之后,主机读写CF卡的数据寄存器,从而实现从CF卡数据缓冲读出数据或向CF卡数据缓冲写入数据。
5.在执行以上操作的过程中,每执行一步,都应该检测状态寄存器,确定CF卡的当前状态,从而确定下一步应该执行什么操作(参考状态寄存器的BIT位的意义,编写检测代码)。

本文小结

    前面详细介绍了CF卡的工作原理、PXA255处理器的PC Card/CF卡控制器的特性,给出了基于PXA255处理器的嵌入式导航设备存储系统的一种实现方案。目前,该设计已经在印刷电路板上实现,运行稳定可靠。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭