CN112486885A - 数据帧的生成方法、存储介质及计算机设备 - Google Patents
数据帧的生成方法、存储介质及计算机设备 Download PDFInfo
- Publication number
- CN112486885A CN112486885A CN202011418173.7A CN202011418173A CN112486885A CN 112486885 A CN112486885 A CN 112486885A CN 202011418173 A CN202011418173 A CN 202011418173A CN 112486885 A CN112486885 A CN 112486885A
- Authority
- CN
- China
- Prior art keywords
- data
- coded
- application data
- coding
- data frame
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000004590 computer program Methods 0.000 claims description 20
- 238000007689 inspection Methods 0.000 claims description 14
- 238000012795 verification Methods 0.000 claims description 7
- 230000006854 communication Effects 0.000 abstract description 37
- 238000004891 communication Methods 0.000 abstract description 26
- 238000013519 translation Methods 0.000 description 9
- 239000003999 initiator Substances 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010411 cooking Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种数据帧的生成方法、存储介质及计算机设备,涉及智能控制领域,主要在于够保证起始符在生成的数据帧中唯一存在,从而通过该起始符能够在通信过程中对从串口接收的数据帧进行准确定界,提取数据帧,进高了通信效率。其中方法包括:获取应用数据及其对应的起始符;将所述应用数据中的字节数据进行编码转化得到编码后的应用数据;判断转化后的数据在所述编码后的应用数据中的第一位置信息;根据所述起始符、所述第一位置信息和所述编码后的应用数据,生成所述应用数据对应的数据帧。本发明适用于数据帧的生成。
Description
技术领域
本发明涉及工业控制技术领域,尤其是涉及一种数据帧的生成方法、存储介质及计算机设备。
背景技术
工业控制***中设备间通信通常采用串口的通讯方式,并制定串口通信必要的通讯协议,通讯协议的合理与否,决定了整个控制***的稳定性和可靠性。
目前,通常通过在应用数据的前面添加起始符的方式来生成数据帧,以便在通信过程中根据该起始符解析数据帧。然而,针对这种生成的数据帧的方式,如果在应用数据中存在与该起始符相同的数据,仅根据该起始符无法对从串口接收的数据帧进行准确定界,可能会把应用数据中与起始符相同的数据当做起始符对数据帧进行解析,从而导致数据帧解析错误,无法获得准确的应用数据,影响通信效率。
发明内容
本发明提供了一种数据帧的生成方法、存储介质及计算机设备,主要在于能够保证起始符在生成的数据帧中唯一存在,从而通过该起始符能够在通信过程中对从串口接收的数据帧进行准确定界,提取数据帧,进而提高了通信效率。
根据本发明的第一方面,提供一种数据帧的生成方法,包括:
获取应用数据及其对应的起始符;
将所述应用数据中的字节数据进行编码转化得到编码后的应用数据;
判断转化后的数据在所述编码后的应用数据中的第一位置信息;
根据所述起始符、所述第一位置信息和所述编码后的应用数据,生成所述应用数据对应的数据帧。
可选地,所述根据所述起始符、所述第一位置信息和所述编码后的应用数据,生成所述应用数据对应的数据帧,包括:
根据所述第一位置信息,生成所述编码后的应用数据对应的编码控制字;
根据所述起始符、所述编码控制字和所述编码后的应用数据,生成所述应用数据对应的数据帧。
可选地,所述根据所述第一位置信息,生成所述编码后的应用数据对应的编码控制字,包括:
判断所述编码后的应用数据中转化后的数据对应的数量信息;
根据所述数量信息,生成所述编码后的应用数据对应的编码数量;
根据所述第一位置信息,生成所述编码后的应用数据对应的编码位置数据;
根据所述编码位置数据和所述编码数量,生成所述编码后的应用数据对应的编码控制字。
可选地,所述根据所述第一位置信息,生成所述编码后的应用数据对应的编码位置数据,包括:
判断所述编码后的应用数据中与所述转化后的数据相同的原数据及其对应的第二位置信息;
根据所述第一位置信息和所述第二位置信息,生成所述编码后的应用数据对应的编码位置数据。
可选地,所述根据所述编码位置数据和所述编码数量,生成所述编码后的应用数据对应的编码控制字,包括:
通过将编码位置数据中的字节数据转化为与所述起始符不同的数据对所述编码位置数据进行编码,得到编码后的编码位置数据;
判断转化后的数据在所述编码后的编码位置数据中的第二位置信息;根据所述第二位置信息,生成所述编码后的编码位置数据对应的第一编码标记数据;
获取所述应用数据对应的校验码;通过将所述校验码中的各字节数据转化为与所述起始符不同的数据对所述校验码进行编码,得到编码后的校验码;
判断转化后的数据在所述编码后的校验码中的第三位置信息;根据所述第三位置信息,生成所述编码后的校验码对应的第二编码标记数据;
根据所述第一编码标记数据、所述第二编码标记数据、所述编码数量和所述编码后的编码位置数据,生成所述编码后的应用数据对应的编码控制字。
根据本发明的第二个方面,提供一种数据帧的解析方法,包括:
接收源数据;
通过读取起始符从源数据中提取数据帧;
对所述数据帧中编码后的应用数据进行解码,解析所述数据帧中的应用数据。
可选地,所述对所述数据帧中编码后的应用数据进行解码,解析所述数据帧中的应用数据,包括:
读取所述数据帧中的编码控制字,并根据所述编码控制字中的第二编码标记还原所述数据帧中的校验码;
根据所述校验码判断所述数据帧是否通过检验;
若所述数据帧通过检验,则对所述数据帧中编码后的应用数据进行解码,还原所述数据帧中的应用数据;
若所述数据帧未通过校验,则丢弃所述数据帧。
可选地,所述对所述数据帧中编码后的应用数据进行解码,还原所述数据帧中的应用数据,包括:
读取所述编码控制字中的第一编码标记数据,并根据所述第一编码标记数据对所述编码控制字中的编码后的编码位置数据进行解码,还原所述编码控制字中的编码位置数据;
根据所述编码位置数据,对所述数据帧中编码后的应用数据进行解码,还原所述数据帧中的应用数据。
可选地,在所述对所述数据帧中编码后的应用数据进行解码,还原所述数据帧中的应用数据之前,所述方法还包括:
读取所述编码控制字中的编码数量,并根据所述编码数量,判断所述数据帧中是否存在编码后的应用数据;
如果存在编码后的应用数据,则对所述编码后的应用数据进行解码,还原所述数据帧中的应用数据;
如果不存在编码后的应用数据,则直接读取所述数据帧中的应用数据。
根据本发明的第三个方面,提供一种数据帧的生成装置,包括:
获取单元,用于获取应用数据及其对应的起始符;
编码单元,用于将所述应用数据中的字节数据进行编码转化得到编码后的应用数据;
判断单元,用于判断转化后的数据在所述编码后的应用数据中的第一位置信息;
生成单元,用于根据所述起始符、所述第一位置信息和所述编码后的应用数据,生成所述应用数据对应的数据帧。
可选地,所述生成单元,包括:第一生成模块和第二生成模块,
所述第一生成模块,用于根据所述第一位置信息,生成所述编码后的应用数据对应的编码控制字;
所述第二生成模块,用于根据所述起始符、所述编码控制字和所述编码后的应用数据,生成所述应用数据对应的数据帧。
可选地,所述第一生成模块,包括:判断子模块和生成子模块,
所述判断子模块,用于判断所述编码后的应用数据中转化后的数据对应的数量信息;
所述生成子模块,用于根据所述数量信息,生成所述编码后的应用数据对应的编码数量;
所述生成子模块,还用于根据所述第一位置信息,生成所述编码后的应用数据对应的编码位置数据;
所述生成子模块,还用于根据所述编码位置数据和所述编码数量,生成所述编码后的应用数据对应的编码控制字。
可选地,所述生成子模块,具体用于判断所述编码后的应用数据中与所述转化后的数据相同的原数据及其对应的第二位置信息;根据所述第一位置信息和所述第二位置信息,生成所述编码后的应用数据对应的编码位置数据。
可选地,所述生成子模块,还具体用于通过将编码位置数据中的字节数据转化为与所述起始符不同的数据对所述编码位置数据进行编码,得到编码后的编码位置数据;判断转化后的数据在所述编码后的编码位置数据中的第二位置信息;根据所述第二位置信息,生成所述编码后的编码位置数据对应的第一编码标记数据;获取所述应用数据对应的校验码;通过将所述校验码中的各字节数据转化为与所述起始符不同的数据对所述校验码进行编码,得到编码后的校验码;判断转化后的数据在所述编码后的校验码中的第三位置信息;根据所述第三位置信息,生成所述编码后的校验码对应的第二编码标记数据;根据所述第一编码标记数据、所述第二编码标记数据、所述编码数量和所述编码后的编码位置数据,生成所述编码后的应用数据对应的编码控制字。
根据本发明的第四个方面,提供一种数据帧的解析装置,包括:
接收单元,用于接收源数据;
读取单元,用于通过读取起始符从源数据中提取数据帧;
解码单元,用于对所述数据帧中编码后的应用数据进行解码,解析所述数据帧中的应用数据。
可选地,所述解码单元,包括:还原模块、判断模块、解码模块和丢弃模块,
所述还原模块,用于读取所述数据帧中的编码控制字,并根据所述编码控制字中的第二编码标记还原所述数据帧中的校验码;
所述判断模块,用于根据所述校验码判断所述数据帧是否通过检验;
所述解码模块,用于若所述数据帧通过检验,则对所述数据帧中编码后的应用数据进行解码,还原所述数据帧中的应用数据;
所述丢弃模块,用于若所述数据帧未通过校验,则丢弃所述数据帧。
可选地,所述解码模块,包括:第一解码子模块和第二解码子模块,
第一解码子模块,用于读取所述编码控制字中的第一编码标记数据,并根据所述第一编码标记数据对所述编码控制字中的编码后的编码位置数据进行解码,还原所述编码控制字中的编码位置数据;
第二解码子模块,用于根据所述编码位置数据,对所述数据帧中编码后的应用数据进行解码,还原所述数据帧中的应用数据。
可选地,所述解码单元,还包括:读取模块,
所述判断模块,还用于读取所述编码控制字中的编码数量,并根据所述编码数量,判断所述数据帧中是否存在编码后的应用数据;
所述解码模块,还用于如果存在编码后的应用数据,则对所述编码后的应用数据进行解码,还原所述数据帧中的应用数据;
所述读取模块,用于如果不存在编码后的应用数据,则直接读取所述数据帧中的应用数据。
根据本发明的第五个方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:
获取应用数据及其对应的起始符;
将所述应用数据中的字节数据进行编码转化得到编码后的应用数据;
判断转化后的数据在所述编码后的应用数据中的第一位置信息;
根据所述起始符、所述第一位置信息和所述编码后的应用数据,生成所述应用数据对应的数据帧。
根据本发明的第六个方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:
接收源数据;
通过读取起始符从源数据中提取数据帧;
对所述数据帧中编码后的应用数据进行解码,解析所述数据帧中的应用数据。
根据本发明的第七个方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:
获取应用数据及其对应的起始符;
将所述应用数据中的字节数据进行编码转化得到编码后的应用数据;
判断转化后的数据在所述编码后的应用数据中的第一位置信息;
根据所述起始符、所述第一位置信息和所述编码后的应用数据,生成所述应用数据对应的数据帧。
根据本发明的第八个方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:
接收源数据;
通过读取起始符从源数据中提取数据帧;
对所述数据帧中编码后的应用数据进行解码,解析所述数据帧中的应用数据。
本发明提供了一种数据帧的生成方法、存储介质及计算机设备,与现有技术生成的数据帧中不只存在一个起始符的方式相比,本发明能够获取应用数据及其对应的起始符;并将所述应用数据中的字节数据进行编码转化得到编码后的应用数据;与此同时,判断转化后的数据在所述编码后的应用数据中的第一位置信息;最终根据所述起始符、所述第一位置信息和所述编码后的应用数据,生成所述应用数据对应的数据帧,由此通过将应用数据中的各字节数据转化为与起始符不同的数据对应用数据进行编码,并根据编码后的应用数据、第一位置信息和起始符生成数据帧,能够保证起始符在生成的数据帧中唯一存在,从而通过该起始符能够在通信过程中对从串口接收的数据帧进行准确定界,提取数据帧,进而提高了通信效率。
具体实施方式
下文中将结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
如背景技术,如果在应用数据中存在与该起始符相同的数据,仅根据该起始符无法对从串口接收的数据帧进行准确定界,可能会把应用数据中与起始符相同的数据当做起始符对数据帧进行解析,从而导致数据帧解析错误,无法获得准确的应用数据,影响通信效率。
为了解决上述问题,本发明实施例提供了一种数据帧的生成方法,所述方法包括:
101、获取应用数据及其对应的起始符。
其中,应用数据为串口通信过程中通信双方传输的数据,为了能够通过串口传输该应用数据,需要根据串口通信协议将通信双方需要传输的应用数据组装成数据帧进行传输,该应用数据中通常由多个字节数据组成,如应用数据的长度为64字节,起始符用于在串口通信过程中对数据帧进行定界,通过该起始符能够从数据源中提取出来数据帧,起始符位于数据帧的首位,通常占用一个字节长度,也可以占用多个字节长度,本发明实施例不做具体限定,如数据帧的起始符为0xFB,如果串口通信的源数据中出现0xFB,说明此处为数据帧的起始位置,源数据中下一个0xFB出现的位置为该数据帧的终止位置,同时为下一个数据帧的起始位置,从而根据该起始符能够从串口通信的源数据中提取数据帧,以便根据提取的数据帧获取应用数据。为了克服现有技术中生成的数据帧可能会存在与起始符相同的字节数据,进而导致无法对数据帧进行准确定界,影响通信效率的问题,本发明实施例通过将应用数据中的各字节数据转化为与起始符不同的数据对应用数据进行编码,并根据编码后的应用数据生成数据帧,能够保证起始符在生成的数据帧中唯一存在,从而通过该起始符能够在通信过程中对从串口接收的数据帧进行准确定界,提取数据帧,提高通信效率。本发明实施例主要适用于数据帧的生成,本发明实施例的执行主体为可以生成数据帧的装置或者设备,具体可以设置在客户端或者服务器一侧。
对于本发明实施例,在生成数据帧的过程中,首选获取待传输的应用数据及其对应的起始符,如待传输的应用数据为0x61 0xCC 0xFB 0x20 0x130x00 0x00 0x00 0x500x56 0x2C 0xDE 0xA8 0x00 0x00 0xFB 0x00 0x00 0xFD0x00 0xBC 0x01 0x98 0x000x22 0x3A 0x35 0x30 0x30 0x7D FB 0x7D 0xFD,选取的起始符为0xFB,需要说明的是,本发明实施例中起始符可以任意进行选取或者设定,出于节省数据空间的考虑通常将起始符的长度设定为一个字节,在数据帧的组成格式中首先是起始符,之后是应用数据的长度,接着是应用数据,例如,设定起始符为一个字节长度的0xFB,应用数据的长度为64字节。
102、将所述应用数据中的字节数据进行编码转化得到编码后的应用数据。
对于本发明实施例,为了确保起始符在生成的数据帧中唯一存在,需要将应用数据中的各字节数据转化为与起始符不同的数据,进而对应用数据进行编码,得到编码后的应用数据,具体地,如果应用数据的各字节数据中存在与起始符相同的目标字节数据,则需要对该目标字节数据进行转换,将其转换成与起始符不同的数据,得到目标数据数据对应的转化后的数据,如果应用数据中存在多个目标字节数据,则多个目标字节数据对应的转化后的数据可以相同,也可以不同,本发明实施例不做具体限定,以转化后的数据相同为例,若设定起始符为0xFB,应用数据为0x61 0xCC 0xFB 0x20 0x13 0x00 0x00 0x00 0x500x56 0x2C 0xFB,可知应用数据中存在两个字节数据与起始符相同,因此需要对其进行转换,设定将与起始符相同的各字节数据转化为0xFD,得到编码后的应用数据为0x61 0xCC0xFD 0x20 0x13 0x00 0x00 0x00 0x50 0x56 0x2C 0xFD,由此得到编码后的应用数据中各字节数据与起始符均不相同,进而能够保证根据该编码后的应用数据生成的数据帧中存在唯一的起始符,通过该起始符能够对从串口接收的数据帧进行准确定界,提取数据帧,从而提高了通信效率。
103、判断转化后的数据在所述编码后的应用数据中的第一位置信息。
对于本发明实施例,为了使接收方在接收到数据帧后能够对编码后的应用数据进行还原,在对应用数据进行编码的过程中,需要记录转化后的应用数据在编码后的应用数据中的第一位置信息,以便根据第一位置信息,能够知道编码后的应用数据中哪个字节数据是转化来的,并非是原数据,进而通过对其还原能够对编码后的应用数进行解码处理,复原应用数据,例如,设定起始符为0xFB,应用数据为0x61 0xCC 0xFB 0x20 0x13 0x00 0x000x00 0x50 0x56 0x2C 0xFB,对该应用数据进行编码处理,得到0x61 0xCC 0xFD 0x200x13 0x00 0x00 0x00 0x50 0x56 0x2C 0xFD,其中,0xFD为转化后的数据,记录0xFD在转化后的应用数据中的第一位置信息分别为第一字节和第三字节,即转化后的应用数据中的第一字节和第三字节的“0xFD”是转化得来的,并非是原数据,由此将根据该转化后的应用数据生成的数据帧发送给接收方后,接收方根据该第一位置信息,能够对数据帧中编码后的应用数据进行还原,得到原始的应用数据内容。
104、根据所述起始符、所述第一位置信息和所述编码后的应用数据,生成所述应用数据对应的数据帧。
其中,该数据帧中包括起始符、编码后的应用数据,以及记录的第一位置信息,在数据帧的组成格式中首先是起始符、之后是应用数据的长度,接着是编码后的应用数据,最后是记录编码位置的第一位置信息,对于本发明实施例,针对生成数据帧的过程,作为一种可选实施例,步骤104具体包括:根据所述第一位置信息,生成所述编码后的应用数据对应的编码控制字;根据所述起始符、所述编码控制字和所述编码后的应用数据,生成所述应用数据对应的数据帧。进一步地,所述根据所述第一位置信息,生成所述编码后的应用数据对应的编码控制字,包括:判断所述编码后的应用数据中转化后的数据对应的数量信息;根据所述数量信息,生成所述编码后的应用数据对应的编码数量;根据所述第一位置信息,生成所述编码后的应用数据对应的编码位置数据;根据所述编码位置数据和所述编码数量,生成所述编码后的应用数据对应的编码控制字。
其中,编码控制字主要包括编码位置数据和编码数量,编码位置数据用于记录应用数据中被转化的各字节的第一位置信息,编码数量用于记录应用数据中转化的字节数量,此外,编码位置数据的长度取决于应用数据的长度,具体地,编码位置数据的长度=应用数据的长度/8,例如,64字节长度的应用数据,每个字节数据需要一位二进制数进行标记,如果编码后的应用数据中某字节数据是转化来的数据,则编码位置数据中该字节数据对应的标志位为1;如果该字节数据不是转化来的,是原数据,则编码位置数据中该字节数据对应的标志位为0,由此可知,需要64位二进制数,即需要8个字节的数据标记编码后的应用数据,因此编码位置数据的长度为8个字节,进一步地,编码数量的字节长度取决于应用数据中被转化的字节数量,通常可以设定为一个字节长度,也可以设定为多个字节长度,本发明实施例不做具体限定,针对编码控制字的组成格式,首选是编码数量,之后是编码位置数据,如编码控制字由一个字节的编码数量和8个字节的编码位置数据组成。
针对编码控制字的具体生成过程,例如,编码后的应用数据的长度为64字节,第1字节、第8字节和第12字节的数据是转化后的与起始符不同的数据,即不是原数据,由此可知,编码后的应用数据中存在3个转化来的字节数据,从而能够确定编码后的应用数据对应的编码数量为3,转化为一个字节的二进制数具体为00000011,进一地,由于第1字节、第8字节和第12字节的数据是转化来的,因此确定第一位置信息为第1字节、第8字节和第12字节,根据该第一位置信息,生成编码后的应用数据对应的编码位置数据为64位二进制数,其中,第1位、8位和第12位为1,其余位为0,即共8个字节的数据,之后根据该编码数量和编码位置数据,组成编码后的应用数据对应的编码控制字,以便接收方在接收到数据帧之后,根据数据帧中的编码控制字能够对编码后的应用数据解码,还原应用数据,从而在能够对数据帧进行准确定界的同时,还能够还原发送方传输的应用数据,准确获取传输内容。
在具体应用场景中,本发明实施例还提供另一种确定编码位置数据的方式,即仅利用编码位置数据的最后一个字节来标记编码后的应用数据中被转化的各字节数据,基于此,所述根据所述第一位置信息,生成所述编码后的应用数据对应的编码位置数据,包括:判断所述编码后的应用数据中与所述转化后的数据相同的原数据及其对应的第二位置信息;根据所述第一位置信息和所述第二位置信息,生成所述编码后的应用数据对应的编码位置数据。
例如,起始符为0xFB,应用数据的长度为64字节,通过将应用数据中与起始符相同的各字节数据转化为0xFD对应用数据进行编码,编码后的应用数据中共存在5处0xFD,且第一个、第二个和第四个0xFD为转化来的数据,第三个和第五个为原数据,因此确定8字节的编码位置数据的最后一字节数据中第一位、第二位和第四位二进制数据为1,第三位和第五位二进制数为0,由于仅存在5处0xFD,因此第六位至第八位二进制数为0,编码位置数据的剩余7个字节可以设置为0x00,由此在转化得到的数据与原数据相同时,利用编码位置数据能够准确地区分原数据和转化得到的数据,进而接收方在对数据帧进行解码时,能够根据编码控制字中的编码位置数据,对编码后的应用数据进行解码,准确地获取发送方传输的应用数据。
进一步地,由于编码位置数据通常包含多个字节数据,编码位置数据的各字节数据中也可能存在与起始符相同的目标字节数据,因此为了确保组成的数据帧中存在唯一的起始符,还需要将编码位置数据中的字节数据转化为与起始符不同的数据,同理数据帧的校验码也可能存在与起始符相同的目标字节数据,也需要将校验码中的字节数据转化为与起始符不同的数据,基于此,所述根据所述编码位置数据和所述编码数量,生成所述编码后的应用数据对应的编码控制字,包括:通过将编码位置数据中的字节数据转化为与所述起始符不同的数据对所述编码位置数据进行编码,得到编码后的编码位置数据;判断转化后的数据在所述编码后的编码位置数据中的第二位置信息;根据所述第二位置信息,生成所述编码后的编码位置数据对应的第一编码标记数据;获取所述应用数据对应的校验码;通过将所述校验码中的各字节数据转化为与所述起始符不同的数据对所述校验码进行编码,得到编码后的校验码;判断转化后的数据在所述编码后的校验码中的第三位置信息;根据所述第三位置信息,生成所述编码后的校验码对应的第二编码标记数据;根据所述第一编码标记数据、所述第二编码标记数据、所述编码数量和所述编码后的编码位置数据,生成所述编码后的应用数据对应的编码控制字。其中,第一编码标记数据的长度=编码位置数据/8,第二编码标记数据的长度=校验码/8,例如,针对64字节的应用数据,编码位置数据为8字节,那么第一编码标记数据的长度为1字节,校验码通常包括两个字节,分别是低地址字节和高地址字节,因此最终可以设定第一编码标记和第二编码标记共占两个字节,编码控制字的组成格式中首先是编码数量,之后是第一编码标记数据和第二编码标记数据,最后是编码后的编码位置数据。
例如,设定起始符为0xFB,编码位置数据为0x20 0x13 0xFB 0x20 0x13 0x000x00 0x00,对编码位置数据进行编码后得到0x20 0x13 0xFD 0x20 0x13 0x00 0x000x00,由此可知,编码后的编码位置数据中第三字节的0xFD为转化后的数据,进而能够确定0xFD在转化后的编码位置数据中的第二位置信息,具体根据第二位置信息生成第一编码标记数据的过程,与对应用数据进行编码,生成编码位置数据的过程完全相同,有两种实施方式,一种实施方式是采用一个字节的8位二进制数,如果转化后的编码位置数据中某一字节数据是转化来的数据,则将第一编码标记数据中该字节数据对应的标志位设置为1;如果转化后的编码数据中的某一字节数据是原数据,则将第一编码标记数据中该字节数据对应的标志位设置为0,另一种实施方式是,如果编码后的编码位置数据中第一个出现的0xFD是转化得来的,则将8位二进制数据的第一位标记为1,如果第二个出现的0xFD是原数据,则将8位二进制数据的第二位标记为0,由此按照上述两种实施方式能够确定编码后的编码位置数据对应的第一编码标记数据,同理可以采用相同的方式对数据帧中的校验码进行编码,并确定编码后的校验码对应的第二编码标记数据,进而根据该第一编码标记数据、第二编码标记数据、编码数量和编码后的编码位置数据,生成编码控制字,以便接收方提取数据帧后,根据该编码控制字中的第一标记数据和第二标记数据,对编码后的编码位置数据和编码后的校验码进行解码,还原编码位置数据和检验码。
进一步地,按照上述方式生成的编码控制字与起始符和编码后的应用数据,共同组成数据帧,如组成的数据帧为0xFB 0x21 0x61 0xCC 0xFD 0x20 0x13 0x00 0x00 0x000x50 0x56 0x2C 0xDE 0xA8 0x00 0x00 0xFD 0x00 0x00 0xFD 0x00 0xBC 0x01 0x980x00 0x22 0x3A 0x35 0x30 0x30 0x7D 0xFD 0x7D 0xFD 0x03 0x01 0x00 0x00 0x000x00 0x00 0x00 0x00 0x00 0x0B 0x2F 0xFD,其中,首位的0xFB为起始符,0x21为应用数据的长度,0xFD是由0xFB转换得来的,也可能是本身就是原数据,最后一行的0x03表示应用数据有3个0xFB转化成了0xFD,0x01为第一标记编码数据,表示校验码中第一出现的0xFD是由0xFB转化来的,最后一行的0x0B该字节数据对应的二进制表示形式为00001011,表示编码后的应用数据中第一个、第二个和第四个出现的0xFD是转化来的,由此能够确保生成的数据帧中存在唯一的起始符,从而通过该起始符能够在通信过程中对从串口接收的数据帧进行准确定界,提取数据帧,进而提高了通信效率。
本发明实施例提供的一种数据帧的生成方法,与现有技术生成的数据帧中不只存在一个起始符的方式相比,能够获取应用数据及其对应的起始符;并将所述应用数据中的字节数据进行编码转化得到编码后的应用数据;与此同时,判断转化后的数据在所述编码后的应用数据中的第一位置信息;最终根据所述起始符、所述第一位置信息和所述编码后的应用数据,生成所述应用数据对应的数据帧,由此通过将应用数据中的各字节数据转化为与起始符不同的数据对应用数据进行编码,并根据编码后的应用数据、第一位置信息和起始符生成数据帧,能够保证起始符在生成的数据帧中唯一存在,从而通过该起始符能够在通信过程中对从串口接收的数据帧进行准确定界,提取数据帧,进而提高了通信效率。
与此同时,本发明实施例提供了一种数据帧的解码方法,所述方法包括:
201、接收源数据。
对于本发明实施例,当发送方根据串口通信协议向接收方发送数据信息时,接收方能够接收到来自发送方的源数据,该源数据可以由多个数据帧组成,需要接收方利用与发送方约定好的起始符提取各个数据帧,并对各个数据帧进行解析,获取数据帧中的应用数据。
202、通过读取起始符从源数据中提取数据帧。
由于本发明实施例生成的数据帧中只含有唯一的起始符,因此接收方可以利用该起始符对数据帧进行准确定界,例如,当从串口接收的源数据中出现了与发送方约定的起始符,可以确定该位置处是数据帧的起始位,直到遇到源数据中的下一个起始符,可以确定该位置处是数据帧的结束位,同时也为下一个数据帧的起始位,由此通过该起始符能够从串口接收的数据中提取各个数据帧,且能够保证对数据帧进行准确定界。
203、对所述数据帧中编码后的应用数据进行解码,解析所述数据帧中的应用数据。
对于本发明实施例,为了解析数据帧中的应用数据,步骤203具体包括:读取所述数据帧中的编码控制字,并根据所述编码控制字中的第二编码标记还原所述数据帧中的校验码;根据所述校验码判断所述数据帧是否通过检验;若所述数据帧通过检验,则对所述数据帧中编码后的应用数据进行解码,还原所述数据帧中的应用数据;若所述数据帧未通过校验,则丢弃所述数据帧。
例如,第二编码标记数据为0x01,说明校验码中第一个出现的0xFD是由0xFB转化来的,因此将检验码中第一个0xFD还原成0xFB,进而得到还原后的校验码,之后根据还原后的校验码判断提取的数据帧是否通过验证,如果该数据帧通过验证,则说明该数据帧可用,对该数据帧进行解码,还原数据帧中的应用数据;如果该数据帧未通过验证,则说明该数据帧不可用,直接丢弃该数据帧。
进一步地,如果该数据帧通过检验码的验证,则对该数据帧进行解码处理,还原应用数据,基于此,所述对所述数据帧中编码后的应用数据进行解码,还原所述数据帧中的应用数据,包括:读取所述编码控制字中的第一编码标记数据,并根据所述第一编码标记数据对所述编码控制字中的编码后的编码位置数据进行解码,还原所述编码控制字中的编码位置数据;根据所述编码位置数据,对所述数据帧中编码后的应用数据进行解码,还原所述数据帧中的应用数据。
例如,第一编码标记数据对应的二进制表示形式为00001000,说明编码后的编码位置数据中的第1个出现的0xFD是由0xFB转化来的,因此将编码后的编码位置数据中第一个0xFD还原成0xFB,进而得到还原后的编码位置数据,进而根据还原后的编码位置数据,对编码后的应用数据进行解码,还原应用数据。
进一步地,如果编码控制字中的编码数量为零,则说明应用数据中的各字节数据均没有进行转换,因此不需要再还原编码位置数据,然后根据编码位置数据还原应用数据,基于此,在所述对所述数据帧中编码后的应用数据进行解码,还原所述数据帧中的应用数据之前,所述方法还包括:读取所述编码控制字中的编码数量,并根据所述编码数量,判断所述数据帧中是否存在编码后的应用数据;如果存在编码后的应用数据,则对所述编码后的应用数据进行解码,还原所述数据帧中的应用数据;如果不存在编码后的应用数据,则直接读取所述数据帧中的应用数据。
具体地,在数据帧通过检验之后,可以直接读取编码控制字中的编码数量,如果该编码数量为零,则说明应用数据中的各字节数据均没有被转化,不需要利用编码位置数据进行还原;如果编码数量不为零,则说明应用数据中存在需要转化的字节数据,即编码后的应用数据中存在转化来的数据,需要进行还原处理,此时需要根据第一编码标记数据还原编码位置数据,进而根据该编码位置数据,解码编码后的应用数据,还原应用数据,由此接收方通过直接读取编码控制字中的编码数量,在编码数量为零的情况下,可以避免对编码后的编码位置数据进行解码,可以直接获取应用数据,从而进一步提高了通信效率。
本发明实施例提供的一种数据帧的解析方法,与现有技术中根据多个起始符对数据帧进行定界的方式相比,能够接收源数据;并通过读取起始符从源数据中提取数据帧;同时对所述数据帧中编码后的应用数据进行解码,解析所述数据帧中的应用数据,由此通过数据帧中存在的唯一起始符,能够在通信过程中对从串口接收的数据帧进行准确定界,提取数据帧,进而提高了通信效率。
进一步地,作为上述数据帧生成方法的具体实现,本发明实施例提供了一种数据帧的生成装置,包括:获取单元、编码单元、判断单元和生成单元。
所述获取单元,可以用于获取应用数据及其对应的起始符。所述获取单元是本装置中获取应用数据及其对应的起始符的主要功能模块。
所述编码单元,可以用于将所述应用数据中的字节数据进行编码转化得到编码后的应用数据。所述编码单元是本装置中将所述应用数据中的字节数据进行编码转化得到编码后的应用数据的主要功能模块,也是核心模块。
所述判断单元,可以用于判断转化后的数据在所述编码后的应用数据中的第一位置信息。所述判断单元是本装置中判断转化后的数据在所述编码后的应用数据中的第一位置信息的主要功能模块。
所述生成单元,可以用于根据所述起始符、所述第一位置信息和所述编码后的应用数据,生成所述应用数据对应的数据帧。所述生成单元是本装置中根据所述起始符、所述第一位置信息和所述编码后的应用数据,生成所述应用数据对应的数据帧的主要功能模块,也是核心模块。
在具体应用场景中,为了生成应用数据对应的数据帧,所述生成单元,包括:第一生成模块和第二生成模块。
所述第一生成模块,可以用于根据所述第一位置信息,生成所述编码后的应用数据对应的编码控制字。
所述第二生成模块,可以用于根据所述起始符、所述编码控制字和所述编码后的应用数据,生成所述应用数据对应的数据帧。
进一步地,为了生成编码后的应用数据对应的编码控制字,所述第一生成模块,包括:判断子模块和生成子模块。
所述判断子模块,可以用于判断所述编码后的应用数据中转化后的数据对应的数量信息。
所述生成子模块,可以用于根据所述数量信息,生成所述编码后的应用数据对应的编码数量。
所述生成子模块,还可以用于根据所述第一位置信息,生成所述编码后的应用数据对应的编码位置数据。
所述生成子模块,还可以用于根据所述编码位置数据和所述编码数量,生成所述编码后的应用数据对应的编码控制字。
进一步地,所述生成子模块,具体可以用于判断所述编码后的应用数据中与所述转化后的数据相同的原数据及其对应的第二位置信息;根据所述第一位置信息和所述第二位置信息,生成所述编码后的应用数据对应的编码位置数据。
进一步地,所述生成子模块,还可以具体用于通过将编码位置数据中的字节数据转化为与所述起始符不同的数据对所述编码位置数据进行编码,得到编码后的编码位置数据;判断转化后的数据在所述编码后的编码位置数据中的第二位置信息;根据所述第二位置信息,生成所述编码后的编码位置数据对应的第一编码标记数据;获取所述应用数据对应的校验码;通过将所述校验码中的各字节数据转化为与所述起始符不同的数据对所述校验码进行编码,得到编码后的校验码;判断转化后的数据在所述编码后的校验码中的第三位置信息;根据所述第三位置信息,生成所述编码后的校验码对应的第二编码标记数据;根据所述第一编码标记数据、所述第二编码标记数据、所述编码数量和所述编码后的编码位置数据,生成所述编码后的应用数据对应的编码控制字。
需要说明的是,本发明实施例提供的一种数据帧的生成装置所涉及各功能模块的其他相应描述,可以参考上述方法的对应描述,在此不再赘述。
基于上述方法,相应的,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:基于上述方法,相应的,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:获取应用数据及其对应的起始符;将所述应用数据中的字节数据进行编码转化得到编码后的应用数据;判断转化后的数据在所述编码后的应用数据中的第一位置信息;根据所述起始符、所述第一位置信息和所述编码后的应用数据,生成所述应用数据对应的数据帧。
基于上述菜谱创作方法和菜谱创作装置的实施例,该烹饪装置包括:处理器、存储器、及存储在存储器上并可在处理器上运行的计算机程序,其中存储器和处理器均设置在总线上所述处理器执行所述程序时实现以下步骤:获取应用数据及其对应的起始符;将所述应用数据中的字节数据进行编码转化得到编码后的应用数据;判断转化后的数据在所述编码后的应用数据中的第一位置信息;根据所述起始符、所述第一位置信息和所述编码后的应用数据,生成所述应用数据对应的数据帧。
通过本发明的技术方案,本发明能够获取应用数据及其对应的起始符;并将所述应用数据中的字节数据进行编码转化得到编码后的应用数据;与此同时,判断转化后的数据在所述编码后的应用数据中的第一位置信息;最终根据所述起始符、所述第一位置信息和所述编码后的应用数据,生成所述应用数据对应的数据帧,由此通过将应用数据中的各字节数据转化为与起始符不同的数据对应用数据进行编码,并根据编码后的应用数据、第一位置信息和起始符生成数据帧,能够保证起始符在生成的数据帧中唯一存在,从而通过该起始符能够在通信过程中对从串口接收的数据帧进行准确定界,提取数据帧,进而提高了通信效率。
进一步地,作为上述数据帧解析方法的具体实现,本发明实施例提供了一种数据帧的解析装置,包括:接收单元、读取单元和解码单元。
所述接收单元,可以用于接收源数据。所述接收单元是本装置中接收源数据的主要功能模块。
所述读取单元,可以用于通过读取起始符从源数据中提取数据帧。所述读取单元是本装置中通过读取起始符从源数据中提取数据帧的主要功能模块,也是核心模块。
所述解码单元,可以用于对所述数据帧中编码后的应用数据进行解码,解析所述数据帧中的应用数据。所述解码单元是本装置中对所述数据帧中编码后的应用数据进行解码,解析所述数据帧中的应用数据的主要功能模块,也是核心模块。
在具体应用场景中,为了对数据帧进行校验,所述解码单元,包括:还原模块、判断模块、解码模块和丢弃模块。
所述还原模块,可以用于读取所述数据帧中的编码控制字,并根据所述编码控制字中的第二编码标记还原所述数据帧中的校验码。
所述判断模块,可以用于根据所述校验码判断所述数据帧是否通过检验。
所述解码模块,可以用于若所述数据帧通过检验,则对所述数据帧中编码后的应用数据进行解码,还原所述数据帧中的应用数据。
所述丢弃模块,可以用于若所述数据帧未通过校验,则丢弃所述数据帧。
在具体应用场景中,为了还原数据帧中的应用数据,所述解码模块,包括:第一解码子模块和第二解码子模块。
第一解码子模块,可以用于读取所述编码控制字中的第一编码标记数据,并根据所述第一编码标记数据对所述编码控制字中的编码后的编码位置数据进行解码,还原所述编码控制字中的编码位置数据。
第二解码子模块,可以用于根据所述编码位置数据,对所述数据帧中编码后的应用数据进行解码,还原所述数据帧中的应用数据。
进一步地,为了读取数据帧中的应用数据,所述解码单元,还包括:读取模块。
所述判断模块,还可以用于读取所述编码控制字中的编码数量,并根据所述编码数量,判断所述数据帧中是否存在编码后的应用数据。
所述解码模块,还可以用于如果存在编码后的应用数据,则对所述编码后的应用数据进行解码,还原所述数据帧中的应用数据。
所述读取模块,可以用于如果不存在编码后的应用数据,则直接读取所述数据帧中的应用数据。
需要说明的是,本发明实施例提供的一种数据帧的解析装置所涉及各功能模块的其他相应描述,可以参考上述方法的对应描述,在此不再赘述。
基于上述方法,相应的,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:基于上述方法,相应的,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:接收源数据;通过读取起始符从源数据中提取数据帧;对所述数据帧中编码后的应用数据进行解码,解析所述数据帧中的应用数据。
基于上述菜谱创作方法和菜谱创作装置的实施例,该烹饪装置包括:处理器、存储器、及存储在存储器上并可在处理器上运行的计算机程序,其中存储器和处理器均设置在总线上所述处理器执行所述程序时实现以下步骤:接收源数据;通过读取起始符从源数据中提取数据帧;对所述数据帧中编码后的应用数据进行解码,解析所述数据帧中的应用数据。
通过本发明的技术方案,本发明能够接收源数据;并通过读取起始符从源数据中提取数据帧;同时对所述数据帧中编码后的应用数据进行解码,解析所述数据帧中的应用数据,由此通过数据帧中存在的唯一起始符,能够在通信过程中对从串口接收的数据帧进行准确定界,提取数据帧,进而提高了通信效率。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
本发明实施例还包括在下列编号条款中规定的这些和其他方面:
1、一种数据帧的生成方法,包括:
获取应用数据及其对应的起始符;
将所述应用数据中的字节数据进行编码转化得到编码后的应用数据;
判断转化后的数据在所述编码后的应用数据中的第一位置信息;
根据所述起始符、所述第一位置信息和所述编码后的应用数据,生成所述应用数据对应的数据帧。
2、根据条款1所述的方法,所述根据所述起始符、所述第一位置信息和所述编码后的应用数据,生成所述应用数据对应的数据帧,包括:
根据所述第一位置信息,生成所述编码后的应用数据对应的编码控制字;
根据所述起始符、所述编码控制字和所述编码后的应用数据,生成所述应用数据对应的数据帧。
3、根据条款2所述的方法,所述根据所述第一位置信息,生成所述编码后的应用数据对应的编码控制字,包括:
判断所述编码后的应用数据中转化后的数据对应的数量信息;
根据所述数量信息,生成所述编码后的应用数据对应的编码数量;
根据所述第一位置信息,生成所述编码后的应用数据对应的编码位置数据;
根据所述编码位置数据和所述编码数量,生成所述编码后的应用数据对应的编码控制字。
4、根据条款3所述的方法,所述根据所述第一位置信息,生成所述编码后的应用数据对应的编码位置数据,包括:
判断所述编码后的应用数据中与所述转化后的数据相同的原数据及其对应的第二位置信息;
根据所述第一位置信息和所述第二位置信息,生成所述编码后的应用数据对应的编码位置数据。
5、根据条款3所述的方法,所述根据所述编码位置数据和所述编码数量,生成所述编码后的应用数据对应的编码控制字,包括:
通过将编码位置数据中的字节数据转化为与所述起始符不同的数据对所述编码位置数据进行编码,得到编码后的编码位置数据;
判断转化后的数据在所述编码后的编码位置数据中的第二位置信息;根据所述第二位置信息,生成所述编码后的编码位置数据对应的第一编码标记数据;
获取所述应用数据对应的校验码;通过将所述校验码中的各字节数据转化为与所述起始符不同的数据对所述校验码进行编码,得到编码后的校验码;
判断转化后的数据在所述编码后的校验码中的第三位置信息;根据所述第三位置信息,生成所述编码后的校验码对应的第二编码标记数据;
根据所述第一编码标记数据、所述第二编码标记数据、所述编码数量和所述编码后的编码位置数据,生成所述编码后的应用数据对应的编码控制字。
6、一种数据帧的解析方法,所述方法包括:
接收源数据;
通过读取起始符从源数据中提取数据帧;
对所述数据帧中编码后的应用数据进行解码,解析所述数据帧中的应用数据。
7、根据条款6所述的方法,所述对所述数据帧中编码后的应用数据进行解码,解析所述数据帧中的应用数据,包括:
读取所述数据帧中的编码控制字,并根据所述编码控制字中的第二编码标记还原所述数据帧中的校验码;
根据所述校验码判断所述数据帧是否通过检验;
若所述数据帧通过检验,则对所述数据帧中编码后的应用数据进行解码,还原所述数据帧中的应用数据;
若所述数据帧未通过校验,则丢弃所述数据帧。
8、根据条款7所述的方法,所述对所述数据帧中编码后的应用数据进行解码,还原所述数据帧中的应用数据,包括:
读取所述编码控制字中的第一编码标记数据,并根据所述第一编码标记数据对所述编码控制字中的编码后的编码位置数据进行解码,还原所述编码控制字中的编码位置数据;
根据所述编码位置数据,对所述数据帧中编码后的应用数据进行解码,还原所述数据帧中的应用数据。
9、根据条款7所述的方法,在所述对所述数据帧中编码后的应用数据进行解码,还原所述数据帧中的应用数据之前,所述方法还包括:
读取所述编码控制字中的编码数量,并根据所述编码数量,判断所述数据帧中是否存在编码后的应用数据;
如果存在编码后的应用数据,则对所述编码后的应用数据进行解码,还原所述数据帧中的应用数据;
如果不存在编码后的应用数据,则直接读取所述数据帧中的应用数据。
10、一种数据帧的生成装置,包括:
获取单元,用于获取应用数据及其对应的起始符;
编码单元,用于将所述应用数据中的字节数据进行编码转化得到编码后的应用数据;
判断单元,用于判断转化后的数据在所述编码后的应用数据中的第一位置信息;
生成单元,用于根据所述起始符、所述第一位置信息和所述编码后的应用数据,生成所述应用数据对应的数据帧。
11、根据条款10所述的装置,所述生成单元,包括:第一生成模块和第二生成模块,
所述第一生成模块,用于根据所述第一位置信息,生成所述编码后的应用数据对应的编码控制字;
所述第二生成模块,用于根据所述起始符、所述编码控制字和所述编码后的应用数据,生成所述应用数据对应的数据帧。
12、根据条款11所述的装置,所述第一生成模块,包括:判断子模块和生成子模块,
所述判断子模块,用于判断所述编码后的应用数据中转化后的数据对应的数量信息;
所述生成子模块,用于根据所述数量信息,生成所述编码后的应用数据对应的编码数量;
所述生成子模块,还用于根据所述第一位置信息,生成所述编码后的应用数据对应的编码位置数据;
所述生成子模块,还用于根据所述编码位置数据和所述编码数量,生成所述编码后的应用数据对应的编码控制字。
13、根据条款12所述的装置,所述生成子模块,具体用于判断所述编码后的应用数据中与所述转化后的数据相同的原数据及其对应的第二位置信息;根据所述第一位置信息和所述第二位置信息,生成所述编码后的应用数据对应的编码位置数据。
14、根据条款12所述的装置,所述生成子模块,还具体用于通过将编码位置数据中的字节数据转化为与所述起始符不同的数据对所述编码位置数据进行编码,得到编码后的编码位置数据;判断转化后的数据在所述编码后的编码位置数据中的第二位置信息;根据所述第二位置信息,生成所述编码后的编码位置数据对应的第一编码标记数据;获取所述应用数据对应的校验码;通过将所述校验码中的各字节数据转化为与所述起始符不同的数据对所述校验码进行编码,得到编码后的校验码;判断转化后的数据在所述编码后的校验码中的第三位置信息;根据所述第三位置信息,生成所述编码后的校验码对应的第二编码标记数据;根据所述第一编码标记数据、所述第二编码标记数据、所述编码数量和所述编码后的编码位置数据,生成所述编码后的应用数据对应的编码控制字。
15、一种数据帧的解析装置,包括:
接收单元,用于接收源数据;
读取单元,用于通过读取起始符从源数据中提取数据帧;
解码单元,用于对所述数据帧中编码后的应用数据进行解码,解析所述数据帧中的应用数据。
16、根据条款15所述的装置,所述解码单元,包括:还原模块、判断模块、解码模块和丢弃模块,
所述还原模块,用于读取所述数据帧中的编码控制字,并根据所述编码控制字中的第二编码标记还原所述数据帧中的校验码;
所述判断模块,用于根据所述校验码判断所述数据帧是否通过检验;
所述解码模块,用于若所述数据帧通过检验,则对所述数据帧中编码后的应用数据进行解码,还原所述数据帧中的应用数据;
所述丢弃模块,用于若所述数据帧未通过校验,则丢弃所述数据帧。
17、根据条款16所述的装置,所述解码模块,包括:第一解码子模块和第二解码子模块,
第一解码子模块,用于读取所述编码控制字中的第一编码标记数据,并根据所述第一编码标记数据对所述编码控制字中的编码后的编码位置数据进行解码,还原所述编码控制字中的编码位置数据;
第二解码子模块,用于根据所述编码位置数据,对所述数据帧中编码后的应用数据进行解码,还原所述数据帧中的应用数据。
18、根据条款16所述的装置,所述解码单元,还包括:读取模块,
所述判断模块,还用于读取所述编码控制字中的编码数量,并根据所述编码数量,判断所述数据帧中是否存在编码后的应用数据;
所述解码模块,还用于如果存在编码后的应用数据,则对所述编码后的应用数据进行解码,还原所述数据帧中的应用数据;
所述读取模块,用于如果不存在编码后的应用数据,则直接读取所述数据帧中的应用数据。
19、一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现条款1至5或/和6-9中任一项所述的方法的步骤。
20、一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述计算机程序被处理器执行时实现条款1至5或/和6-9中任一项所述的方法的步骤。
Claims (11)
1.一种数据帧的生成方法,其特征在于,包括:
获取应用数据及其对应的起始符;
将所述应用数据中的字节数据进行编码转化得到编码后的应用数据;
判断转化后的数据在所述编码后的应用数据中的第一位置信息;
根据所述起始符、所述第一位置信息和所述编码后的应用数据,生成所述应用数据对应的数据帧。
2.根据权利要求1所述的方法,其特征在于,所述根据所述起始符、所述第一位置信息和所述编码后的应用数据,生成所述应用数据对应的数据帧,包括:
根据所述第一位置信息,生成所述编码后的应用数据对应的编码控制字;
根据所述起始符、所述编码控制字和所述编码后的应用数据,生成所述应用数据对应的数据帧。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一位置信息,生成所述编码后的应用数据对应的编码控制字,包括:
判断所述编码后的应用数据中转化后的数据对应的数量信息;
根据所述数量信息,生成所述编码后的应用数据对应的编码数量;
根据所述第一位置信息,生成所述编码后的应用数据对应的编码位置数据;
根据所述编码位置数据和所述编码数量,生成所述编码后的应用数据对应的编码控制字。
4.根据权利要求3所述的方法,其特征在于,所述根据所述第一位置信息,生成所述编码后的应用数据对应的编码位置数据,包括:
判断所述编码后的应用数据中与所述转化后的数据相同的原数据及其对应的第二位置信息;
根据所述第一位置信息和所述第二位置信息,生成所述编码后的应用数据对应的编码位置数据。
5.根据权利要求3所述的方法,其特征在于,所述根据所述编码位置数据和所述编码数量,生成所述编码后的应用数据对应的编码控制字,包括:
通过将编码位置数据中的字节数据转化为与所述起始符不同的数据对所述编码位置数据进行编码,得到编码后的编码位置数据;
判断转化后的数据在所述编码后的编码位置数据中的第二位置信息;根据所述第二位置信息,生成所述编码后的编码位置数据对应的第一编码标记数据;
获取所述应用数据对应的校验码;通过将所述校验码中的各字节数据转化为与所述起始符不同的数据对所述校验码进行编码,得到编码后的校验码;
判断转化后的数据在所述编码后的校验码中的第三位置信息;根据所述第三位置信息,生成所述编码后的校验码对应的第二编码标记数据;
根据所述第一编码标记数据、所述第二编码标记数据、所述编码数量和所述编码后的编码位置数据,生成所述编码后的应用数据对应的编码控制字。
6.一种数据帧的解析方法,其特征在于,所述方法包括:
接收源数据;
通过读取起始符从源数据中提取数据帧;
对所述数据帧中编码后的应用数据进行解码,解析所述数据帧中的应用数据。
7.根据权利要求6所述的方法,其特征在于,所述对所述数据帧中编码后的应用数据进行解码,解析所述数据帧中的应用数据,包括:
读取所述数据帧中的编码控制字,并根据所述编码控制字中的第二编码标记还原所述数据帧中的校验码;
根据所述校验码判断所述数据帧是否通过检验;
若所述数据帧通过检验,则对所述数据帧中编码后的应用数据进行解码,还原所述数据帧中的应用数据;
若所述数据帧未通过校验,则丢弃所述数据帧。
8.根据权利要求7所述的方法,其特征在于,所述对所述数据帧中编码后的应用数据进行解码,还原所述数据帧中的应用数据,包括:
读取所述编码控制字中的第一编码标记数据,并根据所述第一编码标记数据对所述编码控制字中的编码后的编码位置数据进行解码,还原所述编码控制字中的编码位置数据;
根据所述编码位置数据,对所述数据帧中编码后的应用数据进行解码,还原所述数据帧中的应用数据。
9.根据权利要求7所述的方法,其特征在于,在所述对所述数据帧中编码后的应用数据进行解码,还原所述数据帧中的应用数据之前,所述方法还包括:
读取所述编码控制字中的编码数量,并根据所述编码数量,判断所述数据帧中是否存在编码后的应用数据;
如果存在编码后的应用数据,则对所述编码后的应用数据进行解码,还原所述数据帧中的应用数据;
如果不存在编码后的应用数据,则直接读取所述数据帧中的应用数据。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5或/和6-9中任一项所述的方法的步骤。
11.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5或/和6-9中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011418173.7A CN112486885B (zh) | 2020-12-07 | 2020-12-07 | 数据帧的生成方法、存储介质及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011418173.7A CN112486885B (zh) | 2020-12-07 | 2020-12-07 | 数据帧的生成方法、存储介质及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112486885A true CN112486885A (zh) | 2021-03-12 |
CN112486885B CN112486885B (zh) | 2024-06-07 |
Family
ID=74940279
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011418173.7A Active CN112486885B (zh) | 2020-12-07 | 2020-12-07 | 数据帧的生成方法、存储介质及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112486885B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114337915A (zh) * | 2021-12-02 | 2022-04-12 | 华人运通(江苏)技术有限公司 | 基于串行通讯的私有协议容错处理方法、装置及存储介质 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010033660A1 (en) * | 2000-01-21 | 2001-10-25 | Mitsuru Maeda | Information processing apparatus and method |
US20040030665A1 (en) * | 2002-04-19 | 2004-02-12 | Sullivan Gary J. | Methods and systems for preventing start code emulation at locations that include non-byte aligned and/or bit-shifted positions |
CN102377505A (zh) * | 2010-08-06 | 2012-03-14 | 研祥智能科技股份有限公司 | 一种基于串口的ipmi数据包传输方法 |
CN102508455A (zh) * | 2011-09-26 | 2012-06-20 | 深圳市锦瑞电子有限公司 | 生化分析仪的控制方法及*** |
CN103369311A (zh) * | 2012-04-04 | 2013-10-23 | 朱洪波 | 一种用于防止起始码冲突的方法 |
CN103840835A (zh) * | 2012-11-26 | 2014-06-04 | 艺伦半导体技术股份有限公司 | 一种数据解压缩方法及装置 |
CN103914419A (zh) * | 2012-12-29 | 2014-07-09 | 北京谊安医疗***股份有限公司 | 一种板级mcu间通信的方法及*** |
CN104809100A (zh) * | 2015-04-02 | 2015-07-29 | 上海新时达电气股份有限公司 | 文本编码、解码方法及所对应的编解码*** |
CN108055237A (zh) * | 2017-11-08 | 2018-05-18 | 长春希达电子技术有限公司 | 基于xml格式的情报板控制方法 |
CN108737026A (zh) * | 2018-05-08 | 2018-11-02 | 深圳市心流科技有限公司 | 数据传输方法、装置及计算机可读存储介质 |
CN109165001A (zh) * | 2018-08-24 | 2019-01-08 | 京东方科技集团股份有限公司 | 编码方法、装置及显示装置 |
CN109802760A (zh) * | 2018-12-29 | 2019-05-24 | 北京行易道科技有限公司 | 数据的存储方法及装置,数据的解码方法 |
-
2020
- 2020-12-07 CN CN202011418173.7A patent/CN112486885B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010033660A1 (en) * | 2000-01-21 | 2001-10-25 | Mitsuru Maeda | Information processing apparatus and method |
US20040030665A1 (en) * | 2002-04-19 | 2004-02-12 | Sullivan Gary J. | Methods and systems for preventing start code emulation at locations that include non-byte aligned and/or bit-shifted positions |
CN102377505A (zh) * | 2010-08-06 | 2012-03-14 | 研祥智能科技股份有限公司 | 一种基于串口的ipmi数据包传输方法 |
CN102508455A (zh) * | 2011-09-26 | 2012-06-20 | 深圳市锦瑞电子有限公司 | 生化分析仪的控制方法及*** |
CN103369311A (zh) * | 2012-04-04 | 2013-10-23 | 朱洪波 | 一种用于防止起始码冲突的方法 |
CN103840835A (zh) * | 2012-11-26 | 2014-06-04 | 艺伦半导体技术股份有限公司 | 一种数据解压缩方法及装置 |
CN103914419A (zh) * | 2012-12-29 | 2014-07-09 | 北京谊安医疗***股份有限公司 | 一种板级mcu间通信的方法及*** |
CN104809100A (zh) * | 2015-04-02 | 2015-07-29 | 上海新时达电气股份有限公司 | 文本编码、解码方法及所对应的编解码*** |
CN108055237A (zh) * | 2017-11-08 | 2018-05-18 | 长春希达电子技术有限公司 | 基于xml格式的情报板控制方法 |
CN108737026A (zh) * | 2018-05-08 | 2018-11-02 | 深圳市心流科技有限公司 | 数据传输方法、装置及计算机可读存储介质 |
CN109165001A (zh) * | 2018-08-24 | 2019-01-08 | 京东方科技集团股份有限公司 | 编码方法、装置及显示装置 |
CN109802760A (zh) * | 2018-12-29 | 2019-05-24 | 北京行易道科技有限公司 | 数据的存储方法及装置,数据的解码方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114337915A (zh) * | 2021-12-02 | 2022-04-12 | 华人运通(江苏)技术有限公司 | 基于串行通讯的私有协议容错处理方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112486885B (zh) | 2024-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110324115B (zh) | 一种数据传输方法、装置、存储介质及终端设备 | |
US20120060070A1 (en) | Modulation - forward error correction (mfec) codes and methods of constructing and utilizing the same | |
BR112015014405B1 (pt) | Método de comunicações para um sistema de rede óptica, dispositivo de rede óptica e sistema de comunicações | |
CN106452684A (zh) | 一种iec61850报告数据传输报文的自校验方法 | |
CN113810769A (zh) | 数据传输方法及*** | |
CN101345745A (zh) | 数据成帧方法及其设备 | |
CN103036641A (zh) | 数据交换方法、***及反序列化方法 | |
CN112486885A (zh) | 数据帧的生成方法、存储介质及计算机设备 | |
KR20200100759A (ko) | 데이터 송신 방법, 전송 장치, 및 수신 장치 | |
US20080077828A1 (en) | Communication apparatus and communication system | |
JP2002353936A (ja) | 通信システムの制御チャネルを介してシグナリング情報を送信する方法 | |
US20160080185A1 (en) | Method for serial data transmission and system therefor | |
JPH10327155A (ja) | 情報識別システム、この情報識別システム用の制御装置および応答装置 | |
CN1901536A (zh) | 采用通用成帧规程的通信***发送和接收数据的处理方法 | |
CN100449950C (zh) | 鲁棒性信号编码 | |
CN114070405B (zh) | 一种基于多类型测试设备的光纤网络*** | |
US9065789B2 (en) | Remote communication method | |
US8750423B2 (en) | Receiving apparatus, data transfer apparatus, data receiving method and non-transitory computer readable recording medium | |
CN108347292A (zh) | 一种物理编码子层的数据编解码方法和装置 | |
CN110381095B (zh) | 一种片上***及设备、通信*** | |
CN1964200B (zh) | 一种线性码扩展编码及解码方法以及数据传输方法及装置 | |
CN114070885A (zh) | 一种适配于光纤网络的多类型信息传输方法 | |
CN108123721B (zh) | 编码方法及装置 | |
CN111950233A (zh) | 扫码识别方法及装置、电子设备、可读存储介质 | |
CN111314375A (zh) | 医保数据适配引擎、医保数据适配方法、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: Floor 11, Building 1, No. 1200, Jinzhou Road, Tangjiawan Town, High tech Zone, Zhuhai City, Guangdong Province, 519000 Applicant after: ZHUHAI UNICOOK TECHNOLOGY Co.,Ltd. Address before: 519000 -45895, 105 room 6, Baohua Road, Hengqin New District, Zhuhai, Guangdong (centralized office area) Applicant before: ZHUHAI UNICOOK TECHNOLOGY Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant |