跳转至

Dio

1. 简介和功能概述

本规范规定了AUTOSAR基础软件模块DIO驱动程序的功能、API和配置。

本规范仅适用于片上DIO引脚和端口的驱动程序。

DIO驱动程序提供从/向以下对象读取和写入数据的服务:

  • DIO通道(引脚)
  • DIO端口
  • DIO通道组

这些服务的行为是同步的。

本模块作用于由PORT驱动程序为此目的配置的引脚和端口。因此,DIO驱动程序中不存在对此端口结构的配置和初始化。

下图标识了DIO驱动程序的功能,以及PORT驱动程序和DIO驱动程序在MCAL软件层中的结构。

Figure1-1.png

2. 缩略语

以下为与DIO驱动程序模块相关、且未包含在[1] AUTOSAR术语表中的缩略语和缩写。

DIO channel

表示单个通用数字输入/输出引脚。

DIO port

表示由硬件分组在一起的多个DIO通道(通常由一个硬件寄存器控制)。示例:Freescale HC08 的 Port A(8 位)。

DIO channel group

表示由逻辑组表示的多个相邻DIO通道。一个DIO通道组应属于一个DIO端口。示例:8 位端口中寻址复用器的端口引脚 2..6。

Physical Level (Input)

两种可能的状态:LOW / HIGH。位值'0'表示LOW,位值'1'表示HIGH。

Physical Level (Output)

两种可能的状态:LOW / HIGH。位值'0'表示LOW,位值'1'表示HIGH。

LSB

最低有效位(Least Significant Bit)。

MSB

最高有效位(Most Significant Bit)。

DIO

数字输入输出(Digital Input Output)。

ID

标识符(Identifier)。

ADC

模数转换器(Analog to Digital Converter)。

SPI

串行外设接口(Serial Peripheral Interface)。

PWM

脉冲宽度调制(Pulse Width Modulation)。

ICU

输入捕获单元(Input Capture Unit)。

DET

默认错误跟踪器(Default Error Tracer)。

DEM

诊断事件管理器(Diagnostic Event Manager)。

3. 相关文档

3.1. 输入文件和相关标准与规范

[1] Glossary AUTOSAR_FO_TR_Glossary

[2] General Specification of Basic Software Modules AUTOSAR_CP_SWS_BSWGeneral

3.2. 相关规范

AUTOSAR提供了基础软件模块通用规范[2](SWS BSW General),该规范同样适用于DIO驱动程序。

因此,SWS BSW General规范应被视为DIO驱动程序的附加必需规范。

4. 约束和假设

4.1. 限制

无限制。

4.2. 汽车域的适用性

无限制。

5. 对其他模块的依赖

5.1. Port Driver模块

许多端口和端口引脚被PORT驱动程序模块分配给各种功能,例如:

  • 通用I/O
  • ADC
  • SPI
  • PWM

Dio模块不应为Dio模块中使用的端口结构提供整体配置和初始化的API。这些操作由PORT驱动程序模块完成。

Dio模块应使其配置和使用适配于微控制器和ECU。

Dio模块的用户只允许在Port驱动程序初始化之后使用Dio函数。否则Dio模块将表现出未定义的行为。

5.2. DET(默认错误跟踪器)

如果启用了开发错误(DET)检测,则Dio.c应包含Det.h。

6. 功能规格

6.1. 一般行为

6.1.1. 背景与原理

DIO驱动程序抽象对微控制器硬件引脚的访问。此外,它还允许对这些引脚进行分组。

6.1.2. 需求

DIO SWS应定义允许基于以下方式对内部通用I/O端口进行读写访问的函数:

  • 基于端口(Port-)
  • 基于通道(Channel-)
  • 基于通道组(Channel-group-)

Dio模块在提供读写服务时不应缓冲数据。DIO SWS应定义同步的读/写服务。

Dio模块的读写服务应为所有服务确保数据一致(不允许可中断的读-修改-写序列)。

DIO驱动程序用于表示通道软件电平的值只能是STD_HIGH或STD_LOW。

通用数字IO引脚表示一个DIO通道。

Port模块应将DIO通道配置为输入或输出。

在DIO驱动程序中,应可以将多个DIO通道按硬件分组(通常由一个硬件寄存器控制)以表示一个DIO端口。

注意:DIO端口内的单个DIO通道电平根据其在端口内的位置表示DIO端口值中的一个位。

