0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Autosar E2E介绍及其实现

jf_EksNQtU6 来源:汽车电子学习笔记 2023-09-22 10:28 次阅读

前言

E2E(End-to-End)保护存在于安全性较高的信号,在信号传递的过程中,受软硬件的影响,发送端和接收端的数据可能不一致,此时E2E的作用就体现出来,系统可以快速检测出E2E异常,以便做出相应的异常处理。

本文以常用的Profile1为例,介绍相关的定义的和使用

cc2360b0-5866-11ee-939d-92fbcf53809c.png

E2E的依赖:E2E会调用CRC中的函数,例如Crc_CalculateCRC8

E2E Development Errors

cc4104a8-5866-11ee-939d-92fbcf53809c.png

E2E_E_INPUTERR_NULL(0x13):至少有一个指针参数是NULL指针

E2E_E_INPUTERR_WRONG(0x17):至少有一个输入参数错误,例如超出范围

E2E_E_INTERR(0x19):发生了内部库错误(例如,程序流监控检测到的错误,违反了不变式或后置条件)

E2E_E_WRONGSTATE(0x1A):函数在错误的状态下执行

Type definitions类型定义

本章定义了对调用方可见的E2E库定义的数据类型。

下面显示的一些属性定义了数据偏移量。偏移量的定义规则如下:

偏移量以位为单位,

在一个字节中,位从0往上编号,第0位是最低位(与微控制器或总线端序无关)。

cc57b036-5866-11ee-939d-92fbcf53809c.png

E2E_P01ConfigType

cc69cce4-5866-11ee-939d-92fbcf53809c.png

cc7e128a-5866-11ee-939d-92fbcf53809c.png

CounterOffset:Counter的位偏移。CounterOffset应为4的倍数。在变体1A、1B和1C中,CounterOffset为8。

CRCOffset:CRC的位偏移量。偏移量应为8的倍数。在变体1A、1B和1C中,CRCOffset为0。

DataID:两字节,根据具体要求来定,每个Group的Data Id都可能不一样。

DataIDNibbleOffset:DataID的高字节的low nibble位偏移量。只有当DataIDMode = E2E_P01_DATAID_NIBBLE时,E2E库才会使用该参数(否则会被E2E Library忽略)

cc88a97a-5866-11ee-939d-92fbcf53809c.png

DataIDMode:Data ID的使用方式,包括both bytes, alternating, or low byte 等,在后面介绍

DataLength:数据的长度,以位为单位。该值应为8的倍数。DataLength包含Checksum和Counter

MaxDeltaCounterInit:两个连续接收到的有效数据的两个计数器值之间的初始最大允许间隙。例如,如果接收方获得计数器为1的数据,并且MaxDeltaCounterInit为1,那么在下一次接收时,接收方可以接受值为2和3的计数器,但不能接受值为4的计数器。

MaxNoNewOrRepeatedData:在正常通信条件下,接收方不希望超过的丢失或重复数据的最大数量。也就是允许counter不变时的次数

SyncCounterInit:在检测到接收到的计数器的意外行为后,必须用有效计数器(即在允许的锁定范围内的计数器)接收的验证计数器一致性所需的数据数。这个相当于是一个debounce,在故障确认后,需要连续检测SyncCounterInit配置的值后status才会变为正常状态

E2E_P01DataIDMode

cca5b06a-5866-11ee-939d-92fbcf53809c.png

ccba7770-5866-11ee-939d-92fbcf53809c.png

E2E_P01_DATAID_BOTH:两个字节包含在CRC(双字节ID配置)中,这在E2E变体1A中使用。

E2E_P01_DATAID_ALT:包括两个字节字节中的一个,根据Counter的奇偶性(交替ID配置)交替高字节和低字节。对于偶数Counter,使用低字节。对于奇数Counter,使用高字节。这在E2E变型1B中使用。

E2E_P01_DATAID_LOW:只包含低字节,从不使用高字节。这适用于特定系统中的id为8位的情况

E2E_P01_DATAID_NIBBLE:低字节包含在隐式CRC计算中,高字节的低字节与数据一起传输(即显式包含),不使用高字节的高字节。这适用于最多12位的id。这在E2E型1C中使用。也就是说data id的高字节的低四位是包含在data中的

E2E_P01CheckStateType

ccd2d4a0-5866-11ee-939d-92fbcf53809c.png

cceafef4-5866-11ee-939d-92fbcf53809c.png

LastValidCounter:最近收到的计数器值。如果尚未接收到数据,则该值为0x0。每次接收后,计数器都会使用接收到的值进行更新

MaxDeltaCounter:当前Counter最大差值

WaitForFirstData:如果为true,则表示在接收器初始化或重新初始化后尚未收到正确的数据(具有正确的data ID和CRC)

NewDataAvailable:向端到端库表示有新的数据可供库检查。此属性由E2E Library调用方设置,而不是由E2E Library。

LostData:自收到最后一个有效数据(消息)以来丢失的数据(消息)数。只有当Status等于E2E_P01STATUS_OK或E2E_P01STATUS_OKSOMELOST时,才会设置该属性。对于Status的其他值,LostData的值是undefined。E2E_P01CheckStatusType Status数据校验结果,由Check函数确定

ccfea530-5866-11ee-939d-92fbcf53809c.png

Status:数据验证的结果,由Check函数确定

SyncCounter:在检测到接收到的计数器的意外行为后,必须用有效计数器(即在允许的锁定范围内的计数器)接收的验证计数器一致性所需的数据数。也就是故障出现后,重新接收到有效数据的计数。当SyncCounter超过SyncCounterInit后,E2E接收的数据才会变为有效

NoNewOrRepeatedDataCounter:连续接收周期的数量,其中(1)没有新数据,或(2)数据重复。

E2E_P01CheckStatusType

cd0c27d2-5866-11ee-939d-92fbcf53809c.png

cd1b2d36-5866-11ee-939d-92fbcf53809c.png

E2E_P01STATUS_OK:CRC校验通过,计数器相对于最近收到的状态为_INITIAL、_OK或_OKSOMELOST的数据加1.这意味着自最后一次正确的数据接收以来没有数据丢失

E2E_P01STATUS_NONEWDATA:错误:Check函数已被调用,但根据通信介质,自上次调用以来没有新的数据不可用.因此,没有执行数据的E2E检查。

E2E_P01STATUS_WRONGCRC:错误:根据通信介质已经接收到数据,但是

1.CRC不正确(适用于所有E2E配置文件1)或

2.数据ID高字节的low nibble错误(仅适用于E2E_P01DataIDMode = E2E_P01_DATAID_NIBBLE的E2E Profile1)

E2E_P01STATUS_SYNC:NOT VALID:在检测到计数器的意外行为后,新数据已被接收。数据有一个正确的CRC和一个在预期范围内的计数器,相对于最近收到的数据,但是计数器的确定的连续性检查还没有完成

E2E_P01STATUS_INITIAL:初始化:根据通信介质已经接收到新的数据,CRC是正确的,但这是接收方初始化或重新初始化后的第一个数据,因此计数器还不能验证

E2E_P01STATUS_REPEATED:错误:根据通信介质已经接收到新的数据,CRC是正确的,但是计数器与最近收到的状态为_INITIAL, _OK或_OKSOMELOST的数据相同。

E2E_P01STATUS_OKSOMELOST根据通信介质已经接收到新数据,CRC是正确的,计数器相对于最近收到的状态为_INITIAL, _OK或_OKSOMELOST的数据增加DeltaCounter (1 < DeltaCounter = MaxDeltaCounter)。这意味着自最后一次正确/初始接收以来,序列中的一些数据可能已经丢失,但这在配置的公差范围内。

E2E_P01STATUS_WRONGSEQUENCE:错误:根据通信介质已经接收到新的数据,CRC是正确的,但是计数器Delta (DeltaCounter > MaxDeltaCounter)相对于最近收到的状态为_INITIAL, _OK或_OKSOMELOST的数据太大。这意味着自最后一次正确/初始接收以来,序列中可能丢失了太多数据。

函数定义

E2E_P01Protect

cd38ea38-5866-11ee-939d-92fbcf53809c.png

输入参数:ConfigPtr:E2E_P01的配置参数

输入输出参数:

StatePtr:当前E2E_P01通信状态

DataPtr:要发送的数据指针,经过E2E计算的

E2E_P01Protect函数主要用来根据输入的DATA和DATA ID等计算Counter和CRC

E2E_P01ProtectInit

cd4fe846-5866-11ee-939d-92fbcf53809c.png

初始化E2E_P01ProtectState

E2E_P01Check

cd6b67e2-5866-11ee-939d-92fbcf53809c.png

输入参数:Config:E2E_P01的配置参数

Data :需要E2E校验的数据

输入输出参数:State:当前E2E_P01的通信状态

E2E_P01Check主要用来根据输入的DATA和DATA ID等校验数据是否正常

E2E_P01CheckInit

cd7f83da-5866-11ee-939d-92fbcf53809c.png

初始化E2E_P01CheckState

E2E_P01MapStatusToSM

cd8cba32-5866-11ee-939d-92fbcf53809c.png

将Profile 1的check status映射为通用check status,供E2E状态机检查功能使用。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    6812

    浏览量

    147659
  • 信号
    +关注

    关注

    11

    文章

    2641

    浏览量

    75392
  • AUTOSAR
    +关注

    关注

    9

    文章

    330

    浏览量

    21138
  • 函数
    +关注

    关注

    3

    文章

    3904

    浏览量

    61310

