一种基于rs422/485串口通信的通用数据解码方法

文档序号:10534775阅读:2379来源:国知局
一种基于rs422/485串口通信的通用数据解码方法
【专利摘要】一种基于RS422/485串口通信的通用数据解码方法,根据RS422/485串口数字通信协议,提取需要解析的实际物理量总数,并对每个物理量逐个进行解码;同时按照提取的物理量建立通讯结构体,通讯结构体包含序号、字节数、符号位及分辨率信息;而后接收RS422/485串口缓存中的字符型原码,并将接收后的原码数据按照RS422/485串口数字通信协议查找出同步字、字节长度、命令ID号后,再按照通讯结构体对接收的RS422/485串口缓存中的字符型原码物理量进行信息提取后转换解码。本发明通过构建通讯结构体以实现RS422/485串口通信数据解码,灵活、通用、扩展性好、可靠性高。
【专利说明】
一种基于RS422/485串口通信的通用数据解码方法
技术领域
[0001]本发明涉及通信数据解码技术领域,尤其涉及一种基于RS422/485串口通信的通用数据解码方法。
【背景技术】
[0002]目前串口通讯中,RS422/485通讯信号的抗干扰能力较强,广泛应用于近距离数字系统之间的数据传输,如数字通信系统中的上位机和下位机之间、控制系统中各分系统之间的信息传输;在数据接收过程中通常需要按照数字接口通讯协议对通信数据的物理量进行解析处理,一般可按照数据通讯协议通过直接移位的方法一一进行实现;然而该种方法虽然容易理解,但是不能灵活通用,数字接口通讯协议一旦更改一处,将导致整个数字接口通讯协议代码重新更改,进而造成实现方式冗长繁琐、不易更改而且实现起来容易出错。

【发明内容】

