Can总线上的电平及物理层仲裁
can 总线 物理层 仲裁
2023-09-11 14:15:08 时间
CAN总线采用差分信号传输,通常情况下只需要两根信号线(CAN-H和CAN-L)就可以进行正常的通信。在干扰比较强的场合,还需要用到屏蔽地即CAN-G(主要功能是屏蔽干扰信号),CAN协议推荐用户使用屏蔽双绞线作为CAN总线的传输线。
在“隐性”状态下,CAN-H与CAN-L的输入差分电压为0V(最大不超过0.5V),共模输入电压为2.5V。
在“显性”状态下,CAN-H与CAN-L的输入差分电压为2V(最小不小于0.9V),如下图 1所示。
数据总线上面就是上面的真实电压,但是can收发器会把真实的物理电压转换为逻辑电压,
隐性,差分电压(低)——>逻辑1
显性,差分电压(高)——>逻辑0
![](https://img2018.cnblogs.com/blog/216878/201911/216878-20191124120507450-583827569.png)
CAN总线上,“显性”的优先级要高于“隐性”;当“显性”位和“隐性”位同时发送到总线上时,总线上的数值表现为“显性”。
可以理解为:
逻辑 1-->“隐性”,总线处于高阻,任何一个CAN节点都可以将总线驱动成“显性”。
逻辑 0-->“显性”,在总线上的电平优先级要高于“隐性”,所以1个接收节点在总线上产生的“显性"位可以导致发送节点在这个时刻发送“隐性”时的物理仲裁错误。
CAN节点的物理层仲裁
CAN节点出于发送状态的时候,TX引脚发送数据bit流,同时RX引脚在接收总线上的bit流;由于总线上“显性”位的优先级要高于“隐性”位;所以在RX引脚上接收到的这个时刻的bit电平与TX引脚上发送的bit电平不一致,就导致该发送节点发送失败,也可理解成为:发送总线仲裁错误。
这样就可以用来解决,2个节点在同一时刻开始往总线上发送数据,只要2个节点发送的bit流不一致,就可以区分开来。先发送“显性”位(逻辑 0)的节点能将完整的数据帧发送到总线上;而另外的那个节点因为发送“隐性”位( 逻辑 1)的时刻,RX引脚上检测到总线上“显性”位( 逻辑 0),因此产生总线仲裁错误而退出发送状态。
相关文章
- c#通过串口及CAN模块实现上位及下位机通讯
- ERROR 1005: Can't create table (errno: 121)
- How can I delete using INNER JOIN with SQL Server?
- 车载总线系列——CAN总线入门(五)
- 车载总线系列——CAN总线入门(四)
- 解决问题“The App ID ‘XXXXX‘ appears to be in use by the App Store, so it can not be removed at this ti”
- CAN总线
- [CAN波形分析] 一次CAN波形分析之旅
- can总线的远程帧(遥控帧)—说的很形象
- SPOJ GSS5 Can you answer these queries V
- 【UDS】基于CAN FD的UDS传输层 重要理解
- #1042 - Can't get hostname for your address
- Can't create a new thread (errno 11); if you are not out of available memory, you can consult the manual for a possible OS-dependent bug
- 浅析Java编程报错:explicit type argument xx can be replaced with
- hdu_1086 You can Solve a Geometry Problem too(计算几何)
- Mysql启动失败,报Can‘t start server: can‘t create PID file: No such file or directory解决方案