没有合适的资源?快使用搜索试试~ 我知道了~
首页stm32CAN总线学习文档.docx
stm32CAN总线学习文档.docx
需积分: 13 118 浏览量
更新于2023-03-16
评论
收藏 154KB DOCX 举报
stm32CAN总线学习.docxstm32CAN总线学习.docxstm32CAN总线学习.docxstm32CAN总线学习.docxstm32CAN总线学习.docxstm32CAN总线学习.docxstm32CAN总线学习.docxstm32CAN总线学习.docxstm32CAN总线学习.docxstm32CAN总线学习.docx
资源详情
资源评论
资源推荐

STM32F4 CAN 学习记录
1.CAN 协议学习
CAN 基础
属于多主机局部网,采用多主竞争式总线结构,具有多主站运行和分散仲裁的串行总线以及广播通信的特
点,各节点之间可以实现自由通信。
总线以报文为单位进行数据传送,报文的优先级由标识符决定,具有最低二进制数的标识符有最高的优先
级。
总线采用差分电压传输;在空闲状态下 和 均为 左右,此时的状态表示为逻辑“,称为
“隐性”电平差值为; 当 比 高时表示逻辑“,称为“显性”电平差值为。显性时,通常电
压值为:,。
总线采用“载波监测,多主掌控/冲突避免”(/)的通信模式。该模式工作流程大致如下:
当总线处于空闲状态时(呈隐性电平),任何节点都可以向总线发送显性电平作为帧开始。
当网络中存在 个及以上节点同时要求发送时就会产生竞争。 总线按位对标识符进行仲裁;各节点
在发送电平的同时也在监听总线,如果总线电平与发送电平不同,则表明总线上存在更高优先级的节点
在发送,则节点停止发送退出竞争。其他节点继续上述过程直到剩余 个节点,则最终优先级最高节点
获得总线控制权并发送数据。
参与总线仲裁的只有仲裁段;基础 相同的标准 报文比扩展 报文优先级更高;相同 的数据帧
与远程帧,数据帧优先级更高。
CAN 报文结构
分为标准格式和扩展格式;标准帧采用 位标识符 ,共可表示 条报文;扩展
帧采用 位标识符 ,共可表示 亿多条报文。
总线上传输的数据帧共有 种类型:数据帧、远程帧、错误帧、过载帧。每一帧都由多个场构成,每个场
也都由多个位组成。下面分别描述着几种帧结构。
1) 数据帧:用于传输数据
数据帧由 个不同的位场组成:帧起始、仲裁场、控制场、数据场、 场、应答场、帧结尾。数据帧组
成如下图。

根据标识符 长度的不同又可分为标准数据帧和扩展数据帧;标准格式具有 位标识符,扩展格式具有
位标识符。两种格式的仲裁场部分不相同,其余场都基本一致;具体组成分别如下:
标准数据帧格式
帧起始:( !)标志着数据帧和远程帧的起始。它以一个比特的显性位“出现,只有在总线处于空闲状
态时,才允许发送。
仲裁场:("#$%"&'(!$)*+)由标识符(+)&,)")和远程发送请求位(-)标志组成。数据帧 -=
;远程帧 -=;标识符的长度为 位,按高位在前低位在后的顺序发送,最低位为 。
控制场:控制场包括两个保留位(./、)和 位数据长度码(),这两个保留位必须发送显性
位(逻辑 )。
数据场:数据场由被发送的数据组成,包括 ~0 个字节(最长 0 字节)。
CRC 场:由 位 序列和 位 界定符(必须为逻辑 )组成。
应答场:(1)由应答间隙(逻辑 )和应答界定符(逻辑 )组成。
帧结束:每个数据帧和远程帧均由 个隐性位(逻辑 )组成。
扩展数据帧格式
帧起始:同标准帧格式。
仲裁场:在扩展帧格式中,仲裁场由: 位基本 、、.、0 位扩展 、- 组成。 位为“替代
远程请求位”,属于扩展格式,它位于扩展帧中标准帧 - 的位置,因而替代标准帧的 - 位。在扩展帧
格式中,. 属于仲裁场,采用隐性电平;标准格式中,. 属于控制场,采用现行电平;通过 . 可以
区分标准帧和扩展帧。
控制场:同标准帧格式
数据场:同标准帧格式。
CRC 场:同标准帧格式。
应答场:同标准帧格式。
帧结束:同标准帧格式。

2) 远程帧:用于请求具有同一标识符的数据帧
远程帧也有标准格式和扩展格式,而且都由 2(个不同的位场组成:帧起始、仲裁场、控制场、 场、应
答场、帧结尾。远程帧的组成如下图。
远程帧本身没有数据场,除 - 位被设置为 ,其余部分与数据帧完全相同
3) 错误帧:任何单元检测到总线错误就发出错误帧
错误帧由两个不同的场组成。第一个场是由不同站提供的错误标志(. (!3)的叠加;第二个场是错
误界定符。出错帧的组成如下图。
错误标志重叠:
错误标志分为主动错误标志和被动错误标志。主动错误标志由 2 个显性位(逻辑 )组成,被动错误标志
由 2 个隐性位(逻辑 )组成。当一个节点发生错误时,如果处于主动错误状态就会发送主动错误标志,处于
被动错误状态时发送被点动错误标志。
错误界定符:
错误界定符由 0 个隐性电平(逻辑 )组成,用于结束错误帧( 位错误界定符 位 . ! 组成)。
4) 过载帧:用于在先行和后续数据帧(或远程帧)之间提供一附加的延时
过载帧通常由尚未处理完上一帧消息的 控制器发出,可以用于延迟网络中其他设备发送下一帧消息。
过载帧的结构类似于错误帧,过载帧包括两个位场:过载标志和过载界定符。过载帧的组成如下图。
过载标志:
过载标志由 2(个“显性”的位组成。过载标志的所有形式和主动错误标志的一样。过载标志的形式破坏了间
歇场的固定形式。因此,所有其他的站都检测到过载条件并与此同时发出过载标志。
过载界定符:
过载界定符包括 0 个“隐性”的位。过载界定符的形式和错误界定符的形式一样。过载标志被传送后,站就
一直监视总线直到检测到一个从“显性”位到“隐性”位的跳变。此时,总线上的每一个站完成了过载标志的发送,
并开始同时发送剩余的 个“隐性”位。
剩余11页未读,继续阅读














安全验证
文档复制为VIP权益,开通VIP直接复制

评论0