Nios II与CF卡的接口设计
发布时间:2008/9/2 0:00:00 访问次数:1156
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卡的控制命令。
3 nios ii处理器与cf卡的硬件接口设计
在altera公司提供的sopc软件中对该软核进行配置时,选用nios ii cpu、内部定时器、cf卡接口控制器、sdram 控制器、flash 存储器接口、lcd 接口和epcs4串行配置器件控制器接口。其框图如图2所示。
图2 硬件接口框图
4 cf卡的接口控制器的软件操作
在nios ii系统中,应用软件架构在hal(硬件抽象层)和c标准库函数上。在nios ii ide 中建立新的软件工程时,ide会根据sopc builder对系统的硬件配置自动生成一个定制hal系统库。这个库能为程序和底层硬件的通信提供接口驱动程序,hal系统库为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卡的控制命令。
3 nios ii处理器与cf卡的硬件接口设计
在altera公司提供的sopc软件中对该软核进行配置时,选用nios ii cpu、内部定时器、cf卡接口控制器、sdram 控制器、flash 存储器接口、lcd 接口和epcs4串行配置器件控制器接口。其框图如图2所示。
图2 硬件接口框图
4 cf卡的接口控制器的软件操作
在nios ii系统中,应用软件架构在hal(硬件抽象层)和c标准库函数上。在nios ii ide 中建立新的软件工程时,ide会根据sopc builder对系统的硬件配置自动生成一个定制hal系统库。这个库能为程序和底层硬件的通信提供接口驱动程序,hal系统库为cf卡接口控制器内核提供
上一篇:PCB设计技巧常见问题分析