本发明涉及无线数据通讯领域,特别涉及一种基于同步广播的无线自组网及其数据传输方法。
背景技术:
随着科学技术的飞速发展,智能家居、智慧农业、智慧城市如雨后春笋。而这些行业的发展离不开无线的应用。传统的有线连接不仅仅是成本高,包括布线安装、维护等也是成本巨大。并且机动性也很差,不能满足智能行业的发展需求,因此无线的应用走上了智能行业发展的舞台。
而在无线应用中,传统的点对点收发已经不能满足当下科学技术发展的应用需求,更多应用需求是无线组网。但是目前市场上使用无线网络通常具有以下缺点:1、技术复杂,不容易实现;2、组网速度慢;3、网络路径维护复杂。
技术实现要素:
为了解决现有技术中存在的问题,本发明提供一种组网过程简单、速度快,且不需要进行网络路径维护的基于同步广播的无线自组网及其数据传输方法。
本发明的技术方案如下:
第一方面,本发明提供一种基于同步广播的无线自组网的数据传输方法,包括以下步骤:
步骤s1、所有节点模块上电初始化,配置节点模块处理器及通讯单元;
步骤s2、当第一节点模块的uart接口接收到用户数据后,其处理器对用户数据进行处理;
步骤s3、所述第一节点模块的处理器对处理后的数据包进行加密,等待发送;
步骤s4、所述第一节点模块进行csma后,发送数据帧;
步骤s5、第二节点模块的通讯单元收到数据后,进行解密;
步骤s6、第二节点模块对接收到的数据进行crc16校验,若校验不通过,则丢弃该包数据,重新进入接收状态或休眠状态,若校验正确,则判断该数据包是否转发过,若转发过,丢弃该数据包,若未转发过,转至步骤s7;
步骤s7、将数据包结构中权值项加1,再重新计算crc16后加密数据,将数据包加入转发队列等待转发,并将转发信息写到历史记录里;
步骤s8、再以接收到该数据包的时间为基准,等待100个位时钟后,同步转发该数据包。
进一步的,所有节电模块上电初始化后,将节点模块的处理器配置到休眠状态,将节点模块的通讯单元配置到休眠状态或接收状态;在通讯单元处于休眠状态时,定时醒来检测空中数据。
进一步的,所述的步骤s2中处理后的数据包格式为:|包类型|包号|权值|源地址|用户数据|crc16|。
进一步的,
所述包类型:1字节,0代表心跳包,1代表数据包;
所述包号:1字节,为累加数(0-255),由发起方节点模块每发一个包自动加1,255后重置为0;
所述权值:1字节,发送的节点模块赋值为0,接收的节点模在收到的权值上加1再转发;
所述源地址:5字节,发送的节点模块的地址;
所述用户数据:0-245个字节,心跳包时为0字节;
所述crc16:2个字节,用于校验数据。
进一步的,所述的步骤s3中的加密和所述的步骤s5中的解密,均采用aes-128算法。
进一步的,所述的步骤s4中csma分两步,第1步是对信道进行检测,检测信道忙闲,当信道空闲时进行发送;第2步是在信道忙时进行延时退避,延时结束后再检测,如果检测还忙,则退避时间加倍。
进一步的,信道忙闲的检测是通过rssi值判断的,大于等于-100dbm的判断为忙,小于-100dbm的判断为闲。
进一步的,所述步骤s6中判断该数据包是否转发过的依据是:判断接收到的数据与存储的数据的源地址和帧序号是否相同,如果都相同则判断为已转发过,丢弃该接收到的数据包,反之则判断为未转发过。
进一步的,为防止通讯阻塞,在转发数据包后需等待两个发送周期后才能再发起数据包。
进一步的,将任一节点模块配置为唯一的中心模块,其余节点模块配置为子节点,中心模块周期发送心跳包,子节点在5个周期内未收到何心跳包,则标记为离网,通过串口通知用户,一旦离网的子节点收到心跳包或数据包,则重新标记为在网状态。
第二方面,本发明提供一种基于同步广播的无线自组网,包括至少一个节点模块,所述的节点模块包括处理器和与其相连的通讯单元;
所述处理器包括uart接口、数据处理模块和加密解密模块,所述处理器通过uart接口与用户交换数据,所述的数据处理模块的一端连接uart接口,所述的数据处理模块的另一端连接加密解密模块的一端,加密解密模块的另一端连接通讯单元的一端,通讯单元的另一端作为射频输入/输出端连接下一个节点模块的通讯单元。
进一步的,所述处理器与所述的通信单元通过spi接口连接。
进一步的,所述的通讯单元包括fsk调制芯片。
本发明的有益效果在于:
相比于现有技术,本发明的同步广播自组网是一个无网络控制中心,无需事先组网,在通讯过程中实现组网,以达到高效、最优的即插即用的无线自组网,每个节点在网络中的作用都是对等的,任一节点都可以发起数据、抗毁性强、动态拓扑适应能力强、且组网过程简单,通信过程简单,对硬件的要求低,因此需要配套使用的外部硬件成本低。
附图说明
图1为本发明的基于同步广播的无线自组网的系统架构图;
图2为本发明的基于同步广播的无线自组网的节点模块发送信号的框图;
图3为本发明的基于同步广播的无线自组网的节点模块接收信号的框图;
图4为本发明的基于同步广播的无线自组网的节点模块发送信号流程图;
图5为本发明的基于同步广播的无线自组网的节点模块接收信号流程图。
具体实施例
下面结合附图对本公开实施例进行详细描述。
以下通过特定的具体实例说明本公开的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本公开的其他优点与功效。显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。本公开还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本公开的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
实施例一
本发明的一种基于同步广播的无线自组网,包括至少一个节点模块,所述的节点模块包括处理器和与其相连的通讯单元;
所述处理器包括uart接口、数据处理模块和加密解密模块,所述处理器通过uart接口与用户交换数据,所述的数据处理模块的一端连接uart接口,所述的数据处理模块的另一端连接加密解密模块的一端,加密解密模块的另一端连接通讯单元的一端,通讯单元的另一端作为射频输入/输出端连接下一个节点模块的通讯单元。
所述处理器与所述的通信单元通过spi(serialperipheralinterface串行外设接口)接口连接。
所述的通讯单元包括fsk调制芯片。
所述的数据处理模块用于将接收到的用户数据处理为特定的数据包结构。
处理后的数据包格式为:|包类型|包号|权值|源地址|用户数据|crc16|。
所述包类型:1字节,0代表心跳包,1代表数据包;
所述包号:1字节,为累加数(0-255),由发起方节点模块每发一个包自动加1,255后重置为0;
所述权值:1字节,发送的节点模块赋值为0,接收的节点模在收到的权值上加1再转发;
所述源地址:5字节,发送的节点模块的地址,每个节点模块出厂时都有唯一地址标识;
所述用户数据:0-245个字节,心跳包时为0字节;
所述crc16:2个字节,用于校验数据。
所述的加密解密模块对处理过的数据进行加密处理,对接收到的另一节点模块的数据进行解密处理。
加密解密采用aes-128算法。
本发明的基于同步广播的无线自组网及其数据传输方法,包括以下步骤:
步骤s1、节点模块上电初始化,配置处理器及通讯单元,通讯单元处于接收状态。
在一些用电池供电场合,为降低功耗,节电模块上电初始化后,可所有节电模块上电初始化后,将节点模块的处理器配置到休眠状态,将节点模块的通讯单元配置到休眠状态或接收状态;在通讯单元处于休眠状态时,定时醒来检测空中数据。
步骤s2、当其中一个节点模块(称为第一节点模块)的uart接口接收到用户数据后,第一节点模块的处理器对数据进行处理,转换为特定的数据包结构。
数据包格式上文中已经描述,在此不再赘述。
步骤s3、所述第一节点模块的处理器对处理后的数据包进行加密,等待发送。
加密算法采用aes-128算法。
步骤s4、所述第一节点模块进行csma后,发送数据帧。
csma(carriersensemultipleaccess,载波侦听多路访问),是广播型信道中采用一种随机访问技术的竞争型访问方法,具有多目标地址的特点。
该步骤的csma分两步,第1步是对信道进行检测,检测信道忙闲,当信道空闲时进行发送;第2步是在信道忙时进行延时退避,延时结束后再检测,如果检测还忙,则退避时间加倍。信道忙闲的检测是通过rssi(receivedsignalstrengthindication接收的信号强度指示)值判断的。将rssi值换算成信号强度值,大于等于-100dbm的判断为忙,小于-100dbm的判断为闲。
步骤s5、第二节点模块的通讯单元收到数据后,进行解密。
解密算法采用aes-128算法。
步骤s6、第二节点模块对接收到的数据进行crc16校验,若校验不通过,则丢弃该包数据,重新进入接收状态或休眠状态,若校验正确,则判断该数据包是否转发过,若该数据包未转发过,转至步骤s7。
判断数据是否转发过的依据是收到的数据与存储的数据源地址和帧序号是否相同,每个节点模块对各自转发的数据信息进行存储,形成历史记录,当接收到待转发数据时,将接收到的数据与存储的数据进行对比,当接收到的数据与存储的数据源地址和帧序号均相同时,则视为两者为同一帧数据,已转发过,丢弃该数据包,反之则视为未转发过,将接收到的数据包加入待转发队列等待转发,并写到历史记录里面。
步骤s7、将数据包结构中权值项加1,再重新计算crc16后加密数据,将数据加入转发队列等待转发,并将转发信息写到历史记录里面。
一般每个节点模块最多存储5条历史纪录。
步骤s8、再以接收到数据的时间为基准,等待100个位时钟后,同步转发数据帧。
该步骤中所有收到正确数据需转发的节点模块,以接收到数据的时间为基准,同时延时100个位时钟,同步转发,只有做到完全同步转发才能防止不同模块的转发信号相互干扰,本发明为保证时间同步,以通讯单元的输出时钟作为计时时钟。
进一步的,为防止通讯阻塞,在转发数据后需等待两个发送周期后才能再发起数据。
进一步的,一个网络中可将任一节点模块配置为唯一中心模块,其余节点模块配置为子节点,配置为中心的模块会周期发送心跳包,子节点在5个周期内未收到任何心跳包,则标记为离网,通过串口通知用户,一旦收到心跳包或数据包,则重新标记为在网状态。
以上仅为说明本发明的实施方式,并不用于限制本发明,对于本领域的技术人员来说,凡在本发明的精神和原则之内,不经过创造性劳动所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
1.一种基于同步广播的无线自组网的数据传输方法,其特征在于:包括以下步骤:
步骤s1、所有节点模块上电初始化,配置节点模块处理器及通讯单元;
步骤s2、当第一节点模块的uart接口接收到用户数据后,其处理器对用户数据进行处理;
步骤s3、所述第一节点模块的处理器对处理后的数据包进行加密,等待发送;
步骤s4、所述第一节点模块进行csma后,发送数据帧;
步骤s5、第二节点模块的通讯单元收到数据后,进行解密;
步骤s6、第二节点模块对接收到的数据进行crc16校验,若校验不通过,则丢弃该包数据,重新进入接收状态或休眠状态,若校验正确,则判断该数据包是否转发过,若转发过,丢弃该数据包,若未转发过,转至步骤s7;
步骤s7、将数据包结构中权值项加1,再重新计算crc16后加密数据,将数据包加入转发队列等待转发,并将转发信息写到历史记录里;
步骤s8、再以接收到该数据包的时间为基准,等待100个位时钟后,同步转发该数据包。
2.根据权利要求1所述的一种基于同步广播的无线自组网的数据传输方法,其特征在于:所有节点模块上电初始化后,将节点模块的处理器配置到休眠状态,将节点模块的通讯单元配置到休眠状态或接收状态;在通讯单元处于休眠状态时,定时醒来检测空中数据。
3.根据权利要求1所述的一种基于同步广播的无线自组网的数据传输方法,其特征在于:所述的步骤s2中处理后的数据包格式为:|包类型|包号|权值|源地址|用户数据|crc16|。
4.根据权利要求3所述的一种基于同步广播的无线自组网的数据传输方法,其特征在于:
所述包类型:1字节,0代表心跳包,1代表数据包;
所述包号:1字节,为累加数(0-255),由发起方节点模块每发一个包自动加1,255后重置为0;
所述权值:1字节,发送的节点模块赋值为0,接收的节点模在收到的权值上加1再转发;
所述源地址:5字节,发送的节点模块的地址;
所述用户数据:0-245个字节,心跳包时为0字节;
所述crc16:2个字节,用于校验数据。
5.根据权利要求1所述的一种基于同步广播的无线自组网的数据传输方法,其特征在于:所述的步骤s3中的加密和所述的步骤s5中的解密,均采用aes-128算法。
6.根据权利要求1所述的一种基于同步广播的无线自组网的数据传输方法,其特征在于:所述的步骤s4中csma分两步,第1步是对信道进行检测,检测信道忙闲,当信道空闲时进行发送;第2步是在信道忙时进行延时退避,延时结束后再检测,如果检测还忙,则退避时间加倍。
7.根据权利要求6所述的一种基
于同步广播的无线自组网的数据传输方法,其特征在于:信道忙闲的检测是通过rssi值判断的,大于等于-100dbm的判断为忙,小于-100dbm的判断为闲。
8.根据权利要求1所述的一种基于同步广播的无线自组网的数据传输方法,其特征在于:所述步骤s6中判断该数据包是否转发过的依据是:判断接收到的数据与存储的数据的源地址和帧序号是否相同,如果都相同则判断为已转发过,丢弃该接收到的数据包,反之则判断为未转发过。
9.根据权利要求1所述的一种基于同步广播的无线自组网的数据传输方法,其特征在于:为防止通讯阻塞,在转发数据包后需等待两个发送周期后才能再发起数据包。
10.根据权利要求1所述的一种基于同步广播的无线自组网的数据传输方法,其特征在于:将任一节点模块配置为唯一的中心模块,其余节点模块配置为子节点,中心模块周期发送心跳包,子节点在5个周期内未收到何心跳包,则标记为离网,通过串口通知用户,一旦离网的子节点收到心跳包或数据包,则重新标记为在网状态。
11.一种基于同步广播的无线自组网,其特征在于:包括至少一个节点模块,所述的节点模块包括处理器和与其相连的通讯单元;
所述处理器包括uart接口、数据处理模块和加密解密模块,所述处理器通过uart接口与用户交换数据,所述的数据处理模块的一端连接uart接口,所述的数据处理模块的另一端连接加密解密模块的一端,加密解密模块的另一端连接通讯单元的一端,通讯单元的另一端作为射频输入/输出端连接下一个节点模块的通讯单元。
12.根据权利要求11所述的一种基于同步广播的无线自组网,其特征在于:所述处理器与所述的通信单元通过spi接口连接。
13.根据权利要求11所述的一种基于同步广播的无线自组网,其特征在于:所述的通讯单元包括fsk调制芯片。
技术总结