关键词:单片无线收发芯片nRF401,无线通信协议,无线抄表
nRF401单片无线收发芯片外围元件少并可直接接单片机串口,为设计智能无线抄表等短距离无线数传应用产品提供了较好的解决办法,在很多领域得到广泛应用。然而,由于无线通信的特殊性,一些外部的因素会对数据的无线传输产生影响,因此需要采用有效的办法来确保通信。为了有效地应用无线通信,这里建立了一个无线数据传送的通信信道模型,了解并讨论外部因素对无线数据传输的影响,分析错误产生的原因与环节以及如何有效地传输数据,最后提供了一个可实际使用的无线通信协议。
1 通信信道模型及其分析
为了分析影响无线通信的因素,我们建立了一个无线通信信道模型。通信信道是指数据从发射到接收的一个完整通道。它包括产生数据源、编码、发射、接收、解码等,如图1所示。
1.1 数据源
数据源是指数据产生的来源,在不同的应用中数据的来源是不同的,它可能是一个温度传感器的A/D数据值,计算机里的一个文件,或者用户输入键盘里的一个按键。数据在这里发生错误的可能性较小,而且较易通过硬件或软件的方式来发现。
1.2 数据编码
数据编码主要包括并行转串行以及为了传输可靠而增加的编码信息。nRF401需要的是串行数据格式,这通常是由单片机UART(通用异步传输)来完成的,有时也可通过软件I/O模拟来完成。数据在此发生错误的可能性也不大,而且可跟踪和发现。
1.3 数据发射
数据发射是通过单片无线收发芯片nRF401的发射功能来完成的。nRF401采用PLL频率合成和FSK调制技术,本身的设计是可靠的,然而外部因素如不恰当的供电、PCB设计与布局不良、噪声、不适当的调制电压电平、不适当的天线负载,都能引起数据流的错误。解决的要点需要根据良好的射频PCB设计、选用满足要求的外围元件,并注意供电(良好的电源滤波,尽量不用开关电源),通过综合采用以上措施,可以减少数据流产生错误的因素,获得较为理想的效果。
1.4 传播路径
传播路径是无线电波从发射到接收的路径,传播损耗将会直接影响通信的效果,数据错误最有可能在这个阶段发生。因为频带内的干扰或传播路径中RF信号的损耗降低了灵敏度,而且多径和衰减也可能引起接收机接收错误的数据。传播损耗包括自由空间损耗和其他损耗,其他主要的损耗包括:大气、降雨、云、雾损耗;树木遮挡损耗;建筑物等遮挡物的损耗;另外,突发性的干扰也会导致数据的错误。下面以自由空间损耗为例对传播进行预测。
所谓自由空间传播系指天线周围为无限大真空时的电波传播,它是理想传播条件,自由空间传播损耗与距离和工作频率有关。下面的公式说明在自由空间下电波传播的损耗:
〔Los〕(dB)=32.44+20lgd+20lgf
式中,Los是传播损耗,单位为dB;d是距离,单位是km;f是工作频率,单位是MHz。
由上式可见,自由空间中电波传播损耗(亦称衰减)只与工作频率f和传播距离d有关,当f或d增大一倍时,Los将分别增加6dB。
下面举例说明工作频率为433.92MHz,发射功率为+10dBm(10mW),接收灵敏度为-105dBm的无线系统(基于nRF401)在自由空间的传播距离:
(1)由发射功率+10dBm,接收灵敏度为-105dBm,则Los=115dB;
(2)由Los、f计算得出d=9.7公里。
这是理想状况下的传输距离,实际应用中会低于该值,这是因为无线通信要受到各种外界因素的影响,如大气、阻挡物、多径等造成的损耗,将上述损耗的参考值计入上式中,即可计算出近似通信距离。假定大气、遮挡等造成的损耗为25dB,可以计算得出通信距离为:d=1.7公里。由此也可看出传播损耗对数据传输可靠的影响是很大的。
1.5 数据接收
接收过程通过单片无线收发芯片nRF401的接收功能来完成。在没有接收到信号时,nRF401会有随机数据输出,这是因为其灵敏度比较高。当发射机发射时,接收机的随机数据输出被抑制,这时输出的是真正的数据。带内干扰和频率下降可能引起接收机接收到错误数据。与数据发射情况一样,合理的PCB设计与布局,良好的供电等将产生较好的效果。
1.6 数据解码
从nRF401输出的数据是串行数据,通常可由微控制器的UART来处理,或者用软件方法来实现接收。数据在此过程出现错误的可能性很小的,且易被跟踪。如果错误发生在这之前,能根据帧错误通过软件发现。
1.7 数据解释
数据解释通常在软件里实现,错误检测和纠正也在这阶段实现,数据错误在这阶段发生的可能性不大,且易于跟踪。
2 无线通信协议基本要求及设计
在对无线通信信道模型进行分析,了解并讨论外部因素对无线数据传输的影响后,我们可以据此设计实用的无线通信协议。
2.1 起始码和噪声的识别
这是因为nRF401灵敏度比较高,由于nRF401的特性,在没有接收到信号时,nRF401会有随机数据输出,所以协议的第一件事就是能够识别噪声和有效数据。噪声是以随机字节出现的,没有明显的方式。一个理想的噪声源应该能够产生每一种可能字节信息的结合,噪声的这种特性使得去找一种字节组合来作为有效包的开始相当困难,但实际上,噪声并不是理想的。经测试和试验,我们发现0xFF后跟0x00在噪声中不容易发生,传输协议应该在数据包前加开始字节0xFF后跟0。
发送协议的开始应该是一个任意内容的字节如0xAA(这是因为第一个字节的数据在发送时容易丢失),然后是0xFF后跟一0x00;接收协议规定只接收以0xFF后跟一00x00开始的包。
2.2 错误检测
为了发现数据传输可能发生的错误,需要对接收到的数据进行错误检测。错误检测可以这样来实现:在发射之前先对数据进行分析,然后将这种分析结果加到数据包中,称为监督位;在接收端比较附加在信息位后的监督位,如果两者不同,则包是错误的。错误检测的方法有多种,奇偶校验、和校验以及CRC校验等。
奇偶校验、和校验是较为常用及易于实现的方法,下面举例说明奇偶校验法。
例1:发射数据1 0 1 0 1 0 1 0,在其后加奇偶标志位,此为偶标志(1),则发送为1 0 1 0 1 0 1 0 1接收到0 0 1 0 1 0 1 0 1。将前8位奇偶校验与1比较,不对,故接收错误。奇偶校验容易实现,但却是最不可靠的,因其只能发现奇数个错误。
另外一种形式的错误检查是和校验。和校验是先将所有的数据字节相加,然后将结果截短到所需的位长并作为校验子传输。下面以例2说明之。
例2:
4 字节1
109 字节2
65 字节3
204 字节4
126 8 bit校验和
校验和能够检测到比奇偶校验更多的错误,但当字节顺序颠倒时,校验和不能发现,因其不能发现次序错误。如果要求更高的可靠性,可采用CRC编码,采用CCITT16检错编码,理论上可对16位以下的突发或随机错误完全检出,具体原理和实现方式可以参考相关资料。
2.3 错误纠正
错误纠正的目的是在发送数据编码时增加一些额外的信息,以检测并纠正数据传输发生的错误。前向纠错的方法包括汉明码、循环码和卷积码等。
一些复杂的算法虽然有很好的纠检错效果,但是对于许多初次接触无线通信协议设计的人来说,可能需要很大的精力来了解相关的数学知识,因此,这里介绍一个采用重复码来纠检错的算法,它适用于简单实用的通信协议,编程也很容易实现,在采用nRF401设计的无线数传系统中得到应用。下面就是一种适合于许多无线数传的前向错误纠正方法。数据在包中复制两次(总共3份),在接收端,第一个拷贝进行检错,如果有错,剩下的两个备份用来改正错误。
错误的纠正是通过比较三个备份数据中的每位,如果两位或更多位是0,则正确的应为0。如:
0 0 0 0 1 0 1 1 copy 1(错误字节)
1 0 1 0 1 0 1 0 copy 2
1 0 1 1 1 0 1 0 copy 3
1 0 1 0 1 0 1 0 已经被纠正的字节
在实际应用中可以根据需要选用三重判决或者五重判决。
3 无线通信协议设计的基本要求
根据对无线信道模型的分析,我们可以了解到无线通信协议有以下几个基本要求:
·最小的开销:无线传输过程中受到噪声或干扰等的影响,会出现误码,为此,在传送时要对数据进行各种纠检错编码。不同的编码方式具有不同的纠检错能力,有的编码只能检错不能纠错,一般来说,监督位码元所占的比例越大,纠检错能力越强。纠错编码是以降低信息传输速率为代价来提高传输的可靠性的,因此,增加信息的数量必须是所需信息中最少的,以保证编码的效率。
·可靠性:一个无线通信协议应该能够有效检出并纠正数据的错误。
·优化的无线功能:一个无线通信协议应该使设备以一种能充分利用发射和接收机特性的优化方式工作。
参考文献
2 刘富全.纠错编码及应用.哈尔滨:哈尔滨船舶工程学院出版社,1993
评论
查看更多