Simulink 按位控制的控制DO信号变量转换为uint16类型的控制字
1.背景
在之前的博客中,我们介绍了如何将外部输入的uint16类型的控制字转换为按位控制的DO信号量,今天我们在讲一讲如何将系统逻辑处理后生成的多个控制DO信号量封装成uint类型的信号输出并传输后外部系统。
- 输入
- DO控制信号
- 输出
- uint16类型的控制字
2.模型介绍
与之前介绍的模型我们用到的模块基本一致:Shift Arithmetic+Bitwise AND+Data Type Conversion 三个模块来完成转换。
2.1 Data Type Conversion 类型转换
Data Type Conversion 是 Simulink 中用于信号数据类型转换的核心模块,支持以下功能:
数据类型转换:将输入信号从一种数据类型(如 double、uint8、fixdt)转换为指定的输出类型。
信号兼容性处理:解决不同模块对数据类型要求不一致的问题,例如将浮点数转换为定点数或整数。
硬件适配:在嵌入式开发中,用于匹配硬件(如FPGA、DSP)的输入/输出数据格式。
不同之前的是我们本次需要将输入的boolean信号转换成uint16,方便后续包装。
2.2 Shift Arithmetic 位移算数模块& Bitwise AND 位与计算
这两个模块的介绍在之前有过详细的介绍,大家想要了解的话 可以翻翻我之前的博客内容。
这里我就单独说一下本次的配置要点
位移这里还是要根据信号的顺序对应调整参数信息
位运算这里是个重点,我们要根据位的位置去调整这个bin2dec的值来确保能够得到准确的当前位的具体信息。
3.其他
模型的介绍之前有过,这里强调还是位运算的时候的参数配置 。另外大家建立一个后可以构建一个subsystem后封装成为lib方便后续的建模引用。