基于USB的虚拟仪器数据采集系统设计

龙源期刊网 http://www.qikan.com.cn

基于USB的虚拟仪器数据采集系统设计

作者:李飞

来源:《电子技术与软件工程》2015年第21期

摘 要 基于低成本,可靠性的思想设计了本数据采集系统。MSP430F5529单片机自身集成12位AD转换器和USB接口,硬件电路简单可靠。上位机用LabVIEW显示采集的数据波形。传统USB驱动开发复杂,利用NI公司的NI-VISA driver wizard软件可快速生成USB驱动,但若USB相关参数设置不正确,容易出错。事实上,直接利用TI公司提供的USB_CDC虚拟串口通信驱动文件MSP430_CDC.inf和USB_CDC_API库函数,可以快速稳定的实现上下位机间的通信。

【关键词】MSP430F5529 数据采集 USB LabVIEW NI-VISA

虚拟仪器的出现不仅大大降低实验仪器成本且功能强大。串行总线 USB具有高速稳定的传输能力,支持热插拔等特点,采用 USB接口总线已经是虚拟仪器技术发展的必然趋势。 MSP430F5529单片机集成了AD转换器和USB2.0接口,硬件电路简单,减少了信号干扰,易于实现。传统的USB驱动程序开发难度大。而NI公司的NI-VISA driver wizard软件可帮助用户快速生成USB驱动文件,开发者无须花费大量精力学习USB协议的细节,便能实现单片机与PC的通信。不过更简单的方法是直接安装TI公司提供的USB_CDC通信驱动文件MSP430_CDC.inf,利用虚拟串口实现USB通信。 1 系统硬件组成

系统整个架构如图1所示。

MSP430F5529芯片是数据采集模块的核心,该单片机是一种超低功耗的16位混合模拟控制器,内置12位SAR内核的AD转换模块,在没有CPU干预下,该缓冲器允许对16路独立采集而来的ADC信号进行转化和存储。最高采样速度可达200kbps。转换基准电压均可软件选择内部或外部电压源。该单片机内部的基准电压可设置为1.5V或2.5V 。信号调理电路应将信号控制在转换基准电压范围内。同时该单片机还集成USB2.0接口模块,其内部SRAM为8K,在使用USB通信时占用2K的SRAM。这样的高度集成使得一个最小单片机系统就构成一个采集卡。用户需注意ADC接地和干扰防范,具体硬件电路参考用户手册即可。 2 系统软件组成

系统软件设计主要包括USB固件程序设计,USB 驱动程序设计以及 LabVIEW 软件程序设计三个部分。

龙源期刊网 http://www.qikan.com.cn

USB固件程序从功能上分为USB通信和AD数据采集两部分。从最底层开发USB通信程序对不熟悉USB协议的人来讲是不可能完成的任务。参考TI公司官方网站USB开发资源包使问题变得简单,它包含了开发一个基于USB的MSP430项目所需的所有源代码和示例应用程序。开发者可直接套用其框架和USB API库函数完成,如果用户使用的是CCS集成开发环境,通过Help-->Welcome to CCS打开欢迎界面,展开MSP430ware,在这里可导入相关例程。

固件开发的另一部分就是AD采集程序的编写。MSP430的AD采集模块功能强大,有四种转化模式:单通道模式,重复单通道模式,序列模式和重复序列模式。本文用6.6端口实现单通道多次转换采集端口,其相关控制寄存器设置语句如下:

传统USB驱动开发对于非计算机专业的用户来讲难度很大。但是利用NI-VISA提供的USB驱动程序生成软件使得问题简化。首先打开NI-VISA Driver Wizard 开发向导,根据提示输入USB设备相关信息,主要是VID(USB Manufacturer ID)和PID(USB Model Code)的正确填写(MSP430F5529的VID为“0x2047”,PID为“0x0400”)。然后将配置好的INF文件安装在Windows环境下,再将USB设备插入主机完成驱动程序的安装。完成后可用NI MAX软件做通信测试,打开NI MAX设备和接口项,发现MSP430F5529支持三种常见设备分别是通信设备类(CDC),人机接口设备类(HID),大容量存储类(MSC),并显示为USB RAW设备。对于USB RAW设备,每个设备可能使用它们自己的通信协议,用户须了解相关USB通信协议,若程序中USB相关参数设置不正确会导致通信错误。还有没有更简单的方法? 事实上,对于MSP430F5529的CDC通信,无须用VISA驱动向导生成USB驱动程序。TI公司提供了USB_CDC通信驱动程序文件MSP430_CDC.inf,用户直接安装就可以快速稳定的实现单片机与LabVIEW间的通信。安装完毕,打开windows系统的设备管理器,在端口项目下显示MSP430_F5529_UE_CDC(COMxx),其中xx为串口号。这样的虚拟串口使得用户不需去了解USB协议,而数据的传输却是通过USB接口完成的。

上位机LabVIEW软件程序的编写利用NI-VISA函数按串口通信编写,采用顺序结构:首先添加VISA资源名称控件,配置串口函数,添加VISA打开函数。这样通过串口资源选择和相关参数设置,如波特率、数据位、停止位等,完成初始化VISA设备的过程。然后调用VISA写入函数,向单片机写入控制信息。单片机响应后采集数据并发送。再调用VISA读取函数读入采集的数据。要注意,VISA读取函数前需通过使用VISA Bytes at Serial Port节点查询当前串口接收缓冲区中的数据字节数。最后使用VISA关闭函数结束会话。图2为LabVIEW读取程序框图。

下位机是12位ADC转换模块,每发送两位数据为一个采集点,上位机LabVIEW中需对数据进行变换,才能正确显示。 3 结束语

龙源期刊网 http://www.qikan.com.cn

用信号发生器产生一个2V的正弦信号,LabVIEW显示结果正确。该数据采集系统硬件上简单可靠。软件上,利用TI公司提供的USB_CDC通信驱动文件和USB_API库函数,使得不了解USB通信协议的用户也能快速实现与上位机LabVIEW的通信,极大的缩短开发时间。 参考文献

[1]沈建华,杨艳琴.MSP430系列16位超低功耗单片机原理与实践[M].北京:北京航空航天大学出版社,2008.

[2]张桐,陈国顺.精通LabVIEW程序设计[M].北京:电子工业出版社,2008.

[3]余志荣,杨莉.基于NI-VISA与LabVIEW的USB接口应用设计[J].单片机与嵌入式系统应用,2007(01).

[4]周青云,王建勋.基于USB接口与 LabVIEW 的数据采集系统设计[J].实验室研究与探索,2011(08). 作者单位

泰州学院 江苏省泰州市 225300

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4