1 无线USB与LabVIEW概述
1.1 无线USB和CYWUSB6935芯片
无线USB技术是一个全新的通信标准。它通过USB接口和最先进的无线通信技术扩展了设备之间的连通性,最基本的工作原理是发送和接收脉冲间隔严格受控于高斯单周期超短时脉冲;具有传输速度快、功耗小、移植方便、安全性高等优点;最大的特点是传输速率高,3 m距离的最大传输速率达480 Mbps,其性能与现有的USB2.O相同。虽然在传输距离上,WUSB性能没有达到USB2.0所规定的最长5 m的距离,但对置于计算机周围的设备来说,3 m的距离已经足够了。一般情况下,通信距离越长,速率越慢;因此WUSB规定10 m的传输速率为110 Mbps。10 m足以覆盖当前家庭的居室,此距离的速率已经超过了目前的WLAN。
无线USB和有线USB2.0一样,它也能处理4种传输形式,即控制传输、块传输、中断传输、同步传输。主机和无线USB设备合称WUSB集群,采用星型拓扑,不需要WUSB集线器,WUSB主机能直接连接多达127个设备。主机支持8种数据速率:53.3 Mbps、80 Mbps、106.7Mbps、200 Mbps、160 Mbps、320 Mbps、400 Mbps和480Mbps。设备必须支持3种数据速率53.3 Mbps、106.7Mbps、200 Mbps,其他5种为可选数据率。
针对无线传输的现状,Cypress公司推出了低成本、高集成度的芯片CYWUSB6935,CYWUSB6935芯片结构框图如图1所示。
CYWUSB6935内部集成了串行数据接口(SPI)、串并/并串转换器(SERDES)、综合器(synthesizer)、2.4 GHz的射频收发器;采用高斯频移键控调制解调器(GFSKModem)和直接顺序扩展频谱(DSSS)数字基带模块;用户可以通过控制信号灵活地设置射频和数字基带部分。为了进一步优化性能,CYWUSB6935将49个扩频编码调制到78个1 MHz宽度的频率域上,从而在理论上可以为用户提供3 822个独立的频道,让每个主系统能够连接多组外围设备,且通信距离可达到50 m或更远。
WUSB6935有4种工作模式:64 chips/bit单通道、32chips/bit双通道、32 chips/bit单通道双倍采样和32chips/bit单通道双倍数据速率。该系统选用32 chips/bit单通道双倍采样。模式选择通过配置REG—DATA—RATE(0X04)来实现。接收和发射均采用中断的方式。中断的方式有3种:发射中断、接收中断和唤醒中断。这些中断共用一个IRQ引脚。配置REG(0XOD)使得发射中断使能,将要发送的数据送到数据发送寄存器(0XOF),数据便通过RFOUT引脚发送出去。接收中断使能寄存器为REG(0X07),通过读取中断状态寄存器REG(0X08)可以确定中断类型,然后从相应的数据接收寄存器中获得相应通道的数据。
1.2 LabVIEW和NI VISA
LabVIEW是美国国家仪器NI公司开发的一种基于图形程序的编程语言,广泛应用于数据采集与控制、信号处理以及数据表达等方面,它提供了一种全新的编程方法,即对软件对象“虚拟仪器(VI)”进行图形化的组合操作。LabVIEW程序的执行顺序是按数据流的方式确定的,可以实现多任务的并行。用户通过创建和调用子程序的方法编写程序,使创建的程序模块化,而且程序简单、直观。
LabVIEW的应用程序,即虚拟仪器(VI),包括3部分:前面板(front panel),是LabVIEW程序的图形用户界面,用于设置输入数值和观察输出量,相当于传统仪器的面板;框图程序(block diagram),提供VI的图形化源程序,是利用图形语言编程控制和定义在前面板上的输入和输出功能;图标/连结器(icon/connector),用于把Lab—VIEW程序定义成一个子程序,从而实现模块化编程。
NI—VISA也是NI公司开发的一种用来与各种仪器总线进行通信的高级应用编程接口(API)。VISA总线I/0软件是一个综合软件包,不受平台、总线和环境的限制,可用来对USB、GPIB、串口、VXI、PXI和以太网系统进行配置、编程和调试。本文介绍的高速数据传输系统采用它开发USB驱动,大大简化了开发过程。
2 无线USB高速数据传输系统的设计
该无线USB数据传输系统构成如图2所示。
2.1 系统硬件设计
该系统使用了128引脚的CY7C68013单片机以及CYWUSB6935射频模块,其硬件设计框图如图3所示。
CY7C68013是Cypress公司的EZ—USB FX2系列芯片。其芯片固件存储在主机上而不是在芯片内部,显著特点是代码升级容易。该系列芯片集成了USB2.O收发器、串行接口引擎(SIE)、带8.5 KB片上RAM的增强型8051、16 KB的RAM、4 KB的FIFO存储器、I/0口、数据总线、地址总线和通用可编程接口(GPIF)。CYWUSB6935的SPI四个引脚(MOSI、MISO、SS、SCK)支持两种传输模式——单字节模式和序列多字节模式。为了提高传输效率,本系统采用序列多字节模式。
2.2 系统软件设计
数据传输系统软件设计分为3部分:设备固件程序、驱动程序以及应用程序,如图4所示。
设备固件(firmware)程序在主机上调试编译完后,枚举时下载到RAM内,它使得USB接口芯片与主机和外设中的其他电路能够通信,因此固件程序包括响应主机要求部分和控制外设部分。利用Cypress公司提供的固件框架来开发固件,可以简化固件开发过程。
驱动程序是LabVIEW与USB接口的驱动程序,应用程序通过驱动程序与系统USBI(USB Device Interface)进行通信,由系统产生USB数据的传送动作;固件响应各种来自系统的USB标准请求,完成数据的交换工作和事件处理。
2.2.1 设备固件程序设计
Cypress公司提供了固件框架来开发框架,在Keil C51下开发,该框架主要由以下几部分组成:
①FW.C中包含程序框架的MAIN函数,由于Cy—press公司已经精心划分了这部分的功能,所以一般不用改动。
②PERIPH.C是用户函数挂钩的相关定义,这部分需要根据自己系统的需要实例化这个文件,以实现特定的功能。
③TD_Init函数是在设备重枚举和任务调度启用之前调用,用来初始化用户的全局状态变量,并负责对USB端点进行初始化设置。在本设计中将端点2设置为1 024个字节,4重缓冲,自动输入模式。
④TD_Poll函数是系统中循环任务的处理函数,主要负责对各个端点的状态进行查询,处理各种IN和0UT端点的交互。
⑤Ezusb.lib和USBJmpTb.OBJ分别为EZUSB函数库的二进制文件和USB的中断向量表。
⑥DSCR.a51是描述符文件,包括标准设备描述符、类描述符和用户指定的描述符。
2.2.2 LabVIEW中调用VISA
当进行USB通信时,VISA提供了两类函数供Lab—VIEW调用:USB INSTR设备与USB RAW设备。USBINSTR设备是符合USBTMC协议的USB设备,可以通过使用USB INSTR类函数控制,通信时无需配置VISA;而USB RAW设备是指除了明确符合USBTMC规格的仪器之外的任何USB设备,通信时要配置VISA。该系统是USB RAW设备,故需要配置VISA。配置VISA的步骤如下:
①使用Driver Development wizard(驱动程序开发向导)创建INF文档。打开VISA Driver Developer Wizard,然后选择USB,进入VISA DDW基本设备信息窗口(在这一步确认USB设备的供应商ID和产品ID),接下来填写USB仪器前缀,用来识别本设备所用的相关文档,这时INF文档就被保存到指定的位置。
②安装INF文档及使用INF文档的USB设备。
③使用VISA Interactive Control(VISA互动控制工具)对设备进行测试,以证实USB设备已正确安装,并获得USB设备的各属性值。
USB设备安装完毕后,就可以与VISA进行简单的通信。VISA支持3种类型的USB管道:控制、批量和中断。VISA探测到USB仪器时,会对仪器进行自动扫描,寻找各种类型的最低可用端点。VISA探测到最低可用端点后,即将该值赋予适当的VISA属性。bulk in端点和bulk out端点分别存储在VI_ATTR_USB_BULK_IN_PIPE属性和VI_ATTR_USB_BULK_OUT_PIPE属性之中。interrupt in端点存放在VI_ATTR_USB_INTR_IN_PIPE属性之中。如果值为一1,则表示USB设备不支持这种类型的管道。对于控制型管道,只有端点O才受到支持。在LabVIEW中,应使用“Write VISA Property(写入VISA属性)”节点。VI-SA有4种通过USB管道传输数据的功能。在能够使用这些功能与设备进行通信之前,还需要使用VISA USB属性建立通信协议。使用VISA USB Contro1 In和VISA USBContro1 0ut来控制管道传输数据,并用此来获得USBRAW设备的各种描述符。另外使用VISA Read和VISAWrite选择批量管道来传输目标数据。通过上述方法成功实现了LabVIEW与USB驱动程序的数据交换,从而实现了以LabVIEW为平台的无线USB高速数据传输系统。
结 语
实验证明,采用无线USB系统进行数据传输,将USB接口和短距离无线通信的优点有机地结合起来,不仅能实现较高的数据传输率,而且改变了数据的传输方式,由传统的有线传输改为无线传输,使传输系统更加方便、可靠、高速。除此之外,无线USB凭借其完美的性能和低廉的成本,可以满足无线领域中非网络端的需求,将成为未来无线通信的主流。采用基于NI—VISA驱动USB接口和LabVIEW开发应用程序的设计方法,降低了开发难度,缩短了开发时间,使得该系统性价比较高,通用性较好。随着USB技术和短距离无线通信的进一步发展,WUSB会表现出更好的性能,应用范围将日趋广泛。集成了无线USB接口和LabVIEW语言的数据传输系统具有广阔的发展前景,易于开发、数据处理简单。