基于LabVIEW与凌阳SPCE061A实现串口数据采集
引言
LabVIEW是一个划时代的图形化编程系统,应用于数据采集与控制、信号分析等方面,它为不熟悉文本语言编程的专业科技工作者在测控领域建立计算机仪器系统——虚拟仪器,提供了一个便捷、轻松的图形化设计环境。由于其灵活、简单易用、开发效率高等特点,正逐渐成为科技工作者进行仪器应用与开发的得力工具。数据采集是开发过程中一个重要的环节,NI公司提供了各种不同类型的基于LabVIEW的数据采集卡,但是其价格昂贵,对于小型企业、实验教学等方面仍存在着不可避免的资金问题。而市面上销售的第三方开发的数据采集卡,由于不具备对LabVIEW的直接支持,需要用户开发其驱动程序,使用也不方便。如果采用以凌阳16位单片机SPCE061A作为前端数据采集,通过串口进行与LabVIEW的数据通讯,就可实现低成本、灵活方便、接口简单的数据采集系统。这对于许多信号频率不是太高的场合,此方案无疑非常便利。本文所介绍的就是这样一种利用LabVIEW 对SPCE061A的数据进行分析处理,并通过串口实现二者之间的数据交换、经济实用的数据采集及分析系统。
本系统主要包含两部分的设计:LabVIEW部分设计和SPCE061A数据采集与串口通讯部分设计。
1 LabVIEW部分设计
1.1 VISA简介
LabVIEW提供了功能强大的VISA库。VISA(Virtual Instrument Software Architecture——虚拟仪器软件规范,是用于仪器编程的标准I/O函数库及其相关规范的总称。VISA库驻留于计算机系统中,完成计算机与仪器之间的连接,用以实现对仪器的程序控制,其实质是用于虚拟仪器系统的标准的API。VISA本身不具备编程能力,它是一个高层API,通过调用底层驱动程序来实现对仪器的编程,其层次如图1(a)所示。VISA是采用VPP标准的I/O接口软件,其软件结构应包含三部分,如图1(b)所示。
(a)VISA内部机制
(b)虚拟仪器的软件体系结构
图1
与其它现存的I/O接口软件相比,VISA的I/O控制功能具有如下几个特点:适用于各种仪器类型如VXI仪器、GPIB仪器、RS-232 串行仪器、消息基器件、寄存器器件、存储器器件等仪器);适用于各种硬件接口类型;适用于单、多处理器结构或分布式网络结构;适用于多种网络机制。
VISA的I/O的软件库的源程序是唯一的,其与操作系统及编程语言无关,只是提供了标准形式的API文件作为系统的输出。
1.2 VISA库中的串口函数
本文用到的主要的串口通讯函数调用路径为:Functions→Instrument I/O→VISA→VISA Advanced→Interface→Specific→Serial中。
1) VISA Configure Serial Port节点(如图2所示)
图2 VISA Configure Serial Port.vi图标及其端口
该节点主要用于串口的初始化。主要参数意义如下:
VISA resource name:设置串口号。
baud rate:设置波特率,默认值为9600。
data bits:设置数据位。该位应在5~8之间,默认值为8。
parity:奇偶校验位,默认值为无校验、偶校验等。
stop bits:设置停止位,可以为1、1.5、2。
flow control:用于设置握手信号类型。
2) VISA Read节点(如图3所示)
图3 VISA Read.vi 图标及其端口
该节点为串口读子VI,为本文中的主要节点,将串口中的数据读出,然后利用LabVIEW的强大数据处理功能对其进行分析处理。主要参数意义如下:
VISA resource name:设置串口号。
byte count:设置读取字节数。
read buffer:从串口读取的字符。
由于LabVIEW的串行通讯子VI只允许对字符串的读写,因此本文中在进行数据处理时,必须要实现字符串与数字之间的正确转换。此外,若要读入当前串口中的所有字符,则要先执行“VISA Bytes at Serial Port”子VI,用以确定将要读入的确切的字节数,然后将其输出作为VISA Read节点的输入即可。
2 SPCE061A数据采集与串口通讯部分设计
2.1硬件部分
SPCE061A内置8通道10位模-数转换器,其中7个通道用于将模拟量信号 (例如电压信号) 转换为数字量信号, 可以直接通过引线(IOA[0~6])输入。另外一个通道只用于语音输入,即通过内置自动增益控制放大器的麦克风通道(MIC_IN)输入。实际上可以把模数转换器(ADC,Analog to Digital Converter)看作是一个实现模/数信号转换的编码器。在ADC内,由数模转换器DAC0和逐次逼近寄存器SAR组成逐次逼近式模-数转换器。另外,SPCE061A内置UART模块,UART模块提供了一个全双工标准接口,用于完成SPCE061A与外设之间的串行通讯。借助于IOB口的特殊功能和UART IRQ中断,可以同时完成UART接口的接收和发送数据的过程。UART模块的接收管脚Rx和Tx分别与IOB7和IOB10共用。
本电路采用RS-232串行接口标准,在电气特性上,RS-232采用负逻辑,
LabVIEW 虚拟仪器 SPCE061A 串口 数据采集 相关文章:
- 基于虚拟仪器的特性测试参数数据库的设计(06-24)
- 基于LabVIEW的USB实时数据采集处理系统的实现(03-26)
- 基于LabVIEW的DSP设计(04-10)
- 图形化系统设计:缩短开发时间的嵌入式设计(11-22)
- 基于DSP+LabVIEW的特高压验电器设计方案(02-18)
- 基于LabVIEW的32位处理器嵌入式系统的开发(05-13)