基于无线USB技术的数据传输系统

时间:2022-09-05 10:09:14

基于无线USB技术的数据传输系统

摘 要:基于USB控制器芯片CY7C68013A和无线射频芯片nRF2401,设计了一种无线USB接口的数据传输系统,并详细介绍无线USB接口的软硬件设计。与采用多芯片实现USB接口的系统相比,使用单芯片完成USB接口的设计,提高了系统的可靠性。下位机由FPGA作为主控芯片,使得硬件设计更加灵活,提高了硬件部分的可移植性。该系统具有USB接口所支持的可热插拔、即插即用的特点,并且实现了数据的无线传输,无需布置通信电缆。

关键词:无线USB;CY7C68013A;nRF2401;FPGA

中图分类号:TL82文献标识码:B文章编号:1004373X(2008)1904902

Data Transmission System Based on Wireless USB

WANG Meng1,ZHAO Shujun1,SHAN Baoci2

(1.Zhengzhou University,Zhengzhou,450001,China;2.Institute of High Energy Physics,Chinese Academy of Sciences,Beijing,100049,China)

Abstract:Based on USB controller CY7C68013A and radio frequency chip nRF2401,a data transmission system with wireless USB interface is designed,and the hardware software design of wireless USB interface is paring to the system of using multi-chip to realize USB interface,using single chip to design the USB interface enhances reliability of the system.Adopting FPGA as the down-side machine can improve flexibility and portability of hardware design.This system supports hot plug and play of USB interface,and also realizes wireless transmission for data without communication cable.

Keywords:wireless;USB;CY7C68013A;nRF2401;FPGA

USB(Universal Serial Bus,通用串行总线)作为计算机和外设之间的标准接口,因其使用方便、传输速度快、支持热插拔等特点,被广泛应用到了消费电子、移动通信、工业控制及仪器仪表等诸多领域。 但是在不宜布置通信电缆的场合,有线USB通信就受到了限制。为此,本文提出了一种使用USB接口进行无线数据传输的方案。

1 硬件设计

整个系统由两部分组成。由CY7C68013A和nRF2401组成模块一,并将该模块与计算机的USB接口相连,nRF2401用来完成数据的无线发射和接收,CY7C68013A作为nRF2401和计算机USB接口的纽带,用来实现USB通信功能;由Xilinx公司的FPGA芯片XC2VP4-5FG256C和另外一片nRF2401组成模块二,nRF2401用来完成数据的无线发射和接收,由FPGA将数据发送给nRF2401或读取nRF2401的数据。图1中的双向箭头表示数据通信是双向的。整个数据通信的流程如下:模块二中的FPGA将采集到的数据发送给nRF2401,nRF2401以2.4 GHz的基频将此数据调制成高频电磁波发射出去,计算机端模块二上的nRF2401将接收此高频电磁波并进行解调,然后将解调后的数据通过CY7C68013A发送给计算机。计算机端的数据可通过与此相反的方向将数据发送给FPGA。

1.1 FPGA与nRF2401的数据接口

nRF2401上电以后有4种工作模式,分别为:收发模式、配置模式、空闲模式和关机模式。这4种工作模式由PWR,CE,CS三个引脚的电平决定,如表1所示。nRF2401内部有两个数据通道,并且两个通道能同时工作用来提高数据传输速率。CLK1为nRF2401通道一收发数据的时钟, DR1为通道一接收数据准备好的状态指示信号, DATA为通道一的数据线。以上6个信号可以与XC2VP4-5FG256C的任意6个用户可用引脚相连,在FPGA代码编写完成后,通过Xilinx开发软件ISE的管脚约束选项将这6个信号指定到相应的引脚即可。XC1,XC2外接16 MHz晶振,ANT1,ANT2为nRF2401的天线接口。

1.2 CY7C68013A与nRF2401的数据接口

CY7C68013A 的D口与nRF2401相连,如图3所示。CY7C68013A是Cypress公司推出的集成USB 2.0接口的微控制器,该芯片具有一种独特的结构,使USB接口和应用环境直接共享FIFO(先入先出存储器),而微控制器可不参与数据传输,但允许以FIFO或RAM的方式访问这些共享FIFO,这一结构较好地解决了USB高速传输的带宽问题。

2 软件设计

通过此无线USB接口,实现了计算机接收FPGA发送的数据的功能。整个系统软件包括以下几个部分:计算机端USB接口的驱动程序以及应用程序、USB控制器芯片CY7C68013A固件程序和FPGA配置nRF2401,并发送数据给nRF2401的Verilog HDL程序。

