详解CAN总线

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-07-03

揭开CAN总线的神秘面纱: 作为Bosch精心打造的实时分布式控制网络,CAN总线以其1Mbps的疾速传输,长达10公里的通信范围,以及独特的无损仲裁机制和多主结构,在汽车行业中大放异彩。


标准化的协议体系: CAN的物理层和数据链路层均遵循严谨的标准化,允许应用层根据需求自定义。收发器巧妙地转换逻辑电平,区分两种标准:ISO11898与ISO11519,它们的差分电平各有特色。


物理层的精密设计: 逻辑信号通过双绞线传输,有效抵抗干扰。STM32的通信实例中,我们见识到三种关键接口器件:线与逻辑、5位同步跳变和120Ω终端电阻,确保信号的准确传递。


数据链路层的智慧架构: CAN帧类型包括数据、远程和错误指示,标准与扩展帧各有不同的帧结构。通过仲裁段,帧ID决定通信的优先级,确保多点竞争的有效解决。


控制与数据段的精妙配合: 标准与扩展帧在控制段的细微差别中展现,数据段则承载0-8字节的信息。CRC段与ACK段如同双保险,确保数据接收的准确无误。


严谨的错误处理机制: 无论是CRC错误、帧格式问题,还是应答和位发送的瑕疵,CAN总线都有严格的规定和处理策略,确保节点状态的稳定。


灵活的通信管理: 过载帧通知接收端准备,帧间隔则用于隔离,CAN节点的构建涉及从硬件到应用层的全方位设计,每个节点都有特定的职责。


CAN收发器和控制器是数据传递的中枢,它们分别处理CAN报文,功能电路则执行信号采集或控制任务。硬件驱动在如P89V51的主控制器上,负责初始化、数据传输和接收,更改控制器时,应用软件需做相应调整,虚拟驱动层提供了更高效的移植性。


CAN控制器专司数据链路层的管理,包括初始化参数、帧的发送和接收,以及处理中断。接口管理逻辑则协调MCU指令与CAN模块的状态,确保通信的流畅。


在应用层,CANOpen、DeviceNet等协议解读数据的含义,驱动程序解析报文,赋予通信更丰富的内涵。


SJA1000支持多种输出模式,推荐正常输出以延长通信距离。收发器分为高速和容错模式,必须配合滤波和抗干扰电路,确保信号的纯净。


集成滤波和抗干扰功能的隔离收发器是CAN总线设计中的关键组件。SJA1000的可扩展RAM使得数据交换更为灵活,通过寄存器操作实现高效的数据处理。


在编程层面,我们需要细致入微的操作:设置复位位,配置时钟、模式和滤波,以及定制波特率;发送CAN帧时,需要检查状态,填充缓冲区并启动发送。


发送函数如SetSJASendCmd,提供了多种发送模式选项;主函数中,定时器和SJA1000的初始化、复位、波特率设置和数据发送构成流程基础。


