具体实施方式
下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先对本申请涉及的相关技术进行介绍和解释:
广播包和组播包数据长度编码配网:
配网设备(例如:手机)发送UDP报文传递信息,UDP报文的特点是可以发送广播数据,长度从0到最大的MAC报文长度减去前面的报文首部,该长度可以传递配网需要的信息。
在一种情况下,可以连续发送三个长度为1248长度的数据报文表示一键配网smartconfig的开始,后面接数据帧。数据帧里可以传递无线路由器的SSID和密码。由于smartconfig使用的是UDP报文传递,在发送时没有顺序,因此,需要对发送的数据设置索引字段。
包数据长度编码配网方式的缺点是传递效率低,由于信息仅能靠长度来传递,而且报文的长度是受限的,则每个报文的信息量是很有限的,传递一个长度是1248长度的数据帧,传递的信息也仅仅是两个字节的数据0X04E0(0x04e0=1248),传递信息的效率是相当低的,1248是UDP报文的长度,加上前面的UDP包头IP包头,MAC包头等可能要超过1300个字节,则传输的效率就是2/1300=0.0015,情况更糟的是,2个字节传递的信息是0-0xFFFF,就是0-65535,MAC层的报文长度最大是1500个字节,也就是说,即便使用最大的报文长度传递信息连两个字节也传递不了,再去掉索引数据,一般一个报文只能传递一个字节数据。这样传递的效率就更低了。所以smartconfig广播UDP配网的效率普遍较慢,在密码和SSID比较长的情况下,还有配网失败的情况发生。
组播包地址编码配网:
为了克服包数据长度配网的缺陷,出现了组播配网的应用。组播和广播一样,都是一种可以被附近配网设备接收到的报文,但由于组播地址有多个,可以使用组播的地址来传递信息。
IP组播地址范围224.0.0.0到239.255.255.255;
MAC组播地址01-00-5E-00-00-00到01-00-5E-7F-FF-FF。
IP与MAC之间有对应关系。对于配网而言,一般情况下IP地址是加密的字段,用户无法看到,所以使用组播MAC地址来传递信息。
从上面的地址可以看出组播地址有个较大的范围,地址有三个字节是变化的,因此可以使用这三个变化的地址空间来传递信息。同样由于每次只能传递三个字节,还需要一个顺序字段,一般会占用一个字节,这样还有两个字节来传递信息。
由于组播配网的数据部分不需要传递信息,所以传递的数据长度大大降低,传递效率很高,组播配网的效率和速度都远远高于广播长度字段配网效率。
为了解决现有技术中的上述至少一个技术问题,本申请实施例提供了一种配网方法,通过对包含信道编号的信道锁定包,包含ssid和密码的控制信息包以及配网数据包,均采用组播包地址编码和广播包长度编码,使得配网兼具组播配网的速度和包数据长度配网的通用性,使用更加灵活。
下面通过对几个示例性实施方式的描述,对本申请实施例的技术方案以及本申请的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
图1为本申请实施例提供的一种配网方法的流程示意图。如图1所示的方法可以由用户设备执行,该方法包括:
S101、获取目标接入点AP(Access Point)的服务集标识ssid(Service SetIdentifier)和密码(password),以及该目标接入点AP所使用的信道的编号。
S102、循环多次发送包含信道编号的信道锁定包。
S103、发送包含ssid和密码的控制信息包。
S104、发送包含ssid和密码的配网数据包。
其中,信道锁定包、控制信息包和配网数据包均采用组播包地址编码和包数据长度编码。
在该实施例中,通过对包含信道编号的信道锁定包,包含ssid和密码的控制信息包以及配网数据包,均采用组播包地址编码和包数据长度编码,使得配网兼具组播配网的速度和包数据长度配网的通用性,使用更加灵活。
具体的,在该实施例中,控制信息包和配网数据包的发送顺序不受限制,在循环多次发送包含信道编号的信道锁定包之后,可以先发送控制信息包后发送配网数据包,也可以先发送配网数据包后发送控制信息包。
另外,在本申请实施例中,循环多次发送信道锁定包,可以提高待配网设备接收并利用信道锁定包锁定配网信道的成功率。
在一些实施例中,如果信道锁定包、控制信息包和配网数据包均采用组播包地址编码,则将各个包内的信息存储至组播包MAC地址字段的低23bit位。
也就是说,为了保持配网的快速性,可以选择使用组播MAC地址配网。由组播包的发包协议可知,可使用MAC地址的低23bit编码传输数据。所以在本申请的实施例中,使用MAC地址低16bit传输完整的2字节数据,中间7bit用以传输标识符,用以消息验证和排序等。
在一个可选实施例中,信道锁定包为一个MAC地址编码固定的包,包括:用于指示包的类型的标识符和用于传输信道编号的第一数据,第一数据使用MAC地址字段的低16bit位存储。
该实施例中的信道锁定包的具体结构可以如下表1所示。
表1
阶段 |
标识符 |
Data[1] |
Data[0] |
信道锁定包 |
0x7e |
channel |
channel |
表1所示的信道锁定包的标识符为0x7e,数据部分的两字节用于传输信道编号,传输两遍用于自校验。应理解,表1中所示的标识符0x7e仅为示例,并不对本申请实施例的技术方案构成任何限定,标识符可以根据实际情况进行调整。
在一个可选实施例中,通过控制信息包发送的数据包括:总数据长度、密码长度和ssid的校验值。
控制信息包的个数为两个,例如:第一控制信息包和第二控制信息包。
每个控制信息包包括:指示包的类型的标识符和用于传输与ssid和密码相关的第二数据,第二数据使用MAC地址字段的低16bit位存储。
两个控制信息包中的一个包中还包括用于校验通过两个控制信息包发送的所有数据的第一校验值。
例如:在该实施例中,第一控制信息包中的第二数据包括总数据长度和密码长度。第二控制信息包中的第二数据包括ssid的校验值,第二控制信息包中还包括用于校验通过两个控制信息包发送的所有数据的第一校验值。
具体的,在该实施例中,通过控制信息包发送的数据有三个,包括一个字节的总数据长度:password长度+ssid长度+2(1字节的随机数,1字节crc8校验值)。一个字节的password长度。一个字节的ssid的crc8校验值。最后发送一个字节的crc8校验值(即为上文中的第一校验值),用于校验控制信息包所发送的数据。crc8校验值表示采用crc校验得到的校验值为8bit。
该实施例中的控制信息包的具体结构可以如下表2所示。
表2
表2中所示的一组控制信息包中的两个包(第一控制信息包和第二控制信息包)可以分别使用标识符0x71、0x72进行标识,Data0、Data1用以发送实际的数据。
应理解,表2中所示的标识符0x71、0x72仅为示例,并不对本申请实施例的技术方案构成任何限定,标识符可以根据实际情况进行调整。另外,第一控制信息包和第二控制信息包的发送顺序不受限制,包中的具体内容可以根据实际情况进行调整。例如:第一控制信息包中的数据包括总数据长度和ssid的校验值。第二控制信息包中的第二数据包括密码长度,第二控制信息包中还包括用于校验通过两个控制信息包发送的所有数据的第一校验值。或者,第一控制信息包中的数据包括密码长度和ssid的校验值。第二控制信息包中的第二数据包括总数据长度,第二控制信息包中还包括用于校验通过两个控制信息包发送的所有数据的第一校验值。
在一个可选实施例中,配网数据包的个数为至少一个,每个配网数据包包括:指示包的顺序的标识符和2字节数据,2字节数据使用MAC地址字段的低16bit位存储。
每个配网数据包中的2字节数据从配网数据字符串中依次获取,配网数据字符串包括用于存储密码信息的密码字段、随机数、用于存储ssid信息的ssid字段和第二校验值。
需要说明的是,在该实施例中,配网数据中可能包含password信息、ssid信息,一定会包含一个字节的随机数。配网加密AP会发送password信息,配网隐藏ssid会发送ssid信息。上述第二校验值用于校验配网数据字符串中的数据,该数据包括:随机数;或者,密码信息、随机数;或者,密码信息、随机数、ssid信息;或者,ssid信息、随机数。
其中,配网数据字符串可以按照:密码字段+随机数+ssid字段+第二校验值的顺序构成,也可以按照其他顺序构成,例如:随机数+密码字段+ssid字段+第二校验值,或者,第二校验值+随机数+密码字段+ssid字段等等顺序。
还需要说明的是,如果配网非加密AP,则不需要发送password信息,这种情况下,密码字段为空,即:密码字段的长度为0字节;如果如果配网非隐藏ssid的AP,则不需要发送ssid信息,这种情况下,ssid字段为空,即:ssid字段的长度为0字节。
因此,本申请中的配网方案适用于“非隐藏加密AP、非隐藏不加密AP、隐藏加密AP、隐藏不加密AP”全部场景的配网。
配网数据包中的标识符为编号,用于指示包的发送顺序,编号的取值在0至(数据总长度+1)/2之间。作为一个示例,发送配网数据的过程可以为:
组织全部数据all_data,使数据按顺序:password+随机数+ssid进行组合,然后计算crc8,并将计算结果放置在数据字符串的末尾,等待一起发送。
以2字节为一组发送数据,从高位(数据字符串的左侧)开始发送。末尾不足2字节时data[0]补0。若最终数据长度为N,可以如下表3所示进行组包发送。
例如:标识符为1则为第一组包,包括数据all_data1、all_data0;标识符为2则为第二组包,包括all_data3、all_data2等等。
表3
在该实施例中,配网数据发送阶段中的各个配网数据包总的标识符为序号,从而保证数据不会乱序,以crc8校验值来保证数据的准确性,从而可以稳定传输较长的数据。
需要说明的是,可以重复多次发送配网数据,例如:5次及以上。
在另一些实施例中,如果信道锁定包、控制信息包和配网数据包均采用包数据长度编码,则将各个包内的信息存储至包的长度字段中,其中,存储各个包内的信息的长度为8bit。
在一个可选实施例中,信道锁定包的个数至少为两个,每个信道锁定包的长度固定,且至少两个信道锁定包的长度之间满足预设条件,预设条件为:长度按照至少两个信道锁定包的发送顺序以预设步长依次增大。
每个信道锁定包包括:用于指示包的类型和顺序的标识符和用于传输包的长度的第三数据,标识符使用8bit中的高4bit位存储,第三数据使用8bit中的低4bit位存储。
例如:该实施例中的信道锁定包的具体结构可以如下表4所示。这4个包的长度分别为1024bit、1025bit、1026bit、1027bit。
下表4中长度HEX字段表征的是标识符,该标识符用于指示对应包的类型和发送顺序,长度DEC字段表征的是对应包的长度。
表4
需要说明的是,信道锁定包可以为2个、3个、4个等等,每个信道锁定包的长度是固定的,多个信道锁定包的长度按照多个信道锁定包的发送顺序以预设步长依次增大,即:多个信道锁定包的长度可以组成等差数列,例如:有3个信道锁定包(A、B、C,对应的发包顺序为1、3、2)的情况下,包A的长度为512、包C的长度为520、包B的长度为528,即:预设步长为8bit。
在一个可选实施例中,通过控制信息包发送的数据包括:总数据长度、密码长度和ssid的校验值,以及密码长度的校验值。
控制信息包包括两组,例如:可以记为第一组控制信息包和第二组控制信息包,每组控制信息包中包括多个控制信息包。
每个控制信息包包括:指示包的类型和顺序的标识符和用于传输与ssid和密码相关的第四数据,标识符使用8bit中的高4bit位存储,第四数据使用8bit中的低4bit位存储。
两组控制信息包中的其中一组包中还包括用于校验通过本组控制信息包发送的所有数据的第三校验值。
例如,在该实施例中,第一组控制信息包中的第四数据包括总数据长度和ssid的校验值,第一组控制信息包中还包括用于校验总数据长度和ssid的校验值的第三校验值。第二组控制信息包中的第四数据包括密码长度和密码长度的校验值。
具体的,在该实施例中,为了提升解码成功率,控制信息包分两部分发送。第一阶段的控制信息包(例如:可以称为上文中的第一组控制信息包)发送一个字节的总数据长度和一个字节的ssid的crc8校验值。其中,该总数据长度为:password长度+ssid长度+1(1字节的随机数)。各个控制信息包中的标识符用来确定各包的类型和顺序。以广播包的长度(8bit)传递数据,其中,高4bit为标识符,低4bit为数据,1字节数据分两包发送。该阶段最后发送1字节的异或校验值,用于校验该阶段所发送的数据。
例如:该实施例中的第一组控制信息包的具体结构可以如下表5所示。
表5
第二阶段的控制信息包(例如:可以称为上文中的第二组控制信息包)发送1字节password长度和1字节password长度的crc8校验值。该实施例中的第二组控制信息包的具体结构可以如下表6所示。
表6
应理解,第一组控制信息包和第二组控制信息包的发送顺序不受限制。
在一个可选实施例中,配网数据包包括至少一组,每组配网数据包包括:用于校验本组配网数据包的第四校验值,用于指示本组配网数据包的发送顺序的索引,至少一个配网数据包。其中,第四校验值、索引和每个配网数据包分别使用8bit进行存储。
每个配网数包中的数据为从配网数据字符串中依次获取的8bit数据,配网数据字符串包括用于存储密码信息的密码字段、随机数和用于存储ssid信息的ssid字段。
需要说明的是,在该实施例中,配网数据中可能包含password信息、ssid信息,一定会包含一个字节的随机数。配网加密AP会发送password信息,配网隐藏ssid会发送ssid信息。
配网数据字符串可以按照:密码字段+随机数+ssid字段的顺序构成,也可以按照其他顺序构成,例如:随机数+密码字段+ssid字段,或者,随机数+ssid字段密码字段等等顺序。
还需要说明的是,如果配网非加密AP,则不需要发送password信息,这种情况下,密码字段为空,即:密码字段的长度为0字节;如果如果配网非隐藏ssid的AP,则不需要发送ssid信息,这种情况下,ssid字段为空,即:ssid字段的长度为0字节。
因此,本申请中的配网方案适用于“非隐藏加密AP、非隐藏不加密AP、隐藏加密AP、隐藏不加密AP”全部场景的配网。
具体的,在该实施例中,发送至少一组配网数据包,包括:
重复多次发送至少一组配网数据包,其中,任一次发送过程包括:
根据每组配网数据包中的索引,按顺序发送至少一组配网数据包,且各配网数据包间隔第一时长发送。
在上述各实施例中,在发送信道锁定包、控制信息包、配网数据包时,各包间隔第一时长发送。
在一些实施例中,方法还包括:
响应于触发配网时动态修改发包间隔的操作指令,测试并调整不同无线通信环境对应的发包间隔至预设的固定时长,得到第一时长。或者,
根据获取的当前无线通信环境中的信道AP数量和信号能量,动态确定第一时长。
也就是说,对于发包间隔的控制,有可控固定间隔和自适应间隔两种方式。用户设备可以提供配网时动态修改发包间隔的功能,用于手动测试、调整不同无线通信环境的发包间隔,提升配网速度的同时减小对于无线环境的干扰。自适应间隔是用户设备监听当前无线通信环境,以当前信道AP数量、信号能量来动态计算发包间隔,用以同时保证在干净环境下的配网速度,和在复杂环境下的配网成功率。
作为一个示例,发送配网数据的过程可以为:
(1)将password信息+一个字节随机数+ssid信息按顺序组成全部的配网数据。
(2)将全部配网数据分组,例如:以每4字节为1组,不足4字节按实际长度为一组。
(3)对于每组数据,在数据头部添加索引(index)用于排序,组成5字节data或非5字节data。
(4)计算每组data的校验值crc8。
(5)每组数据按顺序发包,各包间隔第一时长,例如:1ms,具体的,参见下表7所示的示例,可以先发送crc8校验值,广播包的数据长度:0x80|crc8;再发送本组5字节data数据,广播包的数据长度:0x100|data[0:4]。
(6)按顺序发完全部的数据组。
(7)重复多次发送配网数据,例如:20次。
例如:该实施例中的配网数据包的具体结构可以如下表7所示。
表7
需要说明的是,在本申请实施例中,组播包MAC地址携带数据的同时,组播包长度依旧用来传递数据,并且采用包数据长度编码的方式,做到长度解码兼容。即:针对组播包每包MAC地址23bit可用,长度字段最大可编码长度为10bit,共计33bit可用的情况,可以使用33bit直接编码的方案,信息密度更高。例如:MAC地址23bit传递数据,长度10bit传递用于指示类型和顺序的标识符等。
图2为本申请实施例提供的一种配网方法的流程示意图。如图2所示的方法可以由待配网设备执行,该方法包括:
S201、接收用户设备发送的组播包和广播包,其中,组播包和广播包中均包括:包含目标接入点AP所使用的信道编号的信道锁定包、包含目标接入点AP的ssid和密码的控制信息包,以及包含ssid和密码的配网数据包。
S202、对接收到的组播包和广播包同时进行解码,并通过组播包或广播包中最先得到的ssid和/或密码接入目标接入点AP。
在该实施例中,待配网设备可以同时接收用户设备发送的组播包和广播包,并对组播包和广播包同时进行解码,由于组播包和广播包中均包括:包含目标接入点AP所使用的信道编号的信道锁定包、包含目标接入点AP的ssid和密码的控制信息包,以及包含ssid和密码的配网数据包,因此,可以通过组播包或广播包中最先得到的ssid和/或密码接入目标接入点AP。
需要说明的是,在本申请实施例中涉及的待配网设备可以包括智能家电(例如:空调、微波炉、洗衣机等等)、智能设备(智能音响、智能台灯、智能插座等等)。
本申请实施例中涉及的用户设备(User Equipment,UE),可以是指向用户提供语音和/或数据连通性的设备,具有无线连接功能的手持式设备、或连接到无线调制解调器的其他处理设备等。也可以称为终端设备,或无线终端设备。无线终端设备可以是移动终端设备,如移动电话(或称为“蜂窝”电话)和具有移动终端设备的计算机,例如,可以是便携式、袖珍式、手持式的移动装置。
下面结合图3对待配网设备执行的配网过程进行详细的描述。图3为本申请实施例提供的一种配网方法的流程示意图。如图3所示的方法包括:
S301、待配网设备遍历周围所有AP的信道,监听信道锁定包。
S302、根据接收到的信道锁定包锁定信道,并接收后续数据包。其中,组播配网的信道锁定包(即:信道锁定包采用组播包地址编码)中包含信道编号。
S303、通过信道锁定包的基本服务集标识(Basic Service Set Identifier,BSSID)确定一个预连接的AP。其中,ssid是接入点AP(或称为WiFi热点,路由器)的广播地址,BSSID是AP的MAC地址。
S304、接收并解析的控制信息包中ssid的crc,确定是否与预连接的AP的ssid的crc一致,若一致,执行S305,否则,执行S307。
S305、分别对组播配网的配网数据包(即:配网数据包采用组播包地址编码)和包数据长度配网的配网数据包(即:配网数据包采用包数据长度编码)进行解码,直到获取到完整的数据。其中,完整的数据包括:“password信息+一个字节随机数+ssid信息”(对应隐藏加密AP)、“一个字节随机数+ssid信息”(对应隐藏非加密AP)、“password信息+一个字节随机数”(对应非隐藏加密AP)中的一种。
S306、根据优先获取到的ssid和/或password,接入对应的AP。
S307、通过扫描列表查找与解析得到的ssid的crc相同的ssid的crc,从而确定实际的ssid,并接入对应的AP。该过程用以应对配网用户设备连接的AP和待配网设备要配的AP不一致的情况。其中,扫描列表可以为通过扫描获得的AP列表。
具体的,在该实施例中,待配网设备同时接收广播包和组播包,对组播包MAC地址、包数据长度(包括广播包数据长度和组播包数据长度)同时进行解码,优先使用组播包或广播包中最先解到的数据接入对应的AP。
上文中分别从用户设备和待配网设备为执行主体的角度对本申请实施例提供的一种配网方法的技术方案进行了详细的描述,下面结合附图4描述本申请实施例提供的一种配网方法的实现过程。
图4为本申请实施例提供的一种配网方法的交互过程示意图。如图4所示的方法包括:
S401、用户设备循环多次发送包含信道编号的信道锁定包。
具体的,在该实施例中,信道锁定包的个数为一个MAC地址编码固定的包,该包的具体结构可以参照上文中的表1,或者4个长度固定的包,包的具体结构可以参照上文中的表4。
另外,循环多次发送信道锁定包的目的是确保待配网设备可以锁定信道,例如:MAC地址编码固定的信道锁定包可以循环发送200次。
S402、待配网设备在监听信道过程中接收到信道锁定包,即锁定信道并等待接收控制信息包。
具体的,在该实施例中,接收到一个MAC地址编码固定的包,或者接收到4个长度固定的包,则可以锁定信道。
S403、用户设备发送包含ssid和密码的控制信息包。
具体的,在该实施例中,若控制信息包采用组播包地址编码,则控制信息包发送的数据包括:总数据长度、密码长度和ssid的校验值,且通过两个控制信息包依次发送。例如:通过第一控制信息包和第二控制信息包发送,其中,第一控制信息包中包括总数据长度和密码长度,第二控制信息包中包括ssid的校验值,以及用于校验通过两个控制信息包发送的所有数据的第一校验值。控制信息包的具体结构可以参照上文中的表2。
若控制信息包采用包数据长度编码,则控制信息包发送的数据包括:总数据长度、密码长度和ssid的校验值,以及密码长度的校验值,且通过两组控制信息包发送,例如:第一组控制信息包和第二组控制信息包,每组控制信息包中包括多个控制信息包。例如:第一组控制信息包中包括总数据长度和ssid的校验值,以及用于校验总数据长度和ssid的校验值的第三校验值,该组控制信息包的具体结构可以参照上文中的表5。第二组控制信息包中包括密码长度和密码长度的校验值,该组控制信息包的具体结构可以参照上文中的表6。
S404、待配网设备接收到控制信息包,并解析得到控制信息包中的密码长度和ssid信息后,等待接收包含密码和ssid的配网数据包。
具体的,在该实施例中,若接收到组播包,则解析MAC地址字段的中间7bit位确定为组播地址编码的控制信息包,再解析MAC地址字段的低16bit位,得到密码长度和ssid的校验值。
若接收到广播包,则解析长度字段的高4bit位确定为组播长度编码的控制信息包,再解析长度字段的低4bit位,得到密码长度和ssid的校验值。由于广播包中的控制信息包分为2组发送,因此,需要解析2次。
S405、用户设备发送包含ssid和密码的配网数据包。
具体的,在该实施例中,若配网数据包采用组播包地址编码,则发送至少一个配网数据包,每个配网数据包中包含从配网数据字符串中依次获取的2字节数据。配网数据字符串包括用于存储密码信息的密码字段、随机数、用于存储ssid信息的ssid字段和用于校验配网数据的第二校验值。其中,配网数据包的具体结构可以参照上文中的表3。
若配网数据包采用包数据长度编码,则发送至少一组配网数据包,每组配网数据包包括:用于校验本组配网数据包的第四校验值,用于指示本组配网数据包的发送顺序的索引,至少一个配网数据包。其中,每个配网数包中的数据为从配网数据字符串中依次获取的8bit数据,该配网数据字符串包括用于存储密码信息的密码字段、随机数和用于存储ssid信息的ssid字段。其中,配网数据包的具体结构可以参照上文中的表7。
S406、待配网设备接收并解析配网数据包,得到ssid和密码后执行接入AP的操作。
具体的,在该实施例中,若接收到组播包,则解析MAC地址字段的中间7bit位确定各个配网数据包的发送顺序,再解析MAC地址字段的低16bit位,得到密码长度和ssid的校验值。
若接收到广播包,则解析长度字段的8bit位确定配网数据包的发送顺序,并得到密码长度和ssid的校验值。
待配网设备对组播包MAC地址、包数据长度分别进行解码,优先使用最先解到的数据接入对应的AP。
需要说明的是,在该实施例中,上述各个包在发送时发包间隔第一时长,例如:可以为1ms。该第一时长可以为固定时长,也可以为自适应调整的时长。
可选的,在该实施例中,用户设备发送配网数据包后可以等待预设时长,例如:10s,待配网设备接收并解析完毕后执行接入AP的操作,并在接入成功后重复多次发送配置成功的状态信息包。若用户设备在10s的等待期内接收到待配网设备发送的配置成功的状态信息包,则可以结束配网,否则重复上述步骤。
综上,本申请实施例提供的一种配网方法,与现有技术相比具有以下优点:
1、兼容包数据长度配网和组播地址配网,具有配网速度快、通用性高、替代性好的特点。
2、支持依据无线环境动态调整发包间隔,同时考虑不同环境的配网速度和配网成功率。
3、适用于非隐藏加密AP、非隐藏不加密AP、隐藏加密AP、隐藏不加密AP全部场景的配网。
图5为本申请实施例提供了一种配网装置,如图5所示,该装置50可以包括:获取模块501和发送模块502。其中,
获取模块501,用于获取目标接入点AP的服务集标识ssid和密码,以及目标接入点AP所使用的信道的编号。
发送模块502,用于循环多次发送包含信道编号的信道锁定包。还用于发送包含ssid和密码的控制信息包。还用于发送包含ssid和密码的配网数据包。其中,信道锁定包、控制信息包和配网数据包均采用组播包地址编码和包数据长度编码。
在一个可选实施例中,如果信道锁定包、控制信息包和配网数据包均采用组播包地址编码,则将各个包内的信息存储至组播包MAC地址字段的低23bit位。
进一步地,信道锁定包为一个MAC地址编码固定的包,包括:用于指示包的类型的标识符和用于传输信道编号的第一数据,第一数据使用MAC地址字段的低16bit位存储。
进一步地,通过控制信息包发送的数据包括:总数据长度、密码长度和ssid的校验值。
控制信息包的个数为两个,每个控制信息包包括:指示包的类型的标识符和用于传输与ssid和密码相关的第二数据,第二数据使用MAC地址字段的低16bit位存储。
两个控制信息包中的一个包中还包括用于校验通过两个控制信息包发送的所有数据的第一校验值。
进一步地,配网数据包的个数至少为一个,每个配网数据包包括:指示包的顺序的标识符和2字节数据,2字节数据使用MAC地址字段的低16bit位存储。
每个配网数据包中的2字节数据从配网数据字符串中依次获取,配网数据字符串包括用于存储密码信息的密码字段、随机数、用于存储ssid信息的ssid字段和第二校验值。
在一个可选实施例中,如果信道锁定包、控制信息包和配网数据包均采用包数据长度编码,则将各个包内的信息存储至包的长度字段中,其中,存储各个包内的信息的长度为8bit。
进一步地,信道锁定包的个数至少为两个,每个信道锁定包的长度固定,且至少两个信道锁定包的长度之间满足预设条件,预设条件为:长度按照至少两个信道锁定包的发送顺序以预设步长依次增大。
每个信道锁定包包括:用于指示包的类型和顺序的标识符和用于传输包的长度的第三数据,标识符使用8bit中的高4bit位存储,第三数据使用8bit中的低4bit位存储。
进一步地,通过控制信息包发送的数据包括:总数据长度、密码长度和ssid的校验值,以及密码长度的校验值。
控制信息包包括两组,每组控制信息包中包括多个控制信息包。
每个控制信息包包括:指示包的类型和顺序的标识符和用于传输与ssid和密码相关的第四数据,标识符使用8bit中的高4bit位存储,第四数据使用8bit中的低4bit位存储。
两组控制信息包中的其中一组包中还包括用于校验通过本组控制信息包发送的所有数据的第三校验值。
进一步地,配网数据包包括至少一组,每组配网数据包包括:用于校验本组配网数据包的第四校验值,用于指示本组配网数据包的发送顺序的索引,至少一个配网数据包。
第四校验值、索引和每个配网数据包分别使用8bit进行存储。
每个配网数包中的数据为从配网数据字符串中依次获取的8bit数据,配网数据字符串包括用于存储密码信息的密码字段、随机数和用于存储ssid信息的ssid字段。
进一步地,上述发送模块502在发送至少一组配网数据包时,具体用于:
重复多次发送至少一组配网数据包,其中,任一次发送过程包括:
根据每组配网数据包中的索引,按顺序发送至少一组配网数据包,且各配网数据包间隔第一时长发送。
进一步地,装置还包括:处理模块,用于响应于触发配网时动态修改发包间隔的操作指令,测试并调整不同无线通信环境对应的发包间隔至预设的固定时长,得到第一时长。或者,用于根据获取的当前无线通信环境中的信道AP数量和信号能量,动态确定第一时长。
图6为本申请实施例提供了一种配网装置,如图6所示,该装置60可以包括:接收模块601和配网模块602。其中,
接收模块601,用于接收用户设备发送的组播包和广播包,其中,组播包和广播包中均包括:包含目标接入点AP所使用的信道编号的信道锁定包、包含目标接入点AP的ssid和密码的控制信息包,以及包含ssid和密码的配网数据包。
配网模块602,用于对接收到的组播包和广播包同时进行解码,并通过组播包或广播包中最先得到的ssid和/或密码接入目标接入点AP。
本申请实施例的装置可执行本申请实施例提供的方法,其实现原理和能够达到的效果相类似,本申请各实施例的装置中的各模块所执行的动作是与本申请各实施例的方法中的步骤相对应的,对于装置的各模块的详细功能描述具体可以参见前文中所示的对应方法中的描述,此处不再赘述。
本申请实施例中提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,该处理器执行上述计算机程序以实现本申请实施例提供的配网方法的步骤,与现有技术相比可实现:通过对包含信道编号的信道锁定包,包含ssid和密码的控制信息包以及配网数据包,均分别采用组播包地址编码和包数据长度编码,使得配网兼具组播配网的速度和包数据长度配网的通用性,使用更加灵活。
在一个可选实施例中提供了一种电子设备,如图7所示,图7所示的电子设备70包括:处理器701和存储器703。其中,处理器701和存储器703相连,如通过总线702相连。
具体的,在该实施例中,电子设备70可以为上文中的用户设备或者待配网设备。
处理器701可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器701也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线702可包括一通路,在上述组件之间传送信息。总线702可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线702可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器703可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质、其他磁存储设备、或者能够用于携带或存储计算机程序并能够由计算机读取的任何其他介质,在此不做限定。
存储器703用于存储执行本申请实施例的计算机程序,并由处理器701来控制执行。处理器701用于执行存储器703中存储的计算机程序,以实现前述方法实施例所示的步骤。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。与现有技术相比可实现:本申请实施例提供的一种配网方法,通过对包含信道编号的信道锁定包,包含ssid和密码的控制信息包以及配网数据包,均分别采用组播包地址编码和包数据长度编码,使得配网兼具组播配网的速度和包数据长度配网的通用性,使用更加灵活。
需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机可执行指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机可执行指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些处理器可执行指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的处理器可读存储器中,使得存储在该处理器可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些处理器可执行指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
应该理解的是,虽然本申请实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本申请实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本申请实施例对此不限制。
以上所述仅是本申请部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的方案技术构思的前提下,采用基于本申请技术思想的其他类似实施手段,同样属于本申请实施例的保护范畴。