1、显隐性电平定义
CAN总线采用差分信号传输,通常情况下只需要两根信号线(CAN-H和CAN-L)就可以进行正常的通信。在干扰比较强的场合,还需要用到屏蔽地即CAN-G(主要功能是屏蔽干扰信号),CAN协议推荐用户使用屏蔽双绞线作为CAN总线的传输线。
隐性电平和显性电平是CAN总线上的两种互补的逻辑值。以下是对这两种电平的详细解释:
1.1 隐性电平
- 定义:隐性电平在逻辑层面表现为1,即当CAN总线上所有单元都输出隐性电平时,总线上才呈现隐性状态。
- 电压特性:典型地,当CAN总线为隐性(逻辑1)时,CAN_H和CAN_L的电平都维持在2.5V左右,此时它们之间的电位差Vdiff为0V。
- 功能:隐性电平用于表示总线上的空闲状态或某些特定的逻辑值。在CAN总线的通信过程中,如果没有节点正在发送显性电平,那么总线将保持隐性电平状态。
1.2 显性电平
- 定义:显性电平在逻辑层面表现为0,即当CAN总线上有任何一个单元输出显性电平时,总线就呈现显性状态。
- 电压特性:当CAN总线为显性(逻辑0)时,CAN_H和CAN_L的电平分别为3.5V和1.5V左右,此时它们之间的电位差Vdiff为2.0V左右。这个电位差是CAN总线差分传输机制的基础,用于区分显性电平和隐性电平。
- 功能:显性电平用于表示总线上的有效数据或控制信号。在CAN总线的通信过程中,当节点需要发送数据时,它会通过输出显性电平来将数据传输到总线上。由于显性电平可以覆盖隐性电平,因此当多个节点同时尝试发送数据时,具有最高优先级的节点(通常通过其ID号决定)将能够成功地将数据发送到总线上。
巧记:急急如律令,太上老君快显0。
下图是基于PicoScope示波器抓取的CAN波形,观察下CANH、CANL、CAN_DIFF(差分电压)的电压值。
2、线与机制
为什么CAN总线的显性电平(逻辑0,电位差Vdiff = 2.5V)能覆盖隐性电平(逻辑1,电位差Vdiff = 0V)?
线与机制:在CAN总线上,所有节点都是并联连接的。当某个节点输出显性电平时(即CAN_H的电平高于CAN_L的电平一定程度),它会将总线电平拉低,即使其他节点输出隐性电平,总线电平仍然保持低电平。这是因为显性电平是强驱动,而隐性电平是弱驱动,所以显性电平能够覆盖隐性电平。
3、显性电平和隐性电平的转换机制
3.1 发送过程
CAN控制器将CPU传来的信号转换为逻辑电平(即逻辑0-显性电平或者逻辑1-隐性电平)。CAN发射器接收逻辑电平之后,再将其转换为差分电平输出到CAN总线上。
3.2 接收过程
CAN接收器将CAN_H 和 CAN_L 线上传来的差分电平转换为逻辑电平输出到CAN控制器,CAN控制器再把该逻辑电平转化为相应的信号发送到CPU上。
3.3 电压差的重要性
在CAN总线上,逻辑0和1之间显著的电压差是通信可靠的保证。例如,高速CAN总线的显性电平定义为CAN_H=3.5V,CAN_L=1.5V,电压差为2V;而隐性电平定义为CAN_H=2.5V,CAN_L=2.5V,电压差为0V。
4、显性电平和隐性电平的应用场景
在现代汽车中,CAN总线已经广泛应用于各种电子系统,包括发动机管理系统、车身控制系统和安全气囊系统等。由于不同的汽车厂家和电子设备之间可能采用不同的CAN总线格式,这时就需要使用CAN转换器来进行信号转换,以实现各个系统之间的通信。