传统汽车协议的问题
如今的汽车不仅仅是通勤和交通工具,车辆现在设计得功能齐全,使旅程成为一种豪华体验。所有这些都是通过将先进的电子技术与车辆的发动机控制单元(ECU)集成而实现的。这种新的情景显著改变了ECU的不同单元之间的数据通信方式。传统的汽车协议,如CAN、MOST、LIN 和 Flexray,都是基于信号的通信协议,但这些协议存在一些明显的局限性,如下所述。
- 带宽有限:传统协议,如 CAN、LIN、MOST 和 Flexray,带宽有限。
- 更新、升级困难:这些协议只适用于没有任何软件升级或更新的静态系统。
- 存在不必要的开销,难以管理:在这些协议中,数据是在发送方和接收方之间进行通信的,只有在发生事件时(如接收到中断)才会传输数据。接收方可能并不需要每个事件都需要数据。因此,这些协议在通信通道上始终存在数据开销,这无法避免或以任何方式进行管理。
- 互操作性和跨平台性差:传统协议,如 CAN、LIN、MOST 和 Flexray,作为基于信号的通信协议,无法确保不同操作系统、嵌入式固件、数据接口和应用软件之间的互操作性。
SOME/IP 的特点
在上述提到传统汽车通信协议的局限性背景下,车载以太网的普及以及 SOA 架构在车端的发展,宝马集团在2011年引入了一种用于各种异构ECU之间数据通信的中间件协议,即基于 IP 的可扩展面向服务的中间件(Scalable service-Oriented MiddlewarE over IP,简称SOME/IP)。正如其名称所示,该协议具有以下特点:
- 可扩展性:该协议设计用于不同硬件平台、不同操作系统或嵌入式固件以及不同应用软件之间的可扩展性和互操作性。
- 面向服务:这是一个面向服务的协议。因此,数据仅在客户端请求或服务器通知特定订阅者时以客户端-服务器配置进行交换。这确保带宽不会被浪费,数据仅在需要的时间和位置进行通信/交换。
- 中间件:这是一种中间件协议,即它位于应用层,并具有自己的通用协议层,以处理更具体的操作和应用。
- 基于IP:这是一种基于以太网的协议。它使用类似的硬件接口,确保带宽高达100Mbps(CAN 一般是 512kb/s,CAN FD 能到 1MB/s)。数据通过中间件,即应用层,通过网络电缆使用 TCP/IP 或 UDP 协议进行通信。当客户端需要从服务器获取数据时,客户端使用TCP协议发起请求。如果服务器必须将数据传输给所有活动订阅者,它将使用 UDP 协议进行传输。通过UDP协议进行的数据通信可以是单播、组播或广播。
SOME/IP 最初是作为另一种 RPC 机制开发的,以确保与 AUTOSAR 设备的兼容性,并提供汽车使用案例所需的最大功能。它是专为 ECU 间客户端-服务器序列化而设计的网络层协议。目前,该协议可以在多个不同的操作系统上实现,包括 AUTOSAR、OSEK 和GENIVI。它还可以在没有操作系统运行的嵌入式固件上实现。相机、车载娱乐系统、遥测设备、AUTOSAR 设备甚至大型设备如信息娱乐系统等,都可以使用 SOME/IP 协议高效地交换 ECU 间的消息。自 Wireshark 3.2 SOME/IP 发布以来,SOME/IP 的支持已经公开,并可在Wireshark上访问。
如果对文章感兴趣,欢迎扫码关注!
Scalable service-Oriented MiddlewarE over IP explained