基于STM32的多功能模拟量输入输出系统设计

基于STM32的多功能模拟量输入输出系统设计
夏好广
【摘 要】为满足列车网络中信号采集及控制的需求,设计了一种基于STM32微控制器的多通道、多功能的模拟量输入输出系统,其中输入通道可采集电流电压信号,并由STM32微控制器控制高精度采样芯片AD7606对模拟输入信号进行转换.另外,模拟输出信号通过STM32微控制器控制精密电压/电流输出驱动器AD5750输出.每个输出通道可通过编程实现-10 V至+10 V的电压连续输出或-20 mA至+20 mA的电流连续输出.该系统还集成了INTERBUS模块,可通过INTERBUS总线进行远程通信.实验结果表明,该系统具有精度高、体积小的优点,有广阔的应用前景.
【期刊名称】《铁道机车车辆》
【年(卷),期】2018(038)001
高吸程水泵
【总页数】4页(P19-22)
【关键词】STM32;输入输出;电压源;电流源
【作 者】夏好广
【作者单位】中国铁道科学研究院 机车车辆研究所,北京100081
【正文语种】中 文
【中图分类】U266.2
现代化高速动车组普遍采用列车网络控制管理系统对车辆进行检测、控制和诊断,其中,网络系统中经常会用到模拟量输入输出模块,如一些温度传感器需要模拟输入模块来采集电压信号或电流信号。然而,对车辆侧的一些控制则需要模拟输出模块来实现,即通过将中央控制器或司机室指令转换为模拟信号来对一些传感器进行控制。模拟信号可以是电压信号也可以是电流信号,其中,电压信号一般应用于短距离传输,电流信号用于远距离传输(常用4~20 mA的电流环[1-2])。目前,大多数模块或系统只针对某一种信号类型进行了设计,而现场设备往往具有多种需求,特别需要通用性更强的模拟量模块。
针对模拟量模块多功能化的需求,设计了一种基于STM32的便携式、多功能模拟量模块。该模块可提供两通道输入信号采集(电流电压模式可切换),四通道输出(电流电压模式可切
换),电流范围-20~20 mA连续可调,电压范围-10~10 V可调。
1 系统整体设计
该系统整体结构框图如图1所示。主要由电源模块、INTERBUS模块[3]、控制模块、采样输入、驱动输出及RS485接口电路组成。电源模块主要完成系统所需几种电压的转换; INTERBUS模块工作与从站模式,通过RS485接口与外部通信。控制模块采用基于Cotex-M3的STM32为核心控制器,主要负责控制输入输出以及INTERBUS模块通信。系统工作时通过INTERBUS接收外部指令后由STM32根据指令对输入输出做出控制,完成模拟量采集和输出。
图1 输入输出模块系统示意图
2 硬件设计
2.1 电源模块
系统外部供电采用直流5 V,输入电压先经过带隔离功能的电压变换芯片REC5-0515DRW电源外壳
得到±15 V,然后通过LM317LIPK芯片得到系统内部需要的5 V电压,使用LT1521CS8得到输出通道需要的12 V 工作电压,通过AMS1117-3.3得到核心控制器需要的3.3 V工作电压。电源芯片的输入和输出端加滤波电容和磁珠进行适当的隔离,用于调整电源输出的电阻采用0.1%精度元器件。
2.2 采样输入设计
输入通道设计既能采集压信号又可以采集电流信号,当采集对象为电流的时候,通过一个模拟开关切换到串联的高精度采样电阻以实现电流到电压的转化。输入通道原理图如图2所示,Rm2将电流转换为电压信号。当输入为电压信号时,断开开关,电压信号不经过电阻。电压信号经过AD8253进行放大后送入ADC进行采集。AD8253是一款数字可编程增益仪表放大器,具有高输入阻抗、低输出噪声、低失真特性,可通过A0、A1根据采集对象选择一定的放大比例。ADC转换芯片选用ADI公司推出的针对工业应用的模数转换器AD7606,16位ADC, 标准SPI接口,其输入阻抗均为1 MΩ,采用单电源工作方式,可处理±10 V和±5 V双极性输入信号。8通道同时200 kHz频率采集, 非常适合用于高速、高精度数据采集。AD7606的基准电压通过外部REF引脚获得,为了提高稳定性,选用ADR421
电机智能监控器作为AD5062 的基准电压芯片,ADR421利用温度漂移曲线校正专利技术和XFET技术,可以使电压随温度变化的非线性度降至最小。为了便于校正系统误差,利用ADR421的TRIM引脚来在±0.5%范围内调整输出电压,而不影响温度系数。
图2 输入通道电路原理图
支撑体2.3 控制模块
STM32系列控制器在各种传感器及信号采集设计中有广泛的使用[4-5],系统选用32 位STM32F103VCT6 作为控制核心,它采用32位Cortex -M3的处理器,主频可达72 MHz,内置256 kB内存,具备丰富的外设资源,可提供睡眠、停机和待机3种省电模式。可靠性高、封装尺寸小而且价格较低,满足该系统功能需求。控制器最小工作电路包括复位电路、下载JTAG接口、外部晶振电路。其他引脚用于控制整个系统,主要有:(1)输入采集模块接口,输入通道ADC的数据引脚及控制引脚,控制器通过FSMC引脚(PD0~PD15)连接到ADC的数据引脚;(2)输出模块接口,控制器通过SPI和片选引脚对输出模块进行控制。(3) INTERBUS通信引脚,控制器通过FSMC引脚(PE0~PE15)与INTERBUS从芯片的MFP引脚连接。
2.4 驱动输出设计
驱动输出电路如图3所示,输出调理电路采用AD5750-2驱动器芯片,该芯片为单通道、低成本、精密电压/电流输出驱动器,电压输出范围可以进行编程:0~5 V、0~10 V、-5~+5 V和-10~+10 V,还提供了20%的超范围设置。电流输出可以编程为以下范围:4~20 mA、0~20 mA、-20~+20 mA。单极性范围具有2%的超范围设置。电流输出既可以是源电流,也可以是吸电流,因此它能与广泛的传感器或执行器接口。我们将电压和电流输出引脚连在一起,根据实际需求选择输出模式。输出电流或电压的数值通过输入电压(VIN)来调节,系统采用AD5660 DAC芯片作为调节输出的芯片。AD5660是一款低功耗(2.8 mW @ 5 V)、轨到轨输出、16位nanoDAC ,可通过标准SPI接口进行控制。两个芯片结合具有全功能、灵活、可编程的模拟输出,可提供所有典型的电流和电压输出范围、16位分辨率且无失码,可满足编程逻辑控制器(PLC)和分布式控制系统(DCS)应用的大部分要求。
图3 驱动输出电路原理图
2.5 INTERBUS模块电路
INTERBUS模块功能可以使得该系统可直接与INTERBUS总线进行通信,采用SUPI3 为INTERBUS从模块通信芯片,可通过软件进行相关寄存器的配置,芯片类型配置为模拟量输入输出,不同的板卡可以通过类型和数据长度来区分。对内可以与系统的控制模块通信,对外则通过RS485差分信号进行数据通信。差分信号接口原理图如图4所示,INTERBUS采用SP490差分收发器进行数据收发。R83、R79分别将正线负线上拉和下拉,主要作用是在电路驱动器关闭时给线路一个固定的电平关闭时给线路以一个固定的电平。面包炉
图4 差分信号原理图
3 系统软件设计
模拟量输入输出系统软件部分主要是控制模块内的软件设计,软件主要完成3个功能,(1)INTERBUS初始化及数据通讯工作;(2)模拟输入配置和采集;(3)驱动输出控制。
INTERBUS初始化工作主要用于配置从板卡 属性(类型和数据宽度),INTERBUS协议芯片内部封装了完善的通讯协议,微控制器通过FSMC总线发送操作指令,配置为模拟输入输
出类型,数据宽度设置为8字节。在完成初始化后要根据协议将采集到的数据存放到INTERBUS寄存器中,同时将远程数据从INTERBUS寄存器中读取出来。模拟输入采集部分主要完成根据指令设置采集电压电流类型、设置放大倍数、ADC的数据读取。驱动输出部分全部通过SPI接口完成,控制器读取INTERBUS寄存器指令后要根据自定协议解析出输出电流或电压的模式及模拟量值,然后根据AD5662和AD5750的协议要求写入对应的控制字。为了提高控制效率,控制器读取指令后先与上一包的指令进行对比,对于没有变化的指令不再重复写入。
主逻辑流程设计如图5,程序开始先进行系统初始化工作,包括GPIO、时钟及中断等工作,然后进行INTERBUS初始化,初始化通信相关的参数后执行INTERBUS读写,得到的数据进行解析,根据数据执行通道的读取和输出,每个部分如果操作错误,设置一个故障位。随后将数据buffer整合后返回执行INTERBUS读写更新数据。
杀螺剂图5 输入输出模块软件框图
4 系统测试
为了验证系统的可行性,对第一路输入通道和第一路输出通道进行测试。利用某一款INTERBUS主站模块与此系统进行通信测试,下面分别以系统0~5 V输入、±10 V输出和±20 mA输出模式为例给出实际测试结果。表1为电压输入采集测试,相对误差绝对值≤0.3%。表2为电压输出测试,相对误差绝对值≤0.41%。表3为电流输出测试,相对误差绝对值≤0.5%。
表1 电压采集测量数据输入电压/V测量电压/V绝对误差/V相对误差/%0.0000.0000.000/1.0000.997-0.003-0.3002.0001.996-0.004-0.2003.0002.995-0.005-0.1674.0003.993-0.007-0.1755.0004.992-0.008-0.160
表2 电压输出测量数据设置输出/V测量输出/V绝对误差相对误差/%-10.000-9.9590.041-0.410-9.000-8.9790.021-0.233-8.000-7.9890.011-0.138-7.000-6.9890.011-0.157-6.000-5.9890.011-0.183-5.000-4.9890.011-0.220-4.000-3.9890.011-0.275-3.000-3.0000.0000.000-2.000-2.001-0.0010.050-1.000-1.001-0.0010.1000.0000.0000.000/1.0000.999-0.001-0.1002.0002.0000.0000.0003.0002.998-0.002-0.0674.0003.997-0.003-0.0755.0005.0010.0010.0206.0005.991-0.009-0.1507.000
6.991-0.009-0.1298.0007.981-0.019-0.2389.0008.981-0.019-0.21110.0009.981-0.019-0.190

本文发布于:2024-09-21 20:47:05,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/233559.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:输出   电压   输入   控制   电流   进行   信号   系统
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议