0 卖盘信息
BOM询价
您现在的位置: 首页 > 电子资讯 >业界动态 > CAN特殊波特率如何计算与控制器的选择

CAN特殊波特率如何计算与控制器的选择

2017-08-25
类别:业界动态
eye 311
文章创建人 拍明

  CAN总线采用的是异步串行通信,也就是没有单独的时钟线来保证各个收发器之间时钟的一致,每个收发器是按事先设置的波特率来对总线上的电平进行分位。因此波特率设置准确对CAN总线的稳定通信来说非常重要。

  CAN总线里我们可以通过对CAN 节点里的位定时寄存器的控制来实现不同波特率的通信。CAN协议里将一个位时间分为同步段、传播段、相位缓冲段1和相位缓冲段2。每个段的时间长度都可以用一个整数的基本时间单位表示,该基本时间单位由系统的时钟振荡器分频得到。

  同步段位于一个位的起始位置,CAN-bus规定跳变沿为同步信号,但是发送节点发送一个位跟接收节点接收到这个位之间存在网络传播延迟,传播段则是为了补偿这段传播延迟,由于采样点位置在相位缓冲段1跟相位缓冲段2之间,通过设置相位缓冲段1和相位缓冲段2的值,可以调整采样点位置,保证每个位采样点一致。缓冲段的长度调节范围则是由同步跳转宽度(SJW)决定。

CAN位时间结构图.png

  图 1 CAN位时间结构图

  简单的了解了CAN总线位时间的分段后,我们来看看一个节点的波特率到底要如何设置。如图2是某ARM内核的CAN位时间特性寄存器 (CAN_BTR)。

某ARM内核位时间特性寄存器结构图

  图 2 某ARM内核位时间特性寄存器结构图


  SILM(静默模式)跟LBKM(回环模式)用于调试;


  SJW:同步跳转宽度;

  TS2/TS1:位时间里两个时间段的分配;

  BRP:波特率分频器,该区域定义了基本时间单元的长度;

  例如某著名车厂CAN通信标准里规定,通信速率为125 kbps时,应该采用单次采样,采样点位置设置在70%~77%之间。其位定时参数取值可见表1与表2。

LS_CAN通信速率与采样点参数.png

  表 1 LS_CAN通信速率与采样点参数

LS_CAN可选时间份额与同步跳转带宽.png

  表 2 LS_CAN可选时间份额与同步跳转带宽

  采样点:采样点不能太靠前也不能太靠后,否则如果刚好处于一个位的上升沿或者下降沿区间,会造成识别错误,所以根据CIA105的规范,采样点在87.5%左右比较合适。但是一般我们可根据实际情况选取75%~85%之间;

  同步跳转宽度(SJW):SJW的值直接影响到重同步时相位缓冲段的可调节的范围,SJW的值可以在1~4之间选择,我们选择3、4可以使总线获得更宽的波特率容忍度;

  采样次数:分为单次采样跟三次采样,三次采样在设计之初虽然是为了过滤掉总线上毛刺,但是采用三次采样经常会影响SJW的跳转,所以实际应用中我们一般都会采用单次采样。

  了解设置波特率的原则后,我们采用ZLG的波特率计算软件,对25kbps波特率的设置参数进行计算,计算结果如图3。

25kbps波特率计算参数.png

  图 3 25kbps波特率计算参数

  根据上面提到的原则,我们选取采样点为75%,SJW为4,时间份额为14的一组参数,采用ZLG的CAN卡做验证。

  l自动波特率识别:采用CANScope自动侦测波特率的功能,对CAN卡的波特率进行识别,识别结果为25kbps;

自动侦测波特率.png

  图 4 自动侦测波特率

  l采样点测试:采用CANScope对当前波特率下CAN卡的采样点进行测试,测试结果为75%;

采样点测试.png

  图 5 采样点测试

  l位宽容忍度测试:采用CANScope对当前波特率下CAN卡进行位宽容忍度测试,测试其对波特率的容忍度情况,测试结果为24kbps~26kbps,容忍度情况较好;

位宽容忍度测试.png

  图 6 位宽容忍度测试

  l位时间测试:用CANScope的眼图功能对当前波特率下CAN卡进行位时间测试,位时间为40us,与25kbps波特率的位时间相符。

眼图测试位时间.png

  图 7 眼图测试位时间

  通过对波特率计算器计算出来的波特率寄存器设置参数进行验证,发现测试结果跟我们的预期结果一致,因此在使用特殊波特率时,我们可以借助波特率计算器来快速计算出位定时寄存器的参数值。下面我们给出一些可参考的特殊波特率的参数:

