高速串行接口在基带系统中的应用研究

2016-08-06 02:32王华华陈发堂
自动化仪表 2016年7期
关键词:物理层端口时钟

王华华 卢 军 陈发堂

(重庆邮电大学重庆市移动通信技术重点实验室,重庆 400065)



高速串行接口在基带系统中的应用研究

王华华卢军陈发堂

(重庆邮电大学重庆市移动通信技术重点实验室,重庆400065)

摘要:现有的LTE-A系统基带部分多采用DSP+FPGA的平台构架。DSP作为主控制器,完成物理层算法及流程控制;FPGA则作为协处理器,负责数据处理和定时。如何快速实现DSP与FPGA间的命令交互以及数据传输成为亟待解决的问题。对类似平台及DSP与FPGA的各种接口进行了研究,提出了采用EMIFA接口负责DSP与FPGA间的命令交互,利用高速串行接口SRIO实现DSP与FPGA间的数据传输的新方案。对该方案进行板级联合调试以及Modelsim SE环境下的仿真。调试与仿真结果表明,该方案具有较高的可行性和通用性。

关键词:LTE-A系统DSPFPGA嵌入式芯片串行接口命令交互数据传输可靠性

0引言

高级长期演进(long term evolution advanced,LTE-A)采用了载波聚合、上/下行多天线增强、多点协作传输、中继、异构网干扰协调增强等关键技术,不仅大大提高了无线通信系统的峰值数据速率、峰值谱效率、小区平均谱效率以及小区边界用户性能,同时也提高了整个网络的组网效率,这使得LTE和LTE-A系统成为未来几年内无线通信发展的主流。 LTE-A系统的带宽为100 MHz,下行峰值速率为1 Gbit/s,上行峰值速率为500 Mbit/s。如此大的上下行峰值速率,对LTE-A系统的硬件平台的处理速度提出了更高的要求[1]。

目前,多核DSP芯片携带很多加速器,虽然可以满足LTE系统算法控制结构复杂、运算速度高、功耗低、寻址方式灵活等需求[2],但是其每个核依然采用串行结构,多核的协调工作大大增加了系统控制的复杂度;另外,上下行又把总核数分为多个部分,降低了其并行程度,增大了开发难度。

与仅采用多核DSP处理器相比,单核DSP+FPGA开发平台能够大大降低系统的控制复杂度,将系统性能提升一个数量级以上。以DSP作为主处理器,FPGA作为协处理器的硬件架构平台已经广泛应用于移动通信、数字图像处理、航天航空等诸多领域[3]。LTE系统中,以DSP+FPGA作为实现算法的硬件平台已被广泛采用,然而如何使DSP与FPGA高效快速地实现双向数据通信也成为亟待解决的问题。基于此,本文主要介绍一种DSP与FPGA双向通信的实现方案。

1系统平台概述

LTE系统终端主要包括如下几个部分:基带板与射频板、主控板、时序板、中频RX和中频TX板等。本方案基于LTE系统基带的上下行共享信道,主要对下行接收进行阐述。终端下行信道主要进行如下操作:射频接收(3.36 GHz)、小区搜索、信号检测、解资源粒子映射、解预编码、解层映射、解调、解扰。在此期间,DSP主要完成解资源粒子映射、解预编码、解层映射、解调、解扰;FPGA则完成小区搜索、信号检测和通信过程中定时模块的精确定时。

基带板部分主要由1个ARM(TMS320C6A8168)、1个DSP(TMS320C6455)、1个FPGA(XC6VSX475T)和1个小FPGA构成。ARM在平台中主要负责高层代码的运行以及FPGA自启动时代码的烧写,在此不作详述。

DSP芯片采用TI公司的TMS320C6455。该芯片时钟主频可以达到1.2 GHz,处理速度高达9 600 MIPS,能够满足TD-LTE复杂的编码算法对处理速度的要求。C6455芯片的接口[4]主要有:外部存储器接口(EMIFA)、多通道缓冲串行端口(McBSP)、高速串行收发器(SRIO)以及通用输入输出端口(GPIO)。

