USB接口的虚拟仪器设计与实现
扫描二维码
随时随地手机看文章
USB技术的先进性使得设计者在PC外设开发中首选USB接口,而在现有虚拟仪器开发平台如LabWindows/CVI中并没有提供直接支持USB接口的函数库,基于这种情况,笔者利用FTDI公司的FT232AM完成RS232和USB之间的接口转换,然后再对USB接口实现间接的数据读写。
2 硬件设计
2.1 FT232AM简介
FT232AM是FTDI公司提供的USB-RS232转换器,它可以在RS232和USB接口之间非常容易地建立可靠连接。通过USB接口的即插即用和热插拔性能给RS232的外围设备提供非常容易使用的环境,并提供高达115 kb/s的传输速率(如果电平转换器选用MAX3245CAI,则传输速率可达1 Mb/s以上)。同时还提供USB-RS422/RS485口,这样就把RS422/RS485与USB两种通讯协议取长补短,使得设备既具有即插即用和热插拔性能又具有远距离传输和抗干扰性特性。
2.2 硬件设计
FT232AM的设计电路如图1所示,它向外提供标准的DB-9引脚信号线,当PC外设为RS232电平时,采用MAX3245CAI进行RS232/TTL电平转换。设计中还扩展了一片93C46。用于储存开发的PC外设的VID、PID、设备序列号等。
2.3 驱动程序
在Window 98/2000/XP系统下,用户级的应用程序必须通过驱动程序访问USB硬件设备,虽然目前有许多公司提供编写驱动程序的开发工具,但是相对来讲还是比较困难。使用FT232AM时,由于FTDI公司提供了一个虚拟串行口(VCP:virtualCOM port)的驱动程序,因而在安装了VCP设备驱动程序后,系统就将USB外设虚拟成一个串口设备(通常为COM3),这样应用程序访问USB口就像访问一个标准的串行口一样,而在LabWindows/CVI中提供了串口编程的函数库,这样就可以很方便地进行用户程序开发。
3 LabWindows/CVI
LabWindows/CVI是NI公司面向计算机测控领域的虚拟仪器软件开发平台,它提供了丰富的虚拟仪表控件,同时又具有很好的硬件接口功能,几乎为所有的数据卡、采集仪器之类的采集设备都提供了专门的驱动程序。其中RS232函数库提供了各种方式的串口通讯控制函数,根据实际串口通讯可分为打开,关闭串口函数、I/O读写函数、调制解调器控制函数、串口设置函数、寄存器状态函数和回调函数6类。其中部分较常用的函数如下:
(1) 打开/关闭函数
(2) I/O读写函数
I/O读写函数提供了多种读写方式,这里只介绍部分函数。
(3) 调制解调器控制函数
4 软件设计
串口通讯的程序流程图如图2。由于不同的采集仪器具有各自不同的通讯协议,因此需要根据具体的仪器通讯协议编写PC的程序。本文中将以PC与USB的通讯为例,说明LabWindows/CVI中实现USB通讯的方法。图3是虚拟示波器的程序界面图。
程序中部分代码如下:
(1) 配置和打开串行端口
通信端口的选择和通信参数配置面板如图3所示,在"配置"按钮的回调函数中,按所选的参数配置并打开串口。
5 结束语
在虚拟仪器的设计开发过程中,采用USB转RS232接口和LabWindows/CVI相结合的方式,一方面可以利用USB接口的方便性,使得虚拟仪器测试系统更为方便的实现和应用,另一方面由于Lab-Windows/CVI提供了很多专门针对测试程序开发的函数库,从而使得上位机用户程序开发变得非常容易得多,极大地提高了设计速度,具有很好的经济效益。