FPGA端的Verilog HDL程序流程图如图4所示。配置nRF2401就是往nRF2401写入18 B的配置字,主要作用是:设置发送数据的长度、数据通道的地址;启用CRC校验并设置CRC校验模式,nRF2401使用硬件对发送的数据进行CRC校验以保证传输的准确性;设置nRF2401外接晶振的频率,信号发射的功率、速率及发射模式。nRF2401支持两种信号发射速率,分别为250 kb/s和1 Mb/s,本系统选用250 kb/s的信号发射速率。nRF2401的收发模式有ShockBurstTM收发模式和直接收发模式两种。ShockBurstTM收发模式下数据从外部控制器输入,但高速发射、与射频协议相关的高速信号处理都在nRF2401内部进行,这样信号在空中的滞留时间短,抗干扰性强。采用ShockBurstTM收发模式时,nRF2401自动处理数据包的字头(地址)和CRC校验码。为此,采用ShockBurstTM收发模式进行数据发送。在数据发送阶段,配置阶段写入nRF2401的配置字决定了发送的数据包的长度为32字节,前两字节为地址,接下来的28字节为数据,最后两字节为CRC校验码(由nRF2401自动生成)。

CY7C68013A内部集成了USB收发器、串行接口引擎SIE以及增强型的8051单片机,USB收发器将CY7C68013A的数据发送到计算机的USB总线上,串行接口引擎SIE用于处理与USB协议相关的操作,8051单片机用于CY7C68013A与外部器件的接口。CY7C68013A的固件程序由Keil μVision开发。固件程序的实现过程如下:首先设置与USB传输相关的寄存器;接着检测nRF2401 DR1引脚的电平,当DR1为有效电平时,说明nRF2401已接收到有效数据,CY7C68013A在CLK1的上升沿读取nRF2401的数据,最后将读到的数据存入块端点缓冲区以等待计算机读取。

计算机USB的驱动程序采用CY7C68013A的生产商Cypress公司提供的通用驱动cyusb.sys,计算机通过cyusb.inf安装cyusb.sys驱动程序, cyusb.inf文件里CY7C68013A的产品序列号和版本号必须与固件程序里的一致。计算机应用程序里必须包含头文件cyapi.h和 cyioctl.h,并连接cyapi.lib才能通过驱动程序cyusb.sys对CY7C68013A进行操作。应用程序首先生成一个USB设备类的对象,然后打开设备并调用读块端点的API 函数读取CY7C68013A块端点中的数据。

3 结 语

无线USB接口实现了USB接口和无线通信两大功能。在USB接口部分采用集成8051内核的USB控制器,简化了硬件设计,提高了系统的可靠性。在FPGA扩展AD转换电路,就可以实现一个带有无线USB接口的数据采集系统。

参考文献

[1]Nordic Semiconductor.nRF2401 Product Specification,Revision 1.1[Z].2006.

[2]Cypress Semiconductor.CY7C68013A Datasheet[Z].2006.

[3]Xilinx Semiconductor.XC2VP4-5FG256C Datasheet[Z].2006.

[4]王成儒,李英伟.USB 2.0原理与工程开发[M].北京:国防工业出版社,2004.

[5]杨旭,沈大林.Visual C++编程篇[M].北京:电子工业出版社,2004.

[6]王诚,薛小刚,钟信朝,等.FPGA/CPCD设计工具Xilinx ISE 5.X 使用详解[M].北京:人民邮电出版社,2004.

[7]张国云.USB设备启动过程的分析与实现[J].现代电子技术,2005,28(23):102-103,105.

[8]张伟,王力,赵晶,等.Protel DXP 入门与提高[M].北京:人民邮电出版社,2004.

[9]夏宇闻.数字系统设计――Verilog实现[M].北京:高等教育出版社,2006.

[10]谭浩强.C语言程序设计[M].2版.北京:清华大学出版社,1999.

作者简介

王 锰 男,1983年出生,郑州大学硕士研究生。主要研究方向为核医学仪器与方法。

赵书俊 男,1960年出生,郑州大学博士生导师。

单保慈 男,1965年出生,中科院高能物理研究所博士生导师。

上一篇:神经网络激活函数及其导数的FPGA实现 下一篇:一种带热滞回功能的低功耗CMOS过热保护电路