CAN 介绍
CAN : Controller Area Network 控制器局域网,是德国Bosch公司为解决现代汽车中众多控制单元、测试仪器之间的实时数据交换而开发的一种串行通信协议 是一种能有效支持分布式控制和实时控制的串行通讯网络、
CAN总线协议已经成为汽车计算机系统和嵌入式工业控制局域网的标准总线。
CAN-bus : Controller Area Network-bus,控制器局域网总线技术
1980: 产生CAN协议 1991 : CAN低速成为ISO标准 1993 : CAN高速成为ISO 11898标准 1994 : CAN低速成为ISO 11519标准
CAN 类型
低速CAN有较大的电压差,比较可靠,高速CAN应该传输一般性数据
为了提高数据传递的可靠性,CAN数据总线系统的两条导线(双绞线)同时进行数据传送,但波形相反
CAN-High线 CAN-Low线
高速 CAN
- 在静止状态时,这两条导线上作用有相同预先设定值,该值称为静电平
- 对于CAN驱动数据总线来说,这个值大约为2.5V
- 静电平也称为隐性状态,因为连接的所有控制单元均可修改它
低速 CAN
CAN 总线系统结构
-
CAN总线节点上的节点发送数据是以报文的形式广播给网络中所有节点 我们管每条报文都叫“一帧”数据 -
收发器接收到数据就把数据传送给控制器,再由控制器检查判断是不是所需数据 不是则忽略 -
网络上任何一个节点在任何时候都可以发送数据 -
多个节点发送数据,优先级低主动退出发送 -
采用短帧结构,每帧数据信息为0~8字节(具体用户定义),对数据编码而不是地址编码 -
数据都有CRC校验和其他检验措施,严重错误的情况下具有自动关闭输出的功能
CAN-bus通信帧
CAN-bus通信帧共分为数据帧、远程帧、错误帧、过载帧和帧间隔
CAN 基本数据帧结构
ID :11位ID基本数据帧 29位ID扩展数据帧
RTR字节 :远程帧的发送标志位 0表示不是远程帧
r1 :0为标准帧 r0 :0为标准帧 DLC :数据长度位 八种状态
CRC校验 应答槽由发送端发送出来 1,如果在总线上有任何一设备接收到了,它就会把这一位 置 0。发送一方收到信息,它就知道有设备已经收到,此数据就发送成功了。
CAN 硬件设计
CAN控制器 | CAN收发器 |
---|
MCP2512 、 MCP2515 | MAX3051 |
结
|