CAN_总线基础一

本文深入解析CAN总线的起源、协议标准及物理层特征。从德国Bosch公司的创新出发,探讨ISO11898、ISO15765-2及ISO14229系列标准如何构建完整诊断功能。揭示总线电压、优先级选择等关键物理层细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1:CAN的由来:

2:CAN的协议标准:

3:CAN的物理层特征


参考:

CAN_总线基础二

CAN_总线_STM32(1)

CAN_总线_STM32(2)


1:CAN的由来:

德国Bosch公司开发CAN总线的最初目的是解决汽车上数量众多的电子设备之间的通信问题以及减少电子设备之间数量繁多的信号线束,于是设计了一个单一的网络总线,使得所有的外围电子控制单元可以挂接在该总线上。


2:CAN的协议标准:

  • 2.1:ISO 11898 是CAN 总线规范,对应的是OSI 模型物理层数据链路层,对于物理层而言,定义了CAN 总线信号在双绞线的电压形式;对于数据链路层而言,定义了CAN 帧的各个域的用途。
  • 2.2:ISO 15765-2 是诊断服务在CAN总线传输的 实现方式,对应OSI 的传输层,对于classical CAN 总线来说,它一帧只能承载8个字节,而上层的诊断服务却可能超过8个字节,这时候就需要传输层对数据进行分包重组流控制。ISO 15765-2还定义了应用层、传输层、数据链路层之间的编程接口,其实就是request, confirm, indication这几个原语的定义。ISO 15765-3和ISO 14229-3的内容是一样的,后者取代了前者。ISO 15765-4定义了基于CAN总线实现OBD通信的方式。
  • 2.3:ISO 14229-1 对应于OSI的层7,即应用层,它定义了诊断服务的格式。ISO 14229-2定义了诊断会话中的各种时间参数,比如ECU的响应时间等。ISO 14229-3 一直到ISO 14229-7 分别定义了UDS在CAN,FlexRay, Internet Protocol ,K-Line ,LIN上的实现要求 。
  • 2.4:这三部分协议一起使用,就可以实现完整的诊断功能了。总结来说,ISO 14229-1生成诊断服务,ISO 15765-2对诊断服务进行分包并把分包后的数据交给ISO 11898,ISO 11898给收到的数据加上CAN总线特有的包头和包尾,然后通过双绞线以电压差的形式发送出去。

3:CAN的物理层特征

3.1:CAN的总线电压是CAN总线技术的核心所在,总线电压在物理层中定义。

使用ISO11898标准:

通过CAN的总线拓扑结构可以看出,CAN总线采用双绞线进行数据传输。两根导线中,一根称为CAN-High,另一根称为CAN-Low。这两根导线在静止状态下对地电压均为2.5V,此时两根导线的电压差值为0V,该状态称为隐性状态,其数字信号用1来表示;当CAN-High的对地电压为3.5V,CAN-Low的对地电压为1.5V时,此时CAN-High和CAN-Low两根导线的电压差为2V,该状态称为显性状态,其数字信号用0来表示。为了方便,不会出现混淆记忆,我们将CAN总线的这一特性记忆为显零隐一”。 

CAN-High对地电压(V)CAN-Low对地电压(V)电压差(V)状态
2.52.501(隐性状态)
3.51.520(显性状态)

需要思考一个问题,假如节点A发送数据0101,节点B发送数据1111,节点A和节点B同时向总线发送数据,那么总线上的电压会如何变化呢?很明显,CAN总线上的电压变化是:2V-0V-2V-0V,用来表示数字信号0101。因为两个主节点共用一路CAN总线,而表示显性的2V电压差会覆盖表示隐性的0V电压差,即总线上某一时刻的电压只会有一种状态,无变化的电压自然会被有变化的电压覆盖,CAN的这一特性即为 显性可以覆盖隐性 

3.2:优先级的选择

 1:总线空闲时,最先发送的单元获得发送优先权,一旦发送,其它单元无法抢占,

 2:如果有多个单元同时发送,则连续输出显性电平多的单元,具有较高优先级

 3:从ID开始比较,如果ID相同,还可能会比较RTR和SRR等位

 4:具有相同ID的数据帧和遥控帧在总线上竞争时,仲裁段的最后一位(RTR)为显性位的数据帧具有优先权,可继续发送

 5:标准格式ID和具有相同ID的遥控帧或者扩展格式的数据帧在总线上竞争时,标准格式的RTR位为显性位的具有优先权,可继续发送

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值