CAN协议初介绍

CAN协议介绍

CAN 是控制器局域网 Controller Area Network 的缩写(简称 CAN),由研发和生产汽车电子产品著称的德国BOSCH公司开发,是ISO国际标准化的串行通信协议

CAN通讯不是以时钟信号来进行同步的,它是一种半双工异步通讯,只具有CAN_High和CAN_Low两条信号线,共同构成一组差分信号线,以差分信号的形式进行通讯

CAN 控制器根据两根线上的电位差来判断总线电平。总线电平分为显性电平隐性电平,二者必居其一。发送方通过使总线电平发生变化,将消息发送给接收方

CAN协议特点

  • 多主控制

    在总线空闲时,所有单元都可以发送消息(多主控制),而两个以上的单元同时开始发送消息时,根据消息标识符( Identifier )决定优先级。 ID 并不是表示发送的目的地址,而是表示访问总线的消息的优先级。两个以上的单元同时开始发送消息时,对各消息 ID 的每个位进行逐个仲裁比较。仲裁获胜的单元可继续发送消息,仲裁失利的单元则立刻停止发送而进行接收工作。

  • 系统的柔软性

    与总线相连的单元没有类似于“地址”的信息。因此在总线上增加单元时,连接在总线上的其它单元的软硬件及应用层都不需要改变。

  • 通信速度较快,通信距离远

    最高 1Mbps(距离小于 40M),最远可达 10KM(速率低于 5Kbps)。

  • 具有错误检测、错误通知功能、错误恢复功能

    所有单元都可以检测错误(错误检测功能)
    检测出错误的单元会立即同时通知其他所有单元(错误通知功能)
    正在发送消息的单元一旦检测出错误,会强制结束当前的发送。强制结束发送的单元会不断反复地重新发送此消息直到成功发送为止(错误恢复功能)

  • 故障封闭功能

    CAN 可以判断出错误的类型是总线上暂时的数据错误(如外部噪声等)还是持续的数据错误(如单元内部故障、驱动器故障、断线等)。由此功能,当总线上发生持续数据错误时,可将引起此故障的单元从总线上隔离出去。

  • 连接节点多

    CAN 总线是可同时连接多个单元的总线。可连接的单元总数理论上是没有限制的。但实际上可连接的单元数受总线上的时间延迟及电气负载的限制。降低通信速度,可连接的单元数增加;提高通信速度,则可连接的单元数减少。

OSI模型

CAN协议涵盖了ISO规定的OSI基本参照模型中的传输层、数据链路层及物理层。
在这里插入图片描述
数据链路层分为MAC子层和LLC子层,MAC子层是CAN 协议的核心部分。
数据链路层的功能是将物理层收到的信号组织成有意义的消息,并提供传送错误控制等传输控制的流程
具体地说,就是消息的帧化、仲裁、应答、错误的检测或报告。
数据链路层的功能在CAN 控制器的硬件中执行,无需用户软件代码参与

在物理层定义了信号实际的发送方式、位时序、位的编码方式及同步的步骤。但具体地信号电平、通信速度、采样点、驱动器和总线的电气特性、连接器的形态等均未定义。这些必须由用户根据系统需求自行确定。

说明:该系列文章以CAN介绍为开篇,后续会逐步深入分享CAN、FDCAN、CANOpen等相关知识

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DingUXiu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值