kaiyun官方注册
您所在的位置: 首页> 可编程逻辑> 设计应用> 基于PCIe总线的卫星导航信号传输系统设计
基于PCIe总线的卫星导航信号传输系统设计
2015年电子技术应用第6期
蔡晓晖1,郑 植2,李 浩1
1.电子科技大学 电子科学技术研究院,四川 成都611731; 2.电子科技大学 通信与信息工程学院,四川 成都611731
摘要:为了满足高精度软件接收机对卫星导航中频信号传输系统的新要求,设计了一种基于PCIe总线的传输系统。该系统以Virtex-5 FPGA为核心控制器件,以DMA方式通过4通道PCIe接口传输导航卫星数据。详细介绍传输系统AD模块、DMA控制模块、中断模块等核心模块的FPGA实现方法。经过测试与验证,系统读写速率分别达到了800 MB/s和650 MB/s,可以满足不同层次导航软件接收机对原始导航数据的需求。
关键词: 卫星导航 FPGA PCIe DMA
中图分类号:TN967;TP274
文献标识码:A
文章编号: 0258-7998(2015)06-0024-03
中文引用格式:蔡晓晖,郑植,李浩.基于PCIe总线的卫星导航信号传输系统设计[J].电子技术应用,2015,41(06):24-26+30.
Satellite navigation signal transmission system design based on PCIe bus
Cai Xiaohui1,Zheng Zhi2,Li Hao1
1.Research Institute of Electronic Science and Technology,University of Electronic Science and Technology of China, Chengdu 611731,China; 2.Institute Communication and Information Engineering,University of Electronic Science and Technology of China, Chengdu 611731,Chin
Abstract:In order to meet the new requirements on the signal transmission system of satellite navigation software receiver, a data transmission system which is based on the PCIe is designed. The system uses Virtex-5 FPGA as the core control device.The satellite navigation data can be transmitted by the 4 channel PCIe interface in the way of DMA. This paper details the transmission system of AD module,DMA control module, interrupt module of the FPGA realization method. After testing and verification, the speed of system can be reached 800 MB/s in write and 650 MB/s in read. The design can satisfy the demands of the different levels of software receiver in the data transmission.
Key words :satellite navigation;FPGA;PCIe;DMA

0 引言

近年来,随着软件无线电技术的快速发展,GNSS软件接收机因其高度的灵活性、通用性、开放性等优点,成为GNSS接收机的发展主流[1]。GNSS数据传输系统作为软件接收机的硬件部分,通过射频接收、A/D转换、数字采集与传输等模块为GNSS软件接收机提供原始的观察数据,原始数据的质量在一定程度上影响着软件接收机对原始数据的要求。

目前导航中频信号的传输系统大都基于USB、PCI总线[2-3],采样速率、数据传输速率都越来越无法满足高性能软件接收机的需求,PCIe作为第三代的高性能I/O串行总线,在总线带宽、传输速率、灵活性等方面都有了较大的提升,根据实际系统的不同,它可以灵活配置成X1、X4、X8和X16通道,单通道在每个方向上的发送与接收速率可以达到2.5 Gb/s,可以满足各种软件接收机对原始导航数据的需求。

1 系统组成

本文所设计的导航数字中频信号传输系统由A/D模块、Xilinx、PCIe IP硬核+PCIe-DMA控制模块、数据缓存模块组成,系统基本结构如图1所示。A/D模块接收射频前端产生的模拟中频型号,对其进行240 MS/s的采样;FPGA完成A/D的控制逻辑及采样后信号的数字处理,同时FPGA还产生PCIe硬核的DMA控制逻辑,将最终的导航数据通过PCIe接口传输到上位机。

qrs4-t1.gif

2 系统关键模块设计

2.1 A/D模块设计