务必注意,帧ID的格式与缓冲区管理密切相关,终端电阻对高波特率信号质量至关重要。SJA1000的接收缓冲区容量大(64字节),可以减轻MCU的压力,通过查询或中断机制实时获取报文。



  • CAN总线共有几种协议啊?有的说有数据链路层跟应用层两种,不是特别明白...
    答:物理层和数据链路层只是OSI七层模型最底下的两层,CAN总线的协议有很多种,但不是按照你说的来分,比如说博世的CAN2.0协议,ISO17898和J1939都是有关汽车方面的CAN总线协议,这些协议每个都对OSI7层模型中所有或者部分层给予规定。但是这些协议只是大致定义,有些只定义范围,很多具体的参数东西需要总线...
  • CAN收发器
    答:1. 无缝总线连接的革新 以往,CAN控制器通过离散电路连接至CAN总线,但现代CAN收发器已接过这一任务,提供了更为便捷的接口。CAN收发器的核心在于其两个关键引脚——CANH和CANL,它们分别对应于总线的高电平和低电平信号。CAN系统采用对称传输,以确保电磁兼容性,通过两根非屏蔽双绞线构建传输介质,确保...
  • Vechile SPY 3实用功能记录(一)
    答:Vechile SPY 3:强大的CAN总线测试助手 对于那些寻求高效且易于使用的汽车CAN总线工具的用户,Vechile SPY 3无疑是值得推荐的一款。Function Block功能是其亮点之一,它简化了安全访问和EOL下线流程检测等测试,相比CANoe的CAPL功能,Vechile SPY 3无需编程,更贴心地满足了个人需求。直观测试实例:确认阀体...
  • 汽车电控系统数字信号和模拟信号的区别
    答:其他欢迎补充编辑本段组成 电控单元一般由CPU,扩展内存,扩展IO口,CAN/LIN总线收发控制器,A/D D/A转换口(有时集成在CPU中),PWM脉宽调制,PID控制,电压控制,看门狗,散热片,和其他一些电子元器件组成,特定功能的ECU还带有诸如红外线收发器、传感器、DSP数字信号处理器,脉冲发生器,脉冲分配器,电机驱动单元,放大单元,...
  • 汽车电控系统中的基本设定是什么意思?
    答:为了简化电路和降低成本,汽车上多个ECU之间的信息传递就要采用一种称为多路复用通信网络技术,将整车的ECU形成一个网络系统,也就是CAN数据总线。编辑本段用途 主要用于以下方面: 1. 发动机控制,点火,气门正时调节,节气门调节,启动电机调节,启动离合调节,喷油调节等 2. 无极变速器控制,皮带位置调节,转速调节 3. 自动...
  • 噗TA汽车小知识四
    答:随着轿车电子化自动化的提高,ECU将会日益增多,线路会日益复杂。为了简化电路和降低成本,汽车上多个ECU之间的信息传递就要采用一种称为多路复用通信网络技术,将整车的ECU形成一个网络系统,也就是CAN数据总线。 抢首赞 评论 分享 举报 为你推荐:特别推荐 为什么越来越多的大学生主动选择“延迟毕业”? 二阳前有预兆吗...
  • 16针obd接口针脚定义什么作用
    答:针脚【2】:SAE J1850总线 这是OBD II标准中的关键通信路径,用于传输车辆的诊断数据和故障代码。针脚【10】:SAE J1850总线 与针脚【2】相同,负责数据传输。针脚【4】:车身地 连接汽车的电气系统,确保良好的接地。针脚【5】:信号地 用于信号的稳定传输。针脚【6】:CAN-H 提供CAN总线的高电平...
  • 汽车总线故障怎么解决
    答:◆诊断和维护用诊断仪对发动机控制模块进行自诊断,显示k线对正极短路。看了相关的维修信息,知道该车同时使用CAN总线和k线进行通信。车辆诊断座椅的端子T16/16为电源端子,端子T16/4为接地端子,端子T16/6和T16/14为CAN总线端子,端子T16n为k线端子。经过仔细分析,故障点锁定在k线上。原车线束出现问题的...
  • 斯柯达15款明锐原装CD机(德赛西威)接线图详解,特别是没有任何标识的两...
    答:没有接线柱的,功能肯定没有。没有标注的,功能不一定没有!左上角为至车内音箱:RR为后右FR为前右FL为前左RL为后左 右上GND为搭铁,VBAT为电源电压,这个地方应该是保险 右中CAN控制总线,CAN_high为+,CAN_Low为-,其他为常电、ACC电等 左下一般为输入控制:如AUX音频输入、车速输入等 右...
  • 发动机电控系统主要功能是什么?
    答:发动机电控系统的主要功能是控制燃油喷射式发动机的空燃比和点火时刻。除此之外,还有控制发动机起动、怠速转速、极限转速、废气再循环、闭缸工作、二次空气喷射、进气增压、爆燃、发电机输出电压、电动燃油泵和系统自诊断等辅助功能。电控发动机简介:电控发动机与化油器式发动机最大的不同在燃油供给系。电控...