How SOME/IP Enables Service Oriented Architecture in ECU Network
对带宽的不断增长需求已经迫使汽车行业超越了CAN、FlexRay甚至MOST等传统通信方式。我们谈论的是诸如信息娱乐、高级驾驶辅助系统(ADAS)、高度自动驾驶以及OTA升级等应用。所有这些新型汽车解决方案都需要快速的数据传输速度,达到100 Mbps。此外,从现有的基于信号的通信(如CAN、LIN)向基于服务的通信的范式转变是可以带来巨大变革的。
以太网出现了,考虑到ECU在车内外的不断变化的通信需求,它成为了最佳选择。作为业内广泛接受的协议,以太网有着30多年的严格研发历程,并有TCP/IP和UDP等经过验证的协议支持。然而,以太网不能直接用于汽车行业。
需要一些附加组件使其与汽车ECU的通信要求兼容。我们之前简要提到的一项先决条件是实施面向服务的架构(SOA),这就是SOME/IP(基于IP的面向服务的中间件)发挥主导作用的地方。
但在深入了解SOME/IP的细节之前,我们建议先理解面向服务的通信和基于信号的通信的区别。
基于信号的通信长期以来一直被用于通信协议,如CAN、LIN、FlexRay、MOST等。由于汽车解决方案中的软件和硬件紧密耦合,因此ECU之间的通信是静态定义的。假定软件在其寿命周期内不会被修改。基于信号的通信最适合此类应用程序。
在基于信号的通信领域中,数据在数据值更新或修改时发送到网络上。发送方不关心网络中的节点是否需要数据。这种安排可能会给节点带来不需要的数据,它们可能永远不需要。
快进到面向服务的架构,只有接收器需要数据时,发送方才发送数据。因此,在这种安排中,服务器必须被通知等待数据的接收器。这仅是面向服务的通信的一个方面。
当我们谈到高度自动化的驾驶、ADAS、连接车辆等时,面向服务的架构(SOA)是必不可少的。由以太网和SOME/IP提供支持,SOA将整个系统建模为服务接口。新软件可以轻松地添加到系统中,而不必担心与其他软件的兼容性。
虽然以太网提供了骨干网络,TCP和UDP提供了传输层,但需要中间件来进行数据序列化、远程调用过程等。这正是SOME/IP的创造目的!
SOME/IP代表基于IP的可扩展面向服务的中间件,由宝马集团于2011年开发。名称清楚地表明它是一种中间件解决方案,可以实现控制单元之间的面向服务的通信。更具体地说,SOME/IP提供了广泛的中间件功能,如序列化和远程过程调用(RPC),以实现ECU软件之间的通信。
SOME/IP可以在操作系统(Genivi、AUTOSAR、Linux和OSEK)和非操作系统嵌入式系统上实现。最近,它已成为自适应AUTOSAR实现的首选中间件。
如前所述,面向服务的架构使得不同网络上的软件组件之间更容易进行通信。因此,为了使这些不同网络上的应用程序互相理解,必须有某种类型的中间件。其主要作用是解决消息格式,并使其能够被消息的预期接收者理解。SOME/IP就是专门为此目的而设计的。
那么,SOME/IP如何解决不同的数据包,使ECU之间的通信成为可能呢?让我们来探讨一下!