基于STM32的嵌入式温度及应力测量系统的设计

2010-05-14 11:57于海勋
网络安全与数据管理 2010年9期
关键词:模拟量上位电路

任 艳,于海勋,张 磊

(西北工业大学 电子信息学院,陕西 西安 710129)

在工业生产过程中,嵌入式数据采集系统可用来实现生产过程的实时监控,对生产现场的工艺参数进行采集、监视和记录,为提高产品质量、降低生产成本提供信息和手段。

目前市场上的数据采集系统大多采用8位或16位单片机,由于位数小、时钟频率低、指令执行时间长、内存小,已不能满足数据采集的实时性以及各种附加功能的要求,也不能满足工业生产与科学试验的需求。因此,开发具有低成本、实时性好的数据采集系统势在必行。

针对某工业现场40路温度和40路应力参数测量与监控的需要,本文设计了一种基于32位微处理器STM32的嵌入式温度、应力测量系统。STM32以其丰富的外围模块、高速的指令执行速度、方便的JTAG调试方式和低功耗等特性为数据采集与处理的设计提供了一个较为完善的平台。测量系统的远程上位计算机实时监控程序,采用面向计算机测控领域的LabWindows/CVI平台进行开发。

1 测量系统的功能原理

系统以意法半导体公司(ST)推出的基于ARM Cortex-M3内核的STM32系列微控制芯片为核心,构建了一个高性能、低功耗、实时应用的嵌入式温度、应力测量系统。本系统在结构上采用模块化设计,根据40路温度、40路应力多路数据采集测量的需要,将系统设计为4个温度模拟量前端模块、4个应力模拟量前端模块与主控通信模块共三部分组成,每个温度、应力模拟量前端模块处理10路模拟量。其总体结构如图1所示。

模拟量前端模块主要负责将工业现场被测对象的温度、应力参量转换为主控通信模块可以识别和处理的数字信号。由于热电偶和应变片电桥电路产生的信号一般在mV级,所以应采用滤波降噪和差分放大等方法,提高信噪比,保证待测信号能被准确采集。模拟量前端模块内部单元电路包括RC低通滤波、隔离放大、冷端补偿、调理放大以及A/D转换等;主控通信模块由STM32微控制器、外围存储器接口电路、通信接口电路、拨码输入电路、状态显示电路等部分组成。由主控通信模块负责协调和控制80路信号的采集过程,提供统一的采样节拍,并负责存储80个通道的数据采集结果,接收用户采样速率的设置,显示工作的状态,并与远程上位监控计算机进行通信。

2 温度、应力模拟量前端模块[1-2]

温度模拟量前端模块和应力模拟量前端模块的内部单元电路中,有很多相似之处,也有一些差别。差别在于:应力信号必须有激励源进行激励;温度电信号的信号幅度值较高,应力电信号的信号幅度值较低,所需的放大倍数有差异。对放大器的要求如下:

(1)传感器模拟量输入信号较微弱,放大器应该是高精度、低漂移类型。

(2)输入端有共模干扰等,放大器必须是差动放大器输入形式。

(3)输入端要采取吸收电瞬变脉冲和浪涌等措施。

(4)需采用隔离措施。

温度、应力模拟量前端模块原理图如图2所示。

温度、应力模拟量前端模块选用高精度、低漂移放大器AD8554,其失调电压5 μV,失调电压的温漂是0.005 μV/℃。选用的隔离放大器型号为HCPL-7800A,是输入输出通过光进行隔离的隔离型放大器,放大倍数为固定值8左右,随温度的漂移 dG/dT=0.001%/℃。隔离放大器HCPL-7800A有两组电源供电端,电源Vdd1-Gnd1仅供输入端使用,电源Vdd2-Gnd2仅供输出端使用。输入端由隔离电源模块IB0505与其他电路隔离,IB0505是采用DC-DC变换实现的入端5 V与出端5 V隔离的微型模块电源。隔离放大器HCPL7800A的Vdd1连接隔离电源模块IB0505的+Vo,Gnd1连接0 V,信号从隔离放大器 HCPL7800A的2、3脚,即Vin+和Vin-输入。在信号输入端,加入浪涌保护电路,如图3的元件SHOCK。SHOCK两端的RC电路是用来低通滤波的。完整的带有隔离的输入端放大调理电路如图3所示。在隔离放大器的输出一侧,用放大器AD8554对信号进行调理放大、双端输出变单端输入等。经过这样处理后,就可以将代表温度、应力的模拟量送往A/D转换电路进行A/D转换。