DSP芯片的EMIFA接口支持不同位宽数据的传输,有8 bit、16 bit、32 bit、64 bit,分为同步和异步两种工作模式[5]。同步模式下的最大时钟为66.6 MHz,传输一次的时钟数为1。异步模式下的最大时钟为200 MHz。读写周期可以分为3个阶段,即读写建立、读写选通和读写保持。通过调试得出,当这3个阶段的长度分别设置为1、2、1个时钟时,读写过程较为稳定,即传输一次的时钟数为5。由式(1)得,同步最大传输速率为3.2 Gbit/s。

(1)

式中:V为传输速率;H为时钟频率;Nbit_width为EMIFA接口数据位宽;Ncycle为传输一次的时钟数。

系统平台架构图如图1所示。

图1 系统平台架构图Fig.1 The architecture of system platform

高速输入输出(RapidIO)是一种基于包交换的高性能芯片互联技术,它能与大多数主流处理器兼容。RapidIO可满足高性能嵌入式工业对传输可靠性的要求,大大提高了传输速率和效率。RapidIO协议由逻辑层、传输层和物理层构成。这种分层体系具有很好的灵活性,支持多种传输类型。RapidIO主要支持两种模式,一种是并行模式;另一种则是本文重点研究的串行模式,即SRIO(serialRapidIO)[6-7]。

SRIO支持LVDS四通道全双工通信,每通道最大传输速率可达3.125Gbit/s,因此SRIO可支持的最大带宽为12.5Gbit/s。目前,在DSP、ARM和ASIC等一些嵌入式芯片中,均嵌入了SRIO高速串行接口。

2方案的选择

目前,主流的总线接口大致可以分为两类:并行总线与串行总线(包含高速串行总线),它们各有各的优缺点。并行总线的优点如下:①由于其总线位宽较宽,所以其传输协议可以设计得很简单;②每次发送一个或多个数据单元,不会出现数据单元内错位情况。其缺点有:①使用较多的I/O资源;②没有使用差分信号传输,抗干扰能力差;③在DSP与FPGA通信中,读写控制端只能是DSP;④各个信号的数据时延不同,在某些瞬间会产生数据读取错误,也制约了其时钟的提高。

高速串行总线的优点如下:①总线是一对差分信号,使用较少的I/O资源;②由于差分信号布线时要求按照等长、等宽、贴近原则,因此外部干扰噪声将被“同值”且同时被加载到差分信号对上,其差值对信号的逻辑值产生的影响很小;③在DSP与FPGA通信中,双方均可作为主控。其缺点有:①协议较为复杂,实现的难度大;②每个时钟只传输1bit数据,有时会因为数据截取造成数据错位。

基于并行总线与高速串行总线的优缺点,提出了本平台的信令与数据交互方案:DSP通过EMIFA接口从FPGA读取中断类型、子帧号以及帧号,并进入中断函数进行相关操作;FPGA通过SRIO接口与DSP进行大量的数据交互;FPGA通过GPIO接口向DSP发送中断信息。该方案的优点有:① 利用高速串行接口传输数据,提高了数据传输的速率;②利用EMIFA传送命令,大大减少了高速串行接口的事务类型,降低了实现协议的难度,即以消耗I/O资源来降低开发难度。

3软件设计

方案涉及的软件设计主要分为两部分:①EMIFA逻辑控制模块在ISE中的软件设计;②SRIO接口软件在CCS(codecomposerstudio)环境下的软件设计与SRIO逻辑控制模块在ISE中的软件设计。

3.1EMIFA接口软件

