APAUTOSAR设计思想及原理

汽车电子与软件 2022-01-31 09:13


前  言

AP AUTOSAR 设计思想及原理



视频






AP AUTOSAR 的设计思想



今天给大家分享一下在AP AUTOSAR 里面我们怎么样去做一个设计,整个AP的设计思想及原理性的东西。

AP比较抽象,如果不是针对一个具体问题来讲AP的一些设计的话,会比较难以理解,所以本期我们尽量地去阐述在AP下面,它有些什么功能,一般我们在AP下面去做设计的话,它会涉及到哪些东西,以这个方向带大家一步步进入,后期带大家回顾下可能会更有感觉些。

首先看下AP的一个设计思想,它的中心的点是什么?其实就AP来说,它是一种通用的系统性的一个方法论,它描述了在POSIX这个系统下面怎么样去做应用的一个开发。



相信很多人都已经做过类似的开发,其实我们在做应用开发的过程中避不开的讨论就是:

我们的应用会跑在什么OS上面?
我们有哪些middleware(中间件)?
这些应用要跟其他的应用有怎样的一个交互?
这个交互又怎样去定义他们之间的一个接口?
他们之间的是以什么样的方式去通讯?

其实上述问题对应用开发来说,都是要去考量的一些问题。如果只是做自己的开发,相对比较简单。

但是,应用最大的问题就是怎么跟别人去做交互,交互问题在应用开发中是一个比较窄的点,所以就AP AUTOSAR而言,它的一个设计思想更多的是一种服务的思想。

比如说我们在做自己的一个应用,那这个应用肯定不是一个孤立存在的,你肯定会调用别人的东西。

同时如果我们把自己定位成一个服务的话,肯定会开放一些东西给到别人去使用,让别人去call 我们的一些服务,所以AP AUTOSAR 要解决一个问题就是要做一个Adaptive Application(简称AA)应用。

那么在AP AUTOSAR中如何来描述我们的AA呢,需要从以下几个方面进行描述:

  • 描述AA的运行环境,如Machine(Virtue ECU)及CPU Core ID

  • 描述AA的启动配置及启动依赖

  • 描述AA的加载及通信端口,应用如果要存在的话,首先要解决的就是通信的问题。当我们在做通信时,我们需要知道,通信端口是什么、ID是什么?所以我们需要明确自己的通信方式跟ID。

  • 描述AA的Log Trace的方式、配置及打印级别,因为我们需要做Debug

  • 描述CP及AP之间通信的方式、端口及接口定义

  • 当我们把AA定义为一个服务时,我们需要描述Service AA的身份标识,可提供的物理连接端口及其及接口定义。对于接口定义的 "消息通知" 来说,当然也包括我们的 " Event ID "以及 Event 所携带的 Data Type等。当我们在描述文件中对我们的服务接口进行详细描述后,对方获取我们的接口后,就知道如何来对接了。

  • 描述 Proxy AA的身份标识,及通过何种物理端口与Service AA进行连接并完成接口定义的 "消息通知" 及 "方法" 调用。

  • 描述AA归属的哪些功能组

需要注意的是,上述描述性的东西,其实就是我们建模的东西。输出产物为ARXML文件。这个ARXML后期会生成 ".json" 文件。

我们可以通过创建模型或者修改我们的".json" 文件来完成对我们想要的应用的描述。因为只有有了这些描述,执行管理(EM)才能知道如何来加载我们的应用。在通信(如使用SOME/IP)的时候,别人才能找到我们以及我们才能知道怎么发现别人。

总而言之,AP AUTOSAR的设计思想就是一个方法论,它通过描述一个应用的具体行为,通过中间件的方式,让其被系统加载起来。以及描述服务消费者和服务提供者之间如何对接的问题。


Machine Manifest 的定义及使用



下面我们看一些更具体一点的,这里涉及到了 Machine Manifest 的定义。

下图做了比较清晰的一个描述。



那么Machine是什么?我们的应用都是运行一个Machine上面的,其实我们现在的SOC都是很强大的,可以在我们的一个SoC上面去挂多个Machine,Machine1、Machine2、Machine3。

然后我们可以把某些应用运行在 Machine1、Machine2或者Machine3里面,所以Machine它是在硬件的基础上的一个虚拟的概念,它映射的是用于描述CPU/内存/物理单元的一个硬件资源。

