关键词:DSP McBSP WE904 无线收发模块 5B6B编码
引言
随着短距离、低功率无线数据传输技术的成熟,特别是蓝牙、802.11b等应用的推广,无线数据传输应用再次成为应用的热点。本文介绍一款基于新加坡Winedge公司WE904芯片的无线收发模块,说明其在一个实时无线图像数据传输系统中的应用,以其实现一个低发射功率和低成本的实际应用系统。为低成本中低速的无线数据传输提供一种新的解决方案。
1 系统简介
系统的简单框图如图1。此系统的简单工作过程为:①电脑眼负责图像采集和图像信号的A/D转换。②电脑眼输出的图像信号由DSP芯片TMS320VC5402(以下简称5402)编码压缩。③5402通过McBSP(多通道缓冲串口)实现与WE904模块的接口,实现WE904模块的配置,并且将编码后的图像信号以RS232协议的信号格式输到WE904模块,经调制后发送出去。④接收端的WE904模块输出TTL电平的信号,经过RS232电平接口的电平转换后由串口输入PC机。⑤PC机将收到的图像信号解码并显示出来。
2 WE904无线收发模块WE915CTX1介绍
WE915CTX1无线收发模块的主芯片是新加坡Winedge公司的WE904。WE904是一款支持全双工的单片调频收发芯片,仅需少量外部元件即可实现无线收发功能,工作频率范围可以从0.1GHz到1GHz。WE904提供串行编程接口,通过串行编程接口可以灵活地调整收发频率、信号输出模式、是否支持全双工等参数。本系统在设计初期直接使用了WE904的模块WE915CTX1。WE915CTX1集成了WE904芯片和所需的外部元件,并提供了简明的使用接口,可以非常方便地嵌入到应用系统中。其主要的特点是:
①工作于902MHz~928MHz美国ISM频段,可以提供20个通道;
②使用FM/FSK的调制方式,频道宽度100kHz;
③提供数字信号和模拟信号两种输出模式,可用于数字和模拟信号的传输;
④灵敏度为-115dBm;
⑤在低输出功率0dBm时,可以提供约80m(数字信号) 和300m(话音等模拟信号)的有效传输距离;
⑥传输速率可达57.6kbps,与传输距离有关;
⑦提供串行编程接口,可能灵活配置收发频率等参数;
⑧提供RSSI接收信号强度指示。
3 WE904模块WE915CTX1的接口
WE915CTX1提供简单的用户接口,如图2所示。①VCC和GND为电源,电源电压为3.3~4.5V。②Audio In为待调制基带信号的输入引脚。其输入信号可以是话音等模拟信号,也可以是数字信号。对输入信号的要求是,其交流有效值通常为140mV~200mV,更大的输入有效值能得到更好的信噪比,但也将占用更大的带宽。通常200mV将产生25kHz的频偏。TTL电平的数字信号输入Audio In引脚时,必须先降低其电压有效值,这可以通过使用2个串联电阻分压来实现。例如,可以用1个10kΩ和1个1.8kΩ的电阻串联分压,但使用的电阻阻值不能太大,否则会使输入的方波波形产生严重的畸变。③Audio Out为接收信号的输出引脚。当输出模式设置为模拟输出(analog)时,输出信号有效值通常为140mV~180mV的已解调基带信号。当输出模式设置为数字模式(digital)时,输出信号Vp-p为3V左右的数字信号方波。④LNA_ON为低哭声放大器电源控制引脚,低电平有效。在接收时必须置低,能够得到约15dB的增益;在不接收信号时可以关掉,以降低功耗。⑤ANT为天线连接引脚,其输出阻抗为50Ω。⑥RSSI为接收信号强度提示。接收信号从-110dBm变化到-50dBm时,RSSI的电平大约从0.65V变化到1.70V。⑦CLK、DATA和LE为串行编程控制端口,用来实现对WE904芯片的编程控制。以下将详细介绍。
4 WE904模块WE915CTX1的编程控制接口
WE904芯片内部有4个控制寄存器,用来对WE904芯片的工作状态进行控制。这4个寄存器分别是参考频率寄存器、发送频率寄存器、接收频率寄存器和模式寄存器。这4个控制寄存器的相应位的功能定义此处不作介绍,读者可以参考W904的芯片资料。对这4个寄存器的写入控制则是通过CLOCK、DATA和LE三个引脚业实现的,分别与模拟WE915CTX1的CLK、DATA和LE相对应,其写入时序如图3所示。
写入的基本过程为:①LE开始时为低电平。②当LE变为高电平后,数据在CLOCK的驱动下开始由DATA引脚移入内部的移位寄存器。数据的移位操作是在CLOCK的上升沿进行的。所以设计接口时通常使时钟CLOCK的下降沿和位边界对齐,这样在CLOCK的上升沿能有效的采样到数据。③在最后一个数据位移入内部移位寄存器后,LE在下一个时钟上升沿之前变低。在LE的下降沿,数据将由内部移位寄存器写入控制寄存器。④数据具体写入4个控制寄存器中的哪一个,是由DATA的最低两位的值来决定的。这两位称为装载控制位(load control bit)。⑤WE915CTX1要求在CLOCK上升沿到来之前,DATA的数据至少已经保持45ns,所以CLOCK的频率不能太高,建议取10MHz以下。
5 5402r McBSP简介
5402是TI公司一款性价比非常优越的通用DSP芯片,有着广泛 的应用。它提供有两个McBSP。McBSP是一种全双工的高速同步串行口,可以用来与系统中其它的DSP芯片、编码解码器等进行高速的串行通信。McBSP的操作由DSP芯片中一系列寄存器来控制。图4是McBSP的标准操作时序。无论是发送还是接收的移位操作,都是由帧同步信号FSX或者FSR的上升沿触发的,并且由时钟CLKR或CLKX来同步位边界。从FSX或FSR的上升沿到移位操作开始可以有几个时钟的延迟,图4所示为1个时钟的延迟。这可以由控制寄存器XCR2和RCR2中的相应的位来设定。在每一个帧同步信号之后发送或者接收的数据的位数也在控制寄存器XCR2和RCR2中有相应的设定,图4是McBSP的最简单的操作时序,对一般的应用已经足够,更强大的功能则需要更复杂的设计。
6 5402与WE904模块的接口设计
在本系统的设计中,图像数据的发送和对WE904模块的编程配置是使用DSP芯片5402的同一个McBSP来完成的。这了使这两个过程互不影响,在设计中还使用了5402的一个I/O引脚XF。图5为接口电路的简单原理,基本原理如下:①在对WE904模块配置期间,XF为高电平,LE的输入决定于McBSP的发送帧同步FSX,而发送时钟CLKX和发送数据线DX分别驱动WE904模块的CLK和DATA。②为了对WE904模块进行配置,McBSP的设置为FSX周期大于24个CLKX的时钟周期,高电平宽度设置为24个CLKX的时钟周期。CLKX在驱动CLK时先反相。这样即可得到与图4大体相同的时序,能够完成对WE904模块的配置。这里给出McBSP各个控制寄存器的参考值:SPCR1=0x0080,SPCR2=0x0262,RCR1=0x0000,SRGR2=0x301f,MCR1=0x0000,MCR2=0x0000,PCR=0x0b02。③在对WE904模块的配置完成后,XF设置为低电平输出,此时LE的输入值恒为高电平,因此,CLK和DATA的输入不会再改变WE904的设置。此时,发送的图像数据从DX串行输出,经分压后输入EW904模块的Audio In。发送的时钟CLKX从FSR引脚输入。这主要是因为本系统的DSP时钟为100MHz,DSP的时钟经过内部计数器分频后仍然无法从CLKX引脚得到要求的几十kHz的时钟,所要求的时钟必须经过再次分频后(在寄存器FPER中设定分频参数)从FSG得到,而发送帧同步FSX将设置成在数据从DXR拷贝到XSR时自动产生。在模块的配置期间,FSR设置为输入,不会影响CLK的输入值。④XF在与FSX做或运算前经过了一次反相,主要是因为XF在此系统中还同时用于其它结构的控制,在图像的发送期间,要求XF为低电平。
图4
7 RS232异步串行通信
本系统采用RS232异步串行通信协议。RS232异步串行通信接口是微机的传统外设接口,特点是使用简单,但速率较低。RS232接口在低速数据传输和工业控制、工业数据采集等方面有着广泛的应用。由于本系统要传输的图像数据已经得到较好的压缩,速率在几十kbps,所以本系统使用RS232串行口进行通信。当不需要握手时,最简单的串口通信只需要3条线即可完成连接,单向通信甚至只需要2条线即可。但是由于RS232串行接口的电平较高(通常为正负4V~12V),不同于通常的TTL电平,所以必须经过必要的电平转换。本系统中使用MAXIM的MAX232完成电平转换。RS232的通信协议的数据格式如图6所示。在每一个字节的传输时,都是以一个起始位开始,以停止位结束(停止位个数可设定)。在停止位前可以加入奇偶校验位,在各个字节之间还可以插入空闲位。起始位为0,停止位为1。空闲位也为1,与停止位有相同的电平。接收串口总线在检测到起始位的下跳沿时开始接收数据。在本系统设计中,由于数据是单向传输,RS232的数据格式直接由McBSP负责构建。之后送入WE904模块的Audio In调制发送。如果要求双向的数据传输,则可以加上一个异步串行通信的接口芯片来实现,如TI公司的TL16C750。接收方的微机负责串口数据接收。串口接收程序的编写通常有三种:①使用C或汇编语言控制硬件;②使用Windows的API函数;③使用VB提供的Mscomm控件。本系统使用的是VB的Mscomm控件。这种方法比较简单,但是效率稍低,如需要更高效率的程序,可以选择前两种方法。关于串口收发程序编写的资料很多,这里不再详述。
8 FSK无线数据传输中低频分量引起的误码
在FSK无线数据传输中,输入信号中的低频分量有可能引起很高的误码率。在二相FSK中的具体表现为当短时间内输入信号中的“1”或“0”的个数显著增多时,接收信号的误码率也显著上升。这主要是因为整个系统对信号中的低频分成衰减造成的,如系统中的隔直耦合电容的影响等。低频成分衰减后造成信号无法正确恢复,从而引起了很高的误码率。要提高系统性能,必须使输入信号中的低频成分尽量小并保持恒定,这就是所谓的均衡问题。对于简单的二元输入,就是要使输入信号中的1和0的个数尽可能的平衡。通常为减小低频分量,可以将输入信号采用HDB3编码和曼彻斯特编码等。HDB3是三元输入码,信号传输中有三种电平,需要用专门的硬件实现。曼彻斯特码是二元码。它的简单规则是:1用1到0的跳变来表示,0用0到1的跳变来表示。显然采用曼彻斯特编码后,1和0的个数达到了完全的均衡,但同时它增加了一倍的数据量。考虑到数据量的要求,本系统在设计中借用了高速光纤通信中使用的5B6B编码。5B6B编码将5位的二进制数用6位二进制数表示,它从6位二进制数的64种组合中精选出32组对信码进行编码。编码时有正模式和负模式两种,使用时成对选择以使得码序列中1、0码个数趋于平衡。5B6B具有这样的特性:该传输序列中最大的连及连1个数为5。累积的1、0码个数的差值(称为数字和)在-3~+3范围内变化。5B6B码解决了输入信号中1和0的均衡问题,同时具有较高的传输效率,它只增加了20%的码数。本系统采用5B6B编码后(在RS232输出前进行),在降低系统的误码率方面取得了非常明显的效果。
结语
本系统使用WE904模块进行实时的无线数字图像传输实验,采用普通单天线,在传输速率为57.6kbps和极低发射功率0dBm时,可视传输距离大于100m(需更元的距离可加大发射功率)。采用自己的图像压缩算法,每秒能够稳定地传输3~6帧图像(黑白图像384×288像素)。为低成本的中低速的无线数据传输提供了一种很有竞争力的参考方案。