【技术实现步骤摘要】
一种从串口接收数据、处理数据帧的方法
本专利技术涉及数据传输
,尤其涉及一种从串口接收数据、处理数据帧的方法。
技术介绍
在物联网架构中,常用的架构是通信模块+单片机的方式,之间通过串口进行数据通信。双方从串口接收数据时,当前一般都采用直接接收的方式,但在通信数据量大或较频繁时,一是会丢失有效数据,二是会收不到完整的、有效的数据帧。因此,现有技术存在缺陷,需要改进。
技术实现思路
本专利技术要解决的技术问题是:提供一种从串口接收数据、处理数据帧的方法,保证在串口通信时,特别是数据量大,通信频繁的情况下,能提高接收到完整数据帧的能力,能降低丢失有效数据的机率。本专利技术的技术方案如下:提供一种从串口接收数据、处理数据帧的方法,包括:以下步骤。S1:串口初始化,接收端创建串口接收任务、串口读取任务。S2:接收端从串口接收数据后,执行串口中断处理,串口中断处理时,接收端将串口接收的数据放在消息节点中,将消息节点的数据发送到接收消息队列中。消息节点为存储单元,消息节点的数据为 ...
【技术保护点】
1.一种从串口接收数据、处理数据帧的方法,其特征在于,包括:以下步骤:/nS1:串口初始化,接收端创建串口接收任务、串口读取任务;/nS2:接收端从串口接收数据后,执行串口中断处理,串口中断处理时,接收端将串口接收的数据放在消息节点中,并将消息节点的数据发送到接收消息队列中;/nS3:接收端执行串口接收任务,即不断从接收消息队列中获取消息节点的数据,然后从消息节点中获取到串口接收到的数据,并将其添加至环形队列中;/nS4:接收端执行串口读取任务,即从环形队列中读取串口接收到的数据;并对从环形队列中读取的数据进行组帧;/n读取串口接收到的数据的方式为:周期性读取,每隔5ms- ...
【技术特征摘要】
1.一种从串口接收数据、处理数据帧的方法,其特征在于,包括:以下步骤:
S1:串口初始化,接收端创建串口接收任务、串口读取任务;
S2:接收端从串口接收数据后,执行串口中断处理,串口中断处理时,接收端将串口接收的数据放在消息节点中,并将消息节点的数据发送到接收消息队列中;
S3:接收端执行串口接收任务,即不断从接收消息队列中获取消息节点的数据,然后从消息节点中获取到串口接收到的数据,并将其添加至环形队列中;
S4:接收端执行串口读取任务,即从环形队列中读取串口接收到的数据;并对从环形队列中读取的数据进行组帧;
读取串口接收到的数据的方式为:周期性读取,每隔5ms-500ms去环形队列中取一次;或者,读取串口接收到的数据的方式为:在执行串口接收任务中,在成功将数据加入环形队列后,通过释放信号量的方式通知在等待该信号量的串口读取任务,到环形队列中去取数据。
2.根据权利要求1所述的一种从串口接收数据、处理数据帧的方法,其特征在于,帧的格式包括:帧头、长度、数据、校验和,所述组帧的方法为:直接从环形队列中读取相关字段,进行组帧;具体包括以下步骤:
S11:从环形队列中读取帧头;
S12:判断帧头是否正确,若正确,进入步骤S13,若不正确,返回步骤S11;
S13:从环形队列中读取长度;
S14:判断长度是否正确,若正确,进入步骤S15,若不正确,返回步骤S11;
S15:从环形队列中读取数据、校验和;
S16:判断校验和是否正确,若正...
【专利技术属性】
技术研发人员:王文科,
申请(专利权)人:深圳市集贤科技有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。