Autosar软件架构
软件架构
应用层通过 Simulink模型实现,模型的代码生成使用统一配置脚本;底层软件模块满足AUTOSAR 4.2.1标准要求,其软件架构如下图所示:
软件架构
2.2.2 Com通信模块配置
BCU通过唤醒信号控制相应CAN消息的通信使能(交流、直流帧)
RTE将应用层SWC信号转化为通信信号(Com Signals),并通过Com, PduR, CanIf, Can driver之间的标准接口函数实现CAN信号收发。
Com通信示意
BCU共实现3路CAN通信,均支持COM信号抽象:快充CAN使用扩展帧,支持J1939协议,速率250kbps;整车CAN使用普通帧,支持UDS通信协议,速率500kbps;本地CAN使用普通帧,支持XCP on CAN协议,速率500kbps;
每个CAN通道均支持Busoff检测,并通过软件尝试自恢复;检测周期为10ms(TBD),连续检测10(TBD)次失效后报出Busoff故障码,并以200ms(TBD)周期进行恢复尝试;
通信信号属性参照DBC文件定义进行配置;
接收信号支持超时检测,若DBC未定义超时时间(超时时间为0),则默认为信号周期的2.5倍;
接收信号支持首次超时检测,若DBC未定义首次超时时间(首次超时时间为0),则默认为500ms(TBD);
发送信号支持周期发送模式与单次触发发送模式,其他发送模式通过软件控制单次触发发送模式来实现;
所有通信帧均通过PduR进行逻辑映射,普通信号帧映射到Com模块,协议帧映射到相关模块处理;
快充相关协议帧(BCP,BRM,BCS)通过J1939Tp处理;
诊断相关协议帧(FunctionalReq,PhysicalReq,Response)通过CanTp模块处理;
标定相关协议帧(Command,Response,DAQ)通过XCP模块处理;
协议帧禁止重复映射到Com模块;
Can_MainFunction_Write调度周期为5ms;Can_MainFunction_Read调度周期为5ms;Can_MainFunction_Mode调度周期为5ms;Can_MainFunction_BusOff调度周期为5ms;CanIf_MainFunction调度周期为5ms;Cantrcv_MainFunction调度周期为5ms;其他通信模块MainFunction调度周期为10ms;
将每一路通信的发送帧与接收帧分别组合为TxPDU group和RxPDU group,通过软件使能/禁止group行为来控制信号的发送与接收;
2.2.3 RamTest自检模块配置
RAM自检模块示意如下
自检模块
RAM test 覆盖率99%
通过后台运行方式对Ram进行分块自检
2.2.4软件初始化
在Startup Code中初始化镜像核校验功能
Main函数中调用EcuM_Init()开始初始化
具体软件流程如下
软件流程
2.2.5 NvM存储模块配置
应用层SWC通过NvData模块统一管理所有的存储数据。NvData为各个存储块配置相应的Ram镜像,并通过NvM services实现对Flash物理存储块的读写操作。
NvM存储模块
通过flash区域0x800000~0x9FFFFF模拟EEP数据存储功能,每32Byte为一个逻辑页;
使用Class 3 NvM进行数据存储管理;
NvM逻辑存储页与应用层交互接口包括:读服务,写服务,重置服务,状态查询服务,单存储块操作结束回调函数,多存储块操作结束回调函数;
按照以下描述划分逻辑存储分区:
NVM配置区域,AUTOSAR预留,使用冗余存储模式(reduntant block),不开放应用层接口;
物流数据区域,存放OEM相关数据,使用本地存储模式(native block),异步存储方式;
软件版本记录区域,存放刷写软件的版本号记录,使用本地存储模式(native block),异步存储方式;
应用数据区域,存放应用数据,使用冗余存储模式(redundant block),异步存储方式;
故障码存储区域,存放故障码,使用本地存储模式(native block),立即存储方式;
故障信息存储区域,存放故障码冻结信息,使用本地存储模式(native block),立即存储方式;
2.2.6 OS&RTE操作系统配置
模块接口关系参考软件流程图
OS任务包括:BswTask,EventTask,SignalProcTask ,AppTask, AsilATask,AsilBTask,AsilDTask,AsilCTask等六个任务,其中EventTask为扩展任务,其他任务均为基础任务;
任务优先级为EventTask > SignalProcTask >AsilCTask> AsilBTask > AsilATask > AppTask> BswTask;
为每个任务配置不同等级的Application,并针对Application进行内存保护
OS计数器tick时钟为0.5ms;
通过RTE配置最小调度单元的时间偏移来实现最小调度单元的有序运行;
BswTask被打断时间不超过5ms
每个任务的单次运行时间不超过2ms
2.2.7 XCP配置
BCU为slave端,slave ID 为XXX,master ID 为XXX;
通过动态DAQ观测软件变量,设置10ms,50ms,1s(TBD)三个事件周期;
通过initial RAM方法进行在线标定,由RTE计算地址偏移;
2.2.8 DCM&DEM诊断模块配置
Dcm主要负责与上位机的诊断通信,Dem主要负责DTC的记录和管理。应用层Diag模块与Dem交互,管理当前的DTC状态。Dcm通过Dem提取DTC信息并传递给上位机。
DCM&DEM
参照Cdd诊断配置文件要求
2.2.9 BCU Abstraction
BCU Abstraction是针对BCU的硬件接口抽象模块,它的作用是将硬件物理信号转换成应用层软件需要的数据信号。包括AD采样信号,PWM检测(ICU)信号,DIO信号,PWM输出控制,33772芯片采集信号,RTC芯片的时钟信号,以及SBC芯片的采集信号。
BCU Abstraction
BCU Abstraction应将AD采集信号转化成电压信号发送给应用层;
BCU Abstraction应将ICU采集信号转化成频率和占空比发送给应用层;
BCU Abstraction应提供DIO输入输出信号接口给应用层;
BCU Abstraction应通过应用层信号控制PWM输出的频率和占空比;
BCU Abstraction应将33772芯片采集的高压电压和Shunt电流信号发送给应用层;
BCU Abstraction应将RTC的当前时钟发送给应用层;
BCU Abstraction应提供SBC的IO输入输出接口给应用层
2.2.10 WdgM看门狗模块配置
应用层SWC通过WdgM模块提供的service端口触发喂狗动作。
WdgIf封装Wdg的喂狗接口,提供给WdgM模块进行看门狗管理。
Wdg模块通过Gpt定时中断方式调用SBC的喂狗函数
WdgM
Asil C相关软件组件进行程序流时序检测保护;
所有应用软件组件均进行喂狗超时检测保护;
分阶段实施该需求:
A样件对应用软件实施统一的喂狗超时检测点;
B样件对相应应用软件实施相应的检测保护;
2.2.11基础软件模式管理模块配置
BswM读取ComM模块的通道通信请求状态,并根据通信请求进行CAN收发管理。
BswM读取Dcm的通信请求状态,并根据上位机的通信请求执行EV CAN通信使能/禁止。
BswM查询NvM的上下电读写任务状态,待上下电读写任务结束后将任务结果反馈给应用层。
<图片>
SWC通过BswM与ComM的接口控制BCU通信使能/禁止功能;
SWC通过BswM与EcuM的接口控制BCU休眠/重启功能;
Dcm与BswM交互控制BCU整车CAN通信使能/禁止功能;
SWC通过BswM与NvM的接口控制BswM模块控制NvM上下电读写操作;
通过EcuM flex配置方法管理BSW的运行模式,其状态转换如下图所示:
2.2.12软件刷新实现
Bootloader支持刷新BCU应用软件;
刷新工具请求进入Program Session时,应用软件在Flash中的特定位置写入刷新标志位后执行复位;Bootloader检测到刷新标志位后开始刷新流程。
当应用软件损坏,无法进入Program Session时,支持catch boot 模式刷新BCU应用软件。
刷新BCU应用软件的总时间不超过10分钟
Autosar软件架构相关推荐
- AUTOSAR软件架构简介
AUTOSAR是什么 AUTOSAR的全称是AUTomotive Open System Architecture,直译为汽车开放系统架构,是由全球汽车制造商.零部件供应商及其他电子.半导体和软件系统 ...
- AUTOSAR从入门到精通100讲(三十二)-AutoSar之实时环境RTE
RTE(Run-Time Environment)是AUTOSAR体系结构的核心.RTE在AUTOSAR软件架构中介于应用层和基础软件层之间,是AUTOSAR虚拟功能总线(VFB)接口的实现,从而为应 ...
- AUTOSAR架构软件结构简介
近年随着汽车电子化.智能化发展,汽车CAN总线上搭载的ECU日益增多.各汽车制造商车型因策略不同ECU数目略有不同,但据统计平均一台车约为25个模块,某些高端车型则高达百余个.同时娱乐信息系统作 ...
- AUTOSAR 架构介绍
在AUTOSAR软件架构中,汽车嵌入式系统软件自上而下分别为应用软件层(Application Software Layer,ASW).运行时环境(Runtime Environment,RTE).基 ...
- Classic AutoSAR架构基础入门(CP)
文章目录 1.AutoSAR标准规范 1.AutoSAR标准规范 AUTOSAR主要分为三大层级:应用层(对应ASW).RTE和基础软件BSW. 主要模块如下图所示: 从下至上 Micorocontr ...
- 浅谈AUTOSAR架构及开发方法
AUTOSAR软件架构 AUTOSAR软件整体框架为分层式设计,以中间件RTE(Runtime Environment)为界,隔离上层的应用层(Application Layer)与下层的基础软件(B ...
- 汽车的操作系统AUTOSAR
汽车软件开发autosar 01汽车相关知识 汽车发展三大趋势:电动化.智能化.网联化 (1)电动化:底层支撑,网联化的驱动力. (2)智能化:人工智能借助软硬融合带来功能升级.体验升级.安全升级. ...
- 【小猫爪】AUTOSAR学习笔记01-AUTOSAR架构简介
[小猫爪]AUTOSAR学习笔记01-AUTOSAR架构简介 前言 1 背景介绍 2 基本概念 3 方法论 4 分层软件架构 4.1 Application Layer(APP) 4.2 Basic ...
- 使用基于模型设计开发AUTOSAR软件组件
本文翻译的是Mathworks公司撰写的Development of AUTOSAR Software Components with Model-Based Design,希望与大家一起共同学习进步 ...
最新文章
- python 位运算与等号_Python 运算符
- python里的tplt什么意思 Python的format格式化输出
- OSPF:Forwarding Address in NSSA External LSA
- firedebug调试Jquery
- 【转】linux命令:ifconfig命令
- 57.Linux/Unix 系统编程手册(下) -- SOCKET : Unix domain
- 三、JAVA流程控制(选择结构if、while、for、switch)
- 用什么软件录屏最好?录制高清视频无水印,简单几步就学会!
- 系统分析师论文评分标准
- 微信头像卡片制作,听说很火?
- java 线程 假死_JVM假死问题如何定位?
- 打开chm文件提示“已取消到该网页的导航”的解决方案
- 微信公众号如何变得更好_五个使Windows变得更好的绝对必要的实用程序
- 创业公司做数据分析(一)开篇
- 微信公众号获取的实时坐标和高德地图坐标系的转换
- 树莓派之无屏幕下发现树莓派IP方法
- Word为什么会报告磁盘空间已满
- 爬虫摸索中~~(PS:小小爬虫,何惧哉?且到明日,再看今朝。)
- iOS 自动布局 Autolayout 报错:Unable to simultaneously satisfy constraints.
- Android系统定制源码修改 - MTK平台