首页 > 范文大全 > 正文

基于LabView的多路可调电压输出设计

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于LabView的多路可调电压输出设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:为了实现对多路电压输出的实时控制,基于STM32单片机和NI公司的编程软件labview,设计了一个多路电源控制系统,实现多路可调电压输出控制。系统以STM32单片机作为主控芯片,采用高速串设接口控制三片DAC8420,通过串口接收上位机发送的命令控制12路电压输出,操作简单,输出信号精度高。

关键词:Labview;电压控制;单片机;串行通信

中图分类号: TP334 文献标识码: A 文章编号:1009-3044(2014)22-5377-03

可调的多路电压输出在很多场合有广泛的应用,针对目前多路电压输出装置多采用手动调节的状况,设计一种程控装置,采用单片机为核心,控制电压输出电路,以NI公司的虚拟仪器开发软件LabView开发应用程序,发送输出指令,人机界面友好,相应速度快,能够实现快速、精确、多路的电压输出。

1 系统结构和功能

基于单片机和LabView的多路电压输出控制系统由基于单片机的电压输出控制装置和基于LabView的上位机应用程序两部分组成,它们之间通过串口进行通信。系统架构图如图1所示。

整个系统主要实现输出电压的控制和调节,其中基于单片机的电压输出控制装置通过串口接收上位机发出的指令,经过数据处理后,通过高速串行接口控制DAC8420转换为相应的模拟量输出。基于LabView的上位机程序主要实现串口通信、提供友好的人机界面进行电压输入调节控制功能。

2 基于单片机的多路电压输出控制装置设计

2.1 总体设计

根据系统需要实现的功能,基于单片机的电压输出控制装置的硬件结构以STM32F103RBT6为核心,电路包括电源电路、时钟和复位电路、串口通信电路、DA转换电路等。其中多路电压输出的核心器件为DAC8420。系统硬件结构如图2所示。

2.2 电源电路设计

系统采用专用稳压芯片提供系统工作的电源,交流电通过变压器降压再经过整流后接到稳压模块上,输出各个模块需要的电压。由于单片机供电电压为3.3V,串行通信接口芯片MAX232工作电压为5V,DAC8420VDD为15V、VSS为-15V,VREFHI和VREFLO分别为+10V和-10V。电源部分采用ASM1117-3.3、ASM1117-5.0分别提供单片机和MAX232工作电压,由7810和7910输出正负10V电压,7815和7915输出正负15V电压。同时在电源电压转换过程中进行滤波处理,在模拟和数字电源中加入电感和电容组成去耦电路来抑制干扰。

2.3 串行通信电路设计

单片机与LabView通信采用串口,STM32单片机内置3个USART,完全支持RS232协议,具有很高的传输速率。本系统的电平转换芯片采用MAX3232,可以同时完成发送和接收转换双重功能,串口通信电路如图3所示。

上位机通过串口将不同通道的电压值设定好发送给单片机,单片机接收的数据包含了通道、电压值、量程、极性等信息,同时单片机在接收到上位机的命令后将返回同样的状态信息。因此,需要设定上位机和单片机的通信协议。该文设计的数据格式如表1所示。

2.4 D/A转换电路

单片机接收来自上位机应用程序的指令,经过数据处理后转换为相应的数字信号控制电压的输出,其中D/A转换由DAC8420完成。DAC8420是AD公司生产的4路输出12位DAC,功耗低,转换精度高,为简化电路设计,采用高速串行接口方式[1]。参考电压采用正负10V,实现电源电压范围内的正负单极性或双极性信号摆幅,通过设置输入VREFHI和VREFLO而确定输出电压范围,从而极大的提高设计灵活性。本系统中DAC8420的电源电压接正负15V,参考电压接正负10V,可以实现-10V到+10V范围内的可调电压输出。其余STM32单片机的连接如图4所示。根据DAC8420的工作时序,STM32向DAC8420写数据时,先将片选信号CS置0,并将异步DAC寄存器载入控制信号LD置1,然后由串行数据输入引脚将符合DAC8420格式的数据输入DAC8420内部的串/并转换寄存器。由SDI输入的16位数据中,头两位A1,A2用于选择寄存器A-D,后12为D11-D0是具体的数值,解码器根据两位数据判断数据移入的寄存器。当数据输入完毕后,再将LD置1,并在LD的下降沿将数据移入一寸器A-D,最后将LD置1、CS置1,完成一次转换。

3 基于LabView的上位机程序设计

3.1 总体设计

基于LabView的上位机程序主要通过串口发送指令,同时通过上位机对各个通道的电压值进行设置和调节,实现串口通信是上位机程序设计的关键。除了串口通信功能,上位机程序还应实现下面的功能:调节通道选择、量程选择、调节步长选择、超量程报警和按设定步长调节功能。

3.2 LabView串口通信实现

串口通信是实现上位机程序的关键。这里利用LabView自身强大的驱动库,用其被打包好的VISA驱动来实现[2]。要在LabView中使用串口操作节点,首先要在电脑中安装NI VISA驱动,安装VISA驱动库后,可在Instrument I/O模板的Serial子模板中找到串口操作的各个节点。

LabView串口操作主要用到5种节点:VISA Configure Serial Port:串口配置节点,可进行串口号和波特率的设置;VISA Read:串口读节点,用以读取串口接收缓冲区的数据;VISA Write:串口写节点,用以向串口发送缓冲区写入数据;VISA Flush I/O Buffer:用以清空缓存区;VISA Close:关闭串口。

3.3 人机界面设计

人机界面采用LabView2013进行开发,采用滑动杆控件和编辑框输入控件实现对不同通道电压的输入,利用组合框控件下拉选择量程和步长,利用LabView自身的VISA驱动编程实现串口数据的收发,软件可以实现对十二通道任意一个通道的电压进行设置和调节,同时可以通过软件的联动调节功能,选中需要调节的若干通道,进行联合调节。界面如图所示。

实际操作过程中,选择需要调节的通道,通过滑动杆或者编辑框输入需要调节的通道的电压,然后点击发送数据,上位机将设定好的命令参数发送给单片机,单片机控制通道输出相应电压。

4 结束语

本文设计了一种基于LabView和单片机的多路可调电压输出系统,基于LabView开发的上位机应用软件控制单片机,可以独立或并行输出多达12路-10V~+10V之间的电压,控制灵活方便。

参考文献:

[1] 张彦,吴昌才,刘暾东,李茂青.基于串行DAC8420芯片的模拟量输出卡设计[J].工业控制计算机,2006(3).

[2] 杨乐平,李海涛,肖相声,等. LabView程序设计与应用[M].北京:电子工业出版社,2001.