Autosar学习----AUTOSAR_SWS_BSWGeneral(五)

7.2.1 Classification(错误分类)

AUTOSAR 中的错误处理机制将错误分为不同类别,以帮助开发人员和系统有效地处理这些错误。错误的分类基于它们的发生时间、性质和影响。主要错误类型包括:

  • Development Errors(开发错误):这些错误通常发生在软件开发和测试阶段。它们可能是由于不正确的代码实现或不正确的模块配置引起的。开发错误应通过严格的测试、代码审查和静态代码分析工具来检测。

  • Runtime Errors(运行时错误):这类错误发生在系统运行时,可能由硬件故障、外部输入错误或内部逻辑问题引起。运行时错误需要实时检测和处理,以防止系统崩溃或关键功能失效。

  • Transient Faults(瞬时故障):这些是短暂的错误,可能是由于硬件或环境条件的临时变化(如电磁干扰)导致的。瞬时故障通常是短期的,但可能对系统的实时性能产生影响。

  • Production Errors(生产错误):这些错误发生在系统部署到生产环境后,通常是由于硬件老化或生产过程中引入的缺陷引起。生产错误需要通过生产监控和测试工具进行检测。

  • Security Events(安全事件):这些与系统的安全性相关的错误涉及到未授权访问、数据泄露或恶意攻击。安全事件需要特别关注,通常通过实时监控和安全措施来应对。

7.2.2 开发错误

7.2.2.1 概述

开发错误主要是指在软件开发过程中出现的软件缺陷。根据 SRS_BSW_00337 的详细规范,这些错误包括但不限于尝试使用未初始化的软件等。开发错误被报告给 BSW 模块 Det(默认错误追踪器),通过接口 Det_ReportError,这反映了此类错误的事件驱动特性。开发错误一旦发生,相应的错误监视器会立即发出信号。

7.2.2.2 文档

根据 SRS_BSW_00337 的分类,SWS 应在第 7 章中列出开发错误。开发错误值的类型为 uint8

7.2.2.3 配置

  • 开发错误的激活:通过 C 预处理器开关来激活或禁用模块的所有开发错误检测。开关 <Ma>DevErrorDetect 用于此目的。
  • API 参数检查:如果 <Ma>DevErrorDetect 开关被启用,则 API 参数检查也会被启用。检测到的错误的详细描述可以在相应模块 SWS 的第 7 章和第 8 章中找到。
  • 开发错误的检测:开发错误的检测和报告仅在设置了检测开发错误的配置参数时才进行。这允许对相应的 BSW 模块进行扩展的调试能力。例如,EEPROM 驱动程序提供了 API 参数的内部检查,该检查仅在首次软件集成测试(“开发构建”)时激活,之后(“部署构建”)禁用。
  • 默认配置值:开发错误的检测和报告应可配置,且默认配置值应为禁用此错误类型。

7.2.2.4 报告

如果配置了开发错误的检测(参见 SWS_BSW_00042),则任何检测到的错误都应报告给 Det。BSW 模块应使用 Det_ReportError 服务将检测到的开发错误报告给默认错误追踪器(Det),并附带模块标识符以进行标识。

示例

实现代码中包含编译器开关,这些开关实现错误检测的配置。例如,在网络管理器的实现中,如果 NM_DEV_ERROR_DETECT 被定义为 STD_ON,则会检测开发错误。

7.2.2.5 其他注意事项

  • 如果 BSW 模块未初始化,除了 <Mip>_GetVersionInfo<Mip>_Init 和调度函数外,调用任何函数都将引发开发错误 <Mip>_E_UNINIT
  • 开发错误的特点是它们的行为类似于断言,即它们的出现会中止或重置整个 ECU 的正常控制流,这是 SRS_BSW_00337 所要求的。与运行时错误不同,开发错误不能通过配置参数来关闭。

7.2.3 运行时错误

7.2.3.1 概述

运行时错误被指定为系统性故障,这些故障不一定影响系统的整体行为。例如,错误的构建后配置或错误分配的 PDU-ID(协议数据单元标识符)是导致运行时错误的常见原因。与开发错误类似,运行时错误也会报告给 BSW 模块 Det,特别是通过接口 Det_ReportRuntimeError 进行报告。就像开发错误一样,运行时错误也最终会发生,并导致相应的错误监视器立即发出信号。

