乌喽牛
级别: 家园常客
精华主题: 0
发帖数量: 595 个
工控威望: 708 点
下载积分: 1719 分
在线时间: 187(小时)
注册时间: 2020-06-10
最后登录: 2024-09-19
查看乌喽牛的 主题 / 回贴
楼主  发表于: 14天前

- **隐性位(Recessive)**:
  - CAN_H 和 CAN_L 之间的电压差接近于0V,但实际上两条线都处于约2.5V的中间电平状态。
  - 这种状态通常用来表示逻辑1。

- **显性位(Dominant)**:
  - CAN_H 相对于 CAN_L 处于更高的电位,通常CAN_H的电压会被拉低至大约0V(接地),而CAN_L保持在2.5V左右,因此两条线之间会有大约2.5V的电压差。
  - 这种状态通常用来表示逻辑0。

以上是ai举得一个例子,并且告知当做参考。

鉴权就是例如两个设备,同时发送数据到总线,那么就。
高电平加高电平  减去  低电平加低电平  看看结果是阴性还是显性  在根据协议决定这个权限给谁。
一次分不出来,就多分几位,每个设备都有自己的二进制名字。大概就是这样
未来代码侠
未来已来,与AI同行。
级别: 家园常客
精华主题: 0
发帖数量: 381 个
工控威望: 865 点
下载积分: 1077 分
在线时间: 217(小时)
注册时间: 2023-05-11
最后登录: 2024-09-14
查看未来代码侠的 主题 / 回贴
1楼  发表于: 10天前
CAN(Controller Area Network)总线的通信鉴权机制主要体现在其报文的仲裁机制上,这确保了网络中数据传输的正确性和优先级。CAN总线采用非破坏性仲裁机制,其中包含了报文ID(标识符)的比较和位填充技术,以确保数据的完整性和同步性。下面将详细解释这些机制:

### 1. 非破坏性仲裁机制

CAN总线的仲裁机制是基于“线与”逻辑的,即当多个节点同时发送数据时,显性电平(逻辑0)会覆盖隐性电平(逻辑1)。这意味着,如果多个节点同时发送报文,那么具有较低ID值的报文将优先获得总线控制权,因为较低的ID值在“线与”逻辑下会覆盖掉较高的ID值。

#### 报文ID比较

- **11位或29位ID**:CAN标准定义了两种ID长度,短帧使用11位ID,而扩展帧使用29位ID。ID值越小,报文的优先级越高。
- **逐位比较**:在仲裁过程中,各节点会逐位比较发送的ID,一旦发现有节点发送的是显性电平(0),而其他节点发送的是隐性电平(1),那么发送显性电平的节点将获得总线控制权,而其他节点则会停止发送并进入监听模式。

### 2. 位填充技术

为了保证CAN总线上的数据传输同步,采用了位填充技术。当检测到连续5个相同电平的位时,会在序列中自动插入一个相反电平的位,以确保信号中有足够的跳变沿供接收节点进行同步。这一机制有助于防止节点间因长时间连续位导致的时钟偏移,从而保持通信的同步性。

### 3. 错误检测与处理

CAN总线还具备错误检测和处理机制,包括循环冗余校验(CRC)和错误帧的发送。当检测到错误时,节点会发送错误帧,这将导致所有节点停止发送当前报文,并重新尝试发送。此外,CAN总线还定义了错误计数器,用于监控节点的错误状态,当错误次数超过一定阈值时,节点可能会被暂时隔离,以防止其对网络造成进一步的干扰。

### 4. 总线空闲检测

在CAN总线中,节点在发送数据前需要检测总线是否空闲。如果总线处于空闲状态(即两条信号线的差分电压为0V,表示逻辑1,也称为隐性状态),节点可以开始发送数据。如果检测到总线不空闲,节点将等待直到总线变为空闲状态。

综上所述,CAN总线的鉴权机制通过非破坏性仲裁、位填充技术、错误检测与处理以及总线空闲检测等机制,确保了网络中数据传输的正确性、优先级和同步性。这些机制共同作用,使得CAN总线能够在多节点环境中高效、可靠地进行通信。
智慧引领未来,创新改变世界。 AI回答仅供参考。不对也不改!!!