打印

建议做为2008年1月的专题----软件抗干扰的方法研究

[复制链接]
楼主: emailli
手机看帖
扫描二维码
随时随地手机跟帖
61
dld2| | 2008-1-15 10:54 | 只看该作者 回帖奖励 |倒序浏览

在内存或寄存器不可信的情况下,软件就完全不可信了

这时候顶多复位或者报警。真正解决问题还是靠硬件。

对外部接口的容错性是另一个问题。

另外一个观点:如果真是要软件去抗干扰,CPU和外部器件要修改架构来提供支持。例如所有内存和寄存器提供冗余和校验。

使用特权

评论回复
62
maychang| | 2008-1-16 10:22 | 只看该作者

不存在“软件抗干扰”这个概念

同意所长。

使用特权

评论回复
63
tom_xu| | 2008-1-16 10:26 | 只看该作者

开关中断操作count 有什么不对阿

46楼: NO 

开关中断操作count 
 

使用特权

评论回复
64
5_0_5| | 2008-1-16 12:53 | 只看该作者

赞同所长的半个意见

多机通信的编码和校验,在本质上应该算是一种抗干扰吧...

使用特权

评论回复
65
5_0_5| | 2008-1-16 13:21 | 只看该作者

回63楼

count = 251~260
也就是说对于8位的单片机要用高低两个字节来存储count,可以用count_H和count_L来表示。
那么count++是C语言,翻译成汇编以后就成了:

count_L++;
if(count_L==0)//有进位
{
  count_H++;
}

当count=0FFH,运行count_L++,突然中断
而count在中断中有用到的话...

使用特权

评论回复
66
hdz05| | 2008-1-16 18:14 | 只看该作者

学习!

使用特权

评论回复
67
xinchen97| | 2008-1-16 22:00 | 只看该作者

个人观点

我认为用软件抗干扰这种说法不妥当。
软件的主要应该说是容错性比较合适。比如我们用到的CRC还有软件设计中的参数检测还有错误状态的处理。这个的都属于容错性的范畴。在设计软件的时候我们更多的是要考虑对于错误状态该如何处理。而不是一味的将硬件设计上的缺陷用软件来补救。这样的思路我个人认为是错误的。
对于ram或者flash中的数据被改写这个很大的原因是硬件电路设计抗干扰考虑不周全造成的。上面的**中提到的C8051F系列单片机的flash数据的情况我认为具有普遍性能。**中也给我们指出了比较好的解决办法。
 总结一下我的发言:软件强调容错,硬件强调抗干扰。

使用特权

评论回复
68
wacke| | 2008-1-16 23:43 | 只看该作者

我的一点理解

如果外部干扰能让单片机内的数据变化,那最好的办法就是快点让看门狗复位。多运行的每一步都很凶险,增加谁肯说PC指针就比RAM更容易被干扰。加强硬件的防错才是硬道理。

使用特权

评论回复
69
agency1980| | 2008-1-17 11:42 | 只看该作者

疑惑

问65楼


count = 251~260
也就是说对于8位的单片机要用高低两个字节来存储count,可以用count_H和count_L来表示。
那么count++是C语言,翻译成汇编以后就成了:

count_L++;
if(count_L==0)//有进位
{
  count_H++;
}

当count=0FFH,运行count_L++,突然中断
而count在中断中有用到的话...
 
 
我AVR单片机的C语言用的不多,但是这个范例我看好像没有允许中断嵌套吧,不知道编译后是怎么样的

使用特权

评论回复
70
agency1980| | 2008-1-17 12:27 | 只看该作者

应该是这里

在这里关中断:
if(count > 250)

使用特权

评论回复
71
5_0_5| | 2008-1-17 13:11 | 只看该作者

同意xinchen97

软件抗干扰  容易出现误解

不过容错的“错”该怎么定义,也该有个范围吧?


