#AUTOSAR架构的通信系统研究

参考

Classic Autosar 专栏;
AUTOSAR 专栏 1;
AUTOSAR 专栏 2;
AUTOSAR架构深度解析从入门到放弃;
AUTOSAR 专栏 3;
图解AUTOSAR(二)——分层模型及标准化的应用接口;
AUTOSAR 专栏 4


文章介绍了AUTOSAR体系架构,对AUTOSAR COM规范基于信号的通信机制及其特有的传输模式切换系统进行了分析,旨在实现一种符合AUTOSAR COM规范的通信系统。

AUTOSAR体系架构

AUTOSAR即汽车开放系统构架(Automotive Open System Architecture),是汽车制造商、部件供应商及其他相关行业共同合作,为汽车电子提出的开放式标准和架构,以便应用于不同的汽车和平台,提高软件复用性,降低开发成本。当前的汽车电子软件开发大多采用私有的解决方案,很少能在不同制造商之间进行交换,随着功能的发展,对软件标准化的需求越来越迫切。AUTOSAR使得不同的开发者能够“在标准上合作,在实现上竞争”。

AUTOSAR采用分层的体系架构,如图1所示,从上至下依次为应用层、RTE层、服务层、ECU抽象层和微控制器抽象层,还有一个复杂驱动模块。一般情况下,每一层只能使用下一层的接口,并向上一层提供接口。

图1 AUTOSAR体系架构

AUTOSAR COM

AUTOSAR COM是AUTOSAR标准的一部分,它是从OSEK COM标准的基础上发展而来的。AUTOSAR COM提供了一种标准化的访问汽车通讯系统和ECU(Electronic Control Unit)通讯的方式,提出了一个在不同速率的总线网络之间进行数据交换的方法。它为汽车控制单元应用软件提供了一个统一的通信环境,为内部和外部通信定义了公共的软件通信接口和行为,增强了应用软件模块的可移植性。

AUTOSAR COM提供了基本的通信服务,它有明确的上层模块RTE(Runtime Environment)和下层模块PDU Router。

  • 在发送过程中,应用层调用COM层提供的信号或信号组发送函数,根据配置,信号或信号组的数据经过字节顺序转换后被更新到I-PDU(Interaction Layer Protocol Data Unit)中相应的位置中。AUTOSAR COM规范中同一I-PDU可以设置两种发送模式,对其中各信号的传输模式条件进行计算,I-PDU选择其中一种发送模式进行发送。然后启动发送死限监控,调用PduR_ComTransmit()函数将I-PDU发送到底层。

  • 在接收过程中,当底层接收到I-PDU时,底层将调用COM层提供的指示函数Com_RxIndication(),取消并重启接收死限监控,将I-PDU的数据从底层拷贝到COM中。调用信号或信号组的接收函数后,该I-PDU中的信号或信号组将经过字节顺序转换、符号扩展和接收过滤后,数据被拷贝到应用层。

通信系统核心模块的实现

通信系统主要实现信号或信号组的收发功能,以下主要介绍信号发送的实现。首先简要介绍一下AUTOSAR COM中特有的传输模式切换。

传输模式切换

AUTOSAR COM规范定义了4种信号传输模式:

  • 直接/N次传输模式
  • 周期传输模式
  • 混合传输模式
  • None传输模式。

在AUTOSAR COM规范中允许为每个I-PDU静态配置两种不同的传输模式。

在AUTOSAR COM规范中通过传输模式切换,来选择I-PDU中的其中一种传输模式进行传输。

  • 首先使用过滤机制判断I-PDU中各信号的发送模式条件,同时更新I-PDU中的信号;
  • 再通过各信号的判断结果来计算该I-PDU的TMS(transmission mode selector)。若至少有一个C( Si,IPDUk)为True,则TMS为True;若所有C(Si,IPDUk)都为False,则TMS为False。其中C(Si,IPDUk)为传输模式条件该条件与IPDUk中的信号Si相关。

传输模式的选择计算过程如图2所示。

图2 传输模式选择

下面通过一个用例简要说明传输模式的切换。

用例中进行周期传输和直接/N次传输之间的切换(N=3)。
根据I-PDU的传输配置,当TMS(transmission mode selector)判断为真时,设置传输模式为周期传输,反之为直接/N次传输。上层给定值V=a(此时TMS判断为真),进行周期传输;当值V更新为b时(此时TMS判断为假),进行直接/N次传输模式,传输三次。由图3可知,随着V值的更新该I-PDU的传输模式在这两种传输模式之间切换。


图3 传输模式选择用例

信号发送的实现

  • 首先根据该信号的相关配置,判定其是内部消息还是外部消息。
  • 对于内部发送,直接将信号数据复制到接收信号数据区,并执行通知操作;
  • 对于外部发送,若该信号发送属性为触发,则该信号所属的I-PDU将立即发送(除非该I-PDU发送模式为周期传输模式),若该信号发送属性为延迟,则不进行传输,发送时,信号经过字节顺序转换后数据被复制到I-PDU中,同时设置相关更新位信息,然后根据该I-PDU的TMS切换传输模式,进行传输并设置启动相关定时器。各传输模式的传输过程与OSEK COM中大致相同。

信号发送流程如图4所示。


图4 信号发送流程

