卢斌,董书大
(湖南大学 电气与信息工程学院,长沙 410082)
LPC11Cx系列是NXP公司的高性价比Cortex-M0构架ARM微控制器产品,内嵌CAN总线控制器。CAN总线位定时参数决定CAN总线能否按给定速率正常通信及其稳定性,但在实践中发现,原版用户手册及国内译本在CAN总线位定时参数配置寄存器的表述上有误,导致用户CAN总线无法正常通信。下面将校正错误,并给出CAN总线位定时参数具体计算实例。
依据CAN总线规范,LPC11Cx系列的位时间被分成4个段:同步段、时间传播段、相位缓冲区段1和相位缓冲区段2,位时序如图1所示。

图1 位时序
图1中,每一个段包含有一个指定的、可编程的时间量子数,如表1所列。

表1 CAN总线位时间参数
表1中,时间量子tq是位时间长度的基本时间单元,tq与CAN总线控制器的系统时钟fsys可确定参数BRP,即tq=BRP/fsys。同步段SYNC_SEG是位时间的第一部分,CAN总线的边沿电平会在这里发生。传播时间段PROP_SEG用于对CAN总线网络内的物理延迟时间进行补偿。相位缓冲区段TSEG1和TSEG2包围着采样点。(重新)同步跳转宽度SJW实现对边沿相位误差作出补偿。
LPC11Cx系列CAN总线的位时间参数通过其内部的32位控制寄存器CANBT来定义及编程。CANBT寄存器的详细描述如表2所列。

表2 CAN总线位定时寄存器CANBT
请注意,表2中上标注*表示硬件把写入这些位的值理解为位值+1。NXP公司原版用户手册及国内译本还同时标注了SJW、TSEG2,说明这两项也需进行位值+1处理,但这么做得出的位定时参数无法使CAN总线正常通信。
根据表1各定时位段定义,设目标系统晶振频率为12MHz,经过LPC11Cx内部PLL锁相环电路倍频后,系统时钟频率fsys为48MHz。……