通道组是DIO端口内多个相邻DIO通道的形式上的逻辑组合。

Figure7-1.png

DIO驱动程序提供以下服务:

  • DIO SWS应定义函数以单独地、针对端口或针对通道组修改输出通道的电平。
  • DIO SWS应定义函数以单独地、针对端口或针对通道组读取输入和输出通道的电平。

Figure7-2.png

Dio模块的所有读写函数应是可重入的。原因:DIO驱动程序可能被不同的上层处理程序或驱动程序访问。这些上层模块可能并发访问该驱动程序。

Dio模块的配置过程应为每个配置的DIO通道、端口和组提供符号名称。

6.2. 初始化

6.2.1. 背景与原理

硬件的初始化由PORT驱动程序完成。

6.2.2. 需求

Dio模块不应提供硬件初始化的接口。这由Port驱动程序执行。

6.3. 运行时重配置

6.3.1. 背景与原理

运行时重配置由PORT驱动程序提供。

6.3.2. 需求

PORT驱动程序应提供端口引脚方向在运行时的重配置。

6.4. DIO 写服务

6.4.1. 背景与原理

DIO驱动程序提供服务以向微控制器的引脚传输数据。

6.4.2. 需求

Dio模块的写函数应作用于输入和输出通道。

如果在输入通道上使用Dio写函数,其不应对物理输出电平产生影响。

如果硬件支持,Dio模块应设置/清除输入通道的输出数据锁存器,以便当端口驱动程序将该引脚配置为DIO输出引脚时,引脚输出所需的电平。

如果启用了开发错误检测且发生了错误,Dio模块的写函数不应处理写命令。

6.4.2.1. DIO 通道写服务

Dio_WriteChannel函数应将单个DIO通道的电平设置为STD_HIGH或STD_LOW。

6.4.2.2. DIO 端口写服务

Dio_WritePort函数应同时设置所有输出通道的电平。位值'0'将相应通道设置为物理STD_LOW,位值'1'将相应通道设置为物理STD_HIGH。

Dio_WritePort函数应确保该端口输入通道的功能不受影响。

6.4.2.3. DIO 通道组写服务

Dio_WriteChannelGroup函数应同时设置相邻的DIO通道子集(通道组)的电平。位值'0'将相应通道设置为物理STD_LOW,位值'1'将相应通道设置为物理STD_HIGH。

6.4.2.4. DIO 掩码端口写服务

Dio_MaskedWritePort函数应同时设置所选输出通道的电平。

Mask参数指定选择哪些位:位值'0'表示未选择相应通道,位值'1'表示选择了相应通道。

Level参数指定物理电平:位值'0'将相应通道设置为物理STD_LOW,位值'1'将相应通道设置为物理STD_HIGH。

Dio_MaskedWritePort函数应确保该端口输入通道的功能不受影响。

6.5. DIO 读服务

6.5.1. 背景与原理

DIO驱动程序提供服务以从微控制器的引脚传输数据。

6.5.2. 需求

Dio模块的读函数应作用于输入和输出通道。

6.5.2.1. DIO 通道读服务

Dio_ReadChannel函数应读取单个DIO通道的电平。

6.5.2.2. DIO 端口读服务

Dio_ReadPort函数应读取一个端口的所有通道的电平。位值'0'表示相应通道为物理STD_LOW,位值'1'表示相应通道为物理STD_HIGH。

6.5.2.3. DIO 通道组读服务

Dio_ReadChannelGroup函数应读取一个DIO通道组的电平。位值'0'表示相应通道为物理STD_LOW,位值'1'表示相应通道为物理STD_HIGH。

6.5.2.4. 输出引脚的回读

如果微控制器支持引脚值的直接回读,当读函数作用于配置为输出通道的通道时,Dio模块的读函数应提供真实引脚电平。

如果微控制器不支持引脚值的直接回读,当读函数作用于配置为输出通道的通道时,Dio模块的读函数应提供输出寄存器的值。

6.6. 错误分类

文档[2]《基础软件模块通用规范》的"错误处理"一章详细描述了基础软件的错误处理。最重要的是,它构成了一个由可能在BSW模块中发生的五种错误类型组成的分类方案。

在此基础上,以下章节规定了在下文相应小节中安排的特定错误。

6.6.1. 开发错误

