引言
NI 公司于 20 世纪 70 年代提出了虚拟仪器的概念。虚拟仪器是在以计算机为核心的平台上,由用户设计,具有虚拟面板,由软件实现测试功能的计算机仪器系统,是计算机与测试仪器相结合的产物。虚拟仪器最常用的编程语言为 LabVIEW,是 NI 公司的基于图形化编程语言的虚拟仪器开发工具,利用它可以轻松组建一个测试系统而无需进行繁琐的代码编写。因此虚拟仪器大大突破了传统仪器在灵活性,以及数据处理、显示、存储等方面的不足,其主要优势在于:用户能够根据需求灵活的进行功能修改和扩展;人机界面为视窗界面,形象直观;网络连接简单易行,便于组建测控网络。
目前虚拟仪器在通信、汽车、测控等行业得到了广泛的应用。相应的各大高校也在 NI 公司的支持下,陆续开设了虚拟仪器课程,组建了相关的实验室,如西安交大利用虚拟仪器讲授信号处理;天津大学开设的智能检测仪器课程。
目前国内高校教授虚拟仪器课程使用的信号采集板多为 NI 公司的数据采集板卡,如 USB600X,USB92XX,PCI62XX 系列。这类板卡虽然性能优良,配套软件齐备,但是作为高校教学也存在不足之处。首先 NI 公司只卖板卡不卖技术,这样在教学中教师和学生只能使用板卡,而不能掌握虚拟仪器硬件系统的具体结构和技术细节;其次这类板卡一般价格较贵,普遍在 2 000 元以上,相对高校而言开课成本太高,这一点对于欠发达地区的一般学校尤为突出。
本文利用廉价的MCS51单片机设计了包含常用传感器、数据采集模块与 USB 通信接口的 LabVIEW 实验教学系统,并编制了常用的实验案例程序,满足了本科生虚拟仪器实验教学的需要,且成本相对于 NI 的产品大大降低,针对高校市场具有良好的推广前景。
1 系统结构
整个系统由前端传感器、单片机数据采集以及 USB 通信接口几部分组成,如图 1 所示。
1.1 前端传感系统
虚拟仪器实验系统的前端传感器将待测的物理量转换成电量(电流或电压),作为后面采集处理系统的输入信号,是整个测试系统与外界的接口与桥梁。本实验系统集成了温度、光强与电阻传感器,并预留了扩展接口以外接其他传感器。其中温度传感器为数字温敏器件 DS18B20,能够在 -55~125 ℃的范围内提供 9~12 b 分辨率的温度数据,具有 0.5 ℃的精度,适合于一般场合的应用,其优点在于能够直接提供数字温度值,可以与后端 MCU 直接接口,省去了调理电路。而电阻测量采用串联分压法,即将待测电阻 Rx 与已知电阻串联后外加固定电压 Vref,将 Rx 上的分压 V 作为待测信号,后端采集与处理系统只需测得 V 就可以根据比例关系求出 Rx. 光强传感器则使用光敏电阻,具体电路如图 2 所示。
1.2 数据采集与通信
数据采集使用 12 位 ADC 器件 TLC2543,该器件具有 11 位模拟输入端,可通过控制字灵活选择不同输入端口,适合于多传感器输入应用。器件控制字输入和转换数据输出都为串行模式,可以与 51 单片机以尽可能少的连线接口。51 单片机与上位机使用 USB 接口通信。USB 接口基于单一的总线接口来满足多种应用领域的需求,其具有的即插即用、支持热插拔、易于扩展等特性极大地方便了用户,已逐渐成为现代数据传输的主流。由于 51 单片机自身不拥有 USB 接口,所以需要外接 USB 控制器。
本系统使用 PL2303 来实现 USB 和 RS 232 串行端口之间的转换。PL2303 拥有 2 个独立的大型缓冲进行两种总线的连接。大型数据缓冲器用于 USB 的批量数据传输,而串行通信可使用自动握手模式,因而可以达到远大于标准 UART 控制器的波特率。PL2303 支持 USB 电源管理和远程唤醒协议,当主机挂起时消耗极小的电能;芯片亦可以安装在电缆线中,用户只需将其连入主机 USB 或 USB HUB 上,就可以实现与单片机 RS232 串口的通信。单片机与 TLC2543 和 PL2303 的具体接口电路如图 3 所示。
2 实验程序设计
传统的开发 USB 应用系统的步骤是:先用 Win-dows DDK(设备驱动程序开发包)或第三方开发工具(如 DriverStudio)开发 USB 驱动程序,然后用 Visual C++编写 DLL(动态连接库),最后再调用 DLL 来开发应用程序。显然,这对 Windows 编程不熟悉的人来说有一定的难度。VISA(Virtual Instrument Software Architecture)是 NI 公司开发的一种用来与各种仪器总线进行通信的高级应用编程接口。VISA 是一个综合软件包,不受平台、总线和环境的限制,可用来对 USB、GPIP、串口、VXI、PXI 和以太网系统进行配置、编程和调试。LabVIEW 通过调用 VISA 函数来实现 USB 设备的控制和通信。在这里主要使用了 VISA Open,VISA Write,VISA Read,VI-SA Close 这 4 个 VISA 函数。与 USB 设备的通信过程分为 4 个步骤 。
(1)由 VISA Open 函数打开 VISA resource name 端口指定的 USB 设备;
(2)通过 VISA Write 函数向 USB 设备发送控制命令启动设备工作,USB 设备接收到控制命令后开始采集数据并将采集到的数据按要求发送到数据缓冲区;
(3)通过 VISA Read 函数将数据读出;
(4)通过 VISA Close 函数关闭设备。PC 主机与 USB 设备进行通信的 LabVIEW 程序框图如图 4 所示,而 51 单片机的程序结构如图 5 所示。
3 结语
虚拟仪器实验教学系统是虚拟仪器课程教学中不可或缺的设备,本文针对 NI 等主流数据采集板卡存在的价格昂贵且技术屏蔽问题,利用廉价的 MCS51 单片机设计了包含常用传感器、数据采集模块与 USB 通信接口的 LabVIEW 实验教学系统。