然而,与开发错误不同的是,运行时错误不会导致断言,即执行的控制流将继续。相反,运行时错误的发生会触发相应错误处理器的执行。这个错误处理器可以由特定 ECU 的集成商在 Det 中作为 callout(回调)实现,并且可能只包括将相应的错误事件存储到内存中、调用 Dem 模块或执行简短且合理的操作。

Det 模块提供了一个可选的 callout 接口来处理运行时错误。如果配置了此接口,服务 Det_ReportRuntimeError 将调用此 callout 函数。不论具体实现如何,服务 Det_ReportRuntimeError 总是向其调用者返回 E_OK。专门用于检测运行时错误的监视器可能保留在部署构建(生产代码)中。

7.2.3.2 文档

SWS(系统工作说明书)应在其第 7 章中根据 SRS_BSW_00452 的分类列出运行时错误。[SWS_BSW_00219] 运行时错误类型 ⌈运行时错误值应为 uint8 类型。⌋

7.2.3.3 配置

运行时错误不能通过配置参数(如开发错误那样)来切换关闭。

如果 Det 通过 callout 函数实现了运行时错误的处理,则必须通过 DetReportRuntimeErrorCallout 配置 Det 的特定 callout 函数名称。[ECUC_Det_00010]

7.2.3.4 报告

任何检测到的运行时错误都应报告给 Det:[SWS_BSW_00222] 将检测到的运行时错误报告给 Det ⌈BSW 模块应使用服务 Det_ReportRuntimeErrors 将检测到的运行时错误报告给默认错误跟踪器(Det)。⌋ 注意,报告的运行时错误值必须为 uint8 类型,以符合 Det_ReportRuntimeError 的签名。有关 Det_ReportRuntimeError 服务的更多信息,请参阅 Det 的规范。

7.2.4 瞬时错误(Transient Faults)

7.2.4.1 概述

瞬时错误是由硬件功能障碍引起的。这些错误发生在热噪声或粒子辐射等外部因素影响了硬件功能,从而影响到与之相关的软件功能。瞬时错误的特点是它们可能会自愈,因为引发错误的原因可能会消失。例如,CAN 控制器可能会因控制寄存器中的位翻转(由粒子辐射引起)而离线,但这种位翻转可能是暂时的,一旦辐射源消失,CAN 控制器可能会恢复正常。

7.2.4.2 文档

系统、软件或子系统规范(SWS)应在其第 7 章中根据 SRS_BSW_00473 的分类列出瞬时错误。

7.2.4.3 配置

瞬时错误的检测不能被关闭,除非模块 SWS 描述了配置参数或其他条件,这些条件定义了某些瞬时错误的激活。如果 Det 模块通过 callout 函数实现瞬时错误的处理,则必须通过 DetReportTransientFaultCallout[ECUC_Det_00011] 配置 Det 的特定 callout 函数名。

7.2.4.4 报告

BSW 模块应将检测到的瞬时错误报告给默认的错误追踪器(Det),使用 Det_ReportTransientFaults 服务。需要注意的是,报告的运行时错误值必须是 uint8 类型,以符合 Det_ReportTransientFaults 的签名。监控瞬时错误的专门监控器必须保留在部署构建(生产代码)中。

瞬时错误不会导致软件的执行控制流被中断。监控器可以继续其监控工作,并且瞬时错误在一定时间后可能会自愈。

7.2.4.5 示例

在 CAN 驱动程序中,瞬时错误可能表现为暂时的通信中断。这可能是由于硬件的瞬时故障(例如,由于辐射引起的位翻转)导致 CAN 控制器短暂无法发送或接收消息。一旦错误发生,驱动程序将调用 Det_ReportTransientFault 来记录该错误,而系统继续运行等待 CAN 控制器恢复。CAN 驱动程序还可以定期检查控制器的状态并尝试恢复通信。

7.2.5 生产错误(Production Errors)

7.2.5.1 概述

