让SOME/IP运转起来——SOME/IP系统设计(上)

什么是SOME/IP?

SOME/IP(Scalable service-Oriented MiddlewarE over IP)是AUTOSAR应用层的协议,是基于IP协议的面向服务的可拓展性的中间件。

SOME/IP中主要定义了:

  • 数据的序列化:SOME/IP支持的数据类型,复杂数据的序列化及反序列化方式
  • 通信机制:提供Request/Response、Fire&Forget、发布-订阅的通信机制
  • 服务发现:实现节点在网络上找到可用的服务,还可以进行订阅

SOME/IP作为一种通信协议,主要应用于车内ECU之间的通信,相比较传统的CAN来说具有可扩展性,报文传输内容更多,基于以太网,面向服务等优势。

那么如何使用SOME/IP实现车内ECU之间的通信呢?

SOME/IP系统设计

在这里插入图片描述
SOME/IP的系统涉及几个层面:功能,功能逻辑,通信,ECU部署。

由于功能需求、功能逻辑、ECU部署由架构工程师开发,通信过程由通信工程师进行设计,中间交接的部分是十分重要的,因此在整个过程中,需要架构工程师和通信工程师的共同合作,才能达到一个正确的设计结果。

SOME/IP系统设计需要通信工程师梳理使用SOME/IP传输的信号以及信号传输的逻辑,并将这些信号设计成服务接口,以符合SOME/IP面向服务的特点和通信机制,通信的逻辑形成时序图,可以为系统测试提供输入。

在整个系统设计的过程中会涉及到三个输出产物:

  • UC:以太网Use Case,承接架构的开发产物,用来梳理使用SOME/IP传输的信号内容和逻辑。
  • 矩阵:SOME/IP服务接口设计,将UC中梳理出来的需要使用SOME/IP传输的信号,以符合SOME/IP要求的服务接口的格式进行设计。矩阵还可以转换为ARXML供下游工具解析,并以此为基础继续开发。
  • 时序图:将UC中使用SOME/IP传输的功能的逻辑绘制为时序图,为系统测试提供输入。

系统设计注意事项

UC

系统设计的第一步,作为架构工程师与通信工程师之间工作衔接的中间产物,需要双方明确功能、信号、逻辑等,才能保证系统设计的正确性。

矩阵

  • 服务划分:可以根据功能或者SWC进行划分
  • 唯一标识符:Service ID、Method ID、Instance ID需要全局唯一指示服务接口
  • 服务接口:根据SOME/IP通信机制和接口类型的定义,选择能够实现功能的通信逻辑的接口和通信机制
  • 数据类型:根据SOME/IP对数据类型的要求,选择能够实现功能通信信号的数据类型,以确保SOME/IP可以正确序列化和反序列化
  • 订阅组:订阅的服务接口需要部署在某个EventGroup里,才能实现订阅
  • 通信协议选择:根据TCP和UDP的特点选择即可,如TCP更加可靠,UCP更加实时
  • 版本管理:可以根据平台或者车型的更新或扩展计划进行版本管理,需要保证向后兼容

时序图

需要体现Server和Client的ECU、服务、信号传输使用的服务接口,必要时还要体现接口具体传输的数据以及事件发送的机制。

SOME/IP通信设计例子

功能需求整理

  • 功能需求:通过HU接听电话,并且在屏幕上显示通话相关信息及状态
  • 子系统:该功能分为“交互”和“通话”两个逻辑单元
  • ECU部署:“交互”部署到HU,“通话“部署到TBOX

梳理交互逻辑及信息

  • 电话呼入
  • TBOX向HU发送通话信息
  • HU进行显示
  • 用户通过HU进行操作
  • HU向TBOX发送接听或者拒绝通话
  • TBOX向HU反馈操作响应并执行相应动作
  • 如果通话信息及状态有更新,TBOX向HU发送相关信息

服务接口设计

根据梳理的交互逻辑及信息,将服务定为TBoxTelephony,部署在TBOX上,服务接口分别为CallOperarion和CallInfo,分别用于控制电话接听或者拒绝和通话相关信息及状态。

下表为接口设计内容:

在这里插入图片描述

