can总线

电器特性

can(cantrol area network)总线采用双绞线结构,两根线分别成为can-high和can-low。是一种抗干扰的串行总线。两根线采用120欧姆电阻连接。

当can-h和can-l电平相近(2.5v)的时候,称之为逻辑1,也成为隐性电平,若can-h高于can-l被称为逻辑0(3.5v,1.5v),也称为显性电平。

只要由一个单元发出显性电平,总线上就为显性电平。只有所有节点都发送隐性电平,总线上才为隐性电平。

通讯协议

can的数据格式有标准型(can2.0a)和扩展性(can2.0b)两种,主要区别在于为区分不同设备使用的标识符不同。标准型只采用11位标识符,而扩展型同时支持11位和29位标识符。

数据传输的基本单位是报文,报文是由帧组成的。

can的总线帧有四种格式:

(1)数据帧     一单元向另一单元发送数据

(2)远程帧      一单元向另一单元请求数据(请求其他设备发送具有相同标识符的数据帧)

(3)错误帧       任意单元检测到错误,发送错误帧

(4)过载帧        在连续数据帧和远程帧之间,需要插入过载帧提供适当的延时

在总线上每个单元有若干发送邮箱和接收邮箱。对于发送邮箱而言,起所要发送消息的标识符决定了其获取总线的优先级。在发送邮箱发送消息时,同时检测总线上的电平,如果一致,则继续发送,如果不一致(只有可能时自身发送隐性电平1,总线上为显性电平0),则取消发送,等待下一次总线空闲再发送;对接收邮箱而言,每个接收邮箱有自己的标识符,并通过一个屏蔽寄存器存储的值决定该标识符和消息中的标识符中的那几位做与操作,判断该消息是否可以接收。每个接收邮箱只能接收一个消息,就必须向cpu申请中断将信息读走以便再次接收。接收邮箱和上述发送邮箱相同机理可以主动发送远程帧。

数据帧格式如下

[起始][仲裁][控制][数据][crc][应答][结尾]

在不传输数据时,总线上为隐性电平,属于空闲状态,起始位就是一位显性(低点平)。接收节点要根据该位进行时钟同步。

任何节点只能在总线空闲时才能发出信号。

所谓仲裁就是上述的标识符。最后一位是所谓的rtr位,用于表示该帧是数据帧还是远程帧。

控制场表明了数据的长度。最多是8,也就是一个数据帧最多8字节数据。

 









你可能感兴趣的:(can总线)