CAN通信:
1.CAN总线电平分为显性电平和隐性电平,通过电位差来判断总线电平。显性电平的逻辑值为“0”具有优先的意味,隐形电平的逻辑值为“1”
2.CAN特点:
a.多主控制:总线空闲所有单元都可发消息、先到先得、高优先级ID消息优先发送消息(ID不是地址而是表示消息的优先级)
b.固定的消息格式,通过对ID每位进行仲裁比较判断谁先发数据
c.柔软性:总线增加单元时连接在总线上的其他单元无需改动
d.统一的通信速度
e.远程数据请求,“遥控帧”请求其他单位发送数据
f.错误检测、错误通知、错误恢复
g.故障封闭:判断错误为单元故障时可将故障单元隔离出去
h.低速多单元、高速少单元
3.三种错误状态:主动错误、被动错误、总线关闭状态
4.两种CAN协议:ISO11898à125k~1M(高速);ISO11519à10k~125k(低速)。
驱动IC
ISO11898 | ISO11519 |
HA17321RPJE | PCA82C252 |
PCA82C250 | TJA1053 |
Si9200 | SN65LBC032 |
CF15 |
|
5.CAN通信协议详解:
一、帧:数据帧、遥控帧、错误帧、过载帧、间隔帧
- 数据帧:传送数据的帧
- 遥控帧:向具有相同ID的单元请求数据
- 错误帧:但检测到错误时向其他单元发送的帧
- 过载帧:向其他单元表示还未准备好接收数据
- 帧间隔:将上述各帧区分开来的帧
注:其中数据帧和遥控帧有标准格式(具有11个位的标识符)和扩展格式(具有29个位的标识符)两种
二、帧结构:
- 数据帧:帧起始、仲裁段、控制段、数据段、CRC段、ACK段、帧结束。
起始帧:一个显性位
仲裁段:表示帧的优先级(标准、扩展)
控制段:表示帧的字节数保留的位数 由6个位组成
数据段:可以发送0~8个字节的数据(高位输出)
CRC段:检查帧的传输错误的段(15个位组成+1位的界定)
Ack段:确认正常接收的段(ACK槽和ACK界定符2个位组成)发送单位:两个位隐性;接收单位:两个位显性。
帧结束:7个隐性位
注:对于ID禁止高&位为隐性。Eg:ID=1111111XXXX...
无数据段的数据帧可用于个单元的定期连接确认/应答或仲裁本身带有是指信息的情况
2)遥控帧:由帧起始、仲裁段、控制段、CRC段、ACK段、帧结束
区别于数据帧的是遥控帧的RTR位(在仲裁段中)为隐性。
遥控帧的数据长度为所请求的数据的长度。
3)错误帧:由错误标志和错误界定符构成。
错误标志:主动错误标志----6个显性位
被动错误标志----6个隐性位
界定符:8个隐性位
4)过载帧:结构同主动错误帧
5)帧间隔:过载帧和错误帧前不能插入间隔帧。
由3个隐性位+总线空闲位(不限长度)+延迟传送(8个隐性位 )
三、优先级决定:
1)仲裁段比较大小,大的优先发送数据
2)具有相同ID的数据帧和遥控帧数据帧具有优先权,即RTR位为显性的具有优先权。
3)标准格式ID与具有相同ID的遥控帧或扩展帧竞争时,RTR位位显性的具有优先权
四、位填充:为防止突发错误而设定的功能,相同电平持续5位则添加一个位的反型数据。
发送单元;在第六位插入反型电平。
接受单元:删除第六位
五、错误的种类:
位错误、填充错误、CRC错误、格式错误、ACK错误五种,可同时发生。
六、位时序
一位分四段:同步段、传播时间段、相位缓冲段1、相位缓冲段2。