Chinaunix首页 | 论坛 | 博客
  • 博客访问: 549058
  • 博文数量: 105
  • 博客积分: 3274
  • 博客等级: 中校
  • 技术积分: 1161
  • 用 户 组: 普通用户
  • 注册时间: 2010-02-21 12:14
文章分类

全部博文(105)

文章存档

2011年(1)

2010年(104)

分类: 嵌入式

2010-06-25 21:44:28

冲突探测/仲裁/优先级
冲突检测
    冲突探测可以可以识别到帧的标识或位。位-位仲裁过程允许探测冲突帧的传输。
当一个节点探测到接收到的标识或位与目前传输的标识或位之间存在不同,则认为已经
检测到帧传输的冲突。只有赢得了与其他所有在帧内开始传输数据的节点不同的标识
或位的冲突的帧,不会去探测冲突
位-位仲裁
    当多节点企图同时传输帧时,位-位仲裁解决此时产生的冲突。位-位仲裁应
用于帧的每一个标识或位,从SOF 标识开始到帧结束。在物理层,位-位仲裁方
式是用于有高电平和低电平两种值的总线上的。所有的标识或位在总线上使用
物理层的高电平和低电平的合成信号来编码的,当总线上高电平和低电平信号
同时传输时总线的合成信号就是高电平。
1,传输帧头部分时,如果传输节点探测到一个电平信号不同于该节点在帧头部分传输的信号,则该节点在下一位开始之前终止传输,把优先权让给下一位。
2,传输帧头之后的部分时,如果传输节点探测到一个电平信号不同于该节点在帧的数据部分传输的信号(帧头之后的部分),有以下几种操作:
  (1)终止传输,把优先权让给下一位(同帧头部分一样)。如果帧头之后的传输信息在字间间隔被非预期的冲突过早的中断
     注意必须通知接收的节点不要认为这条信息是有效的信息。因为有1/256的概率刚好CRC就等于前面发送的那个字节。
     这种情况下,节点可能需要确认接收的信息自己来保证长度的正确性。
  (2)当一个字节边界有冲突探测时发送少于8 位的附加位时(如SOF等),这样一旦由于
     噪声产生了非预期冲突探测,所有其他的接收方都能接收到帧故障。
   总线访问节点时,发送高电平的节点将会覆盖掉发送低电平的节点。
   仲裁过程始于SOF,贯穿发送帧的所有位。当所有同步帧的每一个标识或位传输时,
   最后一个标识或位将探测是否有冲突发生,之后所有节点继续传输数据。任何保留
   的节点将继续发送标识或位,直到探测到下一个冲突。没有探测到任何冲突的节点
   才唯一地获得发送标识或位到介质层的权力。
仲裁区域  仲裁贯穿到帧的所有部分.(帧内应答也不例外)
帧优先级  参考前面
简单点说:就是节点发送了一个位或者一个标志之后,在下一次发送之前,检测下当前总线上的电平,看是否与上此节点发送的电平一致,
         如果一致,就可以继续发送。如果不一致,则认为失去仲裁,必须停止发送,等待总线空闲时再发送。
阅读(2247) | 评论(0) | 转发(0) |
0

上一篇:随笔

下一篇:stm32 CAN总线例子

给主人留下些什么吧!~~