【技术实现步骤摘要】
一种串口字节流数据接收处理方法和系统
[0001]本专利技术涉及嵌入式开发领域,特别涉及一种串口字节流数据接收处理方法和系统
。
技术介绍
[0002]串口字节流数据的发送和接收是嵌入式开发过程中的重要内容
。
现有技术在实际工程项目中,串口字节流数据接收往往采用接收中断方式,逐个字节接收串口字节流数据,预先规定数据包的起始和结束,根据起始字节和结束字节来判断数据帧是否接收完成,然后调用数据处理程序对接收到的串口字节流数据进行处理
。
[0003]上述接收过程在实际工程中需要在串口接收中断中,花费时间来判断每一个字节,从而确定数据包的起始字节和结束字节
。
这势必会影响串口字节流数据的接收效率,在较快波特率的传输过程中甚至可能引起丢包
。
因为单个字节或少数字节表示数据包的起始或者结束,误判的概率较高
。
技术实现思路
[0004]为了克服现有技术中存在的不足,本专利技术提供了一种串口字节流数据接收处理方法和系统,以解决串口字节流 ...
【技术保护点】
【技术特征摘要】
1.
一种串口字节流数据接收处理方法,其特征在于,包括以下步骤:步骤1:将环形缓冲区连接到串口字节流数据输出端,当串口接收到字节流数据时,将所述字节流数据按照预定义数据帧格式存储在环形缓冲区中;步骤2:根据所述环形缓冲区的当前数据长度,从所述环形缓冲区中读取串口字节流数据,按照预定义数据帧格式校验并解析所读取的数据,当数据帧校验合格时,对所述环形缓冲区执行出栈操作
。2.
根据权利要求1所述的串口字节流数据接收处理方法,其特征在于,所述预定义数据帧格式包括:数据头,占位为1字节,采用
0x7E
或者任意指定字符;数据帧长度,占位为2字节;数据内容
CRC
,占位为2字节,为数据内容部分计算所得的
16
位
CRC
校验码;数据内容,为实际的数据内容传输负载
。3.
根据权利要求2所述的串口字节流数据接收处理方法,其特征在于,所述根据所述环形缓冲区的当前数据长度,从所述环形缓冲区中读取串口字节流数据,进一步包括:步骤
2.1
:判断所述环形缓冲区中数据长度是否大于5字节,其中5字节长度包括1字节数据头
、2
字节数据帧长度和2字节数据内容
CRC
,若数据长度大于5字节,进入下一步处理
。4.
根据权利要求3所述的串口字节流数据接收处理方法,其特征在于,所述从所述环形缓冲区中读取串口字节流数据,按照预定义数据帧格式校验并解析所读取的数据,当数据帧校验合格时,对所述环形缓冲区执行出栈操作,还包括:步骤
2.2
:从所述环形缓冲区中读取一个字节,判断与帧头是否相符;如果与帧头相符,则进入步骤
2.3
进行处理
。
如果与帧头不相符:出栈一个字节,跳转到步骤
2.1
;步骤
2.3
:从所述环形缓冲区中读取5个字节长度,按照所述预定义数据帧格式解析帧长度,比较所述环形缓冲区中的数据长度是否大于等于所述帧长度;如果大于或等于帧长度,则进行步骤
2.4
的处理;如果小于帧长度,转到步骤
2.1
;步骤
2.4
:按照所述帧长度从所述环形缓冲区读取完整数据帧,并通过
CRC
进行完整性校验,如果校验通过,则按照所述帧长度对所述环形缓冲区进行数据出栈操作,此时将所述环形缓冲区的剩余空间增加帧长度的大小,用来存储新的数据;对接收到的帧数据进行解析后,跳转到步骤
2.1
,如果校验不通过,则出栈一个字节,跳转到步骤
2.1。5.
根据权利要求4所述的串口字节流数据接收处理方法,其特征在于,在读取数据时,不改变所述环形缓冲区中的数据及变量;在出栈数据时,改变所述环形缓冲区中数据存储的相关变量,来释放存储空间
。6.
一种利用权利要求1‑5任一项权利要求所述的串口字节流数据接收处理方...
【专利技术属性】
技术研发人员:宋佳民,刘涛,郑刚,刘松,安奇,李宁,白泽岩,
申请(专利权)人:北京四方继保自动化股份有限公司北京四方继保工程技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。