• 204查看
  • 0回复

[Autosar] Autosar PRport 在Simulink中的使用

[复制链接]


该用户从未签到

发表于 19-5-2024 17:19:32 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师




    前言

    模型及Autosar接口配置


      Autosar接口

      模型接口

    生成代码分析

    总结

前言

在之前使用Simulink开发Autosar模型时,大部分使用的RTE接口都是Sender or Receiver接口。但如果是对于那些具有存储需求的接口来说,一个sender接口需要有另外一个receiver接口来对应,会导致接口数量增加。其实,在Autosar定义中有这种需求的对应处理,即定义为PR-ports(Provide Require Ports需求提供端口)。本文介绍Simulink中定义该类型的接口及使用。
模型及Autosar接口配置

Autosar接口

建立Interface
Autosar PRport 在Simulink中的使用w1.jpg
建立SenderReceiverPorts

Autosar PRport 在Simulink中的使用w2.jpg
image模型接口

建立一个Input,mapping到刚刚建立好的Autosar RTE接口上
Autosar PRport 在Simulink中的使用w3.jpg
建立一个Output,同样mapping到刚刚建立的Autosar RTE接口上
Autosar PRport 在Simulink中的使用w4.jpg
此处我们只使用了一个PR-Port,实现了输入输出的两个接口。
简单处理Runnable中的逻辑,将输入加1,传递给输出。(demo演示用)
生成代码分析

主函数调用了Read接口和Write接口(此处为Explicit类型),对应了一个RTE Port

/* Model step function for TID1 */
void RunnableTest_10ms(void)           /* Explicit Task: RunnableTest_10ms */
{
  uint8 rtb_TmpSignalConversionAtReceiv;

  /* RootInportFunctionCallGenerator generated from: '<Root>/RunnableTest_10ms' incorporates:
   *  SubSystem: '<Root>/RunnableTest_10ms_call'
   */
  /* SignalConversion generated from: '<S1>/ReceiverPort' incorporates:
   *  Inport: '<Root>/ReceiverPort'
   */
  (void)Rte_Read_PRportTest_Val(&rtb_TmpSignalConversionAtReceiv);

  /* Outport: '<Root>/SenderPort' incorporates:
   *  Constant: '<S1>/Constant'
   *  Sum: '<S1>/Sum'
   */
  (void)Rte_Write_PRportTest_Val((uint8)(rtb_TmpSignalConversionAtReceiv + 1U));

  /* End of Outputs for RootInportFunctionCallGenerator generated from: '<Root>/RunnableTest_10ms' */
}

Simulink生成的模板RTE(Rte_xx.h)文件定义如下:

/* Data access functions */
#define Rte_Read_PRportTest_Val        Rte_Read_RTERunnable_PRportTest_Val

Std_ReturnType Rte_Read_PRportTest_Val(UInt8* u);

#define Rte_Write_PRportTest_Val       Rte_Write_RTERunnable_PRportTest_Val

Std_ReturnType Rte_Write_PRportTest_Val(UInt8 u);

此处Interface都对应的PRportTest
在Autosar工具中查看生成的Arxml文件:
Autosar PRport 在Simulink中的使用w5.jpg

Autosar PRport 在Simulink中的使用w6.jpg
之后通过Autosar工具将RTE接口map到相对应的PR-port即可。
总结

使用PR-port不会减少应用层的输入输出端口个数,只是减少了一个RTE Port。但看起来会更加直观一些。

快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 1-2-2025 07:59 , Processed in 0.206592 second(s), 31 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.