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读写函数提供了多种读写方式,这里只介绍部分函数。