本周的垂直应用主题为功能安全,学习链接为
https://www.stmcu.com.cn/ecosystem/app/function-safety
STM32有很多内置的安全属性硬件,比如看门狗、片上SRAM的校验等,一个合格产品的量产必须要考虑到功能的安全问题,但是又难免留下Bug等隐患,除了工程师自身的技术实力水平外,还需要硬件安全属性来保护,也可以通过安全设计包来加强代码的保护。基于内置的MCU安全属性的功能安全设计包,ST为厂商提供了全套的认证软件库和文档,较少了安全认证的开发成本,缩短了开发时间。
这张示例图很好的表达了目前ST的各个系列MCU的内置安全属性,像带ECC的SRAM也终于出现在H7系列中。
这次我侧重点学习了一下AN1015文档中所表述的关于如何提高为控制EMC性能的软件技术。因为目前我所设计的产品,有很多是用在工业环境中,遇到的强磁辐射等干扰还是很多。电磁兼容干扰所引起的问题需要在电磁兼容系统中尽早加以考虑。EMC干扰引发的问题有很多,比如单片机没有反应、程序计数器跑飞了、IO口不受控制等。看门狗是最有效的工具,可以确保MCU的恢复,但是在运用过程中也要加以小心,绝对不能把看门狗放在中断中,因为程序一旦跑飞,中断可能还在工作,看门狗就无法复位了。在电源上也有启动复位和低压复位,在硬件的稳定性上尽可能的保护代码稳定的运行。
下面视图就不是一个很好的使用看门狗的例子
正确的看门狗使用方法如下:
保护未使用的程序内存区域,也是提高EMC的一种方法。
在大多数应用程序中,程序内存空间不是完全由用户代码填充的,安全起见,最好用代码填充未使用的内存区域,如果程序计数器跑飞,跳转到这片未使用的区域,那后果将不堪设想。
为了避免意外的中断事件引起的问题,建议通过一个有效的中断来管理所有可能的中断源。
AN1015文档建议大家都下载下来细细品读一下,收获颇丰,在一个合格的产品中离不开这些声影。所以只做个合格的程序员是不够的,在软硬件的安全以及抗干扰上的处理上能面面俱到,才是一个合格的工程师。
最后附上AN1015文档
en.CD00004037.pdf
(342.1 KB)
|