CAN总线通讯出错?检查您的采样点是否设置正确

描述

1.CAN网络简介

CAN的中文是控制局域网(Controller Area Network),与1986年由德国Bosch公司为汽车开发的网络技术,主要用于汽车的检测和控制,目的是为了适应汽车“减少线束数量”和“通过多个网络进行大量数据的高速传输”的需求。


 

2.CAN网络特点

CAN网络的特点主要有以下几点:

节点之间采用多主通信的方式

采用短帧结构,数据帧为8个字节,实时性高

报文ID值越小,优先级越高

具有非破坏性的总线仲裁处理机制

有可靠的CRC校验方式,传输过程中出错率极低

具有自动重发机制

节点严重错误时,具有自动脱离总线的功能

最远通信距离可达10km(速率在5kbps一下)

通信速率最高可达1MB/s(此时通讯距离最远40m)

实际节点数可大110个

成本低


3.CAN物理层结构CAN网络的物理层组成如图1所示。CAN总线有两条传输线路,为CAN_H和CAN_L,在总线两端通常需要连接终端电阻,阻值为100-130 Ω。CAN网络采用差分电平传输数据,在ISO11898(高速CAN)中,CAN_H显性状态电压约为3.5V,隐性状态电压约为2.5V,CAN_L在显性和隐性状态下的电压则分别为1.5V和2.5V。在CAN总线上可以有许多个节点(ISO建议最大32个节点,实际最大节点数可根据收发器的负载能力进行调节),每个节点包括Host主机,CAN控制器和CAN收发器。CAN收发器主要实现二进制码流与差分信号之间的转换,CAN控制器的作用主要是用于处理来自Host主机的数据并传给CAN收发器。CAN图1 CAN网络物理层结构图

4.CAN通信原理CAN网络采用异步通信的方式,因此需要根据波特率进行采样,采样原理如图2所示。红色箭头则表示采样点的位置,图示采样得到数据则为“1010 1010”。CAN图2 CAN通信采样原理图
说到采样点,就需要引入位时间的概念。位时间是指每传输一位数据需要的时间,即位时间=1/波特率。一个位时间可以分为同步段、传播段、相位缓冲段1和相位缓冲段2,某个位时间每个段的时间份额如图3所示。CAN图3 某个位时间的时间份额组成
CAN通信中常见的采样点以及相关的参数如表1所示。不同的波特率时间对应的采样点以及位时间的份额可能不同。以波特率为500k为例,一个位时间被分成了16个时间份额,采用点在第14个时间份额。表1  CAN通信中常见采样参数CAN这里有一个问题,为什么CAN通信中,要波特率和采样点要设置成一样的呢?画个图就能一目了然。如图4所示,假设采样点提前20%,那么采样的数据就会为“0101 1010”,和之前(图2)的数据第五位就不相同了。因此,如果采样点不同,就会造成数据传输错误,传输的数据越多,累积的错误数据位就越多。所以,在进行CAN通信时,一定要将各节点的波特率和采样点设置成相同的。CAN图4 采样点提前20%的采样示意图5.软件中采样点的设置5.1在PCAN-View软件中1、打开PCAN-View软件便会有如下界面CAN我们可以看到在connect对话框中有连接选项和以下设置界面,在设置界面我们可以设置时钟频率、波特率、总线时序等,以及在“Filter setting”栏中我们可以设置过滤器条件,用于过滤报文(标准帧/拓展帧,过滤条件为报文ID范围)。2、点击“Bus Timing Register”选项框后面的三角形箭头,选择“Manage Bit rates”,进入Manage Bit rates对话框CANCAN3、选择“Add”,便可在右端对话框中输入自己想要的参数,包括标题、预分频、时间段等参数,根据我们输入的参数在下方的对话框中会实时显示对应的波特率、采样点、时间量等信息,以便于我们完成对采样点等信息的设置。CAN最后点击“OK”完成对采样点的设置。(在之后我们若是想要改变采样点,我们可以点击工具栏中的连接按钮,重新进入连接界面(“connect”界面))。
5.2 在PEAK-Explorer 5中设置采样点1、打开PEAK-Explorer 5,点击菜单栏中的“Tool”,在下拉菜单栏中选择“Nets Configuration”,进入PCAN Nets Configuration对话框CAN2、在PCAN Nets Configuration对话框中USB菜单栏下的Internet选项上单击鼠标右键,选择“New Net”,进入“Net Properties”对话框,在这你可以设置网络名称、时钟频率、波特率等信息。CAN3、点击波特率栏后的三个点,进入Manage Bit rates对话框,后续采样点的设置操作同PCAN-View中相同,这里便不再赘述。CAN以上便是通过PCAN-View和PEAK Explorer 5两个软件完成对采样点的设置,这两个软件对采样点的设置可以与波特率计算工具配合使用,可以实现更简洁的工作方式,提高工作效率。6.波特率计算工具的使用6.1选择你的波特率类型CAN如上图,可选择三种波特率类型,其分别为CAN、CAN FD、SJA-1000三种类型。CAN Bit Rate类型是用于实现对用CAN作控制器的FPGA实现的设备的波特率仲裁类型,比如PCAN-miniPCIe。CAN
CAN FD Bit Rate同CAN Bit Rate类似,唯一区别在于CAN FD Bit Rate是针对用CAN FD作控制器,比如PCAN-PCI Express FD。CAN
SJA-1000 Bit Rate类型是被用于产自飞利浦、有着8MHz的时钟频率、基于SJA-1000 CAN控制器的设备,比如PCAN-USB。6.2 输入波特率和偏移量CAN如图有两个键入框,在第一个键入框中输入要查询的波特率和它的单位;在第二个键入框中输入允许的偏移量(可选可不选),如若选择“Allow bit rate deviation”,那么就要考虑输入一个偏移度(容忍量),并且这近似的值将被列在结果中。如果没进行勾选,仅有波特率的匹配值被给出,而没有偏移量。
6.3 选择输入频率、采样点和位时间CAN如图,第一栏是让你选择一个频率去限制时钟频率,这将被用于计算波特率(至少选择一个频率)。第二栏是输入采样点范围(可选可不选),输入采样点范围是用于过滤采样结果,如果不进行勾选,将得到所有采样点结果。第三栏是选择位时间范围(可选可不选),与第二栏功能类似,区别在于第三栏是基于位时间范围来过滤所得结果。如果不进行勾选,将得到所有位时间结果。6.4 点击开始计算,得出所要结果CAN在结果中我们可看到,上面的框中显示我们已选择的设置,下面的框中显示计算结果。另外就是在整个流程中我们并没用到的按键,其对应的功能分别如下CAN不同设备之间要实现准确无误的通信,波特率匹配是很重要的条件。波特率计算工具将简化这一计算过程,避免了繁琐而又复杂的公式计算,熟练掌握这一工具的使用,将大大提高我们的工作效率,降低人工计算的错误率。
 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐
  • 热点推荐
  • CAN

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分