【摘要】随着车辆功能逐渐增多,用户需求不停更新,车辆软件需要快速迭代才能给用户更好的服务体验,更快的功能体验,真正满足千人千面的需求,从分布式EE架构转变为现在的中央计算加区域控制的架构,以SOA的形式实现软硬解耦,将更多的功能以原子服务的封装集中到车身控制器(BCM),根据动态配置进行不同服务的调用。本文从整车架构、BCM的功能定义、原子服务划分讲述BCM的原子服务设计。
当下汽车行业正面临转型的革命,随着新四化的提出,软件定义汽车已成为必然趋势,软硬件的解耦程度决定了企业产品的差异性,对硬件来说,需要可兼容、可扩展,对软件来说,需要升级快、可移植性好,因此从架构层面需要基于SOA来进行开发,将传统的分布式架构转为中央集中式架构,由中央计算单元与区域控制组成,将功能按颗粒度大小封装成不同的原子服务,以标准的服务接口进行调用,在功能交互过程中,交互双方无需考虑对方的协议,原子服务设计是决定软硬件耦合深度的重要因素,好的原子服务设计可以降低整车成本、屏蔽异构性且服务组合可以实现不同的功能,做到动态配置车辆功能。
1汽车架构的设计差异
1.1传统EE架构开发
图1传统EE架构的开发流程
图2基于SOA的EE架构开发流程
2功能定义
图3BCM的系统框图
图4服务的软件架构
原子服务设计,首先根据functionlist,列出BCM的所有功能,然后按照颗粒度大小,将功能转换为合适的API描述,在服务API描述中定义服务类型,可以是最小服务API,也可以是组合后的API,最小服务API如左前门开关服务,组合后API可以是左前门服务,此服务包括门锁状态、车把手状态、车门状态、车门开度、儿童锁状态等。一般BCM的原子服务定义为如下:车门服务、尾门服务、车窗服务、天窗服务、遮阳服务、车钥匙服务、车外鸣笛服务、低速报警服务、外后视镜服务、座椅服务、座椅通风加热服务、方向盘调节服务、迎宾服务、雨刮洗涤服务、制动灯服务、转向灯服务、报警灯服务、日行灯服务、雾灯服务、近光灯服务、远光灯服务、位置灯服务、倒车灯服务、激光灯服务、后牌照灯服务、logo灯服务、前照灯调节服务、空气净化服务、顶灯服务、手套箱服务、除霜除雾服务等。对于设备服务,定义如下:门开关、门锁、尾门开关、尾门锁、尾门电机、车窗开关、车窗电机等,根据输入条件和输出控制,隔离相应的设备。
以温度检测服务为例,依据SOME/IP的报文格式,需要定义serviceID/methodID、clientID、sessionID、RPCtype、返回值、报文周期、调用描述等,服务的调用方法有method、filed、fireandforget、event,其中method又分为RR和FF类型,filed分为setter/getter和notifier,那么该服务里的provider是BCM,consumer是中央计算单元。服务接口可以定义为几种形式,当使用RR-method时,对温度传感器状态检测,使用FF-method时,通知中央计算单元温度过高,当使用field,温度值检测,当使用event时,检测到超过某一阈值后再上报。以field温度值调用为例,服务的server为BCM,服务的client为中央计算单元,serviceID为0x4003,InstanceID为0x0001,serverport为30500,clientID为0X0003,clientport为30500,服务描述为:该服务主要识别室外温度值,RPCtype是field,field属性字段名为Snsr_TemperOut,field字段数据类型为floatntfT(),RPCSpecificType为getter,MethodName为OutSIdeTemp,以上ID和port仅作为示例,具体由车企根据实际情况确认。