CAN
透查本质
特点
- 半双工
- 距离最长10KM, 速度最高 1Mbps
- 非破坏性仲裁
- 一对一,一对多
- 双绞线,差分信号
- 显0,隐1
- 高速CAN闭环,120欧,显 H 3.5 L 1.5,隐 H 2.5 L 2.5。
- 低速CAN开环,220k欧,显 H 4 L 1,隐 H 3.25 L 1.75。
- 多主机
帧格式:
- 数据帧
- 请求帧
- 错误帧
- 过载帧
- 帧间隔
帧字段说明:
| 名称 | bit | 说明 |
|---|---|---|
| SOF | 1 | 起始符,固定显 |
| ID | 7 | ID |
| RTR | 1 | 显数据帧,隐请求帧 |
| IDE | 1 | 是否为扩展帧,隐为扩展 |
| R0 | 1 | 保留位,被IDE用 |
| R1 | 1 | 保留位 |
| DLC | 1 | 数据长度 |
| DATA | 0-64 | 数据 |
| CRC | 15 | crc |
| CRC界定符 | 1 | 隐 |
| ACK | 1 | 接收者显,发送者隐 |
| ACK界定符 | 1 | 隐 |
| EOF | 7 | 隐 |
数据帧:
标准数据帧:
SOF - ID - RTR - IDE - R0 - DLC - DATA - CRC - CRC界定符 - ACK - ACK界定符 - EOF
扩展数据帧:
SOF - ID - SRR - IDE - ID2 - R1 - R0 - DLC - DATA - CRC - CRC界定符 - ACK - ACK界定符 - EOF
遥控帧:
SOF - ID - RTR - IDE - R0 - DLC - CRC - CRC界定符 - ACK - ACK界定符 - EOF
错误帧:
被动错误:
6位隐 - 8位隐
主动错误:
6位显错误标志 - (0-6位显) - 8位隐错误界定符
过载帧:
6位显错误标志 - (0-6位显) - 8位隐错误界定符
帧间隔:用于将数据帧和遥控帧与其他帧分开
主动错误
3位显
被动错误
3位显 - 8位显延迟传送
总裁机制:
- 先占先得
- 非破坏性总裁
非破坏性总裁:
- SOF - RTR段
- 线与逻辑
- 回读机制
错误处理
- 位错误
- 填充错误
- CRC错误
- 格式错误
- ACK错误
错误限制
- 主动错误
- 被动错误
- 总线关闭
通过TEC和REC来选择进入到哪个状态
位时序
- 单位Tq
- 同步段SS, 传播时间段PTS, 相位缓冲段1 PBS1, 相位缓冲段2 PBS2.
- SS 1Tq, PTS 1-8Tq, PBS1 1-8Tq, PBS2 2-8Tq。
- 在PBS1 和 PBS2中间采样
同步机制
硬同步
通过第一帧的下降沿同步
再同步
通过SJW和差异值 增加或者删除n Tq 实现。
位填充机制
作用:
- 再同步
- 与其他异常帧分离开
- 保持总线活跃
在SOF - CRC 段有5位一样的就要补一个相反的位
