一种下位机、上位机及数据传输方法

文档序号:8258407阅读:1530来源:国知局
一种下位机、上位机及数据传输方法
【技术领域】
[0001]本发明涉及计算机领域,特别涉及一种下位机、上位机及数据传输方法。
【背景技术】
[0002]目前,下位机和上位机之间传送数据的过程(本申请中简称为“数据传输”)主要有两种传输方式。第一种传输方式是以十个字节为单位的传输方法,每次传输十个字节的数据。当需要传输的数据长度超过十个字节时,按照十个字节为单位将数据分成若干个数据块,对于长度不够十个字节的数据块,需要等待下一组数据到来时,填充够十个字节再进行传输,因此,该数据传输方式对数据长度是有要求的,即数据长度满足十个字节的整数倍时才能及时进行传输;第二种传输方式是在需要传输的数据头处用“01”作为标记,表明该数据为一个新的需要传输的数据的开始,在数据尾处用“FF”作为标记,表明该数据已完整传输,但是由于F为十六进制数,当需要传输的数据中有连续两位为FF时,系统会认为数据已经传输完毕,造成系统误判,该数据传输方法中不能使用十六进制数进行传输。因此,现有技术中的数据传输方法具有局限性。

【发明内容】

[0003]本发明的目的在于提供一种下位机、上位机及数据传输方法,能够灵活的进行数据传输。
[0004]为解决上述技术问题,本发明的实施方式提供了一种数据传输方法,应用于下位机,包括:
[0005]对传输数据的每个字节中的数据位进行标记及编号,所述每个字节的8个数据位具有相同的标记及由O至7的不同编号;
[0006]以7个字节为单位进行处理,所述处理包含以下步骤:
[0007]S1、顺序提取所述7个字节中编号为n的数据位,所述η为大于或等于O且小于或等于7的整数,将所述顺序提取的数据位依次填充到第一字节的第I数据位至第7数据位;
[0008]S2、根据所述7个字节的每个字节中剩余的数据位得到7个第二字节的第I数据位至第7数据位,所述第二字节与所述第一字节的一个数据位一一对应;
[0009]S3、在所述第一字节的第O数据位填充第一识别符,所述第一识别符用于标识所述第一字节中的第I数据位至为在所述7个字节中顺序提取的编号为η的数据位;
[0010]S4、在所述第二字节的第O数据位填充第二识别符,所述第二识别符用于标识所述第二字节中的数据位为与所述第一字节中标记相同的数据位所属字节的剩余数据位;
[0011]将数据包发送给上位机,所述数据包由第一字节组和第二字节组打包形成,所述第一字节组由多个所述第一字节组成,所述第二字节组由多个所述第二字节组成。
[0012]本发明的实施方式提供另一种数据传输方法,应用于上位机,包括:
[0013]接收下位机发送的数据包;
[0014]解压所述数据包,得到第一字节组和第二字节组,所述第一字节组由多个第一字节组成,所述第二字节组由多个第二字节组成,以所述第一字节组中的第I个第一字节和所述第二字节组中的前7个第二字节为单位进行数据还原,所述数据还原包括以下步骤:
[0015]S1、提取所述第一字节组中的第I个第一字节的第I数据位至第7数据位,将所述第I数据位至第7数据位放置在第一识别符标识的7个字节的数据位上,所述第一识别符位于所述第I个第一字节的第O数据位,所述第一识别符用于标识所述第一字节中的第I数据位至第7数据位为在所述7个字节中顺序提取的编号为η的数据位;
[0016]S2、对所述第二字节组中的前7个第二字节分别提取与所述第一字节中标记相同的数据位,并将分别提取的与所述第一字节中标记相同的数据位分别放置在第二识别符标识的所述7个字节的剩余数据位上,得到完整的所述7个字节,所述第二识别符位于所述第二字节的第O数据位,所述第二识别符用于标识所述第二字节中的数据位为与所述第一字节中标记相同的数据位所属字节的剩余数据位;
[0017]S3、删除所述第一字节组中的第I个第一字节及所述第二字节组中的前7个第二字节,得到新的第一字节组和新的第二字节组,返回步骤SI,直至所述第一字节组和所述第二字节组为空。
[0018]本发明的实施方式提供了一种下位机,包括:
[0019]标记单元,用于对传输数据的每个字节中的数据位进行标记及编号,所述每个字节的8个数据位具有相同的标记及由O至7的不同编号;
[0020]处理单元,用于以7个字节为单位对所述标记单元标记的传输数据进行处理,所述处理单元包括以下子单元:
[0021]提取子单元,用于顺序提取所述7个字节中编号为η的数据位,所述η为大于或等于O且小于或等于7的整数,将所述顺序提取的数据位依次填充到第一字节的第I数据位至第7数据位;
[0022]获取子单元,用于根据所述7个字节的每个字节中剩余的数据位得到7个第二字节的第I数据位至第7数据位,所述第二字节与所述第一字节的一个数据位一一对应;
[0023]第一填充子单元,用于在所述第一字节的第O数据位填充第一识别符,所述第一识别符用于标识所述第一字节中的第I数据位至第7数据位为在所述7个字节中顺序提取的编号为η的数据位;
[0024]第二填充子单元,用于在所述第二字节的第O数据位填充第二识别符,所述第二识别符用于标识所述第二字节中的数据位为与所述第一字节中标记相同的数据位所属字节的剩余数据位;
[0025]发送单元,用于将数据包发送给上位机,所述数据包由所述第一字节组和所述第二字节组打包形成,所述第一字节组由多个所述第一字节组成,所述第二字节组由多个所述第二字节组成。
[0026]本发明的实施方式提供一种上位机,包括:
[0027]接收单元,用于接收下位机发送的数据包;
[0028]解压单元,用于解压所述接收单元接收的数据包,得到第一字节组和第二字节组,所述第一字节组由多个第一字节组成,所述第二字节组由多个第二字节组成,以所述第一字节组中的第I个第一字节和所述第二字节组中的前7个第二字节为单位进行数据还原,所述解压单元包括以下子单元:
[0029]第一处理子单元,用于提取所述第一字节组中的第I个第一字节的第I数据位至第7数据位,将所述第I数据位至第7数据位放置在第一识别符标识的7个字节的数据位上,所述第一识别符位于所述第I个第一字节的第O数据位,所述第一识别符用于标识所述第一字节中的第I数据位至第7数据位为在所述7个字节中顺序提取的编号为η的数据位;
[0030]第二处理子单元,用于对所述第二字节组中的前7个第二字节分别提取与所述第一字节中标记相同的数据位,并将分别提取的与所述第一字节中标记相同的数据位分别放置在第二识别符标识的所述7个字节的剩余数据位上,得到完整的所述7个字节,所述第二识别符位于所述第二字节的第O数据位,所述第二识别符用于标识所述第二字节中的数据位为与所述第一字节中标记相同的数据位所属字节的剩余数据位;
[0031]删除子单元,用于删除所述第一字节组中的第I个第一字节及所述第二字节组中的前7个第二字节,得到新的第一字节组和新的第二字节组,返回第一处理子单元,直至所述第一字节组和所述第二字节组为空。
[0032]本发明实施方式相对于现有技术而言,首先对传输数据的每个字节中的数据位进行标记及编号,然后以7个字节为单位提取每个字节中相同位置的数据与新的第一识别符组成第一字节,将每个字节中剩余的7个字节与第二识别符组成第二字节,然后将第一字节和第二字节打包进行传输。该数据传输方法对数据长度无要求,此外只在数据头处利用第一识别符和第二识别符标识每个字节中数据的特点,可以克服数据传输方法中不能使用十六进制数进行传输的问题,因此,该数据传输方法能够灵活的进行数据传输。
[0033]另外,在所述顺序提取所述7个字节中编号为η的数据位中,所述η为O或7。
[0034]当η为O时,提取每个字节中第O数据位的数据,使得所述第一字节中的每个数据位的数据为每个字节起始数据位;当η为7时,提取每个字节中第7数据位的数据,使得所述第一字节中的每个数据位的数据为每个字节末尾
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1