电力载波及自组网射频系统中的智能家居数据传输方法
【技术领域】
[0001] 本发明涉及智能家居的控制及系统实施领域,尤其是涉及电力载波及自组网射频 系统中的智能家居数据传输方法。
【背景技术】
[0002] 智能家居以住宅为平台,利用综合布线技术、网络通信技术、智能家居-系统设计 方案安全防范技术、自动控制技术、音视频技术将家居生活有关的设施集成,构建高效的住 宅设施与家庭日程事务的管理系统,提升家居安全性、便利性、舒适性、艺术性,并实现环保 节能的居住环境。在智能家居系统中,对各种家居设备的控制显得尤为重要,而其中一个重 要的方面就是:各种指令的传输。目前,对家电控制的传输技术较多,如WIFI、蓝牙、2G、3G、 ZigBEE等,但是对于电力载波(PLC,PowerlineCommunicationPLC)与自组网射频通信传 输的研宄和应用较少。电子载波与自组网射频通信结合在一起,具有避免别墅、跃层建筑墙 多的特点。然而,该方法也存在明显的缺点:在用户密集的社区,信息容易出现衰减;特别 是对于较长的数据帧通讯,丢包较严重。因此,在电力载波与自组网射频通信传输条件下, 如何针对智能家居系统特点,有效降低数据帧的长度,提高传输效率,成为了一个亟待研宄 和解决的问题
【发明内容】
[0003] 针对上述现有技术中的缺陷,本发明解决了电力载波与自组网射频通信传输条件 下,针对智能家居系统特点,有效降低数据帧的长度,提高传输效率的问题。
[0004] 为了达到上述目的,本发明提供如下技术方案:
[0005] 电力载波及自组网射频系统中的智能家居数据传输方法,包括:
[0006] 步骤S101,发送装置将设备操作指令中的指令数据进行高位编码压缩,将压缩后 的设备操作指令发送到智能家居设备;
[0007] 步骤S102,本地操控设备接收所述压缩后的设备操作指令,对该设备操作指令中 的指令数据进行低位编码解压,获取解码后的设备操作指令;
[0008] 步骤S103,本地操控设备根据所述解码后的设备操作指令进行控制操作。
[0009] 在一种优选的实施方式中,所述步骤S101中包括:
[0010] 步骤S1011,对设备操作指令中的指令帧格式进行解码,提取当前编码的指令数 据;
[0011] 步骤S1012,对所述当前编码的指令数据进行高位编码压缩;
[0012] 步骤S1013,将压缩后的设备操作指令封装为发送数据包;
[0013] 步骤S1014,将所述发送数据包发送到本地操控设备。
[0014] 在一种优选的实施方式中,所述当前编码的指令数据的位数为16位。
[0015] 在一种优选的实施方式中,所述步骤S1012中包括:
[0016] 将所述当前编码的指令数据,从16位转换为64位,进行高位编码压缩。
[0017] 在一种优选的实施方式中,所述将所述当前编码的指令数据,从16位转换为64 位,进行高位编码压缩的步骤包括:
[0018] 从所述当前编码中提取指令数据,对照16位转换为64位的对应表,将该提取指令 数据从16位转换为64位,进行高位编码压缩。
[0019] 在一种优选的实施方式中,所述步骤S101中还包括:
[0020] 若设备操作指令封装后的数据字节,大于设定字节,则将设备操作指令中的指令 数据进行高位编码压缩,将压缩后的设备操作指令发送到智能家居设备。
[0021] 在一种优选的实施方式中,所述步骤S102中包括:
[0022] 步骤S1021,本地操控设备接收所述压缩后的设备操作指令,从该设备操作指令中 的指令帧格式进行解码,提取指令数据;
[0023] 步骤S1022,对所述指令数据进行低位编码解压。
[0024] 在一种优选的实施方式中,所述步骤S1022中包括:
[0025] 所述指令数据,从64位转换为16位,进行低位编码解压,获取解码后的设备操作 指令。
[0026] 在一种优选的实施方式中,所述将该指令数据,从64位转换为16位,进行低位编 码解压,获取解码后的设备操作指令的步骤包括:
[0027] 从所述该指令数据中提取指令数据,对照64位转换为16位的对应表,将该提取指 令数据从64位转换为16位,进行低位编码解压。
[0028] 在一种优选的实施方式中,所述步骤S102后还包括:
[0029] 若所述解码后的设备操作指令的字节数大于检测字节数,则向发送装置发送设备 操作指令的重发请求。
[0030] 本发明的的有益效果为:本发明根据电力载波与自组网射频通信传输条件下智能 家居系统的特点,自定义了智能家居控制指令的64位编码表;自定义了传输协议;发明了 电力载波与自组网射频通信传输条件下智能家居指令的不定长编码压缩算法;发明了电力 载波与自组网射频通信传输条件下智能家居指令的不定长压缩解码算法。可以有效避免传 输过程中的分包问题,保障数据传输的准确性和实时性,提高了电力载波与自组网射频通 信传输条件下智能家居系统的性能。
【附图说明】
[0031] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。
[0032] 图1为本发明一种实施方式中,电力载波及自组网射频系统中的智能家居数据传 输方法的流程示意图。
【具体实施方式】
[0033] 下面将结合本发明的附图,对本发明的技术方案进行清楚、完整地描述,显然,所 描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例, 本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发 明保护的范围。
[0034] 如图1所示,电力载波及自组网射频系统中的智能家居数据传输方法,包括:
[0035] 步骤S101,将设备操作指令中的指令数据进行高位编码压缩。
[0036] 在本步骤中,发送装置将设备操作指令中的指令数据进行高位编码压缩,将压缩 后的设备操作指令发送到智能家居设备。
[0037] 步骤S102,获取解码后的设备操作指令。
[0038] 在本步骤中,本地操控设备接收所述压缩后的设备操作指令,对该设备操作指令 中的指令数据进行低位编码解压,获取解码后的设备操作指令;
[0039] 步骤S103,本地操控设备根据所述解码后的设备操作指令进行控制操作。
[0040] 在一种优选的实施方式中,所述步骤S101中包括:
[0041] 步骤S1011,对设备操作指令中的指令帧格式进行解码,提取当前编码的指令数 据;
[0042] 步骤S1012,对所述当前编码的指令数据进行高位编码压缩;
[0043] 步骤S1013,将压缩后的设备操作指令封装为发送数据包;
[0044] 步骤S1014,将所述发送数据包发送到本地操控设备。
[0045] 在一种优选的实施方式中,所述当前编码的指令数据的位数为16位。
[0046] 在一种优选的实施方式中,所述步骤S1012中包括:
[0047] 将所述当前编码的指令数据,从16位转换为64位,进行高位编码压缩。
[0048] 在一种优选的实施方式中,所述将所述当前编码的指令数据,从16位转换为64 位,进行高位编码压缩的步骤包括:
[0049] 从所述当前编码中提取指令数据,对照16位转换为64位的对应表,将该提取指令 数据从16位转换为64位,进行高位编码压缩。
[0050] 在一种优选的实施方式中,所述步骤S101中还包括:
[0051] 若设备操作指令封装后的数据字节,大于设定字节,则将设备操作指令中的指令 数据进行高位编码压缩,将压缩后的设备操作指令发送到智能家居设备。
[0052] 在一种优选的实施方式中,所述步骤S102中包括:
[0053] 步骤S1021,本地操控设备接收所述压缩后的设备操作指令,从该设备操作指令中 的指令帧格式进行解码,提取指令数据;
[0054] 步骤S1022,对所述指令数据进行低位编码解压。
[0055] 在一种优选的实施方式中,所述步骤S1022中包括:
[0056] 所述指令数据,从64位转换为16位,进行低位编码解压,获取解码后的设备操作 指令。
[0057] 在一种优选的实施方式中,所述将该指令数据,从64位转换为16位,进行低位编 码解压,获取解码后的设备操作指令的步骤包括:
[0058] 从所述该指令数据中提取指令数据,对照64位转换为16位的对应表,将该提取指 令数据从64位转换为16位,进行低位编码解压。
[0059] 在一种优选的实施方式中,所述步骤S102后还包括:
[0060] 若所述解码后的设备操作指令的字节数大于检测字节数,则向发送装置发送设备 操作指令的重
发请求。
[0061] 下面列举具体实例对上述方法给予说明,本发明中的传输内容及要求为:需要把 各种设备的指令归类,进行功能说明,并进行16进制编码,指令数量不能超过64个,但是也 不要少于32个。其中,包括的协议类型为:C遥测,T遥调,K遥控,X遥信,具体功能如下所 不〇
[0065]
[0066]
[0068]
[0069]
[0070] 本发明中传输协议中指令帧格式定义如表1所示
[0071] 表1.指令帧格式定义
[0073] 帧结构解析为:
[0074]Header:帧头,4Byte,下行定义为:A5A5A5A5 ;上行定义为:F0F0F0F0 ;
[0075]Length:帧长度,lByte,表示从Data_l到Data_N的字节总数。
[0076]Dev_ID:设备唯一识别码,4Byte,从 0X00000002 ~0XFFFFFFFE
[0077]In_Code:命令编码,lByte
[0078]SubDev_ID:子设备类型编码,lByte
[0079] REST :用于压缩后的剩余字节位数,取值{0, 1,2},lByte.
[0080]Data_l-Data_N:指令数据,1 ~20Byte
[0081]X0R:校验和,lByte,对Dev_ID、In_Code、SubDev_ID、REST、Data_l、Data_2、…、 Data_N的逐字节异或值。
[0082] 本发明中的传输协议的压缩编码过程为:
[0083] 在电力载波与自组网射频通信传输条件下,部分传输数据进行封装后,总数据包 可能超过XX字节,需要进行分包处理。然而,一旦进行分包,会导致丢包,影响对智能 家居产品的控制和用户体验。为了处理以上情况,需要对指令帧中的数据区域Data_l、 Data_2、…、Data_N中的传输数据进行压缩编码处理。原有的传输数据是采用的是16进 制编码,如果采用64位编码将能降低传输数据的整体长度。因此,我们构造了如下16进制 到64进制的转换编码表(如表2所示)。
[0084]表2. 16进制转64进制编码表
[0087]~具体可通过下述算法1 :电力载波与自组网射频通信传输条件下智能家居指令的 不定长编码压缩算法给予实现。
[0088] 输入:1条指令Instruction(指令格式参见表1)
[0089] 输出:压缩后的指令New_Instruction
[0090]步骤 1 :初始化:New-Length = 0 ;REST = 0 ;
[0091] 步骤2 :读入指令Instruction,得到Instruction中的长度Length、N个指令数据 Data-1--Data-N〇
[0092] 2. 1更新压缩后的编码长度:
[0093] 令 IntXI= Length*2 ;
[0094] IFXI= = 0THEN 转步骤 6 ;
[0095] ELSE New_Length = (X1M0D3) + (Xl/3)*2 ;
[0096] END IF
[0097] 2. 2将N个指令数据保存:
[0098] 定义数组Instr_Data,将N个指令数据Data_l、Data_2、…、Data_N依次保存在 数组 Instr_Data 中。
[0099] 定义数组New_Instr_Data,用于存储压缩后的数据。
[0100] 步骤3 :将New_Instr_Data中的数据进行压缩:16进制转换为64进制。
[0101] 3. 1依次处理,每3位16进制编码压缩为2位64进制编码。
[0102] FOR k = 1T0 Length/3D0
[0103] 从Instr_Data中依次读入3个字符,假设三个字符依次为al、a2、a3,
[0104]则
[0105]令Sum=al*16*16+a2*16+a3*;
[0106] 令 bl =Sum/64 ;b2 =SumMOD 64 ;
[0107] 根据表2,在编号列中查找bl,并找到bl所对应的64进制编码值cl;
[0108] 根据表2,在编号列中查找b2,并找到b2所对应的64进制编码值c2;
[0109] 将cl和c2依次写入数组New_Instr_Data中。
[0110] END FOR
[0111] 3. 2还有未处理的16进制编码。
[0112] IF Length MOD 3 = = 1THEN
[0113] REST = 1;
[0114] 假设读入的字符为dl,
[0115] 根据表2,在编号列中查找dl,并找到al所对应的64进制编码值c3;
[0116]将c3 写入数组 New_Instr_Data 中。
[0117] END IF
[0118] IF Length MOD 3 = = 2THEN
[0119] REST = 2;
[0120] 取出Instruction的最后两位字符el、e2 ;
[0121] 令Sum1 =el*16+e2* ;
[0122] 令fl=Sum1/64 ;f2 =SumlMOD64 ;
[0123] 根据表2,在编号列中查找fl,并找到fl所对应的64进制编码值c4 ;
[0124] 根据表2,在编号列中查找f2,并找到f2所对应的64进制编码值c5 ;
[0125] 将c4和c5依次写入数组New_Instr_Data中。
[0126]ENDIF
[0127]步骤 4 :对Dev_ID、In_Code、SubDev_ID、REST、New_Instr_Data中的数据依次进 行异或运算,并记录为XOR。
[0128] 步骤5 :结合表2,将New_Length表示成1位的64进制编码数据New_Lengthl。
[0129]步骤 6 :将New_Lengthl、New_Instr_Data、REST、X0R以及Instruction中的其它 数据,组合成一条新的指令New_Instruction。
[0130]步骤 7 :输出New_Instruction〇
[0131]实例1 :
[0132] 假设输入一条16进制指令instruction= {
[0133]Header= A5A5A5A5;
[0134]Length = 000A;
[0135]Dev-ID = 00000004 ;
[0136]In-Code= 2B;
[0137]SubDev-ID= 33 ;
[0138]REST= 0 ;
[0139]Data-1-Data-N= {56, 03, 23,a3, 31,4c,30, 48, 10, 53};
[0140]X0R= 0 ;}
[0141]将Instruction输入到算法1,
[0142]New-Length= 20,New-Length= 14;REST= 2 ;
[0143]可以将 Data_l-Data_N存储为:
[0144]Re-Data[20] = {5, 6, 0, 3, 2, 3,a,3, 3,1,4,c,3, 0, 4, 8,1,0, 5, 3};
[0145] 5,6,0 - 21,32 - xO ;3,2,3 - 12,35 - cz ;a,3,3 - 40,51 - EP ; 1,4, c - 5, 12 - 5i ;
[0146] 3, 0, 4 - 12, 4 -c4 ;8, 1,0 - 32, 1 -wl;5, 3 - 1j;
[0147] New-Instr-Data[14] = {x0, cz,EP,5i,c4, wl,1 j};
[0148] 最终得到指令Instruction的压缩结果为:New_Instruction= {
[0149]Header=A5A5A5A5 ;
[0150]Length=e;
[0151]Dev-ID= 00000004 ;
[0152]In-Code= 2B;
[0153]SubDev-ID= 33 ;
[0154]REST= 2 ;
[0155] Data-1-Data-N = {x0, cz,EP,5i,c4, wl,1 j};
[0156] XOR= 1 ;}
[0157] 在表1中,有一个标识字节REST,用于记录解压时最后需要保留的字符位数。结合 表1的指令定义,可以设计一个传输协议的压缩编码算法。该算法可以对不定长的16进制 编码进行压缩,每3位16进制数可以压缩成2位64进制数。压缩率达到2/3 = 66%。
[0158] 可通过下述算法2电
力载波与自组网射频通信传输条件下智能家居指令的不定 长压缩解码算法实现传输协议的压缩解码。
[0159] 输入:1条压缩后的指令Instruction(如表1所示)
[0160] 输出:解压后的指令Re_Instruction
[0161] 步骤 1 :初始化:Re_Length= 0 ;
[0162] 步骤2 :读入指令Instruction,得到Instruction中的长度Length(通过查表2 转为数值)、REST、N个指令数据Data_l-Data_N。
[0163] 2. 1更新解压后的编码长度:
[0164] 令IntXI=Length;
[0165] IFXI= = 0THEN转步骤 6 ;
[0166] ELSERe_Length= (XI-REST) *3/2+REST;
[0167] ENDIF
[0168] 2. 2将N个指令数据保存:
[0169] 定义数组Re_Data,将N个指令数据Data_l、Data_2、…、Data_N依次保存在数组 Re_Data中。
[0170] 定义数组New_Re_Data,用于存储解压后的数据。
[0171] 步骤3 :将New_ReData中的数据进行解压:64进制转换为16进制。
[0172] 3. 1 (原始数据的长度为3的整数倍)
[0173] IFREST= = 0THEN
[0174] FORk= 1T0Length/2D0
[0175] 从Re_Data依次读入2个字符,并将这2个字符转为对应的数值cl、c2,
[0176] 贝lj :
[0177] 令 Sum=cl*64+c2 ;
[0178] 令 bl =Sum/16 ;b2 = SumMOD 16 ;
[0179] b3 = Sum/16 ;b4 = SumMOD 16 ;
[0180] 根据表2,在编号列中查找b3,并找到b3所对应的16进制编码值al;
[0181] 根据表2,在编号列中查找b4,并找到b4所对应的16进制编码值a2 ;
[0182] 根据表2,在编号列中查找bl,并找到bl所对应的16进制编码值a3 ;
[0183] 将al、a2和a3依次写入数组New_Re_Data中。
[0184] ENDFOR
[0185] 3. 2 (原始数据的长度不为3的整数倍)
[0186] IFREST= = 1THEN
[0187] 对于Instruction中的前面Re_Length-REST位,执行与3. 1的相同操作;
[0188] 此外,结合表2,将最后1位查表2得到16进制编码,写入数组New_Re_Data中。
[0189] ENDIF
[0190]IFREST= = 2THEN
[0191] 对于Instruction中的前面Re_Length-REST位,执行与3. 1的相同操作;
[0192] 此外,结合表2,将Instruction的最后1位转为2位的16进制编码,写入数组 New_Re_Data中。
[0193]ENDIF
[0194] 步骤4 :对New_Re_Data中的数据依次进行异或运算,并记录为XOR。
[0195] 步骤5 :结合表2,将Re_Length/2表示成2位的16进制编码数据Re_Lengthl〇
[0196]步骤 6 :将Re_Lengthl、New_Re_Data、X0R以及Instruction中的其它数据,组合 成一条新的指令Re_Instruction〇
[0197]步骤 7 :输出Re_Instruction〇
[0198]实例 2,
[0199]在算法 2 中,输入指令New_Instruction= {
[0200] Header=A5A5A5A5 ;
[0201] Length=e;
[0202] Dev-ID= 00000004 ;
[0203]In_Code= 2B;
[0204]SubDev-ID= 33 ;
[0205]REST= 2 ;
[0206] Data-1-Data-N= {x0,cz,EP,5i,c4,wl,1j};
[0207]X0R= 1 ;}
[0208] 即可得到原指令Instruction= {
[0209]Header=A5A5A5A5 ;
[0210] Length= 000A;
[0211] Dev-ID= 00000004 ;
[0212] In_Code= 2B;
[0213]SubDev-ID= 33 ;
[0214]REST= 0 ;
[0215]Data-1-Data-N= {56, 03, 23,a3, 31,4c,30, 48, 10, 53};
[0216]X0R= 0 ;}
[0217] 以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何 熟悉本技术领域的技术人员在本发明掲露的技术范围内,可轻易想到变化或替换,都应涵 盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
【主权项】
1. 电力载波及自组网射频系统中的智能家居数据传输方法,其特征在于,包括: 步骤S101,发送装置将设备操作指令中的指令数据进行高位编码压缩,将压缩后的设 备操作指令发送到智能家居设备; 步骤S102,本地操控设备接收所述压缩后的设备操作指令,对该设备操作指令中的指 令数据进行低位编码解压,获取解码后的设备操作指令; 步骤S103,本地操控设备根据所述解码后的设备操作指令进行控制操作。2. 根据权利要求1所述的智能家居数据传输方法,其特征在于,所述步骤SlOl中包 括: 步骤S1011,对设备操作指令中的指令帧格式进行解码,提取当前编码的指令数据; 步骤S1012,对所述当前编码的指令数据进行高位编码压缩; 步骤S1013,将压缩后的设备操作指令封装为发送数据包; 步骤S1014,将所述发送数据包发送到本地操控设备。3. 根据权利要求2所述的智能家居数据传输方法,其特征在于,所述当前编码的指令 数据的位数为16位。4. 根据权利要求3所述的智能家居数据传输方法,其特征在于,所述步骤S1012中包 括: 将所述当前编码的指令数据,从16位转换为64位,进行高位编码压缩。5. 根据权利要求4所述的智能家居数据传输方法,其特征在于,所述将所述当前编码 的指令数据,从16位转换为64位,进行高位编码压缩的步骤包括: 从所述当前编码中提取指令数据,对照16位转换为64位的对应表,将该提取指令数据 从16位转换为64位,进行高位编码压缩。6. 根据权利要求1或2所述的智能家居数据传输方法,其特征在于,所述步骤SlOl中 还包括: 若设备操作指令封装后的数据字节,大于设定字节,则将设备操作指令中的指令数据 进行高位编码压缩,将压缩后的设备操作指令发送到智能家居设备。7. 根据权利要求1所述的智能家居数据传输方法,其特征在于,所述步骤S102中包 括: 步骤S1021,本地操控设备接收所述压缩后的设备操作指令,从该设备操作指令中的指 令帧格式进行解码,提取指令数据; 步骤S1022,对所述指令数据进行低位编码解压。8. 根据权利要求7所述的智能家居数据传输方法,其特征在于,所述步骤S1022中包 括: 所述指令数据,从64位转换为16位,进行低位编码解压,获取解码后的设备操作指令。9. 根据权利要求8所述的智能家居数据传输方法,其特征在于,所述将该指令数据,从 64位转换为16位,进行低位编码解压,获取解码后的设备操作指令的步骤包括: 从所述该指令数据中提取指令数据,对照64位转换为16位的对应表,将该提取指令数 据从64位转换为16位,进行低位编码解压。10. 根据权利要求1所述的智能家居数据传输方法,其特征在于,所述步骤S102后还包 括:
【专利摘要】本发明提供了电力载波及自组网射频系统中的智能家居数据传输方法,包括:发送装置将设备操作指令中的指令数据进行高位编码压缩;本地操控设备接收压缩后的设备操作指令,对该设备操作指令中的指令数据进行低位编码解压,获取解码后的设备操作指令;本地操控设备根据解码后的设备操作指令进行控制操作。从而,本发明解决了电力载波与自组网射频通信传输条件下,针对智能家居系统特点,有效降低数据帧的长度,提高传输效率的问题。因此,可以有效避免传输过程中的分包问题,保障数据传输的准确性和实时性,提高了电力载波与自组网射频通信传输条件下智能家居系统的性能。
【IPC分类】G05B15/02, G05B19/418
【公开号】CN104898450
【申请号】CN201510333347
【发明人】舒海东, 佘兴隆
【申请人】重庆本原致创科技发展有限公司
【公开日】2015年9月9日
【申请日】2015年6月16日