RTE算法在非AUTOSAR软件中的借鉴与实现

RTE概念

RTE其实是AUTOSAR软件架构中的一个重要的概念,用于处理模块之间的信息传输,以及不同ECU之间的信号传输。RTE全称RunTimeEnvironment,旨在贯彻模块化开发的思想,将不同模块之间的依赖性减弱到最小,从而提高模块的服用性和可移植性。而在一些非AUTOSAR架构的软件中,也陆续采用了RTE这种思想和架构,对模块的独立性和架构的清晰度来说有了很大的帮助。这里简述了RTE在非AUTOSAR的嵌入式软件中的设计原理。

对于单一变量在同一ECU中不同模块之间RTE的实现模式

在软件内部,不同模块之间实现数据的输入输出方式为:

  1. 如分别由模块A和模块B,定义模块A的函数为func_A,输入变量为A_IN,输出变量为A_OUT,模块B的函数为func_B,输入变量为B_IN,输出变量为B_OUT;
  2. 定位RTE模块为RTE.c,RTE.h在RTE.h中调用模块A和模块B的h文件,从而尽量避免A调用B的h文件或B调用A的h文件;
  3. 定义一个RTE写函数,将A_OUT写入E2E,并进行换算和加工;
  4. 定义一个RTE读函数,从RTE模块读取加工后的数值复制给B_IN;
  5. 函数在OS中进行调用。

对于不同ECU之间的RTE实现—单信号

不同ECU之间是通过CAN/LIN等通讯的方式进行信号传输,因此需要在ECU_1中的A模块中添加CAN信号的发送,将变量值存到要发送的buffer中;
在ECU_2中的B模块添加接收CAN信息的接收,并将CAN信息读取到buffer,再将buffer 的数值读取到变量中,再将变量output到RTE模块进行处理。
(hint:在AUTOSAR架构中,RTE将取代各个模块中的信号首发,统一由RTE进行首发。)

如果对AUTOSAR,RTE感兴趣或者有进一步的问题,欢迎进行交流。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值