你的位置:
首页
>
IT圈
>
基于AUTOSAR标准的E2E保护
2024年8月26日发(作者:盍逸秀)
学术|制造研究
ACADEMIC
基于AUTOSAR标准的E2E保护
方晓颖
(同济大学 201804)
摘要:为了支持功能安全,AUTOSAR标准结合ISO26262功能安全标准,在基础软件层从安全通讯等方面做了规范。本文首先介绍了安全通讯机制之一的E2E保
护来源,接着从E2E保护机制和E2E库功能两方面进行重点阐述。最后实践说明E2E库在应用层软件的使用方法。
关键词:AUTOSAR;E2E保护
中图分类号:U461.99 文献标识码:A
0 引言
AUTOSAR(Automotive Open System Architecture)
标准是汽车电子系统开发的新理念。基于AUTOSAR标准的汽车
电子系统开发实现了应用软件设计与底层硬件的分离,是汽车电子
嵌入式系统发展的趋势。ISO26262是汽车功能安全的新标准,包
括了安全周期、汽车安全集成等级(ASIL)以及安全需求规范等核
心概念
[1]
。为了支持功能安全,AUTOSAR标准结合ISO26262
功能安全标准,在基础软件层从安全执行、安全通讯以及安全内
建测试三方面做了规范。其中,安全通信包括两个方面,ECU内
部通讯和ECU之间的通信。AUTOSAR对于安全通信提供了三
种机制,数据顺序控制、PDU复制和K/N的投票机制以及端到端
(End to End,简称E2E)的保护机制。本文针对ECU内部数
据元素层面的E2E保护,重点阐述其保护机制、使用限制、E2E
结构1(E2E profile1)以及基于E2E保护包的E2E库实现方式。
图 1 E2E配置结构体
1 E2E保护
“E2E保护”是指对安全相关的数据在交互过程中进行保护
以防止通讯故障造成的影响。
E2E的保护机制借助于端到端保护库(E2E库)来实现。
比如,随机性的硬件故障,由于EMC造成的CAN收发器故障,
或者诸如RTE、IOC、COM以及网络堆栈等VFB软件通讯故障。
1.1 E2E库功能
E2E库是基于其内部功能行为开发的,具体体现在通讯保
护机制以及E2E结构上。
1.1.1 通讯保护
通讯保护机制的重要意义之一是它对于不同目的标准化和灵
活性,这可以通过配置E2E结构中函数调用参数来解决。有些
图 2 Comspec设置
E2E结构有标准的变量。每个E2E变量是E2E结构提供的一
组配置选项。比如,在E2E结构1中,CRC和Counter的位
置是可以配置的。E2E变量1A指定了CRC的起始位是bit0,
Counter的起始位是bit8。除了E2E结构外,E2E库还提供基
本的功能(比如多字节CRC)来建立的安全协议。
发送:对于传输的数据,有CRC或Counter这样的额外
控制域。
接收:从接收的数据中评估和计算控制域,比如计算接收数
据的CRC,与收到的值做比较。
081
AUTO DRIVING & SERVICE 2020 . 03
学术|制造研究
ACADEMIC
图 3 E2E_Comspec模块封装
每种E2E结构有特定的控制区域设置,包括特定的功能行
为和用于监测通讯故障的特定属性。
1.1.2 E2E结构
E2E结构提供了一系列数据保护的机制,用于对故障模型
中考虑进去的故障的保护。每一种E2E结构通过不同的算法,
提供了一种可选的方式来保护通讯。然而每种E2E结构几乎都
有确定的API。每种E2E结构必须使用如下保护机制集合。
(1)CRC,由CRC库提供。
(2)序列计数器(Sequence Counter)每次根据传输需
求增加,由接收方检查增加数值的正确性。
(3)存活计数器(alive Counter)每个根据传输需求增加,
接收方仅检查数值是否改变,但不检查是否改变正确。
(4)通过同一端口的数据元素有指定ID。每一组I-PDU有
一个指定ID。
(5)超时监测:接收通信通讯超时;发送确认超时。
(6)本文使用比较常用的E2E结构1及其变量1A来进行
数据保护开发。
RTE之上,即应用层。
(2)COM callouts——无标准的集成代码来保护I-PDUs
(3)以上混合使用。
(4)RTE层的Out-of-box保护。
2.2 基于E2E保护包的E2E库使用
本文运用E2E保护包来实现E2E库的调用。E2E保护
包的功能由Rte_Write和Rte_read实现,并提供给应用层。
应用层软件需要包含了E2EPW_xxx.h(xxx为运行体名)。
E2EPW_xxx.h和E2EPW_xxx.c即E2Ewapper代码,属于
RTE接口代码的一部分,通过RTE配置后,存在于RTE代码
生成过程。RTE_xxx.h包含了运行体RTE实现相关的声明和
宏定义,同样在RTE代码生成过程中产生。如果RTE配置中建
立某一运行体的实例,则RTE代码包含相应的RTE_xxx.h和
RTE_xxx_Type.h。其余E2E_P01.h和E2E.h由底层软件供
应商提供。本文研究对象为TGI软件组件。首先,定义E2E配
置结构体(Config)。该配置结构体需要应用层和底层共同确认,
根据变量1A的规则。原则上该配置应该由底层软件完成。但在
SystemDesk也有实践,完成之后生成描述文件如图1所示。
2 应用层E2E库使用
为了合理使用E2E库,该库的获取方案有多种。这些方案的
选择取决于RTE、COM软件及底层其余软件单元的集成方式。所
以使用者有责任选择合适的使用方式来实现安全相关系统的需求。
2.1 E2E库的实现方式
E2E库可以由以下不同方式来实现。
(1)E2E保护包——无标准的集成软件来保护数据,用于
其次,在SystemDesk中建立软件组件TGI,除内部行为外,
重点通过添加Comspec对需要E2E保护的数据进行端口属性
配置:依次关联相应的接口,并设UseEndtoEndProtection
属性为on,在IniValueRef中设置初始值。软件组件设计完后,
从SystemDesk中导出描述文件,并导入TargetLink。比如,
对于供型端口的设置及Comspec在DD中体现如图2。对于需
型端口也做同样设置。
082
AUTO DRIVING & SERVICE 2020 . 03
学术|制造研究
ACADEMIC
图 4 接收端保护机制
接着,在TargetLink中生成框架模型,添加TL
AR Utilities中“E2E库”,进行端口配置和调试。如果调试成功,
E2E_Comspec模块将封装成如图3,不仅对需要进行保护的
端口承载信号打包,同时生成status信号。
最后,生成的AUTOSAR代码。以接收端为例,
在TGI.c中如预期生成了E2E保护包的调用函数E2EPW_
Read_C2L_E2e_L2_In(TGI_E2e_L2_In_t* E2ESignal)。
而在E2EPW_TGI.c中如期生成RTE数据更新状态返回值
Rte_Read_C2L_L2_E2e_L2_In(E2ESignal)。
以接收端为例,其保护机制和调用关系如图4所示。
(1)应用层激活E2EPW_Read_
_(&dataEI)
(即E2EPW_Read_C2L_E2e_L2_In(TGI_E2e_L2_In_t*
E2ESignal))。
(2)E2EPW激活RTE读取接口Rte_
(5)E2E库计算CRC,完成检查:E2E库激活CRC库
若干次来计算数据和数据ID的CRC,并检查CRC、计数器、
最新数据元素,最后根据检查结果,更新State。
(6)更新状态值State->Status。
(7)评估接收到的数据元素是否可信,或者触发错误后处理。
3 结论
目前,E2E保护仍处于研发阶段。作为AUTOSAR提供
的ISO26262标准中安全通讯保护的实现方式,其研发成果不
仅可以用于ECU内部数据元素的保护,还能用于整车CAN通
讯的保护。
Read__(&DataEl)(即Rte_Read_C2L_L2_
E2e_L2_In(E2ESignal)),获取最新的数据元素。
(3)如果获取最新元素成功,Rte_Read返回没有错误。
(4)调用E2E库中E2E_P01Check(&Config, &State,
&Data)。
【参考文献】
[1]王旭阳. 参照ISO26262的安全低功耗AUTOSAR基础软件模块[D].
浙江大学,2013.
作者简介:
方晓颖,本科,高级工程师,研究方向为汽车电子。
083
AUTO DRIVING & SERVICE 2020 . 03
2024年8月26日发(作者:盍逸秀)
学术|制造研究
ACADEMIC
基于AUTOSAR标准的E2E保护
方晓颖
(同济大学 201804)
摘要:为了支持功能安全,AUTOSAR标准结合ISO26262功能安全标准,在基础软件层从安全通讯等方面做了规范。本文首先介绍了安全通讯机制之一的E2E保
护来源,接着从E2E保护机制和E2E库功能两方面进行重点阐述。最后实践说明E2E库在应用层软件的使用方法。
关键词:AUTOSAR;E2E保护
中图分类号:U461.99 文献标识码:A
0 引言
AUTOSAR(Automotive Open System Architecture)
标准是汽车电子系统开发的新理念。基于AUTOSAR标准的汽车
电子系统开发实现了应用软件设计与底层硬件的分离,是汽车电子
嵌入式系统发展的趋势。ISO26262是汽车功能安全的新标准,包
括了安全周期、汽车安全集成等级(ASIL)以及安全需求规范等核
心概念
[1]
。为了支持功能安全,AUTOSAR标准结合ISO26262
功能安全标准,在基础软件层从安全执行、安全通讯以及安全内
建测试三方面做了规范。其中,安全通信包括两个方面,ECU内
部通讯和ECU之间的通信。AUTOSAR对于安全通信提供了三
种机制,数据顺序控制、PDU复制和K/N的投票机制以及端到端
(End to End,简称E2E)的保护机制。本文针对ECU内部数
据元素层面的E2E保护,重点阐述其保护机制、使用限制、E2E
结构1(E2E profile1)以及基于E2E保护包的E2E库实现方式。
图 1 E2E配置结构体
1 E2E保护
“E2E保护”是指对安全相关的数据在交互过程中进行保护
以防止通讯故障造成的影响。
E2E的保护机制借助于端到端保护库(E2E库)来实现。
比如,随机性的硬件故障,由于EMC造成的CAN收发器故障,
或者诸如RTE、IOC、COM以及网络堆栈等VFB软件通讯故障。
1.1 E2E库功能
E2E库是基于其内部功能行为开发的,具体体现在通讯保
护机制以及E2E结构上。
1.1.1 通讯保护
通讯保护机制的重要意义之一是它对于不同目的标准化和灵
活性,这可以通过配置E2E结构中函数调用参数来解决。有些
图 2 Comspec设置
E2E结构有标准的变量。每个E2E变量是E2E结构提供的一
组配置选项。比如,在E2E结构1中,CRC和Counter的位
置是可以配置的。E2E变量1A指定了CRC的起始位是bit0,
Counter的起始位是bit8。除了E2E结构外,E2E库还提供基
本的功能(比如多字节CRC)来建立的安全协议。
发送:对于传输的数据,有CRC或Counter这样的额外
控制域。
接收:从接收的数据中评估和计算控制域,比如计算接收数
据的CRC,与收到的值做比较。
081
AUTO DRIVING & SERVICE 2020 . 03
学术|制造研究
ACADEMIC
图 3 E2E_Comspec模块封装
每种E2E结构有特定的控制区域设置,包括特定的功能行
为和用于监测通讯故障的特定属性。
1.1.2 E2E结构
E2E结构提供了一系列数据保护的机制,用于对故障模型
中考虑进去的故障的保护。每一种E2E结构通过不同的算法,
提供了一种可选的方式来保护通讯。然而每种E2E结构几乎都
有确定的API。每种E2E结构必须使用如下保护机制集合。
(1)CRC,由CRC库提供。
(2)序列计数器(Sequence Counter)每次根据传输需
求增加,由接收方检查增加数值的正确性。
(3)存活计数器(alive Counter)每个根据传输需求增加,
接收方仅检查数值是否改变,但不检查是否改变正确。
(4)通过同一端口的数据元素有指定ID。每一组I-PDU有
一个指定ID。
(5)超时监测:接收通信通讯超时;发送确认超时。
(6)本文使用比较常用的E2E结构1及其变量1A来进行
数据保护开发。
RTE之上,即应用层。
(2)COM callouts——无标准的集成代码来保护I-PDUs
(3)以上混合使用。
(4)RTE层的Out-of-box保护。
2.2 基于E2E保护包的E2E库使用
本文运用E2E保护包来实现E2E库的调用。E2E保护
包的功能由Rte_Write和Rte_read实现,并提供给应用层。
应用层软件需要包含了E2EPW_xxx.h(xxx为运行体名)。
E2EPW_xxx.h和E2EPW_xxx.c即E2Ewapper代码,属于
RTE接口代码的一部分,通过RTE配置后,存在于RTE代码
生成过程。RTE_xxx.h包含了运行体RTE实现相关的声明和
宏定义,同样在RTE代码生成过程中产生。如果RTE配置中建
立某一运行体的实例,则RTE代码包含相应的RTE_xxx.h和
RTE_xxx_Type.h。其余E2E_P01.h和E2E.h由底层软件供
应商提供。本文研究对象为TGI软件组件。首先,定义E2E配
置结构体(Config)。该配置结构体需要应用层和底层共同确认,
根据变量1A的规则。原则上该配置应该由底层软件完成。但在
SystemDesk也有实践,完成之后生成描述文件如图1所示。
2 应用层E2E库使用
为了合理使用E2E库,该库的获取方案有多种。这些方案的
选择取决于RTE、COM软件及底层其余软件单元的集成方式。所
以使用者有责任选择合适的使用方式来实现安全相关系统的需求。
2.1 E2E库的实现方式
E2E库可以由以下不同方式来实现。
(1)E2E保护包——无标准的集成软件来保护数据,用于
其次,在SystemDesk中建立软件组件TGI,除内部行为外,
重点通过添加Comspec对需要E2E保护的数据进行端口属性
配置:依次关联相应的接口,并设UseEndtoEndProtection
属性为on,在IniValueRef中设置初始值。软件组件设计完后,
从SystemDesk中导出描述文件,并导入TargetLink。比如,
对于供型端口的设置及Comspec在DD中体现如图2。对于需
型端口也做同样设置。
082
AUTO DRIVING & SERVICE 2020 . 03
学术|制造研究
ACADEMIC
图 4 接收端保护机制
接着,在TargetLink中生成框架模型,添加TL
AR Utilities中“E2E库”,进行端口配置和调试。如果调试成功,
E2E_Comspec模块将封装成如图3,不仅对需要进行保护的
端口承载信号打包,同时生成status信号。
最后,生成的AUTOSAR代码。以接收端为例,
在TGI.c中如预期生成了E2E保护包的调用函数E2EPW_
Read_C2L_E2e_L2_In(TGI_E2e_L2_In_t* E2ESignal)。
而在E2EPW_TGI.c中如期生成RTE数据更新状态返回值
Rte_Read_C2L_L2_E2e_L2_In(E2ESignal)。
以接收端为例,其保护机制和调用关系如图4所示。
(1)应用层激活E2EPW_Read_
_(&dataEI)
(即E2EPW_Read_C2L_E2e_L2_In(TGI_E2e_L2_In_t*
E2ESignal))。
(2)E2EPW激活RTE读取接口Rte_
(5)E2E库计算CRC,完成检查:E2E库激活CRC库
若干次来计算数据和数据ID的CRC,并检查CRC、计数器、
最新数据元素,最后根据检查结果,更新State。
(6)更新状态值State->Status。
(7)评估接收到的数据元素是否可信,或者触发错误后处理。
3 结论
目前,E2E保护仍处于研发阶段。作为AUTOSAR提供
的ISO26262标准中安全通讯保护的实现方式,其研发成果不
仅可以用于ECU内部数据元素的保护,还能用于整车CAN通
讯的保护。
Read__(&DataEl)(即Rte_Read_C2L_L2_
E2e_L2_In(E2ESignal)),获取最新的数据元素。
(3)如果获取最新元素成功,Rte_Read返回没有错误。
(4)调用E2E库中E2E_P01Check(&Config, &State,
&Data)。
【参考文献】
[1]王旭阳. 参照ISO26262的安全低功耗AUTOSAR基础软件模块[D].
浙江大学,2013.
作者简介:
方晓颖,本科,高级工程师,研究方向为汽车电子。
083
AUTO DRIVING & SERVICE 2020 . 03