一种无线射频GFSK组网通讯的可靠性方法与流程

文档序号:17299975发布日期:2019-04-03 04:51阅读:504来源:国知局
一种无线射频GFSK组网通讯的可靠性方法与流程

本发明属于无线信号传输技术领域,涉及一种数据可靠交互通讯的协议,具体涉及一种无线射频gfsk组网通讯的可靠性方法。



背景技术:

gfsk即高斯频移键控调试,是一种信号的调制方式,是在输入数据经高斯低通滤波器预调制滤波后,在进行fsk调制的数字调制方式。它在保持恒定幅度的同时,能够改变高斯低通滤波器的3db带宽对已调信号的频谱进行控制,具有恒幅包络、功率谱集中、频谱较窄等无线通信系统所希望的特性。因此,gfsk调制解调技术被广泛地应用在移动通信、航空与航海通信等诸多领域中。

通信协议是通信系统在通信链路上实现任务的软件架构及程序编写规则,为保证射频传输数据的规范性、稳定性及准确性,就必须依赖于通信协议。本发明正是通讯协议的一种,定义了数据帧格式,数据帧编码加密方式;在通讯过程定义有信道避让机制避免不同发射端的信号干扰;信号接收时采用了信号过滤机制,排除无效的干扰信号,滤出错误的信号;确认请求及重传机制保证了通讯的成功率及可靠性;



技术实现要素:

本发明的目的是为了保证射频传输数据的规范性、稳定性及准确性,定义了一种可靠的传输协议,且适用于多种无线通讯方式。

本发明解决其技术问题所采用的技术方案包括如下步骤:

步骤1:发射端发送数据前,先将要发送的数据组帧;

步骤2:发射端组帧完成后,为保证数据传输的安全性,将组帧完的数据包进行部分数据域加密后再编码,然后使用gfsk调制后输出调制信号;

步骤3:为避免信道冲突,发射端发送数据前采用csma-ca避让机制;

步骤4:接收端有信号过滤机制,排除无效的干扰信号;

步骤5:发射端与接收端包含有确认请求及重传机制,若接收端无确认帧返回,那么发射端会重新发送一次。

2-1.数据包的组帧

数据包定义了三层模型,分为物理层、数据链路层和应用层;物理层包含前导码、同步码和物理层载荷;数据链路层即为物理层中的物理层载荷,分为帧长度域、控制域、帧序号、目的地址、源地址、链路层载荷和校验码;应用层即为数据链路层中的链路层载荷,分为类型域和数据域,具体的各层内容如下:

2-1-1.物理层定义了射频通讯所需要的频率资源、输出功率限制、调制方式、调制频偏、空中码源速率。其中物理层中的前导码是用于接收端射频模块对空中数据进行码片和码元的同步,由15个字节组成,顺序为101010......b;同步码为4字节,可随接收端配置来自定义字节内容;

2-1-2.数据链路层定义了组帧内容如下:

帧长度域为一个字节,该域规定了整个数据链路层的总字节数,包括数据链路层枕头、数据链路层镇载荷及数据链路层帧尾总长度,且为数据经过加密、卷积、交织、白化等处理后的总的字节数,包含该帧长度域本身。

帧控制域长度为一个字节,规定了帧类型及其它的一些控制标志位。bit7为保留位;bit6-bit5为传输方向控制子域,指明了通信的源节点及目的节点设备类型,“00”表示方向为无线通信装置到无线通信装置,“01”表示传输方向为无线通信装置到无线集中器,“10”表示传输方向为无线集中器到无线通信装置,“11”表示传输方向为无线集中器到无线集中器;bit4为安全使能子域,如果这个子域的值为“0”,则数据包组帧时将不使用aes加密,如果这个子域的值为“1”,则开启加密;bit3为确认请求子域,如果这个子域的值为“1”,则接收端在确定接收的帧为有效帧时则回复一个确认帧,如果这个子域的值为“1”,则接收端在确定接收的帧为有效帧时不回复确认帧;bit2-bit0为帧类型子域,“000”表示数据帧,“001”表示确认帧,“010”表示命令帧,“011-111”保留。