本设计主要通过EMIFA接口实现DSP与FPGA的信令交互。所谓信令交互,即DSP既可以通过EMIFA接口向FPGA发送配置信息,又可以读取FPGA产生的同步信号与信号检测完成信号。EMIFA接口有4片片选信号(CE2~CE5),在本系统中采用片选五(CE5) 与FPGA进行通信,CE5在DSP存储映射区为0xD0000000~0xD07FFFFFF。

在ISE中编写EMIFA接口的逻辑模块时,EMIFA接口的地址是单向的,由DSP控制,但数据线是双向的,DSP与FPGA都可以发送数据到数据线上。这样一来解决数据线复用就成为了亟待解决的问题。FPGA设计中通过调用IOBUF原语实现双向I/O端口。IOBUF原语有4个端口,分别是输入端口I、输出端口O、控制端口T和双向端口I/O。该原语会在FPGA中例化为一个三态门,I/O端口直接与顶层I/O端口相连,端口T控制三态门中数据流的方向,在这里将控制信号CE与读使能信号emif_AOE_N_EMIF作为控制信号T;当T为0时,I/O作为FPGA的输出端口,反之I/O端口作为FPGA的输入端口。IOBUF原语调用一次只能传输1bit数据,因此须使用循环生成块循环调用该原语,以实现64bit数据并行传输。

3.2EMIF解析模块

在本系统平台中,DSP要与FPGA多个模块进行信令交互。为了更好地实现功能,利用EMIFA接口的高四位地址(EA[19:16])作为片选信号,将EMIFA的总地址分成了16片。这样操作的优势有:①片选操作后,大大减少了程序中无关模块case语句的判断次数,提高了程序的运行效率,同时,大大降低了系统冲击对系统性能的影响,提高系统的稳定性与可靠性;②进行片选后,只要改变调用该模块的数据与寄存器输入信号,就可以使该模块具有很好的移植性,降低了类似处理的开发难度,并缩短了周期。

3.3SRIO接口软件

由于TMS320C6455提供了SRIO接口,所以只须完成SRIO的硬件驱动(将DSP内有关SRIO的寄存器配置妥当),即可使SRIO上电后尽快进入准备就绪的状态(接口初始化完成,可以收发数据)。在TMS320C6455芯片上,SRIO的相关控制寄存器集中在地址0x02D00000~0x02D3FFFF。其中装载存储单元(loadstoreunits,LSU)负责控制I/O数据包的发送,SRIO的4组LSU(LSU1~LSU4)通过寄存器BLK1_EN的第0位使能。内存读写单元(memoryacessunit,MAU)负责控制I/O数据包的接收,由寄存器BLK2_EN的第0位使能。SRIO支持4x和1x通道模式。本文使用SRIO1x模式通道0,通道0由寄存器BLK5_EN的第0位使能。本文在CCS3.3平台上设计了一个SRIO初始化函数“SRIO_int”。

3.4基于XC6VSX475T的SRIO设计

在FPGA上,SRIO接口是通过调用的IP核(srio_v5_6)实现的。核工程由wrapper(包含逻辑层核、缓冲核、寄存器管理模块和物理层wrapper)模块、时钟模块、复位模块和用户接口模块组成。

用户通过用户接口模块对SRIO进行数据传输配置,用户接口模块包含Initiator(主发)模块、Target(接收)模块和Target_checker(接收校验)模块。

在Initiator模块中,Tickler模块通过Chipscope虚拟I/O口来配置发送的帧数、每帧发送的字节数、事务类型、数据的开始地址和开始发送标志等信息。

逻辑核实现了逻辑层和传输层两层协议,它由用户接口、链路接口和维护接口组成。用户可通过维护接口对逻辑层的配置寄存器进行读写,从而配置SRIO的工作属性。

