![](https://img-blog.csdnimg.cn/2019092715111047.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Classic AUTOSAR
文章平均质量分 81
描述我心中的Classic AUTOSAR.目前计划专栏分为3部分
1.AUTOSAR BSW/RTE/OS 的介绍
2.EB/VECTOR 工具配置内容的介绍
3.AUTOSAR 架构设计及功能安全的介绍
寻找幸存者
AUTOSAR 软件架构师, 负责多个国内外Classic AUTOSAR项目架构设计.
依据多年多学所得总结成文,分享与众,望与各路大神多加指点
展开
-
关于AUTOSAR 系列文章的一点想法
1.本人所写的AUTOSAR 系列文章并不适合初学者和资深AUTOSAR专家,如果你能完全看懂AUTOSAR Offical Spec ,可以不用看我写的内容. 很多内容过于抽象需要有一点基础2.目前完成的30多篇主要介绍的是AUTOSAR 所能实现的功能,很少涉及架构涉及,性能优化。后续会增加部分内容(作为AUTOSAR 架构首先要知道AUTOSAR 能做什么, 有多少种方案,性能如何,才能设计出合理的架构)3.本人所写内容是基于7年AUTOSAR 使用和架构设计经验总结而成,并不是对AUTOSA原创 2021-09-19 21:51:44 · 2025 阅读 · 4 评论 -
Customer Diagnosis(ISO14229) 总结
General NRC behavior with subfunctionSID Level NRC FlowSub-function Level NRC FlowImportant CommentServer Response behavior 是针对 Server Level 的 CheckServer Response behavior with sub_function 是针对 sub-function Level 的 Check比如$28 03 01 在28 S原创 2022-02-19 13:58:10 · 1714 阅读 · 0 评论 -
AUTOSAR CanNm & Nm Configuration
General由于Network Management 涉及的内容比较多,我分为多个Blog来写,细节如下CAN Network Management 介绍:参见AUTOSAR CAN Network Management Introduction Can Partial Network配置:参见AUTOSAR Partial Network Configuration Can Wakeup 的唤醒方式配置:参见AUTOSAR Network Wakeup(Can) Configuration原创 2022-02-08 22:42:32 · 3509 阅读 · 0 评论 -
AUTOSAR NvM&Fee Configuration
针对NVM Block 分为3种类型NATIVE/DATASET/REDUNDANT,本文将以这三种为例子进行介绍NVM/FEE的介绍,对于AUTOSAR NVM的介绍还请参考AUTOSAR NVM Introduction 一文,本文还是以介绍NVM/FEE 模块的配置为主。 还是那句话配置内容是基于AUTOSAR 标准,不受限于任何工具NOTE:由于不同芯片对应FLS都不尽相同,因此本文不会介绍FLS的内容StructureNVM CommonNVM Block Configurat原创 2022-02-05 20:07:09 · 4893 阅读 · 8 评论 -
AUTOSAR LIN STACK Configuration
General 本文主要介绍如何配置LIN Stack , 对于LIN Stack的功能介绍还请参见AUTOSAR LIN Introduction本文配置内容以VECTOR 工具为基础,不过对于其他工具也是一样的配置方法。很多朋友可能有疑问认为很多工具都支持自动导入LIN LDF 文件,所有配置都可以自动生成,为什么还需要了解细节和手动配置这部分内容。我是这么理解这个问题的:理解这些属性的原理和配置底层逻辑,可以使你摆脱工具的限制,避免出现换了工具就不会了这种情况 目前AUTOS原创 2022-02-04 16:52:25 · 2238 阅读 · 3 评论 -
AUTOSAR IPDUM Configuration
对于IPDUM , AUTOSAR 提供2种实现方式, 一种是 I-PDU MultiplexingMultiple PDU to Container Mapping ,本文主要介绍 Multiple PDU to Container Mapping 的配置方法,对于IPDUM的功能请参考我的另外一篇Blog – AUTOSAR IPDUM IntroductionData FlowCommunication Matrix 我们假设我们由如下Multiple PDU, 只简单列出来有关系原创 2022-02-02 21:22:38 · 2009 阅读 · 0 评论 -
AUTOSAR DEM Configuration
本文只介绍AUTOSAR DEM配置,目的在于知道DEM快速开发,对于AUTOSAR DEM 功能请参见AUTOSAR DEM Introduction 一文Workflow Step Action Refer to Section 1 定义DEM General Dem General 2 定义Freeze Frame原创 2022-02-01 13:12:22 · 3941 阅读 · 0 评论 -
AUTOSAR DCM Configuration
本文主要介绍AUTOSAR DCM的配置,对于ISO14229 以及Customer Diagnosis的作用不是本文重点Dcm Configuration Workflow Step Action Refer to Section. 1 定义$27 ,$10 27 Service 10 Service 2 定义SID/Sub原创 2022-01-29 15:27:52 · 3511 阅读 · 2 评论 -
AUTOSAR Network Wakeup(Can) Configuration
General Introduction在AUTOSAR CAN Wakeup Analysis 一文中已经介绍过 , 这里就做简单的说明。 本文还是以介绍配置为主对于在AUTOSAR SPEC 中规定对于Network Wakeup 功能,主要可以通过2种方式进行处理1.Controller (CAN)这种唤醒方式需要CAN Controller 支持相应的功能, 绝大部分的MCU 都支持,可以简单的理解这种唤醒方式需要先唤醒在校验。优点: 不需要支持PNC的transceiver ,原创 2022-01-25 15:18:33 · 2288 阅读 · 4 评论 -
RH850 MPU 实现介绍
General Introduction对于RH850 来说最多支持16 组Memory 分区, 这些Memory 分区可以是RAM/ROM/D-FALSH/Stack(RAM)/Register(RAM), 我们可以针对memory分区设置访问其所需要的权限,只有Memory 访问者具备相应的权限才可以合法访问memory ,否则会触发MPU Error进入到OS Protection Hook一般来说对于VECTOR 工具链中是提供UI 界面进行配置, 本文主要将从芯片的角度介绍RH850 ..原创 2022-01-15 19:38:14 · 2477 阅读 · 2 评论 -
AUTOSAR Partial Network Configuration
General Introduction可以将ECU 通信网络分成很多个子网络,每个子网路都有自己的PN INFO, 通过BSWM 监控收到的PN INFO 进而控制对应的PDU Groups是否开启其中PN Info的位置可以通过CanNmPnInfoOffset and CanNmPnInfoLength 设置另外可以通过设置PN Filter Mask 对于收到的PN INFO 进行过滤,通过过滤后的PN INFO来决定是否有对应的PDU Groups需要开启由于Par..原创 2022-01-13 22:05:29 · 2547 阅读 · 2 评论 -
AUTOSAR Diagnosis Message Configuration
General本文主要介绍基于VECTOR MICROSAR 介绍如何完成 CAN 通信的诊断报文的配置Diagnosis Dataflow假设有如下诊断报文DIAG_REQUEST_PHYSICAL DIAG_REQUEST_FUNCTIONAL DIAG_RESPONSE_PHYSICAL那么哪些AUTOSAR Component需要配置呢EcuCDIAG_RESPONSE_PHYSICAL需要创建 3 个EcuCECUC_RESPONSE_PHYS原创 2021-12-27 23:27:31 · 1331 阅读 · 0 评论 -
AUTOSAR SecOC Configuration
GeneralQuery Freshness Value (SecOCQueryFreshnessValue)当SecOCQueryFreshnessValue = CFUNC 且SecOCProvideTxTruncatedFreshnessValue = FALSE 是, 对于Tx Freshness 交由SecOC 处理(SecOC_GetTxFreshness)当SecOCQueryFreshnessValue = CFUNC 且SecOCProvideTxTruncatedFr..原创 2021-11-13 17:38:34 · 2100 阅读 · 4 评论 -
Vector Davinci Developer(RTE) Usage Introduction
本文主要用于介绍如果使用Davinci Developer 创建SWC/CDD 以及响应的功能,对于RTE的基础知识并不会结束,比如使用QUEUE Port 和NON QUEUE Port的区别对于RTE 功能,可以参考我的另外一篇文章AUTOSAR RTE IntroductionScenarioRefer to Section: 为可参见的后面的章节Application Data Transmission 这里指定的是两个SWC/CDD的通过Application Port 进..原创 2022-01-09 01:27:42 · 4564 阅读 · 0 评论 -
AUTOSAR关于使用PDUR 进行路由的CDD使用策略
根据AUTOSAR 架构体系, Lower Layer通过PDUR 传递PDU给Upper Layer 是可以选择具体的Upper Layer Module ,如DCM,COM 或者选择CDD 并且由APP 自行实现这个CDD为什么要使用AUTOSAR CDD? 不使用原生的AUTOSAR BSW 而使用需要自己实现的AUTOSAR CDD一定是有原因的,导致原生AUTOSAR BSW 不能被使用,比如功能安全的限制, AUTOSAR BSW 自身的限制等下面我结合经历过真实例子,详..原创 2022-01-01 22:44:39 · 3728 阅读 · 2 评论 -
AUTOSAR Crypto Stack UseCase
General StructureKey Management对于Key的注入在AUTOSAR Crypto Stack 主要通过以下API 进行STEP 1: Csm_KeyElementSet(KeyId,KeyElementId,keyPtr,keyLength)STEP 2: Csm_KeySetValid(KeyId)有的Key注入完成后可能有返回值,需要通过如下API 获取STEP3: Csm_KeyElementGet(KeyId,KeyElementId,ke..原创 2021-12-26 00:09:12 · 2637 阅读 · 1 评论 -
AUTOSAR (Safety)WdgM Introduction
Why use it 满足功能安全ISO26262 -6 :程序流监控,执行时间监控要求GeneralWorkflow评估SE中的AS/DS/LS à 决定LOCAL STATUS à决定GLOBAL STATUSàERROR HandlingStructureSupervised Entity 被监管的实体, 由多个Checkpoint所构成,SE 可以理解为一个收到监管,监控的功能,假设我们有个ASILD 的功能是计算数据并发送数据。那么这个功能就是一个SE ,我原创 2021-12-19 01:29:03 · 1893 阅读 · 0 评论 -
AUTOSAR Memory Stack UseCase
本文着重介绍Memory Stack中的重要API, 以及一些时序调度问题我们知道Memory Stack 一共由三个MainFunction用于执行RAM 于D-FLASH的交互,如何设计 MainFunction调度时序可以达到最优解,细节如下Init Phase Sequence触发时机:INIT TASKFls_Init -->有的可能放在ECUM InitList1 用于绕开MPU 监管 NvM_Init Fee_InitNormal Phase Sequence因原创 2021-12-12 19:57:26 · 1421 阅读 · 1 评论 -
Memory Protection Unit Introduction
为什么使用MPU通常ECU 内部集成了很多模块,这些模块可能来自第三方(Vector ,EB, 其他公司)或者由自己开发完成, 从功能安全的角度来说,这些模块(代码)都会有对应的安全等级(QM,ASILA~D), 因为不同的安全等级评估标准(设计,实现,测试)是不一样的,因此如何保证基于不同标准实现的模块可以安全的共存在ECU 内部是功能安全架构需要考虑的内容之一Memory Protection 就是其中一项重要的评估,设计内容,对于不同ASIL 等级的模块,需要保证其运行时所对应的Memor原创 2021-12-09 23:15:13 · 1916 阅读 · 15 评论 -
AUTOSAR Runtime 评估&优化的一些想法
一直以来想写一篇关于基于AUTOSAR 架构 Runtime 分析以及优化的文章,但是感觉方法很多可是又过于具体和依赖实际软件架构,所以很难抽离出一套万能的方案但是,很多内容是可以复用的,鉴于此,本文只介绍Runtime优化的思路,并不会列举出具体的方案,再写本文时,本想画几张图,避免过于理论,但是实在是太难用图形合理表达所有的内容,所以只能全部是文字了Runtime 分析指标平均负载在任意时间段内,CPU Load 最好低于90%,意味着CPU需要有10%的空闲时间单点负载原创 2021-12-02 21:14:10 · 1347 阅读 · 1 评论 -
AUTOSAR E2EXf & E2ESM Introduction
General针对E2E 数据校验目前存在2种方式,如下E2E Lib + E2E PW: 采用这种方式的校验E2E_Check接口将返回E2E PXX Status(例子可参见E2E PXX Status Estimation) ,App 需要自行根据返回的E2E PXX Status来判断采取什么Action , 对于这种组合在AUTOSAR 4.3 之后就不再采用了E2E Lib +E2EXf+ E2ESM: 对于AUTOSAR 4.3 之后的版本都将采用这种组合,和前面提到的那种方式相比原创 2021-11-28 00:02:45 · 1991 阅读 · 2 评论 -
AUTOSAR Init时序与周期调用时序.周期分析
General本文主要介绍AUTOSAR Component Init Sequence ,以及各个Main Function调用的时序和推荐周期。 尽量指出每个main Function 所推荐的周期的理由简单来说,通过此种方案设计,可以减少因调度顺序所引入的tolerance, 或者因Polling time设置过短导致Runtime 的浪费NOTE: 最合理的方案一定是结合需求,真实RT 平衡后的方案,比如多个TASK的引入,这里列出的只作为参考Init Sequence Anal原创 2021-11-19 23:26:13 · 2192 阅读 · 0 评论 -
AUTOSAR SecOC 同步异步处理方式分析
General前文介绍过SecOC 需要和Crypto Stack 一起使用用于数据的加密与验证,对于SecOC 模块和Crypto Stack 都存在同步和异步的处理方式,本文将对于同步与异步的策略进行分析Crypto Stack Process对应SecOC属性:SecOcCsmModeSYNCHRONOUS对于数据加密与校验以同步方式完成,从请求到完成整个过程都是同步的ASYNCHRONOUS对于数据加密与校验以异步方式完成,需要受到Csm_Mainfunction/Cry原创 2021-11-13 17:41:15 · 2822 阅读 · 0 评论 -
AUTOSAR FEE 评估策略分析
在前面提到的基于相同的Mcu. 可能有不同的供应商提供Fee模块(或者可以给Fee Suppiler提要求),他们的对于换页机制,存储结构,读写速度等相关功能可能存在差异因此在选择Fee Supplier的时候需要结合项目的需求来进行选择本文将介绍Fee的评估策略,本次全部内容均为文字描述,没有图片。纯经验总结,部分内容可能过于理论化,介绍的方法,不会提供具体的计算公式,Fee Init 时长有些Fee Supplier 所提供的Fee 存在初始化时间过长的问题, 比如 可能在Fee i原创 2021-11-07 23:29:15 · 1949 阅读 · 0 评论 -
AUTOSAR Fee & Fls 换页策略与读写的分析与设计
在正式说起FEE/FLS 换页策略和读写流程之前,我们先介绍了FLS 的一些基本概念在MCU 中有一块非易失性存储器我们称之为Data Flash , 在AUTOSAR FEE/FLS 规范中,通过DATA FLASH 模拟EEP的形式将数据存储在Data Flash中Page: 由若干个字节所组成,是读写的最小单元, 比如 Page:8 bytes, 也就意味着即使向DATA FLASH 写入一个字节,也会占用Page 这么大的空间Logical Section: 逻辑扇区,擦除的最小单元..原创 2021-11-04 00:50:49 · 4435 阅读 · 2 评论 -
AUTOSAR Post Build / Pre Compile / Link Time Introduction
找到一篇介绍Post Bulid / Pre Compile /Link Time非常好的文章。在这里转载下原文地址:AUTOSAR配置中的PostBuild、Precompile、Linktime_Xiaowestwind的博客-CSDN博客AUTOSAR的配置软件中,经常可以见到PostBuild、Precompile、Linktime这三个的影子,所以想搞清楚它们的区别,以及知道大概是干什么的。编译基础回顾静态库是经过编译的二进制文件。在链接阶段,引用库一旦链接成功,将汇编生成的.转载 2021-10-30 23:33:12 · 1869 阅读 · 0 评论 -
AUTOSAR CAN Polling or ISR Usage Analysis
今天和一个同行讨论了关于如何减少CAN Message的tolerance的问题 , 大家都知道AUTOSAR CAN DRIVER 针对于CAN Frame的处理存在CAN Driver Layer存在 POLLING 和ISR 两种方式,在COM Layer 有Deferred 和Immediate两种方式。 那么究竟哪种组合方式对于SW 架构设计更合理呢,两种方式的使用的场景又如何呢?接下来我们详细分析下RX Message ISR & Immediate当收到RX m..原创 2021-10-29 01:29:40 · 1391 阅读 · 1 评论 -
AUTOSAR Multi-Partition BSWM Introduction
General在前面AUTOSAR BSWM Introduction 中已经介绍了 BSWM 的基本概念,简单来说BSWM是整个AUTOSAR 架构下的信息收集中心,各个Component 可以将自己的运行时信息“扔给”BSWM, 但是不用关心这个信息需要会被谁使用,需要使用这些信息的Component,只需要在BSWM注册所需要监控的 “信息“ 情况, 当被监控的“信息”满足条件时, BSWM 就会通知到 “监控者“这样设计的好处就是减少 Component的相互依赖。ECU..原创 2021-10-20 17:42:33 · 1738 阅读 · 2 评论 -
AUTOSAR MultiCores ECUM Design
General Introduction前面在AUTOSAR ECUM Introduction已经介绍了ECUM的基础机制,这里将介绍在多核系统中ECUM将如何使用每一个Core 需要有唯一的ECUM INSTANCE虽然每一个CORE 都可以有一份ECUM Instance,每份ECUM Instance都包含ECUM的几乎所有功能(E.g STARTUP, UP, SHUTDOWN and SLEEP),但是对于“外设”只存在一份,因此对于相同的Wakeup Source 通常在只..原创 2021-10-19 18:01:04 · 1284 阅读 · 0 评论 -
AUTOSAR E2E & SecOC Comparison
前面已经介绍过了E2E 和 SecOC(CMAC) 了,既然2者都可以进行数据完整性保护,那么2者有什么区别呢下面基于我的经验所总结。欢迎补充,更正 E2E SecOC(CMAC) 实现方式 SW HW Runtime 消耗 高(与CRC精度与加密数据长度相关) 低(HSM/SHE) Key ..原创 2021-10-08 23:25:53 · 6832 阅读 · 1 评论 -
AUTOSAR (JASPAR)FVM Introduction
“在阅读本文之前,请先了解SecOC流程,可参见AUTOSAR SecOC Introduction”Introduction FVM (Freshness Management) 的主要功能负责管理Freshness Value,正如在SecOC 一文中介绍因为CMAC 授权码是基于对称加密算法而产生,那么也就意味着对于相同内容的Secured I-PDU,所产生的CMAC 也是一致的, 因此对于“攻击者“来说即使不知道密钥(KEY)的情况下,只要模拟发送这个固定内容的Secured I-PD..原创 2021-10-07 19:05:32 · 2463 阅读 · 2 评论 -
AUTOSAR SecOC Introduction -- Part 2
Encryption & Validation FlowEncryption主要分为如下几步传输Authentic I-PDU 获取SecOC ID 获取Freshness Value 获取Key 构建Authentication data 生成MAC 构建Secured I-PDU可以将Secured I-PDU 拆成2帧报文进行发送(通过设置SecOCTxSecuredPduCollection)Authentic I -PDU (Including Mes原创 2021-10-06 01:01:20 · 1161 阅读 · 0 评论 -
AUTOSAR SecOC Introduction -- Part 1
IntroductionAUTOSAR Secure Onboard Communication (SecOC) 作用是提供一种机制用于保证ECU之间通信过程中的“重要”数据的完整性和身份验证。目前SecOC 需要和COM Stack 结合使用,对于SWCs之间的数据保护则不能使用SecOC在AUTOSAR 架构中,SecOC 和PDUR 数据同一层, 其要负责和Crypto Stack交互进行数据加密与验证,也要负责和PDUR 交互进行数据的传递传统通信方式弊端数据完整性的保护机制原创 2021-10-06 00:59:13 · 2767 阅读 · 2 评论 -
AUTOSAR BSWM Configuration for $28 Functionality
通过BSWM 控制通信开启与停止,主要是控制PDU 的启停功能,PDU 被按照规则被分配到不同的PDU GROUP, BSWM 通过控制PDU GROUP 的启停就可以控制其里面包含的所有PDU收发需要说明的时,28 服务只是应用BSWM 控制通信开启与停止的一个实例, 其还有更多的应用场景,比如在运行期根据配置动态控制报文的开启与停止(Part offline/partition network), 总之任何涉及到APP message 通信开启与停止的功能都可以通过BSWM 配置来完成需要.原创 2021-09-25 22:00:28 · 1498 阅读 · 1 评论 -
AUTOSAR CANTP(ISO15765-2) Introduction -- Part 2
Unexpected arrival of frame单工 :单工就是指A只能发信号,而B只能接收信号,通信是单向的半双工:半双工就是指A能发信号给B,B也能发信号给A,但这两个过程不能同时进行全双工:全双工比半双工又进了一步。在A给B发信号的同时,B也可以给A发信Segmented Transmitted in progress指的是发送SF /FC, 收到FF/ CF的一端Single Frame receptionCASE 1:接收到的FF/CF 之后 发送新的原创 2021-09-25 16:41:39 · 796 阅读 · 1 评论 -
AUTOSAR CANTP(ISO15765-2) Introduction -- Part 1
AUTOSAR CAN TP 是基于ISO 15765-2 所要求的功能实现的, 因此看懂ISO15765 -2 是理解 CAN TP的基础OverviewUnsegmented MessageSegmented MessageFormat OverviewSingle FrameFormat$0x $xx $xx $xx $xx $xx $xx $xxAttributeSF_DL单一帧的数据长度Range:0~8 ,如SF_DL超出范围,原创 2021-09-25 16:38:08 · 735 阅读 · 0 评论 -
AUTOSAR Security Diagnosis
前面介绍AUTOSAR Crypto 时,介绍过Crypto的一个使用场景就是Security Diagnosis为什么需要它Security Access 功能好比是个安全屏障,ECU 一些重要的功能需要Security Access 通过后,才可以执行,如果诊断仪或者其他工具可以不加限制的访问ECU 内部的所有内容,将对ECU 造成威胁,比如重要数据被修改,删除, 重要的Fault 被清除,意外触发了某些功能传统Security Access的劣势Seed 并非“随机” 而更多的是一些特原创 2021-09-21 17:37:42 · 855 阅读 · 1 评论 -
AUTOSAR LIN Introduction
GeneralLIN 是 Local Interconnect Network 的缩写,是基于 UART/SCI(Universal Asynchronous Receiver-Transmitter / Serial Communication Interface,通用异步收发器/串行通信接口)的低成本串行通信协议。可用于汽车、家电、办 公设备等多种领域LIN 的拓扑结构为单线总线,应用单主机多从机的概念。LIN总线电平为 12V,传输位速率(Bitrate)最高为 20kbps。由于物理层限制,原创 2021-09-19 20:12:05 · 1330 阅读 · 0 评论 -
AUTOSAR PDUR Introduction
GeneralPDU ROUTER : PDU 路由器,作用是负责数据路由,比如,当我们从CAN BUS 收到一条报文之后,CAN IF 是如何正确的将数据传递给COM 中正确的Indication Callback的呢? 这其中起到关键作用的就是PDUR, PDUR 好像是邮局,里面定义了每个PDU的流转地址, 其他模块主要需要将PDU 人给PDUR, PDUR 就会根据预定义好的流转地址,将PDU 传给正确的Component.正如上面描述, PDUR 主要把包括两部分功能PDUR Modu原创 2021-09-15 23:21:53 · 2527 阅读 · 1 评论 -
AUTOSAR Functional Safety
前言功能安全(Functional Safety)是一项系统特性,由于基于功能安全的设计会影响到系统设计,所以从系统开发初始阶段就要进行考虑。由于软件的复杂度会影响 到功能安全的设计,所以在AUTOSAR规范中,包含了部分与功能安全相关的需求,这些新技术和概念能够帮助降低功能安全相关组件的复杂度。不过需要强调的是,AUTOSAR虽然通过提供安全措施和机制来支持基于功能安全产品开发,但这些独立的安全措施(Safety Measure)并不能形成整体的安全解决方案。在功能安全标准(ISO 262..原创 2021-09-15 21:03:06 · 1336 阅读 · 0 评论