基于虚拟仪器的锁相放大器远程实验系统设计
软件框图程序如图3所示。程序分别设置了3个While循环结构,分别完成读取温度值、读取电压值以及发送控制继电器状态的功能。循环中止的条件为下列三者之一:用户点击了"退出"按钮;用户连接时间超过了30 min;实验过程中TCP连接出错,如实验机程序先行中止,或系统错误引起连接中止。
客户端程序的软件部分采用3个独立的While循环,每个端口分别设置了独立的服务器端口,依次是2322,2323和2324。
(1)读取反馈的实验数据。对于数据接收,用2个TCP Read节点读取实验机发送的声卡采集的数据长度和字符串数据。
2322端口接收串口读取的温度值,因为温度值采集时已经转换为4位BCD码表示的十进制数,因此接收时读取的字长设置为4,读取的温度值送入虚拟温度计并实时显示出来。
2323端口对应接收声卡读取的电压值,因为是左、右声道各采集一路信号,因此设置了2个Sequence结构,其中Sequence0接收左声道读取的桥式电路输出信号,送入锁相放大器的信号输入端;Sequence1接收右声道读取参考方波,送入锁相放大器的参考信号输入端。同时将读取的波形实时显示在用户界面上。
(2)发送继电器控制信号。2324端口发送加热控制电路的继电器状态值,用户可以在虚拟面板生改变加热按钮的状态,并通过服务器反馈回实验机,从而控制加热电路中继电器的状态。加热按钮其处于不同的位置时,向网络连接发送不同的命令字。将命令字放在一个CASE结构中,这样便于实现用户将加热按钮置于不同的位置时,发送不同的命令字。为有效传送数据,采用2个TCP Write节点,第1个节点发送字符长度,第2个节点发送字符数据。
3.2 端口映射
服务器平台上安装Linux操作系统。利用其IPtables防火墙技术进行端口映射,使得互联网上的计算机可以通过访问服务器,间接访问实验机,进行远程实验。端口号的选择要避开系统保留端口,即O~1023。假设实验机程序的监听端口为2322。在IPtahies中,将服务器的2322端口映射到实验机。外界计算机访问服务器的2322端口时,若实验机程序正在2322端口监听,与客户机的TCP连接就会建立,客户机与实验机通信,传送控制命令与实验数据。
3.3 实验机程序
3.3.1 实验机程序的用户界面
实验机程序的用户界面如图4所示。波形显示图实时监测声卡采集的信号;日志文件用于记录与实验机建立连接的客户数目、客户地址和连接时间。 Inputformat设置了声卡采样的数字声音格式;数据采集为立体声格式,样本位数为16 b;为了防止数据溢出,远程数据传送时A /D转换率采用11 025 Hz。Constant为声卡采集数据的缩小倍数。温度显示为串口采集到的热敏电阻的温度。
实验机程序实现如下功能:
实验机接收用户发送来的加热信号,通过串口送往单片机系统,由单片机根据预先设置的指令驱动继电器,从而控制热敏电阻的加热状态。热敏电阻的温度值由串口采集,送入实验机;音频输入电缆左声道采集热敏电阻阻值改变后桥式电路的输出电压,右声道采集信号发生器输出的参考方波,通过声卡送入实验机。实验机将采集到的所有信号经由服务器和Internet反馈给客户。
3.3.2 实验机软件框图程序
实验机框图程序如图5所示。实验机程序的软件部分整体采用一个While循环,其l中又包含2个While循环。其中一个While循环中设置了一个顺序结构,Sequence 0中包含了2322监听端口,用于监听串口读取温度值;Sequence 1中包含了2323端口,用于监听声卡读取电压值。
另外一个While循环中包含了一个2324监听端口,用于接收客户机发送来的当前继电器状态值。当接收到闭合继电器控制指令时,发送"30 H"到单片机,控制继电器闭合;当接收到断开继电器控制指令时;发送"31H"到单片机,控制继电器断开。单片机与实验机通过串行口通信,接收计算机发送的控制指令。
(1)实验机与单片机的串行通信。实验机与单片机的通信利用LabVIEW中的VISA库(virtua|instrument software architecture)实现。V-ISA作为新一代程控仪器I/O软件规范,在接口无关性、平台独立性、可扩展性和功能上都有很大提高。本文单片机带有RS 232接口,计算机通过串口与之通信。单片机通过串口与实验机相连,VISA Configure Serial Port节点中VISA Resouce Name设为ASRL4:INSTR。参数与单片机的设置一致:传输速率4 800 b/s,起始位1位,数据位8位,停止位1位,无校验位。
(2)声卡采集电路信号。用SI Read节点读取声卡采集的电路信号,Stereo 16 b端口显示读取的数据。Index Array函数分别提取0列(左声道)和1列(右声道)的信号,缩小一定倍数后,经
- 虚拟仪器:在开放架构基础上创建用户定义的测试系统(09-19)
- 什么是虚拟仪器?(10-23)
- 基于虚拟仪器技术的短波电台自动测试系统(10-23)
- 宽带多媒体网关测试方法研究(10-27)
- 采用模块化仪器,对新兴音频和视频应用进行测试(02-19)
- 基于虚拟仪器技术的航空机载电子设备自动测试系统(03-03)