错误类型 相关错误代码 错误值
请求的通道无效 DIO_E_PARAM_INVALID_CHANNEL_ID 0x0A
请求的端口无效 DIO_E_PARAM_INVALID_PORT_ID 0x14
请求的通道组无效 DIO_E_PARAM_INVALID_GROUP 0x1F
API服务以NULL指针调用 DIO_E_PARAM_POINTER 0x20

6.6.2. 运行时错误

没有运行时错误。

6.6.3. 瞬态故障

没有瞬态故障。

6.6.4. 生产错误

没有生产错误。

6.6.5. 扩展生产错误

没有扩展生产错误。

6.7. 安全事件

本模块不报告安全事件。

7. API规范

7.1. 导入的类型

本章列出了从以下模块包含的所有类型:

Dio模块的导入数据类型定义

模块 头文件 导入的类型
Std Std_Types.h Std_ReturnType
Std Std_Types.h Std_VersionInfoType

7.2. 类型定义

为DIO驱动程序定义的类型中的端口宽度应是DIO驱动程序可访问的MCU上最大端口的尺寸。

7.2.1. Dio_ChannelType

类型,派生自 uint。范围为:这是实现特定的,但并非所有值在该类型内都有效。应覆盖所有可用的DIO通道。DIO通道的数字ID。可通过Dio.h获得。

Dio_ChannelType类型的参数包含DIO通道的数字ID。

ID的映射是实现特定的,但不可配置。

对于Dio_ChannelType类型的参数值,Dio的用户应使用配置描述提供的符号名称。此外,相关需求适用于Dio_ChannelType类型。

7.2.2. Dio_PortType

类型,派生自 uint。范围为:0..<端口数量> —— 应覆盖所有可用的DIO端口。DIO端口的数字ID。可通过Dio.h获得。

Dio_PortType类型的参数包含DIO端口的数字ID。

ID的映射是实现特定的,但不可配置。

对于Dio_PortType类型的参数值,用户应使用配置描述提供的符号名称。此外,相关需求适用于Dio_PortType类型。

7.2.3. Dio_ChannelGroupType

结构类型。用于定义通道组的类型,通道组由端口内多个相邻通道组成。可通过Dio.h获得。

  • mask(uint8/16/32):定义通道组位置的掩码元素。
  • offset(uint8):此元素应为通道组在端口上的位置,从LSB开始计数。
  • port(Dio_PortType):应为定义通道组的端口。

Dio_ChannelGroupType是用于定义通道组的类型,通道组由端口内多个相邻通道组成。

对于Dio_ChannelGroupType类型的参数值,用户应使用配置描述提供的符号名称。此外,相关需求适用于Dio_ChannelGroupType类型。

7.2.4. Dio_LevelType

类型,派生自 uint8。这些是DIO通道可能具有的电平(输入或输出)。可通过Dio.h获得。

  • STD_LOW(0x00):物理状态 0V。
  • STD_HIGH(0x01):物理状态 5V 或 3.3V。

Dio_LevelType是DIO通道可能具有的电平(输入或输出)的类型。

7.2.5. Dio_PortLevelType

类型,派生自 uint。范围为:0...xxx —— 如果µC拥有不同端口宽度的端口(例如 4、8、16...位),Dio_PortLevelType继承最大端口的尺寸。可通过Dio.h获得。

Dio_PortLevelType是DIO端口值的类型。此外,相关需求适用于Dio_PortLevelType类型。

7.3. 函数定义

以下是提供给上层模块的函数列表。

7.3.1. Dio_ReadChannel

说明: 返回指定DIO通道的值。可通过Dio.h获得。本服务为同步调用,可重入。参数 ChannelId(in):DIO通道的ID。返回值:Dio_LevelType,STD_HIGH 表示相应引脚的物理电平为STD_HIGH;STD_LOW 表示相应引脚的物理电平为STD_LOW。

Dio_LevelType Dio_ReadChannel (Dio_ChannelType ChannelId)

Dio_ReadChannel函数应返回指定DIO通道的值。关于Dio_ReadChannel函数的返回值,相关需求适用。此外,相关需求适用于Dio_ReadChannel函数。

如果启用了开发错误检测,服务Dio_ReadChannel、Dio_WriteChannel和Dio_FlipChannel应检查"ChannelId"参数在当前配置内是否有效。如果"ChannelId"参数无效,函数应向DET报告错误代码DIO_E_PARAM_INVALID_CHANNEL_ID。

7.3.2. Dio_WriteChannel

