AUTOSAR笔记:AUTOSAR系统解决方案示例(二)
AUTOSAR案例示例
需求
某整车厂有A型、B型两种车型,其中,A为低端车型,B为高端车型。现需为它们设计两款车灯控制器。
1)A:车灯开关打开,车灯点亮;
2)B:车灯开关打开,车灯根据外界光强情况自动调节亮度。
当车灯开关关闭时间 > 5min,关闭车灯控制器的CAN通信;检测到车灯开关打开,则立即恢复CAN通信。
总体方案设计
A车灯控制器:用数字输入(Digital Input,DI)检测车灯开关信号,用数字输出(Digital Output,DO)直接控制车灯;ADC采集DO输出,作文车灯状态检测,并将检测状态及车灯类型通过CAN发送到CAN网络。
B车灯控制器:用数字输入(DIgital Input,DI)检测车灯开关信号,结合收到的外界光强信号(CAN报文),用PWM输出不同占空比的脉冲来调节车灯亮度;用输入捕获单元(Input Capture Unit,ICU)采集PWM输出占空比,作为车灯状态检测,并将检测状态及车灯类型通过CAN发送到CAN网络。
系统设计
这里主要介绍CAN通信矩阵设计、系统软件架构设计、目标ECU软件组件设计。
1)CAN通信矩阵设计
本系统涉及3个ECU:SensorECU、LightECU、DisplayECU,2帧CAN报文。
注:ID指CANID。
2)系统软件架构设计
为充分利用AUTOSAR分层架构模块化复用的优势,将A、B车灯控制器采用同一个软件架构,设计如下:
各软件组件(SWC)描述如下:
3)目标ECU软件组件设计
示例目标ECU为LightECU,主要包括5个软件组件(SWC),其中,LightRequestSWC、LightControlSWC是实现车灯控制端关键软件组件。
LightRequestSWC:
对于A、B车灯控制器,负责检测并判断车灯开关状态;
对于B,负责接收、判断外界光强情况;
对外输出车灯控制指令,对于A指令为0/1,即开与关;对于B指令为PWM占空比,分别为0、50%、100%。
当车灯开关关闭时间 > 5min,发出关闭LightECU CAN通信的指令。检测到车灯开关打开,则恢复CAN通信。
LightControlSWC主要有2个运行实体:
1)RE_JudgeLigthState 通过采集车灯实际硬件的控制信号,即对A车灯通过ADC采集电压信号,对B车灯通过ICU(车上CAN节点)采集PWM占空比,对采样值进行处理、判断后,通过运行实体间变量IRVJudgeLightState将车灯状态传递给RE_LightControl。
2)RE_LightControl负责将车灯状态与车灯类型通过端口发出,,并将车灯实际控制量传递给I/O抽象软件组件。
于是,LightECU各软件组件端口设计:
注意:端口表示方向,端口接口表示端口的属性。
LightECU各软件组件内部行为设计:
注:运行实体(RE)是一段可执行代码;每个运行实体都会被赋予一个RTE事件,该事件可引发这个运行实体的执行。
系统AUTOSAR架构
着重分析A、B车灯控制器软件在AUTOSAR架构下异同。
A车灯控制器软件架构及信号流:
B车灯控制器软件架构及信号流:
注:
1)AUTOSAR接口:应用接口,由RTE提供给软件组件,作文软件组件间通信的接口,或软件组件与I/O硬件抽象层/复杂驱动层的接口;
2)标准AUTOSAR接口:特殊AUTOSAR接口,由RTE向软件组件提供BSW中等服务,如存储器管理、ECU状态管理,”看门狗“管理等;
3)标准接口:C API形式定义,用于ECU BSW各模块访问、RTE和OS间、RTE和通讯模块间,应用软件组件不可访问。
AUTOSAR分层架构+明确接口定义,好处是:需求变更时,软件架构修改量降低,复用度提升。
对于A、B车灯控制器,除应用层软件组件中相关控制算法需要修改,还需要更换MCAL相关模块以及修改IO硬件抽象层中一些MCAL接口函数的调用。具体地,对于A车灯,用DO控制车灯,用ADC采集车灯控制信号;对于B车灯,用PWM输出不同占空比信号来控制车灯亮度,用ICU采集车灯控制新华。
所以,在MCAL层根据需求配置不同的的模块,但对于IO硬件抽象层,即IOAbstractionSWC软件组件的各运行实体名可不变,仅改变内部代码即可。—— 接口不变,改变实现即可。
ETAS AUTOSAR系统解决方案介绍
博世ETAS公司为用户提供了一套高效、可靠的AUTOSAR系统解决方案,覆盖了软件架构设计、应用层模型设计、基础软件开发、软件虚拟验证等。下图深色部分,是ETAS提供的产品、服务:
ETAS AUTOSAR相关产品主要包括:
1)ISOLAR-A:软件架构设计工具,支持整车级软件架构设计,可用于符合AUTOSAR规范的汽车嵌入式系统软件开发中等系统级开发。
2)ASCET:基于模型的AUTOSAR软件组件建模工具。
3)RTA系列:由RTA-RTE、RTA-BSW、RTA-OS组成,可用于AUTOSAR ECU级别开发,即RTE与BSW的配置及代码生成。
4)ISOLAR-EVE:虚拟ECU验证平台。
AUTOSAR系统解决方案介绍
遵循AUTOSAR方法论进行开发,所以用AUTOSAR解决方案如下:
首先,用Matlab/Simulink实现部分软件组件级的开发,主要包括LightRequestSWC、LightControlSWC,自动生成应用层软件组件代码及arxml描述文件(作文AUTOSAR系统级开发的输入文件之一)。
其次,用ETAS ISOLAR-A工具进行AUTOSAR系统的设计与配置 + 一些附加的SWC,主要包括EcuAliveIndicatorSWC、EcuBaseSWC以及I/O硬件抽象层SWC。系统级开发最后会抽取出待配置ECU的信息,即LightECU的信息,进而可以进入ECU级开发阶段。
在ECU级开发阶段,基于ETAS RTA系列工具(RTA-RTE、RTA-BSW、RTA-OS)来实现ECU级的开发(RTE和除MCAL以外BSW模块配置和代码生成);MCAL模块配置、代码生成。
最后,代码集成。用Wind River编译器代码编译、链接,生成MCU可执行文件,并通过Lauterbach调试器对MPC5744P开发板进行调试。
上一篇:AUTOSAR笔记:AUTOSAR基础(一) 下一篇:AUTOSAR笔记:AUTOSAR软件组件级设计与开发(三)