无论怎么样,我们的应用一定是运行在某个Machine上,Machine可能用到了当前的这个SoC里面其中某一个Core,比如说我们有八个A72的Core,把前面两个Core配置成Machine1,中间的两个core配置Machine2,通过这种方式可以让你的应用把它归属到某个具体的一个Machine上面,那具体的 Machine 上就绑定了具体它跑在哪个Core上面。

同样的话,这种用法的还有一种叫虚拟机的用法。也就是说在我们的SoC之上再去挂Hypervisor,在 Hypervisor 上再挂 Guest OS,在 Guest OS 上面再挂接 Machine。


实际上这就实现了对Soc分层次的虚拟的一个用法。对一个应用来说,它一定要把自己挂接在某个Machine上的。


那么Machine的定义是什么?是用于描述如CPU/内存/物理连接等硬件资源,包括:

  • ECU的 Resource 描述,如CPU可用的 Processor 类型及数量

  • Machine定义了所有可用的物理通信 Connector,比如 EthernetConnector ,及其对应通信端口NetworkEndpoint的描述(IPAddress or Domain & Port)

  • ServiceDiscovery Configs描述通过可用物理通信端口监听来自 Multicast 地址信息定义的 SOME/IP Protocol报文

  • 定义Machine的状态机,应用能不能工作都是跟着 Machine 状态机走的。

  • 配置 AP AUTOSAR 的OS(当前很多供应商都还没实现)


对于AA来说,需要绑定某个配置好的Machine,设置AA可以工作或禁止工作在哪个或哪些CPU Processor上,并指定其使用Machine定义的哪个通信Connector。



创建应用程序清单



Application Manifest用于描述实例化运行在Machine之上的可执行的Process:



我们一般从以下几个方面对应用清单进行描述。


配置Executable启动选项,包括以下内容


  • 配置进程启动依赖关系
  • 配置进程的调度策略
  • 配置进程的线程优先级
  • 配置进程所在的功能组(Function Groups)
  • 配置进程工作/不工作在哪个或哪几个Processor上


配置Executable的Provided/RequiredPort及Port所绑定的Service Interface


每个Process都对应有一个专属的Manifest配置


同一个Executable可以被实例化到多个Process对应的Manifest,也就是说,一个Process至少要包含一个Executable,一个Executable可以被多个Process引用。

总的来说,这里面最重要的就是Executable 启动选项的配置。



创建服务接口及服务接口部署



Service Interface(服务接口)是什么?服务接口定义了Skeleton/Proxy之间的接口关系,主要包括以下交互方式:


  • Notify: 定义消息event_id及对应的消息所携带的数据结构
  • Method Call:定义方法调用供Proxy使用,需定义所有输入参数的数据结构,及返回值的数据结构;Skeleton在完成Method Call调用执行后,Skeleton会发送执行结果的返回值给Proxy
  • Fire & Forget:定义方法调用供Proxy使用,需定义所有输入参数的数据结构,无返回值;Skeleton在完成Method Call调用执行后,不会Response给Proxy
  • Field: 为所定义的数据结构可以同时提供Service Notifier,及Proxy  Getter/Setter 的Method Call功能


Service Interface Deployment 描述了如何部署Service Interface


  • 为 Service Interface 分配指定的 Service id

  • 为 Service Interface 分配 major_version 及 minor_version,某一个服务可能会存在多个版本,每个版本里面的服务接口可能是不一样的。


我们在做服务设计时,很重要的一步就是如何定义服务接口。


Provided/Required 服务实例



定义和配置服务实例的元模型如下:



服务实例相关的设计主要包括以下内容。


创建Service Instance:


  • 为Provided Service绑定对应的Service Interface,配置发送Offer Service报文的周期,分配Instance Id

  • 为Required Service绑定对应的Service Interface,配置发送Find Service报文的周期,分配Instance Id

  • Instance ID:Proxy引用的Required Instance Id一定要与对应的Skeleton提供的Provided Instance Id保持一致


Mapping Service InstanceTo Machine:


  • 配置Provided/Required Service Instance使用哪个Machine里的哪个物理通信Connector,即选用哪个Machine用于执行该Service Instance

  • 配置TCP/UDP Port


