基于AVR微控制器的电力机车智能辅保系统的实现
2 系统的硬件和软件设计
2.1 系统的硬件设计
系统主要由输入调理电路、控制输出部分及显示电路、系统主控制电路组成。输入信号的调理电路为系统主电路提供多路模拟量及数字开关量输入通道,设计中主要考虑了信号与现场的隔离和抗干扰。输出电路完成对各电机接触器及主接触器的控制,即能对出现故障的电机实现一次保护或二次保护,并提供各通道电机故障的显示,确保电机的安全。
图1给出了系统的主电路组成图。图中所示的各路信号分别表示输出通道、故障显示通道、开关数字量输入通道及条件标志输入通道。
2.2 系统的软件设计
系统软件采取模块化结构,系统各任务模块在功能上应尽量保持独立。将各任务模块放在时钟中断服务程序中执行,就可将系统各监测任务所需的各不相同的众多故障持续延时时间转化为执行频率。
2.2.1 数据采集程序的设计
以通道0为例,系统利用其片内10位ADC进行模拟量采集的软件初化程序段如下:
.include 8535def.ine
.def count=r14
.def flag=r15
.def result=r16
.def temp=r17
.def ac_temp=r18
INIT:Idi AL,low(RAMEND)
Out SPL,AL
Idi AL,high(RAMEND)
out SPH,AL ;初始化堆栈指针
ldi count,3 ;设置采集点数
clr flag ;清采集标志
ldi ZL,$65
clr ZH ;设置外部SRAM数据缓区首址为$0065H
ldi result,$8d
out ADCSR,result ;设置ADEN=1,ADSC=0,ADFR=0,ADIF=0,ADIE=0
;设置ADPS2=1,ADPS=0,ADPS0=0
;使ADC预分频器选择分频系数为16,设置ADC时钟频率为115kHz
sbi ADCSR,ADIE ;ADC中断使能
ldi temp,$00 ;选择PA0(模拟通道1)
out ADMUX,temp
sbi ADCSR,ADSC ;启动ADC转换
中断采集程序段如下:
ACONVERT:in ac_temp,SREG ;临时保存状态寄存器
in BL,ADCL
in BH,ADCH
andi BH,$03
st Z+,BL ;保存到数据缓冲区
st Z+,BH
dec cout ;采集点数到否?
breq ADC_a
sbi ADCSR,ADSC ;启动下一次A/D转换
rjmp XX
ADC_a: ldi flag,$aa ;置采集结束标志
XX:out SREG,ac_temp ;恢复状态寄存器
Reti
对A/D通道采集的模拟量数据采用防脉冲干扰的中值滤波法。
2.2.2 系统软件的总体设计及实现
为了确保系统的实时性,系统的监测扫描时间片设为100ms。在SRA岖设置标志及内部软件计时器单元,通过设定各路计时单元及计时启动/结束标志,来解决出现短路、过流及单相故障的电机所需的各不同故障持续延时时间,对电机在不同过流范围区段的不同故障持续延时时间也可正确区分并记录。这样系统就不会因某一任务的延时而影响对系统其它任务的检测,实现了对各路电机监测的实时多任务处理。另外注意,对于与执行频率无关的模块则可放在主程序中执行。
.
图2、图3给出了T/C1定时中断服务程序模式及主程序模块的流程框图。
该智能辅保系统样机经过现场调试,目前已投入运营。实践证明,系统稳定可靠,效果良好。
评论