程序员求职经验分享与学习资料整理平台

网站首页 > 文章精选 正文

Simulink自定义模块实现小端数据转换为大端数据

balukai 2025-07-21 12:39:37 文章精选 4 ℃

在嵌入式软件开发MBD建模时,我们在处理数据有时需要将小端数据转换为大端数据。而嵌入式开发时的数据大多数时的类型都是无符号整数类型,可以使用Simulink的基本库组件构建处理将uint16类型、uint32类型、uint64类型的小端数据转换为大端数据。


1.小端数据转换为大端数据

小端数据是低位字节存储低位数据,高位字节存储高位数据。大端数据低位字节存储高位数据,高位字节存储低位数据。而实际的数据读取都是从低位数据处理的,因此不同大小端类型的处理器要进行大小端数据转换才能获取实际传输的数据的数值。

uin8类型只有一个字节,因此uint8类型的数据不需要进行转换。使用Shift Arithmetic模块(移位模块)、Bitwise AND(模块或与非位运算符模块)、Data Type Conversion模块(数据转换模块)、Mux模块(信号合并模块),可以组合成三个子系统分别实现将uint16、uint32和uint64的小端数据转换为大端数据。

实例1

以uint16的520为例,进行实例转换仿真。

uint16类型的520
十进制 520
二进制 0000 0010 0000 1000
假设地址 0004 0003 0002 0001
此时:低位地址存放低位数据、高位地址存放高位数据是小端数据
转换为大端数据
十进制 520
二进制 0000 1000 0000 0010
假设地址 0004 0003 0002 0001
 此时:低位地址存放高位数据、高位地址存放低位数据是大端数据
转换为小端数据

shift Arithmetic模块参数

Bitwise AND参数


2.封装成子系统或原子子系统

uin16类型的小端数据转换为大端数据子系统

仿真实例

uin32类型的小端数据转换为大端数据子系统

仿真实例


uin64类型的小端数据转换为大端数据子系统

仿真实例

本文内容来源于网络,仅供参考学习,如内容、图片有任何版权问题,请联系处理,24小时内删除。


作 者 | 郭志龙

编 辑 | 郭志龙
校 对 | 郭志龙

最近发表
标签列表