ATmega128单片机在信号处理中的应用
扫描二维码
随时随地手机看文章
摘 要: 以ATmega128单片机在钢水液位监控系统的信号处理子系统为例,详细介绍了系统对模拟量、数字量以及开关量的采集与处理过程,用LCD显示模块显示数据和状态的方法说明了一些为节省单片机引脚资源而采取的设计技巧,通过软件与硬件的结合,使信号的处理效果达到设计要求。
关键词: ATmega128;单片机;信号处理
在钢铁冶金的连铸生产过程中,维持结晶器中钢水液位的基本稳定对产品质量有着举足轻重的作用。钢水液位高度的波动太大会使结晶器中的保护渣等夹杂物带入钢水中,不仅影响铸坯的质量,严重时甚至会导致钢水溢出等重大生产事故的发生。为了提高钢坯的产品质量,避免生产事故,降低操作工人的劳动强度,提高生产自动化水平,就必须有一套高精度的钢水液位控制系统,使结晶器中钢水液位高度波动范围控制在5 mm以内。
结晶器的钢水液位控制系统由三个子系统构成:(1)信号检测与放大子系统;(2)信号处理子系统;(3)PLC及执行机构控制子系统。其中(1)、(3)两个子系统的功能相对单一。信号检测与放大子系统的主要功能是通过电涡流传感器及其高精度放大器把钢水液位高度转换成相应的电压信号,通过温度传感器将温度转换成相应的电流信号;PLC及执行机构控制子系统的主要功能是与信号处理子系统通信,发出开浇命令,接收其应答信号,在开浇过程中根据信号处理子系统的输出电流大小,通过PLC和执行机构控制中间包的塞棒开启度,从而控制注入结晶器的钢水流量,使结晶器的液位高度波动范围小于5 mm。
系统的核心部分是信号处理子系统,其结构框图如图1所示。
1 信号处理子系统的硬件设计
信号处理子系统是以ATmega128单片机为核心的嵌入式系统。系统中的输入/输出信号包括:用来实现开浇联络的1对开关量——开浇与应答;2路通过A/D转换实现的模拟量输入——液位电压和温度电流;3路通过D/A转换实现的模拟量(图1中只画出2路)输出——液位电流、温度电流及mV补偿。输入/输出设备包括:1个带触摸屏、分辨率为320×240的LCD显示模块;4个按键的键盘;4个用来指示状态的发光二级管;还有1个用来发音报警的蜂鸣器。其主要模块设计方案介绍如下。
1.1 单片机
单片机采用Atmel公司生产的8 bit、增强型AVR单片机ATmega128L,其引脚数为64个,I/O端口有53个,片内有128 KB的Flash、4 KB的SRAM和4 KB的E2PROM,还有两个8 bit的定时器和两个16 bit的计时器;具有8路10 bit A/D转换器。片内资源比较丰富,性能可满足本子系统使用要求。
1.2 键盘
为了节省引脚资源,本系统没有采用独立按键方式,而是利用一路片内A/D转换来实现4个按键的识别。通过不同按键按下后串联接到+5 V的使分压电阻输出电压的不同来识别不同的按键。4个按键的操作分别对应为运行(Run)、调整(Adj)、线性化(Line)、设置(Set)4个功能。其中,“运行”是指系统的正常运行;“调整”是指在开浇之前,把系统调整到一个初始状态,具体操作是在液位高度为150 mm时,通过对前级放大子系统及信号处理子系统的mV补偿,使液位电压值为4.96 V;“线性化”是在0~150 mm的范围内,通过传感器配合设定16组不同液位与电压的数据;“设置”是对线性化数据输入的确认。
1.3 模数转换(A/D)
虽然单片机片内有10 bit的A/D转换器,但由于现场对模块量的采集精度要求较高,所以本系统采用了12 bit A/D转换器LTC1291来实现液位模拟量的采集[1]。这是一种具有两个通道的12 bit串位ADC芯片,由于输入的液位电压范围是0~6 V,所以供电电压设为6 V。转换后的数值量以串行方式提供给单片机,作为毫伏补偿输入和相应液位电流输出的依据。
1.4 数模转换(D/A)
本系统的D/A有3路,一路是为了调整初值而对前级放大输出的毫伏补偿,另两路是为了输出与液位高度(0~150 mm)、传感器温度(0~100 ℃)对应的电流4 mA~20 mA。
(1)毫伏补偿
输出毫伏补偿电路如图2所示,其目的是在开浇前,通过补偿将液位高度与对应的输出电压调整到一个确定的对应值,比如在液位高度为150 mm时,使前级放大板的输出电压为4.96 V,若高于此值,则进行负补偿,低于此值,则进行正补偿,所以补偿的毫伏值是可正可负的,D/A转换器采用双12 bit分辨率的LTC1446[2],输出运算放大器LT1077的供电电压为±5 V。补偿是有限制的,其输入数值范围为0~±150,每个数值对应的输出模拟量大小可通过电位器RS1调整。
(2)液位电流输出
实现将液位高度转换成4 mA~20 mA电流输出的电路先由12 bit D/A转换器LTC1451[3]将液位高度的数值量转换成模拟量电压,然后由AD694输出相应的电流。LTC1451是一种12 bit分辨率串行D/A转换器,从Din输入的数字量是A/D转换器采集的液位电压,从Vout端输出的是相应的模拟电压,通过电流输出模块AD694转换成模拟量电流4 mA~20 mA,从其Iout端输出。
1.5 LCD显示屏
LCD显示屏采用的是分辨率为320×240、带触摸屏的LCD模块,显示的主要内容为系统运行界面、工作调整界面、补偿界面和线性化界面及相关参数。
(1)系统运行界面
系统起动或按“Run”按键进入系统运行界面,如图3所示。显示内容包括3个部分:其一是输入量、输出量和状态量的显示;其中输入量有:液位、电压和温度;输出量有:液位电流、温度电流和补偿值;状态值有:超温(没有超温不显示)、开浇/停浇、正常/异常。其二是以20像素/s的速度动态绘制反映液位波动情况的实时曲线。其三是通过触摸屏实现6个按键,其功能如下: