【通信协议讲解】单片机基础重点通信协议解析与总结之CAN(四)

简介: 【通信协议讲解】单片机基础重点通信协议解析与总结之CAN(四)

四.CAN总线

基础特性:

  • 两根通信线:CAN_HCAN_L
  • 异步,半双工
  • 差分电平
  • 可挂载多设备,多设备同时发送数据时通过仲裁判断先后顺序

配置特性:

  • CAN控制器引出的TXRXCAN收发器相连,CAN收发器引出的CAN_HCAN_L分别与总线的CAN_HCAN_L相连
  • 高速CAN使用闭环网络,CAN_HCAN_L两端添加120Ω的终端电阻
  • 低速CAN使用开环网络,CAN_HCAN_L其中一端添加2.2kΩ的终端电阻


时序特性:

11位/29位报文ID

差分信号(VCAN_H-VCAN_L):

高速CAN规定:

电压差为0V时表示逻辑1(隐性电平)

电压差为2V时表示逻辑0(显性电平)

低速CAN规定:

电压差为-1.5V时表示逻辑1(隐性电平)

电压差为3V时表示逻辑0(显性电平)

帧类型:

数据帧

遥控帧

错误帧

过载帧

帧间隔

位填充:

发送方每发送5个相同电平后,自动追加一个相反电平的填充位,接收方检测到填充位时,会自动移除填充位,恢复原始数据


数据帧:

SOF(Start of Frame):帧起始,表示后面一段波形为传输的数据位

ID(Identify):标识符,区分功能,同时决定优先级

RTR(Remote Transmission Request ):远程请求位,区分数据帧和遥控帧

IDE(Identifier Extension):扩展标志位,区分标准格式和扩展格式

SRR(Substitute Remote Request):替代RTR,协议升级时留下的无意义位

r0/r1(Reserve):保留位,为后续协议升级留下空间

DLC(Data Length Code):数据长度,指示数据段有几个字节

Data:数据段的1~8个字节有效数据

CRC(Cyclic Redundancy Check):循环冗余校验,校验数据是否正确

ACK(Acknowledgement):应答位,判断数据有没有被接收方接收

CRC/ACK界定符:为应答位前后发送方和接收方释放总线留下时间

EOF(End of Frame ):帧结束,表示数据位已经传输完毕

  • 遥控帧:
  • 无数据段,其他部分与数据帧相同
  • 错误帧:
  • 总线上所有设备都会监督总线的数据,一旦发现“位错误”或“填充错误”或“CRC错误”或“格式错误”或“应答错误” ,这些设备便会发出错误帧来破坏数据,同时终止当前的发送设备
  • 过载帧:
  • 当接收方收到大量数据而无法处理时,其可以发出过载帧,延缓发送方的数据发送,以平衡总线负载,避免数据丢失
  • 帧间隔:
  • 将数据帧和远程帧与前面的帧分离开





相关文章
|
12月前
|
网络协议 数据格式
【通信协议讲解】单片机基础重点通信协议解析与总结之ModBus(五)
【通信协议讲解】单片机基础重点通信协议解析与总结之ModBus(五)
257 1
|
12月前
【通信协议讲解】单片机基础重点通信协议解析与总结之串口通信(三)
【通信协议讲解】单片机基础重点通信协议解析与总结之串口通信(三)
175 1
|
12月前
【通信协议讲解】单片机基础重点通信协议解析与总结之SPI(二)
【通信协议讲解】单片机基础重点通信协议解析与总结之SPI(二)
141 1
|
12月前
【通信协议讲解】单片机基础重点通信协议解析与总结之IIC(一)
【通信协议讲解】单片机基础重点通信协议解析与总结之IIC(一)
151 1
|
11月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
281 2
|
7月前
|
算法 测试技术 C语言
深入理解HTTP/2:nghttp2库源码解析及客户端实现示例
通过解析nghttp2库的源码和实现一个简单的HTTP/2客户端示例,本文详细介绍了HTTP/2的关键特性和nghttp2的核心实现。了解这些内容可以帮助开发者更好地理解HTTP/2协议,提高Web应用的性能和用户体验。对于实际开发中的应用,可以根据需要进一步优化和扩展代码,以满足具体需求。
683 29
|
7月前
|
前端开发 数据安全/隐私保护 CDN
二次元聚合短视频解析去水印系统源码
二次元聚合短视频解析去水印系统源码
200 4
|
7月前
|
JavaScript 算法 前端开发
JS数组操作方法全景图,全网最全构建完整知识网络!js数组操作方法全集(实现筛选转换、随机排序洗牌算法、复杂数据处理统计等情景详解,附大量源码和易错点解析)
这些方法提供了对数组的全面操作,包括搜索、遍历、转换和聚合等。通过分为原地操作方法、非原地操作方法和其他方法便于您理解和记忆,并熟悉他们各自的使用方法与使用范围。详细的案例与进阶使用,方便您理解数组操作的底层原理。链式调用的几个案例,让您玩转数组操作。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
7月前
|
移动开发 前端开发 JavaScript
从入门到精通:H5游戏源码开发技术全解析与未来趋势洞察
H5游戏凭借其跨平台、易传播和开发成本低的优势,近年来发展迅猛。接下来,让我们深入了解 H5 游戏源码开发的技术教程以及未来的发展趋势。
|
7月前
|
存储 前端开发 JavaScript
在线教育网课系统源码开发指南:功能设计与技术实现深度解析
在线教育网课系统是近年来发展迅猛的教育形式的核心载体,具备用户管理、课程管理、教学互动、学习评估等功能。本文从功能和技术两方面解析其源码开发,涵盖前端(HTML5、CSS3、JavaScript等)、后端(Java、Python等)、流媒体及云计算技术,并强调安全性、稳定性和用户体验的重要性。

推荐镜像

更多
  • DNS
  • 下一篇
    oss教程