电源和防护,远比你想的彪悍


实时性,并不是越快越好
嵌入式系统在工业控制里,实时性是个老生常谈的话题。但很多新手容易陷入主频崇拜——A核跑个Linux,上了preempt-rt补丁就敢说自己是实时系统。💡 醒醒吧,上下文切换延迟、中断延迟、内存换页……这些东西在几百微秒的苛刻cycle time下,根本藏不住。 我一般习惯把运动控制交给微控制器(MCU)跑裸机或者RTOS,而视觉检测、数据上传这些非实时的部分放在应用处理器上。比如用TI的AM335x跑Linux负责以太网和HMI,用STM32H7通过EtherCAT控制伺服,两者通过SPI或共享内存通信。这样即使Linux侧某个线程卡壳了,电机也不会抽风。 问:为什么有的系统明明单核就能干,非要用双核异构设计? 答:很简单,为了把确定性行为和非确定性行为物理隔离。举个例子,一个做激光切割的客户,之前用单核跑Linux+CoDeSys软PLC,发现偶尔会多切1毫米,就是因为linux的IO抖动。后来改用Zynq,PL里面跑裸机PWM和编码器接口,PS跑Linux做界面,问题立马消失。这不是性能问题,是架构问题。
通信协议,魔鬼藏在细节里

