初始值:系统启动时,未获取真实数据前发送值
有效值:系统启动后,已获取真实数据值
无效值(SNA):系统启动后,异常时发送值
物理最大值:实际占用bit位值,当规定最大值时,就无实际作用。can dbc中较常见定义
物理最小值:0
最大值:规定实际意义最大值
最小值:规定实际意义最小值
CAN数据WPTC_PDOffsetY为例:
初始值:0
有效值:-5000~5000
无效值(SNA):未说明,也可以理解(物理值:0x2711~0x3FFF,实际值:5000+无为无效值)
物理最大值:0x3FFF (解析前,纯bit)
物理最小值:0 (解析前,纯bit)
最大值:5000 解析规则:物理值*Factor+Offset
最小值:5000 解析规则:物理值*Factor+Offset
通常数据brake_report.brake_report_data.driver_work_type示例
初始值:未说明
有效值:0~3
无效值(SNA):4~255
物理最大值:0xFF 单位unit_8决定
物理最小值:0
最大值:7 实际上4~7为reserve位,也是无意义的
最小值:0
功能安全(Functional Safety)是一项系统特性,由于基于功能安全的设计会影响到系统设计,所以从系统开发初始阶段就要进行考虑。由于软件的复杂度会影响 到功能安全的设计,所以在AUTOSAR规范中,包含了部分与功能安全相关的需求,这些新技术和概念能够帮助降低功能安全相关组件的复杂度。不过需要强调的是,AUTOSAR虽然通过提供安全措施和机制来支持基于功能安全产品开发,但这些独立的安全措施(Safety Measure)并不能形成整体的安全解决方案。
在功能安全标准(ISO 26262 2018, Part 6)中,提到了要避免软件相关元素之间干扰(Freedom from Interference between software elements)。软件之间的相互干扰主要集中在软件的执行时间(Timing),软件间的死锁(Dead locks,Live locks),内存使用(Memory),信息交换(Information Exchange)。
失效模式:在一个分布式的系统中,如果系统的功能安全依赖于数据的完整性,那么发送方(Sender)和接收方(Receiver)之间的数据交换就可以对系统的功能安全造成影响。根据ISO 26262 Part 6的附录D,数据交换过程中,可能存在的失效模式有如下几种:
信息的重复发送 (Repetition of Information) | 相同的信息被收到了多次 |
信息的丢失 (Loss of Information) | 整条或者信息的一部分在通信过程中丢失 |
信息的延迟 (Delay of Information) | 接收信息的时间大于期望的时间 |
信息的插入 (Insertion of Information) | 多余或未知附加的内容被插入到信息中 |
假冒的或者不正确的寻址 (Masquerade or Incorrect Addressing of Information) | 假冒的发送者发送未认证的信息被接收方接受,或者正确的信息被错误的接收方接受 |
信息顺序错误 (Incorrect Sequence of Information) | 数据流中的信息顺序错误 |
信息破损 (Corruption of Information) | 信息的内容被篡改 |
向多个接收方发送非对称信息 (Asymmetric information sent from a sender to multiple receivers) | 接收方者收到的数据不一致 |
仅部分接收方收到发送者的信息 (Information from a sender received by only a subset of receivers) | 一些接收方没有收到信息 |
阻塞通信通道 (Blocking access to communication channel) | 通信通道的访问被阻塞。 |
这些失效可能发生的数据交换的场景包括,与I/O外设的通信,基于数据总线的通信等等。产生失效的原因包括系统性失效与随机失效,在软件方面,如生成代码过程中的错误,手动编码引入的错误,网络协议栈的错误等等;硬件方面,如处理器的故障,网络硬件的故障,电磁辐射等等。
E2E保护的概念是假设安全相关的数据交换,需要在运行时进行保护,以消除通信链路中可能的失效带来的影响。
机制 | 简介 | 说明 | 故障模式 |
CRC | CRC校验 | 检测每个数据包,是否传输过程中损坏 | 损坏、伪装 |
计数器 | 连续计数器(Sequence Counter) | 每个数据包,连续计数器都会增加,其值会在接收方进行检查是否正确的增加 | 重复、丢失、不正确的顺序 |
心跳计数器(Alive Counter) | 每个数据包,心跳计数器都会发生改变,接收方会验证数值是否发生变化,但变化的范围不做检查 | 丢失 | |
数据ID | 特定的通信ID | 全局唯一,即使系统包括多个ECU的情况下 | 插入ID,地址故障 |
超时 | 超时检测 | 检查接收方的通信超时(Communication Timeout)和发送方的确认超时(Acknowledgement Timeout) | 丢失、延迟 |