说明: 设置通道电平的服务。可通过Dio.h获得。本服务为同步调用,可重入。参数 ChannelId(in):DIO通道的ID。参数 Level(in):要写入的值。

void Dio_WriteChannel (Dio_ChannelType ChannelId, Dio_LevelType Level)

如果指定通道配置为输出通道,Dio_WriteChannel函数应为指定通道设置指定的Level。

如果指定通道配置为输入通道,Dio_WriteChannel函数不应对物理输出产生影响。

如果指定通道配置为输入通道,Dio_WriteChannel函数不应对下一次读服务的结果产生影响。此外,相关需求适用于Dio_WriteChannel函数。

7.3.3. Dio_ReadPort

说明: 返回该端口所有通道的电平。可通过Dio.h获得。本服务为同步调用,可重入。参数 PortId(in):DIO端口的ID。返回值:Dio_PortLevelType,该端口所有通道的电平。

Dio_PortLevelType Dio_ReadPort (Dio_PortType PortId)

Dio_ReadPort函数应返回该端口所有通道的电平。

当使用Dio_ReadPort函数读取小于Dio_PortLevelType的端口时,函数应将对应于未定义端口引脚的位设置为 0。此外,相关需求适用于Dio_ReadPort函数。

如果启用了开发错误检测,函数Dio_ReadPort、Dio_WritePort和Dio_MaskedWritePort应检查"PortId"参数在当前配置内是否有效。如果"PortId"参数无效,函数应向DET报告错误代码DIO_E_PARAM_INVALID_PORT_ID。

7.3.4. Dio_WritePort

说明: 设置端口值的服务。可通过Dio.h获得。本服务为同步调用,可重入。参数 PortId(in):DIO端口的ID。参数 Level(in):要写入的值。

void Dio_WritePort (Dio_PortType PortId, Dio_PortLevelType Level)

Dio_WritePort函数应为指定端口设置指定的值。

当调用Dio_WritePort函数时,配置为输入的DIO通道应保持不变。

当使用Dio_WritePort函数写入小于Dio_PortLevelType的端口时,函数应忽略MSB。

Dio_WritePort函数不应对该端口内配置为输入通道的通道产生影响。此外,相关需求适用于Dio_WritePort函数。

7.3.5. Dio_ReadChannelGroup

说明: 此服务读取端口相邻位的子集。可通过Dio.h获得。本服务为同步调用,可重入。参数 ChannelGroupIdPtr(in):指向ChannelGroup的指针。返回值:Dio_PortLevelType,端口相邻位子集的电平。

Dio_PortLevelType Dio_ReadChannelGroup (const Dio_ChannelGroupType * ChannelGroupIdPtr)

Dio_ReadChannelGroup函数应读取端口相邻位的子集(通道组)。

Dio_ReadChannelGroup函数应对通道组进行掩码操作。

Dio_ReadChannelGroup函数应进行移位,使函数读取的值与LSB对齐。此外,相关需求适用于Dio_ReadChannelGroup函数。

如果启用了开发错误检测,函数Dio_ReadChannelGroup和Dio_WriteChannelGroup应检查"ChannelGroupIdPtr"参数在当前配置内是否有效。如果"ChannelGroupIdPtr"参数无效,函数应向DET报告错误代码DIO_E_PARAM_INVALID_GROUP。

7.3.6. Dio_WriteChannelGroup

说明: 将端口相邻位的子集设置为指定电平的服务。可通过Dio.h获得。本服务为同步调用,可重入。参数 ChannelGroupIdPtr(in):指向ChannelGroup的指针。参数 Level(in):要写入的值。

void Dio_WriteChannelGroup (
    const Dio_ChannelGroupType * ChannelGroupIdPtr, Dio_PortLevelType Level
)

Dio_WriteChannelGroup函数应将端口相邻位的子集(通道组)设置为指定的电平。

Dio_WriteChannelGroup不应改变端口的剩余通道以及配置为输入的通道。

Dio_WriteChannelGroup函数应对通道组进行掩码操作。

Dio_WriteChannelGroup函数应进行移位,使函数写入的值与LSB对齐。此外,相关需求适用于Dio_WriteChannelGroup函数。

7.3.7. Dio_GetVersionInfo

说明: 获取本模块版本信息的服务。可通过Dio.h获得。本服务为同步调用,可重入。参数 VersionInfo(out):指向存储本模块版本信息位置的指针。

void Dio_GetVersionInfo (Std_VersionInfoType* VersionInfo)