A/D转换芯片选用了TI公司的高速、低功耗、6通道可独立控制的16位A/D转换芯片ADS8364。该芯片模拟信号输入的动态范围在0 V~5 V,对于不符合这个输入范围的信号,可以改变放大调理电路的放大系数进行幅度调整。ADS8364内部提供了2.5 V参考电压作为前端放大电路的参考输入,由于ADS8364模拟输入是双极性全差分信号,又提供了2.5 V的参考电压输出,因此,对于单端信号输入的情况,只需要将其中1个输入端通过驱动电路连接到2.5 V的参考端即可。ADS8364采用+5 V工作电压,其6个模拟输入通道分为3组(A、B、C),每组都有 1个保持信号(、和用来启动各组的A/D转换。 A/D转换结果的输出方式很灵活, 分别由 BYTE、ADD与地址线 A2、A1、A0的组合控制:当 BYTE=0时,从 DB0~DB15以 16位输出;当BYTE=1时,则转换结果分2个字节从DB0~DB7输出。转换结果的读取方式有3种:直接读取、循环读取和FIFO方式。在模拟量前端模块中,ADS8364的工作模式设定为 8位,故 BYTE 接高电平;和采用并接的方法对6个通道进行并行采样和转换。

由于测量的高精度要求,在设计上还必须考虑温度以及温度造成的硬件参数漂移对精度的影响。在每一个温度、应力前端模块上增加1路对环境温度的测量,利用集成温度传感器LM335得到实时的冷端环境温度,经AD8554调理放大送A/D转换后的数字量,通过并行方式传送给主控通信模块,以此数据作为参考,进行漂移的补偿。

3 主控通信模块[3-5]

主控通信模块的核心芯片采用意法半导体公司的STM32系列微控制芯片STM32F103RBT6。STM32系列32位闪存微控制器使用来自于ARM公司专为嵌入式领域开发的具有突破性的Cortex-M3内核,具有高性能、低功耗、实时性等特点。STM32F103RBT6是增强型系列,工作频率为72 MHz,内置高速存储器(高达 128 KB的闪存和20 KB的SRAM),带丰富的增强I/O端口和连接到2条APB总线的外设。

主控通信模块由STM32微控制器、外围存储器接口电路、通信接口电路、拨码输入电路、状态显示电路等部分组成,STM32微控制器由通用输入输出(GPIO)数据线与各个外围接口电路相连接。主控通信模块电路如图4所示。

主控通信模块与模拟量前端模块的连接包括数据线、地址线和控制线。数据线是共用的,温度、应力模拟量前端模块已经转变成为16位数字量的数据,由ADS8364的低8位输入STM32的PB8~PB15。地址线PA13、PA14、PA15通过3-8线译码器,可分别选中8块模拟量前端ADS8364的片选信号。为高时,并行输出引脚处于高阻态;为低时,并行数据线反映了输出缓冲器的当前状态。为了正确从模拟量前端的并行数据总线读取数据,器件必须被片选后才能进行读操作。控制线PB0~PB7也是共用的。

外存储器FlashROM选用SAMSUNG公司的K9LBG08U0M系列,容量为4 GB。存储器的地址、命令和数据总线均使用同一个8位I/O口,可在片选信号和写信号为低时写入命令、地址和数据,并在信号的上升沿锁存。通过命令锁存信号CLE和地址锁存信号ALE可指示当前I/O口的数据是命令还是地址。存储器按页进行读写,按块擦除。其I/O0~I/O7与STM32的 PC0~PC7 相 连,CLE、ALE、、分 别 与 STM32 的PC8、PC9、PC10、PD2相连。存储器的片选端接地,使其一直有效。通过对R/B外接上拉电阻使Flash一直处于就绪状态。接高电平,不使用写保护功能[6]。

通信接口电路的RS422电平转换芯片选用MAX488。MAX488具有限摆率驱动器,可以减小电磁干扰(EMI),并降低由不恰当的终端匹配电缆引起的反射,最高可实现250 Kb/s的无差错数据传输[7]。MAX488通过 GPIO的 PA9、PA10与STM32连接,与上位监控计算机进行通信。RS422接口主要是解决与上位监控计算机相距较远的问题,上位监控计算机因不具备RS422接口,因此选择了一款智能型USB转单口RS-422的成品,型号为IR-1401BHG。可实现高速:RS-422设备与具备USB接口的电脑主机在恶劣环境下的通信,传输距离为:RS-422端1 500 m,USB端不超过 5 m。

STM32微控制器接收使用者的拨码输入,以控制80路模拟量的采集速率。拨码开关与STM32的PC11、PC12和PC13相连,3位拨码开关或接地或断开,断开时是高电平,接地时为低电平。可以分别代表50次/s、100次/s、200次/s的采样速率设置输入。

系统的运行状态及对传感器等的工作状态检测,由状态显示功能进行实时显示。状态显示功能采用了TS1620字符型液晶模块,TS1620可以显示2行16个字符, 有 8位数据总线 D0~D7以及 RS、R/W、EN 3个控制端口,工作电压为+5 V,并且带有字符对比度调节和背光,通常使用1个10 kΩ的电位器来调节对比度。TS1620的 8位数据总线 D0~D7与 STM32的 PC0~PC7相连接;RS、R/W、EN 3个控制端口分别与 STM32的PA8、PA11和 PA12相连接。

4 软件设计

温度、应力测量系统软件由主控通信模块软件和上位机监控软件两部分组成。

在主控通信模块软件设计中,根据不同任务的优先级,将软件划分为管理服务主程序和中断服务子程序。管理服务主程序为用户服务,负责设置状态标志、设置中断速率、启动上传数据和启动状态显示等一些非实时性的操作;中断服务子程序负责80路数据的实时采集,对采集的数据进行实时处理、转存与上传,状态显示动态刷新等需要实时完成的工作。中断服务子程序的流程图如图5所示。

图5 中断服务子程序流程图

上位机监控软件具有下达采集命令及回传实时数据的读取、数据显示、曲线绘图、传感器状态显示等功能。采用面向计算机测控领域的LabWindows/CVI平台进行开发,利用LabWindows/CVI为GUI准备的专业控件,可以方便设计出监控软件程序界面。监控软件的各项功能建立在串行通信的基础上,利用LabWindows/CVI的 RS232函数库,可以方便地实现串行通信。上位机与主控通信模块的通信过程如下:通信端口成功打开后,上位机向主控通信模块发送询问当前状态帧,如果在5 s之内主控通信模块有确认帧,说明通信初始化成功,通信通路建立;主控通信模块收到上位机读命令帧后,以数据包的形式向上位机发送包含80路温度、应力采样数据信息的数据帧,上位机通过串口回调函数实现数据的接收功能。

在充分考虑功能与成本的情况下,本文设计了一种嵌入式温度、应力测量系统。该系统具有体积小、功耗低、操作灵活的特点,其温度、应力参数设计精度分别达到了1℃和50微应变。工程实际应用表明,该系统完全可满足工业现场对温度、应力参数测量与监控的需要,为实现温度、应力信号的采集提供了一种良好的解决方案。

[1]Analog Devices,Inc.AD8554 datasheet[Z].1999.

[2]Texas Instruments.ADS8364 datasheet[Z].2002.

[3]王永虹,徐炜,郝立平.STM32系列ARM Cortex-M3微控制器原理与实践[M].北京:北京航空航天大学出版社,2008.

[4]李宁.基于 MDK的 STM32处理器开发应用[M].北京:北京航空航天大学出版社,2008.

[5]ST Microelectronics.STM32F103XB datasheet[Z].2008.

[6]Samsung.K9LBG08U0M datasheet[Z].2003.

[7]Maxim Integrated Products.MAX488 datasheet[Z].1996.

猜你喜欢
模拟量上位电路
电路的保护
解读电路
巧用立创EDA软件和Altium Designer软件设计电路
基于信号集中监测的轨道电路模拟量报警分析
基于MATLAB模拟混沌电路
特斯拉 风云之老阿姨上位
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统
关于600MW火电机组模拟量控制系统设计和研究
以新思路促推现代农业上位