一文了解CAN总线(概述/特点/结构/原理/采样点设置)

今日头条

1191人已加入

描述

1.CAN网络简介

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

2.CAN网络特点

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

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

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

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

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

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

具有自动重发机制

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

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

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

实际节点数可大110个

成本低

3.CAN物理层结构

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收发器。

4.CAN通信原理

CAN网络采用异步通信的方式,因此需要根据波特率进行采样。红色箭头则表示采样点的位置,图示采样得到数据则为“1010 1010”。

说到采样点,就需要引入位时间的概念。位时间是指每传输一位数据需要的时间,即位时间=1/波特率。一个位时间可以分为同步段、传播段、相位缓冲段1和相位缓冲段2,某个位时间每个段的时间份额。

不同的波特率时间对应的采样点以及位时间的份额可能不同。以波特率为500k为例,一个位时间被分成了16个时间份额,采用点在第14个时间份额。

这里有一个问题,为什么CAN通信中,要波特率和采样点要设置成一样的呢?画个图就能一目了然。假设采样点提前20%,那么采样的数据就会为“0101 1010”,和之前的数据第五位就不相同了。因此,如果采样点不同,就会造成数据传输错误,传输的数据越多,累积的错误数据位就越多。所以,在进行CAN通信时,一定要将各节点的波特率和采样点设置成相同的。

5.软件中采样点的设置

5.1在PCAN-View软件中

1、打开PCAN-View软件便会有如下界面

我们可以看到在connect对话框中有连接选项和以下设置界面,在设置界面我们可以设置时钟频率、波特率、总线时序等,以及在“Filter setting”栏中我们可以设置过滤器条件,用于过滤报文(标准帧/拓展帧,过滤条件为报文ID范围)。

2、点击“Bus Timing Register”选项框后面的三角形箭头,选择“Manage Bit rates”,进入Manage Bit rates对话框

3、选择“Add”,便可在右端对话框中输入自己想要的参数,包括标题、预分频、时间段等参数,根据我们输入的参数在下方的对话框中会实时显示对应的波特率、采样点、时间量等信息,以便于我们完成对采样点等信息的设置。

最后点击“OK”完成对采样点的设置。(在之后我们若是想要改变采样点,我们可以点击工具栏中的连接按钮,重新进入连接界面(“connect”界面))。

5.2 在PEAK-Explorer 5中设置采样点

1、打开PEAK-Explorer 5,点击菜单栏中的“Tool”,在下拉菜单栏中选择“Nets Configuration”,进入PCAN Nets Configuration对话框

2、在PCAN Nets Configuration对话框中USB菜单栏下的Internet选项上单击鼠标右键,选择“New Net”,进入“Net Properties”对话框,在这你可以设置网络名称、时钟频率、波特率等信息。

3、点击波特率栏后的三个点,进入Manage Bit rates对话框,后续采样点的设置操作同PCAN-View中相同,这里便不再赘述。

以上便是通过PCAN-View和PEAK Explorer 5两个软件完成对采样点的设置,这两个软件对采样点的设置可以与波特率计算工具配合使用,可以实现更简洁的工作方式,提高工作效率。

6.波特率计算工具的使用

6.1选择你的波特率类型

可选择三种波特率类型,其分别为CAN、CAN FD、SJA-1000三种类型。CAN Bit Rate类型是用于实现对用CAN作控制器的FPGA实现的设备的波特率仲裁类型,比如PCAN-miniPCIe。

CAN FD Bit Rate同CAN Bit Rate类似,唯一区别在于CAN FD Bit Rate是针对用CAN FD作控制器,比如PCAN-PCI Express FD。

SJA-1000 Bit Rate类型是被用于产自飞利浦、有着8MHz的时钟频率、基于SJA-1000 CAN控制器的设备,比如PCAN-USB。

6.2 输入波特率和偏移量

有两个键入框,在第一个键入框中输入要查询的波特率和它的单位;在第二个键入框中输入允许的偏移量(可选可不选),如若选择“Allow bit rate deviation”,那么就要考虑输入一个偏移度(容忍量),并且这近似的值将被列在结果中。如果没进行勾选,仅有波特率的匹配值被给出,而没有偏移量。

6.3 选择输入频率、采样点和位时间

第一栏是让你选择一个频率去限制时钟频率,这将被用于计算波特率(至少选择一个频率)。第二栏是输入采样点范围(可选可不选),输入采样点范围是用于过滤采样结果,如果不进行勾选,将得到所有采样点结果。第三栏是选择位时间范围(可选可不选),与第二栏功能类似,区别在于第三栏是基于位时间范围来过滤所得结果。如果不进行勾选,将得到所有位时间结果。

6.4 点击开始计算,得出所要结果

在结果中我们可看到,上面的框中显示我们已选择的设置,下面的框中显示计算结果。另外就是在整个流程中我们并没用到的按键,其对应的功能分别如下。

不同设备之间要实现准确无误的通信,波特率匹配是很重要的条件。波特率计算工具将简化这一计算过程,避免了繁琐而又复杂的公式计算,熟练掌握这一工具的使用,将大大提高我们的工作效率,降低人工计算的错误率。

责任编辑:tzh

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

全部0条评论

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

×
20
完善资料,
赚取积分