缓冲核在RapidIO协议中负责缓存数据包。缓冲核由3部分组成,即接收缓冲器、发送缓冲器和管理模块。发送缓冲器缓存每个发送的数据包,直到这个包被成功接收。当缓存了多个数据包时,发送缓冲器可以根据优先级指示字段对数据包进行排序。接收缓冲器充当了先进先出(firstinfirstout,FIFO)缓冲器的角色,它将数据暂存并发送给逻辑核的链路接口。管理模块负责配置缓冲核的各种寄存器。

物理层核实现了RapidIO物理层协议,物理层核包括OSI模型的链路层模型(OSIlinklayermodule,OLLM)、OSI物理层模型(OSIphysicallayermodule,OPLM)、管理模块和命令状态寄存器(commandstatusregisters)。OPLM负责实现串并相互转换、链路初始化以及链路训练。OLLM负责CRC校验、8B/10B编码和缓冲器核的缓冲区管理等。与物理层核关联的模块还包括参考时钟模块和数据收发器GTX。GTX由FPGA上的硬核实现,参考时钟模块根据输入的参考时钟产生物理层核工作所需的时钟。

SRIO核工程是基于Chipscope虚拟I/O模块的演示例工程。该工程可供用户对SRIO的各种传输机制进行板级验证,但不适用于实际项目。因此,基于实际项目的需求,本文对核中的user_top模块进行了设计改进。下文将从以下几个方面对SRIO的设计进行详细介绍。

3.4.1时钟和复位设计

SRIO时钟模块内部含有一个高级时钟管理单元,它能对外部输入的差分时钟进行分频处理,并将分频后的时钟提供给其他模块使用。时钟模块的外部输入时钟有125MHz和156.25MHz两种频率,不同时钟频率决定了接口不同的工作带宽(传输速率)。SRIO协议规定了输入时钟与带宽之间的关系。

在基带验证系统中,由于DSP端的SRIO工作时钟由156.25MHz的差分晶振提供,为了便于项目应用,将FPGA端的SRIO外部输入时钟也设为156.25MHz。

SRIO接口的复位情况比较复杂,由IP核工程中的rio_reset模块负责整个核工程的复位。SRIO核工程有两个外部输入的复位信号,它们分别为本地复位local_reset和链路复位link_reset。本地复位信号local_reset直接送入时钟模块复位时钟管理单元。链路复位信号link_reset直接送入复位模块rio_reset,通过复位模块的处理,首先送出系统复位信号sys_reset_n。sys_reset_n被输出到phy_wrapper模块,phy_wrapper被复位后送出lnk_reset_n信号到rio_reset模块。lnk_reset_n复位完成后,rio_reset模块再依次送出物理核phy_reset_n和逻辑核log_reset_n模块复位信号。所有复位完成后,SRIO准备就绪,进入等待触发的状态。

在实际应用中,本文设计的SRIO仅作为接口模块负责项目的高速数据收发。较多的复位信号无疑会增加工程应用的难度。因此,本文将核工程顶层模块的两个外部复位信号local_reset和link_reset屏蔽,并对内部各模块复位信号进行直接赋值处理,使SRIO上电后能快速进入准备就绪的状态,这样可极大地简化SRIO的复位处理过程。

3.4.2触发方式设计

在默认的核工程中,SRIO的触发信号vio_go是由用户通过Chipscope虚拟I/O口给出的,SRIO被触发后只能完成一次数据量的发送,这种触发方式显然不适合实际应用。因此,本文以“TD-LTE-A物理层下行接收实现技术”为项目背景,对SRIO的触发方式进行了设计改进。在每次触发完成数据传输后,对高层进行初始化,为下一次触发作准备。

需要强调的是,触发信号的选择要以SRIO链路初始化完成为前提。具体而言,SRIO链路的初始化工作由物理层负责,初始化分3个阶段进行:首先是端口的初始化,当port_initialized信号变高时,证明此阶段完成;第二阶段是发送链路的初始化,当lnk_trdy_n变低时,说明发送初始化完成;第三阶段是接收链路的初始化,当lnk_rrdy_n变低时,说明此阶段完成。SRIO外部触发信号的选择必须考虑到接口自身初始化的进程,如果SRIO3个阶段的初始化工作未完成时,外部触发信号就来临,这样必然会引起错误。