生产错误是在系统部署到最终产品中后出现的。这些错误通常由硬件故障、环境条件(如温度、湿度等)或系统老化引起。生产错误可能与软件缺陷无关,但它们会影响系统的正常运行。生产错误通常通过系统中的诊断功能来检测,报告给 Diagnostic Event Manager(Dem)模块,并采取适当的故障处理措施。

7.2.5.2 文档

生产错误的记录方式应该遵循系统或子系统的规范(SWS),并在第 7 章中列出生产错误。

7.2.5.3 配置

生产错误检测通常与硬件诊断相关联,不能轻易通过软件配置来关闭。例如,如果某个传感器的工作温度超过其最大额定值,则该错误将自动触发并报告为生产错误。监控此类错误的机制通常是硬件和软件的联合实现。

7.2.5.4 报告

生产错误的报告机制通常涉及将错误信息发送到 Diagnostic Event Manager(Dem)模块。与开发和运行时错误不同,生产错误的报告和处理更侧重于系统运行的长时间监控和故障恢复。例如,当 ECU 进入降级模式时,BSW 模块应记录此生产错误并将其报告给 Dem 模块,以便在后续的诊断会话中进一步分析。

7.2.6 安全事件(Security Events)

7.2.6.1 概述

随着汽车电子系统的复杂性增加,安全事件成为了一个重要的考虑因素。安全事件指的是系统可能受到的安全威胁,如网络攻击、恶意软件注入或未经授权的访问。这类错误与软件或硬件的功能故障无关,但可能会对系统的机密性、完整性和可用性造成威胁。

7.2.6.2 文档

SWS 应根据 SRS_BSW_00560 分类列出安全事件。在文档中,应明确哪些模块负责监控和响应安全事件,哪些安全措施应被激活。

7.2.6.3 配置

安全事件的监控和检测功能通常由特定的安全模块(如 HSM,硬件安全模块)或软件安全功能实现。通过安全配置参数,可以定义系统在检测到安全事件时应采取的措施。例如,检测到异常的 CAN 消息流量可能触发 HSM 进入安全模式并禁用部分 ECU 功能。

7.2.6.4 报告

安全事件的报告通常涉及专门的安全监控系统(如 Intrusion Detection System, IDS)。一旦系统检测到安全事件,应立即将事件报告给系统管理员或相应的安全监控模块,以便采取进一步措施。由于安全事件的敏感性,系统通常会采取防御性编程策略,例如禁用未授权的网络接口、触发报警或进入隔离模式。

7.2.6.5 示例

例如,当检测到网络攻击时,BSW 模块可以调用 Sec_ReportEvent 来报告该安全事件,并采取预定义的应对策略,如限制网络访问、记录事件日志或通过蜂窝网络向外部安全服务器发送警报。

7.2.7 错误管理策略

为了确保系统能够正确处理各种错误,AUTOSAR 定义了不同类型的错误处理机制和策略。这些策略可分为两大类:

  1. 被动错误处理:系统检测到错误后,会记录该错误,但不会立即采取纠正措施。相反,系统等待错误自我修复或在下次诊断时再处理。这种策略适用于瞬时错误或影响较小的错误。

  2. 主动错误处理:当系统检测到错误时,会立即采取措施以减轻或纠正该错误的影响。例如,系统可以进入降级模式、重启特定模块或通知用户采取进一步行动。主动错误处理适用于生产错误和安全事件等严重的错误。

不同类型的错误可能需要不同的管理策略。例如,开发错误和瞬时错误通常可以通过被动策略处理,而运行时错误、生产错误和安全事件则需要主动处理策略。

