CAN笔记再续
[ 2007-5-10 4:15:00 | By: CANopen ]
 

1、当同一个CAN网络中出现相同的CANID时

    CAN总线的非破坏性仲裁机制不允许两个(多个)相同ID的CAN帧存在同一网络,当这种情况出现时,就存在一种可能:两个CAN帧同时参与总线竞争,要不同时竞争失败,要不同时竞争成功均获得总线使用权,一旦这两个具有相同ID的CAN帧同时享用总线,仲裁场发送完毕接着发送控制场、数据场……当然这两个位流序列不可能完全相同于是位错误(Bit Check Error)必将同时被两节点检测到,两节点同时发出错误帧接着CAN-bus重启两个CAN帧重新参与竞争…………有一种可能,网络上将出现死循环,所以必须小心!!

2、以标准帧(数据帧)为例,拆解CAN帧位序流
    SOF(Start Of Frame):显性位(0),必须在Bus Idle状态发出,网络上所有节点在“下降沿”执行一次同步;
    Identifier Field:11bits,CANID;
    RTR(Remote Transmission Request Bit):显性位(0),隐性(1)时标识该帧为远程帧;
    IDE(Identifier Extension Bit):显性位(0),标识该帧为标准帧;
    r0(reserved bit):保留位,发送器必须发送显性位,但接收器检测到该位表现为不敏感,不会激发bit error错误;
    DLC(Data Length Code):4bits,标识数据场的数据字节数,DLC=0时,数据场无数据,DLC>=0x1000时,数据场为8字节数据;
    Data Field:将要发送的过程数据,0-8字节,具体有DLC确定,Data0先发送,Data0的Msb先发送;
    CRC Sequence:循环冗余检测序列,校验和,15bits,由CAN控制器硬件完成CRC算法并位场填充;
    CRC Delimiter:CRC界定符,1bit,必须为隐性;
    Ack Slot:应答间隙,1bit,发送器端送出隐性电平,接收端送出显性位标识握手信号,发送器检测该位为隐性将激发应答错误;
    Ack Delimiter:应答界定符,1bit,必须为隐性;
    End Of Frame:发送端送出7个隐性电平,标识数据帧结束。
 
发表评论:

时 间 记 忆
最 新 评 论

专 题 分 类
最 新 日 志
最 新 留 言
搜 索
用 户 登 录
友 情 连 接
博 客 信 息


Powered by Oblog.