3.4.3一次触发传输的数据量

LTE-A系统支持6种不同的带宽(1.4、3、5、10、15、20)(单位MB)。每帧含有10个子帧,每个子帧包含14个符号,每个符号含有的有效子载波数如表1所示。在LTE-A系统中,往往以子帧为单元进行上下行分配,在接收端以子帧为单元进行快速傅里叶变换等操作。实现一个子帧信号检测数据传送有3种方式:①每完成一个符号,就触发一次,将本次数据传送给DSP;②当一个子帧的数据检测完毕后,再连续触发,把这一子帧的数据都传送给DSP;③在一个子帧中,分几个阶段把数据发送出去。由于SRIO每帧最多发16个双字,不同带宽每个符号的有效子载波数不同,而且也不全是16个双字的倍数。方式①会带来大量冗余,并且冗余不在子帧数据的末尾,大大增加了DSP对接收数据的处理难度。方式②产生的冗余量少,但时延较大。相比之下方式③比较适合,传送的时机恰当,既能减少时延,也能降低冗余量,还能把冗余放在子帧数据的末尾,降低DSP对接收数据的处理难度。根据工程中信号检测的流程(参考信号位置),将数据传输分为4个阶段。符号0、1、2、3为第一阶段,符号4、5、6为第二阶段,符号7、8、9、10为第三阶段,符号11、12、13为第四阶段。接下来亟待解决的问题是如何确定每次触发要发送的帧数与每帧的双字数。根据以上4个阶段以及表1,计算得到normalcyclicprefix下每个阶段要发送的有效数据如表2所示。根据表2以及大量的测试得到每次触发发送的帧数如表3所示。

表1 有效子载波数Tab.1 The effective number of the subcarriers 个

表2 每个阶段的有效数据Tab.2 The valid data of each phase 个

表3 每次触发发送帧数Tab.3 Numbers of sending frames in each trigger

3.4.4基于EMIF+SRIO的机动传输机制

在默认的SRIO核工程中,SRIO传输的事务类型由用户通过Chipscope虚拟I/O模块进行配置。当SRIO须进行新的操作(事务类型改变)时,用户则要手动调整代码。显而易见,这种事务类型的配置方式很不灵活,不适合在实际工程中应用。

当EMIF地址信号高4位emif_EA[19:16]均为0时,DSP通过EMIF接口向SRIO模块写数(配置SRIO的传输模式)。

为了适应实际工程应用及降低开发难度,制定新的数据协议,即将EMIF的数据位一一对应地为Tickler模块中的vio_xxxx(例如vio_go、vio_nwrie等信号,这些信号被用来配置SRIO)信号赋值,如图2所示。图2中:第0位无定义,第1位为启动信号,第2位对应事件NWRITE,第3位对应事件NWRITE_R,第4位为SWRITE事件,第5位为NREAD事件,第6~14位表示一帧发送的字节数,第15~18位表示一次触发发送的帧数,第19位对应Message事件,第20位对应Doorbell事件,第21位对应维护写事件,第22位对应维护读事件。其余数据位暂时保留,待使用时再继续定义即可。

图2 自定义协议Fig.2 Custom protocol

4调试结果分析

在板级联调之前,利用Modesim进行系统仿真。仿真结果表明,DSP与FPGA通过EMIFA接口进行配置信息交互、利用SRIO接口进行数据交互的方案是

行之有效的。该方案在充分利用现有的I/O资源的情况下,降低了系统开发的复杂度,提高了系统的可移植性;SRIO数据传输的触发方式以及每次触发发送的帧数的设计是合理的,这是一种基于实时性与系统复杂度的折中方案。

