摘要:为满足高频地波雷达小型化、模块化、便携型、可扩展的需要,本文设计并实现了基于USB2.0总线的雷达接收机与主控PC机的数据传输接口。采用Cypress公司的CY7C68013A芯片作为USB接口芯片;介绍了CY7C68013A芯片的结构;选择使用此芯片的通用可编程接口(GPIF)模式;阐述了数据传输接口的硬软件设计,软件系统包括固件、设备驱动程序、客户应用程序;详细说明了数据传输流程。实验结果表明,该接口工作稳定,平均传输速度可达到17MB/s,能够很好地满足高频地波雷达的数据传输要求。 关键词:高频地波雷达;通用串行总线;通用可编程接口;固件
0 引言
武汉大学电波传播实验室研制的高频地波雷达是用于监测海洋表面动力学要素-风、浪、流场和海上低速移动目标的先进雷达系统。该雷达系统采用了FMICW(调频中断连续波)体制,利用回波信号的频率和相位信息来提取海面参数。当发射机发射FMICW信号后,其海洋回波信号和接收机本振信号混频产生基带信号,雷达接收机采集此信号并进行两次傅里叶变换,就可得到各个距离元上回波信号的频率和相位信息。[1]DSP2812
在已有的高频地波雷达的研究基础上,使雷达小型化、模块化(雷达通道增减方便)、具有便携性成了新的需要。同时,随着雷达通道的增加,需要处理的数据量也更大,对计算机和接收机之间的数据传输的速度也提出了更高的要求。
通用串行总线(USB)是针对PC机外设的一种新型接口技术,具有很多优越性,如即插即用、便于扩展、支持高速数据传输等。2000年4月提出的USB2.0协议标准支持三种传输速率:低速(1.5Mb/s)、全速(12Mb/s)和高速(480Mb/s),4种传输类型:块传输、同步传输、中断传输和控制传输。采用USB作为雷达接收机与主控PC机的数据通讯总线,不仅可以满足高频雷达数据传输的速度和可靠性要求,并且可以使雷达具有携带方便、易于扩展通道等诸多优点。DSP2812
EZ-USB FX2系列芯片是Cypress公司推出的集成了USB2.0协议的USB接口芯片,它将微处理器、RAM、智能内核等多个模块集成在一个芯片中,为USB外设提供了一种高度集成的方案。本文选用了此系列的CY7C68013A芯片,设计了高频地波雷达接收机和主控PC机的数据传输接口。
1 高频地波雷达数据传输接口硬件电路设计

本文设计的高频地波雷达数据传输接口硬件电路主要由FPGA、CY7C68013A、PC机组成。总体结构框图如图1所示。
其中,FPGA采用Xilinx公司最新平台级FPGA—Spartan-3系列芯片,主要完成高频地波雷达中频数字信号的数字下变频、傅里叶变换及整个接收机的同步控制等功能。除此以外,FPGA芯片在内部实现一个先进先出存储器(FIFO)以存储处理完毕的数字信号。CY7C68013A的主要功能是将存放在FPGA内部的FIFO中的数据读出并发送给PC机,从而完成接收机与主控PC机的数据传输。
1.1 USB2.0接口芯片CY7C68013A
CY7C68013A芯片主要包括USB2.0收发器、串行接口引擎(SIE)、增强型8051、RAM、FIFO存储器、I/O口、数据总线、地址总线和通用可编程接口(GPIF)等。
其中,串行接口引擎(SIE)负责完成诸如串行数据的编解码、差错控制、位填充等与USB协议有关的功能。增强型8051作为CY7C68013A芯片的CPU,负责执行存储在芯片里的代码即固件,以控制整个芯片的活动。它比标准8051的速度更快、功能更强,且指令集和标准8051完全兼容,并可使用C51编译器。它带有256B的数据存储器、扩展的中断系统、3个定时/计数器和2个串行口UART。CY7C68013A的片内存储器由3部分组成:主RAM、临时RAM和寄存器/缓冲器区。其中,主RAM被程序存储器和数据存储器所共享,临时RAM仅能作为数据存储器,寄存器/缓冲器区包含控制/状态寄存器和各个端点的数据传输缓冲区。[2]
1.2 CY7C68013A与FPGA接口电路设计
CY7C68013A提供了两种端点数据缓冲区与外围电路通信的高速接口模式:从属FIFO和GPIF(通用可编程接口)。
当CY7C68013A工作于从属FIFO模式时,外围电路直接与CY7C68013A的端点数据缓冲区相连,可以像普通FIFO一样对端点数据缓冲区进行读写。外围电路作为主控方,可以为接口提供自己的独立时钟。
当工作于通用可编程接口(GPIF)模式时,CY7C68013A芯片使用PORTB和PORTD构成通向4个端点数据缓冲区(EP2, EP4, EP6, EP8)的16位数据接口。GPIF作为内部的主控制器与端点数据缓冲区直接相连,并产生用户可以编程的控制信号与外部接口进行通信。同时,GPIF还可以通过RDY引脚采样外部信号并等待外部事件。另外,GPIF既可以使用内部时钟,也可以使用外部时钟。[3]
本设计中,FPGA需要同时处理多个通道数据,因此,FPGA在内部实现一个先进先出存储器(FIFO)作为数据缓存器。选择GPIF作为CY7C68013A与FPGA接口通信模式。由CY7C68013A输出控制信号将数据从FPGA内部的FIFO模块中读入。
CY7C68013A与FPGA的接口电路如图2所示。

