【DBC专题】-9-如何在DBC中描述CAN Signal的“负数/值”

31 篇文章 140 订阅
14 篇文章 283 订阅

目录

1 Value Type = Unsigned的“负数/值”CAN信号描述

1.1 举例:测试CAN Log

2 Value Type = Signed的“负数/值”CAN信号描述

2.1 以Factor = 1,Offset = 0为例

2.2 以Factor 不等于 1,Offset不等于0为例

3 结尾


推荐阅读(单击下方文字即可跳转至对应博文):

1、【DBC专题】-1-如何使用CANdb++ Editor创建并制作一个DBC

2、【DBC专题】-2-CAN Signal信号的Multiplexor多路复用在DBC中实现

3、【DBC专题】-3-利用CANdb++ Editor在DBC文件添加帧CAN_ID和信号CAN_Signal

4、【DBC专题】-4-DBC文件中的Signal信号字节顺序Motorola和Intel介绍

5、【DBC专题】-5-DBC文件格式解析

6、【DBC专题】-6-Signal信号字节顺序Motorola_LSB/MSB/Sequential/Backward,Intel_Standard/Sequential等6类格式详解

7、【DBC专题】-7-在DBC中创建一个Signal Group信号组

8、【DBC专题】-8-经典CAN2.0 DBC快速切换为CANFD DBC

在DBC中,提供两种方式:描述CAN信号是“负数/”。下面一一道来。

1 Value Type = Unsigned的“负数/值”CAN信号描述

CAN信号的Value Type = Unsigned。

公式:Phy值 = Hex值 * Factor + Offset。

注意:

  • 如果一个CAN信号有负数/值,则Offset必须为负数
  • 负数区间的范围:[Offset,0),既Offset决定了负数/值的下限

1.1 举例:测试CAN Log

以Factor = 0.1,Offset = -40为例。

2 Value Type = Signed的“负数/值”CAN信号描述

CAN信号的Value Type = Signed。

2.1 以Factor = 1,Offset = 0为例

以Factor = 1,Offset = 0为例。

描述负数的方法:

  • CAN信号值的最高位(如果CAN信号长度12Bit,则最高位是Bit12)为0,则仅能描述正数,Phy = Hex;
  • CAN信号值的最高位(如果CAN信号长度12Bit,则最高位是Bit12)为1,则仅能描述负数,Phy = (-(“Hex取反 + 1))

举例:

  • Hex值 = 0xC18,其二进制:1100 0001 1000;
  • “Hex值”取反,其二进制:0011 1110 0111;
  • (“Hex值”取反 + 1),其二进制:0011 1110 1000,其十进制:1000;
  • (-(“Hex值”取反 + 1))  = -1000

2.2 以Factor 不等于 1,Offset不等于0为例

以Factor 不等于 1,Offset 不等于 0为例。

描述负数的方法:

  • CAN信号值的最高位(如果CAN信号长度12Bit,则最高位是Bit12)为0,则描述负数是有条件的Phy = Hex * Factor + Offset。注意:如果Offset是负数,则Offset的绝对值 大于 Hex * Factor,才有可能描述负数。
  • CAN信号值的最高位(如果CAN信号长度12Bit,则最高位是Bit12)为1,则描述负数是有条件的Phy = (-(“Hex取反 + 1)) * Factor + Offset。注意:a)如果Offset是负数;b)如果Offset是正数,Offset 小于 (“Hex取反 + 1) * Factor。只有这两种情况,才有可能描述负数。

举例:

  • Hex值 = 0xC18,其二进制:1100 0001 1000;
  • “Hex值”取反,其二进制:0011 1110 0111;
  • (“Hex值”取反 + 1),其二进制:0011 1110 1000,其十进制:1000;
  • (-(“Hex值”取反 + 1)) * Factor + Offset  = -1000 * 0.1 + (-40) = -140。

3 结尾

获取更多“汽车电子资讯”和“工具链使用”,

请关注CSDN博客:汽车电子助手,做您的好助手。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汽车电子助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值