帧序号指定了帧所具有的唯一的标识符,每一个无线通讯装置或者无线集中器都有一个自己的帧序号,初始化为一个随机值,当这个通讯设备每发送一个数据帧或者命令帧时,帧序号就加1并存储,它用于匹配数据的确认帧或数据链路层命令帧。

目的地址长度为5字节,指定了帧接收方的地址。如果要发送广播,则目的地址广播地址为0xaa,0xaa,0xaa,0xaa,0xaa。

源地址域的长度为5字节,它是传输发起设备的地址。

帧校验域为2字节,采用循环冗余码校验(crc),域值是根据前面的数据链路层帧头和负荷的信息计算而得。

2-1-3.应用层定义了具体的协议内容,类型域表示协议的标识符;数据域表示协议的内容,包括信息抄读,配置信息等。

2-2.数据包的加密编码调制

2-2-1.数据的卷积编码:卷积编码是将k个信息比特编成n个比特,但k和n通常很小,特别适合以串行形式进行传输,时延小。若以(n,k,m)来描述卷积码,其中k为每次输入到卷积编码器的bit数,n为每个k元组码字对应的卷积码输出n元组码字,m为编码存储度,也就是卷积编码器的k元组的级数,称m+1=k为编码约束度,m称为约束长度。本方法采用的是(2,1,3)卷积编码;

数据的卷积译码:译码采用维特比译码,它是根据接收序列在码的格图上找出一条与接收序列距离(或其他量度)为最小的一种算法。它和运筹学中求最短路径的算法相类似。这种算法所保留的路径和接收序列之间的似然概率为最大,所以又称为最大似然译码;

2-2-2.数据的交织编码:在无线通讯这种变参信道上,持续较长的深衰落谷点会影响到相继一串的比特,使比特差错常常成串发生。然而,信道编码仅仅能检测和校正单个误差和不太长的差错串。为了解决成串的比特差错问题,采用了交织技术:把一条消息中的相继比特分散开的方法,即一条相继比特串的消息时差错也就变成单个(或者长度很短)的错误比特,这时再用信道纠正随机差错的编码技术消除随机差错。本方法采用线性交织编码器,交织编码器输出信号均分为m个码组,每个码组由n段数据构成,这样就构成了一个n*m的交织矩阵。数据从左到右、从上到下的顺讯按行进入交织矩阵,交织处理后从上到下、从左到右的顺序按列从交织矩阵中送出,这样就完成了数据的交织编码。本方法取m=8,n=8,即8个8位码组为一组进行交织编码。

数据的交织译码:交织译码是交织编码的逆运算。

2-2-3.数据的白化编码:数据白化的方法是将待发送的用户数据与一组伪随机数做按位‘异或’运算。白化运算的流程为:白化寄存器w的初始值为0xff。输入的第一个字节移入码字寄存器;码字寄存器的当前值和白化寄存器的当前值进行位‘异或’,形成控制传输码字;白化寄存器右移8次,输入的下一个字节移入码字寄存器;依次循环,直至全部码字处理完毕。

数据的白化译码:白化译码是白化编码的逆运算。

2-3.csma-ca避让机制

在发送数据帧和命令帧之前都需要使用csma-ca算法来访问信道。确认帧不需要使用csma-ca算法。算法的是要要用到“退避周期”的单位时间,设定一个退避周期的时间为40毫秒。发射端在每次尝试发送时都需要维护2个变量:nb和be。nb是尝试当前帧发送过程中csma-ca算法执行随机退避的次数,在每个新的发送尝试之前nb初始化为0。be是退避指数,发射端试图评估信道是否空闲前,退避的时间与be有关。be的初始化值为1。在信道评估阶段发射端处于接收状态,但发射端会丢弃这段时间内收到的任何帧。

信道评估开始后,发射端等待随机数个退避周期,也就是随机数值*40毫秒的时间,随机数的取值范围为0到(2be-1)。等待完后发射端先切换到接收状态,开始读取当前信道上的信号强度,当发射端通过信号强度值判断当前信道为空闲时,将立即发送数据;当发射端判断当前信道繁忙,则将执行退避次数nb加1,退避指数be加1,be最大值为5。如果变量nb的值小于或等于4,则算法重新跳到等待随机数个退避周期,再判断信道空闲;如果变量nb大于4,则算法结束,该次信道访问失败,发射端将不发送数据,等待下一个发送指令。

