CAN&CANFD总线基础

计算机网络体系:OSI体系结构分为7层,分别为应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。 

网络拓扑结构:星型拓扑、总线拓扑、环型拓扑、树型拓扑、网型拓扑。

CAN总线基础

CAN(Controller Area Network)属于现场总线的范畴,是一种高性能、高可靠性、易开发和低成本的多主方式的串行通信总线。CAN总线协议只定义了物理层和数据链路层。

  1. CAN总线的特点

  2. CAN总线传输介质

    表示“隐性”和“显性”逻辑能力是CAN总线仲裁方法的基本先决条件,即所有节点都为“隐性”逻辑时,总线介质才处于“隐性”状态;只要有一个节点发送了“显性”逻辑,总线就呈现"显性"状态。

    使用电气介质时,高电平为“隐性”状态;低电平为“显性”状态。

    使用光学介质时,暗表示”隐性“状态;亮表示”显性“状态。

    电气传输介质使用方式:两线总线、单线总线、共用一条线传输信号的供电

  3. 报文传输

    3.1 帧类型

    CAN总线的报文传输帧类型:数据帧、远程帧、错误帧、负载帧

    报文传输过程中,任何节点检测到总线错误时就发送错误帧;负载帧用于在先行和后续的数据帧(或远程帧)之间提供附加的延时。

    3.2 帧格式

    依据标识符的长度,具有11位标识符的帧称为标准帧,具有29位标识符的帧称为扩展帧;帧间间隔用于区分前后两帧报文。

    数据帧

    数据帧由7部分组成:起始帧、仲裁域、控制域、数据域、CRC域、应答域、帧结束。标准帧和扩展帧格式如下图:

  • SOF表示数据帧起始,一个显性位;
  • 仲裁域表示数据帧优先级。标识符(ID)表示数据帧优先级,先发送ID高位,后发送低位;远程发送请求位(RTR)显性时为数据帧,隐性时为远程帧;代替远程请求位(SRR)为隐性位,当标准帧发送与扩展帧发送冲突且前11位标识符相同时,标准帧优先级高于扩展帧;标识符扩展位(IDE)为显性时表示为标准格式,为隐性表示为扩展格式;
  • 控制域表示数据帧中数据域的字节长度。标准格式中r0为保留位,扩展格式中r1(显性)和r0(显性)为保留位;数据长度码(DLC)表示数据域字节数,采用二进制编码,只允许为0~8;
  • 数据域表示数据帧中发送的数据内容,包括0~8字节,高位在前;
  • CRC域:CRC序列依次计算帧起始、仲裁域、控制域、数据域,用于校验数据是否正确;CRC界定符为单独的隐性位;
  • 应答域:包括应答位和应答界定符;发送器的发送报文应答位为隐性,接收器匹配CRC序列后的应答报文应答位为显性;应答界定符为隐性位;
  • 帧结束:由7个隐性位组成,每个数据帧和远程帧都由帧结束界定。

远程帧

远程帧功能:作为数据接收点,可通过发送远程帧启动资源节点发送数据

远程帧分为标准格式和扩展格式,包括:帧起始、仲裁域、控制域、CRC域、应答域、帧结束。远程帧的报文格式如下图所示:

远程帧中RTR位为隐性,且没有数据域,数据长度码的值表示请求数据帧的数据长度。

错误帧

错误帧组成:不同节点的出错标志叠加、出错界定符,错误帧结构如下图所示:

出错标志有两种形式:主动错误标志和被动错误标志,主动错误标志由6个连续的显性位组成;被动错误标志由6个连续的隐性位组成,除非被其他节点的显性位重写。

错误标志位的形式破坏了从帧起始到CRC界定符的位填充规则,或破坏了应答帧或帧结束的固定形式。

错误界定符由8位隐性位组成。

超载帧

超载帧包含两个域:超载标志(6个显性位)和超载界定符(8个隐性位),如下图所示。

引发超载帧发送的3种条件: 

  • 接收器要求延迟一个数据帧或远程帧到达

  • 在帧间间隔间歇域的第1和第2位检测为显性位

  • 若一个CAN节点在出错界定符或超载界定符的第8位(最后1位)采样到1个显性位,节点会发送1个超载帧

如果在帧间间隔间歇域的第3位期间检测到一个显性位,则改为将解释为帧起始。

帧间间隔

目的是为了与总线上的其他帧进行区分。注意,超载帧和出错帧之间没有帧间间隔,多个超载帧之间也没有间隔。

帧间间隔包括间歇域和总线空闲域。

  1. 帧优先级仲裁

  • 总线空闲时间,最先开始发送报文的节点获得优先级
  • 多节点同时发送,从仲裁域第1位开始仲裁,连续输出显性位最多的节点可继续发送
  • 具有相同ID的数据帧和远程帧在竞争时,RTR为显性的数据帧具有优先权
  • 具有相同ID的标准格式和扩展格式竞争时,RTR为显性的具有优先权
  1. 报文滤波和校验

    报文校验:。。。

    报文校验

    • 发送端:发送帧的同时逐位回读检测,如果直到帧末尾位均没有错误,则报文对发送器有效;若报文损坏则自动重发。重发必须在总线空闲时启动。

    • 接收器:如果直到最后,所有的位(除了帧末尾位)均没有错误,则报文对于接收器有效。

  2. 编码——位填充

    帧起始、仲裁域、控制域、数据域及CRC序列均通过位填充编码,发送器检测到位流中有5个连续为相同,则自动填充一个补码位。

    数据帧和远程帧(CRC界定符、应答域和帧结束)的剩余位域形式相同,不填充;错误帧和过载帧的形式也相同,但不通过位填充的方式进行编码。

    CAN总线报文里的位流根据“不归零”(NRZ)的方法来编码。在整个位时间里,位电平不是“显性”就是“隐性”。

  3. 错误处理和故障界定

    5中错误类型:位错误、填充错误、CRC错误、形式错误、应答错误

  • 位错误:发送器发送并监测,

  • 填充错误:填充法编码时出现第6个连续相同的位电平
  • CRC错误:接收器CRC计算结果与接收到的CRC序列结果不相符
  • 形式错误:当固定形式的位域含有1个或多个非法位,则检测为一个形式错误(除了接收单元检测到EOF(7位隐性位)的最后一位(第8位)为显性电平;数据编码长度(DLC)为9~15数值)
  • 应答错误:应答间隙期间监视到不为显性

节点错误处理:位错误、填充错误、形式错误、应答错误,在检测出错误后的下一位开始传输错误标志;CRC错误在ACK界定符后的下一位开始输出错误标志。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值