板级联调期间,利用chipescope抓取的相应信号均证明了SRIO+EMIF机动传输机制、触发设计方案的可行性,同时表明该方案可以满足LTE-A系统对数据传输的实时性以及可靠性的要求。DSP通过SRIO接收到的数据与发送端数据一致,无遗漏、无覆盖、无冗余。

5结束语

本文根据国家重大专项“射频一致性测试仪表开发”的需求,基于EMIFA接口与SRIO,设计了一种DSP与FPGA的双向数据通信方案。该方案充分利用了FPGA时序控制能力强、数据处理速度快、可重构性好、不同模块并行运行的特点,采用DSP作为主处理器,FPGA作为协处理器及总体时序控制器。在FPGA中,设计了DSP数据分配与整合模块以及双向I/O端口,使DSP与FPGA的数据通信更加灵活,简化了系统设计,提高了数据处理的稳定性。通过软件仿真、板级验证表明,该方案数据通信速率达到2.091 5Gbit/s,且错误率较低。目前,该方案已应用于相关项目中。

参考文献:

[1] 陈发堂,梁涛涛,李小文.LTE-A系统中球形译码检测算法研究[J].电子技术应用,2012,45(1): 120-125.

[2] 夏际金,常越,梁之勇,等.多核DSP信号处理并行设计[J].雷达科学与技术,2013(12):617-620.

[3] 方冬,章国宝.基于EMIF接口的数据采集系统的设计[J].电子设计工程,2011(1):174-178.

[4] 沈嘉,索士强,全海洋,等.3GPP长期演进(LTE)技术原理与系统设计[M].北京: 人民邮电出版社,2008: 220-221.

[5] 张守将.基于ROCKETI/O的高速数据传输系统研究[D].西安: 西安电子科技大学,2013.

[6] 宁赛男.RapidIO协议在图像处理系统中的应用研究[D].合肥: 中国科学技术大学,2013.

[7]KWARKKS,KWONOK.Power-Reductiontechniqueusingasingleedge-trackingclockformultiphaseclockanddatarecoverycircuits[J].IEEETransactiononCircuitsandSystemsII:ExpressBriefs,2014,61(4): 239-243.

中图分类号:TH86;TP29

文献标志码:A

DOI:10.16086/j.cnki.issn1000-0380.201607002

Research on the Application of High Speed Serial Interfaces in Baseband System

Abstract:Most of the baseband parts in existing LTE systems are using DSP + FPGA platform architecture.As the main controller,DSP completes the algorithm and flow control of physical layer; while as the co-processor,FPGA is in charge of data processing and timing.Rapidly implementing command interaction and data transmission between DSP and FPGA becomes problems that need urgent solution.The similar platform and various interfaces between DSP and FPGA are researched; and the new scheme is proposed,in which external memory interface A (EMIFA) is used to take care of command interaction between DSP and FPGA,and the serial rapid IO interface (SRIO) is used for data transmission between DSP and FPGA.For this scheme,the board level joint debugging and simulation under Modelsim SE environment are conducted; the results show that the proposed scheme possesses high feasibility and universality.

Keywords:LTE-A systemDSPFPGAEmbedded chipSerial interfaceCommand interactionData transmissionReliability

国家科技重大专项基金资助项目(编号:2011ZX03001-002)。

修改稿收到日期:2015-08-15。

第一作者王华华(1981—),男,2015年毕业于重庆大学仪器仪表专业,获硕士学位,高级工程师;主要研究方向为移动通信、通信新技术、下一代网络技术。

猜你喜欢
物理层端口时钟
基于K-ML-MPWFRFT的物理层安全传输技术
别样的“时钟”
一种有源二端口网络参数计算方法
一种端口故障的解决方案
古代的时钟
多按键情况下,单片机端口不足的解决方法
公路联网电子不停车收费系统路侧单元物理层自动测试软件研发
有趣的时钟
一种应用于5G基于LDPC码的物理层包编码
时钟会开“花”