2-4.干扰信号过滤机制

数据链路层中的帧类型子域用于区分所发数据帧的类型,“000”表示数据帧,“001”表示确认帧,“010”表示命令帧,“011-111”保留。若接受到的数据帧在数据链路层解析时发现有非法的帧类型,则将这帧数据直接丢弃。

每个通信设备都有自己的通信id号,发射端在数据链路层的目的地址域表示的是它发给的接收端的地址,接收端在解析数据链路层时,若判断数据帧中的目的地址与自身的地址一致,则该数据帧是有效数据帧;若判断数据帧中的目的地址与自身的地址不一致,则该数据帧为无效数据帧没直接丢弃。

2-5.数据包的确认请求及重传机制

接收端正确接收要求确认帧的数据包后,无论这个数据包是否已经被接收过,只要判断该包为正常的合法数据帧即向发送设备反馈一个确认帧;

发送数据组包的数据链路层含有一个帧序号,在发送端将数据帧发送给接收端之后,发送端等待接收端返回的确认帧;如果在等待周期内,发射端收到一个确认帧,并且该确认帧中的帧序号与发送数据帧中的帧序号相同,就表示帧发送成功;如果在这个等待周期内没有收到确认帧或收到的确认帧中的帧序号与发送帧中的帧序号不一致,则表示发送失败;若本次发射端发送数据帧失败,发射端会重新发送一次该数据帧,重发的数据帧的帧序号与第一次发送的数据帧一致;如果发射端重复发送3次都没收到确认帧或者确认帧错误,那么发射端会判断本次发送失败,并将发送结果传递给上层。

由于无线传输介质的不理想,数据帧不是都成功到达接收端。帧传输过程中可能会出现一下三种情况:

2-5-1.数据发送成功。发射端将数据发送到接收端后等待确认,发送端启动一个定时器,计时时间为300毫秒周期。接收端在收到数据帧后,向发射端回送一个确认帧,并把收到的帧提交给上层。发射端在计时结束前收到接收端发回的确认后,就关闭和复位定时器。此时,数据发送完成,发送端向上层传递一个发送成功确认。

2-5-2.数据帧丢失。发射端将数据发送到接收端后等待确认,发送端启动一个定时器,计时时间为300毫秒周期。接收端没有收到数据帧,因此不会向发射端回送确认帧。发射端在定时器计时结束时仍未收到确认帧,数据帧发送失败,发射端将再次发送该数据帧。这个重传过程最多可重复3次。若果发送端的第3次发送仍然失败,那么发送端会向上层传递一个发送失败确认。

2-5-3.发射端将数据发送到接收端后等待确认,发送端启动一个定时器,计时时间为300毫秒周期。接收端在收到数据帧后,向发射端回送一个确认帧,并把收到的帧提交给上层。发射端在定时器计时结束时仍未收到确认帧,数据帧发送失败,发射端将再次发送该数据帧。接收端再次收到数据帧时,无论这个数据帧是否已经被接收过,只要判断该数据帧为正常合法的数据帧即向发射端返回一个确认帧,以保证确认帧不丢失,然后再判断该帧是否接收过,是已经被接收过的数据帧则丢弃。这个这个重传过程最多可重复3次。若果发送端的第3次发送仍然失败,那么发送端会向上层传递一个发送失败确认。

本发明有益效果如下:

本发明方法在射频通讯数据传输时考虑了数据的安全性,易受干扰性,本方法采用的编码方式降低了数据在传输过程中的误码率。发射避让机制避免了信号传输的相互干扰,提高了通讯的成功率及可靠性。过滤机制提高了接收端的抗干扰性,重发机制对于接收端接收的成功率有很大作用。

附图说明

图1为协议栈层结构图。

图2为csma-ca算法流程图。

图3为csma-ca算法的流程图。

具体实施方式

下面结合附图和实施例对本发明作进一步说明。

