当前位置: 首页 > news >正文

DBC中一种特殊的特殊的Signal—多路复用Signal

前言:

DBC设计中一般设计Signal时其实存在三种类型,如下图所示:

**1)步骤1,鼠标单击展开Message,选中底下的Signal

**2)步骤2,弹出dialog中选择 map signal 

61b003b09e5148168aadfcf747aca5d2.png

**3)得到以下菜单,在Defintion中

7339382cca334eac8245971b4f101592.png

 可以看到,选项Multiplexortype存在三个选项:

**1)Signal   ,这是最常见的一种类型,一般默认也是选择Signal

**2)Multiplexor Signal

**3)Multiplexed Signal

2和3都是复合复用类型,故先要理解以下三个问题

1:) 什么是复合复用类型?

2:) 复合复用类型又是干什么的?
3:) 两种复合复用的关系?

1:) 什么是复合复用类型?

复合复用类型:这种概念有点像C中的共用体的标准,就是可以定义不同的变量(对应的dbc中的是signal),存放于同一内存变量中。

只不过c使用公用体是为了减少RAM内存的使用,而signal的复用则是为了减少总线负债率。

2:) 分清楚Multiplexor Signal和Multiplexed Signal的区别和联系

通过信号复用,可以根据复用值在消息中的相同数据字节上传输不同的信号。包含多路复用值的信号称为Multiplexor Signal(模式信号)。根据多路复用值发送的信号称为Multiplexed(与模式有关)Signals

将人话Multiplexed就是一种标记,可以理解为一组信号组的标号,我们设置一个信号就叫做:Signal_Multiplexor

我自己给这段信号设置了一个ValueTable:添加后效果如下图 :

 然后依次设置以下四个信号:

G1_Signal_1_Multiplexed

G1_Signal_2_Multiplexed

G2_Signal_1_Multiplexed

G2_Signal_1_Multiplexed

加上Signal_Multiplexor一共5个signal,为了方便理解,字节排序方式统一设定为Inter格式,起始位统一设定为inter stand格式。

格式解释,G1/G2是表示分组,后面是信号名,信号名相同的信号表示是同一组复用信号,最后的字符是表示信号是复用信号

第二步:新建一个Message名称New_Message_1,并把所有的信号添加进去。

第三步:点击EditMapingSignal,设置起始位,和信号长度

G1_Signal_1_Multiplexed与G1_Signal_2_Multiplexed是一组,起始位,信号长度必须不存在冲突。

G2_Signal_1_Multiplexed与G2_Signal_2_Multiplexed是一组,起始位,信号长度必须不存在冲突。

最后我们在Meaasge的layout界面看看结果:

注意标注地点,存在三种 选择下拉列表:

1)NO Mul****:指无复合复用类型。CANdb++也是默认选择此类型,此界面下,只能看到Signal_Multiplexor信号

2)Group1:内包含的信号:如下图

3)Group2,如下图:

总结和几点改进意见:

**1)一般情况下:需要Multiplexor标注组别的信号先发送,本例子中,采取的是bit7,先发送,显然是不合理的,建议将Multiplexor_Signal信号放置在Byte0的bit6和bit7位更合适。

2**)复用信号的ValueTable是不能复用的,必须为每个Signal添加一个合适的ValueTable

**3)大家可以尝试选择一组信号,然后任意拖动,也可以改变任意一个signal的长度

http://www.lryc.cn/news/433802.html

相关文章:

  • 前端基础面试题·第三篇——JavaScript(其三)
  • MacBook真的不能打游戏吗?Mac打游戏会损坏电脑吗?苹果电脑怎么玩游戏
  • 安卓逆向(之)真机root(红米手机)
  • 关于转行网络安全的一些建议
  • (六十五)第 10 章 内部排序(希尔排序)
  • 802.11 中 scrambler的matlab仿真
  • centos 服务器 多网卡 ip 地址 设置
  • 什么是大数据、有什么用以及学习内容
  • ZBrush与Blender雕刻功能哪个更好些?
  • 软件工程技术专业软件开发综合实训室解决方案
  • 链动2+1:高效用户留存与增长的商业模式解析
  • Python 调用手机摄像头
  • E5053A 微波下变频器
  • 记录:uniapp直播的弹幕的样式修改与发送弹幕会自动滚动到底部两个技巧
  • 【流程设计】JAVA系统集成activiti工作流,流程设计器,在线审批,会签,驳回,流程图查看(实际多套系统运用案例分析)
  • Debezium系列之:大规模应用debezium server采集数据库,从每个Debezium Server中导出JMX采集指标
  • QY-SW 浮子水位计 RS485 LCD显示屏
  • 橘子学ES实战操作之管道类型Ingest pipelines的基本使用
  • VScode:前端开发中的常用快捷键和技巧
  • Radmin-同一局域网只需IP就可以控制电脑
  • 【附答案】C/C++ 最常见50道面试题
  • C++音视频开发笔记目录
  • spring项目整合log4j2日志框架(含log4j无法打印出日志的情况,含解决办法)
  • Linux网络:应用层协议http/https
  • transforemr网络理解
  • C++插件管理系统
  • MyBatis 方法重载的陷阱及解决方案
  • STM32 ADC+DMA导致写FLASH失败
  • Python AttributeError: ‘dict_values’ object has no attribute ‘index’
  • 三丰云免费虚拟主机和免费云服务器评测