新闻中心

EEPW首页 > 手机与无线通信 > 设计应用 > 基于无线通信技术的数据记录系统

基于无线通信技术的数据记录系统

作者: 时间:2011-09-27 来源:网络 收藏
3.1.1异步FIFO模块

本文引用地址:https://www.eepw.com.cn/article/155677.htm

  设备的实时性强、量大。为了提高传输速度、避免数据堵塞,利用FPGA硬件设计上的灵活性,在其内部构建了一个宽度为16位、深度为512的异步FIFO模块,作为DSP与CF卡之间数据传输的中继站。

  

异步FIFO模块

  异步FIFO的结构图如图2所示。它包括4个模块:数据存储模块、写地址产生模块、读地址产生模块和标志位产生模块。FIFO的读写采用读时钟和写时钟两个时钟。写时钟同步的信号有写地址产生模块生成的写请求和写地址;读时钟同步的信号有读地址产生模块生成的读请求和读地址。写使能和读使能分别由DSP与FPGA数据传输控制逻辑和CF卡读写控制逻辑生成。标志位产生模块由读写地址关系生成FIFO存储状态标志,并反馈给主机DSP。DSP通过查询该标志来控制与FPGA的数据传输。

  3.1.2 CF卡读写模块

  CF卡读写模块分为CF卡读控制模块和CF卡写控制模块。CF卡读或写模块的设计具有相似性。这里仅介绍写CF卡的工作过程。

  首先,设置CF卡的属性寄存器。CF卡有4个属性寄存器,通常只需设置“配置选择寄存器”以选择CF卡的读写模式。CF卡的读写模式有3种:I/O模式、Memory模式和True IDE模式。本设计使用16位的Memory模式读写CF卡。Memory模式是CF卡默认的读写模式,所以在CF卡初始化过程中不需要设置“配置属性寄存器”。

  其次,设置CF卡的任务文件寄存器。本设计中使用的任务文件寄存器有:数据寄存器、扇区数寄存器、扇区号寄存器、低柱面号寄存器、高柱面号寄存器、驱动器选择/磁头寄存器和状态/命令寄存器。对它们进行没置,可选择扇区寻址方式,设定每次读写的扇区数和逻辑寻址地址,并获取CF卡状态以及输入读写命令。

  CF卡的寻址方式与计算机的硬盘操作方式类似。扇区的寻址方式有两种:物理寻址方式(CHS)和逻辑寻址方式(LBA)。本设计使用LBA寻址,对应28位LBA地址。

  磁头寄存器存放LBA地址的27~24位;柱面号寄存器存放LBA地址的23~8位;扇区号寄存器存放LBA地址的7~0位。

  

  写CF卡一个扇区的流程如图3所示。每次向CF卡存储数据时,应该先获取上次存储到的扇区的LBA地址,从而获得此次存储的起始扇区地址。为了每次存储到的扇区的地址,将LBA地址为0的扇区保留,专用于扇区地址。在开始一次写操作之前,应该先读取LBA地址为O的扇区,获得上次存储的LBA地址;然后加1获得此次写操作的LBA地址,并向指定的扇区写数据。

  利用QuartusII作为FPGA开发平台,使用VHDL硬件描述语言实现了FPGA与DSP的接口、异步FIFO的存储以及CF卡的读写逻辑。在QuartusII自带仿真工具下得到的写CF卡时序仿真结果如图4所示。

  

写CF卡时序仿真结果



评论


相关推荐

技术专区

关闭