CAN的协议层介绍

一,CAN帧种类介绍

        1. 数据帧(Data Frame):数据帧是CAN总线上用于传输用户数据的帧,包括必要的帧头、标识符、控制位、数据长度代码、数据域、CRC校验码和应答域等部分,是CAN通信中最基本和最重要的帧类型。

        2. 遥控帧(Remote Frame):遥控帧用于向总线上的其他节点请求发送具有相同标识符的数据帧,它没有数据域,仅通过标识符来指定所需的数据。遥控帧的帧结构与数据帧相似,但缺少数据部分。

        3. 错误帧(Error Frame):当CAN总线上的任何节点检测到通信错误时,会发送错误帧来通知其他节点。错误帧包含错误标志和错误界定符,用于指示错误的存在和类型。

        4. 过载帧(Overload Frame):过载帧用于在连续的数据帧或远程帧之间提供额外的延时,以指示接收节点尚未准备好接收下一个帧。当接收节点因内部条件限制而无法立即接收数据时,会发送过载帧来请求发送节点暂停发送。

        5. 帧间隔(Interframe Space):帧间隔用于隔离数据帧与前面的帧,确保它们之间的时间间隔足够长,以避免总线上的冲突和数据丢失。帧间隔包括连续三个隐性位(间隔段)和可能存在的空闲段,用于将数据帧或远程帧与前面的帧分隔开来。

二,CAN数据帧介绍(重要)

        数据帧由7段组成。数据帧又分为标准帧(CAN2.0A)和扩展帧(CAN2.0B),主要体现在仲裁段和控制段。

1. 帧起始(Frame Start):

        功能:表示数据帧的开始。

        特点:由一个显性位(Dominant Bit)构成,此时CAN_H为高电平(如3.5V),CAN_L为低电平(如1.5V),二者之间的电位差形成信号。

2. 仲裁段(Arbitration Field):

        ·功能:确定发送优先级,并包含标识符(Identifier)用于唯一标识发送者和接收者之间的通信关系。

        ·组成:标准数据帧的仲裁场由11位ID和1位RTR位(远程发送请求位)组成。RTR位用于区分数据帧(显性电平)和遥控帧(隐性电平)。

       · 扩展数据帧中,还包含SRR位(Substituted Remote Request,替代的远程请求)和IDE位(Identifier Extension,标识符扩展)。SRR位用于指示发送方是否发送了远程请求帧,IDE位用于指示标识符字段是否使用了扩展格式(29位)。

3. 控制段(Control Field):

        功能:包含数据长度代码(DLC),用于定义数据帧中数据域的长度。

        特点:DLC占4位,其取值范围为0到8个字节,表示数据帧中包含的数据字节数。

4. 数据段(Data Field):

        功能:包含要传输的数据,是数据帧的主体部分。

        特点:数据域的长度可以根据DLC字段的值从0到8个字节不等,数据从最高位(MSB)开始传输。

5. CRC段(CRC Field):

        功能:用于检测数据帧的传输错误。

        特点:CRC(循环冗余校验)是一种通过对数据进行计算生成的校验码,发送方在发送数据帧时会根据数据计算出CRC值,并将其添加到数据帧的CRC段中。接收方在接收到数据帧后会重新计算CRC值,并与接收到的CRC值进行比较,以确认数据在传输过程中是否发生错误。

6. 应答段(ACK Field)

        功能:用来确认数据帧的正常接收。

        组成:由ACK槽(ACK Slot)和ACK界定符两个位构成。当接收节点成功解析了数据帧并确认无误后,会在ACK槽中发送一个显性位作为应答信号。

7. 帧结束(Frame End):

        功能:表示数据帧的结束。

        特点:由7个连续的隐性位构成,标志着数据帧的传输完成

        SOF:Star Of Frame: 帧起始    Idetifier(ID):数据地址   

        RTR: Remote TransmissionRequest:远程发送请求   

        IDE: Identifier Extension:扩展位标识符     EOF:End Of Frame: 帧结束

        CRC:Cyclic Redundancy Check:循环冗余校验

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值