CAN的显性位与隐性位

CAN显性位:CAN_H与CAN_L的电压差为2V,用0表示。

CAN隐性位:CAN_H与CAN_L的电压差为0V,用1表示。

总线仲裁的时候显性位胜出,所以ID小的帧会胜出;仲裁段的最后一位远程帧标示,远程帧的时候是1,为隐性位,会失败。所以相同ID的帧数据帧的优先级高于远程帧。

帧的起始位为一位显性位,帧结束为7位隐形位。

### LIN总线显性隐性的特性区别 LIN(Local Interconnect Network)总线是一种低成本串行通信网络,广泛应用于汽车电子领域中的低速控制单元间通信。其显性隐性状态通过电平变化来区分。 #### 1. 显性 显性对应于逻辑0的状态,在LIN总线中表现为较低的电压水平。具体来说,显性的电压范围为 \(0\) 到 \(0.4 \times V_{\text{sup}}\),其中 \(V_{\text{sup}}\) 是LIN收发器电源引脚处的电压,通常约为12伏特[^2]。这意味着当总线上检测到低于 \(0.4 \times V_{\text{sup}}\) 的电压时,该信号被解释为显性。 #### 2. 隐性 隐性则代表逻辑1的状态,对应的电压范围较高,于 \(0.6 \times V_{\text{sup}}\) 至 \(V_{\text{sup}}\) 之间。因此,当总线上的电压处于这一区间时,表明当前传输的是隐性。 #### 工作原理概述 - **显性优先原则**:在多节点共享同一根LIN总线的情况下,若某个节点发送显性而其他节点尝试发送隐性,则最终总线呈现显性状态。这是因为显性具有电气优势,能够覆盖隐性的影响。 - **单主/多从架构**:LIN协议采用单一主机模式运行,即只有一个主控单元负责调度整个网络的数据交换过程,其余均为响应命令工作的从属设备[^1]。 以下是用于判断显性隐性转换的一个伪代码实现示例: ```python def lin_signal(voltage, vsup=12): dominant_threshold = 0.4 * vsup recessive_threshold_low = 0.6 * vsup if voltage <= dominant_threshold: return 'Dominant (Logical 0)' elif dominant_threshold < voltage < recessive_threshold_low: return 'Undefined State' else: return 'Recessive (Logical 1)' # Example Usage print(lin_signal(3)) # Assuming VsUp is default value of 12 volts. ``` 此函数接收输入参数`voltage`(实际测量得到的瞬态电压值),并依据预设阈值得出相应结论——要么属于显性范畴,要么落入隐性区域或者不确定状态之中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值