2.3 位时序与采样点:同步的算术 本节摘要:本节是物理层的收束节——电平与拓扑都正确之后,比特能否被正确识别还取决于采样时刻。本节把位时间切成分段模型,讲清各段职责与参数计算,并回答一个高频面试题与排错题:采样点为什么通常放在七成五到九成之间。本节也是第4章位错误机制的前置。 把位时间切开看,CAN的每一段比特不是铁板一块,而是被划分成若干时间份额,不同份额承担不同职责。理解这个分段模型,就理解了CAN如何在各自晶振都有偏差的节点之间维持同步——没有一根时钟线连接所有节点,同步完全靠协议在位边界上的巧妙安排。这笔时间账算得越清楚,后面遇到"换晶振就出错""速率上不去"一类问题时就越有底气。 把位时间切开看 一个位时间被划分成四段。同步段固定为一个时间份额,期望中的位边界就落在这里;
本节摘要:本节是物理层的收束节——电平与拓扑都正确之后,比特能否被正确识别还取决于采样时刻。本节把位时间切成分段模型,讲清各段职责与参数计算,并回答一个高频面试题与排错题:采样点为什么通常放在七成五到九成之间。本节也是第4章位错误机制的前置。
把位时间切开看,CAN的每一段比特不是铁板一块,而是被划分成若干时间份额,不同份额承担不同职责。理解这个分段模型,就理解了CAN如何在各自晶振都有偏差的节点之间维持同步——没有一根时钟线连接所有节点,同步完全靠协议在位边界上的巧妙安排。这笔时间账算得越清楚,后面遇到"换晶振就出错""速率上不去"一类问题时就越有底气。
一个位时间被划分成四段。同步段固定为一个时间份额,期望中的位边界就落在这里;传播段补偿信号在物理线路上的往返传播延迟——总线越长、节点越多,这段越长;两个相位缓冲段夹着采样点,采样点之前的相位缓冲段可以伸长、之后的可以缩短,用于追赶或等待实际到达的位边沿。同步段加传播段加两个相位缓冲段,构成完整位时间,典型配置为八到二十五个时间份额。
时间份额本身是晶振周期的整数分频。举例:晶振八兆赫兹,预分频取四,则时间份额为零点五微秒;若一个位时间取十六个时间份额,位速率为每秒五百千比特——这正是动力CAN最常用的速率组合。

节点如何让自己的位边界对齐总线?CAN给出两套机制。硬同步用在帧起始:帧首的下降沿到来时,节点直接把位边界重置到该沿——每帧开头都强制对表一次。重同步用在帧中:采样点之后若侦测到位跳变沿,控制器计算偏差,在同步段重同步宽度允许的范围内伸长或缩短当前位——相当于微调表针。同步段重同步宽度规定了单次调整的上限,通常取一到四个时间份额,太大容易被噪声带偏,太小跟不上晶振漂移。
这套机制的容错上限由晶振质量决定。协议要求节点时钟容差在千分之零点五上下(精确值还与相位缓冲段配置相关),普通石英晶振轻松满足,而廉价陶瓷谐振器可能踩线——这就是为什么车规节点一律用晶振不用谐振器。两个劣化因素叠加要格外小心:温度极限下的晶振漂移加上位时序参数的激进配置,会在整车高低温试验里以错误帧的形式现形。
采样点放在哪里,本质是三类矛盾的折中。采样点靠后(九成附近),留给信号在全网传播与稳定的时间更长,容忍更长的总线与更多的节点,但为采样后到下一位边沿预留的处理时间变短;采样点靠前(七成五附近),处理时间充裕、对晶振偏差更宽容,但要求传播延迟小、线路短。工程惯例因此形成:五百千比特的动力CAN采样点常设在八成七点五附近,一百二十五千比特或更低速的CAN设在八成七点五上下浮动,低速率车身总线甚至放行八成。
参数怎么算?以每秒五百千比特、晶振八兆赫兹为例走一遍:目标位时间为二微秒;取预分频四,时间份额零点五微秒,位时间需十六个份额;按八成七点五采样点,采样点前应为十四个份额——同步段一、传播段六、相位缓冲段七;采样点后两个份额给相位缓冲段二。检查传播段的物理合理性:六个份额共三微秒,要覆盖信号在最远两点间的往返传播,铜线内信号速度约每米五纳秒量级,三微秒对应数百米的总线路预算,整车完全够用。若换成十六兆赫兹晶振,预分频改八可得到同样参数——这也解释了为什么不同供应商的控制器能同网工作:位时间按份额归一化后,晶振频率只要整除关系合理即可。
背景:某适配项目中,新节点用每秒五百千比特接入动力CAN,却持续发出错误帧,拆掉新节点总线立刻恢复。操作:用示波器对比新旧节点的发送,发现总线报文位边界清晰;查看新节点配置,采样点被设为六成二——开发人员沿用了低速总线的模板参数。结果:六成二的采样点落在信号尚在穿越迟滞带的位置,边沿稍有抖动即采样出错,节点不停检测到位错误、不停发错误帧;而它的错误帧又干扰了别人的接收,形成"一个参数错误、全网陪绑"的局面。解读:采样点不是性能参数而是兼容性参数——同一总线上的所有节点不需要采样点严格相等,但必须都落在信号稳定区内;偏差过大者成为错误源。变式:若现场无法看波形,可以先用厂商工具读出各节点采样点配置再统一规划,这比盲目换晶振、换收发器有效得多。
位时序的传播段预算,决定了速率与总线长度的跷跷板关系。速率越高,位时间越短,可分配给传播延迟的份额越少,允许的总线长度就越短:经典速率下几十米余量充足,到了FD数据段的每秒两兆,预算就压缩到二三十米量级,再往上走,拓扑长度成为第一个天花板。这解释了为什么高速段总出现在区域控制器附近——区域架构把物理距离缩短,恰好为高速率腾出了预算空间,架构演进与时序预算在这里互相成全。
工程上估算长度上限有个粗算法:传播段的时间份额除以每米往返延迟,得到可用米数;再对节点数、支线长度、晶振偏差留出余量,通常取算术上限的六成。粗算之后必须用示波器验证——纸面预算与实车波形之间,隔着线束工艺、温度与老化的全部现实。第5.1节的FD提速实践,就是把这道题重新算一遍的过程。
另一个常见疑问是不同速率能否共存于一条总线:仲裁段速率全网必须一致,这是硬约束;FD数据段速率也要求全网统一配置,不允许逐节点自定。所谓"混速",指的是同一网络上FD帧与经典帧并存,而不是同一帧内各节点各用各的速率。把这两个概念分清,能避开大量无效争论。
至此物理层三要素——电平、线路、时刻——全部到位。下一章进入数据链路层:比特如何组装成帧,多个节点如何在共享线路上分配发言权。