matlab 连续获得串口值,PC串口连续数据帧接收方法

本文介绍了一种在MATLAB中处理PC串口连续数据帧的方法,特别是面对高速串口通信时如何确保正确接收一帧或多帧数据。通过设定自定义的通信协议,包括帧头、数据个数、指令、数据内容和帧尾,结合队列和搜索策略,实现了在各种接收情况下的数据完整性。
摘要由CSDN通过智能技术生成

PC串口连续数据帧接收方法

[复制链接]

本帖最后由 lb8820265 于 2019-11-30 22:15 编辑

本次分享内容比较硬核,只有在使用串口做高速数据通信时候才会遇到。

串口可以说是目前最常用通信方式,双方约定好波特率,只需要一根线就能够传输数据,极大的简化了接线。串口传输的方式为一个字节一个字节的发送,完整版的串口有流控引脚,可以用来判断是否发送完成。但是简版的串口只有一根接收线或者发送线,也就没有无法知道串口是否发送一帧完成。

a26d678767e8b431ecd7a25f1936bdc5.gif

4.png (31.77 KB, 下载次数: 0)

2019-11-30 22:11 上传

之前我用写过两篇通信协议的文章,采用自己定制的通信协议进行数据的传输。

帖子里面介绍使用自己定义的协议,长时间间隔的传输一帧数据,例如每隔500ms发送一次数据,这样可以有效保障接收的数据为一帧或小于一帧,因为电脑有足够的时间来处理串口数据。但是如果想要一秒内传输更多的数据帧,就要减少一帧数据的间隔时间,那么就会面临许多问题,在PC中串口的数据的接收中断并不是理想的一个字节一个中断,而且就算设置了接收数量触发中断,也是不可靠的,这也许和Windows操作系统是非实时有关。

举个例子,一帧数据为100个字节,下位机连续或者短间隔连续发送,在PC上位机上无论设置为什么触发条件,每次触发接收都会有以下的

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值