USB协议的实现基于网络的思想,是一种共享式的外部通信总线,在总线上数据以包(Packet)的形式传送。USB和主机(PC)的数据传送有4种模式:控制传输(Control)、中断传输(Interrupt)、块传输(Bulk)和实时传输(Isochronous)。控制传输主要用于在设备连接时对设备进行配置。由于USB协议非常复杂,开发者不可能在底层基础上进行开发。如National Semiconductor公司的USBN9602,Philips公司的PDIUSBD12等,在对这类芯片进行开发时需外挂8051。另一类是集成了8051的USB接口芯片,如CYPRESS公司的EZUSB系列。
根据基带数据率和通道数等对数据带宽的要求,我们直接选择了Cypress的USB2.0接口芯片CY7C68013A作为数据传输接口。CY7C68013A支持最高达480Mb/s的高速传输,内部有16kbytes的片上存储器,并提供了从属先进先出(Slave FIFO)和通用可编程接口(GPIF)两种高速传输方式,当工作于从属先进先出模式时,外围电路可以像普通先进先出存储器一样对CY7C68013A中的端点数据缓冲区进行读写;当工作于GPIF模式下时,CY7C68013A可由软件来编程输出读写控制波形。这时,它几乎可以对任何通用总线接口进行访问。其内部结构如图3-31所示。
图3-31 CY7C68013A内部结构图(www.xing528.com)
根据在实验室其他雷达系统中使用USB接口的经验,以往的本振和射频的波形参数是由USB接口芯片中的8051单片机通过USB总线与PC主机程序通信得到的,然后再使用8051的并行数据接口分别写入本振和射频DDS数据寄存器中。但是,由于数据率和通道数的提高,以及UOSDR系统的扫频周期很短,导致CY7C68013A的传输中断越来越频繁,最坏的结果就是使CY7C68013A中的8051无法再处理系统的配置DDS寄存器的任务,导致整个系统失效。因此,我们将配置DDS寄存器和初始化PLL的工作全部交给FPGA来完成,因为FPGA的高度并行特性,使每个模块可以相互不干扰,能够很好地完成配置任务。这样一来,我们利用CY7C68013A在软件开发上的便利,而只使用了它的USB传输链路,大大简化了CY7C68013A的编程难度,加快了系统的开发时间。经过测试表明,USB传输采用Bulk工作模式,其传输速度可达17Mbytes/s左右。FPGA与USB的数据接口如图3-32所示。
图3-32 FPGA与USB的数据接口图
USB应用系统软件设计主要分为三部分:USB外设端的固件、主机操作系统上的客户驱动程序及操作界面程序。界面程序通过客户驱动程序CyUSB.sys与系统USB设备的接口CyUSB.dll托管类库进行通信,由系统主机程序产生USB数据的传送动作,固件则响应各种来自系统的USB标准请求,完成各种数据的交换和事件处理。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。