如果为DIO驱动程序模块启用了DET,当参数为NULL指针时,函数Dio_GetVersionInfo应引发DIO_E_PARAM_POINTER并直接返回,不执行任何动作。

7.3.8. Dio_FlipChannel

说明: 翻转(从 1 到 0 或从 0 到 1)通道电平并返回翻转后通道电平的服务。可通过Dio.h获得。本服务为同步调用,可重入。参数 ChannelId(in):DIO通道的ID。返回值:Dio_LevelType,STD_HIGH 表示相应引脚的物理电平为STD_HIGH;STD_LOW 表示相应引脚的物理电平为STD_LOW。

Dio_LevelType Dio_FlipChannel (Dio_ChannelType ChannelId)

如果指定通道配置为输出通道,Dio_FlipChannel函数应读取通道的电平(相关需求适用)并将其取反,然后将取反后的电平写入该通道。返回值应为指定通道取反后的电平。

如果指定通道配置为输入通道,Dio_FlipChannel函数不应对物理输出产生影响。返回值应为指定通道的电平。

如果指定通道配置为输入通道,Dio_FlipChannel函数不应对下一次读服务的结果产生影响。此外,相关需求适用于Dio_FlipChannel函数。

7.3.9. Dio_MaskedWritePort

说明: 以所需掩码设置给定端口值的服务。可通过Dio.h获得。本服务为同步调用,可重入。参数 PortId(in):DIO端口的ID。参数 Level(in):要写入的值。参数 Mask(in):端口中要掩码的通道。

void Dio_MaskedWritePort (
    Dio_PortType PortId, Dio_PortLevelType Level, Dio_PortLevelType Mask
)

如果Mask中相应位为'1',Dio_MaskedWritePort函数应为指定端口中相应通道设置指定的值。

当调用Dio_MaskedWritePort函数时,配置为输入的DIO通道应保持不变。

当使用Dio_MaskedWritePort函数写入小于Dio_PortLevelType的端口时,函数应忽略MSB。

7.4. 回调通知

本章列出了Dio模块提供给下层的所有函数。

Dio模块不提供任何回调通知。与Dio模块功能相关的回调在其他模块(ICU驱动程序和/或复杂驱动程序)中实现。

7.5. 调度函数

本章列出了由基础软件模块调度程序直接调用的所有函数。

Dio模块没有调度函数。

7.6. 期望接口

本章列出了Dio模块需要从其他模块获得的所有函数。

7.6.1. 可选接口

本章定义了为实现模块的可选功能而需要的所有接口。

API 函数 头文件 描述
Det_ReportError Det.h 报告开发错误的服务

8. 时序图

下图展示了调用 Dio_ReadChannel 和 Dio_WriteChannel 服务时的时序,展示的是正常操作模式。由于第 7.3 章中定义的所有其他服务具有完全相同的同步行为,本文档有意不再提供其他时序图。

8.1. 读取数字 I/O 的值

Figure9-1.png

8.2. 写入数字 I/O 的值

Figure9-2.png

9. 配置规范

本章定义配置参数及其到容器(container)的聚类组织。

9.1. 容器与配置参数

以下各节汇总所有配置参数。

DIO 模块应拒绝实现所不支持的、带有分区映射的配置。

9.1.1. 变体

实现至少应支持以下变体之一:VARIANT-PRE-COMPILE、VARIANT-LINK-TIME。

9.1.2. Dio

SWS 条目
模块名称 Dio
描述 Dio(数字输入输出)模块的配置。
Post-Build 变体支持 false
支持的配置变体 VARIANT-LINK-TIME, VARIANT-PRE-COMPILE
容器名称 多重性 作用域/依赖
DioConfig 1 此容器包含 AUTOSAR DIO 模块的配置参数与子容器。
DioGeneral 1 DIO 模块通用配置参数。

9.1.3. DioGeneral

