APP下载

DSP和FPGA的双核并行通信方法设计与应用※*

2016-02-26陈林军刘鹏姜智译

单片机与嵌入式系统应用 2016年1期

陈林军,刘鹏,2,姜智译

(1.后勤工程学院 后勤信息工程系,重庆401311;2.重庆通信学院;3.65113部队)



DSP和FPGA的双核并行通信方法设计与应用※*

陈林军1,刘鹏1,2,姜智译3

(1.后勤工程学院 后勤信息工程系,重庆401311;2.重庆通信学院;3.65113部队)

摘要:为解决雷达信号处理系统双核通信问题,设计了两种DSP和FPGA之间的并行通信方法,分别通过DSP的外部接口XINTF访问FPGA内部FIFO和双口RAM,利用DSP的读写使能信号作为FIFO和RAM的读写时钟信号。通过对两种并行通信方法进行对比分析,指出雷达信号处理系统中双核通信应该采用DSP和FPGA内部FIFO的方法。

关键词:DSP;FPGA;并行通信;外部接口XINTF;FIFO;双口RAM

引言

1DSP与FPGA内部FIFO并行通信方法

1.1设计思想

在雷达信号处理系统中,数据的流向如图1所示。首先FPGA接收高速并行A/D转换的数字信号,DSP读取FPGA获取的信号序列并进行数字信号处理,得到距离信息,然后DSP将距离信息发送至FPGA,FPGA控制LCD显示屏显示距离信息。

图1 数据的流向

FPGA的设计采用VHDL硬件描述语言,利用内部RAM资源生成FIFO模块,将FPGA的FIFO模块作为DSP的外围设备,DSP根据FIFO的存储状态,通过外部接口XINTF对FIFO模块进行读写操作。

1.2硬件设计

根据设计思想,搭建了DSP和FPGA通信的硬件实验平台,硬件连接示意图如图2所示。

图2 DSP与FPGA连接示意图

1.3软件设计

1.3.1FPGA内部FIFO模块设计

利用Altera公司的QuartusII集成开发环境,在FPGA中实现FIFO有两种方式:通过编写VHDL程序实现和利用软件中MegaWizard Plug-In Manager进行配置[6]。本文选用第二种实现方式,通过向导配置FIFO的数据宽度、深度和控制信号等参数。读写使能信号根据FIFO的空、满状态,通过编写VHDL程序在FPGA内部逻辑实现。

DSP每进行一次读(写)操作,时序分为3个阶段[7]:前导(Lead)、有效(Active)和跟踪(Trail)。在有效阶段读(写)使能信号拉低一次,为此,本设计将DSP读(写)使能信号经过非门取反后作为FIFO的读(写)时钟信号,FIFO的读(写)使能信号有效时,在时钟信号的上升沿数据将被读出(写入)FIFO。系统通过数据总线进行数据的读写操作,因此FPGA的数据线引脚设置为双向传输(BIDIR)模式。FIFO模块图略——编者注,当FIFO的读使能有效(rdreq=1)时,数据只能由q端口经三态门输出;当FIFO的写使能有效(wrreq=1)时,数据只能经三态门写入到data端口。

1.3.2DSP模块设计

在本文中,DSP的工作流程如图3所示。

图3 系统工作流程图

1.4DSP与FPGA内部FIFO的并行通信实验

根据硬件设计,制作了连接DSP核心板和FPGA核心板的底板,搭建了DSP和FPGA通信的实验平台。在该实验平台上开展实测实验,并通过CCS4.2开发环境,观察DSP写入和读出FIFO的数据的结果如图4所示。

图4 DSP与FPGA内部FIFO并行通信实验结果

从图4中可以看出,生成的发送数据Send和接收到的数据Receive完全一样。实验结果表明,本文实现了DSP的XINTF接口到FPGA内部FIFO的双向并行通信,DSP能够通过写操作将数据传送至FPGA,通过读操作将数据从FPGA传送至DSP。

