导图社区 AUTOSAR CP各模块作用思维导图
概要描述AUTOSAR CP中各模块的作用,如CANDrv的作用:CAN驱动用于访问芯片的CAN控制器,负责对CAN报文数据接收和发送/CAN控制状态和模式的切换。
编辑于2023-06-25 18:09:29 安徽AUTOSAR CP
Com Stack(通信协议栈)
CANDrv
作用:CAN驱动用于访问芯片的CAN控制器,负责对CAN报文数据接收和发送/CAN控制状态和模式的切换。
开发进度:0%
CANIf
作用:为CAN模块提供基于PDU的抽象接口,用于访问CAN驱动器,对于不同功能的PDU在CANIF层实现PDU的区分,并关联到上层模块。同时还可以控制CAN驱动和CAN收发器的状态和模式。
开发进度:0%
CANNm
作用:CAN网络管理模块负责实现AUTOSAR网络管理的功能,协调CAN网络的唤醒和休眠的状态切换。
开发进度:0%
CANSM
作用:CAN状态管理模块负责CAN通信的状态管理,与COMM/CANNM/NM等协调管理CAN的通信状态切换,同时处理CAN通信的错误。
开发进度:0%
CANTrcv
作用:CANTRCV负责对控制芯片外的CAN的收发器运行,包含唤醒/休眠控制等。
开发进度:0%
COM
作用COM模块给RTE提供了面向数据的信号接口。发送时,负责将信号放到特定报文的特定位置,并按照特定的报文发送方式将数据发送;接收时,直接将特定的PDU的特定位置的信号数据发送给SWC。该模块包含了对数据接收的监控机制,对数据发送的控制机制。
开发进度:0%
IPDUM
作用:该模块处理负责不同数据内容的PDU的复用
开发进度:0%
LDCOM
作用:LDCOM模块负责优化大数据信号的路由,可以避免一些不必要的数据Copy。LDCOM模块常与SOMEIP/XF共同使用,用于数据序列化的转换。
开发进度:0%
(COMXF)ComBasedTransformer
作用:该模块可以对RTE和COM模块的相互作用进行优化,实现对数据序列化和反序列化的操作。
开发进度:0%
ComM
作用:COMM模块根据应用程序的通信需求协调不同网络以及局部网络间的通信。对通信具有使能和禁用控制。
开发进度:0%
ComStackTypes
作用:定义通信协议栈数据类型,如PduIdType...
开发进度:100%
EthDrv
作用:Ethernet驱动抽象对于Ethernet硬件的访问,发送和接收数据,并且切换控制器状态。
开发进度:0%
EthIf
作用:Ethernet接口模块独立于Ethernet驱动和ETHTRCV D,区分具体的Ethernet数据,同时还负责对VLAN的管理
开发进度:0%
EthSM
作用:Ethernet状态管理为COMM提供抽象接口,用于启动和关闭Ethernet通信。ETHSM也可通过ETHIF访问Ethernet硬件
开发进度:0%
EthSWT
作用:ERHSWT模块为控制以太网交换机提供了统一的且与硬件无关的接口,在使用多个ECU的时候,ETHSWT可以协调它们的MAC学习
开发进度:0%
EthTrcv
作用:THTRCV提供独立于硬件的统一接口,用于驱动不同的Ethernet收发器。可以根据外部使用的不同型号的收发器去配制该模块
开发进度:0%
FrDrv
作用:FlexRay驱动抽象访问FlexRay硬件,发送和接收数据,切换控制器状态等
开发进度:0%
FrIf
作用:FlexRay接口提供对FlexRay硬件的抽象(基于PDU)的访问,此外,它还可以同步FlexRay的全局时钟
开发进度:0%
FrTp
作用:FRTP是基于ISO1068-2标准的FlexRay总线传输协议
开发进度:0%
FrNm
作用:该模块负责FlexRay网络管理,同步总线切换到休眠状态
开发进度:0%
FrSM
作用:FlexRay状态管理模块控制并检测FlexRay总线节点的唤醒/启动/状态切换等
开发进度:0%
FrTrcv
作用:片外FlexRay收发器驱动,同时负责切换收发器的状态
开发进度:0%
LinDrv
作用:LIN驱动提供了初始化报文发送(报头/响应/休眠模式/唤醒)的服务,同时还负责接收响应,检查当前状态的验证和唤醒事件。
开发进度:0%
LinIf
作用:LIN接口提供对LIN硬件的抽象(基于PDU)的访问,它还负责处理调度表,同时包含了LIN传输协议(LINTP)
开发进度:0%
LinNm
作用:LINNM模块包含了独立于硬件的协议,协调处理LIN网络的普通运行模式和总线休眠模式的切换
开发进度:0%
LinSM
作用LIN状态管理模块负责切换COM模块中的调度表和PDU组,并根据休眠和唤醒状态调用LIN服务接口:
开发进度:0%
LinTrcv
作用:LIN收发器驱动负责监测和驱动LIN收发器的唤醒和休眠功能
开发进度:0%
Nm
作用:该模块提供了独立于总线方式的通用接口,访问具体的网络管理模块(CANNM/LINNM/FRNM/UDPNM)。此外,这一模块还负责同步不同网络上的ECU之间的通信系统关闭工作
开发进度:0%
PDUR
作用:PDU路由模块负责在总线系统和不同BSW模块之间分发通信包(PDU)。此外,该模块还负责不同总线间的PDU和TP-PDU的路由工作。
开发进度:0%
SAEJ1939Nm
作用:J1939支持网络中在线增加ECU。J1939NM不同于其他负责总线唤醒和休眠的NM模块,它负责处理特定ECU的地址
开发进度:0%
SAEJ1939RM
作用:J1939RM实现了SAEJ1939协议中的通信请求处理获得请求数据的机制
开发进度:0%
SAEJ1939Tp
作用:J1939Tp模块实现了SAEJ1939标准中的两种数据传输方式BAM和CMDT
开发进度:0%
SocketAdaptor(SOAD)
作用:SOAD模块将AUTOSAR中定义的PDU通信转换成基于socket的通信。实现Socket和PDU数据之间的切换
开发进度:0%
SD
作用:SD模块实现了一个ECU将自身可用的服务采用发布-订阅协议实现ECU之间的通信。此外,ECU还可以注册去接收自动提醒,例如通过信号更新
开发进度:0%
(SOMEIPXF)SOMEIPTransformer
作用:SOME/IP模块是一个远程进程调用和序列化协议,用于从其它ECU中调用服务,这些服务是通过SD模块事先从系统中获知
开发进度:0%
TcpIp
作用:此模块包含了基于UDP和TCP协议通信的所有协议,支持IPv4和Ipv6。主要包含的协议IPv4/ICMPv4/ARP;IPv6/ICMPv6/NDP;UDP/TCP/DHCPv4/DHCPv6
开发进度:0%
(CANTsyc)TimeSyncOverCAN
作用:CANTSYN模块实现了CAN总线特定的时间同步协议,SWC需要同步时基管理模块(STBM)才能访问同步时基
开发进度:0%
(ETHTsyc)TimeSyncOverEth
开发进度:0%
作用:
(FrTsyc)TimeSyncOverFr
作用:FRTSYN模块实现了FlexRay特定的时间同步机制规则。SWC需要同步时基管理模块(STBM)才能访问同步时基
开发进度:0%
TTCANDrv
作用:TTCAN驱动为TTCAN控制器(ISO11898-4)提供和CAN驱动一样的功能
开发进度:0%
TTCANIf
作用:TTCAN接口为TTCAN控制器(ISO11898-4)提供和CANIF一样的功能
开发进度:0%
UDPNm
作用:UDP网络管理同步切换以太网ECU到休眠模式
开发进度:0%
XCP
CCP
基于CAN的测量标定协议,版本V2.1
开发进度:0%
XCP
作用:XCP是一种上位机(PC工具)和下位机(ECU)之间的通信协议。它由ASAM组织提供规范,主要用于测量/标定/刷写和测试ECU。XCP支持的总线协议包括CAN(CanXcp)/FleyRay(FrXcp)/Ethernet(EthXcp)和LIN(LinXcp)
开发进度:0%
Diagnosis(诊断服务)
Det
作用:DET模块用于支持在软件开发过程中的错误调试。它提供了一个错误提示接口,这一接口会在错误发生的时候被对应的BSW模块调用
开发进度:0%
Dcm
作用:DCM实现的是ISO14229-1:2006(UDS)通信诊断协议,一些诊断请求(会话状态管理/错误码读取/重启ECU等)在DCM中直接被处理,另外一些诊断请求(读取和控制数据ID中的数据元素/程序执行等)会通过Port接口路由到SWC进行处理。OBDII/SAEJ1979排放法规需求也在该模块实现
开发进度:0%
Dem
作用:DEM模块用于故障内存管理。用于诊断监测的标准接口实现了独立于制造商的SWC的统一开发。负责管理故障诊断码的状态、环境数据和将数据保存到非易失内存中。也支持OBDII/SAEJ1979排放法规需求
开发进度:0%
(DoIP)DiagOverIP
作用:通过IP实现诊断的功能,包含了ISO13400-2标准的诊断功能
开发进度:0%
FiM
作用:基于DEM模块所管理的有效错误,FIM可以关闭SWC相关的功能
开发进度:0%
SAEJ1939Dcm
作用:该模块实现了符合SAEJ1939-73协议的诊断报文,例如读取错误内存
开发进度:0%
General(通用约束)
BswGeneral
作用:模块实现约束,软件工具上无具体模块
开发进度:0%
StandardTypes
作用:标准宏定义
开发进度:0%
Integration(集成约束)
Compiler
作用:编译器相关的专用定义在Compiler.h中使用宏进行了封装,包含compiler_cfg.h,被Std_Types.h包含
开发进度:0%
Memmap
作用:定义不同作用的内存分区宏,需要配置#pragma指令,有起始和结束定义宏
开发进度:0%
PlatformTypes
作用:适配MCU的重定义数据类型,如uint8...
开发进度:0%
Library(公用库)
BFX
作用:Bit field function for fixed point,对位处理的定点计算函数库
开发进度:0%
EFX
作用:定点值数学函数扩展库
开发进度:0%
IFL
作用:浮点数插值函数库
开发进度:0%
IFX
作用:定点数插值函数库
开发进度:0%
MFL
作用:浮点值数学函数库
开发进度:0%
MFX
作用:定点值数学函数库
开发进度:0%
Memory(存储协议栈)
Ea
作用:EA模块式利用EEPROM的驱动实现独立于硬件的访问EEPROM的数据接口。此外,对于读写和擦除数据,EA模块会将写访问分摊到不同的EEPROM区域,这样所有的EPROM单元都会被实现,增加EEPROM的寿命
开发进度:0%
Eep
作用:EEP模块提供了独立于硬件访问EEPROM内存的机制,提供了读写和比较数据的服务
开发进度:0%
Fls
作用:Flash驱动提供独立于硬件访问Flash内存的机制,提供用于读写/比较和擦除Flash的服务驱动。
开发进度:0%
Fee
作用:FEE模块提供了独立于硬件的接口,用于访问flash数据,直接访问flash驱动。除了负责读写和擦除flash数据,FEE还负责分散flash内存的使用,延长flash的寿命
开发进度:0%
MemIf
作用:该模块提供了访问EA和FEE的标准接口,这样可以复合使用FEE和EA模块
开发进度:0%
NvM
作用:NVM模块负责管理和从非易失性内存中读取数据。在系统启动和关闭阶段,同步应用程序RAM区的数据。此模块还提供其他服务,例如用于上层数据保护的冗余数据单元。同时,RTE提供了简单灵活和接口(NvDataInterface)用于非易失内存的数据处理
开发进度:0%
Peripherals(外设驱动)
MCAL: 作用: 使更高的软件层独立于µC 特性: 独立于硬件 上层接口:标准化和µC无关 ECAL(If层): ECU抽象层与微控制器抽象层的驱动程序接口。它还包含用于外部设备的驱动程序。它提供了一个API,用于访问外设和设备,而不管它们的位置(µC内部/外部)及其与µC的连接(端口引脚、接口类型) 作用: 使更高的软件层独立于ECU硬件布局
ADC
作用:ADC驱动用于抽象访问芯片内部的ADC模块,控制ADC模块相关的转换,对于每一个ADC转换通道,转换的精度/触发源/结果处理等都是可以配置的
开发进度:0%
DIO
作用:数字输入输出驱动提供了访问DIO通道/DIO通道和DIO通道组的读写操作
开发进度:0%
GPT
作用:通用定时器驱动提供了访问片内定时器的接口,用于控制周期性和单一的事件。
开发进度:0%
ICU
作用:ICU驱动提供了边沿检测/周期性信号测量/边沿时间戳分配和唤醒诊断控制功能
开发进度:0%
MCU
作用:MCU驱动提供了软件复位/选择微处理器的状态(停止/休眠/挂起等)/配置唤醒行为/管理内部PLL时钟/初始化RAM数据。
开发进度:0%
OCU
作用:OCU驱动提供输出比较单元的初始化函数和访问接口
开发进度:0%
Port
作用:该模块负责处理微处理器中的所有Port的初始化工作
开发进度:0%
PWM
作用:PWM驱动提供了初始化和控制微处理器中的PWM通道服务
开发进度:0%
SPI
作用:SPI 驱动负责处理SPI端口的数据交换,主要用于MCU与外部硬件(外部EEPROM/外部看门狗等)的数据交换。
开发进度:0%
RTE(运行时环境)
Rte
作用:RTE实现虚拟总线的功能和SWC的执行,并确保了SWC之间以及SWC和基础软件间数据访问的一致性。同时集成SCHM实现了基础软件功能函数的执行。RTE还可以支持分区界限(多核/可信任/不可信任)间的通信。此外,RTE还提供NVRAM数据和标定数据的简化访问方式。在与功能安全相关的ECU中,RTE是一个与功能安全相关的模块
开发进度:0%
SchM
作用:SCHM模块集成在RTE内,调用每个BSW模块的主函数,并给临界区提供相关的函数。对于通过分区和内核边界的BSW分配(主卫星概念),SCHM可以提供和RTE模块基本相同的通信接口
开发进度:0%
Safety&Security(安全)
CoreTst
作用:CORETST模块包含了配置和控制芯片测试功能。提供了一个用于扩展这些测试功能的框架,对于功能安全相关的代码,CORETST模块会监控ALU和寄存器等重要的单元。
开发进度:0%
Crc
作用:循环冗余校验库,计算CRC校验值
开发进度:0%
CryIf
开发进度:0%
作用:
CrySM
作用:CSM模块提供接口用于SWC访问基础加密函数。个别加密算法在CRY模块通过软件或者硬件实现
开发进度:0%
E2E
作用:该库用于功能安全ECU根据ISO26262标准进行安全数据交换的保护。它负责计算校验码和提供报文计数。其中和E2E相关的还包括E2EPW和E2EXf两个主要模块
开发进度:0%
E2ETrransformer(E2EXF)
作用:通过E2ETransfer模块可以在RTE接口中,根据ISO26262标准,集成安全相关的信号的保护。相比于E2EPW,该模块使用了RTE标准的接口
开发进度:0%
FlsTst
作用:Flash测试模块提供了测试非易失内存的算法,包括数据和程序Flash/SRAM/被保护的缓存。
开发进度:0%
RamTst
作用:该模块用于测试微处理器内部的RAM单元,在ECU启动和关闭阶段触发或者由诊断命令触发此项测试。在正常运行阶段,执行的是周期测试。
开发进度:0%
SecOC
作用:SECOC模块可以用来发送和接收认证信息。那些未经认可的/重复的或被操作的信息可以被检测到。该模块是AUTOSAR加密方案的一部分
开发进度:0%
WdgIf
作用:该模块为访问看门狗驱动(WDG)提供统一的服务,包括看门狗模式切换和启动。对于功能安全相关的ECU,WDGIF模块必须遵循ISO26262标准进行开发
开发进度:0%
WdgM
作用:看门狗管理模块监测ECU应用程序的可靠性和功能安全。包含对SWC和BSW正确执行的监测以及在需要的时间区间触发看门狗。WDGM模块还可以对多个升级阶段中潜在的错误行为进行反应。根据ISO26262标准,该模块有一个重要的安全相关的功能,即对关键任务正确执行顺序监测(逻辑监测)。对于功能安全相关的ECU,WDGM模块必须遵循ISO26262标准进行开发
开发进度:0%
WDG
作用:该模块为控制和触发看门狗硬件提供服务。触发程序是由看门狗管理模块(WDGM)调用的。对于功能安全相关的ECU,WDG模块必须遵循ISO26262标准进行开发。
开发进度:0%
SystemServices(系统服务)
为应用程序、RTE和基本软件模块提供基本服务。
BswM
作用:包含了车辆的模式管理和应用模式管理,处理来自于SWC模块和其他BSW模块的模式请求,同时根据模式请求的仲裁结果,执行模式转换或具体的行为等。同时BSWM可以与ECUM模块关联,控制ECU的启动和关闭,BSWM模块还可以协调多核系统的不同分区
开发进度:0%
Dbg
作用:调试模块使得外部访问可以获得基础软件的内部信息,也用于修改内存数据
开发进度:0%
Dlt
作用:DLT模块是诊断Log和Trace的简称,主要用于记录DET、DEM、SWS等的日志信息以及跟踪信息。Dlt模块通过内部的API可以在通信总线传输该数据,以使该信息在 ECU 外部可见
开发进度:0%
EcuM
作用:ECU状态管理负责ECU的启动和关闭,同时还管理ECU的唤醒机制。支持Fixed和Flex两个版本的配置。Fixed的配置ECUM管理一些预定义好的运行状态。通过Flex的配置可以在BSWM中定义运行的状态,实现特殊的节能状态和多种启动类型。多核系统中,ECUM还可以协调管理不同的内核
开发进度:0%
OS
作用:AUTOSAR ECU中的OS是基于OSEK操作系统而扩展的。所有扩展功能被分配到不同的操作系统扩展类型中,采用SC1-SC4表示,其中,SC1表示只使用调度表功能;SC2包含了调度表和时间保护;SC3包含了内存保护和调度表;SC4包含了调度表/时间保护和内存保护。同时操作系统也可以支持多核处理器。
开发进度:0%
StbM
作用:同步时基管理可以确保时间的同步,从AUTOSAR 4.2开始,由时间主站提供的时间基准可以通过总线系统实现不同ECU之间的同步
开发进度:0%
Tm
非必要模块 根据项目需求进行选择,目前来看智驾感知决策前端可能会涉及使用
作用:TM模块用于测试函数运行时间和实现动态等待功能,可以提供从1微秒到4.9天的精度
开发进度:0%
CDD(复杂驱动)
复杂驱动程序层从硬件到RTE 提供集成专用功能的可能性,例如设备驱动程序: 其未在AUTOSAR内指定, 具有非常高的时序约束,或者 用于移植目的等。
作用:提供集成专用功能的可能性,例如设备驱动程序/高时间性能要求,硬件直通RTE
开发进度:0%
IoHwAb(ECU抽象层)
作用:I/O硬件抽象模块代表的是RTE和ECU I/O通信间的连接。它封装了I/O驱动,例如对ADC/DIO/PWM/ICU/OCU等MCAl模块的操作,通过该模块使得SWC能够访问I/O的信号。
开发进度:0%
ASW
E2EPW
作用:E2EPW 是E2E保护封装通过添加功能安全相关的信号,扩展了RTE的验证功能。在使用的时候要结合E2E的库来使用
开发进度:0%
SWC
概述
SW-Component Type Description
最顶层的SWC的描述,描述内部最小的SWC所使用的接口、数据等,描述SWC间的交互和通信关系,定义SWC的分层结构
SW-Component Internal Behavior Description
定义RTE层面的使用对象,定义RTE的调度实体,定义相关的触发事件,定义Timing相关的交互参数
SW-Component Implementation Description
根据定义的行为产生相关的代码,根据SW-Component定义的交互接口产生相关的接口函数和数据定义,产生RTE交互的接口API以及资源使用
Software Component
SWC就是一个软件组件,定义了不同类型的软件单元的行为和交互接口,一般一个SWC用一个xml文件描述,在代码生成中一般生成一个C文件,包含了函数、接口、变量的相关定义
Application
主要功能策略逻辑实现
Sensor Actuator
APP层开发应用逻辑的主要组件负责传感器输入、逻辑算法以及控制执行器的输出
I/O Hardware Abstraction
对BSW层I/O Hardware Abstraction进行设计和开发,实现MCAL IO Driver的抽象,达到APP的IO使用与MCAL(芯片)的隔离
Complex Driver
CP AUTOSAR中复杂驱动模块开发的SWC,在CP AUTOSAR架构设计开发中位于BSW层,用于没有标准化的外围硬件IC芯片的开发
Non-Volatile Component
Non-Volatile Component主要实现BSW层NvM与APP之间的交互,定义Nv Data存储方式、Nv Block的映射和配置
Service components
Service components用于服务模块的开发,主要满足对一些功能的服务调用
Composition
Composition一般是多个SWC的集合,在CP AUTOSAR开发配置过程中可以一个包含多个SWC的Feature称作是一个Composition,也可以把整个ECU中所有的SWC放到一个Composition中。设计好的SWC一旦放入到了对应的Composition中也就是具备了应用和实现的属性,可以用作生成C文件以及和各个SWC之间以及系统信号或者BSW模块进行交互
Port Interface
一个Component有明确定义的Port,通过这些Port, Component可以与其他Component交互。一个Port总是只属于一个Component并且表示Component和Component之间的交互。 为了表示Port传递的Services(CS Port) or Data(SR Port)的provided或者是required方式,引入了Interface的概念,Port的类型由Interface定义。 通常而言Interface只是定义了一些操作和数据元素或者一些Operation服务,一旦Interface具备了Provided或者Received在SWC中便是RPort或者PPort。
Port与Interface的关系如下,从左到右依次是Sender Port(发送数据,代码中一般以Rte_Write_XXX存在)、Receive Port(读取获得数据,代码中一般以Rte_Read_XXX存在)、Server Port(提供服务函数代码中一般以函数形式存在)、Client Port(调用服务函数, 代码中一般以Rte_Call_XXX存在)
Runnable
一个函数的实体,简称Runnable,是一个承载你代码的C函数。Runnble在SWC设计中一般包括Init Runnable、Cyclic Runnable、Trigger Runnable。 对应的每个Runnable都有对应的触发源,Init Runnable一般在系统运行中初始化一次,可以作为Init的事件放在初始化的Task中执行,Cyclic Runnable一般采用周期的Alarm或者schedule Table实现,Trigger Runnable一般采用一个事件或者接口调用实现
Data Element
数据元素决定了可以通过端口的数据类型以及数据。数据元素一般自己定义,数据类型最终会映射Interface上用于相互SWC之间的数据通信
Data Type
主要定义传达数据元素的类型,主要包括Base Type(常见的数据类型,Uint/int/float等)、Implementation Data Type(IDT,主要是对基本类型的特殊定义,类似于Type define的功能)、Application Data Type(ADT,用于实际的物理类型,具备了真实的物理数据涵义)
Connector
为了定义软件组件相互通信,它们的端口必须通过所谓的Connectors连接。Connector实现软件组件之间的发送方/接收方和客户端/服务器通信。Connectors只能在两个Port之间绘制,如果它们的Port接口兼容
Compu Methods
定义数据元素内部数据的转换关系,通常一些,通过CM,可以实现数据元素的转换,例如简单的线性运算y=ax+b,就是在CM中配置a(factor)和b(offset)实现的。同时对于一些枚举元素的定义也可以在CM中设置
Type Mapping Set
建立数据类型的Mapping关系,通常在使用ADT和IDT中,两者之间的映射关系就是在Type Mapping Set中实现的
Data Mapping
在SWC中将CAN、LIN、ETH等Com层的信号与对应的SWC的PortInterface中的数据元素建立关联,实现对系统信号的读写操作
E2E Protection
对SWC的Port之间的交互增加E2E的配置,实现数据的E2E保护