如图1、2所示,一种无线射频gfsk组网通讯的可靠性方法。定义了数据帧格式,数据帧编码加密方式;在通讯过程定义有信道避让机制避免不同发射端的信号干扰;信号接收时采用了信号过滤机制,排除无效的干扰信号,滤出错误的信号;确认请求及重传机制保证了通讯的成功率及可靠性;

本发明是以gfsk调制的射频传输为载体,通过本发明所定义的传输协议,使得数据能进行有效无误的传输。在数据发送发送前,先将数据组帧,使得它的内容符合传输条件,再对数据进行易传输性编码。在本发明定义的多种有效传输机制下,将数据传输到接收端并作校验与确认。

本发明基于“上海无线远传超声波燃气表2.0”具体如下:

1.上海无线远传超声波燃气表2.0

本发明的发射端为燃气表具,接收端为无线集中器,他们的组网通讯基于gfsk调制的射频通讯。通讯协议即为本发明的定义内容。

本发明包括如下步骤:

步骤1:发射端发送数据前,先将要发送的数据组帧;

步骤2:发射端组帧完成后,为保证数据传输的安全性,将组帧完的数据包进行部分数据域加密后再编码,然后使用gfsk调制后输出调制信号;

步骤3:为避免信道冲突,发射端发送数据前采用csma-ca避让机制;

步骤4:接收端有信号过滤机制,排除无效的干扰信号;

步骤5:发射端与接收端包含有确认请求及重传机制,若接收端无确认帧返回,那么发射端会重新发送一次。

2-1.数据包的组帧

数据包定义了三层模型,分为物理层、数据链路层和应用层;物理层包含前导码、同步码和物理层载荷;数据链路层即为物理层中的物理层载荷,分为帧长度域、控制域、帧序号、目的地址、源地址、链路层载荷和校验码;应用层即为数据链路层中的链路层载荷,分为类型域和数据域,具体的各层内容如下:

2-1-1.物理层定义了射频通讯物理层资源:通信频率为492.08mhz,调制方式为gfsk,频偏为1.2±0.2khz,空中码元速率为2.4kbps发射其中物理层中的前导码是用于接收端射频模块对空中数据进行码片和码元的同步,由15个字节组成,顺序为101010......b;同步码为4字节,内容为0x19、0xcf、0xb4、0x2b;

2-1-2.数据链路层定义了组帧内容如下:

帧长度域为一个字节,该域规定了整个数据链路层的总字节数,包括数据链路层枕头、数据链路层镇载荷及数据链路层帧尾总长度,且为数据经过加密、卷积、交织、白化等处理后的总的字节数,包含该帧长度域本身。

帧控制域长度为一个字节,规定了帧类型及其它的一些控制标志位。bit7为保留位;bit6-bit5为传输方向控制子域,指明了通信的源节点及目的节点设备类型,“00”表示方向为无线通信装置到无线通信装置,“01”表示传输方向为无线通信装置到无线集中器,“10”表示传输方向为无线集中器到无线通信装置,“11”表示传输方向为无线集中器到无线集中器;bit4为安全使能子域,如果这个子域的值为“0”,则数据包组帧时将不使用aes加密,如果这个子域的值为“1”,则开启加密;bit3为确认请求子域,如果这个子域的值为“1”,则接收端在确定接收的帧为有效帧时则回复一个确认帧,如果这个子域的值为“1”,则接收端在确定接收的帧为有效帧时不回复确认帧;bit2-bit0为帧类型子域,“000”表示数据帧,“001”表示确认帧,“010”表示命令帧,“011-111”保留。

帧序号指定了帧所具有的唯一的标识符,每一个无线通讯装置或者无线集中器都有一个自己的帧序号,初始化为一个随机值,当这个通讯设备每发送一个数据帧或者命令帧时,帧序号就加1并存储,它用于匹配数据的确认帧或数据链路层命令帧。

目的地址长度为5字节,指定了帧接收方的地址。如果要发送广播,则目的地址广播地址为0xaa,0xaa,0xaa,0xaa,0xaa。由于组网时,燃气表具还不知道无线集中器的地址,因此首次通讯采用广播的方式。

