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地址,并向指定的扇区写数据。

基于DSP的近距离无线通信的嵌入式数据记录设备设计

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

基于DSP的近距离无线通信的嵌入式数据记录设备设计

3.2 无线通信模块设计

3.2.1 蓝牙模块设计

蓝牙模块采用BTM0604C2P。它内嵌蓝牙芯片BlueCore4-Ext,兼容蓝牙2.0+EDR规范,最高支持3 Mbps的数据速率,外置天线,有效距离为10 m,具有标准的UART接口。

DSP与蓝牙模块之间通过HCI协议层建立连接。HCI(Host Controller InteRFace,主机控制器接口)协议,为DSP提供了一个访问蓝牙模块内部基带控制器和链路管理器的命令接口,可以获取蓝牙芯片的配置参数。

本设计中,DSP和蓝牙模块之间采用UART方式进行通信。DSP使用的控制信号除了异步串行通信收发信号SCIRXD和SCITXD外,还有4个控制信号,分别与蓝牙模块的LNK、CLR、RTS和CTS引脚相连。其中,LNK脚用于指示蓝牙主机和从机连接是否建立,地面设备PC机为蓝牙主机,DSP作为蓝牙从机;CLR脚用于切换蓝牙模块的工作模式,包括参数设置模式和数据传输模式;RTS和CTS脚为“请求发送”和“清除发送”引脚,用于实现DSP和蓝牙模块之间的对话,使数据正常传输。