023、帧间隔期间总线活动引发的协议违例那个凌晨三点的波形前年做一套分布式采集系统,主站和从站之间用差分总线跑自定义轮询协议。实验室调试一切正常,拉到现场跑了不到四小时,主站开始间歇性报协议违例,从站离线。抓波形一看,帧间隔里出现了不该有的窄脉冲,宽度大概几十纳秒,正好落在从站准备切换收发方向的窗口里。当时第一反应是电磁干扰。加了共模扼流圈、换了屏蔽双绞线、调整了终端匹配,折腾两天,故障率从四小时一次变成六小时一次,没根治。后来把触发条件改成"帧间隔内出现任何边沿"才抓到真相:不是干扰,是主站侧一个收发器的使能信号关断太慢,在总线上拖出了一个尾巴。这个坑让我重新理解了帧间隔——它从来不是"总线安静"的同义词。帧间隔到底在发生什么协议层定义的帧间隔,通常只规定了"上一帧结束到下一帧开始之间必须留出至少多少时间"。但物理层在这段时间里做的事情,协议文档基本不提。发送端要做的事:最后一个位的电平保持、驱动器关断、内部状态机复位、下一帧的发送缓冲准备。接收端要做的事:最后一位采样、校验计算、接收状态复位、准备重新同步。这两侧的动作不是同时完成的,中间存在一个双方都"半睡半醒"的窗口。问题就出在这个窗口。如果发送端驱动器关断时输出阻抗变化,或者总线上还有残余电荷,或者某个节点的收发器使能控制有延迟,总线电平就会在这个窗口里发生非预期的跳变。接收端的边沿检测电路可不管这是不是"合法"的帧,它只认电平变化。三种典型的帧间隔总线活动第一种是驱动器关断拖尾。发送完最