光纤直放站主要由光近端机、光纤、光远端机几个部分组成。光近端机和光远端机都包括射频单元和光单元。信号的传输分下行链路和上行链路。在下行链路中,光近端机接收来自基站的无线信号,通过电光转换,电信号转变为光信号,从光近端机输入至光纤,经过光纤传输到光远端机,光远端机把光信号转为电信号,进入射频单元进行放大,信号经过放大后送入远端天线发送出去,覆盖目标区域。上行链路的工作原理与下行链路类似,手机发射的信号通过远端天线至光远端机,再到近端机,回到基站。光纤直放站近端机的定向天线收到基站的下行信号(以GSM信号为例,频段为935MHz-960M Hz)送至近端主机,放大后送到光端机内进行电/光转换,产生波长为1550nm的光信号。因为光纤中传输有波长为1310nm的上行光信号,所以下行的1550nm的光信号要通过光波分复用器耦合到光纤中,最后经光纤传到远端机;远端光波分复用器将1550nm和1310nm波长的光信号分开后,让1550nm波长的光信号输入光端机进行光/电转换,还原成下行射频信号,再经远端主机内部功放放大,由全向天线发射出去送给移动台。移动台的上行信号(频段为890MHz-915M Hz)逆向送到基站,这样就完成了基站与移动台的信号联系,建立通话。其原理如图1 所示。
由于光纤直放站系统使用的特点,其安装调试工作麻烦,维护工作开销巨大。为了增加系统的可靠性并降低系统安装调试的复杂性,越来越多的直放站生产商都要求光模块具有智能化功能,以实现对直放站的实时监控,从而方便工作人员的调试、维护和管理。本文讨论了在传统光模块基础上通过增加嵌入式单元,以实现光模块的智能化。
2.系统硬件设计
2.1 监控电路设计
监控电路是光模块实现智能化的核心部分,图2 是本设计中光模块的监控系统框图。该部分完成各监控量的采集、控制等工作。本设计采用C8051F023型单片机实现对光模块的嵌入式控制,C8051F023内部集成了一个8位8输入的ADC、一个10位8输入的ADC和两个12位DAC,非常方便对参数的采集和对压控器件的控制[1][2]。
在射频信号的输入和输出端,功率检测电路将耦合进来的射频能量进行放大,并实现功率/电压转换,再对产生的电压信号进行A/D转换,在程序中采用查找表的方法,即能得到输入/输出的功率值。C8051F023根据检测到的功率值,调整链路中的衰减值。在射频信号输入端,单片机通过D/A转换,控制压控衰减器;而在输出端,则通过程控衰减器控制信号增益。偏置电路为激光器(LD)的工作提供合适的驱动电流。单片机通过A/D转换采集到激光器的偏置电压,在程序中光功率与电压同样采用查找表的方法直接转换,而偏置电流则通过电压与电流的线性关系转换得到。当某些因素导致激光器驱动电流过大或过小时,单片机通过改变D/A输出电压,来调整偏置电路的输出电流,使激光器的发光功率维持在正常水平。另外,由于设计需要监测模块的实时温度,需加一个热敏电阻,根据电压与温度值的关系曲线图,通过热敏电阻的电压值变化而采集出温度值的变化情况。
2.2 数据传送电路设计[3][4]
本设计采用射频收发芯片CC1000作为数传芯片。CC1000是根据Chipcon 公司的SmartRF技术制造出的可编程高频单片收发芯片,主要用于工作频带在315、868 及915MHz 的ISM(工业、科学及医疗)方面和SDR(短距离通讯)方面,可在300-1000MHz 范围内通过编程工作。其主要工作参数能通过串行总线接口编程改变,这样使CC1000 使用更方便更灵活。CC1000 芯片含有三条串行数据线接口PDATA、PCLK、PALE 用于配置内部寄存器实现收发等各种功能控制,能够与多种单片机(MSC51、ARM、AVR、PIC 等)直接兼容连接。
CC1000 与C8051F023的连接图如图3 所示。单片机使用三个输出管脚用于连接CC1000的三串行配置口(PDATA、PCLK、PALE),以配置CC1000的工作模式,其中PDATA 必须是双向管脚,用于程序数据的输入输出。信号接口由DIO和DCLK组成,在本设计中它们分别与单片机的TXD1和RXD1连接,实现数据的半双工式收发。管脚CHP_OUT用于监视频率锁定状态,当CC1000内部的PLL锁定时,该引脚输出高电平。另外单片机可通过A/D转换检测RSSI信号的强度。
近端模块与远端模块之间采用FSK通信,在图3 中,引脚RF_OUT和RF_IN分别用于发送FSK_OUT信号和接收FSK_IN信号。通信数据FSK_OUT由近端模块中的CC1000发出,结合图2 可知,FSK_OUT信号通过耦合器耦合到射频信号中,经过光/电转换进入光纤传输至远端模块;在远端,光信号被还原为射频信号,通过低通滤波得到FSK信号,此时称FSK_IN信号,该信号被远端模块的CC1000接收。远端模块发送给近端模块的数据依据同样的原理传输。模块之间的FSK通信大大提高了对光模块的监测和控制能力。
C8051F023有两个UART接口,在本设计中UART0与上位机通信,UART1则用于与CC1000的数据传输。
3.系统软件设计
3.1 系统软件总体设计
软件总体功能主要分为四个部分:参数监测、数据存储、数据收发和性能控制。在主程序中采用两个中断:定时器中断和串口中断。定时器中断实时采集参数数据,实现模块的实时监测;串口中断实时收发上位机和FSK数据,实现命令的处理和监控数据的传输。
主程序的结构如图4所示,程序对上位机命令进行鉴权处理之后,根据通信协议解析处理命令,并执行相应的操作。
3.2 CC1000参数编程
CCl000作为数传芯片,需要进行参数配置以决定其工作性能,因而CC1000参数编程是一个重要的过程。通过可编程配置寄存器能改变以下主要参数:接收/发送模式、射频输出功率、射频输出频率、FSK分频、晶振参考频率、传输速率和数据格式等。在本设计中,CC1000 采用曼彻斯特编码方式,进行数据译码和同步工作,这通过设置CC1000 的MODEM1 寄存器的参数完成。在同步编码方式中,曼彻斯特编码不需要锁定平均值滤波器,传输效率高。设计要求CC1000采用11.0592MHz晶振,接收本振频率为433.766MHz,发射中心频率为433.916MHz(连发“1”)、433.948MHz (连发“0”),调制频偏为32KHz,载频稳定度为10KHz。根据以上参数,可通过Chipcon 公司提供的CC1000配置软件SmartRF Studio来产生配置信息,这些配置信息将被输入到单片机中。另外该软件还可以提供输入/输出匹配电路和VCO电感所需的元件参数值。
完成配置信息后,要对CC1000进行初始化,初始化主要完成对CC1000内部寄存器的设置。在初始化时需复位CC1000内部寄存器。当完成寄存器的设置后,为了避免芯片运行过程中频率产生的漂移,应当校正CC1000内部VCO和PLL寄存器中的值。校正完成后,对MAIN寄存器进行设置,将CC1000输出功率初始值设为0,功耗模式设置为低电平模式,以降低功耗。初始化流程如图5所示。
3.3 数据收发程序设计[5]
数据的收发包括:单片机接收上位机数据,单片机向上位机发送数据,单片机接收CC1000数据和单片机向CC1000发送数据。这里仅讨论单片机通过串口1接收中断接收CC1000数据过程,这是整个数据收发程序设计中的难点。
本设计中,单片机与CC1000之间采用曼彻斯特同步模式进行数据的接收和发送。在发射模式下(单片机向CC1000发送数据),PCLK提供发送数据时钟信号,DIO用于数据输入,CC1000 自动完成对数据的译码。在接收模式下,PCLK 提供接收数据时钟信号,在DIO提供数据,CC1000自动完成数据编码和同步工作。
(1)数据帧结构
在曼彻斯特同步模式下,数据帧由训练码、同步码、前导码和有效数据构成。在本设计中,训练码为连续交替出现的0 和1,共40个;同步码为连续出现的8个0;前导码为连续的8个1。当数据中出现符合前面所有格式数据时,接下来的数据就是要接收的有效数据。当数据符合帧格式时,单片机才认为该数据为合格数据,从而进行接收,这样可以保证接收数据的准确性,降低传输误码率。
(2)串口1接收中断服务程序
在通信过程中CC1000 具有3 种状态:IDLE(空闲)、RX(接收数据)、TX(发送数据)。由于CC1000与单片机之间是半双工模式通信,因而RX 与TX 两状态要互斥。数据的接收由串口中断完成:UART0接收中断接收来自上位机的数据,UART1接收中断则接收来自CC1000的数据。UART1中断服务程序数据传输流程如图6所示。在接收过程中,为了避免数据帧长度过长,当接收的有效数据超过缓冲区空间时,单片机判定此帧无效。
3.4 参数监测与控制
单片机通过A/D转换完成对参数的采集和数字化,这一过程由定时器中断完成。监测数据被存储,并通过PC机显示出来。增益控制和偏置电压则通过单片机的D/A转换来控制。有关这方面的软件设计,由于篇幅有限,这里不再赘述。
4.总结
嵌入式智能光模块可以实现直放站近端机和远端机的远程光纤通信,在此基础上,PC 机只需通过RS232/485总线与近端机通信,便可完成对近端机和远端机的实时监控,方便工作人员对直放站的调试和维护。经测试,CC1000之间的FSK通信在20dB 光衰条件下的误帧率优于0.1%,保证了监控的可靠性。