Mapping Service Instance To Provided/Required Port:


  • 为Provided/Required Service Instance配置使用哪个Excutable定义的Provided/Required Port,即把该Service Instance挂在哪个进程,绑定哪个Port而执行



模型创建及配置的生成产物



在我们建模完之后,会生成以下产物。


生成Skeleton/Proxy通信框架的基类源代码,供Application开发者继承基类使用以直接获取通信能力:


  • 生成Notification/Field/Method Call所关联datatype的数据结构,及对应数据结构payload的基于Someip Protocol的Serialize/Deserialize实现
  • 生成Skeleton/Proxy的Event,Method及Field的函数接口及对应的Message Builder的Serialize/Deserialize实现
  • Skeleton/Proxy Pattern生成所有Provided/Required Service Instance及SOMEIP/IPC binding等初始化实现,以及Offer/Find Serviced的具体实现


启动配置JSON文件描述,供Execution Manager启动加载应用时使用:


  • 进程的启动依赖
  • 进程的调度策略及线程优先级§进程所属的功能组及其Machine状态机的所有可用状态


SOME/IP JSON配置文件,供SOME IP_Daemon使用:


  • 配置进程所有用到Services的属性:Service Name, Service Id,Service Version,Methods(name/id),Events(name/id)
  • 配置了进程的Provided Service Instance:关联的ServiceId,InstanceId,Service Discovery的参数属性,映射到Machine的参数属性(NetworkIP Address, Tcp/Udp PortNumber)
  • 配置了进 程的Required Service Instance:关联的ServiceId,InstanceId,Service Discovery的参数属性,映射到Machine的参数属性(NetworkIP Address, Tcp/Udp PortNumber)



模型生成产物如何被Middleware Platform模块使用



下图就是上述模型生成的最主要几个产物,这些产物会被如何使用我们会在之后的内容中进行分享。




 AP AUTOSAR 核心组件



下图为AP AUTOSAR 的核心组件,也叫功能集群,简称FC。



上图中,Execution Manager、Communication Middleware 是这些组件里最核心的组件,IAM是做权限管控的,Diagnostic Manager是做诊断,Network Manager 是做网络管理,Update Manager 是做升级,Log Manager 是做Log的一些管理,Health Manager 是做健康状态监控的。



核心组件功能描述


下面对上述核心组件的功能进行一个简单的描述。


Execution Manager:负责对进程的生命周期进行管理


  • 搜寻指定路径下所有可用的Executables并加入进程列表中,启动阶段按进程依赖顺序加载所有配置在默认功能组的进程

  • 当发生功能组状态切换时,终止未定义在新功能组的进程,并按照进程加载依赖顺序重新加载新功能组的所有进程

  • 当功能组内的状态发生迁移时,驱动所有被加载的进程往相应的状态迁移


IAM:为应用访问及控制Autosar资源提供身份鉴权


  • 用户需实现PolicyDecision Point (Grant或Deny的Policy)策略

  • IAM把应用Application的身份鉴权的请求,对接到用户的Policy策略,并给出鉴权结果回给Application


Platform Health Manager:管理被监控运行实体的健康状态


  • 监测及判断运行实体的运行状态
  • 当检测到异常状态时,按照定义执行RecoveryAction
  • 管理各个被监控进程报告的健康状况,并报告PHM的监控及状态切换结果给到用户Application,以便用户执行最终如Watchdog等自定义的决策


Log Manager:提供Log前台打印API及后台Log存储服务


  • 可提供CONSOLE/FILE/DLT/SYSLOG等工作模式

  • 可配置多级别Verbose/ Debug/ Info/ Warn/ Error/ Fatal的打印控制


Communication Manager:提供SOME IP Protocol的通信功能

  • 支持以SOME IP/IPC binding模式为Offer Service及Find Service提供发送及接收Service Discovery Message的能力

  • 管理着所有Provided Services及Required Services,并为每个Service Interface定义的Event/Method/Field建立映射列表

  • 作为所有基于SOME IP Protocol Message(Communication & Service Discovery)的Broker,为sender和receiver提供router服务

