AUTOSAR架构的通信系统研究

#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 信号接收流程

  • 5
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值