SWS 条目
容器名称 DioGeneral
父容器 Dio
描述 DIO 模块通用配置参数。
配置参数 见下方参数表
SWS 条目
参数名称 DioDevErrorDetect
父容器 DioGeneral
描述 开启或关闭开发错误检测与通知(true:启用检测与通知;false:禁用检测与通知)。
多重性 1
类型 EcucBooleanParamDef
默认值 false
Post-Build 变体值 false
值配置类 Pre-compile time:x(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目
参数名称 DioFlipChannelApi
父容器 DioGeneral
描述 在代码中添加/移除 Dio_FlipChannel() 服务。
多重性 1
类型 EcucBooleanParamDef
默认值 -
Post-Build 变体值 false
值配置类 Pre-compile time:x(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目
参数名称 DioMaskedWritePortApi
父容器 DioGeneral
描述 在代码中添加/移除 Dio_MaskedWritePort() 服务。
多重性 1
类型 EcucBooleanParamDef
默认值 false
Post-Build 变体值 false
值配置类 Pre-compile time:x(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目
参数名称 DioVersionInfoApi
父容器 DioGeneral
描述 在代码中添加/移除 Dio_GetVersionInfo() 服务。
多重性 1
类型 EcucBooleanParamDef
默认值 false
Post-Build 变体值 false
值配置类 Pre-compile time:x(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: local
SWS 条目
参数名称 DioEcucPartitionRef
父容器 DioGeneral
描述 将 DIO 驱动映射到零个或多个 ECUC 分区,以使模块 API 在该分区中可用。
多重性 0..*
类型 对 EcucPartition 的引用
Post-Build 变体多重性 false
Post-Build 变体值 false
多重性配置类 Pre-compile time:x;Link time:-;Post-build time:-
值配置类 Pre-compile time:x;Link time:-;Post-build time:-
作用域/依赖 scope: ECU

9.1.4. DioPort

SWS 条目
容器名称 DioPort
父容器 DioConfig
描述 单个 DIO 端口的配置,由通道和可能的通道组组成。注意:此容器定义未显式定义符号名参数;取而代之,容器的短名将在 ECU 配置描述中用于指定该端口的符号名。
配置参数 见下方参数表
容器名称 多重性 作用域/依赖
DioChannel 0..* 单个 DIO 通道的配置。
DioChannelGroup 0..* DIO 通道组的定义与配置。通道组用逻辑组表示多个相邻的 DIO 通道。注意:此容器定义未显式定义符号名参数;取而代之,容器的短名将在 ECU 配置描述中用于指定该通道组的符号名。
SWS 条目
参数名称 DioPortId
父容器 DioPort
描述 DIO 端口的数字标识符。并非所有 MCU 端口都可用于 DIO,因此所有 ID 的列表中可能存在"空洞"。该值将赋给 DIO 端口符号名(即 DioPort 容器的 SHORT-NAME)。
多重性 1
类型 EcucIntegerParamDef
范围 0 .. 4294967295
默认值 -
Post-Build 变体值 false
值配置类 Pre-compile time:x(All Variants);Link time:-;Post-build time:-
SWS 条目
参数名称 DioPortEcucPartitionRef
父容器 DioPort
描述 将 DIO 端口映射到零个或多个 ECUC 分区。所引用的 ECUC 分区是 DIO 驱动所映射到的 ECUC 分区的子集。
多重性 0..*
类型 对 EcucPartition 的引用
Post-Build 变体多重性 false
Post-Build 变体值 false
多重性配置类 Pre-compile time:x(All Variants);Link time:-;Post-build time:-
值配置类 Pre-compile time:x(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: ECU

DioPortEcucPartitionRef 所引用的 ECUC 分区应是 DioEcucPartitionRef 所引用的 ECUC 分区的子集。

若 DioEcucPartitionRef 引用一个或多个 ECUC 分区,则 DioPortEcucPartitionRef 的多重性应大于零,并且也应引用这些 ECUC 分区中的一个或多个。

9.1.5. DioChannel

SWS 条目
容器名称 DioChannel
父容器 DioPort
描述 单个 DIO 通道的配置。
配置参数 见下方参数表
SWS 条目
参数名称 DioChannelId
父容器 DioChannel
描述 DIO 通道的通道 ID。该值将赋给符号名。
多重性 1
类型 EcucIntegerParamDef(为此参数生成符号名)
范围 0 .. 4294967295
默认值 -
Post-Build 变体值 false
值配置类 Pre-compile time:x(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: ECU
SWS 条目
参数名称 DioChannelEcucPartitionRef
父容器 DioChannel
描述 将一个 DIO 通道映射到零个或多个 ECUC 分区。所引用的 ECUC 分区是相关 DIO 端口所映射到的 ECUC 分区的子集。
多重性 0..*
类型 对 EcucPartition 的引用
Post-Build 变体多重性 false
Post-Build 变体值 false
多重性配置类 Pre-compile time:x;Link time:-;Post-build time:-
值配置类 Pre-compile time:x;Link time:-;Post-build time:-
作用域/依赖 scope: ECU

无包含的容器。

DioChannelEcucPartitionRef 所引用的 ECUC 分区应是 DioPortEcucPartitionRef 所引用的 ECUC 分区的子集。

若 DioEcucPartitionRef 引用一个或多个 ECUC 分区,则 DioChannelEcucPartitionRef 的多重性应大于零,并且也应引用这些 ECUC 分区中的一个或多个。

9.1.6. DioChannelGroup

SWS 条目
容器名称 DioChannelGroup
父容器 DioPort
描述 DIO 通道组的定义与配置。通道组用逻辑组表示多个相邻的 DIO 通道。注意:此容器定义未显式定义符号名参数;取而代之,容器的短名将在 ECU 配置描述中用于指定该通道组的符号名。
配置参数 见下方参数表
SWS 条目
参数名称 DioChannelGroupIdentification
父容器 DioChannelGroup
描述 DIO 通道组在 DIO API 中通过指向数据结构(Dio_ChannelGroupType 类型)的指针来标识。该数据结构包含通道组信息。此参数包含需插入调用模块 API 调用中的代码片段,以取得内存中保存通道组信息的变量的地址。示例值:"&MyDioGroup1" 或 "&MyDioGroupArray[0]"。
多重性 1
类型 EcucStringParamDef(为此参数生成符号名)
默认值 -
正则表达式 -
Post-Build 变体值 false
值配置类 Pre-compile time:x(All Variants);Link time:-;Post-build time:-
作用域/依赖 scope: ECU
SWS 条目
参数名称 DioPortMask
父容器 DioChannelGroup
描述 定义通道组位置的掩码。通道应由同一端口上的相邻位组成。数据类型取决于端口宽度。
多重性 1
类型 EcucIntegerParamDef
范围 0 .. 4294967295
默认值 -
Post-Build 变体值 false
值配置类 Pre-compile time:x(VARIANT-PRE-COMPILE);Link time:x(VARIANT-LINK-TIME);Post-build time:-
作用域/依赖 scope: local
SWS 条目
参数名称 DioPortOffset
父容器 DioChannelGroup
描述 通道组在端口上的位置,从 LSB 起计。该值可由 DioPortMask 推导。计算公式 = DioPortMask 中首个置 '1' 的位的位置,从 LSB 起计。
多重性 1
类型 EcucIntegerParamDef
范围 0 .. 31
默认值 -
Post-Build 变体值 false
值配置类 Pre-compile time:x(VARIANT-PRE-COMPILE);Link time:x(VARIANT-LINK-TIME);Post-build time:-
作用域/依赖 scope: local
SWS 条目
参数名称 DioChannelGroupEcucPartitionRef
父容器 DioChannelGroup
描述 将一个 DIO 通道组映射到零个或多个 ECUC 分区。所引用的 ECUC 分区是相关 DIO 端口所映射到的 ECUC 分区的子集。
多重性 0..*
类型 对 EcucPartition 的引用
Post-Build 变体多重性 false
Post-Build 变体值 false
多重性配置类 Pre-compile time:x;Link time:-;Post-build time:-
值配置类 Pre-compile time:x;Link time:-;Post-build time:-
作用域/依赖 scope: ECU

无包含的容器。

DioChannelGroupEcucPartitionRef 所引用的 ECUC 分区应是 DioPortEcucPartitionRef 所引用的 ECUC 分区的子集。

若 DioPortEcucPartitionRef 引用一个或多个 ECUC 分区,则 DioChannelGroupEcucPartitionRef 的多重性应大于零,并且也应引用这些 ECUC 分区中的一个或多个。

9.1.7. DioConfig

SWS 条目
容器名称 DioConfig
父容器 Dio
描述 此容器包含 AUTOSAR DIO 模块的配置参数与子容器。
配置参数 见下方参数表
容器名称 多重性 作用域/依赖
DioPort 1..* 单个 DIO 端口的配置,由通道和可能的通道组组成。注意:此容器定义未显式定义符号名参数;取而代之,容器的短名将在 ECU 配置描述中用于指定该端口的符号名。

9.2. 发布信息

详情请参阅 SWS_BSWGeneral 中的第 10.3 章 "Published Information"(发布信息)。

微信扫一扫,获取更多及时资讯

微信扫一扫