CAN 总线最初是博世在 1980 年代为汽车应用而设计的。 它是一种多主机、多从机、半双工和容错协议,非常适合汽车应用的要求。 它简单、低成本、可靠,可用于恶劣环境。 CAN 总线为车辆中的所有 ECU 提供了一个入口点,这使得连接和诊断变得容易。CAN 总线数据可以提供对所连接设备的性能和状态的宝贵见解。 然而,由于高数据速率、低带宽和多变的网络条件,收集和处理 CAN 总线数据可能具有挑战性。 克服这些挑战的一种可能解决方案是使用 MQTT,即使在网络条件较差的情况下也能将数据从汽车及时传输到云端。
(相关资料图)
CAN总线简史“CAN 总线为车辆中的所有 ECU 提供了一个入口点,这使得连接和诊断变得容易。”
CAN 总线的主要目的是为汽车应用建立有效的通信系统,特别是为了降低车辆线束的复杂性。
1986 年,博世推出了他们最初的 CAN 协议,由于其可靠性和稳健性,该协议在汽车制造商中迅速获得了发展势头。 到 1993 年,它成为 ISO-11898 下的国际标准。 总结协议的演变:
•1991 年:梅赛德斯-奔驰成为首批在其 W140 S 级车型中实施 CAN 总线的汽车制造商之一。
•2004 年:推出 CAN FD(灵活数据速率),提供比传统 CAN 网络更高的数据速率和更大的有效载荷。
•2015 年:采用 ISO-16845:2015 作为实现经典 CAN 和 CAN FD 协议的设备的一致性测试计划。随着时间的推移,除了汽车应用,其他行业也开始采用这种多功能网络协议。 今天,它用于工业自动化系统 (CANopen) 和海洋电子设备 (NMEA 2000)。 它的广泛采用主要归功于它即使在恶劣条件下也能可靠运行,同时保持低成本实施要求。
CAN 总线如何工作?CAN 总线是一种分散式通信协议。 其分散式方法使其成为可靠性和实时性能至关重要的汽车和工业系统应用的理想选择。
在 CAN 网络中,所有节点都通过双绞线或光纤电缆连接。 每个节点都有其微控制器负责处理传入消息和发送传出消息。 数据由共享总线上的一个节点广播,允许所有其他节点接收它。 沟通过程的主要阶段是:
1.仲裁:为了防止多个节点尝试同时传输时发生冲突,CAN 使用基于消息优先级的仲裁过程。 消息的标识符值越低,其优先级越高。
2.错误检测:内置错误检测机制可确保 CAN 网络中的数据完整性。 这些包括循环冗余校验 (CRC)、帧校验序列 (FCS) 和来自接收节点的确认位。
3.故障限制:如果任何节点在传输过程中检测到错误或故障,它将进入“错误被动”状态,直到恢复正常运行。 这可以防止错误的传输影响整个系统的功能。
这种功能组合使 CAN 总线能够保持高水平的效率,同时确保复杂系统(如车辆或工厂自动化设备)中不同组件之间的可靠通信。
CAN 协议中的消息结构CAN 总线系统中的消息结构对于设备之间的高效通信至关重要。 该协议使用由多个字段组成的数据帧格式,包括标识符、控制字段、数据字段和错误检测机制。
•标识符:这个唯一的值决定了网络上每条消息的优先级。 在标准的 11 位标识符 (CAN 2.0A) 中,有多达 2048 个不同的优先级可用。 扩展的 29 位标识符 (CAN 2.0B) 提供了更多选项,具有超过十亿个不同的值。
•数据长度代码 (DLC):位于控制字段内,此代码指定数据字段中存在的字节数——范围从零到八个字节。
•数据字段:包含在字节大小的段中跨节点传输的实际信息。
•循环冗余校验 (CRC):一种内置的错误检测机制,通过检测传输错误并在必要时请求重传来确保可靠的通信。
•确认槽:接收节点用来确认消息的成功接收或指示需要重传的错误的单个位。
•错误帧:CAN 消息传递的可选部分,允许节点在检测到自身传输问题或从网络上其他设备接收到的消息时发出信号。
CAN 的类型以下是 CAN 的三种主要类型:#1:低速 CAN
低速 CAN,也称为容错或 ISO 11898-3,以高达 125 kbps 的速度运行。 它专为不太关键的系统而设计,例如车身控制模块、门锁、窗户控制等,在这些系统中数据传输速度并不重要。 它的主要特点是即使在总线中的一根电线发生故障时也能继续运行。
#2:高速 CAN
高速 CAN 或 ISO 11898-2 可以达到高达 1 Mbps 的速度。 与低速网络相比,这种类型的网络具有更快的数据传输速率,因此适用于对时间更敏感的应用,例如发动机管理系统和电子制动系统。 但是,它缺乏低速网络中的容错能力。
#3:CAN FD(灵活数据速率)
CAN
FD 由 Bosch 于 2012 年推出,是高速网络的扩展,具有更高的数据速率(高达 5 Mbps),同时保持与现有高速设备的向后兼容性。 该技术的主要优势在于它能够比传统 CAN 更有效地传输更大的有效载荷,使其成为电子系统日益复杂的现代车辆的理想选择。
CAN总线:优势与挑战优点
CAN 总线数据可以为车辆的性能、健康状况和行为提供有价值的见解。 将 CAN 总线数据收集到云端是通过大数据分析发挥车辆数据潜力的有效方式。
通过将机器学习、人工智能或其他分析工具应用于从大量车辆收集的数据,汽车制造商可以获得有价值的见解并利用它们来优化车辆性能。
•故障检测、故障排除和预测:通过分析 CAN 总线数据,可以识别来自设备和传感器的任何异常或错误信号。 这可以帮助诊断问题的根本原因并在它导致更多损坏或安全问题之前解决它。 制造商还可以通过将收集的数据输入模型来训练机器学习模型来预测故障。
•可视化车辆数据:利用收集到的数据,用户可以开发一个系统来在仪表板上显示聚合数据,允许用户过滤、排序和比较不同的车辆和指标。 仪表板还根据数据分析提供警报和建议。 该系统使用户能够深入了解他们的表现。
•车路协调:将采集到的数据与道路基础设施数据一起计算,构建车路协调系统。人工智能时代,数据是最有价值的财产。 通过将数据从汽车收集到云端,然后将其分发到各种数据基础设施(如数据库和数据湖),用户可以将数据用于几乎所有类型的应用程序。挑战在车辆本地收集 CAN 总线数据已经相当成熟。 然而,由于高数据速率、低带宽和多变的网络条件,收集和处理 CAN 总线数据并将洞察力实时传输到云端可能具有挑战性。 因此,将所有 CAN 总线数据传输到云端进行处理是不切实际的。 相反,可以在边缘侧本地收集和处理 CAN 总线数据,以减少数据量并将洞察力实时传输到云端。您至少需要两个组件来构建这样的解决方案:1.边缘计算引擎:边缘计算引擎可以只采集需要的CAN总线信号,灵活处理并实时触发MQTT传输动作。2.云端MQTT代理:MQTT代理可以帮助将处理后的CAN总线数据实时传输到云端。