初识CAN总线

一、CAN的介绍

        视频课链接:趋近于完美的通讯 CAN总线!4分钟看懂!_哔哩哔哩_bilibili

 052:车载测试之CAN总线通信:02:CAN协议的标准数据帧_已压缩_哔哩哔哩_bilibili

        CAN:Controller Area Network 控制器局域网

        这里的控制器在汽车中的专业术语叫ECU电子控制单元)。ECU可以看成超小型的计算机,它内部集成了供电系统、单片机、驱动系统,是汽车里最小的控制模块。

图1 ECU结构 

        Can总线出现之前:

        Can总线出现之后:

        为了能让ECU之间进行通信,人们设计了CAN协议。将多个ECU挂载到CAN总线上,就可以组成局域网通讯,大大减少线束的长度。 

二、CAN总线是如何通讯的

        要进行CAN通讯,需要专门的CAN收发芯片。经过CAN收发器后,普通信号会被转化成差分信号(CAN HIGH和CAN LOW)。

图2 CAN收发器 

        如果发送低电平,它的两根线分别输出3.5V和1.5V,电压差为2V。这是显性电平,表示逻辑0。当发送高电平时,它的两根线输出都是2.5V,电压差是0V。这是隐性电平,表示逻辑1。

图3 显性电平和隐性电平

        同样的,CAN收发器也可以把接收到的差分信号转化为普通电平信号,然后再发给单片机。 

 三、差分信号的优势

        普通信号只有一根线,当某一点受到干扰,它的电平就会发生跳变,这样会导致传输出错,所以不能进行长距离传输。

        而CAN通讯采用的差分信号是两根线共同作用,而且是双绞线缠绕,即使受到干扰,也是两根线同时受到干扰,压差保持不变,这样就能保证传递的信息不受干扰。所以CAN信号可以传输的距离很长,可达1000米。

图4 差分信号

四、CAN通讯的传递信息

图5 数据帧组成

        我们可以将整个数据帧分成7个部分。

(1)帧起始

        起始位:逻辑位是0。

(2)仲裁域(标识符+RTR)

        仲裁域能判定这一帧报文的优先级,优先级数据帧>远程帧。同为数据帧,则根据id判断优先级。

        识别码(标识符):11位,判断这一帧信息是发送给哪个设备的。设备的“身份证”,也代表了优先级。从左到右,最多连续出现7个1。

图6 识别码  

        RTR位:区分数据帧和远程请求帧;为1时表示远程请求帧,为0表示数据帧。 

(3)控制域(IDE+保留位+DLE)

        控制码:6位,控制数据帧长度。第一位为IDE,用于区分标准格式(0)和扩展格式(1);第二位是空闲位;接下来是DLC,其数值决定数据码是多少字节。

        DLC有效值:0000-1000(8),1001、1011等等同于8 byte。

图7 控制码 

(4)数据域(0-64 bit)

        前4个域根据特定算法(发送方和接收方约定的算法)算出CRC序列的数值(15位),再与实际序列对比。

(5)CRC域

        CRC码: 16位,循环冗余校验位,确保数据的准确性。校验发出来的数据和实际收到的数据是否一致。若数据有问题,会重新发送一遍数据帧。

        CRC界定符:逻辑位为0,代表CRC发完了。 

(6)ACK域

        ACK槽:发送方发出的是隐形电平(逻辑1),ACK槽写成0代表收到的是对的;1代表没有正确接收。

(7)帧结束

        连续的7个1代表帧结束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值