基于网络的射频信号预处理器设计
梁霄
摘要:文章通过对射频信号接收的研究和设计,实现射频信号的预处理,可以显著地改善复杂电磁环境下接收机或频谱仪的测量效果,同时也可以提高测试系统的自动化水平。
关键词:射频预处理器;播出质量;测量效果
监测广播电视系统播出质量是广播电视监管行业的重要任务之一。其中,接收天线加专业接收机的组合作为主要监测方案被各级监管部门广泛应用。但是,由于受来波方向、广播电视射频信号强度、接收机自身动态范围和测量环境干扰等因素的影响,监测系统中需要多副天线配合天线切换器、滤波器、衰减器等设备实现射频信号的预处理。传统的监测系统中,天线切换器、滤波器和衰减器的选择与控制都是依靠人工手动完成。为了提高监测效率,提升监测系统自动化水平,有必要设计一种基于网络的射频信号预处理器,实现接收信号的自动化预处理和网络化远程控制。
1 概述
1.1 动态范围
动态范围是衡量接收机性能的一个重要指标,是指使接收机能够对接收信号进行检测而又使接收信号不失真的输入信号的大小范围,一般指幅度。接收信号过大,会引起放大器的失真和引入噪声,严重时甚至会烧毁接收机前端。信号过小,信号无法被检测到。频谱上小信号附近的大信号同样会影响接收机的测量准确性。
1.2 衰减器
衰减器是在指定的频率范围内,一种用以引入_预定衰减的电路。结合后端的处理软件补偿,引入衰减器有助于提高接收机或频谱仪的动态范围。衰减器分为无源衰减器和有源衰减器两种。有源衰减器与其他元件相配合组成可变衰减器,装置在放大器内用于自动增益或斜率控制电路中。无源衰减器有固定衰减器和可调衰减器。本设计采用无源衰减器。
1.3 带通滤波器与带阻滤波器
带通滤波器是指能通过某一频率范围内的频率分量、但将其他范围的频率分量衰减到极低水平的滤波器,在实际的信号测量过程中可以使用带通滤波器,只允许感兴趣的信号通过。与带通滤波器的概念相对的是带阻滤波器,它是指能通过大多数频率分量、但将某些范围的频率分量衰减到极低水平的滤波器,在所测量信号频谱附近有大信号时,为了降低大信号对所测信号的干扰,特别是待测信号是较小信号时,采用带阻滤波器衰减不感兴趣的大信号不失为一种有效手段。本设计同时采用带通滤波器与带阻滤波器。
1.4 射频同轴开关
同轴开关在射频、微波系统中有着广泛的用途,如时分多工器、时分通道选择、脉冲调制、收发开关、波束调整等。开关的指标比较简单,接通损耗尽可能小,关断损耗尽可能大,频带和功率满足系统要求。任何一种同轴开关都有相应的驱动电路,驱动电路实际上是一个脉冲放大器,把控制信号(通常为TTL电平)放大后输出足够大的电流或足够高的电压。同轴开关为本设计的重要部件。
2 射频信号预处理器设计(见图1-2)
2.1 射频预处理器工作原理
用户通过本地按钮或PC机控制射频预处理器,通过同轴开关选择合适的天线通道,合适的衰减、直通、带通、带阻、高通、低通通道,经过射频预处理器后的信号再进入接收机或频谱仪,如图1所示。用户也可根据实际需要从外部接口外扩滤波器,射频预处理器工作框如图2所示。
2.2 硬件设计
主单元以带有以太网接口的高性能ARM CORTEX-M3处理器为核心,SD卡接口存储用户的配置信息,2.4寸TFT液晶屏与光点拨码开关作为本地控制人机交互单元,RJ45接口作为远程控制接口,4路天线输入、1路射频输出、2路外部滤波器扩展口均采用N型插座,ARM处理器通过SPIEl经过74HC595串并转换后控制同轴开关。预处理器输入电压为AC220V,内部采用DCl2V开关电源为处理单元和同轴开关驱动电路供电。为了减少外部电磁环境对内部射频信号的干扰,预处理器采用金属屏蔽机箱。
2.3 软件设计
软件设计采用RT-Thread实时系统、开源的UCGUI图形系统移植、LWIP网络协议栈移植、显示驱动编写。
RT-ThreadRTOS是一款来自中国的开源实时操作系统,由国内一些专业开发人员开发、维护。它不仅仅是一款高效、稳定的实时核心,系统也是一套面向嵌入式系统的软件平台,覆盖了全抢占的实时操作系统内核,小巧而与底层具体实现无关的文件系统。远程控制采用以太网方案,需要TCP/IP协议栈支持,但是通用的协议栈体积庞大,不适合在嵌入式领域使用。LwIP(light weight IP)是瑞士计算机科学院的Adam Dunkels等开发的一套开放TCP/IP协议栈源代码。LwlP既可以移植到操作系统上,又可以在无操作系统的情况下独立运行。LwIP实现的重点是在保持TCP/IP协议主要功能的基础上减少对RAM的占用,这使LwIP适合在低端嵌入式系统中使用。移植要点如下:
2.3.1 所需头文件
CC.h主要定义数据类型的名称;sys arch.h主要定义3种新数据类型:信号量、邮箱、线程。
2.3.2 Lwip的操作系统封装层(operating system emulationlayer)
为了适应不同的操作系统,Lwip没有在代码中使用与某一个操作系统相关的系统调用和数据结构,而是在Lwip与操作系统之间增加了一个操作系统封装层,操作系统封装层为操作系统服务(定时、进程同步消息传递)提供了一个统一的接口。在Lwip中进程同步使用semaphone,消息传递采用mbox。
Operating system emulation layer的原代码在…/1wip/src/core/sys.c中,与具体的操作系统相关的代码在../1wip/src/arch/sys arch.c中.操作系统封装层的主要函数如下:
void sys init(void)∥系统初始化
sys_thread_t sys_thread_new(void(*function)(void*arg),void*arg,int prio)//创建一个新进程
sys_mbox_t sys_mbox_new(void)∥创建一个邮箱
void_sys_mbox_flee(sys mbox tmbox)∥释放并删除一个邮箱
void_sys_mbox_post(sys_mbox_t mbox,void*data)//发送一个消息到邮箱
void sys_mbox_fetch(sys_mbox_t mbox,void**msg)∥等待邮箱中的消息
sys_sem_t sys_sem_new(u8 t_count)//创建一个信号量
void sys sem free(sys sem t sem)∥释放并删除一个信号量
void sys_sem_signal(sys_sem_t sem)∥发送一个信号量
void sys sem wait(sys sem t sem)∥等待一个信号量
void sys timeout(u32_t msecs,sys_timeout_handler h,void*arg)∥设置一个超时事件
void sys_untimeout(sys timeout_handler h,void*arg)∥删除一个超时事件
2.3.3 ethernet的移植
与具体网卡打交道的函数位于ethernet.c中,移植工作主要是填空ethernetif.c的过程。主要实现以下3个函数:
void low level init(struct netif*netif), //初始化网卡
err_t low_level_output(struct netif*netif-struct pbuf*p),∥发送以太网数据包
struct pbuf*ow_1ev eI_input(struct netif*netif),
∥接收以太网数据包
UCGUI是一种嵌入式应用中的图形支持系统。它为任何使用LCD图形显示的应用提供高效的独立于处理器及LCD控制器的图形用户接口,它适用于单任务或是多任务系统环境,并适用于任意LCD控制器和CPU下任何尺寸的真实或虚拟显示。它的设计架构是模块化的,由不同的模块中的不同层组成,由一个LCD驱动层来包含所有对LCD的具体图形操作。UCGUI可以在任何的CPu上运行,因为它是100%的标准C代码编写的。UCGUI能够适应大多数的使用黑白或彩色LCD的应用,它提供非常好的允许处理灰度的颜色管理,还提供一个可扩展的2D图形库及占用极少RAM的窗口管理体系。
设计中采用8位并行MCU接口的TFT液晶屏,需要软件模拟读、写、指令、数据时序。见如下c语言宏定义:
∥指4/数据选择
#define LCD_RS(X) GPIOPinWrite(GPIO_PORTE_BASE,GPIO_PIN_6,(x?LCD_RS_DATA:0))
//片选
#define LCD_CS(X) GPIOPinWrite(GPIO_PORTB_BASE,GPIO_PIN_4,(x?LCD—RS—DATA:0))
//读
#defme LCD_WR(X) GPIOPinWrite(GPIO—PORTB_BASE,GPIO_PIN_5,(x?LCD_WR_DATA:0))
//写
3 结语
遥控站安装地点的选择范围因各种原因极度受限,基础条件是具备通畅的网络连接和稳定的电力供应,但电磁环境往往无法满足收测标准,为保证监测业务的正常运行、收测数据的稳定可靠,在站点系统中引入射频信号预处理器,通过本地或远程控制同轴开关选择不同的天线通道以及对信号进行前期滤波或衰减,可以显著地改善复杂电磁环境下接收机或频谱仪的测量效果,基于网络的射频信号预处理器还可以按照用户需求远程遥控、及时修改相关参数设置,大大提高工作效率,以应对各类日常、临时监测任务。