源地址域的长度为5字节,它是传输发起设备的地址,发射端为燃气表具,每个表具都有自己特定的10位表号,本次通讯表号为0x35、0x18、0x00、0x12、0x34。

帧校验域为2字节,采用循环冗余码校验(crc),域值是根据前面的数据链路层帧头和负荷的信息计算而得。

2-1-3.应用层定义了具体的协议内容,类型域表示协议的标识符;数据域表示协议的内容,包括信息抄读,配置信息等。

2-2.数据包的加密编码调制

2-2-1.本方法采用的是(2,1,3)卷积编码,数据组帧校验后,将数据包除长度域外的其他数据进行卷积编码,每一位输入比特编码程两位比特,因此数据长度会增加一倍;

数据的卷积译码:译码采用维特比译码,它是根据接收序列在码的格图上找出一条与接收序列距离(或其他量度)为最小的一种算法。它和运筹学中求最短路径的算法相类似。这种算法所保留的路径和接收序列之间的似然概率为最大,所以又称为最大似然译码;

2-2-2.本方法采用线性交织编码器,交织编码器输出信号均分为m个码组,每个码组由n段数据构成,这样就构成了一个n*m的交织矩阵。数据从左到右、从上到下的顺讯按行进入交织矩阵,交织处理后从上到下、从左到右的顺序按列从交织矩阵中送出,这样就完成了数据的交织编码。本方法取m=8,n=8,即8个8位码组为一组进行交织编码。由于数据进行卷积后长度增加一倍,但是不能保证长度正好是8的倍数,所以不满8个的码组采用pkcs7padding填充方式。

数据的交织译码:交织译码是交织编码的逆运算。

2-2-3.数据的白化编码:数据白化的方法是将待发送的用户数据与一组伪随机数做按位‘异或’运算。白化运算的流程为:白化寄存器w的初始值为0xff。输入的第一个字节移入码字寄存器;码字寄存器的当前值和白化寄存器的当前值进行位‘异或’,形成控制传输码字;白化寄存器右移8次,输入的下一个字节移入码字寄存器;依次循环,直至全部码字处理完毕。

数据的白化译码:白化译码是白化编码的逆运算。

2-3.csma-ca避让机制

在发送数据帧和命令帧之前都需要使用csma-ca算法来访问信道。确认帧不需要使用csma-ca算法。算法的是要要用到“退避周期”的单位时间,设定一个退避周期的时间为40毫秒。发射端在每次尝试发送时都需要维护2个变量:nb和be。nb是尝试当前帧发送过程中csma-ca算法执行随机退避的次数,在每个新的发送尝试之前nb初始化为0。be是退避指数,发射端试图评估信道是否空闲前,退避的时间与be有关。be的初始化值为1。在信道评估阶段发射端处于接收状态,但发射端会丢弃这段时间内收到的任何帧。

信道评估开始后,发射端等待随机数个退避周期,也就是随机数值*40毫秒的时间,随机数的取值范围为0到(2be-1)。等待完后发射端先切换到接收状态,开始读取当前信道上的信号强度,当发射端通过信号强度值判断当前信道为空闲时,将立即发送数据;当发射端判断当前信道繁忙,则将执行退避次数nb加1,退避指数be加1,be最大值为5。如果变量nb的值小于或等于4,则算法重新跳到等待随机数个退避周期,再判断信道空闲;如果变量nb大于4,则算法结束,该次信道访问失败,发射端将不发送数据,等待下一个发送指令。

2-4.干扰信号过滤机制

数据链路层中的帧类型子域用于区分所发数据帧的类型,“000”表示数据帧,“001”表示确认帧,“010”表示命令帧,“011-111”保留。若接受到的数据帧在数据链路层解析时发现有非法的帧类型,则将这帧数据直接丢弃。

每个通信设备都有自己的通信id号,本次通讯燃气表号为0x35,0x18,0x00,0x12,0x34,燃气表具的广播地址为0xaa,0xaa,0xaa,0xaa,0xaa。若无线集中器接收到广播时,判断到数据链层中的目的地址为广播地址,认为这是有效帧;若无线集中器判断到数据链层中的目的地址既不是无线集中器的通讯地址,也不是广播地址,则认为这是无效帧。

