文献标识码: A
文章编号: 0258-7998(2010)08-0048-04
随着2.5 G和3 G的出现,使多种通信体制并存发展,它们在工作频段、波形结构、调制方式、编码方式、加密方式等方面的不同,既限制了系统之间操作的互通性,也影响了用户使用的便捷性。由于软件无线电SDR(Software Defined Radio)技术可以将模块化、标准化和通用化的硬件单元和软件模块集成在一个通用的物理平台上,通过软硬件的可重构,实现多种无线通信功能,故以软件无线电为基础、面向多种通信体制的兼容信号处理技术成为研究热点。
本文研制了一个能实现多种无线通信体制的软件无线电平台。该平台如图1所示,由上位机、FPGA处理板、射频板和天线组成。其中,上位机提供用户界面,并完成基带信号处理和系统控制。FPGA处理板主要完成各种通信体制的信号预处理。
考虑到平台对多体制速率的兼容性、用户远程配置处理平台的便捷性以及平台与现有网络的融合和向分布式处理[1]方向的可升级性和易扩展性等,该平台选用以太网接口作为上位机与FPGA处理板之间的连接方式。该以太网接口需要支持实时的在线重配置功能。
由于平台选用的FPGA器件是Alteral公司的CyclloneII2C70F672C8,芯片本身没有动态部分可重构的功能,不能利用文献[2,3]中介绍的Xilinx的VirtexFPGA的动态部分重构功能,只需要重新配置FPGA的部分区域,而FPGA其余部分正常工作。Off-Chip动态重构[4]的重构时间太长。模块的可重选择[5]的重构时间短,但耗费FPGA资源较多。为了满足平台的以太网接口对于一种配置时间较短而且耗用资源较少的配置方式的需要,本文提出并实现了一种上位机和FPGA处理板之间信令驱动的、参数可重加载的、可实时在线重配置的以太网接口,并详细介绍了该接口的数据/信令包的格式设计和FPGA中的逻辑设计。
1 可配置接口设计
1.1 接口电路原理描述
上位机和FPGA之间的接口电路如图2所示,主要由网络交换芯片BCM5325E和接口转换芯片RTL8201组成。其中,BCM5325E为网络交换芯片[6],工作频率为25 MHz。芯片集成了10/100 Mb/s切换控制器和6个端口,除了一个MII(Media Independent Interface)端口以外,另外5个端口(port0-port4)为全双工的10/100 Mb/s快速以太网收发器(满足IEEE802.3 u标准接口),完成以太网物理接口功能。RTL8201是一个快速以太网物理层收发器,工作频率为25 MHz,可以将IEEE802.3 u标准接口转化为MII接口。
发送过程中,上位机先将用户原始数据/信令按照一定的格式封装成网络包,通过网口发送到交换芯片的端口(port0或者port1),网络交换芯片将该网络包转发到相应端口(port3或者port4),然后经过相应的8201进行数据格式的转换,最后到达相应的FPGA,FPGA再对接收到的网络包进行解析处理,以恢复上位机发送的用户原始数据/信令。接收过程相反,FPGA发送的数据包依次经过8201、网络交换芯片后到达上位机。
1.2 接口包格式设计
上位机与FPGA之间需要交换数据包来完成通信双方的信息传输,还需要交换信令包来完成系统的重配置,因此需要接口能够区分不同类型的包。此外,不同通信体制下或不同传输业务中,数据速率不同可能要求包的长度不同,因此还需要接口能够灵活地识别不同长度的网络数据包。
标准EthernetII协议下的包格式如图3所示,其中D_MAC为数据包的目的地址,S_MAC为数据包的源地址,TYPE为数据包的类型,FCS为校验位。标准的EthernetII包不能满足所需接口的要求,需要在EthernetII协议的基础上做一些改动,形成适合于统一平台的网络包格式,如图4所示,图4(a)为数据包格式,图4(b)为信令包格式。
改进的包格式有以下特点:首先,将EthernetII协议的标准包格式中的数据段中划分出一部分作为标示域,其中长度域(Length)用来标示包中数据/信令的长度,时间戳域(Timestamp)用来标示包的发送或者接收时间。其次,通过Type域的内容来区分数据包和信令包。最后,数据包中的Data域用来装载用户数据,信令包的Infor域用来装载信令,如滤波器的参数配置信息、成帧模块的参数配置信息、编码模块的参数配置信息等。每个模块对应的配置信令的格式为“Addr+Len+Para”,如图4(b)所示。首先是4 B的信令头信息,其中2 B表示该信令对应的内部模块地址Addr,另外2 B表示该信令的长度Len;接下来的n B是信令的内容,即各模块的配置参数Para。因此,用户可以灵活地选择需要配置的模块,也可以根据需要设定这些模块的配置参数,而且每个模块的配置参数的长度可以变化。
改进的网络包为统一平台,为实现灵活的切换方式提供了很好的基础,而且由于改进的网络包保留了EthernetII协议的基本特性,可以在现有的以太网中传输。
1.3 FPGA的逻辑设计
在接口电路中传输的是装载了用户数据/信令的网络包,在接口两端(即上位机和FPGA)都需要有相应的接口模块来对网络包进行解析和封装。本文重点介绍FPGA端的接口模块,如图5所示,由6个子模块组成:解包、打包、信令/数据切换控制、信令控制器以及FIFO。其中,解包是从MII口收取网络包,根据网络包的格式取出其中的信令/数据;打包是将信令/数据按照网络包的格式封装起来,发送到MII口;切换控制是用来选择控制信令通路或数据通路的开启;信令控制器解析信令,送往相应模块的配置端口;FIFO用于缓存上行数据和下行数据。
该模块主要完成两项工作:一是从MII口收发信令包,并将解析的信令送给各基带处理模块,进行参数配置和模式切换;二是从MII口收发数据包,提供上位机到FPGA内部各个基带处理模块之间的数据通路。
当系统在某种通信体制下正常工作时,上位机与FPGA之间的数据通路开启,同时完成双向数据的传输。待发送的下行数据经过解包、切换控制、FIFO_1传输到后续模块;接收到的上行数据经过FIFO_2、切换控制、打包传送到上位机。
当系统需要切换到另一种通信体制时,上位机与FPGA之间的信令通路开启,完成模块的重配置。配置信令经过解包、切换控制、信令控制后,解析出各配置参数送往相应模块进行参数重配置;待各模块配置完成后(mcu_reply有效),启动打包模块发送一个信令回执包以告知上位机。上位机收到FPGA的回执包后,系统已切换到新通信体制下,可以进行双向数据(上下行数据)的传输。
解包模块:从MII口获取网络包后,首先应核对网络包中D_MAC域的内容,若D_MAC域与本地MAC地址相同则接收该网络包,否则丢弃。然后取出网络包的Type域和Length域的内容,并根据Length域的长度信息取出包中的信令/数据,一并送往切换控制器。
切换控制模块:根据type端口的信息选择开启信令通路或者数据通路。当开启信令通路时,将从datain端口输入的信令送到信令控制器;同时当检测到mcu_reply端口的有效脉冲后,驱动打包模块发送一个特定格式的信令回执。当开启数据通路时,将从datain端口输入的数据送到FIFO_1;同时将从端口fout_data输入的FIFO_2的数据送到打包模块。
信令控制器:解析信令,并将根据配置信息完成模块的重配置。信令控制器在mcu_en端口为高电平期间从mcu_data读取信令,并开始按信令格式“AddrN+LenN+ParaN”解析信令。首先根据内部预设的一个模块端口查找表,查出AddrN对应模块的配置端口(包括configN_en,configN_data,configN_done)。配置时,configN_en为高电平,configN_data中传送的是配置信息(ParaN),configN_done在配置完成时会出现一个正脉冲。当信令控制器搜集完各个配置模块的config_done有效脉冲后,才输出一个mcu_reply有效脉冲反馈给切换控制器。
可重配置FIFO:缓存上行数据和下行数据,可以根据当前体制或业务需求来调整某些参数,以完成数据流的控制。例如FIFO一端连接的是固定的硬件网口速率(25 MHz时钟RXCLK/TXCLK),而另一端则需要实时改变数据速率,以匹配各种通信体制的上下行速率。本文中,可重配置FIFO中内嵌了一个参数可调的PLL,该PLL可以根据配置端口的config_data内容来实时改变时钟,因此FIFO能快速可靠地实现不同数据速率的切换。config_data的内容可以由用户在配置信令中自行设置,位宽为16 bit,可以完成216种不同速率(基本时钟为80 MHz,可以在基本时钟上倍频或分频)。
2 接口重配置过程的仿真
为了验证接口模块的正常传输数据的功能以及在线重配置的功能,对接口模块进行了仿真验证。仿真中,数据包的长度(即Length域)设置为1 490 B,Type1为080 A。信令包的长度(即Length域)设置为1 490 B,Type2为080 B,FIFO的配置信令长度设置为2 B。
仿真环境选用Modelsim,仿真中需要验证的场景是:
(1)初始配置过程,即在上电后,FPGA中的接口模块从MII口接收到第一个信令包(图6中信令1),信令控制器根据其中的信令信息完成FIFO1和FIFO2的速率参数rate1的配置,并反馈给MII口一个信令回执包。
(2)数据传输过程,即FPGA中的接口模块从MII口连续接收几个数据包(图6中数据1和数据2),数据通过切换控制器到FIFO1缓冲,再由rate1速率输出给后续的处理模块。
(3)在线重配置过程,即在系统工作中,FPGA中的接口模块从MII口接收到第二个信令包(图6中信令2),按(1)的过程配置FIFO的速率rate2,并反馈信令回执。
(4)新的数据传输过程,即同(2)的过程,数据由rate2速率输出给后续的处理模块。
利用TestBentch产生rxdv、rxd、rxclk等MII口的输入信号以及sys_clk、reset_n等系统全局输入信号,即可模拟以上网络接口的运行过程。仿真结果如图6所示。
通过仿真表明,该接口能在上位机与FPGA之间准确地传输数据包,而且通过该接口还能实现FPGA中各个基带处理模块(如FIFO)的在线重配置功能。该接口从系统整体的角度出发,采用模块化思想合理地划分了各个模块功能,不仅资源利用率高,而且配置时间短,如单个FIFO模块的配置的时间小于1 μs,满足设计需求。
该接口通过在FPGA上进一步调试,已经在试验平台上开展测试。目前该接口可以满足几种主流通信体制的不同速率要求,用户可以自行选择需要配置的模块,也可以设定这些模块的配置参数,切换过程灵活。
该接口在软件无线电平台上也已经开展测试,可以满足几种主流通信体制的不同速率要求,具有很好的兼容性、灵活性和稳定性,适合用于多种主流无线通信体制的不同速率要求。
参考文献
[1] 粟欣,许希斌,姚彦.基于网络的软件无线电系统及实现[J].电信科学,2001(11).
[2] EDSON L.HORTA,JOHN W.L,DAVID P.Dynamic hardware plugins in an FPGA with partial run-time reconfiguration.In DAC 2002(New Orleans,Louisiana,USA),2002(6):343-348.
[3] HADLEY J.D,HUTCHINGS B.L.Designing a partially reconfigured system.In FPGAs for Fast Board Development and Reconfigurable Computing,in Proc.SPIE 2607,1995:210-220.
[4] 谷銮,徐贵力,王友仁.FPGA动态可重构理论及其研究进展[J].计算机测量与控制,2007,15(11):1415-1418.
[5] 张海亮,赵行波,王亮,等.基于FPGA的可配置通信平台设计[J].微计算机信息,2006,22(11-2):192-194.
[6] http://www.broadcom.com/collateral/pb/5325-PB05-R.pdf.