文献标识码:A
文章编号: 0258-7998(2014)09-0068-04
无线电频谱管理是一个国家的频谱主管部门根据法律法规的授权,按照国际电信联盟(ITU)的频谱划分原则,制定本国频谱划分、使用和分配政策。在频谱的划分和使用中,如何科学有效地利用无线电频谱资源,满足经济和社会发展的需要是一个重要课题。
传统的无线电频谱监测设备可以包括短波和超短波频段,有庞大的监测、测向天线阵,监测覆盖范围广,这样的大型监测站在传统的无线电频谱管理模式中发挥了重大作用。但随着经济社会的发展和无线电技术的进步,频谱的需求程度日益增加,具体表现在以下几个方面:工作频段越来越高,单位面积内频谱使用密度越来越高,单个信道占用的频谱带宽越来越宽[1]。这些需求对无线电频谱监测提出了新的挑战,参考文献[2]中针对这些问题,提出了一种网络化小型频谱监测系统的概念。这种网络化的小型站架设环境宽松,架设方便,还可以大大节约单站的建设成本。但监测网络化分布会增加小型监测站的数量,从而增加了成本。该文献还指出,小型监测站需要采用双信道接收,即一个站点需要配置两个以上独立接收机,一个完成常规任务,一个完成特别任务。这样架设虽然带来了不少方便,但无疑增加了监测站的建设成本。此外,在频谱监测中,有的任务并不需要一直执行,尤其是特别任务,接收机便出现闲置的情况,造成资源浪费。
本文基于这一应用背景,提出了一种能够支持多客户端同时进行频谱监测的流水并行处理架构。该架构可以满足多个频谱监测任务的同时执行,有效提高了接收机的利用效率,增强了接收机的灵活性,还减少了频谱监测任务中接收机的使用量,降低了频谱监测的成本。
1 系统结构
本文提出的频谱监测接收机系统按照图1所示的方式工作。该频谱监测系统允许多个客户端同时连接到接收机并下达各自的频谱监测任务,接收机接收到不同客户端的任务之后,对任务进行解析,添加到系统任务列表中进行合理调度,以便能够实时完成各个客户端的监测任务,最后通过网络将频谱监测结果回传到相应的客户端。
为了实现这样的功能,多客户端频谱监测系统采用TI公司的双核数字信号处理器OMAP-L138。OMAP-L138为一款高性能、低功耗双核处理器,集成了ARM926EJ-STM处理器和TMS320C6748 DSP处理器[3],保证了强大的运算能力以及控制能力。此外,在频谱采集部分采用了Altera公司的EP2S180F1020I4高速FPGA[4],通过FPGA完成了数据的高速采集与相关预处理。系统实现框图如图2所示。
在该结构中,电磁波通过天线进入射频前端,射频前端将信号变频到75 MHz中频,通过ADC以60 MS/s的采样率带通采样后送入FPGA。在FPGA中进行相应预处理后便将数据回传到OMAP-L138的DSP端处理,处理完成后再通过ARM端将监测结果送回至对应客户端。
在系统实现中,引入了多核、多线程技术,在这一基础上,保证了本系统在工作中不仅能够支持一个客户端完成以上频谱监测流程,在多个客户端同时连接时也能够保证各个客户端任务的并行处理。
各客户端连接到系统之后,系统将会为其分配相应的任务标识,以便后续信号处理及频谱数据回传工作的完成。完成用户识别之后,系统根据不同用户信息来合理地解析其频谱任务,供后端流水并行处理使用,处理完成后回传到对应客户端。整体流程如图3所示。
2 系统设计
在本系统的设计中,采用TI双核处理器OMAP-L138。此款处理器包含ARM与DSP,为使系统能够更好地实现多客户端频谱监测的功能,ARM采用了Linux操作系统[5],Linux操作系统为开源多线程操作系统,具有强大的网络支持,能够很好地处理多个客户端的网络连接,此外TI提供了相关的底层支持,开发效率高;DSP采用TI公司的DSP/BIOS,DSP/BIOS是一个尺寸可伸缩的实时内核,方便实现线程间调度与同步工作[6]。多核、多线程技术的引入为本系统多客户端频谱监测的并行处理实现提供了强有力的保证。
2.1 多客户端并行处理架构
在本系统中,结合多核架构以及多线程技术,提出了多客户端频谱监测的流水并行处理架构,如图4所示。在此流水并行处理架构中,系统在接收解析客户端n的频谱监测任务的同时,处理部分正在处理上一客户端n-1的频谱监测任务,并将客户端n-2的频谱数据回传。
执行中,ARM端完成客户端的连接以及为其分配标识,并将其添加到客户队列,根据任务队列中情况进行任务解析,将频谱监测任务指令及相关参数(如中心频率、带宽、频率分辨率等)回传至DSP。DSP端接收到频谱监测指令之后,进行任务的分发以及相关的配置工作。由于不同客户端的频谱监测任务不尽相同,在系统实现中还需要不断更改射频前端调谐频率,以保证能够正确地完成对应客户的频谱监测任务。射频前端调谐频率等的配置工作交由FPGA来完成,配置完成之后利用FPGA将数据采集并进行相应的预处理后回传到DSP。DSP完成相应的处理工作之后交由ARM,ARM端将频谱监测结果回传至客户端,从而保证了频谱监测的实时进行。利用这种架构,ARM、DSP、FPGA之间并行运行,减少了不必要的等待,大大增强了各处理单元的利用率。
2.2 ARM端程序设计
2.2.1 Linux下的多线程编程
线程就是程序中的单个顺序控制流,利用多线程技术,可以将一个程序的任务分为多个线程,每个线程执行程序的一个部分,所有线程都是并发执行,这样就可以实现并行计算,高效利用处理器。此外,通过为每种事务分配单独的处理线程,能够有效简化程序设计,使程序更加容易理解和修改[7-8]。
在本系统的ARM端,分为网络服务线程与双核通信线程两个线程,如图5所示。网络服务线程负责接收多个客户端的连接,并为其分配相应标识,添加到客户队列,同时在收到频谱监测结果之后,回传结果到相应的客户端;双核通信线程负责与DSP端的交互工作,主要完成发送频谱监测任务、参数到DSP,以及接收DSP回传的频谱监测结果。
2.2.2 Linux并发服务器系统设计
在网络服务线程中,由于存在多个客户端同时连接的情况,因此接收机必须要具备并发处理多个客户端连接的能力。图6为TCP协议并发服务器模型示意图,ARM端主程序在建立套接字描述符socket、绑定bind之后开始监听任务,调用accept函数等待客户端的连接请求。当接收到客户端的请求时,服务器便为该客户端分配相应标识,加入客户列表,并为其创建一个新的线程,用于处理客户端发送的数据信息[5]。
从该模型中可以看出,在接收到客户端连接之前并不需要预先创建处理客户端请求的线程,直到有客户端连接时才创建,且数量是可以变动的,比较灵活、高效。
利用这种并发服务器模型,可以大大提高服务器对客户端的处理能力,降低服务器的响应时间。同时利用这个模型,可以在接收多个客户端发送来的频谱监测请求任务的同时回传监测的结果,提高了频谱监测的执行效率。
2.3 DSP端程序设计
DSP端调度使用轮询调度的方式来实现,当收到ARM端传递的频谱监测任务后,将任务加入到DSP端的任务队列中,当一个任务调用完成后切换到下一个任务。采用这种方式,既能够很好地调度任务,同时又能够保证任务的实时性。DSP端工作流程如图7所示。
DSP端解析客户端的任务之后,将射频前端的配置信息(如中心频率、带宽、增益控制等信息)发送到FPGA,交由FPGA来完成射频前端的配置以及相关预处理工作。在FPGA完成相应配置的同时,DSP不需要等待配置完成再进行处理,而是将上一任务的缓存数据取出进行相关处理即可。与此同时,ARM端直接取出DSP上一次处理完成的频谱监测结果,将其回传到对应的客户端进行并行处理,各个客户端的任务之间互不影响。
多个运算单元的合理调度使频谱监测工作能够高效地并发完成。以这种方式循环执行多个客户端的频谱监测请求,减少了处理过程中存在的不必要的等待时间,运行效率更高。
3 测试
为了测试本文提出的多客户端频谱监测系统的可实现性以及优越的频谱监测性能,本文利用了两台PC作为客户端,同时为了观测方便,输入信号使用信号源输入单频信号。
输入信号:100 MHz,-56.98 dBm,单频。
客户端设置:左侧PC客户端设置的中心频率为105 MHz,带宽为20 MHz;右侧PC客户端中心频率正好为100 MHz,带宽为20 MHz。
将两个客户端同时连接到接收机,开始执行频谱监测任务,获得如图8所示监测结果。
从结果中可以看出,左侧客户端监测到的频谱结果在四分之一频谱图的位置,右侧客户端观测到的频谱正好在频谱图的正中位置。从配置可以知道,左侧PC频谱观测范围为95 MHz~115 MHz,四分之一频谱图的位置即刚好为100 MHz;而右侧PC频谱观测范围为90 MHz~110 MHz,正中位置正好也为100 MHz,频谱监测结果是正确的。对比可以发现,两者的频谱监测任务得到了很好的并发执行,且两者之间频谱监测结果互不干扰。
本文在多核处理器架构和多线程的基础上,提出了多客户端频谱监测的流水并行处理架构,并在此基础上实现了一个高效的多客户端频谱监测系统。该系统允许多个客户同时进行频谱监测,提高了接收机的利用效率,增强了接收机的灵活性,大大提高了接收机的性能。最后通过实验展示了其可实现性以及优越的频谱监测性能。
参考文献
[1] 武继兵.R&S ESMD宽带监测接收机的应用[J].中国无线电,2009(2):76-77.
[2] 费连.无线电监测系统的革新——网络化小型频谱监测系统的概念及主要技术要求[J].电子测量与仪器学报,2009(增刊):175-179.
[3] Texas Instrument Inc..OMAP-L 138 technical reference manual[EB/OL].(2009)[2014].http://www.ti.com.
[4] Altera Corporation.Stratix II Device Handbook[EB/OL].(2008)[2014].http://www.altera.com.
[5] ARM嵌入式Linux系统开发技术详解[M].北京:电子工业出版社,2008.
[6] TI DSP/BIOS用户手册与驱动开发[M].北京:清华大学出版社,2007.
[7] 邴哲松.ARM Linux嵌入式网络控制系统[M].北京:北京航空航天大学出版社,2012.
[8] 刘兵,陈琛.Linux下的多线程编程[J].黑龙江科技信息,2008(1):56-57.