Diagnostics Manager:提供诊断服务处理及内存地址管理功能

  • 支持多种诊断传输协议,如DoIP或者用户自定义的传输协议

  • 提供多个诊断服务,并支持多个诊断会话并行处理

  • 支持UDS定义的标准服务及用户自定义服务


Persistence:提供存储服务

  • 提供基于文件存储的读写功能

  • 提供基于Key-ValueDatabase的访问及保持功能


UCM:负责对AdaptiveApplication的安装、更新和删除

  • 升级包自身需包含完整的如版本、依赖、认证及签名等信息

  • UCM接收来自AA的升级请求,传输用于升级的目标软件包,对软件包进行验签及完整性校验,根据Manifest的描述将目标文件安装到指定路径下/删除指定路径下的目标文件


本期分享就到这里,下期见。

结  束

汽车电子与软件 主要介绍汽车电子软件设计相关内容,每天分享一篇技术文章!
评论
  • 2024年是很平淡的一年,能保住饭碗就是万幸了,公司业绩不好,跳槽又不敢跳,还有一个原因就是老板对我们这些员工还是很好的,碍于人情也不能在公司困难时去雪上加霜。在工作其间遇到的大问题没有,小问题还是有不少,这里就举一两个来说一下。第一个就是,先看下下面的这个封装,你能猜出它的引脚间距是多少吗?这种排线座比较常规的是0.6mm间距(即排线是0.3mm间距)的,而这个规格也是我们用得最多的,所以我们按惯性思维来看的话,就会认为这个座子就是0.6mm间距的,这样往往就不会去细看规格书了,所以这次的运气
    wuliangu 2025-01-21 00:15 61浏览
  • 电竞鼠标应用环境与客户需求电竞行业近年来发展迅速,「鼠标延迟」已成为决定游戏体验与比赛结果的关键因素。从技术角度来看,传统鼠标的延迟大约为20毫秒,入门级电竞鼠标通常为5毫秒,而高阶电竞鼠标的延迟可降低至仅2毫秒。这些差异看似微小,但在竞技激烈的游戏中,尤其在对反应和速度要求极高的场景中,每一毫秒的优化都可能带来致胜的优势。电竞比赛的普及促使玩家更加渴望降低鼠标延迟以提升竞技表现。他们希望通过精确的测试,了解不同操作系统与设定对延迟的具体影响,并寻求最佳配置方案来获得竞技优势。这样的需求推动市场
    百佳泰测试实验室 2025-01-16 15:45 310浏览
  •  光伏及击穿,都可视之为 复合的逆过程,但是,复合、光伏与击穿,不单是进程的方向相反,偏置状态也不一样,复合的工况,是正偏,光伏是零偏,击穿与漂移则是反偏,光伏的能源是外来的,而击穿消耗的是结区自身和电源的能量,漂移的载流子是 客席载流子,须借外延层才能引入,客席载流子 不受反偏PN结的空乏区阻碍,能漂不能漂,只取决于反偏PN结是否处于外延层的「射程」范围,而穿通的成因,则是因耗尽层的过度扩张,致使跟 端子、外延层或其他空乏区 碰触,当耗尽层融通,耐压 (反向阻断能力) 即告彻底丧失,
    MrCU204 2025-01-17 11:30 154浏览
  • 随着消费者对汽车驾乘体验的要求不断攀升,汽车照明系统作为确保道路安全、提升驾驶体验以及实现车辆与环境交互的重要组成,日益受到业界的高度重视。近日,2024 DVN(上海)国际汽车照明研讨会圆满落幕。作为照明与传感创新的全球领导者,艾迈斯欧司朗受邀参与主题演讲,并现场展示了其多项前沿技术。本届研讨会汇聚来自全球各地400余名汽车、照明、光源及Tier 2供应商的专业人士及专家共聚一堂。在研讨会第一环节中,艾迈斯欧司朗系统解决方案工程副总裁 Joachim Reill以深厚的专业素养,主持该环节多位
    艾迈斯欧司朗 2025-01-16 20:51 146浏览
  • 随着智慧科技的快速发展,智能显示器的生态圈应用变得越来越丰富多元,智能显示器不仅仅是传统的显示设备,透过结合人工智能(AI)和语音助理,它还可以成为家庭、办公室和商业环境中的核心互动接口。提供多元且个性化的服务,如智能家居控制、影音串流拨放、实时信息显示等,极大提升了使用体验。此外,智能家居系统的整合能力也不容小觑,透过智能装置之间的无缝连接,形成了强大的多元应用生态圈。企业也利用智能显示器进行会议展示和多方远程合作,大大提高效率和互动性。Smart Display Ecosystem示意图,作
    百佳泰测试实验室 2025-01-16 15:37 194浏览
  • 现在为止,我们已经完成了Purple Pi OH主板的串口调试和部分配件的连接,接下来,让我们趁热打铁,完成剩余配件的连接!注:配件连接前请断开主板所有供电,避免敏感电路损坏!1.1 耳机接口主板有一路OTMP 标准四节耳机座J6,具备进行音频输出及录音功能,接入耳机后声音将优先从耳机输出,如下图所示:1.21.2 相机接口MIPI CSI 接口如上图所示,支持OV5648 和OV8858 摄像头模组。接入摄像头模组后,使用系统相机软件打开相机拍照和录像,如下图所示:1.3 以太网接口主板有一路
    Industio_触觉智能 2025-01-20 11:04 117浏览
  • 百佳泰特为您整理2025年1月各大Logo的最新规格信息,本月有更新信息的logo有HDMI、Wi-Fi、Bluetooth、DisplayHDR、ClearMR、Intel EVO。HDMI®▶ 2025年1月6日,HDMI Forum, Inc. 宣布即将发布HDMI规范2.2版本。新规范将支持更高的分辨率和刷新率,并提供更多高质量选项。更快的96Gbps 带宽可满足数据密集型沉浸式和虚拟应用对传输的要求,如 AR/VR/MR、空间现实和光场显示,以及各种商业应用,如大型数字标牌、医疗成像和
    百佳泰测试实验室 2025-01-16 15:41 189浏览
  • 日前,商务部等部门办公厅印发《手机、平板、智能手表(手环)购新补贴实施方案》明确,个人消费者购买手机、平板、智能手表(手环)3类数码产品(单件销售价格不超过6000元),可享受购新补贴。每人每类可补贴1件,每件补贴比例为减去生产、流通环节及移动运营商所有优惠后最终销售价格的15%,每件最高不超过500元。目前,京东已经做好了承接手机、平板等数码产品国补优惠的落地准备工作,未来随着各省市关于手机、平板等品类的国补开启,京东将第一时间率先上线,满足消费者的换新升级需求。为保障国补的真实有效发放,基于
    华尔街科技眼 2025-01-17 10:44 205浏览
  • Ubuntu20.04默认情况下为root账号自动登录,本文介绍如何取消root账号自动登录,改为通过输入账号密码登录,使用触觉智能EVB3568鸿蒙开发板演示,搭载瑞芯微RK3568,四核A55处理器,主频2.0Ghz,1T算力NPU;支持OpenHarmony5.0及Linux、Android等操作系统,接口丰富,开发评估快人一步!添加新账号1、使用adduser命令来添加新用户,用户名以industio为例,系统会提示设置密码以及其他信息,您可以根据需要填写或跳过,命令如下:root@id
    Industio_触觉智能 2025-01-17 14:14 84浏览
  • 本文介绍瑞芯微开发板/主板Android配置APK默认开启性能模式方法,开启性能模式后,APK的CPU使用优先级会有所提高。触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。源码修改修改源码根目录下文件device/rockchip/rk3562/package_performance.xml并添加以下内容,注意"+"号为添加内容,"com.tencent.mm"为AP
    Industio_触觉智能 2025-01-17 14:09 120浏览
  • 80,000人到访的国际大展上,艾迈斯欧司朗有哪些亮点?感未来,光无限。近日,在慕尼黑electronica 2024现场,ams OSRAM通过多款创新DEMO展示,以及数场前瞻洞察分享,全面展示自身融合传感器、发射器及集成电路技术,精准捕捉并呈现环境信息的卓越能力。同时,ams OSRAM通过展会期间与客户、用户等行业人士,以及媒体朋友的深度交流,向业界传达其以光电技术为笔、以创新为墨,书写智能未来的深度思考。electronica 2024electronica 2024构建了一个高度国际
    艾迈斯欧司朗 2025-01-16 20:45 187浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