其中,CY7C68013A的IFCLK引脚与读时钟信号线连接,读时钟信号可由FPGA或者CY7C68013A提供;CY7C68013A的FD[15:0]引脚与数据信号线连接;CY7C68013A的任一控制输出引脚CTLx与读选通信号线连接,用于输出FIFO模块的读选通信号;CY7C68013A的任一外部中断引脚INTx与中断信号线连接,外部中断信号由FPGA提供,用于通知CY7C68013A有一个周期的数据已经处理完毕,并存放在FIFO中。
2 高频地波雷达数据传输接口的软件设计
软件设计主要包括USB接口芯片的固件、设备驱动程序、客户应用程序等软件的设计。
2.1 固件程序设计
固件程序即固化在USB接口芯片内部,由芯片内部处理器(CPU)执行的程序代码。对于CY7C68013A来说,固件指的是其内部增强型8051单片机执行的程序代码。
Cypress公司为CY7C68013A提供了固件函数库和固件开发框架。固件开发框架完成了USB设备的基本功能。开发者可利用框架提供的结构函数,在框架中添加代码依次完善各函数的功能,从而简化固件的开发。
在开发框架的基础上,本文设计的固件程序主要包含有以下几部分:
(1) 在用户初始化函数中,使能输入端点1及端点2;配置端点2的传输模式为块传输(Bulk Transfer),传输方向为输入;配置GPIF输出波形寄存器。TechorICE
(2) 在对应于FPGA发出的外部中断信号的中断服务函数中,向输入端点1的端点缓冲区中写入1个字节的数据。此数据用于通知主控PC机有1场的数据可供读取。
(3) 在输入端点1的中断服务函数中,启动GPIF输出波形,从FPGA中将数据读入端点2的数据缓冲区内,并以512字节为1个数据包长度依次将数据发送给PC机。
对于GPIF的编程,采用Cypress公司提供的开发工具GPIFDesigner。CY7C68013A支持4个波形描述符,其中的每一个都能被用于4种类型的传输,即单个写、单个读、FIFO写或FIFO读[4]。本设计选择了FIFO读模式,所设计的波形如图3所示。
2 USB设备驱动程序设计
USB设备驱动程序通过向USB总线驱动程序发送包含URB(USB命令块)的IRP(I/O Request Packet,I/O请求包)来发送I/O请求,并根据数据传输方向(输入或输出)提供一个或空或满的内存缓冲区;然后由USB总线驱动程序来管理数据的传输;传输结束后,USB设备驱动程序会得到IRP已经完成的通知。[2]TechorICE
本文采用Cypress公司为EZ-USB FX2系列芯片提供的一个通用的驱动程序EZ-USB GENERAL PURPOSE DEVICE DRIVER(GPD)。它提供了一些标准的设备请求和数据传输的用户模式接口,并为它们设计了自己的I/O控制操作(IOCTL)。应用程序可以通过这些IOCTL操作与驱动程序对话,驱动程序则根据I/O控制操作代码发送带有USB请求块(URB)的IRP给总线驱动程序,进而完成对USB外设的读写操作。
2.3 客户应用程序设计
本文设计的客户应用程序读取接收机数据的部分主要包括以下步骤:

图3 GPIF读取数据波形
(1) 调用Win32函数CreateFile()来得到访问设备驱动程序的句柄;TechorICE
(2) 调用Win32函数DeviceIoControl()从CY7C68013A的输入端点1读入一个字节的数据,读取正确后,进入下一步骤,否则循环执行此步骤;
(3) 调用Win32函数DeviceIoControl()从CY7C68013A的端点2读入雷达接收机数据;
(4) 调用Win32函数CloseHandle()删除访问设备驱动程序的设备句柄。
3 高频地波雷达数据传输流程
高频地波雷达接收机与主控PC机数据传输的流程如下:
(1) FPGA处理完本周期信号后,首先清空FIFO,再将本周期要输出的数据存放在FIFO中。存放完毕后,FPGA向CY7C68013A发出中断信号;
(2) CY7C68013A接收到此中断信号后,执行对应的中断服务程序,向输入端点1的端点缓冲区中写入1个字节的数据;TechorICE
(3) PC机应用程序调用Win32函数DeviceIoControl()向CY7C68013A的输入端点1发出读请求,当读取正确后,再向端点2发出读请求;
(4) PC机从输入端点1读走数据后,CY7C68013A中将产生输入端点1的中断,标志主机已准备好接收雷达数据;在输入端点1的中断服务程序中,CY7C68013A启动GPIF输出波形,输出读选通信号,将数据从FPGA中读入端点2的缓冲区内;
(5) PC机将数据从USB接口芯片的端点2的缓冲区内读入。
结束语
经过测试,本设计的接口具有以下特点:
(1) 能够长期快速稳定工作,传输可靠,平均传输速度达到17MB/s。
(2) 使用方便。由于USB具有热插拔、即插即用的特点,用户可以在PC机开机的情况下,对接收机进行连接和断开操作。TechorICE
(3) 便于扩展。USB接口支持多个外围设备的连接,通过USB集线器,1个USB主控制器最多可以连接126个外围设备。这个特点方便了雷达接收机数据通道的扩展。
(4) 小型化。USB接口小而薄,适合高频地波雷达接收机体积小型化需要。
本文作者创新点:
以USB总线取代传统的VXI总线作为高频地波雷达接收机与主控PC机之间的数据传输总线,实现了雷达小型化,并且使用方便,通过USB集线器的接口扩展功能,便于扩展雷达数据通道。
参考文献:
[1] 许丹,田建生,吴世才. 基于DSP的雷达信号采集处理系统[J]. 武汉大学学报(理学版)(高频地波雷达专辑),2001,(5).
[2] 王成儒,李英伟. USB2.0原理与工程开发[M]. 北京:国防工业出版社, 2004.http://www.51kaifa.com/shop/ClassMore.php?F_ID=94
[3] 夏益民,王广君. 基于USB总线的高速数据采集系统[J]. 国外电子元器件,2003,10(20).
[4] Cypress Semiconductor. EZ-USB FX2 Technical Reference Manual [Z]. Version 2.1, 2001.
[5] Cypress Semiconductor. EZ-USB FX2TM GPIF Primer [Z]. 2003.http://www.51kaifa.com/shop/ClassMore.php?F_ID=94
[6] 张树春,刘成安. 基于USB总线的FPGA与PC机接口通信的实现[J]. 微计算机信息,2005,4 (21).
|