首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >AUTOSAR中基于信号的路由和基于PDU的路由的区别

AUTOSAR中基于信号的路由和基于PDU的路由的区别
EN

Stack Overflow用户
提问于 2022-05-26 10:18:14
回答 1查看 378关注 0票数 1

试图了解AUTOSAR中基于信号的路由和基于PDU的路由的性能差异。

根据我的理解,

  1. 基于信号的路由->需要将信号转换为I并进行路由。
  2. 基于PDU的路由->直接路由

无论如何,这些two.Because之间的性能有什么不同呢?路由是作为PDU处理的。一些注意事项可以看到基于信号的路由具有较低的延迟。为什么会这样呢?基于信号的路由是否有开销?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-27 02:03:15

如果我的理解是正确的,基于PDU的路由和基于信号的路由有很大的不同。基于PDU的应该要快得多。

基于信号的路由->需要将信号转换为I并进行路由。 基于PDU的路由->直接路由

在我看来是非常正确的,所以让我们用一个带有几个PDU的CAN FD框架来检查一个示例。

代码语言:javascript
代码运行次数:0
运行
复制
  Byte  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16
       XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX
   PDU [-------PDU_1------]    [--PDU_2--]
Signal II             II          II
     Signal_1     Signal_2      Signal_3
       4 bits       3 bits        1 bit 
  • 如果PDU_1是使用基于PDU的路由路由的,那么从软件的角度来看,这只是将PDU_1的7个字节复制到另一个具有相同结构的PDU上的问题。无需突出显示将几个字节从内存位置复制到另一个内存位置的速度。当您在汽车中有一个网关时,您可以找到这种情况,将PDU从can转换到Flexray并返回。
  • 如果我们使用基于信号的路由,这是另一个主题,如果我们考虑软件的实现,就会复杂得多。该软件将需要从字节字段中提取Signal_1和Signal_2的值,然后使用该因子和偏移量用浮点数确定其物理值,然后将其转换回可能没有完全相同因子或偏移量的目标信号。有更多的计算涉及,如果信号的数量是重要的,这会对性能产生很大的影响。如果您需要这个,您可能需要一个带有浮点单元的单片机。
代码语言:javascript
代码运行次数:0
运行
复制
static uint32_t GW_GetSignal_1 (uint8_t *Data)
{
  uint32_t Byte_0 = Data[0];
  uint32_t Bytes  = (Byte_0 >> 3);
  uint32_t SignalValue = (Bytes & 0xF); /* 0000.1111 */
  return SignalValue;
}

static uint32_t GW_GetSignal_2 (uint8_t *Data)
{
  uint32_t Byte_0 = Data[0];
  uint32_t Bytes  = (Byte_0 >> 0);
  uint32_t SignalValue = (Bytes & 0x7); /* 0000.0111 */
  return SignalValue;
}

static float Raw32ToPhysical (uint32_t RawValue, float Factor, float Offset)
{
  float PhysicalValue = ((float)RawValue) * Factor + Offset;
  return PhysicalValue; 
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72390245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档