2-5.数据包的确认请求及重传机制

接收端正确接收要求确认帧的数据包后,无论这个数据包是否已经被接收过,只要判断该包为正常的合法数据帧即向发送设备反馈一个确认帧;

发送数据组包的数据链路层含有一个帧序号,在发送端将数据帧发送给接收端之后,发送端等待接收端返回的确认帧;如果在等待周期内,发射端收到一个确认帧,并且该确认帧中的帧序号与发送数据帧中的帧序号相同,就表示帧发送成功;如果在这个等待周期内没有收到确认帧或收到的确认帧中的帧序号与发送帧中的帧序号不一致,则表示发送失败;若本次发射端发送数据帧失败,发射端会重新发送一次该数据帧,重发的数据帧的帧序号与第一次发送的数据帧一致;如果发射端重复发送3次都没收到确认帧或者确认帧错误,那么发射端会判断本次发送失败,并将发送结果传递给上层。

由于无线传输介质的不理想,数据帧不是都成功到达接收端。帧传输过程中可能会出现一下三种情况:

2-5-1.数据发送成功。发射端将数据发送到接收端后等待确认,发送端启动一个定时器,计时时间为300毫秒周期。接收端在收到数据帧后,向发射端回送一个确认帧,并把收到的帧提交给上层。发射端在计时结束前收到接收端发回的确认后,就关闭和复位定时器。此时,数据发送完成,发送端向上层传递一个发送成功确认。

2-5-2.数据帧丢失。发射端将数据发送到接收端后等待确认,发送端启动一个定时器,计时时间为300毫秒周期。接收端没有收到数据帧,因此不会向发射端回送确认帧。发射端在定时器计时结束时仍未收到确认帧,数据帧发送失败,发射端将再次发送该数据帧。这个重传过程最多可重复3次。若果发送端的第3次发送仍然失败,那么发送端会向上层传递一个发送失败确认。

2-5-3.发射端将数据发送到接收端后等待确认,发送端启动一个定时器,计时时间为300毫秒周期。接收端在收到数据帧后,向发射端回送一个确认帧,并把收到的帧提交给上层。发射端在定时器计时结束时仍未收到确认帧,数据帧发送失败,发射端将再次发送该数据帧。接收端再次收到数据帧时,无论这个数据帧是否已经被接收过,只要判断该数据帧为正常合法的数据帧即向发射端返回一个确认帧,以保证确认帧不丢失,然后再判断该帧是否接收过,是已经被接收过的数据帧则丢弃。这个这个重传过程最多可重复3次。若果发送端的第3次发送仍然失败,那么发送端会向上层传递一个发送失败确认。

实施例1:

本实施例中由一个燃气表具与一个无线集中器构成无线远传信号的收发终端。设定燃气表具表号为3518001234,燃气表具主动发出请求组网的命令数据,通过本发明定义的协议发射给接收端无线集中器。无线集中器收到确认无误后,将返回一个确认帧给燃气表具,燃气表具收到后表示这帧数据发送完成。

图1为本发明方法的数据组帧示意图,数据包定义了三层模型,分为物理层、数据链路层和应用层;物理层包含前导码、同步码和物理层载荷;数据链路层即为物理层中的物理层载荷,分为帧长度域、控制域、帧序号、目的地址、源地址、链路层载荷和校验码;应用层即为数据链路层中的链路层载荷,分为类型域和数据域。

图2为本发明方法csma-ca算法的基本程序框图,信道评估开始后,发射端等待随机数个退避周期,也就是随机数值*40毫秒的时间,随机数的取值范围为0到(2be-1)。等待完后发射端先切换到接收状态,开始读取当前信道上的信号强度,当发射端通过信号强度值判断当前信道为空闲时,将立即发送数据;当发射端判断当前信道繁忙,则将执行退避次数nb加1,退避指数be加1,be最大值为5。如果变量nb的值小于或等于4,则算法重新跳到等待随机数个退避周期,再判断信道空闲;如果变量nb大于4,则算法结束,该次信道访问失败,发射端将不发送数据,等待下一个发送指令。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1