# 传统车载CAN网络和新兴Ethernet网络的区别?
在当前汽车电子架构向集中化、智能化、网联化飞速发展的背景下,传统的通信总线(如 CAN、LIN、CANFD)已不堪重负。车载以太网凭借其高带宽、高可靠性及灵活可扩展性,成为智能汽车的核心通信技术,堪称新一代“神经系统”。本文旨在介绍传统车载CAN网络和新兴Ethernet的差异,重点分析SOME/IP通信协议的工作原理。
一、技术特性对比
CAN总线采用信号触发机制,一旦达到发送周期或信号变化就会自动发送数据,无论接收方是否需要。而SOME/IP则采用按需传输模式,仅在接收方请求时才会发送数据。这种机制能有效减少总线上的冗余数据,显著降低系统负载。
二、什么是SOMEIP?
SOME/IP(全称:Scalable Service-Oriented Middleware over IP)中文可以翻译为:可扩展的面向服务的基于IP的中间件。
核心思想和特点:
1、 面向服务的架构:车上的功能(如读取服务,控制器空调,座椅加热等)被抽象成服务
2、 基于IP协议:运行在TCP/IP 或 UDP/IP 协议栈之上,意味着有更高的带宽
3、 可扩展性:不拘泥于某一个系统,可以用在多个系统上运行
4、 中间件:SOME/IP 位于操作系统、通信协议栈(TCP/IP/UDP)和上层应用软件之间
三、SOMEIP三种通信机制
方法Method
行为: 服务消费者 主动发起 一个特定的动作请求(调用方法),服务提供者 执行该动作 并 返回 一个结果(响应消息)给消费者。
交互模式: 请求/响应模式(Request/Response)。一次方法调用通常要求有一个对应的响应(即使响应是空或只包含状态)。也支持 Fire & Forget(只有请求,无响应)。
示例: LockDoor()(锁门操作),StartEngine()(启动引擎),CalculateRoute(start, end)(计算路线)。调用这些方法会导致服务器执行特定的任务并(通常)返回结果(如状态、计算出的路线)。
字段Field
行为:包含当前值(Current Value)。服务消费者可以读取(Getter)当前值,或者设置(Setter)一个新值。核心特性是它支持通知(Notification):当字段的值发生变化时(通常是被主动设置后或内部状态更新后),服务提供者会自动 推送 新的值给所有已订阅(Subscribe)该字段的服务消费者。
交互模式: 读/写/订阅通知模式(Getter/Setter/Notify)。
Getter: 消费者发送获取请求,提供者返回当前值(类似Request/Response)。
Setter: 消费者发送设置新值的请求(类似Request/Response,通常会返回设置操作的状态)。
Notify: 提供者在值改变时 主动推送 更新给订阅者(这是核心特色,属于 发布/订阅 模式)。
示例: CurrentSpeed(当前车速),DoorLockStatus(车门锁状态),AmbientTemperature(环境温度)。消费者可以读取当前车速(Getter),在解锁车门成功时DoorLockStatus字段的值会自动改变并通过通知告诉消费者(Notify),某些情况下可能允许消费者设置温度目标值(Setter)。
事件Event
行为:Server端向已定阅的Client端发送通知,一般用于状态值的通知或触发性事件的通知。
交互模式: Publisher/Subscriber (发布/订阅) 客户端订阅(Subscribe)自己感兴趣的事件组(Eventgroup)。当服务器检测到该事件发生(或事件所属的 Eventgroup 有变化)时,它会自动且单向地将事件消息发布给所有订阅了该事件组的相关客户端。没有直接的“请求”概念。客户端是被动接收通知。
示例:VehicleSpeed(车速更新事件),EngineOverheating(发动机过热警报),DriverDoorStatusChanged(驾驶员车门状态变化)。注意: 上面 Field 中的 Notifier 本质上也是 Event。但 Field 的 Notifier 是专门为单一字段值变化定义的事件。
简单记忆:
• Method:“做某事” 或 “问个问题”。需要你主动问(或命令),可能会得到回答(或没有)。
• Field:“记住一个值,且关心它的变化”。你能主动去看(Get)、主动去改(Set),还会有人告诉你它什么时候变了(Event 通知)。
• Event:“有什么发生了,就告诉你一声”。你不用问,设定好你要听什么消息,一旦发生,消息就自动推给你了。Field 的通知机制就是基于 Event 的。
四、SOMEIP(SD)是什么
SOMEIP(SD)主要的目的是确定服务的状态,动态管理、宣告和查找可用的 SOME/IP 服务。
具体功能包括:
• 服务宣告: 当一个 ECU 启动并提供服务时,其内部的 SOME/IP-SD 模块会通过网络发送 OfferService 消息,广播其提供的服务、服务实例、主要端点信息(IP、端口等)。
• 服务撤销: 当服务停止(ECU 关闭或服务不可用)时,发送 StopOfferService 消息。
• 服务发现/查找: 当另一个 ECU 需要某个服务时,其 SOME/IP-SD 模块可以发送 FindService 消息,主动查找所需的服务提供者。收到查找请求的服务提供者会回应 OfferService(如果它提供该服务)。
• 订阅管理: 对 SOME/IP Event 或 Field 感兴趣的消费者,需要通过 SOME/IP-SD 发送 SubscribeEventgroup 消息给服务提供者进行订阅。提供者确认订阅后(SubscribeEventgroupAck),才会在事件/字段状态变化时发送通知,也支持取消订阅。
敬请期待下一篇:如何利用总线分析工具进行车载以太网报文的监控和解析
#经纬恒润车载总线监控分析及仿真工具VBA#
更多推荐


所有评论(0)