CF卡在DM642基便携式数字视频系统中的应用
时间:11-20
来源:21IC电子网
点击:
0 引言
目前,数字视频系统在日常工作和生活中己得到广泛应用,如监控系统、视频电话、数字电视等,而随着技术的进步和工作生活对视频图像质量的要求越来越高,处理的数据量也越来越大,这就提出了两个新的问题:一方面要求硬件的处理能力要更快,如监控系统和视频电话系统都要求具备实时性;另一方面要求数据的存储介质容量更大而且方便携带。为了实现DSP(DigitalSignal Processing)系统的独立运行,需要有大容量的存储介质用于保存视频数据。本文中使用TI公司的高端多媒体处理芯片DM642作为图像处理芯片,其强大的计算能力、丰富的外围接口和完全可编程性,可以方便地用来开发各种图像系统。而CF卡的使用则可以弥补板载的Flash容量通常太小,SDRAM掉电后数据会丢失的缺陷。同时CF卡采用的插针式连接方式,具有相对较高的抗震性和稳定性,能够较好地满足便携式设备的要求。在视频编解码方面采用TI公司提供的MPEG一2算法,可以基本满足压缩效率和质量的要求。
1 CF卡的简介
CF卡的全称为Compact F1ash。它最先是由Sandisk公司在1994年推出的,现在已经成为一种行业标准,其内部示意图如图1所示。CF卡由两个基本部分组成:控制芯片和闪存模块。控制芯片用来实现与主机的连接及控制数据在闪存模块中的传输,而闪存模块用于存储信息。CF卡兼容3.3V和5V的工作电压,并支持多种接口访问模式。目前CF的容量可高达100GB,主流容量已达到4GB,价格也已经降到几十元左右,性价比很高。
2 DM642与CF卡的接口设计
2.1 硬件接口设计
CF卡支持三种基本的工作模式:PC Card Memory模式、PC Card I/0模式以及True IDE模式,不同的模式对应的管脚功能略有不同。在本文的设计中使用的是PCCard Memory模式,在插入CF卡之前,保证CF卡的插槽/REG管脚为高电平,即可让CF卡自动进入PC Card Memory模式。DSPs是通过外部存储器接口EMIF(External MemoryInterface)来访问片外存储器的。DM642的EMIF有CEO、CEl、CE2、CE3四个空间,各具有256MB的寻址空间。本文所述的系统设计中将CE2空间配置为CF卡的地址空间供CF卡使用,根据Memory模式的要求,CE2空间被配置为8位异步接口,此外还专门配备了一片CPLD来对CF卡进行读写控制,硬件连接如图2所示。
引脚连接说明如下:/REG信号用于选择访问普通寄存器还是属性寄存器,他和地址线A[3:0]一起完成对读写寄存器的选取。/CDl和/CD2用于检测插槽上是否有CF卡,当CF卡插入插槽后,这些管脚会被拉低。/CEl和/CE2则用来选择CF卡的数据传输宽度,本文中设计为8位宽度。为了节约IO口的资源,/CDl、/CD2、/CEl、/CE2和I/REG均连接到配置的通用IO(GPIO)口上。
TEAl3控制REG,TEAl2控制CF卡的CEl,TEAl 1控制CF卡的CE2,DSP_CE2是CE2空间的使能信号,ARE和IAWE是异步接口的读写信号,均为低电平有效,他们通过与DSP_CE2逻辑取"或"后连接到CF卡的/0E和/WE,这样在/CE2使能后就可以相应地控制CF卡的读写操作。
CF卡具有16位的数据总线,但是可以根据主控制器的数据宽度灵活配置成8位或16位,本系统中将DM642的低16位数据总线D[15:0]与CF卡的数据总线D[15:0]相连。CF卡的11位地址总线取低四位A[3:0]连接到DM642的TEA[6:3],CF卡的TEA[9:4]接地,TEAl0连接到DM642的TEA7,CSEL接地,IOWR、IORD上拉至VCC,其他未说明使用的引脚均为接地操作。
2.2 CF卡的软件接口
CF卡的读写是以扇区(sector)为基本单位的,每扇区为512字节,每次读写一个或多个连续扇区。本文中CF卡被配置为PC Card Memory模式,该模式下的寄存器地址映射如表1所示。
寄存器0用于读写数据,寄存器1在读操作时是错误寄存器,存放错误信息,写的时候是特征寄存器。寄存器2用于存放读写扇区的数目。寄存器3~6用于存放读写扇区的地址。CF卡的扇区寻址有两种方式:物理寻址方式(Cylinder/Head/Sector,CHS)和逻辑寻址方式(Logical Block Addressing,LBA)。CHS是扇区对应的具体的柱面、磁头和扇区的地址,LBA的地址则在逻辑上是连续的,两种寻址方式的转换关系为:LBA地址=(柱面号×磁头数+磁头号)×扇区数+扇区号一1。本文选择LBA的线性寻址方式。
寄存器7在读和写时具有不同的意义。读操作时是状态寄存器,存放CF卡的状态信息,写的时候是命令寄存器,用于设置命令,完成相应的操作。
CF卡读写程序之前要初始化DSP和CF卡,初始化GPIO,将DM642的CE2空间设置为8位异步接口,将/REG配置为高电平,同时设置CF卡为8位数据接口。
在读写扇区时,首先要设置好起始扇区的LBA地址和要读写的扇区数目,然后再设置命令寄存器,读取数据设置为20H,写入数据设置为30H,写完后读取状态寄存器,只有当状态寄存器为"58H"时才能开始读写操作,否则继续查询状态。由于数据接口为8位,这样对一个扇区就需要读或写512次数据寄存器即可。之后还要读取状态寄存器看是否为"50H",判断CF卡的操作是否完成,若完成,则退出本次操作,否则继续查询直至完成。
CF卡写一个扇区函数部分源码如下:
目前,数字视频系统在日常工作和生活中己得到广泛应用,如监控系统、视频电话、数字电视等,而随着技术的进步和工作生活对视频图像质量的要求越来越高,处理的数据量也越来越大,这就提出了两个新的问题:一方面要求硬件的处理能力要更快,如监控系统和视频电话系统都要求具备实时性;另一方面要求数据的存储介质容量更大而且方便携带。为了实现DSP(DigitalSignal Processing)系统的独立运行,需要有大容量的存储介质用于保存视频数据。本文中使用TI公司的高端多媒体处理芯片DM642作为图像处理芯片,其强大的计算能力、丰富的外围接口和完全可编程性,可以方便地用来开发各种图像系统。而CF卡的使用则可以弥补板载的Flash容量通常太小,SDRAM掉电后数据会丢失的缺陷。同时CF卡采用的插针式连接方式,具有相对较高的抗震性和稳定性,能够较好地满足便携式设备的要求。在视频编解码方面采用TI公司提供的MPEG一2算法,可以基本满足压缩效率和质量的要求。
1 CF卡的简介
CF卡的全称为Compact F1ash。它最先是由Sandisk公司在1994年推出的,现在已经成为一种行业标准,其内部示意图如图1所示。CF卡由两个基本部分组成:控制芯片和闪存模块。控制芯片用来实现与主机的连接及控制数据在闪存模块中的传输,而闪存模块用于存储信息。CF卡兼容3.3V和5V的工作电压,并支持多种接口访问模式。目前CF的容量可高达100GB,主流容量已达到4GB,价格也已经降到几十元左右,性价比很高。
2 DM642与CF卡的接口设计
2.1 硬件接口设计
CF卡支持三种基本的工作模式:PC Card Memory模式、PC Card I/0模式以及True IDE模式,不同的模式对应的管脚功能略有不同。在本文的设计中使用的是PCCard Memory模式,在插入CF卡之前,保证CF卡的插槽/REG管脚为高电平,即可让CF卡自动进入PC Card Memory模式。DSPs是通过外部存储器接口EMIF(External MemoryInterface)来访问片外存储器的。DM642的EMIF有CEO、CEl、CE2、CE3四个空间,各具有256MB的寻址空间。本文所述的系统设计中将CE2空间配置为CF卡的地址空间供CF卡使用,根据Memory模式的要求,CE2空间被配置为8位异步接口,此外还专门配备了一片CPLD来对CF卡进行读写控制,硬件连接如图2所示。
引脚连接说明如下:/REG信号用于选择访问普通寄存器还是属性寄存器,他和地址线A[3:0]一起完成对读写寄存器的选取。/CDl和/CD2用于检测插槽上是否有CF卡,当CF卡插入插槽后,这些管脚会被拉低。/CEl和/CE2则用来选择CF卡的数据传输宽度,本文中设计为8位宽度。为了节约IO口的资源,/CDl、/CD2、/CEl、/CE2和I/REG均连接到配置的通用IO(GPIO)口上。
TEAl3控制REG,TEAl2控制CF卡的CEl,TEAl 1控制CF卡的CE2,DSP_CE2是CE2空间的使能信号,ARE和IAWE是异步接口的读写信号,均为低电平有效,他们通过与DSP_CE2逻辑取"或"后连接到CF卡的/0E和/WE,这样在/CE2使能后就可以相应地控制CF卡的读写操作。
CF卡具有16位的数据总线,但是可以根据主控制器的数据宽度灵活配置成8位或16位,本系统中将DM642的低16位数据总线D[15:0]与CF卡的数据总线D[15:0]相连。CF卡的11位地址总线取低四位A[3:0]连接到DM642的TEA[6:3],CF卡的TEA[9:4]接地,TEAl0连接到DM642的TEA7,CSEL接地,IOWR、IORD上拉至VCC,其他未说明使用的引脚均为接地操作。
2.2 CF卡的软件接口
CF卡的读写是以扇区(sector)为基本单位的,每扇区为512字节,每次读写一个或多个连续扇区。本文中CF卡被配置为PC Card Memory模式,该模式下的寄存器地址映射如表1所示。
寄存器0用于读写数据,寄存器1在读操作时是错误寄存器,存放错误信息,写的时候是特征寄存器。寄存器2用于存放读写扇区的数目。寄存器3~6用于存放读写扇区的地址。CF卡的扇区寻址有两种方式:物理寻址方式(Cylinder/Head/Sector,CHS)和逻辑寻址方式(Logical Block Addressing,LBA)。CHS是扇区对应的具体的柱面、磁头和扇区的地址,LBA的地址则在逻辑上是连续的,两种寻址方式的转换关系为:LBA地址=(柱面号×磁头数+磁头号)×扇区数+扇区号一1。本文选择LBA的线性寻址方式。
寄存器7在读和写时具有不同的意义。读操作时是状态寄存器,存放CF卡的状态信息,写的时候是命令寄存器,用于设置命令,完成相应的操作。
CF卡读写程序之前要初始化DSP和CF卡,初始化GPIO,将DM642的CE2空间设置为8位异步接口,将/REG配置为高电平,同时设置CF卡为8位数据接口。
在读写扇区时,首先要设置好起始扇区的LBA地址和要读写的扇区数目,然后再设置命令寄存器,读取数据设置为20H,写入数据设置为30H,写完后读取状态寄存器,只有当状态寄存器为"58H"时才能开始读写操作,否则继续查询状态。由于数据接口为8位,这样对一个扇区就需要读或写512次数据寄存器即可。之后还要读取状态寄存器看是否为"50H",判断CF卡的操作是否完成,若完成,则退出本次操作,否则继续查询直至完成。
CF卡写一个扇区函数部分源码如下:
- DM642的I2C息线配置与应用(11-27)
- IPTV 编解码技术之惑(08-13)
- 基于DM642的定位视音频采集器的系统设计与实现(03-05)