导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[dirty]单片机技术论谈



No.19855
作者:dirty
邮件:@.com
ID:5645
登陆:8次
文章数:890篇
最后登陆IP:218.71.204.242
最后登陆:2003/8/12 16:17:07
注册:2001/8/15 10:36:00
财富:3654
发帖时间:2003/3/3 8:42:00
发贴者IP:61.135.27.194
标题:dirty:单片机技术论谈
摘要:No.19855单片机技术论谈 
                    电力线载波通信与软件抗扰

                            董明刚
                           2003年2月

    电力线载波通信以电力线为信道进行数据传送,既经济,又方便。目前,在
我国要得到这种经济和方便,却不是一件容易的事。电力线载波抄表已经做了很
多年了,但是在实际应用中总会有一些问题出现,所以还是不能在电力部门进行
普遍推广应用。
    我们对载波抄表出现问题的原因基本上都是清楚的,电源污染比较严重,电
网中存在着多次谐波,还有尖峰脉冲等。以我国目前的经济状况,不可能将那些
对电网的电源质量产生影响的用电设备全都报废,所以电源污染是现实,不可能
回避。在现实面前,我们的许多科技工作者没有低头,研究出了很多载波通信算
法,并且取得了很好的成绩。当这些科技工作者辛苦地研究通信算法技术并取得
成绩的时候,也许他们忽略了对另一种技术的研究——软件抗扰技术。
    电力线载波通信设备工作不正常,总体上来说是出于两种原因:1.冲击,设
备硬件受到冲击可能暂时失效,甚至损坏,设备电源受到冲击可能会产生大幅度
的电压或电流的变化;2.干扰,信号受到干扰造成通信失败,程序受到干扰则不
能收发信号。可以知道,干扰的对象有两个,一个是信号,另一个是程序。当信
号受到干扰时,表现为信道质量降低。比如同频干扰,使序列信号变得杂乱无章。
但是同频干扰对程序产生的影响则不是很大,一般情况下都不会使程序跑飞。当
程序受到干扰时,表现为设备不工作或工作不正常。比如尖峰脉冲,很容易使程
序跑飞,程序不能正常运行,也就没有收发数据的能力。但是尖峰脉对信号影响
并不大,它对序列信号的修改很少,所以我们可以通过纠错算法很容易的将数据
修复。
    对信号的干扰,我们已经有很多好的办法,基本能保证信道的质量,就不讨
论这个问题了。对程序的干扰,我们首先想到的通过硬件来解决,加强电源的稳
定性,加硬件看门狗等许多办法。虽然我们在硬件上做了很多工作,但是程序运
行不稳定甚至死机的问题仍然困扰着我们。为什么会这样呢?因为我们不可能通
过硬件将抵制住所有的干扰。当干扰穿过硬件防护区进入CPU时,程序就被打乱
了,运行出现了错误。对于这个问题,我们束手无策了吗?我们是有办法的,让
程序自己来解决这个问题。我们在编写程序的时候多做两项工作。第一、当程序
运行出错时,我们要捕捉到错误。第二、当我们捕捉到错误时,分析错误原因,
然后做出相应的处理。我们在软件中做了这两项工作,随之带来很多的好处:第
一、程序运行稳定,不再有死机问题;第二、硬件看门狗可以不用了;第三、硬
件抗扰措施可以简化。做好软件抗扰,既保证了系统的稳定性,又降低了系统成
本。所以说,软件抗扰技术是一项很重要的技术。在电力线载波通信方面,软件
抗扰技术应该是重要的一项技术。

    如果您需要单片机软件开发,请与我联系。
    电话: 010-62906811
    手机: 13651306375
    E-Mail: dongminggang@163.com

--------------------------------------------------------------------------

                        程序设计与抗干扰

                            董明刚
                           2003年2月

    目前,单片机的应用是很普遍的,但是单片机(可以扩展到所有的处理器)
的软件设计技术是非常欠缺的。从理论上来说明这些欠缺比较复杂,从示例来分
析这些欠缺则比较容易。下面兴举出一些示例进行分析。

    例一:
        ORL   A,#0B2H     ;44 B2
        SUBB  A,#80H      ;94 80
        MOV   R4,A        ;FC
        RET               ;22
    这是一段MCS-51程序,作用是:将累加器A与0B2H做或运算,再减去80H,然
后放到通用寄存器R4中返回。但是它的作用不只是这一点,它还有一种潜在的作
用。让我们看一下由它生成的十六进制代码:44 B2 94 80 FC 22 。单片机正常
执行这段程序时,从44代码开始执行,运行结果与源程序的目的是相同的。当单
片机受到干扰后,指令执行指针PC指向这段代码的B2代码时,我们看一下是什么
情况。从B2开始进行反汇编,就可知道干扰后的运行情况。
LOP:    CPL    P1.4        ;B2 94
        SJMP   LOP         ;80 FC
        RET                ;22
    干扰后形成了一个死循环。如果P1.4是看门狗的输入,那么就死机了。

    例二:
PROCX:
        MOVLW  0
        CALL   SUB1
        ADDWF  20H,1
        RETURN
SUB1:
        ADDLW  1
        CALL   SUB2
        ADDWF  21H,1
        RETURN
SUB2:
        ADDLW  2
        CALL   SUB3
        ADDWF  22H,1
        RETURN
SUB3:
        ADDLW  3
        CALL   SUB4
        ADDWF  23H,1
        RETURN
SUB4:
        ADDLW  4
        CALL   SUB5
        ADDWF  24H,1
   ......

>>返回讨论的主题



  发表回复
用户名   *您没有注册?
密码   *
验证码   * .
标题   *
心情
随便说说    我回答你    最新发现    得意的笑   
气死我了    真是没劲    坚决同意    表示反对   
大家过来    好奇怪哟    懒得理它    大家小心   
文件上传
内容


字体:      字体大小:    颜色:
粗体 斜体 下划线 居中 超级连接 Email连接 图片 Flash图片 Shockwave文件 realplay视频文件 Media Player视频文件 QuickTime视频文件 引用 飞行字 移动字 发光字 阴影字 查看更多的心情图标 背景音乐
点击加入表情
                         
选项
有回复时用短消息通知您?

   




老古网执行:31毫秒 最大:5186毫秒 查询6次