这个的看产品的定位了
至于单片机抗干扰的问题我有小小的看法
一:硬件设计
1·硬件的精简性,我的一直反对复杂繁琐的硬件设计,一直采用最精简的系统来实现功能,只要能达到目标性能能少用器件绝对就要省掉。少一个部件就降低了很多出故障的几率,同时也少了layout的繁琐,也少了干扰源的产生与耦合。
2·比较重视系统电源的稳健性,但是不会过多的去设计使用一些隔离电源之类的器件。而是在开关电源的器材品性上着手,在滤波上着手,特别是针对dcdc电源的layout工作我会花比较多的时间去细究每一个回路的电流。当然在layout中需要注意一些方式让你的滤波器件发挥他最大的作用。有了一个稳健的电源系统,想必已经成功了一半。
3·地的处理,这是我一直很注意的一个问题,一个干净的地会给我一个更舒适的休息时间。
4·一些看门狗之类的使用。在这个问题上,说实话我还就没有用过看门狗。但我一般都会使用一个带电压检测的复位芯片,因为在一些应用中发现有些芯片内部的复位功能并不是很好用。至于有人会说怎么不用看门狗,我的一个概念:看门狗是对自己产品的不信任,看看门狗是对问题处理的一种妥协处理。
5·对外io的一些处理,在对外io上我喜欢放置一些尖峰脉冲的吸收电路已使脉冲干扰对cpu的扰动降到最低,比如一些tvs和压敏电阻,这些的反映速度都不够快,其实在这里安规的吸收速度是很合适的。对一些特殊的PCB甚至我直接在layout工作中用铜来做一些锯齿的放电吸收电路配合着电容的使用效果还是很明显的。对io的保护就的隔离了。这些做法都的看是那一类的产品,定位而具体采用了。
6·系统及的隔离与屏蔽,这主要针对一些复杂的模数混合电路,以及与射频的混合电路了。这个的靠一些实战的经验了吧。对于模数的混合电路我一般比较注意共地的处理,跨地线信号的处理。射频不管他的线屏蔽起来在说了。
7·layout的工作特别的重要,PCB是一座坚固的桥架,如果这里有问题了那就不用考虑桥上是否可以安全的通行了。
二:软件设计
1·软件的健壮性。这主要是指软件的运行健壮性,就是不要有一些逻辑漏洞或者逻辑bug。在软件的编写上养成一个自己的良好的风格,对这个问题是比较有帮助的。
2·软件对io的一些处理,特别是对输入,一般我喜欢用状态机来处理io的输入来判断是否属于真实的操作还是误动作。
3·我一般喜欢使用一些超时的错误判断=这些东西,并把错误标识放到一起让错误处理机制去处理他,而很多时候并不是由产生错误的程序去处理错误。除非是会是系统崩溃的错误。
4·MCU资源的利用。充分的利用MCu的资源,发挥他的性能。比如很多mcu复位后都可以检测他的复位标志,到底是什么东西让他复位的,在不增加成本的情况下存储它,或者让自己知道,这不就增加了自己对自己产品的了解了吗。比如一个产品具有通信功能,能和自己的一个中心通信,何尝不把这些状态在每次复位或者运行中发送给自己的服务器呢。
个人感言哈!都是框架性的感言。 |