原文标题:Autosar E2E及其实现(基于E2E_P01)

文章出处:【微信号:谈思实验室,微信公众号:谈思实验室】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    一切为了E币,其实我不想水贴的

    一切为了E币,其实我不想水贴的PCB打样找华强样板2天出货
    发表于 05-13 15:11

    以前的E2E社区的资料

    以前的E2E社区合到这边来了,那以前的视频资料哪里能找到阿,我想找Tommy song的C64+的视频教程~~麻烦,谢谢!
    发表于 06-21 00:43

    电子发烧友E2E线下30城活动 | 让技术成就梦想,谁将是梦想领航人呢?

    去拼搏努力…………没有关系,当你看到了这篇文章,你会知道,我们一直在寻找的就是你电子发烧友E2E 30城技术沙龙,让技术成就梦想!什么是电子发烧友E2E 30城技术沙龙?电子发烧友
    发表于 12-20 17:19

    电子发烧友E2E首场粉丝见面会,畅谈如何提升产品可靠性?

    `E2E技术活动在这里集圈内实战高手纯干货技术分享你可以结识更多技术工程师,切身在充满技术氛围里成长你可以与每一位工程师尽情交流,探讨即时热点技术相关的各类问题还可以,很多,更多......1月19
    发表于 01-11 15:03

    电子发烧友E2E线下沙龙深圳站|“畅谈如何提高产品可靠性”精彩回顾

    ``2019年1月19日,由华强聚丰、电子发烧友主办的电子发烧友首场E2E技术沙龙终于落下帷幕。本次活动主题为“畅谈如何提高产品可靠性”。活动当天工作人员精心布置了现场,准备好礼品等着大家到来。活动
    发表于 01-21 16:47

    电子发烧友E2E线下30城活动 | 让技术成就梦想,谁将是梦想领航人呢?

    拼搏努力…………没有关系,当你看到了这篇文章,你会知道,我们一直在寻找的就是你电子发烧友E2E 30城技术沙龙,让技术成就梦想!什么是电子发烧友E2E 30城技术沙龙?电子发烧友
    发表于 03-06 12:00

    HarmonyOS应用开发-HelloWorld应用开发E2E体验

    世界!5. 恭喜您您已经成功完成了HelloWorld应用开发E2E体验,并学到了: 如何创建一个HarmonyOSProject 编译构建hap包 将hap包部署到智慧屏远程模拟器上并运行
    发表于 09-24 11:10

    ADC0804工作原理及其实现方式是什么

    ADC分为哪几种?ADC的参数指标有哪些?ADC0804工作原理及其实现方式是什么?
    发表于 08-24 07:13

    AUTOSAR是什么

    一、AUTOSAR是什么AUTOSAR组织自己的介绍AUTOSAR (AUTomotive Open System ARchitecture) is a worldwide deve
    发表于 11-10 07:47

    为什么使用AUTOSAR

    文章目录一、总概述1 为什么使用AUTOSAR?1.1 AUTOSAR出现之前的行业现状1.2 AUTOSAR出现之后可以实现如下目标2
    发表于 12-09 07:50

    介绍AUTOSAR支持的四种功能安全机制

    1、AUTOSAR的四种功能安全机制虽然AUTOSAR不是一个完整的安全解决方案,但它提供了一些安全机制用于支持安全关键系统的开发。本文用于介绍AUTOSAR支持的四种功能安全机制:内
    发表于 06-10 17:33

    E:\NXP\AUTOSAR\S32K_AUTOSAR_OS_4_0_98_RTM_1_0_0sample\standard\sc1”编译时无法生成sample1_cfg.o怎么解决?

    你好:我用例子“E:\NXP\AUTOSAR\S32K_AUTOSAR_OS_4_0_98_RTM_1_0_0sample\standard\sc1”编译时,总是出现无法生成
    发表于 04-06 07:42

    3G业务及其实现

    第八章 3G业务及其实现
    发表于 06-17 16:48 25次下载

    计算机的海明校验及其实现详细说明

    本文档的主要内容详细介绍的是计算机的海明校验及其实现详细说明。
    发表于 04-30 08:00 3次下载
    计算机的海明校验<b class='flag-5'>及其实现</b>详细说明

    AUTOSAR E2E:车载通信的安全保障

    随着汽车行业逐步走向电气化、智能化,车载系统的软件和硬件复杂度不断上升。如何确保这些复杂系统中的数据通讯安全和可靠,已成为业界关注的焦点。E2E(End-to-End)通讯常常指的是一个信息从发送
    的头像 发表于 10-27 15:32 572次阅读
    <b class='flag-5'>AUTOSAR</b> <b class='flag-5'>E2E</b>:车载通信的安全保障