回agency1980:
没明白你的意思
我的意思是:8位单片机的数据是以字节为单位的,FFH=255是一个字节所能表示的最大值,对于比FFH大的数字就要用多个字节来存储,而这个C的语句中是无法直接看出来的;
那么这就导致一条C语句可能翻译成一条汇编语句,也可能翻译成多条汇编语句。
这个思想在用汇编编写程序中也是很重要的,我手头一本书上就记录了一个前辈工程师因为这个而在工程设计中出现了问题,只是那时侯他们还不知道“临界代码”这个概念。

使用特权

评论回复
72
zenyin| | 2008-1-17 13:27 | 只看该作者

目标单片机不复位进入程序正常套路

呵呵完全可以

使用特权

评论回复
73
农民讲习所| | 2008-1-17 16:29 | 只看该作者

没经过学堂的农民太多

使用特权

评论回复
74
NE5532| | 2008-1-19 18:21 | 只看该作者

软件抗干扰,作用就像安慰剂。

硬件不可靠,软件再可靠也保不住。
首先把硬件弄可靠了再说。

软件要可靠,简单最重要。这个就像吃药,以毒攻毒的东西不可能没有副作用。

我写程序一般都不开狗,开狗也是拿来唤醒用的。也没见过软件飞上天的。狗是保障软件可靠性的最后一道防线,如果动不动就拿狗来“防死”,只能说明系统做得太糟糕了。

使用特权

评论回复
75
hotpower| | 2008-1-19 18:24 | 只看该作者

俺绝不赞成"软件抗干扰,作用就像安慰剂"的说法

在硬件不能变更的情况下,2种方法编出来的程序绝对是不一样的~~~

这种例子搞软件的都心里明白...在此争论毫无意义~~~

使用特权

评论回复
76
谈的元| | 2008-1-19 19:14 | 只看该作者

同意hotpower,再说一句

“软件抗干扰”一说也许词不达意。

但  软件对  干扰的处理的是不可少的。

实际是对各种非法情况的处理

所谓干扰 是正常情况不会出现的。

很多朋友说的容错 说的好。

单片机要 对各种情况加以考虑。


那样写出的软件比较健壮。

硬件  防治 干扰骚扰  单片机也是必要的。



但  单片机 不能被骚扰后  就疯了

不敢说17万的ATM疯了

使用特权

评论回复
77
dcp| | 2008-1-19 20:28 | 只看该作者

采集数据时各种滤波算法不算软件抗干扰吗?

使用特权

评论回复
78
农民讲习所| | 2008-1-20 09:39 | 只看该作者

此贴的软件抗干扰,是抗MCU的干扰。

公司的软件(管理制度)、硬件(固定资产),真的叫软件硬件?

使用特权

评论回复
79
农民讲习所| | 2008-1-20 09:42 | 只看该作者

俺也不赞成HOT的观点

“在硬件不能变更的情况下,2种方法编出来的程序绝对是不一样的~~~”,这只是欺骗人的表面现象,只对个体有效,批量无效(概率依然存在)。
同意“软件抗干扰,作用就像安慰剂。”

使用特权

评论回复
80
古道热肠| | 2008-1-20 10:37 | 只看该作者

"软件强调容错,硬件强调抗干扰"这句话说得好

软件的抗干扰,的确应在容错上多下功能。过去整设备与PC机通讯时,出现主板原装的串口就好用,扩展PCI卡扩展出来的串口和USB转换出的串口通讯就不可靠,经常出现握手不可靠,主机收到超时信号。
  后来用上数据包的校验,并让上位机引入遇错通知下位机重发上一包的机制,下位机保存最后一包的数据的副本,等待上位机的的确认收包正确后再丢弃副本,如此一次,用57600波特率快速提取底层512K字节内容,遇到几次重发的操作,但不影响整个数据的完整和可靠性。
  体会:纯硬件的接口,比如RS232串口,RS485接口,虽然简单易用,但其可靠性非常低,必须制定好完成的协议,才能提高数据通信的可靠性。而USB,1394等接口,虽然使用复杂,但其通讯的健壮性和可靠性得到很大的提高。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则