[应用相关] STM32 CAN 相关知识

[复制链接]
2011|39
 楼主| stm32jy 发表于 2018-6-30 18:02 | 显示全部楼层
显性电平和隐性电平
总线上的电平有显性电平和隐性电平两种。
总线上执行逻辑上的线“与”时,显性电平的逻辑值为“0”,隐性电平为“1”。
“显性”具有“优先”的意味,只要有一个单元输出显性电平,总线上即为显性电平。并且,“隐
性”具有“包容”的意味,只有所有的单元都输出隐性电平,总线上才为隐性电平。(显性电平比
隐性电平更强。)
 楼主| stm32jy 发表于 2018-6-30 18:03 | 显示全部楼层
数据帧(仲裁段)表示数据的优先级的段。标准格式和扩展格式在此的构成有所不同。
1.png
 楼主| stm32jy 发表于 2018-6-30 20:47 | 显示全部楼层
数据帧(数据段)数据段可包含 0~8 个字节的数据。从 MSB(最高位)开始输出。
1.png
 楼主| stm32jy 发表于 2018-6-30 20:48 | 显示全部楼层
数据帧(CRC 段)CRC 段是检查帧传输错误的帧。由 15 个位的 CRC 顺序 *1 和 1 个位的 CRC 界定符(用于分隔的位)构成。
1.png
 楼主| stm32jy 发表于 2018-6-30 21:45 | 显示全部楼层
数据帧(ACK 段)ACK 段用来确认是否正常接收。由 ACK 槽(ACK Slot)和 ACK 界定符 2 个位构成。
1.png
 楼主| stm32jy 发表于 2018-6-30 21:55 | 显示全部楼层
数据帧(帧结束)帧结束是表示该该帧的结束的段。由 7 个位的隐性位构成。 1.png


 楼主| stm32jy 发表于 2018-6-30 22:02 | 显示全部楼层
遥控帧
(1) 帧起始(SOF)
表示帧开始的段。
(2) 仲裁段
表示该帧优先级的段。可请求具有相同 ID 的数据帧。
(3) 控制段
表示数据的字节数及保留位的段。
(4) CRC 段
检查帧的传输错误的段。
(5) ACK 段
表示确认正常接收的段。
(6) 帧结束
表示遥控帧结束的段。
 楼主| stm32jy 发表于 2018-6-30 22:05 | 显示全部楼层
遥控帧的构成
1.png
 楼主| stm32jy 发表于 2018-6-30 22:08 | 显示全部楼层
遥控帧和数据帧
数据帧和遥控帧的不同
遥控帧的 RTR 位为隐性位,没有数据段。
没有数据段的数据帧和遥控帧可通过 RTR 位区别开来。
遥控帧没有数据段,数据长度码该如何表示?
遥控帧的数据长度码以所请求数据帧的数据长度码表示。
没有数据段的数据帧有何用途?
例如,可用于各单元的定期连接确认/应答、或仲裁段本身带有实质性信息的情况下。

 楼主| stm32jy 发表于 2018-6-30 23:23 | 显示全部楼层
错误帧 包括主动错误标志和被动错误标志两种
1.png




 楼主| stm32jy 发表于 2018-6-30 23:24 | 显示全部楼层
过载帧的构成
1.png
 楼主| stm32jy 发表于 2018-6-30 23:25 | 显示全部楼层
帧间隔的构成
1.png
 楼主| stm32jy 发表于 2018-6-30 23:26 | 显示全部楼层
优先级的决定
在总线空闲态,最先开始发送消息的单元获得发送权。
多个单元同时开始发送时,各发送单元从仲裁段的第一位开始进行仲裁。连续输出显性电平最多的单元可继
续发送。
仲裁的过程如图 所示。
1.png

 楼主| stm32jy 发表于 2018-6-30 23:27 | 显示全部楼层
数据帧和遥控帧的优先级
具有相同 ID 的数据帧和遥控帧在总线上竞争时,仲裁段的最后一位(RTR)为显性位的数据帧具有优先权,
可继续发送。
数据帧和遥控帧的仲裁过程如图  所示。
1.png

 楼主| stm32jy 发表于 2018-6-30 23:28 | 显示全部楼层
标准格式和扩展格式的优先级
标准格式 ID 与具有相同 ID 的遥控帧或者扩展格式的数据帧在总线上竞争时,标准格式的 RTR 位为显性位
的具有优先权,可继续发送。
标准格式和扩展格式的仲裁过程如图 所示。
1.png

 楼主| stm32jy 发表于 2018-6-30 23:29 | 显示全部楼层
位填充
位填充是为防止突发错误而设定的功能。当同样的电平持续 5 位时则添加一个位的反型数据。
位填充的构成如图所示。
1.png

 楼主| stm32jy 发表于 2018-6-30 23:30 | 显示全部楼层
先就这么多,其它的再整理吧。
515192147 发表于 2018-7-5 10:28 | 显示全部楼层
CAN 开发 还是比较麻烦的,最好用CAN的高层协议,CANweb是结合CAN和以太网优点的CAN现场总线高层协议,简易、好用
详细见:
通过CAN现场总线可Web网页浏览监控的开发板
https://bbs.21ic.com/icview-1945634-1-1.html

 楼主| stm32jy 发表于 2018-7-5 21:29 | 显示全部楼层
515192147 发表于 2018-7-5 10:28
CAN 开发 还是比较麻烦的,最好用CAN的高层协议,CANweb是结合CAN和以太网优点的CAN现场总线高层协议,简易 ...

正在学习CANOPEN,开源的有canfestival
wakayi 发表于 2018-7-14 21:23 | 显示全部楼层
这。。。。这是基础知识
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部