目录
如果有不懂的问题可在评论区点赞后留言,我将一一解答。
6.3 PCS 规范
6.3.1 位编码/解码
6.3.1.1 位时间
在位时间框架内执行的总线管理功能,如 CAN 节点同步行为、网络传输延迟补偿和采样点定位,应当由 CAN 实现的可编程位定时逻辑给出。
支持 FD 的实现应当支持两种位速率,名义位速率和数据位速率。不支持 FD 的实现限于经典 CAN 规定的名义位速率。对于第二种位速率,即数据位速率和数据位时间的定义,需要一个单独的配置寄存器集。数据位时间应当与名义位时间具有相同的长度,或者比名义位时间短。
数据位时间仅应用于 FD 帧的数据阶段。数据阶段应当从检测到隐性 BRS 位的采样点开始。此数据阶段应当在到达 CRC 分隔符的第一个采样点或 CAN 实现检测到导致开始错误标志 (EF) 的错误条件时结束。数据阶段之外的部分应当是仲裁阶段。所有经典帧、错误标志 (EF)、过载帧 (OF)、空闲时间以及 FD 帧中具有显性 BRS 位的所有部分均属于仲裁阶段。名义位时间应当在仲裁阶段使用。位速率应当在检测到隐性 BRS 位的采样点从名义位速率切换到数据位速率。位速率应当在到达 CRC 分隔符的第一个采样点或检测到错误条件时从数据位速率切换回名义位速率。当因检测到错误条件而进行位速率切换时,切换时间应当在采样点之后移动,不超过两个时间量子;参见图 5.29 和图 15.30。
注释:由于位速率在 BRS 位和 CRC 分隔符位的采样点进行切换,这两个位的长度是介于两者之间的。BRS 位和 CRC 分隔符位的长度之和等于名义位时间和数据位时间的一个位的长度之和;参见图 6.1。
-
总线管理功能:在位时间框架内执行的总线管理功能,如 CAN 节点同步、网络传输延迟补偿和采样点定位,是由 CAN 实现的可编程位定时逻辑来完成的。
-
位速率:支持 FD 的 CAN 实现支持两种位速率:
- 名义位速率:这是经典 CAN 规定的基本位速率。
- 数据位速率:这是 FD 帧中数据阶段使用的位速率,可以比名义位速率高。
-
数据位时间:数据位时间是指数据位速率下的位时间长度。数据位时间可以与名义位时间相同或更短。
-
数据阶段:数据阶段是指 FD 帧中使用数据位速率的部分,从检测到隐性 BRS 位的采样点开始,直到 CRC 分隔符的第一个采样点或检测到错误条件时结束。
-
仲裁阶段:除了数据阶段外的所有时间,包括经典帧、错误标志 (EF)、过载帧 (OF)、空闲时间以及 FD 帧中具有显性 BRS 位的部分,都属于仲裁阶段。在仲裁阶段使用名义位速率。
-
位速率切换:位速率在检测到隐性 BRS 位的采样点从名义位速率切换到数据位速率,在到达 CRC 分隔符的第一个采样点或检测到错误条件时从数据位速率切换回名义位速率。
PCS 子层负责位编码/解码,并且支持位速率的切换。对于支持 FD 的 CAN 实现,PCS 子层支持两种位速率:名义位速率和数据位速率。数据位速率用于 FD 帧的数据阶段,而名义位速率用于仲裁阶段。位速率的切换发生在 BRS 位和 CRC 分隔符位的采样点,这使得 CAN 网络能够在数据阶段利用更高的位速率来提高数据传输效率。
时间量子 (Time Quantum)
时间量子是从节点时钟周期导出的固定时间单位。至少存在一个可编程的预分频器,其整数值范围至少从 1 到 32。最小的时间量子长度为一个节点时钟周期。时间量子的长度定义如下:
- 对于名义位时间,时间量子的长度为:
- 对于数据位时间,时间量子的长度为:
其中 m(N) 和 m(D) 是预分频器的值。有两种实施选项:
- 使用两个独立的预分频器,一个用于名义位时间 m(N)),另一个用于数据位时间 m(D))。
- 使用一个共享的预分频器,此时m(N)=m(D)。
使用两个独立的预分频器可以设置不同长度的时间量子 (time quantum(N) 和 time quantum(D))。使用共享预分频器时,time quantum(N) 和 time quantum(D) 具有相同的长度。
位时间的长度取决于时间量子的长度和位中时间量子的数量。如果不同的参数组合导致相同的位时间长度,应当使用具有较短时间量子的组合。
不支持 FD 的实现仅限于基于time quantum(N) 的名义位时间。
位速率和位时间
位速率给出了理想发送器在没有重新同步的情况下每秒传输的位数。位速率与位时间的关系为:
nominal bit time = 1/nominal bit rate
data bit time =1/data bit rate
每个位时间由不重叠的时间段组成。这些时间段形成了位时间,如图 6.1所示。
-
定义:时间量子是从节点时钟周期导出的固定时间单位。最小的时间量子长度为一个节点时钟周期。
-
预分频器:预分频器用于调整时间量子的长度。预分频器的值决定了时间量子的长度,从而间接决定了位时间的长度。
-
实施选项:有两种实施选项,一种是使用两个独立的预分频器,另一种是使用一个共享的预分频器。使用独立预分频器时,可以为名义位时间和数据位时间设置不同的时间量子长度。使用共享预分频器时,名义位时间和数据位时间具有相同的时间量子长度。
-
位时间的长度:位时间的长度取决于时间量子的长度和位中包含的时间量子的数量。如果不同的参数组合得到相同的位时间长度,应当选择时间量子较短的组合。
位速率和位时间
-
位速率:位速率给出了理想发送器在没有重新同步的情况下每秒传输的位数。位速率与位时间成反比关系。
-
位时间:位时间由不重叠的时间段组成,这些时间段构成了名义位时间和数据位时间。
时间量子是从节点时钟周期导出的固定时间单位,用于定义位时间的长度。位时间由不重叠的时间段组成,并且位时间的长度取决于时间量子的长度和位中时间量子的数量。对于支持 FD 的 CAN 实现,可以使用两个独立的预分频器来为名义位时间和数据位时间设置不同的时间量子长度。位速率给出了理想发送器在没有重新同步的情况下每秒传输的位数,位速率与位时间成反比关系。
图6.1 标称比特时间段和数据比特时间段
同步段 (Sync_Seg)
同步段 (Sync_Seg)