当前位置:主页 > 科技论文 > 计算机论文 >

一种基于单片机串口通信的数据缓存处理方法

发布时间:2021-11-19 07:09
  文章介绍了一种基于单片机串口通信的数据缓存处理方法。规定了一种灵活、高效、兼容的串口通信协议,并采用循环存储的缓存处理方法。按照该方法,定义一个固定长度的数组,用来缓存串口接收到的数据。当缓存数组空间已满,新的串口数据将从数组首地址进行覆盖存储。单片机MCU按照规定的通信协议对缓存数据进行解析,当解析到缓存数组的最后一个数据,将返回到数组首地址继续解析。这种通信协议,支持加密和兼容处理,循环缓存方式保证了缓存空间利用率百分之百,避免了串口数据处理紊乱和丢包的情况,能够满足当前越来越复杂的单片机串口功能的需求。 

【文章来源】:信息通信. 2020,(04)

【文章页数】:2 页

【部分图文】:

一种基于单片机串口通信的数据缓存处理方法


通信协议格式

示意图,缓存,指针,示意图


首先,定义一个固定长度的数组,该数组的长度应能保证可存储多条通信协议。以本文为例,设置缓存数组长度为256个字节。定义读指针rd和写指针rw,其中,读指针rd指向MCU正在解析的字节在数组中的地址,写指针rw指向串口UART最新接收的数据在数组中的地址。当MCU解析完当前数据后,解析下一个字节时,rd递增;当UART接收到新的数据时,rw递增。当指针地址偏移量达到256个字节,将相应指针重新指向数组首地址。示意图如图2所示。指针rd和rw在本文方法中用来表示串口数据存储和解析的进度,一般rd不大于rw,当发生rd或rw递增时,需要实时判断指针是否溢出,并及时清零。指针rw溢出未清零会导致接收数据丢包,而指针rd溢出未清零会导致协议数据解析不完整。指针rw溢出判断相对简单,当rw递增时,和数组长度比对即可;指针rd溢出判断需要结合通信协议格式、解析过程及数组长度来判断。

【参考文献】:
期刊论文
[1]计算机单片机通信系统软硬件结构设计[J]. 董国钢.  辽宁经济职业技术学院.辽宁经济管理干部学院学报. 2020(01)
[2]51单片机串口应用[J]. 张幼麟.  内江科技. 2019(10)
[3]一种高可靠性串口通信协议的设计[J]. 李林.  现代导航. 2019(04)
[4]基于C#的串口通信系统的设计和实现[J]. 刘马飞.  物联网技术. 2019(06)
[5]基于通信协议的数据解析研究与实现[J]. 闫超.  软件. 2019(06)
[6]异步串行通信协议的设计与实现[J]. 贾昊,张烨,崔忠政,徐曌,杨扬,徐佳.  电子制作. 2018(20)
[7]单片机的数据串口通信研究[J]. 李刘丹.  信息通信. 2015(10)
[8]一种基于串口通信的高可靠性应用协议设计[J]. 王建敏,崔俊锋,牛道恒.  铁路通信信号工程技术. 2015(01)
[9]单片机实现数据的串口发送与接收[J]. 程阳.  电子技术与软件工程. 2014(09)
[10]一种基于状态机的串口通信协议的设计与实现[J]. 李莹,贾彬.  电子设计工程. 2012(07)



本文编号:3504538

资料下载
论文发表

本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/3504538.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户220cd***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com