[0003]本发明所解决的技术问题在于提供一种基于RS422/485串口通信的通用数据解码方法,以解决上述【背景技术】中的缺点。
[0004]本发明所解决的技术问题采用以下技术方案来实现:
一种基于RS422/485串口通信的通用数据解码方法,具体步骤如下:
1)通过程序入口进入RS422/485串口,根据RS422/485串口数字通信协议,提取需要解析的实际物理量总数,物理量包括所在邮包中的序号、传输字节数、数据传输类型、数据类型及数据比例尺信息,并对每个物理量逐个进行解码;
2)按照步骤I)中提取的物理量建立用于判断当前物理量字节长度的通讯结构体,通讯结构体包含序号、字节数、符号位及分辨率信息;
3)接收RS422/485串口缓存中的字符型原码,并将接收后的原码数据按照RS422/485串口数字通信协议查找出同步字、字节长度、命令ID号后,再按照通讯结构体中的序号、字节数、符号位及分辨率对接收的RS422/485串口缓存中的字符型原码物理量进行信息提取后转换解码,转换标准为:按照需要解析的物理字节长度,将输入的字符型原码数据按照先低位后高位的原则组成一个数字量;
4)对步骤3)中组成的数字量进行判别,若该数字量为有符号且当前物理量为有符号,则将该数字量转换为有符号型,否则不进行转换;
5)接步骤4),将转换为有符号型的该数字量乘以当前物理量的数据比例尺,转换后输出当前物理量;
6)重复执行步骤2)至步骤5),直至全部物理量解析完毕后退出程序出口。
[0005]在本发明中,步骤2)中,可根据不同通信协议要求,设置不同的通讯结构体作为解码函数的输入形参,使得数据解码更加地灵活、通用。
[0006]在本发明中,步骤4)中,对步骤3)中组成的数字量判别标准是将该数字量与当前物理量的符号特性进行对比。
[0007]有益效果:
1)本发明可根据不同的通信协议要求,设置不同的通讯结构体作为解码函数的输入形参,使得数据解码更加地灵活、通用;
2)本发明解码方法封装与解码函数中,使得解码方法通用、可靠;
3)本发明解码方法扩展性好,并且工程上实施方便、简单易行、可读性强、可靠性高,有效降低了数字系统或通信设备成本。
【附图说明】
[0008]图1为本发明的较佳实施例的流程图。
【具体实施方式】
[0009]为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体实施例,进一步阐述本发明。
[0010]一种基于RS422/485串口通信的通用数据解码方法,具体步骤如下:
1)通过程序入口进入RS422/485串口,根据RS422/485串口数字通信协议,提取需要解析的实际物理量总数i,物理量包括所在邮包中的序号、传输字节数、数据传输类型、数据类型及数据比例尺,并对每个物理量需逐个进行解码;
2)按照步骤I)中提取的物理量建立通讯结构体,通讯结构体包含序号、字节数、符号位及分辨率信息,用于判断当前物理量的字节长度;
3)接收RS422/485串口缓存中的字符型原码,并将接收后的原码数据按照RS422/485串口数字通信协议查找出同步字、字节长度、命令ID号后,按照通讯结构体中的序号、字节数、符号位及分辨率对接收的RS422/485串口缓存中的字符型原码物理量进行信息提取后转换解码,转换标准为:按照需要解析的物理字节长度,将输入的字符型原码数据按照先低位后高位的原则转换为一个数字量,通过判别该数字量以确定是否将该数字量转换为有符号型,具体操作如下:
①实际物理量长度为I时,从RS422/485串口缓存中读取一个字节组合成一个数字量;
②实际物理量长度为2时,从RS422/485串口缓存中读取两个字节按照先低位后高位的原则组合成一个数字量;
③实际物理量长度为3时,从RS422/485串口缓存中读取三个字节按照先低位后高位的原则组合成一个数字量;
④实际物理量长度为4时,从RS422/485串口缓存中读取四个字节按照先低位后高位的原则组合成一个数字量;
4)对步骤3)中组成的数字量进行判别,将该数字量与当前物理量的符号特性进行对比,若该数字量为有符号且当前物理量为有符号,最高位为I,则将该数字量转换为有符号型,否则不进行转换;
5)接步骤4),将转换为有符号型的该数字量乘以当前物理量的数据比例尺,转换后输出当前物理量;
6)重复执行步骤2)至步骤5),直至全部物理量解析完毕后退出程序出口。
[0011]在本实施例中,步骤2)中可根据不同通信协议要求,设置不同的通讯结构体作为解码函数的输入形参,使得数据解码更加地灵活、通用。
[0012]以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
【主权项】
1.一种基于RS422/485串口通信的通用数据解码方法,其特征在于,具体步骤如下: 1)通过程序入口进入RS422/485串口,根据RS422/485串口数字通信协议,提取需要解析的实际物理量总数,物理量包括所在邮包中的序号、传输字节数、数据传输类型、数据类型及数据比例尺信息,并对每个物理量逐个进行解码; 2)按照步骤I)中提取的物理量建立用于判断当前物理量字节长度的通讯结构体,通讯结构体包含序号、字节数、符号位及分辨率信息; 3)接收RS422/485串口缓存中的字符型原码,并将接收后的原码数据按照RS422/485串口数字通信协议查找出同步字、字节长度、命令ID号后,再按照通讯结构体中的序号、字节数、符号位及分辨率对接收的RS422/485串口缓存中的字符型原码物理量进行信息提取后转换解码,转换标准为:按照需要解析的物理字节长度,将输入的字符型原码数据按照先低位后高位的原则组成一个数字量; 4)对步骤3)中组成的数字量进行判别,若该数字量为有符号且当前物理量为有符号,则将该数字量转换为有符号型,否则不进行转换; 5)接步骤4),将转换为有符号型的该数字量乘以当前物理量的数据比例尺,转换后输出当前物理量; 6)重复执行步骤2)至步骤5),直至全部物理量解析完毕后退出程序出口。2.根据权利要求1所述的一种基于RS422/485串口通信的通用数据解码方法,其特征在于,步骤2)中,可根据不同通信协议要求,设置不同的通讯结构体作为解码函数的输入形参。3.根据权利要求1所述的一种基于RS422/485串口通信的通用数据解码方法,其特征在于,步骤4)中,对步骤3)中组成的数字量判别标准是将该数字量与当前物理量的符号特性进行对比。
【文档编号】G06F13/42GK105893314SQ201610409563
【公开日】2016年8月24日
【申请日】2016年6月13日
【发明人】芦勤桑, 廖峰, 江海雷, 夏云凡, 姜芳芳, 吴克松, 张望成, 周平平, 张俊, 罗海鹰, 潘新平, 周晓波, 曹泽明, 樊金明, 张洪宇
【申请人】江西洪都航空工业集团有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1