
007、采样点位置偏移与偶发位错误的关联一个让我连加两周班的偶发故障前年做一个多板卡同步采集的项目,主站通过差分总线轮询十几块从板。硬件是通用器件搭的,线缆长度大概一米出头,速率也不算激进。板子回来之后,老化测试跑了两天,出现了一个让人抓狂的现象:某一块从板的某一位,大概每几万帧会错一次。不是固定某一帧错,是随机分布。换板子、换线缆、换槽位,故障跟着其中一块板走,但概率会变。一开始所有人都怀疑是那块板的收发器焊接或者电源纹波问题。我花了三天查电源、换晶振、补焊,没有任何改善。后来把示波器差分探头直接挂在接收端引脚上,把出错的那一帧触发出来,才发现问题根本不在电气噪声上——接收端的采样点,正好卡在了数据位的跳变沿附近。那一瞬间我才意识到,我们一直在调“信号质量”,但真正的问题是采样时刻的位置偏移。这个坑让我重新梳理了一遍采样点位置和偶发位错误之间的关系。下面把这些经验拆开讲。采样点不是一个点,是一个区间很多工程师脑子里对“采样”的理解是:在某个时刻读一下电平,就完事了。实际接收端做的是:在一个位周期内,选一个时刻去判断高还是低。关键在于,这个时刻的确定方式,以及它相对于真实位边界的位置。理想情况下,采样点应该落在位周期的正中间。因为正中间离前后两个跳变沿都最远,抗抖动能力最强。但“正中间”这个位置,是接收端自己推算出来的,不是天然就对准的。推算的依据,来自帧起始的同步头、或者前导码、或者编码里内嵌的时钟信息。如果这个推算过程有偏差,采样点就会整体前移或后移。前移和后移带来的后果不对称。采样点前移,靠近当前位的前沿,容易被