
SOME/IP开发项目总结实践经验
5星
- 浏览量: 0
- 大小:None
- 文件类型:PPTX
简介:
本项目聚焦于SOME/IP协议在汽车电子系统中的应用实践,通过详细分析与开发过程分享,旨在为相关技术团队提供宝贵的参考和启示。
SOMEIP开发-实际项目总结
什么是SOME/IP?
全称Scalable service-Oriented MiddlewarE over IP(基于IP协议的面向服务的可扩展性通信中间件)。通常,它包括具体实现:SOME/IP、SOME/IP-SD和服务传输层协议(SOME/IP-TP)。
特点:
1. 服务发现
2. 远程过程调用(RPC)
3. 获取和设置进程信息
与CAN对比:
SOME/IP是基于IP的面向服务通信中间件,而CAN则是一种控制器局域网络总线通信标准,在汽车中广泛使用。
形态:
在汽车软件开发领域,存在两种形式:一种作为Autosar模块集成;另一种则是独立于Posix系统的库文件形式。
消息格式:
一个完整的SOME/IP消息包含以下内容:
- Message ID (服务或方法ID)
- Length(从Request ID算起的消息长度)
- Request ID
- 协议版本号
- 接口版本号
- 消息类型
- 返回码
- 数据负载
支持的数据结构:
包括基础数据类型和复杂类型的结构化数据。
消息通信方式:
有四种:请求与响应、发送即忘、通知(发布/订阅模式)及事件通知。其中,Notification又分为周期性更新、变化时推送以及epsilon改变阈值推送三种情况。
EH32项目开发所需技能包括C++面向对象编程基础和IDL描述语言知识,并可能需要了解JNI编程用于Android相关工作。
Wireshark抓包分析报文建议使用Linux系统进行调试环境搭建,以提高开发效率。
依赖库:
- C++ boost
- 开源的vsomeip协议实现
- commAPI(基于FrancaIDL定义静态接口)
开发流程中会用到序列化技术来处理复杂的数据结构。然而,在与AUTOSAR设备通信时,需要遵循其规范。
Fidl文件示例说明了如何使用commApi工具生成代码,并进行JNI封装以实现在Java和C++间的调用。
通信矩阵:
每个服务名都有客户端进程和服务端进程,二者间通过SOME/IP协议完成消息交互。根据业务需求不同,一个Service Name可能包含多个方法及事件。
全部评论 (0)