### 回答1: AUTOSAR是一种汽车电子系统的标准化架构,SWS代表的是Software Specification,即软件规范。而Diagnostic Event Manager(DEM)是一种应用于车载诊断系统的软件,主要用于监控车辆中的各种故障诊断事件,例如发动机故障代码、传感器故障等等。 Demo作为一个基本的软件单元,属于Diagnostic Communication Manager(DCM)的一部分,主要有三个任务:监测车辆中的各种故障诊断事件、生成并发送伴随信息到其他汽车电子控制单元(ECU)以便进行故障诊断和修复、与其他的DCM实例交换信息,以便协同处理。 在AUTOSAR框架下,DEM的功能是由DCM提供,并与其他ECU同步工作以确保整个车辆的状态与性能都处于最佳状态。实现这个功能需要DEM与DCM之间的数据交互、状态传递和控制。同时,DEM还必须能够处理各种诊断类别和事件类型的数据,包括:DTC(Diagnostic Trouble Code)、FM(Failure Memory)、PIP(Permanent Initialization Fields)、FDC(Fault Detection and Counter)等等。 总之,AUTOSAR-SWS-DiagnosticEventManager是用于汽车电子控制单元(ECU)的诊断系统中的一个重要模块,它通过DSA(Diagnostic Services Active)和DSD(Diagnostic Services Data)表示的诊断信息来监测车辆各种故障情况,并与其他ECU进行数据交互和状态控制,成为整个电子系统的关键组成部分。 ### 回答2: AUTOSAR(汽车开放系统和网络联盟)是一个全球跨越商业和学术行业的合作组织,分别由汽车制造商、供应商和工具供应商组成。AUTOSAR旨在创建一个标准的软件架构和平台,以支持汽车电子系统开发,从而提高可重复性、互操作性和可维护性。其中一个AUTOSAR的子系统就是软件诊断系统(SW-Diagnostic)。 AUTOSAR-SWS-DiagnosticEventManager是AUTOSAR软件诊断事件管理器(Diagnostic Event Manager,DEM)的标准化实现。它主要的作用是监测发生在车辆中的故障,并向车辆系统的其他模块或外部设备(例如诊断工具)提供相关信息,以便及时进行故障排查和维修。其具体功能包括以下内容: 1. 故障代码管理:管理诊断事件的故障代码,包括与发生的故障相关的描述、优先级和故障类型等信息。 2. 事件管理与分类:管理和分类所有SW-Diagnostic中的事件,确保不重复且能够追踪事件。 3. 事件信息提供:向其他模块和外部设备提供SW-Diagnostic事件的相关信息,包括诊断会话的控制和管理。 4. 接口统一:为不同类型的诊断功能提供一个统一的接口,以方便进行故障检测和维修工作。 5. 自愈能力支持:提供自我诊断和故障排查的相关信息,以支持自愈能力的实现。 总之,AUTOSAR-SWS-DiagnosticEventManager是SW-Diagnostic的关键组件之一,其标准化实现可以使车辆系统的诊断和维修能力得到大大提升,同时也可以支持车辆智能化和自主驾驶等新技术的发展。 ### 回答3: AUTOSAR SWS DiagnosticEventManager是汽车行业中广泛使用的一种系统管理软件。主要用于故障诊断和错误处理等相关的功能。它的目标是提高汽车系统诊断效率和确保更加可靠的错误检测、管理和处理。该软件主要包含以下几个模块: 1. DtcStatusManager:负责管理汽车系统中的所有诊断事件的状态。它可以记录诊断事件的数量、类型和状态,并根据需要生成报告或警报。 2. Dem:负责实现汽车系统中的数据采集和故障诊断。它的主要职责是收集汽车各个部件的故障信息,并分析警告信息是否属于实际故障,从而快速定位故障点,减少故障排查时间。 3. DemEventParameter:是一个定义了不同故障事件对应的传输参数的类。它可以定义如何传输故障事件数据和信息,以实现故障诊断的效果。 4. DemEvent:是一个定义了诊断事件类型和数据信息的类。它可以记录汽车系统中发生的故障事件,包括故障代码、故障信息、故障类型等。 AUTOSAR SWS DiagnosticEventManager可以与其他汽车系统软件互相配合,优化和提高汽车整体性能。 例如,它可以与OBD系统相结合,从而实现更好的故障诊断和处理效果,同时也可以更加方便地对汽车故障信息进行采集和记录。该软件主要应用于汽车电子控制单元、汽车仪表盘显示模块、汽车音响等车载系统中。它的目标是帮助汽车制造商提高汽车诊断效率和检测水平,从而提高车辆安全性和可靠性。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值