信号接收的实现

  • 首先判定是内部信号还是外部信号。
  • 对于内部接收,直接将信号数据复制到接收信号数据区;
  • 对于外部接收,首先判断对于的I-PDU组是否启动,若启动,返回E_OK,否则返回COM_STOP,取消并重启该I-PDU的相关死限监控定时器,将数据复制到I-PDU数据区,I-PDU中的信号经过字节书序转换、符号扩展和过滤机制后,复制到接收信号数据区,再执行通知操作,通知上层软件调用相关API函数接收信号。

信号接收流程如图5所示。


图5 信号接收流程

AUTOSAR架构的通信系统研究相关推荐

  1. 贯穿整个AUTOSAR架构的Interface

    注:本文首发于公众号"嵌入式软件实战派". 随着新时代技术的发展,欧洲大地出现了个AUTOSAR,搞得各大车厂要装上AUTOSAR的设备才能在竞争白热化的车市中夺得一席之地.这不O ...

  2. autosar架构详细介绍_【技术】基于AUTOSAR的电机驱动系统分析

    来源 | 前瞻情报部 作者 | 汽车软件 进圈 | "动力总成测试群",关注本公众号后,添加文末主编微信,备注"进圈" 前言 纯电动汽车和混合动力汽车是新能源汽 ...

  3. tms570 can 接收大量数据_CAN通讯系列--AUTOSAR架构的CAN Interface7

    上篇文章简介了AUTOSAR架构的CAN Driver模块,本文将更进一步,来了解CAN Driver模块对接的唯一上层模块--CAN Interface. 9 CAN interface CAN I ...

  4. AUTOSAR从入门到精通100讲(三十三)-AutoSar架构中的诊断事件管理

    Dem在AutoSar架构中的角色和位置 Dem(Diagnostic Event Manager)诊断事件管理,属于Autosar BSW(Basic Software)中的系统服务,在整个架构中所 ...

  5. AUTOSAR从入门到精通100讲(十三)--autosar架构中的ARXML

    在AUTOSAR架构下,ARXML文件作为通用配置文件或数据库文件,在数据传输和存储中起到关键作用 什么是XML? XML(eXtensible Markup Language)可扩展标记语言,是一种 ...

  6. AUTOSAR架构软件结构简介

     近年随着汽车电子化.智能化发展,汽车CAN总线上搭载的ECU日益增多.各汽车制造商车型因策略不同ECU数目略有不同,但据统计平均一台车约为25个模块,某些高端车型则高达百余个.同时娱乐信息系统作 ...

  7. AUTOSAR架构的故事(干货)

    本文来源于"嵌入式软件实战派". 1 AUTOSAR架构概览 之前文章<老板说项目要上AUTOSAR,我慌得一批>讲过,在新世纪,汽车产业蓬勃发展,欧洲大陆的车企们,瞄 ...

  8. AUTOSAR架构概述

    AUTOSAR整体思路概述 一.总体概述 AUTOSAR是Automotive Open System Architecture(汽车开放系统架构)的首字母缩写,是一家致力于制定汽车电子软件标准的联盟 ...

  9. Classic AutoSAR架构基础入门(CP)

    文章目录 1.AutoSAR标准规范 1.AutoSAR标准规范 AUTOSAR主要分为三大层级:应用层(对应ASW).RTE和基础软件BSW. 主要模块如下图所示: 从下至上 Micorocontr ...

最新文章

  1. R语言使用ggplot2包使用geom_violin函数绘制分组小提琴图(配置边界颜色)实战
  2. KVM虚拟机内无agent情况下的监控方法
  3. 一家创业公司的5年架构变迁史
  4. Java Web(5) Spring 下使用Junit4 单元测试
  5. android自定义url协议,Android自定义URL方案…?
  6. 【cocos2d-x 手游研发----地图活起来了】
  7. 绝对经典的滑轮新闻显示(javascript+css)
  8. AI之语音转写项目实践
  9. java 求球体表面积_java设计:计算圆的面积和球体的体积,在一个类中用两种方法实现...
  10. 接口测试用例设计:常见问题和风险
  11. 如何利用语音评测技术设计英语口语选择题
  12. Docker——使用docker工具管理软件/组件的运行,镜像、容器、数据卷的基本概念,常用指令,使用docker搭建Java微服务运行环境
  13. VuePress构建一个文档管理网站
  14. mysql 循环之continue
  15. 作为校招loser,我如何在一年半后的社招中咸鱼翻身
  16. ozip解密_ozip解包工具下载oppo刷机包ozip解包一加ops解包
  17. please tell me who you are?
  18. 无极-怎一个“烂”字了得?
  19. 取得执业药师证后,你可能会遇到的各种问题!
  20. word排版-章节大写图片题注小写(带章节号:图1.1,图2.1)

热门文章

  1. 是男人就坚持20秒—python版本
  2. Python正则re模块学习笔记
  3. uniapp 手机键盘弹起事件,解决底部同意阅读协议的盒子底部变形问题
  4. EasyExcel实现Excel解析并返回解析失败数据思路
  5. 塞班:一场顺理成章的死亡
  6. linux:置之死地而后生,一次系统急救后的经验总结
  7. 创建Android定时器的5种方法
  8. 安网路由器 静态IP和PPOE混用时,如果设置了路由器定时重启可能导致路由器罢工...
  9. DM10分区最完美的图文详解
  10. 云安全,亚马逊云科技“真有一套”