CN104572530B - 一种下位机、上位机及数据传输方法 - Google Patents
一种下位机、上位机及数据传输方法 Download PDFInfo
- Publication number
- CN104572530B CN104572530B CN201310467320.3A CN201310467320A CN104572530B CN 104572530 B CN104572530 B CN 104572530B CN 201310467320 A CN201310467320 A CN 201310467320A CN 104572530 B CN104572530 B CN 104572530B
- Authority
- CN
- China
- Prior art keywords
- byte
- data
- data bit
- bytes
- identifier
- 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.)
- Active
Links
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/4265—Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
- G06F13/4269—Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus using a handshaking protocol, e.g. Centronics connection
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Dc Digital Transmission (AREA)
- Communication Control (AREA)
Abstract
本发明涉及计算机领域,公开了一种下位机、上位机及数据传输方法,能够灵活的进行数据传输。该数据传输方法包括:对传输数据的每个字节中的数据位进行标记及编号;以7个字节为单位进行处理,所述处理包含以下步骤:S1、顺序提取所述7个字节中编号为n的数据位位,将所述顺序提取的数据位依次填充到第一字节的第1数据位至第7数据位;S2、根据所述7个字节的每个字节中剩余的数据位得到7个第二字节的第1数据位至第7数据位;S3、在所述第一字节的第0数据位填充第一识别符;S4、在所述第二字节的第0数据位填充第二识别符;将数据包发送给上位机。该下位机、上位机及数据传输方法用于数据传输。
Description
技术领域
本发明涉及计算机领域,特别涉及一种下位机、上位机及数据传输方法。
背景技术
目前,下位机和上位机之间传送数据的过程(本申请中简称为“数据传输”)主要有两种传输方式。第一种传输方式是以十个字节为单位的传输方法,每次传输十个字节的数据。当需要传输的数据长度超过十个字节时,按照十个字节为单位将数据分成若干个数据块,对于长度不够十个字节的数据块,需要等待下一组数据到来时,填充够十个字节再进行传输,因此,该数据传输方式对数据长度是有要求的,即数据长度满足十个字节的整数倍时才能及时进行传输;第二种传输方式是在需要传输的数据头处用“01”作为标记,表明该数据为一个新的需要传输的数据的开始,在数据尾处用“FF”作为标记,表明该数据已完整传输,但是由于F为十六进制数,当需要传输的数据中有连续两位为FF时,系统会认为数据已经传输完毕,造成系统误判,该数据传输方法中不能使用十六进制数进行传输。因此,现有技术中的数据传输方法具有局限性。
发明内容
本发明的目的在于提供一种下位机、上位机及数据传输方法,能够灵活的进行数据传输。
为解决上述技术问题,本发明的实施方式提供了一种数据传输方法,应用于下位机,包括:
对传输数据的每个字节中的数据位进行标记及编号,所述每个字节的8个数据位具有相同的标记及由0至7的不同编号;
以7个字节为单位进行处理,所述处理包含以下步骤:
S1、顺序提取所述7个字节中编号为n的数据位,所述n为大于或等于0且小于或等于7的整数,将所述顺序提取的数据位依次填充到第一字节的第1数据位至第7数据位;
S2、根据所述7个字节的每个字节中剩余的数据位得到7个第二字节的第1数据位至第7数据位,所述第二字节与所述第一字节的一个数据位一一对应;
S3、在所述第一字节的第0数据位填充第一识别符,所述第一识别符用于标识所述第一字节中的第1数据位至为在所述7个字节中顺序提取的编号为n的数据位;
S4、在所述第二字节的第0数据位填充第二识别符,所述第二识别符用于标识所述第二字节中的数据位为与所述第一字节中标记相同的数据位所属字节的剩余数据位;
将数据包发送给上位机,所述数据包由第一字节组和第二字节组打包形成,所述第一字节组由多个所述第一字节组成,所述第二字节组由多个所述第二字节组成。
本发明的实施方式提供另一种数据传输方法,应用于上位机,包括:
接收下位机发送的数据包;
解压所述数据包,得到第一字节组和第二字节组,所述第一字节组由多个第一字节组成,所述第二字节组由多个第二字节组成,以所述第一字节组中的第1个第一字节和所述第二字节组中的前7个第二字节为单位进行数据还原,所述数据还原包括以下步骤:
S1、提取所述第一字节组中的第1个第一字节的第1数据位至第7数据位,将所述第1数据位至第7数据位放置在第一识别符标识的7个字节的数据位上,所述第一识别符位于所述第1个第一字节的第0数据位,所述第一识别符用于标识所述第一字节中的第1数据位至第7数据位为在所述7个字节中顺序提取的编号为n的数据位;
S2、对所述第二字节组中的前7个第二字节分别提取与所述第一字节中标记相同的数据位,并将分别提取的与所述第一字节中标记相同的数据位分别放置在第二识别符标识的所述7个字节的剩余数据位上,得到完整的所述7个字节,所述第二识别符位于所述第二字节的第0数据位,所述第二识别符用于标识所述第二字节中的数据位为与所述第一字节中标记相同的数据位所属字节的剩余数据位;
S3、删除所述第一字节组中的第1个第一字节及所述第二字节组中的前7个第二字节,得到新的第一字节组和新的第二字节组,返回步骤S1,直至所述第一字节组和所述第二字节组为空。
本发明的实施方式提供了一种下位机,包括:
标记单元,用于对传输数据的每个字节中的数据位进行标记及编号,所述每个字节的8个数据位具有相同的标记及由0至7的不同编号;
处理单元,用于以7个字节为单位对所述标记单元标记的传输数据进行处理,所述处理单元包括以下子单元:
提取子单元,用于顺序提取所述7个字节中编号为n的数据位,所述n为大于或等于0且小于或等于7的整数,将所述顺序提取的数据位依次填充到第一字节的第1数据位至第7数据位;
获取子单元,用于根据所述7个字节的每个字节中剩余的数据位得到7个第二字节的第1数据位至第7数据位,所述第二字节与所述第一字节的一个数据位一一对应;
第一填充子单元,用于在所述第一字节的第0数据位填充第一识别符,所述第一识别符用于标识所述第一字节中的第1数据位至第7数据位为在所述7个字节中顺序提取的编号为n的数据位;
第二填充子单元,用于在所述第二字节的第0数据位填充第二识别符,所述第二识别符用于标识所述第二字节中的数据位为与所述第一字节中标记相同的数据位所属字节的剩余数据位;
发送单元,用于将数据包发送给上位机,所述数据包由所述第一字节组和所述第二字节组打包形成,所述第一字节组由多个所述第一字节组成,所述第二字节组由多个所述第二字节组成。
本发明的实施方式提供一种上位机,包括:
接收单元,用于接收下位机发送的数据包;
解压单元,用于解压所述接收单元接收的数据包,得到第一字节组和第二字节组,所述第一字节组由多个第一字节组成,所述第二字节组由多个第二字节组成,以所述第一字节组中的第1个第一字节和所述第二字节组中的前7个第二字节为单位进行数据还原,所述解压单元包括以下子单元:
第一处理子单元,用于提取所述第一字节组中的第1个第一字节的第1数据位至第7数据位,将所述第1数据位至第7数据位放置在第一识别符标识的7个字节的数据位上,所述第一识别符位于所述第1个第一字节的第0数据位,所述第一识别符用于标识所述第一字节中的第1数据位至第7数据位为在所述7个字节中顺序提取的编号为n的数据位;
第二处理子单元,用于对所述第二字节组中的前7个第二字节分别提取与所述第一字节中标记相同的数据位,并将分别提取的与所述第一字节中标记相同的数据位分别放置在第二识别符标识的所述7个字节的剩余数据位上,得到完整的所述7个字节,所述第二识别符位于所述第二字节的第0数据位,所述第二识别符用于标识所述第二字节中的数据位为与所述第一字节中标记相同的数据位所属字节的剩余数据位;
删除子单元,用于删除所述第一字节组中的第1个第一字节及所述第二字节组中的前7个第二字节,得到新的第一字节组和新的第二字节组,返回第一处理子单元,直至所述第一字节组和所述第二字节组为空。
本发明实施方式相对于现有技术而言,首先对传输数据的每个字节中的数据位进行标记及编号,然后以7个字节为单位提取每个字节中相同位置的数据与新的第一识别符组成第一字节,将每个字节中剩余的7个字节与第二识别符组成第二字节,然后将第一字节和第二字节打包进行传输。该数据传输方法对数据长度无要求,此外只在数据头处利用第一识别符和第二识别符标识每个字节中数据的特点,可以克服数据传输方法中不能使用十六进制数进行传输的问题,因此,该数据传输方法能够灵活的进行数据传输。
另外,在所述顺序提取所述7个字节中编号为n的数据位中,所述n为0或7。
当n为0时,提取每个字节中第0数据位的数据,使得所述第一字节中的每个数据位的数据为每个字节起始数据位;当n为7时,提取每个字节中第7数据位的数据,使得所述第一字节中的每个数据位的数据为每个字节末尾数据位。
另外,所述第一识别符为1,所述第二识别符为0,或所述第一识别符为0,所述第二识别符为1。
通过设置第一识别符和第二识别符,来表示所述第一识别符和所述第二识别符所在的字节中的每个数据位在每个字节中的位置特性。
另外,在所述对传输数据的每个字节中的数据位进行标记及编号之前,所述方法还包括:将多个端口发送的数据转换成符合上位机处理要求的十六进制的数据。
将传输数据转换为符合上位机处理要求的数据格式,进行后续的数据处理。
附图说明
图1是本发明第一实施方式的数据传输方法流程示意图;
图2是本发明第一实施方式中对标记及编号后的传输数据进行处理的方法流程示意图;
图3是本发明第二实施方式的数据传输方法流程示意图;
图4是本发明第二实施方式中对第一字节组和第二字节组进行数据还原的方法流程示意图;
图5是本发明第三实施方式的下位机结构示意图;
图6是本发明第三实施方式的处理单元的结构示意图;
图7是本发明第四实施方式的下位机结构示意图;
图8是第五实施方式的上位机结构示意图;
图9是本发明第五实施方式的解压单元的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请各权利要求所要求保护的技术方案。
本发明第一实施方式提供一种数据传输方法,该数据传输方法主要应用于下位机中大数据的传输,计算机中数据传输的单位为字节,该大数据是指传输的数据长度大于等于7个字节的数据。如图1所示,该数据传输方法包括:
101、接收多个端口发送的数据。
下位机接收多个端口发送的长度不一的多个数据。示例的,有的数据长度为8字节,有的数据长度为15个字节。
102、将数据转换成符合上位机处理要求的数据格式。
由于上位机的硬件特性对处理的数据格式有一定的要求,因此,数据在由下位机传输到上位机之前,首先需要将数据转换成符合上位机硬件处理要求的数据格式。示例的,可以将数据转换成16进制的数据。该数据转换方法为现有技术,本发明在此不再赘述。
103、对传输数据的每个字节中的数据位进行标记及编号。
由于数据传输的单位为字节,每个字节是8个数据位,每个字节的8个数据位具有相同的标记及由0至7的不同编号。本发明第一实施方式首先对需要传输的数据的每个字节进行标记。可以使用不同的字母或者其他任何有区别的符号对数据的不同字节进行标记。示例的,可以使用不同的字母来标记传输数据的每个字节。假设需要传输的数据长度为12字节,则可以顺序将该12字节的数据的第1字节标记为A字节,第2字节标记为B字节,……,第12字节标记为L字节。然后,对所述每个字节的数据位按照由0到7的号码进行编号。示例的,对于A字节中的8个数据位,可以顺序标记该A字节的8个数据位分别为A0、A1、A2、A3、A4、A5、A6及A7,其中,A为各数据位的相同的标记,0至7为各数据位的不同编号。可以参考对A字节的8个数据位进行编号的方法对B字节、C字节、……、L字节中的数据位进行编号,本发明在此不作赘述。
104、对标记及编号后的传输数据进行处理。
步骤104是以7个字节为单位对标记及编号后的传输数据进行处理的,如图2所示,步骤104具体包括以下步骤:
1041、顺序提取所处理的7个字节中编号为n的数据位,将顺序提取的数据位依次填充到第一字节的第1数据位至第7数据位。
n为大于或等于0且小于或等于7的整数。优选的,n可以为0或7,当n等于0时,表明提取的是所处理的7个字节中编号为0的数据位,也就是所处理的7个字节的每个字节的起始数据位中的数据;当n等于7时,表明提取的是所处理的7个字节中编号为7的数据位,也就是所处理的7个字节的每个字节的末尾数据位中的数据。
本实施例假设n为0。示例的,对于步骤103标记及编号得到的数据长度为12字节的传输数据,首先对该数据的前7个字节进行处理。首先,顺序提取该数据前7个字节中编号为0的数据位,由于该数据的前7个字节为A、B、C、D、E、F及G,该数据的前7个字节中编号为0的数据位的标记及编号为A0、B0、C0、D0、E0、F0及G0,顺序提取A0、B0、C0、D0、E0、F0及G0,然后,将顺序提取的A0、B0、C0、D0、E0、F0及G0数据位依次填充到第一字节的第1数据位至第7数据位。
1042、根据7个字节的每个字节中剩余的数据位得到7个第二字节的第1数据位至第7数据位。
第二字节与第一字节的一个数据位一一对应。
示例的,对于A字节,剩余的数据位的标记和编号为A1、A2、A3、A4、A5、A6及A7,则第一个第二字节的第1数据位至第7数据位中的数据位为标记和编号分别为A1、A2、A3、A4、A5、A6及A7的数据,该第二字节中的第1数据位至第7数据位为与第一字节中标记为A编号为0的数据位所述的字节对应;对于B字节,剩余的数据位的标记和编号为B1、B2、B3、B4、B5、B6及B7,则第二个第二字节的第1数据位至第7数据位中的数据位为标记和编号分别为B1、B2、B3、B4、B5、B6及B7的数据,该第二字节中的第1数据位至第7数据位为与第二字节中标记为B编号为0的数据位所述的字节对应;对于C字节,剩余的数据位的标记和编号为C1、C2、C3、C4、C5、C6及C7,则第三个第二字节的第1数据位至第7数据位中的数据位为标记和编号分别为C1、C2、C3、C4、C5、C6及C7的数据,该第二字节中的第1数据位至第7数据位为与第三字节中标记为C编号为0的数据位所述的字节对应;对于D字节,剩余的数据位的标记和编号为D1、D2、D3、D4、D5、D6及D7,则第四个第二字节的第1数据位至第7数据位中的数据位为标记和编号分别为D1、D2、D3、D4、D5、D6及D7的数据,该第二字节中的第1数据位至第7数据位为与第四字节中标记为D编号为0的数据位所述的字节对应;对于E字节,剩余的数据位的标记和编号为E1、E2、E3、E4、E5、E6及E7,则第五个第二字节的第1数据位至第7数据位中的数据位为标记和编号分别为E1、E2、E3、E4、E5、E6及E7的数据,该第二字节中的第1数据位至第7数据位为与第五字节中标记为E编号为0的数据位所述的字节对应;对于F字节,剩余的数据位的标记和编号为F1、F2、F3、F4、F5、F6及F7,则第六个第二字节的第1数据位至第7数据位中的数据位为标记和编号分别为F1、F2、F3、F4、F5、F6及F7的数据,该第二字节中的第1数据位至第7数据位为与第六字节中标记为F编号为0的数据位所述的字节对应;对于G字节,剩余的数据位的标记和编号为G1、G2、G3、G4、G5、G6及G7,则第七个第二字节的第1数据位至第7数据位中的数据位为标记和编号分别为G1、G2、G3、G4、G5、G6及G7的数据,该第二字节中的第1数据位至第7数据位为与第七字节中标记为G编号为0的数据位所述的字节对应。
1043、在第一字节的第0数据位填充第一识别符。
所述第一识别符用于标识所述第一字节中的第1数据位至第7数据位为在所述7个字节中顺序提取的编号为n的数据位。该第一识别符可以取0,标识第一字节中的第1数据位至第7数据位为所处理的7个字节的编号为0的数据位,编号为0的数据位即所处理的7个字节的起始数据位;该第一识别符可以取1,标识第一字节中的第1数据位至第7数据位为所处理的7个字节的编号为7的数据位,编号为7的数据位即所处理的7个字节的最后一个数据位。该第一识别符的取值应该与步骤1041中n的取值保持一致。
本实施例中第一识别符可以取0,标识第一字节中的第1数据位至第7数据位为所处理的7个字节的起始数据位。示例的,第一识别符可以取0表示第一字节中A0代表的数据为标记为A的字节中的第0个数据位上的数据。
1044、在第二字节的第0数据位填充第二识别符。
第二识别符用于标识所述第二字节中的数据位为与第一字节中标记相同的数据位所属字节的剩余数据位。
第一识别符与第二识别符的取值是不相等的,当第一识别符为0时,该第二识别符可以取1,标识第二字节中的第1数据位至第7数据位为与所述第一字节中标记相同的数据位所属字节的剩余数据位,即第二字节中的第1数据位至第7数据位为与所述第一字节中标记相同的数据位所属字节的第1数据位至第7数据位;当第一识别符为1时,该第二识别符可以取0,标识第二字节中的第1数据位至第7数据位为与所述第一字节中标记相同的数据位所属字节的剩余数据位,即第二字节中的第1数据位至第7数据位为与所述第一字节中标记相同的数据位所属字节的第0数据位至第6数据位。
由于本实施例中第一识别符为0,则第二实施例可以取值为1,标识第二字节中的第1数据位至第7数据位为与所述第一字节中标记相同的数据位所属字节的第1数据位至第7数据位。示例的,第二识别符可以取1表示A1、A2、A3、A4、A5、A6及A7代表的数据为标记为A的字节中的第0数据位后面的数据,即该字节中第1数据位至第7数据位上的数据。
对该数据长度为12字节的数据的后5个字节的处理方法可以参考对前7个字节的处理方法及过程,本实施例不再赘述。
需要说明的是,当处理的字节不够7个时,对于步骤1041得到的第一字节,可以在该第一字节中的空余的数据位中填充0,补充完整该第一字节的第1数据位至第7数据位。后续处理过程与本实施例的过程完全相同。
105、对处理后的数据进行打包,得到传输数据的数据包。
由于该数据传输方法适用于大数据的传输,因此,在步骤105之前处理得到的数据为第一字节组和第二字节组,所述第一字节组由多个第一字节组成,所述第二字节组由多个第二字节组成。然后,对该第一字节组和第二字节组进行打包,得到数据包,然后,将该数据包发送给上位机。对该第一字节组和第二字节组进行打包的方法为现有技术,本实施例对此不作赘述。
本发明实施方式相对于现有技术而言,首先对传输数据的每个字节中的数据位进行标记及编号,然后以7个字节为单位提取每个字节中相同位置的数据与新的第一识别符组成第一字节,将每个字节中剩余的7个字节与第二识别符组成第二字节,然后将第一字节和第二字节打包进行传输。该数据传输方法对数据长度无要求,此外只在数据头处利用第一识别符和第二识别符标识每个字节中数据的特点,可以克服数据传输方法中不能使用十六进制数进行传输的问题,因此,该数据传输方法能够灵活的进行数据传输。
本发明第二实施方式提供一种数据传输方法,应用于上位机,如图3所示,该数据传输方法包括:
301、接收下位机发送的数据包。
该数据包是对第一字节组和第二字节组进行打包得到的。
302、解压数据包,得到第一字节组和第二字节组。
所述第一字节组由多个第一字节组成,所述第二字节组由多个第二字节组成。第一字节和第二字节均由8个数据位组成。
303、对第一字节组和第二字节组进行数据还原。
如图4所示,以第一字节组中的第1个第一字节和第二字节组中的前7个第二字节为单位进行数据还原,所述数据还原具体包括以下步骤:
3031、提取第一字节组中的第1个第一字节的第1数据位至第7数据位,将第1数据位至第7数据位放置在第一识别符标识的7个字节的数据位上。
第一识别符位于所述第1个第一字节的第0数据位,第一识别符用于标识第一字节中的第1数据位至第7数据位为在7个字节中顺序提取的编号为n的数据位。第一字节由第一识别符和第1数据位至第7数据位共8个数据位组成,第一识别符位于该第一字节的第0数据位。对该第一字节进行解析,可以得到第一识别符,由于该数据传输方法在下位机侧是以7个字节为单位进行处理的,因此,对该第一字节进行解析还可以得到第1数据位至第7数据位,该第一识别符用于标识所述第一字节中的第1数据位至第7数据位为7个字节的编号为n的数据位。第一识别符的取值及含义可以参考第一实施例中的相关解释,本实施例在此不作赘述。
示例的,本实施例假设解析得到第一识别符为0,则第一字节中的第1数据位至第7数据位为所处理的7个字节的起始数据位。假设第一字节中的标记及编号为0、A0、B0、C0、D0、E0、F0及G0,则第一识别符0表示第1数据位至第7数据位A0至G0为所处理的7个字节的编号为0的数据位,即起始数据位。因此,可以将第一字节中A0、B0、C0、D0、E0、F0及G0放置在7个字节的编号为0的数据位上。
3032、对第二字节组中的前7个第二字节分别提取与第一字节中标记相同的数据位,并将分别提取的与第一字节中标记相同的数据位分别放置在第二识别符标识的7个字节的剩余数据位上,得到完整的7个字节。
第二识别符位于第二字节的第0数据位,第二识别符用于标识第二字节中的数据位为与第一字节中标记相同的数据位所属字节的剩余数据位。
第二字节由第二识别符和第1数据位至第7数据位共8个数据位组成,第二识别符位于该第二字节的第0数据位。对该第二字节进行解析,可以得到第二识别符,由于该数据传输方法在下位机侧第二字节中的第1数据位至第7数据位为第一字节中提取编号为n的数据位位后剩余的7个数据位,因此,对该第二字节进行解析还可以得到第1数据位至第7数据位,该第二识别符用于标识所述第二字节中的数据位为与所述第一字节中具有相同标记的数据位所属字节的剩余数据位。第二识别符的取值及含义可以参考第一实施例中的相关解释,本实施例在此不作赘述。
由于第一识别符和第二识别符是不相等的,第一识别符为0,第二识别符可以为1,则第二字节中的第1数据位至第7数据位为与所述第一字节中编号为n的数据位具有相同标记的数据位所属字节的剩余数据位。假设第二字节中的标记及编号为1、A1、A2、A3、A4、A5、A6及A7,则第二识别符1表示第1数据位至第7数据位A1至A7为与所述第一字节中具有相同标记A的数据位所属字节的剩余数据位,第一字节中标记为A的数据位为A0,则A1至A7为A0后面的数据位。
示例的,可以提取所述第二字节组中与A0具有相同标记A的剩余数据位为A1、A2、A3、A4、A5、A6及A7,将A1、A2、A3、A4、A5、A6及A7放置在与第一字节中具有相同标记A所在字节的第1数据位至第7数据位上,至此,得到数据还原后的第一个字节;可以提取所述第二字节组中与B0具有相同标记B的剩余数据位为B1、B2、B3、B4、B5、B6及B7,将B1、B2、B3、B4、B5、B6及B7放置在与第一字节中具有相同标记B所在字节的第1数据位至第7数据位上,至此,得到数据还原后的第二个字节;可以提取所述第二字节组中与C0具有相同标记C的剩余数据位为C1、C2、C3、C4、C5、C6及C7,将C1、C2、C3、C4、C5、C6及C7放置在与第一字节中具有相同标记C所在字节的第1数据位至第7数据位上,至此,得到数据还原后的第三个字节;可以提取所述第二字节组中与D0具有相同标记D的剩余数据位为D1、D2、D3、D4、D5、D6及D7,将D1、D2、D3、D4、D5、D6及D7放置在与第一字节中具有相同标记D所在字节的第1数据位至第7数据位上,至此,得到数据还原后的第四个字节;可以提取所述第二字节组中与E0具有相同标记E的剩余数据位为E1、E2、E3、E4、E5、E6及E7,将E1、E2、E3、E4、E5、E6及E7放置在与第一字节中具有相同标记E所在字节的第1数据位至第7数据位上,至此,得到数据还原后的第五个字节;可以提取所述第二字节组中与F0具有相同标记F的剩余数据位为F1、F2、F3、F4、F5、F6及F7,将F1、F2、F3、F4、F5、F6及F7放置在与第一字节中具有相同标记F所在字节的第1数据位至第7数据位上,至此,得到数据还原后的第六个字节;可以提取所述第二字节组中与G0具有相同标记G的剩余数据位为G1、G2、G3、G4、G5、G6及G7,将G1、G2、G3、G4、G5、G6及G7放置在与第一字节中具有相同标记G所在字节的第1数据位至第7数据位上,至此,得到数据还原后的第七个字节。
对于数据长度为12字节的数据包,可以参考对前7个字节的处理方法处理得到后五个数据还原后的字节。此外,当第一识别符为1时,可以参考该数据传输方法将提取的第一字节的第1数据位至第7数据位,将第1数据位至第7数据位放置在第一识别符标识的7个字节中的第7数据位上,然后提取第二字节中与第一字节中标记相同的数据位,将第二字节中与第一字节中具有相同标记的数据位作为与第一字节标记相同的数据位所属字节的第0数据位至第6数据位上,得到数据还原后的字节,本发明在此不作赘述。
3033、删除第一字节组中的第1个第一字节及第二字节组中的前7个第二字节,得到新的第一字节组和新的第二字节组。
得到新的第一字节组和新的第二字节组之后,返回步骤3031,直至第一字节组和第二字节组为空。
304,根据还原得到的多个字节的数据进行相应的操作。
本发明实施方式相对于现有技术而言,上位机对下位机打包得到的标记编号及整理后的数据包进行解包,得到数据还原后的数据,然后再根据还原后的数据进行相应的操作,该数据传输方法对数据长度无要求,此外只在数据头处利用第一识别符和第二识别符标识每个字节中数据的特点,可以克服数据传输方法中不能使用十六进制数进行传输的问题,因此,该数据传输方法能够灵活的进行数据传输。
本发明第三实施方式提供一种下位机50,如图5所示,该下位机50包括:
标记单元501,用于对传输数据的每个字节中的数据位进行标记及编号,所述每个字节的8个数据位具有相同的标记及由0至7的不同编号。
处理单元502,用于以7个字节为单位对所述标记单元标记的传输数据进行处理。
发送单元503,用于将数据包发送给上位机,所述数据包由第一字节组和第二字节组打包形成,所述第一字节组由多个所述第一字节组成,所述第二字节组由多个所述第二字节组成。
如图6所示,所述处理单元502包括以下子单元:
提取子单元5021,用于顺序提取所述7个字节中编号为n的数据位,所述n为大于或等于0且小于或等于7的整数,将所述顺序提取的数据位依次填充到第一字节的第1数据位至第7数据位。
n可以为0或7。
获取子单元5022,用于根据所述7个字节的每个字节中剩余的数据位得到7个第二字节的第1数据位至第7数据位,所述第二字节与所述第一字节的一个数据位一一对应。
第一填充子单元5023,用于在所述第一字节的第0数据位填充第一识别符,所述第一识别符用于标识所述第一字节中的第1数据位至第7数据位为在所述7个字节中顺序提取的编号为n的数据位。
第二填充子单元5024,用于在所述第二字节的第0数据位填充第二识别符,所述第二识别符用于标识所述第二字节中的数据位为与所述第一字节中标记相同的数据位所属字节的剩余数据位。
所述第一识别符可以为1,所述第二识别符可以为0,或所述第一识别符可以为0,所述第二识别符可以为1。
本发明实施方式相对于现有技术而言,标记单元对传输数据的每个字节中的数据位进行标记及编号,处理单元以7个字节为单位提取每个字节中相同位置的数据与新的第一识别符组成第一字节,将每个字节中剩余的7个字节与第二识别符组成第二字节,然后发送单元对第一字节和第二字节打包后的数据进行发送。该数据传输方法对数据长度无要求,此外只在数据头处利用第一识别符和第二识别符标识每个字节中数据的特点,可以克服数据传输方法中不能使用十六进制数进行传输的问题,因此,该数据传输方法能够灵活的进行数据传输。
本发明第四实施方式提供另一种下位机50,如图7所示,第四实施方式与第三实施方式大致相同,主要区别之处在于:所述下位机50还包括:转换单元504,用于在标记单元对传输数据的每个字节中的数据位进行标记及编号之前,将多个端口发送的数据转换成符合上位机处理要求的十六进制的数据。
转换单元将传输数据转换为符合上位机处理要求的数据格式,进行后续的数据处理。
本发明第五实施方式提供一种上位机80,如图8所示,该上位机80包括:
接收单元801,用于接收下位机发送的数据包。
解压单元802,用于解压所述接收单元接收的数据包,得到第一字节组和第二字节组,所述第一字节组由多个第一字节组成,所述第二字节组由多个第二字节组成,以所述第一字节组中的第1个第一字节和所述第二字节组中的前7个第二字节为单位进行数据还原。
操作单元803,用于所述上位机根据所述第一字节组和所述第二字节组进行数据还原得到的多个字节的数据进行相应的操作。
如图9所示,所述解压单元802包括以下子单元:
第一处理子单元8021,用于提取所述第一字节组中的第1个第一字节的第1数据位至编号为7的数据位,将所述第1数据位至编号为7的数据位放置在第一识别符标识的7个字节的数据位上,所述第一识别符位于所述第1个第一字节的编号为0的数据位,所述第一识别符用于标识所述第一字节中的第1数据位至编号为7的数据位为在所述7个字节中顺序提取的编号为n的数据位。
第二处理子单元8022,用于对所述第二字节组中的前7个第二字节分别提取与所述第一字节中标记相同的数据位,并将分别提取的与所述第一字节中标记相同的数据位分别放置在第二识别符标识的所述7个字节的剩余数据位上,得到完整的所述7个字节,所述第二识别符位于所述第二字节的编号为0的数据位,所述第二识别符用于标识所述第二字节中的数据位为与所述第一字节中标记相同的数据位所属字节的剩余数据位。
删除子单元8023,用于删除所述第一字节组中的第1个第一字节及所述第二字节组中的前7个第二字节,得到新的第一字节组和新的第二字节组,返回第一处理子单元,直至所述第一字节组和所述第二字节组为空。
本发明实施方式相对于现有技术而言,上位机的解压单元对下位机打包得到的标记编号及整理后的数据包进行解包,得到数据还原后的数据,然后操作单元再根据还原后的数据进行相应的操作,该数据传输方法对数据长度无要求,此外只在数据头处利用第一识别符和第二识别符标识每个字节中数据的特点,因此,该数据传输方法能够灵活的进行数据传输。
值得一提的是,本实施方式中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。各个物理单元的工作原理可以参考方法实施例中的叙述,本发明在此不再赘述。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (12)
1.一种数据传输方法,应用于下位机,其特征在于,包括:
对传输数据的每个字节中的数据位进行标记及编号,所述每个字节的8个数据位具有相同的标记及由0至7的不同编号;
以7个字节为单位进行处理,所述处理包含以下步骤:
S1、顺序提取所述7个字节中编号为n的数据位,所述n为大于或等于0且小于或等于7的整数,将所述顺序提取的数据位依次填充到第一字节的第1数据位至第7数据位;
S2、根据所述7个字节的每个字节中剩余的数据位得到7个第二字节的第1数据位至第7数据位,所述第二字节与所述第一字节的一个数据位一一对应;
S3、在所述第一字节的第0数据位填充第一识别符,所述第一识别符用于标识所述第一字节中的第1数据位至第7数据位为在所述7个字节中顺序提取的编号为n的数据位;
S4、在所述第二字节的第0数据位填充第二识别符,所述第二识别符用于标识所述第二字节中的数据位为与所述第一字节中标记相同的数据位所属字节的剩余数据位;
将数据包发送给上位机,所述数据包由第一字节组和第二字节组打包形成,所述第一字节组由多个所述第一字节组成,所述第二字节组由多个所述第二字节组成。
2.根据权利要求1所述的数据传输方法,其特征在于,在所述顺序提取所述7个字节中编号为n的数据位中,所述n为0或7。
3.根据权利要求1所述的数据传输方法,其特征在于,
所述第一识别符为1,所述第二识别符为0,或
所述第一识别符为0,所述第二识别符为1。
4.根据权利要求1所述的数据传输方法,其特征在于,在所述对传输数据的每个字节中的数据位进行标记及编号之前,所述方法还包括:
将多个端口发送的数据转换成符合上位机处理要求的十六进制的数据。
5.一种数据传输方法,应用于上位机,其特征在于,包括:
接收下位机发送的数据包;
解压所述数据包,得到第一字节组和第二字节组,所述第一字节组由多个第一字节组成,所述第二字节组由多个第二字节组成,以所述第一字节组中的第1个第一字节和所述第二字节组中的前7个第二字节为单位进行数据还原,所述数据还原包括以下步骤:
S1、提取所述第一字节组中的第1个第一字节的第1数据位至第7数据位,将所述第1数据位至第7数据位放置在第一识别符标识的7个字节的数据位上,所述第一识别符位于所述第1个第一字节的第0数据位,所述第一识别符用于标识所述第一字节中的第1数据位至第7数据位为在所述7个字节中顺序提取的编号为n的数据位;
S2、对所述第二字节组中的前7个第二字节分别提取与所述第一字节中标记相同的数据位,并将分别提取的与所述第一字节中标记相同的数据位分别放置在第二识别符标识的所述7个字节的剩余数据位上,得到完整的所述7个字节,所述第二识别符位于所述第二字节的第0数据位,所述第二识别符用于标识所述第二字节中的数据位为与所述第一字节中标记相同的数据位所属字节的剩余数据位;
S3、删除所述第一字节组中的第1个第一字节及所述第二字节组中的前7个第二字节,得到新的第一字节组和新的第二字节组,返回步骤S1,直至所述第一字节组和所述第二字节组为空。
6.根据权利要求5所述的数据传输方法,其特征在于,在完成对所述第一字节组和所述第二字节组的数据还原之后,所述方法还包括:
所述上位机根据所述第一字节组和所述第二字节组进行数据还原得到的多个字节的数据进行相应的操作。
7.一种下位机,其特征在于,包括:
标记单元,用于对传输数据的每个字节中的数据位进行标记及编号,所述每个字节的8个数据位具有相同的标记及由0至7的不同编号;
处理单元,用于以7个字节为单位对所述标记单元标记的传输数据进行处理,所述处理单元包括以下子单元:
提取子单元,用于顺序提取所述7个字节中编号为n的数据位,所述n为大于或等于0且小于或等于7的整数,将所述顺序提取的数据位依次填充到第一字节的第1数据位至第7数据位;
获取子单元,用于根据所述7个字节的每个字节中剩余的数据位得到7个第二字节的第1数据位至第7数据位,所述第二字节与所述第一字节的一个数据位一一对应;
第一填充子单元,用于在所述第一字节的第0数据位填充第一识别符,所述第一识别符用于标识所述第一字节中的第1数据位至第7数据位为在所述7个字节中顺序提取的编号为n的数据位;
第二填充子单元,用于在所述第二字节的第0数据位填充第二识别符,所述第二识别符用于标识所述第二字节中的数据位为与所述第一字节中标记相同的数据位所属字节的剩余数据位;
发送单元,用于将数据包发送给上位机,所述数据包由第一字节组和第二字节组打包形成,所述第一字节组由多个所述第一字节组成,所述第二字节组由多个所述第二字节组成。
8.根据权利要求7所述的下位机,其特征在于,所述提取子单元具体用于:
顺序提取所述7个字节中编号为0或7的数据位。
9.根据权利要求7所述的下位机,其特征在于,
所述第一识别符为1,所述第二识别符为0,或
所述第一识别符为0,所述第二识别符为1。
10.根据权利要求7所述的下位机,其特征在于,所述下位机还包括:
转换单元,用于在标记单元对传输数据的每个字节中的数据位进行标记及编号之前,将多个端口发送的数据转换成符合上位机处理要求的十六进制的数据。
11.一种上位机,其特征在于,包括:
接收单元,用于接收下位机发送的数据包;
解压单元,用于解压所述接收单元接收的数据包,得到第一字节组和第二字节组,所述第一字节组由多个第一字节组成,所述第二字节组由多个第二字节组成,以所述第一字节组中的第1个第一字节和所述第二字节组中的前7个第二字节为单位进行数据还原,所述解压单元包括以下子单元:
第一处理子单元,用于提取所述第一字节组中的第1个第一字节的第1数据位至第7数据位,将所述第1数据位至第7数据位放置在第一识别符标识的7个字节的数据位上,所述第一识别符位于所述第1个第一字节的第0数据位,所述第一识别符用于标识所述第一字节中的第1数据位至第7数据位为在所述7个字节中顺序提取的编号为n的数据位;
第二处理子单元,用于对所述第二字节组中的前7个第二字节分别提取与所述第一字节中标记相同的数据位,并将分别提取的与所述第一字节中标记相同的数据位分别放置在第二识别符标识的所述7个字节的剩余数据位上,得到完整的所述7个字节,所述第二识别符位于所述第二字节的第0数据位,所述第二识别符用于标识所述第二字节中的数据位为与所述第一字节中标记相同的数据位所属字节的剩余数据位;
删除子单元,用于删除所述第一字节组中的第1个第一字节及所述第二字节组中的前7个第二字节,得到新的第一字节组和新的第二字节组,返回第一处理子单元,直至所述第一字节组和所述第二字节组为空。
12.根据权利要求11所述的上位机,其特征在于,所述上位机还包括:
操作单元,用于所述上位机根据所述第一字节组和所述第二字节组进行数据还原得到的多个字节的数据进行相应的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310467320.3A CN104572530B (zh) | 2013-10-09 | 2013-10-09 | 一种下位机、上位机及数据传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310467320.3A CN104572530B (zh) | 2013-10-09 | 2013-10-09 | 一种下位机、上位机及数据传输方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104572530A CN104572530A (zh) | 2015-04-29 |
CN104572530B true CN104572530B (zh) | 2019-07-19 |
Family
ID=53088645
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310467320.3A Active CN104572530B (zh) | 2013-10-09 | 2013-10-09 | 一种下位机、上位机及数据传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104572530B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109660527B (zh) * | 2018-12-05 | 2020-12-29 | 上海威侃电子材料有限公司 | 一种打印机数据的压缩传输方法 |
CN110933059A (zh) * | 2019-11-22 | 2020-03-27 | 广州视源电子科技股份有限公司 | 数据通信方法和装置、电子设备、上位机、存储介质 |
CN111459713B (zh) * | 2020-06-17 | 2020-09-25 | 北京机电工程研究所 | 一种内存检测方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7782767B1 (en) * | 2005-07-20 | 2010-08-24 | Tektronix, Inc. | Method and system for calculating burst bit rate for IP interactive applications |
CN102014037A (zh) * | 2010-12-07 | 2011-04-13 | 深圳市普方科技有限公司 | 存储转发设备中实现9位数据字节的传输方法及装置 |
CN102035618A (zh) * | 2009-09-29 | 2011-04-27 | 上海华为技术有限公司 | 一种数据传输的方法、装置及系统 |
CN102262847A (zh) * | 2011-04-26 | 2011-11-30 | 葛晨阳 | 一种嵌入式led显示控制系统及其控制方法 |
CN102904634A (zh) * | 2012-09-25 | 2013-01-30 | 中兴通讯股份有限公司 | 一种otn系统中电路层维护信号的检测方法及装置 |
-
2013
- 2013-10-09 CN CN201310467320.3A patent/CN104572530B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7782767B1 (en) * | 2005-07-20 | 2010-08-24 | Tektronix, Inc. | Method and system for calculating burst bit rate for IP interactive applications |
CN102035618A (zh) * | 2009-09-29 | 2011-04-27 | 上海华为技术有限公司 | 一种数据传输的方法、装置及系统 |
CN102014037A (zh) * | 2010-12-07 | 2011-04-13 | 深圳市普方科技有限公司 | 存储转发设备中实现9位数据字节的传输方法及装置 |
CN102262847A (zh) * | 2011-04-26 | 2011-11-30 | 葛晨阳 | 一种嵌入式led显示控制系统及其控制方法 |
CN102904634A (zh) * | 2012-09-25 | 2013-01-30 | 中兴通讯股份有限公司 | 一种otn系统中电路层维护信号的检测方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104572530A (zh) | 2015-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104123364A (zh) | 一种移动终端发送和接收数据的方法及装置 | |
CN104572530B (zh) | 一种下位机、上位机及数据传输方法 | |
CN105760324B (zh) | 数据处理装置和服务器 | |
CN106462516A (zh) | 由多协议设备共享的可动态地调节的多线总线 | |
CA2671666A1 (en) | Method, communications node, and memory for dynamic dictionary updating and optimization for compression and decompression of messages | |
CN105187420B (zh) | 一种基于rs422总线的通讯协议匹配方法 | |
US6166666A (en) | Method and apparatus for compression and encoding of unicode strings | |
CN110505161B (zh) | 一种报文处理方法及设备 | |
CN107561564A (zh) | 一种北斗卫星信息传输的压缩实现方法 | |
EP2701334B1 (en) | Data reception apparatus and marker information extraction method | |
CN109167750A (zh) | 一种数据包传输方法、装置、电子设备及存储介质 | |
CN105450712B (zh) | 一种数据传输方法及装置 | |
CN202907302U (zh) | 一种led灯串的级联结构 | |
CN103365810B (zh) | 在c.a.n.总线上减少闪速存储装置编程时间的方法和设备 | |
KR20200100759A (ko) | 데이터 송신 방법, 전송 장치, 및 수신 장치 | |
CN113595980B (zh) | 基于tcp通信自定义协议的配置方法 | |
CN101212480B (zh) | 在usb主机和usb装置之间通信的方法和设备 | |
CN105653506B (zh) | 一种基于字符编码转换的gpu内文本处理的方法及装置 | |
CN106716392A (zh) | 用于串行通信的栈定时调整 | |
US7616651B2 (en) | System and method for communicating data packets | |
CN100479435C (zh) | 一种报文处理方法及系统 | |
CN110557446A (zh) | 通过att和数据分割重组来适配的通信方法及系统 | |
CN102594371B (zh) | 一种Turbo编码交织处理的方法及装置 | |
CN103138766A (zh) | 数据压缩与解压缩的方法及装置 | |
CN102769512A (zh) | 一种通用成帧规程帧定界的实现方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 200040 No. 546 Yuyuan Road, Shanghai, Jingan District Patentee after: Shanghai Institute of Computing Technology Address before: Room 205, Building 2, No. 546 Yuyuan Road, Jing'an District, Shanghai 200040 Patentee before: SHANGHAI INSTITUTE OF COMPUTING TECHNOLOGY |
|
CP03 | Change of name, title or address |