差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
whatiscan [2023/06/28 18:27] gongyu |
whatiscan [2023/06/28 18:38] (当前版本) gongyu |
||
---|---|---|---|
行 5: | 行 5: | ||
CAN总线最早是由Bosch发明,后成了标准ISO11898-1,它定义了开放系统互联模型(OSI)中的数据链路和物理层,为高速车内通信提供了一种底层的网络方案。值得一提的是,CAN被设计为减少电缆的连线,因此车内不同的电气控制单元(ECUs)可以通过只有一对电缆进行通信。 | CAN总线最早是由Bosch发明,后成了标准ISO11898-1,它定义了开放系统互联模型(OSI)中的数据链路和物理层,为高速车内通信提供了一种底层的网络方案。值得一提的是,CAN被设计为减少电缆的连线,因此车内不同的电气控制单元(ECUs)可以通过只有一对电缆进行通信。 | ||
{{ ::can-subnetwork.png |}} | {{ ::can-subnetwork.png |}} | ||
+ | |||
车载诊断 (OBD) 是车辆的诊断和报告系统,帮助技术人员通过诊断故障代码 (DTC) 排除问题。 当“检查发动机”灯亮起时,技术人员通常会使用手持设备读取车辆的发动机代码。 在最低层,该数据通过信令协议传输,大多数情况下是使用CAN总线。 | 车载诊断 (OBD) 是车辆的诊断和报告系统,帮助技术人员通过诊断故障代码 (DTC) 排除问题。 当“检查发动机”灯亮起时,技术人员通常会使用手持设备读取车辆的发动机代码。 在最低层,该数据通过信令协议传输,大多数情况下是使用CAN总线。 | ||
DeviceNet是工业应用中使用的高级网络协议。 它大大减少了控制系统和I/O设备之间所需的接线。 设备可以通过四线连接器连接在一起并连接到 PLC 上的网络扫描仪,而不是将每个设备连接到 PLC I/O 模块上的单独输入/输出。 在最低层,我们发现CAN在DeviceNet协议中发挥着其魔力。 图 2 显示了PLC扫描通过DeviceNet进行通信的工业设备网络。 | DeviceNet是工业应用中使用的高级网络协议。 它大大减少了控制系统和I/O设备之间所需的接线。 设备可以通过四线连接器连接在一起并连接到 PLC 上的网络扫描仪,而不是将每个设备连接到 PLC I/O 模块上的单独输入/输出。 在最低层,我们发现CAN在DeviceNet协议中发挥着其魔力。 图 2 显示了PLC扫描通过DeviceNet进行通信的工业设备网络。 | ||
- | {{ ::can11.png?600 |}} | + | {{ ::can11.png?800 |}} |
+ | {{ :f31de3f79dde8fa51181c78b18d77c04.jpg |}} | ||
CAN总线采用双绞线提供抗共模干扰能力强的差分信号传输,线的两端分别接有120欧的电阻,每个模块都有两个脚分别连在这两根线上,对于每个模块的内部,都包含一个CAN收发器。 | CAN总线采用双绞线提供抗共模干扰能力强的差分信号传输,线的两端分别接有120欧的电阻,每个模块都有两个脚分别连在这两根线上,对于每个模块的内部,都包含一个CAN收发器。 | ||
CAN总线一般分为低速和高速,低速CAN传输速率<125kbps, 高速CAN传输速率<1Mbps,目前还有一种CAN FD可以视为CAN的升级版,传输速率<5Mbps。 | CAN总线一般分为低速和高速,低速CAN传输速率<125kbps, 高速CAN传输速率<1Mbps,目前还有一种CAN FD可以视为CAN的升级版,传输速率<5Mbps。 | ||
+ | {{ ::can10.png?800 |}} | ||
+ | {{ ::can13.png?800 |}} | ||
### 2. CAN消息帧 | ### 2. CAN消息帧 | ||
那么CAN消息实际上是什么样子的呢? 最初的ISO标准制定了所谓的标准CAN。 标准CAN对不同的报文使用11位标识符,总共有211个,即2048个不同的报文ID。 CAN后来做了修改,标识符扩展为29位,得到229个标识符。 这称为扩展 CAN。 CAN使用多主总线,所有消息都在整个网络上广播。 标识符提供仲裁的消息优先级。 | 那么CAN消息实际上是什么样子的呢? 最初的ISO标准制定了所谓的标准CAN。 标准CAN对不同的报文使用11位标识符,总共有211个,即2048个不同的报文ID。 CAN后来做了修改,标识符扩展为29位,得到229个标识符。 这称为扩展 CAN。 CAN使用多主总线,所有消息都在整个网络上广播。 标识符提供仲裁的消息优先级。 | ||
+ | {{ :can_packetstructureframes_1.png |}} | ||
CAN使用具有两种逻辑状态的差分信号,称为隐性和主导。 隐性状态表示差分电压小于最小阈值电压。 主导状态指示差分电压大于此最小阈值。 有趣的是,主导状态是通过将逻辑“0”驱动到总线上来实现的,而隐性状态是通过逻辑“1”来实现的。 这与大多数系统中使用的传统高和低相反。 重要的是,在仲裁过程中,主导状态优先于隐性状态。 | CAN使用具有两种逻辑状态的差分信号,称为隐性和主导。 隐性状态表示差分电压小于最小阈值电压。 主导状态指示差分电压大于此最小阈值。 有趣的是,主导状态是通过将逻辑“0”驱动到总线上来实现的,而隐性状态是通过逻辑“1”来实现的。 这与大多数系统中使用的传统高和低相反。 重要的是,在仲裁过程中,主导状态优先于隐性状态。 | ||
行 58: | 行 62: | ||
发送的下一位是“0”。 CANH 得到其补码,CANL 再次得到 CANH 的补码。 请注意,这次 CANH 和 CANL 电压并不接近。 因此,差分电压(VDIFF)较大。 这是 CAN 主导状态。 我们说逻辑是颠倒的,因为“1”使总线处于低电平,而“0”则使总线处于高电平。 输入接收器以类似的方式工作。 | 发送的下一位是“0”。 CANH 得到其补码,CANL 再次得到 CANH 的补码。 请注意,这次 CANH 和 CANL 电压并不接近。 因此,差分电压(VDIFF)较大。 这是 CAN 主导状态。 我们说逻辑是颠倒的,因为“1”使总线处于低电平,而“0”则使总线处于高电平。 输入接收器以类似的方式工作。 | ||
- | {{ ::can6.png?800 |}} | + | {{ ::can6.png?500 |}} |
#### 优先级仲裁 | #### 优先级仲裁 | ||
行 95: | 行 99: | ||
{{ ::can8.png?800 |}} | {{ ::can8.png?800 |}} | ||
{{ ::can9.png?800 |}} | {{ ::can9.png?800 |}} | ||
- | {{ ::can10.png?800 |}} | ||
- | {{ ::can11.png?800 |}} | ||
{{ ::can12.png?800 |}} | {{ ::can12.png?800 |}} | ||
- | {{ ::can13.png?800 |}} | ||
{{ ::can14.png?800 |}} | {{ ::can14.png?800 |}} | ||
+ | |||
+ |