CAN驱动开发理论技术报告

1 CAN总线介绍

CAN总线(Controller Area Network,控制器局域网络)由德国博世公司于上世纪80年代提出,是一种能够实现分布式实时控制的串行通信网络。

1.1 CAN总线特点

CAN总线是一种串行数据通讯协议,其中包含了CAN协议的物理层及数据链路层。以完成对数据的位填充,数据块编码,循环冗余效验,帧优先级的判别等工作。其主要特点如下:

1 节点总数实际可达110个

2 节点发送的报文帧可以分为不同的优先级,满足不同实时要求

3 多主机方式工作,网络上任意一个节点(未脱离总线)均可以随时向总线网络上发布报文帧

4 当某个节点错误严重时,具有自动关闭功能,切断与总线的联系,致使总线上的其他操作不受影响

5 采用载波侦听多路访问/冲突检测(CSMA/CD)技术,当两个节点同时发布信息时,高优先级报文可不受影响地传输数据。

1.2 CAN总线物理层

1.CAN收发器

CAN收发器的作用是负责逻辑电平和信号电平之间的转换
在这里插入图片描述

下面是六轴采用的CAN收发器的原理图,即从CAN控制芯片输出逻辑电平到CAN收发器,然后经过CAN收发器内部转换将逻辑电平转换为差分信号输出到CAN总线上,CAN总线上的节点都可以决定自己是否需要总线上的数据。
在这里插入图片描述

2.CAN总线网络

CAN总线采用双线传输,两根导线分别作为CANH、CANL,并在终端配备有120Ω的电阻。收到总线信号时,CAN收发器将信号电平转化为逻辑状态,即CANH与CANL电平相减后,得到一个差值电平。各种干扰(如点火系统)在两根导线上的作用相同,相减后得到的差值电平可以滤过这些干扰.

在这里插入图片描述

2. CAN数据传输

2.1. 总线电平

CAN总线有两种逻辑电平状态,即显性与隐性。显性电平代表“0”,隐性电平代表“1”
在这里插入图片描述

显性与隐性电平的解释:

CAN的数据总线有两条,一条是黄色的CAN_High,一条是绿色的CAN_Low。当没有数据发送时,两条线的电平一样都为2.5V,称为静电平,也就是隐性电平 ,即表示为逻辑1 。当有信号发送时,CAN_High的电平升高1V,即3.5V,CAN_Low的电平降低1V,即1.5V,也就是显性电平,即表示为逻辑0。

按照定义的:

CAN_H-CAN_L < 0.5V 时候为隐性的,逻辑信号表现为"逻辑1"- 高电平。

CAN_H-CAN_L > 0.9V 时候为显性的,逻辑信号表现为"逻辑0"- 低电平。

2.2 .CAN信号传输

发送过程: CAN控制器将CPU传来的信号转换为逻辑电平(即逻辑0-显性电平或者逻辑1-隐性电平)。CAN发射器接收逻辑电平之后,再将其转换为差分电平输出到CAN总线上
在这里插入图片描述

接收过程: CAN接收器将CAN_H 和 CAN_L 线上传来的差分电平转换为逻辑电平输出到CAN控制器,CAN控制器再把该逻辑电平转化为相应的信号发送到CPU上
在这里插入图片描述

2.3 CAN数据传输

CAN总线传输的是CAN帧,CAN的通信帧分成五种,分别为数据帧、远程帧、错误帧、过载帧和帧间隔。

数据帧根据仲裁段长度不同分为标准帧(2.0A)和扩展帧(2.0B)
在这里插入图片描述

1.帧起始

由一个显性位(低电平)组成,发送节点发送帧起始,其他节点同步于帧起始

2.帧结束

由7个隐形位(高电平)组成。

在这里插入图片描述

3.仲裁段

只要总线空闲,总线上任何节点都可以发送报文,如果有两个或两个以上的节点开始传送报文,那么就会存在总线访问冲突的可能,这时候CAN使用标识符逐位就可以解决这个问题。
CAN总线控制器在发送数据的同时监控总线电平,如果电平不同,则停止发送并做其他处理。如果该位位于仲裁段,则退出总线竞争。

因为差分信号电压差比较大的隐性信号会优先于差分信号电压差比较小的显性信号。所以当控制器发送数据时它如果发出的是显性信号而他监控到总线有人发出了隐性信号这就会发现电平的不同从而退出竞争进入接收状态。如下图假设节点A,B和C都发送相同格式相同类型的帧,如标准格式数据帧,它们竞争总线的过程如下图所示
在这里插入图片描述

帧ID越小,优先级越高。由于数据帧的RTR位为显性电平,远程帧为隐性电平,所以帧格式和帧ID相同的情况下,数据帧优先于远程帧;由于标准帧的IDE位为显性电平,扩展帧的IDE位为隐形电平,对于前11位ID相同的标准帧和扩展帧,标准帧优先级比扩展帧高。
在这里插入图片描述

  1. 数据段

一个数据帧传输的数据量为0~8个字节,因为传输的数据量小,所以can总线发送和接收时间短,实时性高,被干扰的概率小,抗干扰能力强

在这里插入图片描述

3.引脚属性设置

通过查看硬件原理图找到CAN驱动对应的二根信号线引脚

下图是can驱动信号线引脚配置寄存器的各个标准位对应的作用
在这里插入图片描述
在这里插入图片描述

其中RX信号引脚是用于输入的作用RX信号引脚得设置成输入状态同时设置为上拉状态

其中TX信号引脚是输出的作用所以TX信号引脚得设置成输出状态同时设置为上拉状态

模式位根据各种的引脚的作用进行设置

是用于输入的作用RX信号引脚得设置成输入状态同时设置为上拉状态

其中TX信号引脚是输出的作用所以TX信号引脚得设置成输出状态同时设置为上拉状态

模式位根据各种的引脚的作用进行设置

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值