AUTOSAR_SWS_E2ELibrary规范
2024-02-14 18:23:42 0 举报
AI智能生成
AUTOSAR_SWS_E2ELibrary规范是汽车电子和软件架构联盟(AUTOSAR)为系统级软件开发(SWS)提供的一种端到端库。该规范旨在简化和标准化汽车电子控制单元(ECU)的软件设计和开发过程,提高软件的可重用性和可维护性。通过使用AUTOSAR_SWS_E2ELibrary,开发人员可以专注于实现业务逻辑,而无需关注底层硬件和操作系统的细节。此外,该规范还支持多种编程语言和开发环境,使得跨团队和跨平台的协作变得更加容易。总之,AUTOSAR_SWS_E2ELibrary规范为汽车电子软件开发提供了一个高效、灵活且可靠的解决方案。
作者其他创作
大纲/内容
Introduction and functional overview
简介和功能概述
简介和功能概述
E2E功能概述
E2E指的是端到端(End-to-End)的保护,其目的是保证在整个通信链路中,从发送方到接收方,安全相关的数据都得到了保护。
因为在实际的通信中,可能会发生各种故障,如硬件故障、干扰、软件错误等,这些故障可能会导致数据的丢失、篡改或者延迟,从而对系统的安全性造成威胁。
因此,E2E保护是确保安全相关的数据在运行时得到保护,不受通信链路内部故障影响的重要手段之一。
E2E功能示例
通过E2E保护减少故障的示例
E2E protection
E2E保护的概念假定安全相关的数据交换应该受到保护,以防止通信链路内部故障的影响(参见图1-1)。这些故障的例子包括随机硬件故障(例如CAN转换器的寄存器损坏)、干扰(例如由于电磁兼容性)以及实现VFB通信的软件中的系统性故障(例如RTE、IOC、COM和网络协议栈)。
通过使用E2E通信保护机制,可以在运行时检测和处理通信链路中的故障。E2E库提供了适用于具有高达ASIL D要求的安全相关通信的E2E保护机制。
保护机制的算法是在E2E库中实现的。调用E2E库的程序负责正确使用该库,特别是提供正确的参数给E2E库例程。
E2E保护允许以下操作:
1.它通过附加控制数据来保护要通过RTE发送的安全相关数据元素(发送),
2.它使用这些控制数据验证从RTE接收到的安全相关数据元素(接收),
3.它指示接收到的安全相关数据元素有故障,需要由接收方软件组件进行处理。
在实际的通信中,安全相关的数据往往需要经过一系列的处理和传输才能到达其目的地。在这个过程中,可能会发生各种故障,如数据丢失、篡改、延迟等,从而影响系统的安全性和可靠性。E2E保护机制通过添加控制数据(如序列号、时间戳、校验和等)来保护安全相关的数据,在传输过程中验证其完整性和顺序,并检测和处理通信链路中的错误,从而提高安全性和可靠性。
具体来说,E2E保护机制通过以下三个步骤实现对安全相关数据的保护和验证:
在发送端,E2E保护机制会将安全相关数据元素与控制数据一起打包成一个数据包,然后通过RTE发送出去。
在接收端,E2E保护机制会对接收到的数据包进行解包,并验证其中的安全相关数据元素是否完整、顺序正确等,如果验证失败,则表示该数据包有故障。
当接收方发现数据包有故障时,E2E保护机制会通过错误码或异常等方式将错误信息传递给接收方软件组件,由其来处理故障。
因此,通过使用E2E保护机制,系统可以实现对安全相关数据的可靠传输和保护,从而提高系统的安全性和可靠性。
1.它通过附加控制数据来保护要通过RTE发送的安全相关数据元素(发送),
2.它使用这些控制数据验证从RTE接收到的安全相关数据元素(接收),
3.它指示接收到的安全相关数据元素有故障,需要由接收方软件组件进行处理。
在实际的通信中,安全相关的数据往往需要经过一系列的处理和传输才能到达其目的地。在这个过程中,可能会发生各种故障,如数据丢失、篡改、延迟等,从而影响系统的安全性和可靠性。E2E保护机制通过添加控制数据(如序列号、时间戳、校验和等)来保护安全相关的数据,在传输过程中验证其完整性和顺序,并检测和处理通信链路中的错误,从而提高安全性和可靠性。
具体来说,E2E保护机制通过以下三个步骤实现对安全相关数据的保护和验证:
在发送端,E2E保护机制会将安全相关数据元素与控制数据一起打包成一个数据包,然后通过RTE发送出去。
在接收端,E2E保护机制会对接收到的数据包进行解包,并验证其中的安全相关数据元素是否完整、顺序正确等,如果验证失败,则表示该数据包有故障。
当接收方发现数据包有故障时,E2E保护机制会通过错误码或异常等方式将错误信息传递给接收方软件组件,由其来处理故障。
因此,通过使用E2E保护机制,系统可以实现对安全相关数据的可靠传输和保护,从而提高系统的安全性和可靠性。
为了提供适当的解决方案,以解决灵活性和标准化的问题,AUTOSAR规定了一组灵活的E2E配置文件,用于实现适当的E2E保护机制的组合。每个指定的E2E配置文件都具有固定的行为,但它具有一些配置选项,可通过功能参数(例如CRC在与要保护的数据相关的位置)进行配置。
这句话指出了调用E2E库的三种方式:E2E Transformer,E2E Protection Wrapper,COM E2E Callout
E2E Transformer:这是一种新的、标准化的调用E2E库的方式,它在R4.2.1版本中引入。E2E Transformer提供了一个统一的接口,使得调用E2E库变得更加规范和统一。
E2E Protection Wrapper:这是另一种调用E2E库的方式,可能是一个封装了E2E保护机制的模块或组件,通过调用E2E库来实现相应的功能。
COM E2E Callout:这是第三种调用E2E库的方式,可能是基于COM技术的一种调用接口或机制,用于触发E2E库的相关功能。
这些不同的调用方式为开发人员提供了灵活性和选择的空间,可以根据实际需求和系统架构选择合适的方式来调用E2E库,以实现数据的端到端保护机制。
E2E Transformer:这是一种新的、标准化的调用E2E库的方式,它在R4.2.1版本中引入。E2E Transformer提供了一个统一的接口,使得调用E2E库变得更加规范和统一。
E2E Protection Wrapper:这是另一种调用E2E库的方式,可能是一个封装了E2E保护机制的模块或组件,通过调用E2E库来实现相应的功能。
COM E2E Callout:这是第三种调用E2E库的方式,可能是基于COM技术的一种调用接口或机制,用于触发E2E库的相关功能。
这些不同的调用方式为开发人员提供了灵活性和选择的空间,可以根据实际需求和系统架构选择合适的方式来调用E2E库,以实现数据的端到端保护机制。
无论E2E在何处执行,E2E保护都是针对数据元素的。E2E保护是针对数据元素序列化表示进行的,其比特布局与传输总线上的布局相同。这意味着:
1.如果使用E2E Transformer,序列化是由E2E Transformer上面的一个Transformer(基于COM或Some/IP的transformer)执行的。
2.如果使用E2E Protection Wrapper,需要将数据元素序列化为对应信号组的序列化形式(Wrapper创建了代表信号组的I-PDU的一部分,同时也表示了数据元素)。
3.如果使用COM调用,序列化是由通信栈(RTE、COM)执行的,因此调用直接操作I-PDU中的序列化信号组。
1.如果使用E2E Transformer,序列化是由E2E Transformer上面的一个Transformer(基于COM或Some/IP的transformer)执行的。
2.如果使用E2E Protection Wrapper,需要将数据元素序列化为对应信号组的序列化形式(Wrapper创建了代表信号组的I-PDU的一部分,同时也表示了数据元素)。
3.如果使用COM调用,序列化是由通信栈(RTE、COM)执行的,因此调用直接操作I-PDU中的序列化信号组。
一个数据元素(以及对应的信号组)要么完全受到E2E保护,要么没有受到保护。无法对其部分进行保护。
一个I-PDU可能携带多个数据元素(以及对应的信号组)。可以独立地对其中的一部分数据元素进行E2E保护。
仅仅使用E2E库是不足以满足ASIL D级别要求,以实现安全的E2E通信。用户本身负责证明所选择的配置文件能够提供足够的错误检测能力,以适应考虑到的网络条件(例如通过评估硬件故障率、比特错误率、网络中节点数量、消息的重复率以及网关的使用情况)。
Acronyms and abbreviations
缩略语
缩略语
缩略语
子主题
缩略语解释
E2E Library
E2E库的简称,用于表示端到端通信保护库。
Data ID: 数据标识符,用于唯一标识消息/数据元素/数据。
Repetition: 信息的重复(见4.3.3.1)。
Loss: 信息的丢失(见4.3.3.2)。
Delay: 信息的延迟(见4.3.3.3)。
Insertion: 信息的插入(见4.3.3.4)。
Masquerade: 伪装(见4.3.3.5)。
Incorrect addressing: 信息的地址错误(见4.3.3.6)。
Incorrect sequence: 信息的顺序错误(见4.3.3.7)。
Corruption: 信息的损坏(见4.3.3.8)。
Asymmetric information: 发送者向多个接收者发送的非对称信息(见4.3.3.9)。
Subset: 发送者发送但只有接收者的一个子集接收到的信息(见4.3.3.10)。
Blocking: 阻塞对通信通道的访问(见4.3.3.11)。
在整个文档中,有许多要求适用于所有E2E配置文件。这些要求被定义为同时适用于所有配置文件的一个要求。如果某些名称是配置文件相关的,那么会使用XX表示:如果在一个要求中出现包含XX的字符串,则会将其扩展为两个字符串,分别为01、02、04、05、06,而不是XX。例如,E2E_PXXCheck() 扩展为以下两个:E2E_P01Check(),E2E_P02Check()。
Related documentation
相关文档
相关文档
AUTOSAR文档
AUTOSAR_TR_BSWModuleList.pdf
[1] List of Basic Software Modules
AUTOSAR_EXP_LayeredSoftwareArchitecture.pdf
[2] AUTOSAR Layered Software Architecture
AUTOSAR_SRS_BSWGeneral.pdf
[3] General Requirements on Basic Software Modules
AUTOSAR_SWS_COM.pdf
[4] Specification of COM
AUTOSAR_SWS_Scheduler.pdf
[5] Specification of BSW Scheduler
AUTOSAR_SWS_MemoryMapping.pdf
[6] Specification of Memory Mapping
AUTOSAR_SWS_CRCLibrary.pdf
[7] Specification of CRC Routines
AUTOSAR_SWS_PlatformTypes.pdf
[8] Specification of Platform Types
AUTOSAR_SRS_Libraries.pdf
[9] Requirements on Libraries
AUTOSAR_TR_Glossary.pdf
[10] AUTOSAR Glossary
AUTOSAR_TPS_SoftwareComponentTemplate.pdf
[11] Software Component Template
AUTOSAR_TPS_SystemTemplate.pdf
[12] System Template
AUTOSAR_TPS_ECUConfiguration.pdf
[13] Specification of ECU Configuration
Constraints and assumptions
约束和假设
约束和假设
4.1 Limitations
限制
限制
4.1 Limitations
E2E Profile 2在R4.2.1版本中引入了一个新的设置项 offset。这个偏移量可以在系统模板中进行配置。然而,E2E Profile 2规范并不支持偏移量不为0的情况。未来的AUTOSAR版本将修正E2E Profile 2规范,以支持可配置的偏移量功能。
E2E Profile 1中的“Double Data ID configuration”使用隐式的2字节Data ID,对其进行CRC8计算。由于在两个不同的2字节数字上计算CRC可能会得到相同的CRC值,用户必须采取一些预防措施。请参考UC_E2E_00072和UC_E2E_00073。
E2E Profile 2使用隐式的1字节Data ID,该Data ID是根据计数器的每个值从DataIDList中选择的,用于计算CRC。有关E2E Profile 2中DataIDList的使用和生成的详细信息,请参见第13章。
如果给定的发送者-接收者通信仅在单个电子控制单元(ECU)内部进行(在微控制器内部),那么在配置中并没有定义序列化数据的布局应该是什么样的。另一方面,由于通信是在单个ECU内部进行的,双方的软件可能是由相同的RTE生成器生成的,因此关于布局的决策可以特定于生成器。建议将数据序列化,使CRC位于特定于配置文件的CRC位置,并且计数器位于特定于配置文件的计数器位置(与ECU间通信的情况类似)。
4.1.1 Limitations when invoking library at the level of data elements
在数据元素级别调用库时存在一些限制
在数据元素级别调用库时存在一些限制
如果在数据元素级别(例如从SW-Cs或从E2E保护包装器中)调用E2E库,则通信应该是明确的发送者-接收者通信,具有1:1和1:N的复数。
换句话说,如果在数据元素级别调用E2E库,那么不支持N:1的多对一复数、隐式通信以及其他通信模型(尤其是client-server模型)。这意味着只支持明确的单对单或一对多的发送者-接收者通信方式。
如果在使用E2E库将数据元素从一个发送者发送给多个接收者时使用了多个I-PDU,那么所有这些I-PDU必须具有相同的结构或布局。
对于每个1:N发送者-接收者关系,AUTOSAR的用户应该定义一个特定的布局,用于将要通过E2E库保护的数据元素映射到该布局以进行数据传输。
如果需要同时实现受保护的ECU内部通信和跨ECU通信的安全相关的发送者-接收者关系,那么应该使用定义的跨ECU通信I-PDU布局来进行这两种数据传输。
如果AUTOSAR的用户需要实现安全相关的发送者-接收者关系,并且需要受保护的ECU内部通信,那么可以定义并使用特定的布局(不限于COM I-PDUs的需求)。
目前,AUTOSAR并不提供描述和处理同一数据元素的多个布局的功能(例如,在RTE中),并根据ECU内部和ECU间通信使用不同的保护机制。因此,对于1:N的发送者-接收者关系,E2E-Library的用户需要负责选择一个适当的布局来保护数据元素。例如,对于1:N的发送者-接收者关系,可以使用COM I-PDU布局来传输由E2E-Library保护的数据元素,这些数据元素的接收者可以位于ECU内部或ECU外部。
4.2 Applicability to automotive domains
适用于汽车领域
适用于汽车领域
该库适用于在车辆中分布在不同ECU上的各种软件组件(SW-Cs)实现的安全相关汽车系统,通过通信链路进行交互。该库还可以用于ECU内部的通信,例如在内存分区之间或CPU核心之间的通信。
4.3 Background information concerning functional safety
功能安全的背景信息
功能安全的背景信息
这一章提供了在设计E2E库时考虑的一些安全背景信息,包括通信的故障模型和故障源的定义。
在功能安全背景下,通信故障模型描述了可能导致通信错误的不同故障类型。这些故障类型可以包括传输错误、传输延迟、丢失数据、重复数据等。通过对故障模型的定义,可以更好地理解通信系统中可能存在的风险和问题,并采取相应的措施来预防或处理这些故障。
在功能安全背景下,通信故障模型描述了可能导致通信错误的不同故障类型。这些故障类型可以包括传输错误、传输延迟、丢失数据、重复数据等。通过对故障模型的定义,可以更好地理解通信系统中可能存在的风险和问题,并采取相应的措施来预防或处理这些故障。
4.3.1 Functional safety and communication
在安全相关系统中交换信息时,可以使用以下列出的及时检测故障原因或故障影响的机制来设计相应的安全概念。例如,可以实现通过标准化的安全需求和措施来实现在系统元素之间共享通信基础设施时的干扰自由(参见ISO 26262[14]第6部分,附录D.2.4):
- 信息重复
- 信息丢失
- 信息延迟
- 信息插入
- 错误地址或错误寻址的信息
- 信息顺序不正确
- 信息损坏
- 发送者向多个接收者发送的不对称信息
- 发送者发送的信息只被一部分接收者接收到
- 阻塞通信渠道
4.3.2 Sources of faults in E2E communication
E2E通信的故障源可以包括以下几个方面:
1.(系统性的) 软件故障:这些故障可能源自软件设计或实现中的错误,例如算法错误、逻辑错误、安全漏洞等。这些故障可能导致通信错误或不正确的数据传输。
2.(随机的) 硬件故障:硬件故障可能由于电子元件的失效、电路板损坏、连接器松动等原因导致。这些故障可能导致通信中断、数据丢失或数据错误。
3.外部干扰引起的瞬时故障:外部干扰可能来自电磁辐射、电力干扰、温度变化、机械振动等。这些干扰可能导致通信错误、数据传输延迟或数据损坏。
为了保护E2E通信免受这些故障的影响,需要采取相应的措施来检测和缓解这些故障的原因或影响。这可能包括使用纠错码、校验和、冗余数据、错误检测和重传机制等来确保数据的完整性和可靠性。此外,还可以采用防护措施,如屏蔽和隔离,来减少外部干扰对通信系统的影响。
1.(系统性的) 软件故障:这些故障可能源自软件设计或实现中的错误,例如算法错误、逻辑错误、安全漏洞等。这些故障可能导致通信错误或不正确的数据传输。
2.(随机的) 硬件故障:硬件故障可能由于电子元件的失效、电路板损坏、连接器松动等原因导致。这些故障可能导致通信中断、数据丢失或数据错误。
3.外部干扰引起的瞬时故障:外部干扰可能来自电磁辐射、电力干扰、温度变化、机械振动等。这些干扰可能导致通信错误、数据传输延迟或数据损坏。
为了保护E2E通信免受这些故障的影响,需要采取相应的措施来检测和缓解这些故障的原因或影响。这可能包括使用纠错码、校验和、冗余数据、错误检测和重传机制等来确保数据的完整性和可靠性。此外,还可以采用防护措施,如屏蔽和隔离,来减少外部干扰对通信系统的影响。
4.3.2.1 Software faults
软件故障
像通信协议栈模块和RTE(运行时环境)这样的软件可能包含系统性质的故障。
系统性故障可能出现在系统的任何生命周期阶段,包括规格、设计、制造、运营和维护,并且它们将在相同的条件下(例如,根本原因的触发条件)始终出现。软件故障的后果可能导致通信中断发送数据,接收方的溢出(例如,缓冲区溢出)或发送方的欠流(例如,缓冲区为空)。为了防止(或处理)由此引起的故障,必须考虑适当的技术措施来检测和处理此类故障(例如,程序流程监控或E2E机制)。
像通信协议栈模块和RTE(运行时环境)这样的软件可能包含系统性质的故障。
系统性故障可能出现在系统的任何生命周期阶段,包括规格、设计、制造、运营和维护,并且它们将在相同的条件下(例如,根本原因的触发条件)始终出现。软件故障的后果可能导致通信中断发送数据,接收方的溢出(例如,缓冲区溢出)或发送方的欠流(例如,缓冲区为空)。为了防止(或处理)由此引起的故障,必须考虑适当的技术措施来检测和处理此类故障(例如,程序流程监控或E2E机制)。
4.3.2.2 Random hardware faults
随机硬件故障
随机硬件故障通常是硬件部件电气过载、退化、老化或暴露于外部影响(例如,环境应力)的结果。
无法完全避免随机硬件故障,但可以评估其概率并实施适当的技术措施(例如诊断)。
随机硬件故障通常是硬件部件电气过载、退化、老化或暴露于外部影响(例如,环境应力)的结果。
无法完全避免随机硬件故障,但可以评估其概率并实施适当的技术措施(例如诊断)。
4.3.2.3 External influences, environmental stress
外部影响,环境应力
这包括电磁干扰(EMI)、静电放电(ESD)、湿度、腐蚀、温度或机械应力(例如振动)等影响。
这些外部因素可能对硬件设备产生负面影响,因此在设计和操作中需要考虑这些因素,并采取相应的保护措施以减少这些影响带来的潜在风险。
这包括电磁干扰(EMI)、静电放电(ESD)、湿度、腐蚀、温度或机械应力(例如振动)等影响。
这些外部因素可能对硬件设备产生负面影响,因此在设计和操作中需要考虑这些因素,并采取相应的保护措施以减少这些影响带来的潜在风险。
4.3.3 Communication faults
本节列出了与信息交换相关的故障。
4.3.3.1 Repetitionof information
信息重复
一种通信故障,接收到的信息出现多次。
4.3.3.2 Loss of information
信息丢失
一种通信故障,传输信息流中的信息或部分信息被删除。
4.3.3.3 Delay of information
信息延迟
一种通信故障,接收到的信息晚于预期到达。
4.3.3.4 Insertion of information
插入信息
一种通信故障,额外的信息被插入到传输的信息流中。
4.3.3.5 Masquerading
冒充
一种通信故障,接收方将非真实的信息误认为真实信息。
4.3.3.6 Incorrect addressing
错误的寻址
一种通信故障,接收到来自错误发送者或由错误接收者发送的信息。
4.3.3.7 Incorrect sequence of information
信息顺序错误
一种通信故障,修改传输信息流中的信息顺序。
4.3.3.8 Corruption of information
信息损坏
一种通信故障,改变了信息的内容。
4.3.3.9 Asymmetric information sent from a sender to muItiple receivers
发送方向多个接收方发送的非对称信息
一种通信故障,接收方从同一发送方接收到不同的信息。
4.3.3.10 Information from a sender received by only a subset of the receivers
接收方的子集只接收到发送方的信息
一种通信故障,部分接收方未能收到信息。
4.3.3.11 Blocking access to a communication channel
阻止访问通信通道
一种通信故障,通信通道的访问被阻止。
4.4 Implementation of the E2E Library
E2E库的实施
E2E库的实施
[SWS_E2E_00050] E2E库的实现应符合汽车领域安全相关软件开发的要求。 (SRS_E2E_08527)
由E2E库实现的需求分配的ASIL等级取决于特定系统的安全概念。根据应用的不同,E2E库至少需要符合ASIL A、B、C或D的开发过程。因此,按照最高的ASIL等级开发该库可能是最有效的,这样可以将同一库用于较低的ASIL等级。
[SWS_E2E_00311] E2E库的配置以及调用它的代码(如E2E包装器或E2E调用)应根据汽车领域安全相关软件开发的要求进行实现和配置(包括从其他子系统使用的配置选项,如COM信号到I-PDU的映射)。 (SRS_E2E_08528)
Dependencies to/from other modules
与其他模块的依赖关系
与其他模块的依赖关系
5.1.1 Required file structure
5.1.1所需的文件结构
5.1.1所需的文件结构
[SWS_E2E_00048] E2E库应由以下文件构建:E2E.h(通用头文件)、E2E.c(通用部分的实现)、E2E_PXX.c(其中XX:例如,01、02等代表配置文件)和E2E_SM.c(用于E2E状态机)。 (SRS_E2E_08528)
[SWS_E2E_00215] 文件E2E_PXX.c和E2E.h应包含每个配置文件特定的实现部分。(SRS_E2E_08528)
[SWS_E2E_00115] E2E库文件(即E2E_*.*) 不应包含任何RTE文件。 (SRS_E2E_08528) 这是为了确保E2E库的独立性和可移植性,避免与特定的运行时环境相关联。
5.1.2 Dependency on CRC library
5.1.2对CRC库的依赖
5.1.2对CRC库的依赖
需要注意的是,自R4.0起,CRC库/CRC例程中的函数Crc_CalculateCRC8的功能已经发生了改变,即在R3.2和R4.0及以上版本中不同:
1.添加了一个额外的参数Crc_IsFirstCall
2.函数具有不同的初始值和不同的XOR值(从0x00更改为0xFF)。
这导致了计算给定缓冲区的CRC时得到了不同的值。换句话说,使用R3.2和R4.0及以上版本计算CRC时会得到不同的结果。因此,在使用CRC库进行开发时,需要注意这些版本之间的差异,并相应地修改代码以确保正确的CRC计算。
1.添加了一个额外的参数Crc_IsFirstCall
2.函数具有不同的初始值和不同的XOR值(从0x00更改为0xFF)。
这导致了计算给定缓冲区的CRC时得到了不同的值。换句话说,使用R3.2和R4.0及以上版本计算CRC时会得到不同的结果。因此,在使用CRC库进行开发时,需要注意这些版本之间的差异,并相应地修改代码以确保正确的CRC计算。
为了在使用不同功能的CRC库的情况下,在>=R4.0和R3.2中使函数E2E_P01Protect()和E2E_P02Check()的结果相同,E2E“补偿”了CRC库的不同行为。这导致E2E库在>=R4.0和R3.2中以不同的方式调用CRC库。
Requirements traceability
需求追溯
需求追溯
Functional specification
功能规范
功能规范
这个功能规范的主要部分包含在AUTOSAR基础文档849 “E2E协议规范” 中。扩展协议规范的平台相关功能规范被收集在以下的子章节中。
7.1 Error classification
7.1错误分类
7.1错误分类
库没有配置,因此无法禁用或启用开发错误的跟踪。因此,无法将库内机制检测到的错误分类为开发或生产错误。此外,库不能调用BSW模块(例如DEM或DET)。因此,由库内机制检测到的错误会同步报告给调用方。请注意,CRC库和E2E库都不是BSW模块;库可以互相调用。
这句话的意思是E2E库不应该包含用于将错误检测追踪为开发阶段错误的内部机制。也就是说,E2E库内部的错误检测机制不能被标记为开发阶段的错误。
E2E库应当通过函数的返回值来向调用E2E函数的用户报告由库内部机制检测到的错误。也就是说,如果E2E库内部发现了错误,它会通过函数的返回值来通知调用者。
E2E库不应该调用BSW模块(如DEM和DET)来进行错误报告或其他任何目的,同时也不应该调用RTE模块。这样可以确保E2E库的功能独立性,不依赖于其他模块。
所有 E2E 库函数应使用以下错误标志来表示错误。
这句话指出了在所有的 E2E 库函数中都要使用指定的错误标志来标识不同的错误情况。通过统一使用这些错误标志,可以确保在整个 E2E 库中对错误的处理和识别是一致的,提高了代码的可读性和可维护性。
这句话指出了在所有的 E2E 库函数中都要使用指定的错误标志来标识不同的错误情况。通过统一使用这些错误标志,可以确保在整个 E2E 库中对错误的处理和识别是一致的,提高了代码的可读性和可维护性。
ERROR CODE
由于这些错误码不会通过总线传输,因此它们之间不需要满足Hamming distance的要求。
Hamming distance通常用于检测和纠正通过通信信道传输的数据中的错误。这些错误码主要用于在开发过程中标识和处理错误,而不是进行数据传输。
Hamming distance通常用于检测和纠正通过通信信道传输的数据中的错误。这些错误码主要用于在开发过程中标识和处理错误,而不是进行数据传输。
这段话的意思是,范围在0x80到0xFE之间的数值被预留给供应商在AUTOSAR配置文件中使用,并为其定义特定的返回值。
这段话说明了在SWS E2E中并没有规定程序流监控的具体使用范围,比如要使用多少个检查点。这取决于实际实施者,但是应该考虑ISO 26262标准中的要求。ISO 26262指出对于ASIL C/D等级的系统,强烈建议进行控制流监控,对于ASIL B等级的系统则建议进行控制流监控。如果某个具体的实现采用了程序流监控,那么应该使用错误码E2E_E_INTERR来指示内部库错误。
这段话指出了一个使用案例(UC_E2E_00313),要求调用E2E函数E2E_PXXProtect()和E2E_PXXCheck的调用者,根据SWS_E2E_00047中定义的错误/状态处理列来处理错误或状态。并且引用了相关的需求标识(SRS_E2E_08528)。
换句话说,E2E库本身不为其定义任何集成错误,也不调用DEM或DET。然而,E2E库的调用者使用E2E函数的返回值,并进行相应的错误处理。
API specification
API规范
API规范
这一章节详细规定了E2E库的API。
配置结构体的成员(例如在图8-1中)按照字母顺序排列。
然而,在实现过程中,这些数据结构的成员顺序是由表格规范项(例如[SWS_E2E_00018])提供的。
配置结构体的成员(例如在图8-1中)按照字母顺序排列。
然而,在实现过程中,这些数据结构的成员顺序是由表格规范项(例如[SWS_E2E_00018])提供的。
8.1 Imported types
在这一章节中,列出了从以下文件中导入的所有类型和#define定义:
8.2 Type definitions
8.2 类型定义
本章定义了E2E库定义的对调用者可见的数据类型。
下面显示的一些属性定义了数据偏移量。偏移量根据以下规则定义:
1.偏移量以位为单位,
2.在一个字节内,位从0开始编号,其中第0位是最不重要的位(不考虑微控制器或总线的字节序)。
由于CRC和计数器适配为1字节,因此不存在字节顺序(字节序)的问题。 此外,不同的CPU特定位顺序也是无关紧要的。
本章定义了E2E库定义的对调用者可见的数据类型。
下面显示的一些属性定义了数据偏移量。偏移量根据以下规则定义:
1.偏移量以位为单位,
2.在一个字节内,位从0开始编号,其中第0位是最不重要的位(不考虑微控制器或总线的字节序)。
由于CRC和计数器适配为1字节,因此不存在字节顺序(字节序)的问题。 此外,不同的CPU特定位顺序也是无关紧要的。
示例1 - 在MSB微控制器上偏移量为8的计数器:
8.2.1 E2E Profile 1 types
8.2.1.1 E2E_P01ConfigType
8.2.1.2 E2E_P01DatalDMode
8.2.1.3 E2E_P01ProtectStateType
子主题
用于保护下一个数据的计数器
8.2.1.4 E2E_P01CheckStateType
8.2.1.5 E2E_P01CheckStatusType
8.2.2 E2E Profile 2 types
8.2.3 E2E Profile 4 types
8.2.4 E2E Profile 5 types
8.2.5 E2E Profile 6 types
8.2.6 E2E Profile 7 types
8.2.7 E2E Profile 11 types
8.2.8 E2E Profile 22 types
8.2.9 E2E state machine types
8.2.9.1 E2E_PCheckStatusType
子主题
子主题
8.2.9.2 E2E_SMConfigType
子主题
子主题
8.2.9.3 E2E_SMCheckStateType
子主题
子主题
8.2.9.4 E2E_SMStateType
子主题
子主题
8.3 Routine definitions
8.3 例程定义
本章定义了E2E库提供的例程。提供的例程可以实现为:
1.函数
2.内联函数
3.宏
本章定义了E2E库提供的例程。提供的例程可以实现为:
1.函数
2.内联函数
3.宏
8.3.1 E2E Profile 1 routines
8.3.1.1 E2E_P01Protect
E2E_P01Protect函数是用于对要发送的数据进行E2E保护处理的一个函数。它通过计算校验和、处理计数器和数据ID等步骤,确保数据的完整性和可靠性,并更新保护状态信息。
子主题
8.3.1.2 E2E_P01ProtectInit
根据规范,E2E_P01ProtectInit函数用于初始化E2E保护状态结构。
子主题
具体要求如下:
1.如果State参数为NULL(即指向保护状态结构的指针为空),则函数应该立即返回错误码E2E_E_INPUTERR_NULL。这表示输入参数错误,无法执行初始化操作。
2.如果State参数不为空,则函数应该将保护状态结构进行初始化,将计数器的值设置为0。这意味着在开始使用E2E保护机制之前,需要将计数器重置为初始值。
通过这样的初始化操作,可以确保在使用E2E保护机制时,保护状态结构的正确性和一致性,以及计数器的准确计数。
1.如果State参数为NULL(即指向保护状态结构的指针为空),则函数应该立即返回错误码E2E_E_INPUTERR_NULL。这表示输入参数错误,无法执行初始化操作。
2.如果State参数不为空,则函数应该将保护状态结构进行初始化,将计数器的值设置为0。这意味着在开始使用E2E保护机制之前,需要将计数器重置为初始值。
通过这样的初始化操作,可以确保在使用E2E保护机制时,保护状态结构的正确性和一致性,以及计数器的准确计数。
8.3.1.3 E2E_P01Check
8.3.1.4 E2E_P01CheckInit
8.3.1.5 E2E_P01MapStatusToSM
8.3.2 E2E Profile 2 routines
8.3.2.1 E2E_P02Protect
E2E_P02Protect函数是用于对要发送的数据进行E2E保护处理的一个函数。
它通过计算校验和、处理计数器和数据ID等步骤,确保数据的完整性和可靠性,并更新保护状态信息。
它通过计算校验和、处理计数器和数据ID等步骤,确保数据的完整性和可靠性,并更新保护状态信息。
子主题
8.3.2.2 E2E_P02ProtectInit
根据规范,E2E_P02ProtectInit函数用于初始化E2E保护状态结构。
子主题
具体要求如下:
1.如果State参数为NULL(即指向保护状态结构的指针为空),则函数应该立即返回错误码E2E_E_INPUTERR_NULL。这表示输入参数错误,无法执行初始化操作。
2.如果State参数不为空,则函数应该将保护状态结构进行初始化,将计数器的值设置为0。这意味着在开始使用E2E保护机制之前,需要将计数器重置为初始值。
通过这样的初始化操作,可以确保在使用E2E保护机制时,保护状态结构的正确性和一致性,以及计数器的准确计数。
1.如果State参数为NULL(即指向保护状态结构的指针为空),则函数应该立即返回错误码E2E_E_INPUTERR_NULL。这表示输入参数错误,无法执行初始化操作。
2.如果State参数不为空,则函数应该将保护状态结构进行初始化,将计数器的值设置为0。这意味着在开始使用E2E保护机制之前,需要将计数器重置为初始值。
通过这样的初始化操作,可以确保在使用E2E保护机制时,保护状态结构的正确性和一致性,以及计数器的准确计数。
8.3.2.3 E2E_P02Check
8.3.2.4 E2E_P02CheckInit
8.3.2.5 E2E_P02MapStatusToSM
8.3.3 E2E Profile 4 routines
8.3.4 E2E Profile 5 routines
8.3.5 E2E Profile 6 routines
8.3.6 E2E Profile 7 routines
8.3.7 E2E Profile 11 routines
8.3.8 E2E Profile 22 routines
8.3.9 E2E State machine routines
8.3.10 Auxiliary Functions
8.4 Call-back notifications
8.4 回调通知
无。E2E库没有回调通知。
无。E2E库没有回调通知。
8.5 Scheduled functions
8.5 调度函数
无。E2E库没有调度函数。
无。E2E库没有调度函数。
8.6 Expected Interfaces
8.6 预期接口
在本章中,列出了其他模块需要的所有接口。E2E库的功能不允许调用除下面列出的外部函数之外的任何其他外部函数。特别是,E2E库不调用RTE。
[SWS_E2E_00110] E2E库不得调用除E2E库的显式列出的预期接口之外的任何外部模块的函数。⌋(SRS_E2E_08528)
在本章中,列出了其他模块需要的所有接口。E2E库的功能不允许调用除下面列出的外部函数之外的任何其他外部函数。特别是,E2E库不调用RTE。
[SWS_E2E_00110] E2E库不得调用除E2E库的显式列出的预期接口之外的任何外部模块的函数。⌋(SRS_E2E_08528)
8.6.1 Mandatory Interfaces
8.6.1 必需接口:本章定义了满足模块核心功能所必需的接口。
0 条评论
下一页