2DSP与FPGA双口RAM并行通信方法

2.1设计思想

FPGA内部的存储器资源可以配置成单口RAM、双口RAM和三口RAM[8],雷达信号处理板涉及到DSP对RAM的读写操作和FPGA本身对内部RAM的读写操作,因此本文采用双口RAM,实现DSP对其的读写操作。主要设计思想如下:DSP作为主设备,FPGA作为从设备,DSP通过XINTF的地址总线对FPGA内部的双口RAM进行寻址,过程与DSP读写外扩存储器芯片相似,本文使用16位数据宽度实现32个16位数据的双向传输。

2.2硬件设计

根据设计思想,搭建DSP和FPGA通信的硬件实验平台,其中,DSP和FPGA之间的硬件连接示意图如图5所示。

图5 DSP与FPGA连接示意图

2.3软件实现

2.3.1FPGA内部RAM模块设计

2.3.2DSP模块设计

DSP与FPGA内部RAM模块通信时的工作流程如图6所示,首先进行DSP的初始化设置,这一步与DSP访问FIFO模块类似;然后生成待写入到RAM中的数据(本文设置为整数32~1,共32个数)并存储到数组Send;随后生成数据写入的目标地址,ZONE7的寻址范围为0x20 0000~0x2F FFFF,本文设计的RAM模块大小为32×16位,因此寻址范围为0x20 0000~0x20 001F,编程将数据1~32逆序写入到RAM地址0x00~0x1F,然后将数据按地址从小到大顺序读出到数组Receive;顺序读完数据后,再按照先奇数地址后偶数地址的顺序读取数据到Receive1。

图6 系统工作流程图

2.4DSP与双口RAM的并行通信实现

利用搭建好的包含DSP核心板和FPGA核心板的实验平台进行通信实测实验,根据硬件连接关系,给FPGA模块内的各信号分配引脚。完成后编译生成.sof文件,将.sof文件下载到FPGA中运行;然后通过CCS4.2和XDS100V2仿真器编译连接到DSP,运行DSP中的C语言程序,在Memory窗口中观察DSP读取的数据结果如图7所示。

图7 DSP与双口RAM并行通信实验结果

从图7中可以看出,生成的发送数据Send和接收到的数据Receive完全一样,而Receive1的数据则是先偶数、后奇数的排列,分别对应Send中奇数序号和偶数序号所指向的数据。实验结果表明,该实验方案可以实现DSP和FPGA之间的双向并行通信,DSP可以通过寻址方式读写FPGA内部双口RAM的数据。

3两种通信方法对比分析

上述两种方法都能够实现DSP和FPGA之间的双向并行通信,而且都是通过DSP的XINTF接口和FPGA的通用I/O引脚相连,构成数据交换的通道,由FPGA分别配置生成FIFO和双口RAM,DSP利用XINTF接口的片选信号和读写使能信号作为控制FIFO和双口RAM读写的控制信号,完成DSP和FPGA之间的双向并行通信。

两种通信方法最大的区别在于:FIFO不需要地址线,数据只能按照先后顺序存储和读出,先存则先读,后存则后读,存满后产生满信号,不能再存,读完后产生空信号,不能继续读;RAM有地址线,必须通过地址线才能对其进行读写,读写地址没有顺序的要求,可以读写RAM地址范围内的任意地址所指向的数据,对同一地址的数据可以多次读取而不会产生变化,但是对同一地址多次写入则会覆盖之前的数据。

由分析可知,本文设计的两种DSP和FPGA之间的双向并行通信方法各有优劣。DSP和FPGA内部FIFO之间的通信,硬件结构简单,所需I/O引脚较少,数据的读写过程清新,不会造成数据顺序的错乱,然而,这种方法缺乏灵活性,不能随意调用存储器中的特定数据。而DSP和FPGA内部双口RAM之间的通信在硬件上的开销相对较大,占用较多的I/O引脚资源,读写RAM要首先生成目标地址,而后根据目标地址进行寻址读写数据,对双口RAM的读写比较灵活,可以只取所需而不用将数据都读出。

