例如某著名车厂CAN通信标准里规定,通信速率为125 kbps时,应该采用单次采样,采样点位置设置在70%~77%之间。其位定时参数取值可见表1与表2。
表 1 LS_CAN通信速率与采样点参数
表 2 LS_CAN可选时间份额与同步跳转带宽
采样点:采样点不能太靠前也不能太靠后,否则如果刚好处于一个位的上升沿或者下降沿区间,会造成识别错误,所以根据CIA105的规范,采样点在87.5%左右比较合适。但是一般我们可根据实际情况选取75%~85%之间;
同步跳转宽度(SJW):SJW的值直接影响到重同步时相位缓冲段的可调节的范围,SJW的值可以在1~4之间选择,我们选择3、4可以使总线获得更宽的波特率容忍度;
采样次数:分为单次采样跟三次采样,三次采样在设计之初虽然是为了过滤掉总线上毛刺,但是采用三次采样经常会影响SJW的跳转,所以实际应用中我们一般都会采用单次采样。
了解设置波特率的原则后,我们采用ZLG的波特率计算软件,对25kbps波特率的设置参数进行计算,计算结果如图3。
图 3 25kbps波特率计算参数
根据上面提到的原则,我们选取采样点为75%,SJW为4,时间份额为14的一组参数,采用ZLG的CAN卡做验证。
l自动波特率识别:采用CANScope自动侦测波特率的功能,对CAN卡的波特率进行识别,识别结果为25kbps;
图 4 自动侦测波特率
l采样点测试:采用CANScope对当前波特率下CAN卡的采样点进行测试,测试结果为75%;
图 5 采样点测试
l位宽容忍度测试:采用CANScope对当前波特率下CAN卡进行位宽容忍度测试,测试其对波特率的容忍度情况,测试结果为24kbps~26kbps,容忍度情况较好;
图 6 位宽容忍度测试
l位时间测试:用CANScope的眼图功能对当前波特率下CAN卡进行位时间测试,位时间为40us,与25kbps波特率的位时间相符。
图 7 眼图测试位时间
通过对波特率计算器计算出来的波特率寄存器设置参数进行验证,发现测试结果跟我们的预期结果一致,因此在使用特殊波特率时,我们可以借助波特率计算器来快速计算出位定时寄存器的参数值。下面我们给出一些可参考的特殊波特率的参数: