CAN基础知识

CAN基础知识

  • 1. 简介
  • 2 工作原理
    • 2.1 硬件原理
    • 2.2 协议
    • 2.3 CAN控制器的工作模式
    • 2.4 通信过程
  • 参考文献

1. 简介

CAN(Controller Area Network)即控制器局域网,是现场总线之一,基于串行数据通信协议。最初是应用于汽车控制中,为了实现对汽车整体的控制,将部件挂在CAN总线上,再用网关实现速率的分配。
CAN通信介质可以是双绞线、电缆或者光纤,通信速率高达1Mbps。发送方通过使总线电平发生变化,将消息发送给接收方。CAN基础知识_第1张图片
特点:

  • 多主方式,根据消息ID决定优先级
  • 因为是差分信号,所以抗电磁干扰强
  • 是异步串行通信,采用半双工的方式
  • 节点出现错误的情况下,具有自动关闭的功能。

与RS485比较:
CAN基础知识_第2张图片

2 工作原理

2.1 硬件原理

CAN通信,通过CAN控制器和CAN收发器以及CAN接口。
CAN接口分为CANH和CANL,各个节点通过这两根线进行差分信号传输,CANH和CANL之间一般需要接120Ω的电阻,避免信号的反射和干扰,多个部件挂接在CAN总线上时,首尾CAN接口均挂120Ω,中间的不用。

CAN总线电平按照CANH/L的电位差进行判断,只有两种,显性和隐形。
下面以协议ISO11898为例说明。
显性:CANH:3.5V
CANL:1.5V
差为2V。
表征为逻辑0
隐性:CANH:2.5V
CANL:2.5V
差为0V。
表征为逻辑1
高电平差表征逻辑0,似乎反向,为何呢?这主要是CAN收发器导致的,里面有个反向器,如下图所示。另外总线的“线与”功能,当为0的时候,显示为0,所以0是显性。
CAN基础知识_第3张图片

2.2 协议

CAN协议有两种标准,ISO11898和ISO11519-2,ISO11898标准适用于通信速率为125kbps-1Mbps。ISO11519-2适用于通信速率为125kbps以下。两种标准对比如下:
CAN基础知识_第4张图片
CAN通信的协议分为CAN2.0A和CAN2.0B,差别在于CAN2.0A定义了数据帧和遥控帧为11位标识符,CAN2.0B定义了数据帧和遥控帧为29位标识符。
CAN通信以下面5种帧进行的。
CAN基础知识_第5张图片
1)数据帧
包括七个段。

  • 帧起始:表示数据帧开始的段,由1位显性位表示。
  • 仲裁段:表示该帧优先级的段。
  • 控制段:表示数据的字节数及保留位的段。
  • 数据段:数据的内容,一帧可发送0~8个字节的数据
  • CRC段:检查帧的传输错误的段
  • ACK段:表示确认正常接收的段
  • 帧结束:表示数据帧结束的段,由7位隐性位构成
    数据帧的构成如下:
    CAN基础知识_第6张图片
    2)遥控帧由6个段组成,如下图所示,没有数据段。
    CAN基础知识_第7张图片
    3)错误帧
    错误帧由错误标识(6个显性或者隐性位)和错误界定符(8个隐性位)构成。
    CAN基础知识_第8张图片
    4)过载帧
    过载帧由过载标识(6个显性位)和过载界定符(8个隐性位)构成。
    CAN基础知识_第9张图片
    5)间隔帧
    间隔帧由三个隐性位的间隔,8个隐性位的延迟传送和总线空闲组成。
    CAN基础知识_第10张图片
    在总线上优先级的决定
  • 从仲裁段开始,连续输出显性电平多的继续发送,否则转为接收。
  • 具有相同ID的数据帧和遥控帧竞争时,仲裁段的最后一位为显性的帧具有优先权。
  • 标准格式和扩展格式的数据帧在总线上竞争时,标准格式的最后一位为显性的帧具有优先权。

位速率:发送单元在非同步的情况下发送的每秒钟位数为位速率。
一个位可以分为4个段,每个段由最小时间单位Tq组成。

  • 同步段(SS)
  • 传播时间段(PTS)
  • 相位缓冲段1(PBS1)
  • 相位缓冲段2(PBS2)
    各段的作用如下:
    CAN基础知识_第11张图片

2.3 CAN控制器的工作模式

有以下几种模式:

  • 正常模式:CAN收发器芯片可以通过CANH和CANL既可以发送数据,也可以接收数据。
  • 低功耗模式:CAN收发器既不能发送数据,也不能接收数据
  • 静默模式:CAN收发器只能接收数据,不能发送数据,CAN总线为隐性状态。
    CAN基础知识_第12张图片
  • 环回模式:把发送的报文当做接收的报文保存在接收邮箱里。此种模式可用作自测试。
    CAN基础知识_第13张图片
  • 静默环回模式:在环回模式的基础上,CANTX被驱动到隐性。
    CAN基础知识_第14张图片

2.4 通信过程

发送流程:
程序选择1个空置的邮箱(TME=1)-设置标识符(ID),数据长度和发送数据-设置CAN_TIxR的TXRQ位为1,请求发送-邮箱挂号(等待成为最高优先级)-预定发送(等待总线空闲)-发送-邮箱空置。
发送函数如下:
CAN基础知识_第15张图片

接收流程:
FIFO空-收到有效报文读取数据。
接收函数如下:
CAN基础知识_第16张图片

参考文献

《CAN入门教程》
《CAN通信基础知识介绍-M4》

你可能感兴趣的:(硬件,can)