原创 单片机系统可靠性设计

2008-5-17 00:51 2167 8 8 分类: MCU/ 嵌入式

1 硬件抗干扰设计



1) 选择抗干扰性能强的CPU



单片机和单片机抗干扰能力是不一样的。如果你的产品是工作在干扰比较大的环境,可以试试选用不同品牌的单片机;原来我在一个光电所,做YAG激光治疗机的控制部分,脉冲激光机的电源放电的时候,能量是很大的,在采取了所有能够想到的光电隔离等措施之后,还是不行;后来,选用了intel8031,就可以了。



现在,8031兼容的厂家是越来越多了,很多厂家号称自己的芯片怎么怎么牛。那么,当你的系统遇到被干扰的时候,可以试试看,哪些单片机抗干扰性能最强。



这也是为什么在单片机系统中,选用51的原因,可以选择替换的兼容的CPU多;



实际上,摩托罗拉的单片机的抗干扰性能要比51的好。在北美大量使用。



2) 数字量的光电隔离



开关量信号实际上有不同的信号传输方式:



1 TTL电平



2 RS232电平(非平衡信号)



3 RS485电平(平衡信号,或者差分信号)



4 电流环路(有电流或者无电流)



单片机的输入输出口线是最容易引进干扰的地方;对于不使用的I/O口线,需要使用电阻上拉到高电平,不可悬置。



直接将开关量信号接到单片机的口线上,是最不可取的设计;至少要加一个缓冲驱动的芯片隔离,而且这个芯片要跟CPU尽量近;在严重干扰的情况下,需要将所有的口线采用光耦光电隔离。



光耦隔离就是采用电流环路传输,避免在长线传输的时候,在传输线上积累高压和感应信号,使得数据紊乱甚至损坏TTL接口芯片,或者干扰单片机的正常运行。



注意,采用光电隔离是为了信号使用电流环路传输,而不是使用TTL电平传输,这意味着,从Cpu模块的角度看,开关量输出,驱动器件,如:74LS244/245/07…等等,在CPU模块这里,光耦在另外一块电路板处;开关量输入,光耦在CPU模块处,而驱动器件在另外一块电路板处;这样才能形成电流环路。数字信号的电流环路的电流一般在5mA10mA,根据光耦的指标而定。



在工业环境下与CPU模块相对独立的键盘,需要使用光耦光电隔离接入到系统中,否则极易损坏接口芯片;



3) 模拟量的光电隔离



模拟量隔离有2种方法,一种是,使用线性光耦,隔离模拟量;但是由于线性光耦的昂贵的价格,并且线性区也很窄,不推荐使用。



比较常用的办法是,,选用SPI接口,或者3线接口的AD或者DA,把数据、时钟和使能信号,使用光耦隔离。



这实际上是把模拟量的信号转换成串行的开关量的数据流传输;



还有一种是使用420mA的电流环路,但是420mA的芯片价格比较昂贵,而且电路也复杂;



4) 模拟量的通讯传输



另外一种办法,就是使用一个CPU,把模拟量读入到CPU,再通过RS485接口把数据按照通讯协议,传输到主CPU模块;当然,也可以传输开关量信号等;



实际上,这是一个分布式的测控网络的方法;多板的单片机测控系统经常使用这种方法。



5) 独立的看门狗



选用独立的看门狗作为系统复位信号产生;当系统跑飞时,由于没有喂狗,看门狗产生复位信号,使得系统可以最大限度地找回跑飞前的数据,尽可能重新开始平稳的运行。



6) 采用RS232电平传输



比如,机箱的面板显示,经常采用max7219,这时如果使用TTL电平,经常被干扰使得显示不正常;可以在发送端使用一片MAX232,将TTL电平转换成RS232电平,在面板显示电路板,选用一片MC1489,将RS232电平,转换TTL电平,加强驱动能力,就可以保证信号正确传输;



7) 采用RS422电平传输



同样,也可以在发送端,采用一片MAX485,将TTL电平转换成RS485电平,在接收端,选用一片MAX485,将RS485电平,转换TTL电平,就可以保证信号正确传输;



2、软件抗干扰设计



1) 一些文章指出,单字节指令,如SJMP就比LJMP抗干扰性能要好;



2) 在多字节指令地方加入一些单字节指令:比如NOP;这是牺牲程序空间,换取系统的稳定;



3) 在程序开始时,检查RAM,判断是上电复位还是程序跑飞了看门狗复位;最大限度争取程序重新回到跑飞的地方,不被外部察觉平稳运行。



4) 一个比较好的程序结构是避免程序进入死循环的重要方法;这是牺牲高效率的代码获得的。



5) 如果能预知干扰,比如触发一个放电设备,或者控制一个交流接触器,采用休眠+定时器唤醒的办法是实用的;这是一个有效的方法。



可以参考:



《单片机应用程序设计技术》   周航慈 北京航空航天大学出版社



3 PCB的可靠性设计



1)尽量减少过孔;



2)尽量减小PCB的面积;



3)尽量加粗线条



4、冗余设计



2倍以上的冗余量。



比如:



1 5V的电源,选用25V耐压的电容;



2 功耗1/8W的电阻,选用1/4W的电阻;



3 系统平均功耗5V/2A,选用5V/4A的开关电源等



4 光耦的电流,在数据手册额定的范围内;



5 驱动芯片带负载,如7407uln2003等,选取工作范围的一半~3/4处;



这是为了产品能够有比较长的系统寿命。



但是我也注意到,在一些国外的进口产品,往往有一些薄弱的环节。



试举一例:



在某德国进口的磁卡设备中,有一个红外发射和接收的模块,以定位磁卡的位置;使用中发现红外发射的模块经常损坏,经研究发现,红外发射二极管的限流电阻在100欧姆(大概值,时间长忘了,电源是5V),导致红外发射管经常损坏。而接收管与发射管之间的距离仅仅几个mm。我相信,这不是设计者的疏忽,而是在有意识地控制产品的寿命,以获得相应的备件和售后服务的利润。



5、其它



1)在复杂现场条件下,可以考虑,把整个CPU控制电路,采用金属机箱,做好接地;接地电阻不小于4欧姆;保证没有空间干扰的串入;



2)所有机箱对外的接口,使用光电隔离、420mA电流环路,或者平衡信号传输,没有公共的信号地;保证没有干扰由控制线路串入;



3)对于功率驱动来说,尽量采用Opto-22兼容的无触点的固态继电器,与机械继电器相比,固态继电器更加可靠,具有更快的反应速度和抗噪声功能。国外的固态继电器,



4)控制设备尽量远离执行机构;比如,控制一个交流接触器,使用固态继电器模块,将该模块放置在配电柜内;而控制设备放置在监控室。

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
8
关闭 站长推荐上一条 /3 下一条