CAN控制器的选择.png

  CAN控制器的选择


  1.Intel 82527 CAN控制器

  *支持CAN2.0,包括标准的和扩展的数据和远程帧;

  *可程控全局屏蔽,包括标准和扩展信息标识符;

  *具有15个报文缓冲区,每个数据长度为8字节,包括14个TX/RX缓冲区,一个带可程控屏蔽的RX缓冲区;

  *可变CPU接口,包括多路8位总线(Intel或Motorola方式)、多路16位总线、8位非多路总线(同步/异步)以及串行接口;

  *位速率可程控,并有可程控的时钟输出;

  *可变中断结构;

  *可对输出驱动器和输入比较器结构进行设置;

  *两个8位双向I/O口;

  *44脚PLCC封装,引脚与82526兼容。

  Intel 82527控制器芯片是Intel公司Intel 82526 CAN控制器芯片的替代产品,也是支持CAN规范2.0B标准和扩展报文格式的第一个CAN控制器芯片。Intel 82527具有一个功能强大的CPU接口,它可以直接接口至不同的CPU,并可以配置为16位分时复用的地址/数据总线接口,使其可以更充分的利用16位或32位CPU的强大功能。此外,当不需要并行CPU接口时,82527提供了灵活有效的串行接口进行通讯。

  82527提供功能强大的15个每个8字节数据长度的报文缓冲区。除最后一个报文缓冲区外,每个报文缓冲区都可以配置为发送或接收,最后一个缓冲区为一个仅具有特定屏蔽设计的报文接收缓存器,以允许选择不同的报文标识符组进行接收。82527同时提供实现报文滤波的全局屏蔽性能,可以全局性的屏蔽到来报文的任何标识符,可编程的全局屏蔽性能适用于标准的和扩展的两种报文格式。

  82527的CAN控制器通过在片双口RAM与微控制器进行数据交换。微控制器将要传送的数据信息,包括数据位组长度、标识符、数据传输方向、数据帧或远程帧等包装成多达15的通讯目标送人双端口RAM,82527可以自动完成这些通讯目标的传送。

  2.Philips SJA1000 CAN控制器

  *支持CAN2.0,包括标准的和扩展的数据和远程帧

  *位速率可程控,并有可程控的时钟输出;

  *扩展的64字节FIFO接收缓冲器;

  *4个字节的验收滤波器;

  *时钟频率提高到了24MHz;

  *输出驱动器状态可编程;

  *可擦写的总线错误计数器;

  *当前错误代码寄存器;

  *仲裁丢失捕获寄存器;

  *28脚DIP/SO封装,引脚及电器特性与82C200兼容。

  Philips SJA1000是Philips公司于99年推出的全新CAN控制器芯片,用来取代以得到广泛使用的82C200 CAN控制器芯片。Philips SJA1000在82C200的基础之上增加了一些新的特性,为采用SJA1000 CAN芯片进行DeviceNet 接入产品设计的用户提供了方便和更大的灵活性。

  SJA1000的64字节FIFO接收缓冲器使网络设备可以接收更多的报文而不会因为接受缓冲区太小而拒收报文,同时SJA1000采用了4个字节的验收滤波器,可以对DeviceNet报文的整个报文头部进行接收前的检验。

  SJA1000在总线错误管理上比起82C200也有很多改进,SJA1000设有可进行读写操作的错误计数器,增加了错误认可中断和可编程的错误警告中断,并提供了当前错误代码寄存器以标记错误发生的类型、状态和位置。

  针对DeviceNet的特点,SJA1000提供了一种仅听模式,使DeviceNet节点的自动波特率检测和热插拔通过软件更为容易得到实现。SJA1000还增加了仲裁丢失中断,通过仲裁丢失捕获寄存器可以获得仲裁丢失的位置。图1是SJA1000的功能方块流图。

  其中CAN核心模块根据CAN总线协议控制数据帧的发送和接收;接口管理逻辑模块提供SJA1000与主微处理器或其它设备的连接,主微处理器可以通过数据/地址复用总线和读写控制逻辑访问SJA1000的所有寄存器;发送缓冲区可以存储一个完整的标准或扩展的报文,当主微处理器要求SJA1000发送报文时,接口管理逻辑操纵CAN核心模块将发送缓冲区中的报文发送到CAN总线上;当接收一个报文时,CAN核心模块首先将总线上的串行位流数据转换位并行数据,然后交给接收过虑模块进行识别,决定该报文是否为主微处理器所要求的报文类别,所有接收的报文可以存放在接收先进先出队列,根据不同的工作模式和数据长度,该队列可以存放最多32个报文,然后用户可以灵活地对报文分为不同地优先级和中断处理服务。

  SJA1000可直接连接两类主要的处理器家族:Intel公司的80C51系列和Motorola公司的68xx系列,其芯片外围专门有一个模式管脚用了选择CPU的类型。SJA1000提供了8位地址/数据复用总线和读/写控制信号与CPU交换数据,我们可以将SJA1000看作映射到主微处理器的外围存取器I/O设备。SJA1000与80C51系列微处理器地典型应用如图2所示:

  SJA1000通过2个8位寄存器来支持对报文的过滤功能,将应用不关心的报文拒之门外将提供处理期的性能,因为大多数应用都是通过中断的方式交换数据,所以正确的使用过滤功能可以为中断处理函数赢得时间。SJA1000提供一个接收编码寄存器(Acceptance Code Register)和一个接收屏蔽寄存器(Acceptance Mask Register)。接收过滤模块将CAN报文的11位标识符的高8位于这2个寄存器里存放的值相比较,并作出是否接收的判断,其在基本模式(BasicCAN Mode)下工作原理如图3所示:

  假设接收编码寄存器ACR和接收屏蔽寄存器AMR的值如下表所示:


  SJA1000屏蔽过滤器


  SJA1000与Intel微处理器典型应用

  在接收屏蔽寄存器中值为1的位表示接收的CAN报文相应的位可以为1或者0,这样的设置情况下,用X表示的位不用关心,只要其它位与接收编码寄存器相应的位一致就行了,因此CAN控制器可以接收64中不同的报文。

  SJA1000基本模式接收过滤

  3.CAN总线收发接口电路芯片Philips 82C251

  Philips 82C251是Philips公司于98年推出的CAN总线收发接口电路芯片。和以前的82C250相比,82C251具有25V过压保护的功能,在工艺上有也有一些改进。

  对于CAN控制器及带有CAN总线接口的器件,CAN总线收发接口电路芯片并不是必须使用的器件,因为多数CAN控制器均具有配置灵活的总线收发接口,并允许总线故障,只是驱动能力一般只允许20个左右的节点连到同一条总线上,而82C250/82C251支持多达110个节点,并且能够以1Mbps的速率工作于恶劣的电气环境下。利用CAN总线收发接口电路芯片还可以方便的在CAN控制器与收发器之间建立光电隔离,从而实现总线上各节点之间的电气隔离。

  DeviceNet正是利用CAN控制器的(如INTEL82527,Philips SJA1000)的双相位输出方式,通过设计适当的接口电路,实现了网络供电的功能。作为提供对CAN总线的差动发送和接收功能的器件,82C251的主要特性如下:

  *与ISO 11898标准完全兼容;

  *高速性(最高可达1Mbps);

  *具有抗瞬时干扰,保护总线的能力;

  *降低射频干扰的斜率控制及热保护;

  *总线与电源及地之间的短路保护;

  *25V的过压保护功能;

  *低电流待机方式和掉电自动关闭输出;

  *支持多达110个节点相连接。

  DeviceNet通过24V的直流电源进行网络供电,由于82C251所具有的25V过压保护功能,可以避免接线错误对设备带来的损坏。因此我在DeviceNet节点设计时采用了82C251。

  对于市场上众多的CAN芯片和微处理器,在DeviceNet的开发中没有一个通用的选用方案,下面我们给出一些基本的准则:

  *所有使用11位标识符的CAN芯片都可以使用,DeviceNet对于29位长标识符即不要求也不能使用。

  *对于仅支持Group2的设备,CAN控制器的基本工作模式有很好的性能。并且,DeviceNet协议对仅支持Group2的设备的通讯协议为基本工作模式作了优化。

  *CAN有两种形式,独立式控制器和嵌入式控制器。使用嵌入式控制器可以减小电路设计的尺寸,但是我们推荐该种控制器仅仅用在某些局部的场合,当满足我们所有开发的需求时。选用独立式控制器允许设计时充分的灵活性。另外在决定选择何种CAN控制器之前,还可以考虑一些有关微处理器的仿真芯片及其功能。

  *每个设备都需要有一个区别于其它厂商和区别同一厂商生产的其它设备的32位唯一系列号。因此设备可能要引入Non-Volatile,另外如果需要可设置的参数,那么必须要Non-Volatile存储。

  *要特别注意当CAN重置和上电时CAN_H和CAN_L的状态。因为CAN控制器有可能会出现电压漂移或者总线电位不对。因而在实际设计时在TxD脚和收发器之间加上无源推拉电路或者变极器来增强信号抗干扰能力。

  *不用的管脚(RX0或者RX1)不能处于漂移状态,可以把它们接到收发器的Vcc/2或者使用电压分频器,防止错误帧的产生。尽管有些CAN控制器可以通过寄存器设置来使某些管脚无效,但最保险的做法是让这些管脚处于正确的电位。


责任编辑:Davia

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

标签: CAN控制器

相关资讯