CAN协议全貌
CAN总线是一种以广播方式工作的网络,所有节点都监听所有信息。硬件具备本地过滤功能,通过不归零位填充和逐位仲裁机制确保高效通信。四种关键报文类型——数据帧、远程帧、错误帧和过载帧,巧妙地管理总线访问,区分优先级,确保高效、精确的数据传输。深入理解CAN的错误处理机制至关重要。
位时序与同步
在教程的第8页,位时序计算器能帮助你计算相关参数和寄存器设置。CAN的物理层采用不归零位填充,支持双线平衡或单线连接(如SAE J2411),不同速度和连接器类型丰富多样。第6页的报文示波图展示了实际信号动态。
Data帧与远程帧详解
Data帧是11/94位的主体,内容寻址,包含仲裁字段、数据、CRC和应答时隙。远程帧用来请求数据,标记为远程,但不携带数据。错误帧用于检测和解决故障,保持总线通信的稳定性,详情见教程第3页。
错误定界与帧类型
错误定界符通过8个隐性位发送,用于节点识别错误。过载帧和错误帧类似,但较少使用,仅在82526等特定控制器中会出现。CAN协议的标准版本有11位(2.0A)和扩展的29位(2.0B),后者兼容11和29位报文。标准CAN与扩展CAN各有优势,具体应用需根据需求选择。
报文寻址与仲裁机制
CAN报文的“内容寻址”方式与传统地址不同,依赖硬件和软件过滤器来实现无显式地址的寻址。仲裁字段决定优先级,确保唯一节点发送。
标识符、速度与物理层
标识符由11或29位组成,但不能全为1,前7位通常留空。CAN物理层采用不归零位填充,支持多种连接器类型,如82C250和TJA1054,速度范围从1Mbps到50kbps。
连接*与端接
不同的CAN速度*了最大电缆长度,如1Mbps的总线最长可达40米。光耦合器会减小总线长度需求,而ISO 11898规定无论速度都需端接,高速CAN需要一个端接器。连接器种类繁多,如9针DSUB和5/6针Micro-C。正确端接总线是确保无反射干扰的关键。
位时序设置与示例
如需设置G22采样点,SAM值为1(3个样本)或0(1个样本),实际值需比寄存器值大1。例如,在16MHz振荡器下,250kbps速率时,采样点为62%,SJW设置为2个时间份额,BRP为4,TSEG1为5,TSEG2为3,位速保持在250kbps。
错误管理与节点状态
CAN控制器内置错误计数器,主动和被动错误处理,以及总线离线状态。错误检测机制包括位监视、填充和校验,错误*通过发送错误标志和调整计数器来实现。一旦达到阈值,节点会采取相应措施,如主动或被动错误标志,直到计数器溢出后退出总线。
故障应对与高层协议
ISO 11898列出了故障模式处理建议,高级驱动器如TJA1053能处理故障,可能影响速度。CAN协议包含物理层和数据链路层,而HLP如J1939、CANopen和CCP/XCP则负责更高层次的通信管理。更多疑问,可通过添加同事微信13824417328获取帮助,或浏览我们的汽车测控专业部分。
本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。