# AUTOSAR_MOD_GeneralBlueprints 标准模板与基类规范 ## 概述 本文档详细记录 AUTOSAR 4.4.0 Classic Platform 中 `AUTOSAR_MOD_GeneralBlueprints` 定义的标准化模板和基类。每个基类都提供完整的 ARXML 格式定义作为参考实现。 **文档版本**: 4.4.0 **所属路径**: `MethodologyAndTemplates/AUTOSAR_MOD_GeneralBlueprints/` --- ## 1. 基础数据类型 (SW-BASE-TYPE) ### 1.1 概述 基础数据类型位于 `/AUTOSAR/Platform/BaseTypes_Blueprint/` 路径下,定义了 AUTOSAR 标准的基本数据类型。所有实现数据类型必须引用这些基类型。 ### 1.2 标准基类型定义 #### 1.2.1 boolean (布尔类型) ```xml boolean boolean FIXED_LENGTH 8 BOOLEAN ``` | 属性 | 值 | 说明 | |------|-----|------| | SHORT-NAME | boolean | 类型名称 | | CATEGORY | FIXED_LENGTH | 固定长度类型 | | BASE-TYPE-SIZE | 8 | 位大小 | | BASE-TYPE-ENCODING | BOOLEAN | 布尔编码 | #### 1.2.2 有符号整数类型 ```xml sint8 sint8 FIXED_LENGTH 8 2C sint16 sint16 FIXED_LENGTH 16 2C sint32 sint32 FIXED_LENGTH 32 2C sint64 sint64 FIXED_LENGTH 64 2C ``` | 类型 | 大小 | 编码 | 范围 | |------|------|------|------| | sint8 | 8位 | 2C (二进制补码) | -128 ~ 127 | | sint16 | 16位 | 2C | -32768 ~ 32767 | | sint32 | 32位 | 2C | -2147483648 ~ 2147483647 | | sint64 | 64位 | 2C | -9223372036854775808 ~ 9223372036854775807 | #### 1.2.3 无符号整数类型 ```xml uint8 uint8 FIXED_LENGTH 8 NONE uint16 uint16 FIXED_LENGTH 16 NONE uint32 uint32 FIXED_LENGTH 32 NONE uint64 uint64 FIXED_LENGTH 64 NONE ``` | 类型 | 大小 | 编码 | 范围 | |------|------|------|------| | uint8 | 8位 | NONE | 0 ~ 255 | | uint16 | 16位 | NONE | 0 ~ 65535 | | uint32 | 32位 | NONE | 0 ~ 4294967295 | | uint64 | 64位 | NONE | 0 ~ 18446744073709551615 | #### 1.2.4 浮点类型 ```xml float32 float32 FIXED_LENGTH 32 IEEE754 float64 float64 FIXED_LENGTH 64 IEEE754 ``` | 类型 | 大小 | 编码 | 说明 | |------|------|------|------| | float32 | 32位 | IEEE754 | 单精度浮点 | | float64 | 64位 | IEEE754 | 双精度浮点 | --- ## 2. 实现数据类型 (IMPLEMENTATION-DATA-TYPE) ### 2.1 平台数据类型 位于 `/AUTOSAR/Platform/ImplementationDataTypes_Blueprint/`。 #### 2.1.1 简单值类型 ```xml uint8 uint8 VALUE /AUTOSAR/Platform/BaseTypes_Blueprint/uint8 Platform_Types.h ``` **CATEGORY 类型说明**: - `VALUE`: 直接值类型 - `TYPE_REFERENCE`: 类型引用(通过 SW-DATA-DEF-PROPS-CONDITIONAL 引用其他类型) - `STRUCTURE`: 结构体类型 - `DATA_REFERENCE`: 数据引用 #### 2.1.2 Std_ReturnType (标准返回类型) ```xml Std_ReturnType Standard Return Type This type can be used as standard API return type which is shared between the RTE and the BSW modules. TYPE_REFERENCE /AUTOSAR/Std/CompuMethods_Blueprint/Std_ReturnType /AUTOSAR/Platform/ImplementationDataTypes_Blueprint/uint8 Std_Types.h ``` **Std_ReturnType 关联的 COMPU-METHOD**: ```xml Std_ReturnType TEXTTABLE 0 0 E_OK 1 1 E_NOT_OK ``` #### 2.1.3 Std_VersionInfoType (版本信息类型) ```xml Std_VersionInfoType Standard Version Info Type This type shall be used to request the version of a BSW module using the <Module name>_GetVersionInfo() function. STRUCTURE vendorID TYPE_REFERENCE /AUTOSAR/Platform/ImplementationDataTypes_Blueprint/uint16 moduleID TYPE_REFERENCE /AUTOSAR/Platform/ImplementationDataTypes_Blueprint/uint16 sw_major_version TYPE_REFERENCE /AUTOSAR/Platform/ImplementationDataTypes_Blueprint/uint8 sw_minor_version TYPE_REFERENCE /AUTOSAR/Platform/ImplementationDataTypes_Blueprint/uint8 sw_patch_version TYPE_REFERENCE /AUTOSAR/Platform/ImplementationDataTypes_Blueprint/uint8 Std_Types.h ``` --- ## 3. 数据约束 (DATA-CONSTR) ### 3.1 概述 数据约束定义数值的有效范围,位于各模块的 `DataConstrs_Blueprint` 子包中。 ### 3.2 约束结构 ```xml Adc_ChannelRangeSelectType 0 6 ``` ### 3.3 带 Blueprint 值的约束 ```xml NetworkHandleType undefined undefined ``` ### 3.4 ComM 模块约束示例 ```xml ComM_InhibitionStatusType 0x00 0x03 ``` --- ## 4. 计算方法 (COMPU-METHOD) ### 4.1 概述 计算方法定义内部值与物理值之间的转换关系,位于各模块的 `CompuMethods_Blueprint` 子包中。 ### 4.2 TEXTTABLE 类型 ```xml ComM_InhibitionStatusType BITFIELD_TEXTTABLE COMPU-INTERNAL-TO-PHYS 0 0 BCM_NO_INHIBITION 1 1 BCM_INHIBIT_ALL 2 2 BCM_INHIBIT_WAKEUP 3 3 BCM_INHIBIT_BUSY ``` ### 4.3 boolean 类型的 COMPU-METHOD ```xml boolean TEXTTABLE COMPU-INTERNAL-TO-PHYS 0 0 FALSE 1 1 TRUE ``` ### 4.4 CATEGORY 类型说明 | CATEGORY | 说明 | 用途 | |----------|------|------| | TEXTTABLE | 文本表 | 离散值的文字描述 | | BITFIELD_TEXTTABLE | 位域文本表 | 按位定义的离散值 | | LINEAR | 线性转换 | 物理值 = 系数 × 内部值 | | RAT_FUNC | 有理函数 | 高级数学转换 | | IDENTICAL | 恒等转换 | 内部值 = 物理值 | --- ## 5. 单位系统 (UNIT) ### 5.1 概述 单位定义位于 `/AUTOSAR/AUTOSAR_PhysicalUnits/Units_Blueprints/`。 ### 5.2 单位 ARXML 结构 ```xml Volt Volt V 1.0 0.0 Len2M1TiNeg3INeg1 ``` ### 5.3 常用单位定义 #### 5.3.1 电气单位 ```xml Ampr Ampere A 1.0 0.0 I1 Volt Volt V 1.0 0.0 Len2M1TiNeg3INeg1 Ohm Ohm Ω 1.0 0.0 Len2M1TiNeg3INeg2 Farad Farad F 1.0 0.0 LenNeg2MNeg1Ti4I2 ``` #### 5.3.2 机械单位 ```xml Mtr Meter m 1.0 0.0 Len1 MtrPerSec Meter Per Second m/s 1.0 0.0 Len1TiNeg1 Rpm Revolutions Per Minute rpm 60.0 0.0 TiNeg1_2 NwtMtr Newtonmeter Nm 1.0 0.0 Len2M1TiNeg2 ``` #### 5.3.3 时间与频率单位 ```xml Sec Second s 1.0 0.0 Ti1 Hz Hertz Hz 1.0 0.0 TiNeg1 MilliSec Millisecond ms 1000.0 0.0 Ti1 ``` #### 5.3.4 温度单位 ```xml DegCgrd Degree Celsius (Absolute Temperature) °C 1.0 -273.15 T1 KelvinAbslt Kelvin (Absolute Temperature) K 1.0 0.0 T1 ``` #### 5.3.5 功率与能量单位 ```xml Watt Watt W 1.0 0.0 Len2M1TiNeg3_1 Jou Joule J 1.0 0.0 Len2M1TiNeg2_1 ``` --- ## 6. 物理维度 (PHYSICAL-DIMENSION) ### 6.1 概述 物理维度定义位于 `/AUTOSAR/AUTOSAR_PhysicalUnits/PhysicalDimensions_Blueprints/`。 ### 6.2 维度 ARXML 结构 ```xml Len1M1TiNeg2 Force 1 1 -2 0 0 0 0 ``` ### 6.3 标准物理维度定义 | 维度名称 | 物理意义 | LEN | MASS | TIME | CURRENT | TEMP | MOLAR | LUM | |---------|---------|-----|------|------|---------|------|-------|-----| | Len1 | 长度 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | | M1 | 质量 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | | Ti1 | 时间 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | | I1 | 电流 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | | T1 | 绝对温度 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | | Amnt1 | 物质的量 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | | Illmn1 | 发光强度 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | | Len1TiNeg1 | 速度 | 1 | 0 | -1 | 0 | 0 | 0 | 0 | | Len1TiNeg2 | 加速度 | 1 | 0 | -2 | 0 | 0 | 0 | 0 | | Len2 | 面积 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | | Len2M1TiNeg2 | 扭矩 | 2 | 1 | -2 | 0 | 0 | 0 | 0 | | Len2M1TiNeg3INeg1 | 电压 | 2 | 1 | -3 | -1 | 0 | 0 | 0 | | Len2M1TiNeg3_1 | 功率 | 2 | 1 | -3 | 0 | 0 | 0 | 0 | | Len3 | 体积 | 3 | 0 | 0 | 0 | 0 | 0 | 0 | | LenNeg1M1TiNeg2 | 压强 | -1 | 1 | -2 | 0 | 0 | 0 | 0 | | M1TiNeg1 | 质量流量 | 0 | 1 | -1 | 0 | 0 | 0 | 0 | | NoDimension | 无量纲 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | NoDimension_1 | 比值/百分比 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | NoDimension_2 | 角度 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | TiNeg1 | 频率 | 0 | 0 | -1 | 0 | 0 | 0 | 0 | | TiNeg1_2 | 转速 | 0 | 0 | -1 | 0 | 0 | 0 | 0 | ### 6.4 详细 ARXML 示例 ```xml Len1TiNeg1 Velocity 1 0 -1 0 0 0 0 Len2M1TiNeg2 Torque 2 1 -2 0 0 0 0 ``` --- ## 7. BSW 模块条目 (BSW-MODULE-ENTRY) ### 7.1 概述 BSW 模块条目定义位于 `/AUTOSAR/{Module}/BswModuleEntrys_Blueprint/`。 ### 7.2 模块条目 ARXML 结构 ```xml Adc_DeInit Adc_DeInit Returns all ADC HW Units to a state comparable to their power on reset state. 0x01 false true REGULAR CONCRETE ``` ### 7.3 带参数的模块条目 ```xml Adc_DisableGroupNotification Adc_DisableGroupNotification Disables the notification mechanism for the requested ADC Channel group. 0x08 true false REGULAR CONCRETE Group Group Numeric ID of requested ADC Channel group. IN /AUTOSAR/Adc/ImplementationDataTypes_Blueprint/Adc_GroupType ``` ### 7.4 关键属性说明 | 属性 | 说明 | 可能的值 | |------|------|----------| | SERVICE-ID | 服务标识符 | 十六进制值 (如 0x01, 0x08) | | IS-REENTRANT | 是否可重入 | true, false | | IS-SYNCHRONOUS | 是否同步 | true, false | | CALL-TYPE | 调用类型 | REGULAR, CYCLIC, ERROR_HOOK, etc. | | BSW-ENTRY-KIND | 条目类型 | CONCRETE, ABSTRACT | | DIRECTION | 参数方向 | IN, OUT, INOUT | --- ## 8. 客户端-服务器接口 (CLIENT-SERVER-INTERFACE) ### 8.1 概述 服务接口定义位于 `/AUTOSAR/{Module}/ClientServerInterfaces_Blueprint/`。 ### 8.2 接口 ARXML 结构 ```xml V2xM_GeoMath V2xM Geographic Mathematics Interface false E_OK 0 E_NOT_OK 1 CalculateDistance Latitude1 Latitude IN Longitude1 Longitude IN Latitude2 Latitude IN Longitude2 Longitude IN Distance Distance OUT ``` --- ## 9. 记录布局 (SW-RECORD-LAYOUT) ### 9.1 概述 记录布局定义位于 `/AUTOSAR/GenDef/SwRecordLayouts_Blueprint/`。 ### 9.2 简单值布局 (ValBlk) ```xml Val_f32 Val /AUTOSAR/Platform/BaseTypes_Blueprint/float32 0 VALUE ``` ### 9.3 数组值布局 (ValBlk_*) ```xml ValBlk_u8_6 ValBlk COLUMN_DIR 1 axis FIXED_AXIS /AUTOSAR/Platform/BaseTypes_Blueprint/uint8 1 /AUTOSAR/Platform/BaseTypes_Blueprint/uint8 0 VALUE ``` ### 9.4 立方体布局 (Cuboid) ```xml Cuboid_s16s16s16_s16 Cuboid INDEX_INCR 1 X STANDARD_AXIS /AUTOSAR/Ifx/SwRecordLayouts_Blueprint/Curve_X_s16 /AUTOSAR/Platform/BaseTypes_Blueprint/sint16 1 Y STANDARD_AXIS /AUTOSAR/Ifx/SwRecordLayouts_Blueprint/Curve_X_s16 /AUTOSAR/Platform/BaseTypes_Blueprint/sint16 2 Z STANDARD_AXIS /AUTOSAR/Ifx/SwRecordLayouts_Blueprint/Curve_X_s16 /AUTOSAR/Platform/BaseTypes_Blueprint/sint16 3 /AUTOSAR/Platform/BaseTypes_Blueprint/sint16 0 VALUE ``` ### 9.5 记录布局属性说明 | 属性 | 说明 | 可能的值 | |------|------|----------| | CATEGORY | 布局类别 | COLUMN_DIR, ROW_DIR, INDEX_INCR | | SW-RECORD-LAYOUT-V-AXIS | 轴索引 | 0, 1, 2, 3 | | SW-RECORD-LAYOUT-V-PROP | 值属性 | VALUE, CURVE_AXIS | | NUMBER-OF-AXIS | 轴数量 | 1, 2, 3 | --- ## 10. 插值算法映射 (INTERPOLATION-ROUTINE-MAPPING-SET) ### 10.1 概述 插值映射定义位于 `/AUTOSAR/Ifl/InterpolationRoutineMappingSets_Blueprint/`。 ### 10.2 IFL 插值映射 ```xml Ifl_Mappings DPSearch_f32__Distr_f32 /AUTOSAR/RbaRpm_Ifl/BswModuleEntrys_Blueprint/DPSearch_f32 /AUTOSAR/Ifl/SwRecordLayouts_Blueprint/Distr_f32 IntIpoCur_f32_f32__IntCurve_f32_f32 /AUTOSAR/RbaRpm_Ifl/BswModuleEntrys_Blueprint/IntIpoCur_f32_f32 /AUTOSAR/Ifl/SwRecordLayouts_Blueprint/IntCurve_f32_f32 IntIpoMap_f32f32_f32__IntMap_f32f32_f32 /AUTOSAR/RbaRpm_Ifl/BswModuleEntrys_Blueprint/IntIpoMap_f32f32_f32 /AUTOSAR/Ifl/SwRecordLayouts_Blueprint/IntMap_f32f32_f32 ``` --- ## 11. 接口到模块条目映射 ### 11.1 概述 接口映射定义位于 `/AUTOSAR/{Module}/Mapping_Blueprint/`。 ### 11.2 映射 ARXML 结构 ```xml ClearDTC__Mapping /AUTOSAR/Dem/ClientServerInterfaces_Blueprint/ClearDTC /AUTOSAR/Dem/BswModuleEntrys_Blueprint/Dem_ClearDTC /AUTOSAR/Dem/ClientServerInterfaces_Blueprint/ClearDTC/ClearDTC ``` --- ## 12. Blueprint 策略 ### 12.1 BLUEPRINT-POLICY-SINGLE 用于单一属性的可衍生规则: ```xml SHORT-NAME

The name part {safety} shall contain the safety integrity level...

``` ### 12.2 BLUEPRINT-POLICY-NOT-MODIFIABLE 用于标记不可修改的属性: ```xml COMPU-INTERNAL-TO-PHYS ``` ### 12.3 BLUEPRINT-CONDITION 用于定义条件性 Blueprint: ```xml Optional ``` --- ## 13. 文件清单 | 文件名 | 描述 | |--------|------| | AUTOSAR_MOD_BswDataTypes_Blueprint.arxml | BSW 数据类型 Blueprint | | AUTOSAR_MOD_BswModuleEntrys_Blueprint.arxml | BSW 模块条目 Blueprint | | AUTOSAR_MOD_BswServiceDataTypes_Blueprint.arxml | BSW 服务数据类型 Blueprint | | AUTOSAR_MOD_BswServiceInterfaces_Blueprint.arxml | BSW 服务接口 Blueprint | | AUTOSAR_MOD_BswServiceInterfacesMapping_Blueprint.arxml | BSW 服务接口映射 Blueprint | | AUTOSAR_MOD_CommonDataTypes_Blueprint.arxml | 通用数据类型 Blueprint | | AUTOSAR_MOD_Cube_SwRecordLayout_Blueprint.arxml | 立方体记录布局 Blueprint | | AUTOSAR_MOD_IFL_RecordLayout_Blueprint.arxml | IFL 记录布局 Blueprint | | AUTOSAR_MOD_IFX_RecordLayout_Blueprint.arxml | IFX 记录布局 Blueprint | | AUTOSAR_MOD_MemoryMapping_SwAddrMethods_Blueprint.arxml | 内存映射地址方法 Blueprint | | AUTOSAR_MOD_PhysicalDimensions_Blueprint.arxml | 物理维度 Blueprint | | AUTOSAR_MOD_SWCServiceRelatedInterfaces_Blueprint.arxml | SWC 服务相关接口 Blueprint | | AUTOSAR_MOD_Units_Blueprint.arxml | 单位 Blueprint | | AUTOSAR_MOD_ValBlk_SwRecordLayout_Blueprint.arxml | 值块记录布局 Blueprint | --- ## 14. 附录:完整 ARXML 文件结构 ### 14.1 Blueprint 文件模板 ```xml English AUTOSAR {Module} {BlueprintType}_Blueprint BLUEPRINT ``` ### 14.2 常用路径引用 | 元素类型 | 路径模式 | |----------|----------| | 基础类型 | `/AUTOSAR/Platform/BaseTypes_Blueprint/{type}` | | 实现类型 | `/AUTOSAR/Platform/ImplementationDataTypes_Blueprint/{type}` | | 单位 | `/AUTOSAR/AUTOSAR_PhysicalUnits/Units_Blueprints/{unit}` | | 物理维度 | `/AUTOSAR/AUTOSAR_PhysicalUnits/PhysicalDimensions_Blueprints/{dim}` | | 记录布局 | `/AUTOSAR/{package}/SwRecordLayouts_Blueprint/{layout}` | | BSW 模块条目 | `/AUTOSAR/{module}/BswModuleEntrys_Blueprint/{entry}` |