前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[Matlab]使用Simulink进行UDP通讯1

[Matlab]使用Simulink进行UDP通讯1

作者头像
祥知道
发布2020-03-10 15:03:50
2.2K0
发布2020-03-10 15:03:50
举报
文章被收录于专栏:祥的专栏祥的专栏

原创文章,欢迎转载。转载请注明:转载自 祥的博客

原文链接:http://blog.csdn.net/humanking7/article/details/50709771


使用 Matlab 的 Simulink 进行 UDP通讯 需要注意 数据的打包和解包

使用Simulink进行UDP发送

下图所示使用 Simulink 模块搭建的 UDP发送端

pic1
pic1

原理介绍

就是将4个信号【4个数据】用UDP模块发送到10.13.68.220:9090

模块介绍

模块1.数据打包 Pack

其中的 数据打包模块 Pack 用来将要发送的多个数据打包成为一个uint8数据流 【当作unsigned char型数组看待】

Help文档Description

The Pack block is used to convert one or more Simulink signals of varying data types to a single vector of uint8 as required by the Send block.

pic2
pic2

如上图所示,这个模块有两个参数

  1. Input port data types
  2. Byte alignment

第一个参数 Input port data types 是得到输入参数的数据类型【用来确定如何转换为unsigned char型数组】

第二个参数 Byte alignment 是用于数据对齐的,具体用法会在下一篇博客(Matlab使用Simulink进行UDP通讯2)中详细介绍到。

模块2.UDP发送 UDP Send

UDP发送模块用来将打包好的数据,发送到指定的IP的端口中

pic3
pic3

其中有3类参数

  1. Remote addressPort 指定要发送到的IP地址端口
  2. Local Port本机的发送端口
  3. Byte order 是用来指定数据发送的大小端问题
模块3.数据类型转换 Data Type Conversion

这个模块是用来将一个数据类型转换成另一个数据类型

pic4
pic4

我的这个Simulink模型中,信号源1信号源4用了此模块,这是因为模块前的信号是double【Constant发出的信号是double类型的,虽然是65和97两个整数】,而模块后的所需要的数据类型是uint8【Pack模块中设置的是”uint8,double,double,uint8”】

所以需要数据类型转换。

接收情况

Byte alignment = 2 时,接收到的数据如下【多组数据,1列一组】:

代码语言:javascript
复制
    41 00 00 00 00 00 00 00 00 00 7B 14 AE 47 E1 7A 94 3F 61 00
    41 00 39 13 17 36 BB 67 07 40 7B 14 AE 47 E1 7A 94 3F 61 00
    41 00 12 B4 0F 9A 1E 5C 16 40 7B 14 AE 47 E1 7A 94 3F 61 00
    41 00 36 80 8D 0C 0E 05 1F 40 7B 14 AE 47 E1 7A 94 3F 61 00
    41 00 11 E5 19 D9 51 74 22 40 7B 14 AE 47 E1 7A 94 3F 61 00
    41 00 95 B0 36 43 1A C0 23 40 7B 14 AE 47 E1 7A 94 3F 61 00
    41 00 2D FF AC 26 3D 48 23 40 7B 14 AE 47 E1 7A 94 3F 61 00
    41 00 BF 48 F3 85 6F 17 21 40 7B 14 AE 47 E1 7A 94 3F 61 00
    41 00 CA B9 88 56 93 BF 1A 40 7B 14 AE 47 E1 7A 94 3F 61 00
    41 00 90 7A C3 34 9B EC 10 40 7B 14 AE 47 E1 7A 94 3F 61 00
pic5
pic5

下一篇博客将会分析打包模块Pack 的参数 Byte alignmen 对数据发送的影响。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用Simulink进行UDP发送
    • 原理介绍
      • 模块介绍
        • 模块1.数据打包 Pack
        • 模块2.UDP发送 UDP Send
        • 模块3.数据类型转换 Data Type Conversion
      • 接收情况
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档