模数转换器(ADC)是采集系统的关键器件之一。系统采用AD9467实现数据转换功能,AD9467是一款量化精度为16 bit、采样时钟频率高达250 MHz的模数转换器,具有优异的性能。该模块接收射频前端模块经下变频产生的模拟中频信号,考虑到GNSS各频段导航信号(包括GPS、GLONSS、GALILEO以及北斗)为大约210 MHz[4]的带通信号(见表1)以及整数倍频率抽取两个因素,将A/D采样频率设置为240 MS/s,采样后的数据经过FPGA数字处理模块后变成IQ数据,采样率变为20 Mb/s,通过数据缓存,经PCIe接口传输到上位机。

qrs4-b1.gif

2.2 PCIe-DMA控制模块设计

本系统采用Xilinx公司的Virtex5-XC5VFX70T芯片,该芯片集成了PCIe硬核,实现了X4通道的PCIe接口。系统的DMA控制逻辑原理框图如图2所示,其主要包含PCIe配置空间接口设计、发送模块、接收模块以及中断控制模块。

qrs4-t2.gif

2.2.1 PCIE接口的配置空间

PCI Express配置空间与驱动程序设计密切相关,它是PCI Express传输卡与上位机的接口管理部分。配置寄存器空间用来与上位机进行交流,上位机驱动程序主要通过这组寄存器对传输卡进行控制。而FPGA端则根据上位机在配置寄存器中的具体参数来完成DMA传输。表2列出了这组寄存器的具体名称及偏移地址。

qrs4-b2.gif

2.2.2 数据发送模块

在本设计中,发送数据模块(TX_ENGING)接收经A/D采样、数字处理后的导航信号,根据上位机的DMA读请求,将导航数据组织成相应的TLP包[5]发送至上位机。其帧头格式如图3所示。

qrs4-t3.gif

初始状态下状态机处于TX_RXT复位状态,如图4所示,其有效转换状态可以概括为以下几点:

qrs4-t4.gif

(1)发送CPLD包:TX端带数据的完成包主要响应上位机对配置空间的读请求,当板卡RX端收到上位机的DMA读请求后,会由开始状态进入发送CPLD包的状态,根据读请求包中的地址信息,将配置空间对应寄存器中数据返回给上位机。

(2)发送存储器写数据包(MWR包):在配置寄存器中存储着每次DMA写操作的相关参数,当DMA写开始后,TX端会根据上述寄存器参数来组织发送相应的MWR包。

(3)发送存储器读数据包(MRD包):该数据包用来读取上位机的回传数据,当DMA读开始后,TX端会根据配置寄存器参数组织发送相应的MRD包。

2.2.3 数据接收模块

接收端(RX_ENGING)接收上位机经PCIe IP硬核传输过来的TLP包,其状态机设计如图5所示,可以大致分为以下几种状态跳转:

qrs4-t5.gif

(1)接收完成包(CPLD包):当TX端发出对上位机的读请求后,RX端会收到上位机发出的CPLD完成包,其中包内的数据即为所要读取的PC端数据,此时状态机进入CPLD状态,开始接收PC端的数据。

(2)接收存储器写数据包(MWR包)和存储器读数据包(MRD包):PC端能够读写板卡的范围只能是配置空间的配置寄存器,并且每次读写只能是一个双字。PC端通过读写BAR空间来实现板卡与上位机的“交流”,大致可以概括为以下两点:

①对于DMA写操作:PC端通过MWR包来设置相应寄存器的值,主要包含:WriteDMATLPAddress、WriteDMATLPSize、WriteDMATLPCount、DCSR2、INT。通过MRD包来读取相应寄存器的值,在DMA写过程中主要读取DMA写结束寄存器来判断DMA写是否结束。

②对于DMA读操作:PC端通过MWR包来设置相应寄存器的值,主要包含:ReadDMATLPAddress、ReadDMATLPSize、WriteDMATLPCount、DCSR2、INT。通过MRD包来读取相应寄存器的值,在DMA读过程中主要读取DMA读结束寄存器来判断DMA读是否结束。

