1. SoAd 概述
Socket Adaptor (SoAd) 是 AUTOSAR 中负责基于 TCP/UDP 协议进行通信的基础软件模块。它充当在 AUTOSAR 静态通信(I-PDU)与动态 Socket 通信之间的适配层,实现对 TCP/IP Socket 的管理和 PDU 传输。SoAd 的主要功能包括:
- 将 Socket 连接映射到一个或多个 I-PDU(可选地带有 SoAd 自定义的 PDU 头,用于聚合多个 PDU)。
- 通过上层模块的请求或自动配置来打开/关闭 Socket 连接(API 调用
SoAd_OpenSoCon
/SoAd_CloseSoCon
),并在周期性SoAd_MainFunction
中执行连接管理。 - 提供 Socket 恢复和断开策略,实现断线重连等功能。
- 定义消息接收过滤策略,指定通过 TCP 或 UDP 接收哪些远端报文。
- 支持 PDU 路由组概念,允许对一组 PDU 的路由进行使能/失能控制。
- 通过 IF-API(接口)和 TP-API(传输协议)向上层模块提供 PDU 的发送与接收,支持多种交付语义和粘包/拆包逻辑。
- 支持 PDU 扇出:一个 IF-PDU 可以被发送到多个 Socket 连接,或者一个接收报文可以拆分成多个 IF-PDU 分发给不同上层。
引言与背景
随着汽车电子电气架构的演进,车辆内部和车际间的数据交换需求日益增长,传统的面向信号总线(如CAN/FlexRay)和面向服务通信(如SOME/IP)在大数据量、多发布/多订阅场景下开始遇到挑战。近年来,由OMG(对象管理组织)提出的DDS(Data Distribution Service,数据分发服务)成为嵌入式分布式系统中流行的高性能数据中心发布/订阅中间件标准。在汽车领域,DDS以其数据驱动、高吞吐量和灵活QoS等特性,逐渐受到关注。AUTOSAR组织自2018年在Adaptive Platform引入DDS以来(作为通信管理的一种网络绑定),近期也在Classic Platform中推出了DDS基础软件模块。AUTOSAR Classic DDS模块的规范在AUTOSAR R22-11中首次发布(由华为主导提案,RTI等公司支持),目标是为经典平台上的ECU提供DDS数据分发能力。
引言: AUTOSAR(AUTomotive Open System ARchitecture)是汽车电子软件架构的开放标准,它通过定义通用的软件接口和架构促进不同厂商的协同开发。在AUTOSAR标准中,系统的所有信息实体都由一套严格定义的元模型来描述,而XML被选为AUTOSAR系统描述的交换格式基础。所谓AUTOSAR XML Schema Production Rules(XML Schema生成规则),就是将AUTOSAR元模型映射为对应的XML Schema(XSD)的一系列规则。这些规则建立了UML建模世界与XML描述世界之间的桥梁,使AUTOSAR模型能够以XML文件(.arxml)的形式进行交换和验证。
背景与意义
汽车软件的复杂性与标准化需求。 随着汽车电子技术的发展,车载软件的规模和复杂度日益增加,传统的开发方式难以支撑。在AUTOSAR出现之前,各大整车厂(OEM)通常各自开发专有的ECU软件平台,软硬件高度绑定,不同供应商的平台难以兼容。这导致开发成本高、重复工作多,软硬件升级和跨供应商协作困难。为解决这一瓶颈,业界需要一个统一的开放标准架构,使软件独立于硬件,实现组件的跨平台复用和快速集成。
AUTOSAR联盟的成立。 2003年,包括宝马、博世、大陆、戴姆勒(奔驰)、福特、通用、PSA标致雪铁龙、丰田、大众等在内的九大汽车企业联合发起成立AUTOSAR联盟。AUTOSAR的英文全称是 “Automotive Open System Architecture”(汽车开放系统架构),既指这个全球合作联盟本身,也指该联盟制定的软件架构标准。联盟的目标是在汽车电子/电气(E/E)架构领域制定开放的行业标准,推动模块化、解耦化、可复用的汽车软件架构。AUTOSAR联盟秉承的口号是:“在标准上合作,在实现上竞争”,即各厂商共同制定标准,但在具体产品实现上保持竞争,通过标准化接口提高整个行业的软件开发效率。
第一章 :概览
AUTOSAR 架构中,ADC (Analog to Digital Converter) 模块是最基础也是最重要的硬件抽象层之一,它将现实世界中的模拟信号转换为ECU可读取的数字值,是环境感知和内部调控系统的关键一环。
第二章 :模块位置与组成
ADC 模块属于 BSW 底层中的 MCAL (Microcontroller Abstraction Layer) 层,为上层模块提供不依赖 MCU 硬件细节的方便仅接接口,一般和 IoHwAb 、 BSWM 、 DEM 等互动。
本文基于官方文档与实际使用经验,全面总结 VectorCAST 的原理、工作流程及在 C 语言单元测试中的实战技巧,适合车规、航电、医疗软件等高安全要求领域。
一、什么是 VectorCAST?
VectorCAST 是一套自动化单元测试与覆盖率分析工具,广泛用于嵌入式系统开发。它支持多种语言(C/C++/Ada)及高安全要求认证(如 ISO 26262、DO-178C)。
支持的核心模块:
模块 | 说明 |
---|---|
VectorCAST/C | C 语言单元测试 |
VectorCAST/C++ | C++ 单元测试 |
VectorCAST/QA | 系统测试与回归测试整合 |
VectorCAST/RSP | 目标平台运行支持(如 ECU) |
VectorCAST/Cover | 覆盖率收集 |
VectorCAST/Manage | 多测试环境统一管理 |
CAN(Controller Area Network)作为嵌入式通信的核心总线之一,广泛用于各类汽车ECU之间的实时数据交互。AUTOSAR 将其抽象为一套标准的软件模块,底层由 MCAL 驱动控制器,中间通过 CanIf
接口与上层模块如 PduR
、Com
等交互。本文将全面梳理 AUTOSAR CAN 模块的作用、配置方式以及工程实践中如何识别与处理应用报文。
模块结构概览
[Application Layer]
↑
[COM / RTE]
↑
[PduR]
↑
[CanIf]
↑
[CAN Driver (Can)] ← 本文重点
↑
[CAN Controller Hardware]
在 AUTOSAR 系统中,CAN 模块是实现嵌入式通信的核心组件之一。为了高效、可靠地进行通信,AUTOSAR 定义了 Hardware Object 和 Mailbox 两个重要概念。它们在硬件资源管理和报文缓冲区配置方面扮演着不同的角色。本文将深入分析这两个概念的定义、作用,以及它们之间的区别。
1. CAN Hardware Object 与 Mailbox:基础概念
Hardware Object
一、AUTOSAR Com 模块概述
AUTOSAR Com模块位于AUTOSAR分层架构的中间层,是用于处理ECU间信号通信的核心模块。它为用户(如RTE)提供以信号为导向的数据接口,支持信号的打包与解包、路由与过滤、传输控制等功能。
二、模块核心功能
AUTOSAR Com模块的主要功能包括但不限于:
- 提供基于信号的数据接口
- 信号打包到I-PDU以发送
- 接收并解包I-PDU
- 信号路由(信号网关)
- 通信模式管理(如启动/停止I-PDU组)
- 接收信号监控(超时机制)
- 信号过滤
- Endianness转换(字节序转换)
- 支持大数据类型和动态长度信号