CAN总线波特率设置原理与PIC18F66K80位时序解析

需积分: 45 127 下载量 184 浏览量 更新于2024-08-10 收藏 9.91MB PDF 举报
"波特率设置相关的Windows Internals Part 2(6th)无水印PDF,主要涉及PIC18F66K80系列微控制器的CAN总线通信和位时序配置" 在微控制器,尤其是PIC18F66K80系列中,波特率设置是CAN(Controller Area Network)总线通信的关键。CAN协议遵循非归零(NRZ)编码,不包含时钟信号,这意味着接收节点必须自行恢复时钟并同步到发送节点。为了实现这一点,接收器通常配备有锁相环(PLL),如数字锁相环(DPLL),用于与数据边缘同步,确保即使在节点间时钟频率存在差异的情况下,也能保持通信同步。 DPLL在位时序中起着核心作用,它将位时间划分为多个称为时间份额(TQ)的小时间周期。位时间由同步段(Sync_Seg)、传播时间段(Prop_Seg)、相位缓冲段1(Phase_Seg1)和相位缓冲段2(Phase_Seg2)组成。位时间的最小值为8个TQ,最大值为25个TQ,对应1微秒至约4微秒,这取决于标称比特率(Nominal Bit Rate, NBR)。NBR的最大值定义为1 Mbps,而最小的标称位时间是1微秒,对应于最高比特率。 比特率的调整通过波特率预分频比(BRP)和时间段内的TQ数量实现。BRP是一个可编程的整数,范围在1到64之间,它与振荡器频率(FOSC)和振荡器周期(TOSC)相结合,决定了TQ的大小。公式27-3展示了这个关系,其中FOSC是微控制器实际使用的时钟频率,BRP是二进制表示的BRGCON1寄存器的值,TOSC是振荡器周期。 例如,如果使用10 MHz的晶体振荡器在HS模式,FOSC将是10 MHz,TOSC将是100 ns。而在HS-PLL模式下,实际频率可能提高到40 MHz,TOSC相应减小到25 ns。 采样点位于位时间内的特定位置,这对于正确解码NRZ编码的数据至关重要。同步段用于检测数据的开始,传播时间段允许节点适应物理延迟,而两个相位缓冲段则提供了位时间内的灵活性,以应对时钟同步误差。 波特率设置在CAN通信中至关重要,因为它确保了不同节点间的时钟同步,从而使数据能够在总线上正确传输。理解并精确配置DPLL、BRP和TQ参数是实现高效CAN通信的基础。