其操作配置空间寄存器流程如图6所示。

qrs4-t6.gif

2.2.4 中断控制模块

中断是为计算机处理紧急事件或非预测事件而设计的,也是PCIe传输系统设计的重要组成部分[6],优良的中断设计可以有效提高整个系统的性能。在Xilinx平台中,发出中断主要操作核的4个信号,其时序图如图7所示,cfg_interrupt_n为中断信号,在整个中断周期内拉低两次,第一次表示发出中断,第二次表示清除中断。

qrs4-t7.gif

设置配置空间偏移地址0x50为中断寄存器,其具体格式如表3所示。当DMA读或者写完成后,FPGA发出相应的读写完成中断到上位机,同时将中断寄存器中的中断有效位和读/写位置1,上位机驱动收到该中断后,读取BAR空间中断寄存器的值,判断中断类型,进入相应中断处理程序,此后FPGA端发出清除中断信号,同时将中断寄存器各位置0,当上位机收到该信号后,跳出中断控制程序,数据传输结束。

qrs4-b3.gif

3 实验与测试

数据采集传输卡设计完成后,在基于PCIe的总线的上位机上进行测试,A/D端接入射频前端的模拟中频信号,经数据处理、缓存后送入PCIe总线并传入上位机,FPGA程序使用Verilog语言编写,在ISE开发环境进行设计和测试,上位机驱动采用微软的驱动开发环境WDF(Windows Driver Foundation)。系统集成后首先利用ISE ChipScope工具对硬件逻辑设计部分进行验证,图8所示为一次导航数据DMA传输的时序图,为了便于观察时序,设置一次传输DMA的包个数为100。时序分析可知,中断控制信号cfg_interrupt_n在数据发送端口trn_td发送完数据包后,连续两次有效,最终完成一次DMA的传输。

qrs4-t8.gif

考虑到上位机对FPGA发出的PCIe的中断处理需要一定时间,而这个时间在DMA传输数据量较小时对系统性能影响较大,因此在速度测试时参考了3个速度,分别是传输卡、设备驱动以及应用程序,传输卡速度为PCIe传输接口上的总线速度,不考虑上位机的中断响应时间,测试结果如图9、图10所示。结果表明,在传输数据较小时由于上位机中断处理所需时间,驱动层与应用层读写速度较慢;当传输数据逐渐增大后,三者传输速度趋于一致,DMA写速度为800 MB/s,DMA读速度为630 MB/s。

qrs4-t9.gif

qrs4-t10.gif

4 结论

本文设计了一种基于Virtex-5 FPGA的4通道PCIe导航中频信号传输系统,经过测试与验证,该系统能够满足了高精度软件接收机对导航原始数据的需求,与目前主流的基于USB、PCI总线的导航中频信号传输系统相比,本系统在信号采集速率、传输速度方面都具有明显的优势。同时该系统的设计方法也可以推广到雷达、通信、图像处理等高速数据传输领域。

参考文献

[1] 谢钢.GPS原理与接收机设计[M].北京:电子工业出版社,2009.

[2] 胡滨,王庆,严伟.基于USB和FPGA的GPS中频信号采集平台设计[J].舰船电子对抗,2009(9):63-66.

[3] 贾志宏,崔晓伟.室内GPS的数字化采集设计[J].科学技术与工程,2012(9):7031-7034.

[4] 邓仕海,姚铮.全频段多系统全球导航卫星系统数据采集系统的设计与实现[J].科学技术与工程,2014(1):191-194.

[5] 候杭呈,王忆文,李辉.一种基于PCI Express总线的DMA高速传输系统[J].微电子学,2013(6):383-386.

[6] 唐雷雷,贺占庄.PCI Express总线中消息中断的研究[J].微电子学与计算机,2013(7):137-140.

此内容为AET网站原创,未经授权禁止转载。
Baidu
map