设备固件(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语言的数据传输系统具有广阔的发展前景,易于开发、数据处理简单。