传输协议选择

根据TCP和UDP的特性,以及实际功能的要求,每个服务接口单独选择。

端口定义

系统设计的第一步,作为架构工程师与通信工程师之间工作衔接的中间产物,需要双方明确功能、信号、逻辑等,才能保证系统设计的正确性。

时序图设计

在这里插入图片描述

总结

SOME/IP系统设计实现了系统内ECU之间的SOME/IP通信,设计思路可以总结为确定功能需求,梳理功能的逻辑及信息,设计服务接口,传输协议及端口号的定义等。

矩阵内包含的服务接口设计是覆盖整个系统的,ECU的开发都需要遵循矩阵的设计,但是矩阵的内容可以是确定的,格式可能会大不相同,因此就需要一种统一的格式来承载——ARXML(AUTOSAR XML)格式文件,那么ARXML是如何生成的呢?敬请期待《SOME/IP系统设计(下)》。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/180401.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何通过智能管理箱实现高效文件管理:关键字轻松修改文件名

在信息化时代,文件管理变得尤为重要。智能管理箱已经成为我们生活中不可或缺的一部分。它可以帮助我们高效地管理各种文件,使得我们的工作和生活更加便捷。是一种高效的文件管理工具,可以帮助我们轻松地整理和分类文件,提高工作效…

计算机网络之网络层(全)

网络层的功能 互联网在网络层的设计思路是,向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。 路由器在能够开始向输出链路传输分组的第一位之前,必须先接收到整个分组,这种机制称为:存储转发机制 异构网络互连 用…

DC系列 DC:4

DC:4 靶机 文章目录 DC:4 靶机信息收集IP端口收集网页信息收集网站信息收集bp爆破 反弹shellnc反弹 内网信息收集收集jim用户的密码密码爆破 Charles用户密码收集 提权teehee提权 备注 信息收集 IP端口收集 用arp-scan 网段锁定ip nmap对端口服务进行详细扫描nmap -p- -sV …

C++笔记之lambda捕获列表中的‘this‘指针

C笔记之lambda捕获列表中的’this’指针 code review! 捕获this指针的lambda表达式在C中有多种应用场景。以下是一些示例: 异步编程:当您需要在异步操作中访问类的成员变量或成员函数时,可以使用捕获this指针的lambda表达式。例如&#xf…

Java之SpringCloud Alibaba【七】【Spring Cloud微服务网关Gateway组件】

一、网关简介 大家都都知道在微服务架构中,一个系统会被拆分为很多个微服务。那么作为客户端要如何去调用这么多的微服务呢?如果没有网关的存在,我们只能在客户端记录每个微服务的地址,然后分别去用。 这样的架构,会存在着诸多…

SpringBoot框架使用AOP + 自定义注解实现请求日志记录

一、SpringBoot记录日志 文章目录 一、SpringBoot记录日志1.1、环境搭建1.2、配置FastJson1.3、自定义LogRecord注解1.4、定义日志实体类1.5、创建HttpRequestUtil工具类1.6、定义AOP切面1.7、编写测试类1.8、运行测试 1.1、环境搭建 搭建SpringBoot工程。引入【spring-boot-st…

K8S的pod创建过程

创建流程图 用户发起请求创建deployment;apiserver收到创建资源的请求,apiserver对客户端操作进行身份认证,认证完成后接受该请求,并把相关的信息保存到etcd中,然后返回确认信息给客户端;apiserver向etcd…

【JVM】双亲委派机制、打破双亲委派机制

🐌个人主页: 🐌 叶落闲庭 💨我的专栏:💨 c语言 数据结构 javaEE 操作系统 Redis 石可破也,而不可夺坚;丹可磨也,而不可夺赤。 JVM 一、双亲委派机制1.1 双亲委派的作用1.…

Excel文档名称批量翻译的高效方法

在处理大量文件时,我们常常需要借助一些工具来提高工作效率。例如,在需要对Excel文档名称进行批量翻译时,一个方便快捷的工具可以帮助我们省去很多麻烦。今天,我将介绍一款名为固乔文件管家的软件,它能够帮助我们轻松实…

基于java+springboot+vue在线选课系统

