1 数字滤波和数字调零技术 ) V, [7 H" [2 D, O+ `* \6 k+ d3 y
1)逆变电源监控中的数字滤波技术即通过简单的计算或者判断程序,对采样信号进行平滑处理,分离出有用的信号,消除或减少各种干扰和噪声。目前常用的方法有程序判断滤波法、中值滤波法、算术平均滤波法、加权平均滤波法等。对逆变电源监控模块而言,由于对采集的速度要求不是特别高,但对精度有较高的要求,同时由于被采集的模拟量变化缓慢,因此采用将算术平均滤波和中值滤波结合的复合滤波方法效果较好。其方法是,首先把采样值按大小排队,然后去掉最大和最小值,最后把剩余采集值加起来取平均值。
2)逆变电源监控数字调零技术采用这种方法主要是为了消除模拟开关、放大电路以及A/D转换器本身的偏差,削弱各种随时间和温度变化的漂移的影响。具体方法是先把模拟开关接到所需测量的输入信号上,转换后得到测量值为X1,然后把多路开关的输入接地,测出零输入时的测量值为X0,将X1减去X0即为实际输入值X。
1 _& }! y. X( c3 J5 b3 Z6 t& S4 [
2 开关量和控制信号的冗余输出 : g. I8 q/ D) H" I/ k5 }6 F( t6 E$ F
对于逆变电源开关量,利用干扰信号与有效输入信号脉宽不同的特点,采取读两次的办法,即第一次读入数据后延时1段时间后再读一次,两次结果相同才予以确认;在输出的开关量控制中,也采取重复输出数据的方法。这样即使发生错误控制,也可以及时的得到弥补。 6 y: s$ A" R. v2 K. L
; N( W( U4 s' I( L9 J& I3 z- d
3 指令冗余和陷阱捕捉技术
* S# D1 x; h8 Z, C: g' V
由于失控的程序可能将操作数当作操作码,使程序完全冲乱,但当遇到单字节指令时则会纳入正轨。利用这一特点,可以在程序中对程序流向起决定性作用的指令(如LCALL、JNC、DJNZ等)或某些对系统工作状态至关重要的指令(如SETBEA等)之前加入两条NOP指令,以确保该指令不被冲散。 ( {- S: N2 D" B" E
$ G! ~6 k0 o8 Y6 W
陷阱的设置就是采用一条引导指令,强行将捕获的程序引向指定的入口,在该地址处放置程序出错的处理程序,从而使系统重新正常运行。由于LJMP指令的操作码为02,所以把陷阱程序的入口固定在0202H,即陷阱指令为LJMP0202。 S* Y y7 _) ?1 c# A& f
4 利用“时间片"解决系统死锁问题 % a* {( r1 U! w2 Q# ]* N
在逆变电源监控模块中,A/D转换、显示等输入/输出接口是必不可少的。这些接口与CPU之间采用查询或中断方式工作,而这些设备或接口对干扰很敏感,干扰一旦破坏了某一接口的状态字后,就会导致CPU误认为该接口有输入/输出请求而停止工作,转去执行相应的输入/输出服务程序。但由于该接口本身并没有输入/输出数据,从而使CPU资源被该服务程序长期占用而不释放,其它任务程序无法执行,造成整个系统出现“死锁”。对这种干扰造成的“死锁”现象,可以采用“时间片”的方法来解决。其具体步骤如下: 9 v7 z( b/ |0 p9 R8 Z
$ F, C& }% {% v1 ~4 ^
(1)根据不同的输入/输出外设对时间的要求,分配相应的最大正常的输入/输出时间; * q! k$ M5 O$ w4 w$ e% k% p2 E7 W. `
(2)在每一输入/输出的任务模块中,加入相应的超时判断程序。这样当干扰破坏了接口状态而造成CPU误操作时,由于该外设准备好信息长期无效,经过一定时间后,系统会从该外设的服务程序中自动返回,保证了整个软件的周期性不受影响,从而避免了“死锁”现象的发生。 % o3 O, {1 m7 q; C: @5 y5 b+ I
# i/ L1 W3 \: T
以上讨论的各种抗干扰措施,实践证明,采取了上述的措施以后,逆变电源监控系统的抗干扰性能明显增强,以前的一些故障现象,比如液晶显示屏在工作过程中有时出现抖动、不稳,严重时无显示的现象,完全消失。
1楼
0
0
回复
1)逆变电源监控中的数字滤波技术即通过简单的计算或者判断程序,对采样信号进行平滑处理,分离出有用的信号,消除或减少各种干扰和噪声。目前常用的方法有程序判断滤波法、中值滤波法、算术平均滤波法、加权平均滤波法等。对逆变电源监控模块而言,由于对采集的速度要求不是特别高,但对精度有较高的要求,同时由于被采集的模拟量变化缓慢,因此采用将算术平均滤波和中值滤波结合的复合滤波方法效果较好。其方法是,首先把采样值按大小排队,然后去掉最大和最小值,最后把剩余采集值加起来取平均值。
2)逆变电源监控数字调零技术采用这种方法主要是为了消除模拟开关、放大电路以及A/D转换器本身的偏差,削弱各种随时间和温度变化的漂移的影响。具体方法是先把模拟开关接到所需测量的输入信号上,转换后得到测量值为X1,然后把多路开关的输入接地,测出零输入时的测量值为X0,将X1减去X0即为实际输入值X。
1 _& }! y. X( c3 J5 b3 Z6 t& S4 [
2 开关量和控制信号的冗余输出 : g. I8 q/ D) H" I/ k5 }6 F( t6 E$ F
对于逆变电源开关量,利用干扰信号与有效输入信号脉宽不同的特点,采取读两次的办法,即第一次读入数据后延时1段时间后再读一次,两次结果相同才予以确认;在输出的开关量控制中,也采取重复输出数据的方法。这样即使发生错误控制,也可以及时的得到弥补。 6 y: s$ A" R. v2 K. L
; N( W( U4 s' I( L9 J& I3 z- d
3 指令冗余和陷阱捕捉技术
* S# D1 x; h8 Z, C: g' V
由于失控的程序可能将操作数当作操作码,使程序完全冲乱,但当遇到单字节指令时则会纳入正轨。利用这一特点,可以在程序中对程序流向起决定性作用的指令(如LCALL、JNC、DJNZ等)或某些对系统工作状态至关重要的指令(如SETBEA等)之前加入两条NOP指令,以确保该指令不被冲散。 ( {- S: N2 D" B" E
$ G! ~6 k0 o8 Y6 W
陷阱的设置就是采用一条引导指令,强行将捕获的程序引向指定的入口,在该地址处放置程序出错的处理程序,从而使系统重新正常运行。由于LJMP指令的操作码为02,所以把陷阱程序的入口固定在0202H,即陷阱指令为LJMP0202。 S* Y y7 _) ?1 c# A& f
4 利用“时间片"解决系统死锁问题 % a* {( r1 U! w2 Q# ]* N
在逆变电源监控模块中,A/D转换、显示等输入/输出接口是必不可少的。这些接口与CPU之间采用查询或中断方式工作,而这些设备或接口对干扰很敏感,干扰一旦破坏了某一接口的状态字后,就会导致CPU误认为该接口有输入/输出请求而停止工作,转去执行相应的输入/输出服务程序。但由于该接口本身并没有输入/输出数据,从而使CPU资源被该服务程序长期占用而不释放,其它任务程序无法执行,造成整个系统出现“死锁”。对这种干扰造成的“死锁”现象,可以采用“时间片”的方法来解决。其具体步骤如下: 9 v7 z( b/ |0 p9 R8 Z
$ F, C& }% {% v1 ~4 ^
(1)根据不同的输入/输出外设对时间的要求,分配相应的最大正常的输入/输出时间; * q! k$ M5 O$ w4 w$ e% k% p2 E7 W. `
(2)在每一输入/输出的任务模块中,加入相应的超时判断程序。这样当干扰破坏了接口状态而造成CPU误操作时,由于该外设准备好信息长期无效,经过一定时间后,系统会从该外设的服务程序中自动返回,保证了整个软件的周期性不受影响,从而避免了“死锁”现象的发生。 % o3 O, {1 m7 q; C: @5 y5 b+ I
# i/ L1 W3 \: T
以上讨论的各种抗干扰措施,实践证明,采取了上述的措施以后,逆变电源监控系统的抗干扰性能明显增强,以前的一些故障现象,比如液晶显示屏在工作过程中有时出现抖动、不稳,严重时无显示的现象,完全消失。