雷达信号处理系统所处理的数据是一系列离散时间序列,而A/D转换器采集的数据就是离散时间序列,FPGA对这些数据进行存储和DSP对这些数据的读取都不需要有顺序的变化,读写过程简单,再考虑到芯片I/O引脚有限,所以在雷达信号处理系统中适合采用DSP和FPGA之间通过FIFO方式进行双向并行通信。

结语

本文设计了两种DSP和FPGA之间的并行通信方法,搭建了双核并行通信硬件实验平台,实现了两者间的双向并行通信。在FPGA内部实现FIFO和双口RAM,DSP作为主设备,通过外部接口XINTF对FPGA的内部FIFO和双口RAM进行读写操作,从而完成两者的通信。对两种并行通信方法进行了对比分析,结合雷达信号处理系统的需求,认为雷达信号处理系统适合采用DSP与FPGA通过内部FIFO进行通信的方法。

参考文献

[1] 刘良兵.频率估计的信息融合方法及其应用[D] .重庆:后勤工程学院,2008.

[2] KENEFIC R J,NUTTALL A H.Maximum likelihood estimation of the parameters of a tone using real discrete data[J] .IEEE Journal of Oceanic Engineering,1987,12(1):279-280.

[3] 肖玮,涂亚庆,刘良兵,等.频率估计的一种多段同频正弦信号频谱相关算法[J] .电子与信息学报,2012,(3):564-570.

[4] 张卿杰.手把手教你学DSP——基于TMS320F28335[M] .北京:北京航空航天大学出版社,2015.

[5] 林琳.基于FPGA的雷达信号处理板设计与实现[J] .现代电子技术,2014(11):51-56.

[6] Altera.SCFIFO and DCFIFO IP Cores User Guide[EB/OL].[2015-08].https://www.altera.com/content/dam/altera-www/global/en_US/pdfs/literature/ug/ug_fifo.pdf.

[7] Texas Instruments.TMS320x2833x, 2823x DSC External Interface (XINTF) Reference Guide[EB/OL].[2015-08].http://www.ti.com/lit/ug/spru949d/spru949d.pdf.

[8] Altera.Internal Memory (RAM and ROM) User Guide[EB/OL].[2015-08].https://www.altera.com/en_US/pdfs/literature/an/an207.pdf.

陈林军(硕士研究生),主要研究方向为检测技术与自动化装置;刘鹏(讲师),主要研究方向为嵌入式控制系统;姜智译(助理工程师),主要从事油库自动化工作。

Design and Application of Dual-core Parallel Communication Method for FPGA and DSP※

Chen Linjun1,Liu Peng1,2,Jiang Zhiyi3

(1.Department of Information Engineering,Logistical Engineering University,Chongqing 401311,China;

2.Chongqing Communication Institute;3.Unit 65113)

Abstract:In order to solve the problem of dual-core communication in the radar signal processing system,two methods of parallel communication between DSP and FPGA are designed.The two methods access FPGA internal FIFO and dual-port RAM through the external interface XINTF of DSP.The read and write enable signals of DSP are used as the read and write clock signals of FIFO and dual-port RAM of FPGA.The internal FIFO dual-core communication between DSP and FPGA is a better choice in the radar signal processing system after comparing the two methods.

Key words:DSP;FPGA;parallel communication;external interface XINTF;FIFO;dual-port RAM

收稿日期:(责任编辑:薛士然2015-08-04)

基金项目:*国家自然科学基金(频率估计的多段信号频谱融合法及应用基础,61271449,离散频谱的变频融合校正法及应用基础研究,61302175);重庆市研究生科研创新项目(短时信号频率估计的相位匹配方法及其应用,CYB14100)。

中图分类号:TN919.5

文献标识码:A