2.2 USB转RS232接口电路
选用XT881l芯片,该芯片的功能是USB转RS232串行接口,是单片机和PC机通信的一种非常简便的通讯方法,只用一条USB线就可以进行ISP在线编程和传输数据了。XT8811芯片符合USBl.1,兼容USB2.0规范;基于高速USB UART IC,支持RS232标准串行接口,速度75bps~6Mbps;支持信号自动交换输入输出模式。USB接口硬件电路如图3所示。
3 LabVlEW的程序设计
3.1 LabVIEW的串行通信
在与LaBIEW通信之前,必须安装XT8811的驱动程序。XT881l的驱动程序安装以后,会自动在计算机系统里虚拟出一个串行COM口。比如,计算机原来有两个串口COMl和COM2,那么XT88ll驱动程序安装以后自动虚拟出一个COM3口(一般来说是这样,具体COM端口号由虚拟驱动程序自动分配)。这个由XT88ll驱动程序虚拟出来的COM口和计算机原有的COM口对于应用软件来说是一样的。只要应用软件能够映射(或选择)到该虚拟COM口,就可以实现对RS-232端口的通信。所以本设计采用了LabVIEW的VISA的串行通讯子Ⅵ来开发串行通信软件。共有5个串行通信节点,分别实现串口初始化、串口写、串口读、检测串口缓存、中断等功能。应用LabVIEW的图标设置串口,直接读出串口里的数据,实现与单片机温度采集系统的数据通信。如图4所示,串口默认设置为:9600b/s,8位数据位,l位停止位,l位起始位,无握手信号,下位机通信程序亦遵守上述协议。
3.2 基于用户事件的温度报警
当温度超过报警上限时时,系统会自动触发报警,并记录报警数、报警发生的时间和温度值进行记录。采用Lab—VIFW的用户事件编程,首先通过Create User Event函数创建用户事件,然后通过Register For Events节点注册事件。将注册的事件Refnum与事件结构的Dynamic Event Termi—nals连接,最后需要通过Destroy User Event函数销毁用户事件。如图5所示,程序框图中首先通过Create User Event函数创建用户事件,该用户事件携带的数据类型位Double,名称为“温度报警”,然后通过Register For Event函数注册温度事件。上方的循环用来采集温度数据,当温度数据超过报警上限时通过Generate User Event函数产生用户事件。下方的循环用于处理事件,既当用户事件发生时,更新报警记录;当用户单击“清除报警记录”按钮时清除报警。最后通过Unregister For Event函数和Destroy User Event函数注销和销毁用户事件。