项目介绍 本系统结合计算机系统的结构、概念、模型、原理、方法,在计算机各种优势的情况下,采用JAVA语言,结合SpringBoot框架与Vue框架以及MYSQL数据库设计并实现的。员工管理系统主要包括个人中心、课程管理、专业管理、院系信息管理、学生…

TrafficWatch 数据包嗅探器工具

TrafficWatch 是一种数据包嗅探器工具,允许您监视和分析 PCAP 文件中的网络流量。它提供了对各种网络协议的深入了解,并可以帮助进行网络故障排除、安全分析等。 针对 ARP、ICMP、TCP、UDP、DNS、DHCP、HTTP、SNMP、LLMNR 和 NetBIOS 的特定于协议的数据…

【Unity实战】最全面的库存系统(五)

文章目录 先来看看最终效果前言配置商店系统数据创建另一个NPC绘制商店UI控制商店开关列出商品添加和删除物品功能添加商品到购物车购买商品购物车删除物品商店预览效果购买和出售切换出售功能保存商店数据快捷栏物品切换和使用完结 先来看看最终效果 前言 本期也是最好一期&a…

直播间讨论区需要WebSocket,简单了解下

由于 http 存在一个明显的弊端(消息只能有客户端推送到服务器端,而服务器端不能主动推送到客户端),导致如果服务器如果有连续的变化,这时只能使用轮询,而轮询效率过低,并不适合。于是 WebSocket…

Git 案例(企业如何使用git开发项目)

一、企业中我们是如何开发 1) 入职第一天,管理人员分配/git账号密码 2) 开发人员下载代码即文档/ 根据文档将环境搭建成功 3) 团队一般会给你讲讲项目相关的支持 4) 你接到第一个需求(或者某个功能,一般要经过沟通,分析,设计...等过程) 5) 创建feature分支(一般一个需求对应…

FPGA高端项目:图像采集+GTP+UDP架构,高速接口以太网视频传输,提供2套工程源码加QT上位机源码和技术支持

目录 1、前言免责声明本项目特点 2、相关方案推荐我这里已有的 GT 高速接口解决方案我这里已有的以太网方案 3、设计思路框架设计框图视频源选择OV5640摄像头配置及采集动态彩条视频数据组包GTP 全网最细解读GTP 基本结构GTP 发送和接收处理流程GTP 的参考时钟GTP 发送接口GTP …

【PyQt学习篇 · ⑪】:QPushButton和QCommandLinkButton的使用

文章目录 构造函数菜单设置扁平化默认处理右键菜单QCommandLinkButton的使用 构造函数 QPushButton的构造函数如下: """QPushButton(parent: Optional[QWidget] None)QPushButton(text: Optional[str], parent: Optional[QWidget] None)QPushButt…

自定义的卷积神经网络模型CNN,对图片进行分类并使用图片进行测试模型-适合入门,从模型到训练再到测试,开源项目

自定义的卷积神经网络模型CNN,对图片进行分类并使用图片进行测试模型-适合入门,从模型到训练再到测试:开源项目 开源项目完整代码及基础教程: https://mbd.pub/o/bread/ZZWclp5x CNN模型: 1.导入必要的库和模块&…

进阶C语言-指针的进阶(三)

模拟实现qsort函数 🎈1.测试bubble_sort,排序整型数组🎈2测试bubble_sort,排序结构体数组 📝关于qsort函数,我们可以先去cpluplus网站上面了解一下: //1.排序整型数组,两个整型可以…

玻色量子“天工量子大脑”亮相中关村论坛,大放异彩

2023年5月25日至30日,2023中关村论坛(科博会)在北京盛大召开。中关村论坛(科博会)是面向全球科技创新交流合作的国家级平台行业盛会,由科技部、国家发展改革委、工业和信息化部、国务院国资委、中国科学院、…

使用Selenium IDE录制脚本

今天,我们开始介绍基于开源Selenium工具的Web网站自动化测试。 Selenium包含了3大组件,分别为:1. Selenium IDE 基于Chrome和Firefox扩展的集成开发环境,可以录制、回放和导出不同语言的测试脚本。 2. WebDriver 包括一组为不同…