弹上通信系统的LabVIEW与单片机的通信技术
LabVIEW通过调用dll文件大大缩减了实现USB通信开发工作量,但最关键也是最难的一步在于给函数配置参数。通常来讲,DLL主要用C/C++等文本语言开发,有些参数类型和LabVIEW不匹配,直接调用无法正常使用。为了解决这个问题,需要用户对参数进行修改或者对原有的dll文件进行二次开发,加大了工作量。
值得一提的是,USBXpress开发套件除了包含面向主机的dll文件,还包括面向USB器件的驱动文件和USBX_F34X LIB及USB_API.h文件,封装了USB协议的细节,大大简化了USB固件编程。一个典型的利用API函数实现USB通信的程序流程如图2所示。程序是在SiliconLabs集成开发环境下编译调试的。
不管利用CIN,还是调用DLL,都可以实现LabVIEW访问USB设备,但并不能很好地体现LabVIEW的优势。因为通过CIN和DLL,不用LabVIEW也可以实现上位机编程。实际上,LabVIEW还有独特的访问USB设备的方法,即通过VISA访问USB设备。
3 通过VISA访问USB设备
VISA(Virtual Instrument Software Architecture,虚拟仪器软件架构)是一种用来与各种仪器总线进行通信的高级应用编程接口(API),包括GPIB、USB、串口、PXI/PCI、VXI、火线和以太网。它是计算机与仪器的软件连接层,本身不具备编写仪器驱动的能力,通过调用特定仪器驱动与仪器的通信。
NI-VISA从3.0版开始支持USB通信,它有两种VISA类函数(Resource Class),可以控制两类USB设备:USB INSTR设备与USB RAW设备。U-SB INSTR设备是符合USBTMC协议的USB设备,可以通过使用USB INSTR类函数控制,通信时无需配置NI-VISA;而USB RAw设备是指除了明确符合USBTMC规格的仪器之外的任何USB设备,通信时要配置NI-VISA。C8051F340是USB RAW设备,故欲实现与LabVIEW进行USB通信,可通过NI公司提供的VISA Driver Wizard进行配置。步骤如下:
①按照“程序”一“National Instruments”一“VISA”一“Driver Wizard”选择USB并点击Next,进入USB-DeviceInformation界面。
②在USB Vendor ID栏和USB Product ID栏分别填写USB设备的PID号和VID号。另外两栏分别是Manufacturer Name和Mode Name栏,选填。每一个USB设备都有唯一的PID号和VID号,它们是主机识别不同USB设备的根据。
③生成并安装inf文件,为USB设备创建PNF文档。持续点击Next,并为文件命名。高版本的VISA可发自动创建PNF文档。
④连接USB设备。USB具有热拔插功能,所以Windows能够探测到USB设备,并立即会打开“添加新硬件向导”,很快完成USB设备驱动程序的安装。
至此,主机已将NI-VISA作为访问USB设备的底层驱动,在LabVIEW程序中即可利用VISA选板的VI设计通信程序。
图3是一个基于NI-VISA编写的LabVIEW与C8051F340进行USB通信的程序框图。设备的PID和VID分别是0x10C4和0x0005,单片机使用端点2IN,采用中断传输方式;LabVIEW程序中用VISA事件处理和获取USB中断等VI。
通过NI-VISA实现LabVIEW与单片机进行USB通信,大大减小了工作量,同时很好地发挥了LabVIEW的特点。
结语
对实现LabVIEW与C8051F340单片机USB通信的3种方式进行比较,结论如下:
①通过CIN节点访问USB可以充分利用设备生产厂家提供的C语言编写的驱动程序及源程序,发挥C语言的优势;但要求用户非常熟悉USB协议,这种实现方法相当于在LabVIEW下用CIN对USB设备编写驱动程序,使用较为麻烦。
②通过调用DLL实现USB通信,可以利用生产厂家提供的dll文件,发挥dll文件的优势;但由于dll文件的数据格式通常和LabVIEW不完全匹配,往往需要修改参数或者对dll文件进行二次开发,需要具备开发dll文件的能力,也比较麻烦。
③通过NI-VISA可以充分发挥LabVIEW的优势,无需熟悉传统文本语言编程,极大方便上位机的编程。
④就单片机在USB设备固件编程的工作量而言,通过NI-VISA方式与通过CIN方式相当,比通过USBXpress开发套件的工作量大。
结合实现LabVIEW与C8051F340USB通信总体软件编程任务,从工程应用角度进行比较,如表1所列。
对于一般情况下基于LabVIEW的上下位机USB通信,建议通过调用DLL或者使用VISA实现USB通信,具体采用哪种方式,还要结合系统具体要求而定。
- 超宽带无线通信技术的发展(08-04)
- 无线微波通信技术MMDS全解(03-16)
- LTE:更优化的无线通信技术(05-30)
- 比WiFi快20倍的THz无线通信技术(05-20)
- 全面解析UWB无载波通信技术及市场前景(02-03)
- 基于ZigBee的短距离无线通信网络技术(02-15)