DSP和和FPGA的双核并行通信方法设计与应用的双核并行通信方法设计与应用
为解决雷达信号处理系统双核通信问题,设计了两种DSP和FPGA之间的并行通信方法,分别通过DSP的外部接
口XINTF访问FPGA内部FIFO和双口RAM,利用DSP的读写使能信号作为FIFO和RAM的读写时钟信号。通过对
两种并行通信方法进行对比分析,指出雷达信号处理系统中双核通信应该采用DSP和FPGA内部FIFO的方法。
引言
线性调频连续波(Linear Frequency Modulation Continuous Wave,LFMCW)雷达在储油罐液位计量中有着广泛的应用[1],提
高雷达的测距精度从而提高计量精度,对提高经济效益有着重要的作用。随着数字信号处理技术的发展,高精度测距算法发展
迅速,但是这些高精度算法需要处理的数据量也越来越大[23],如极大似然估计法[2]有很高的估计精度,但是单个频率点的
计算量就达到5N-2次实数加法和5N+9次实数乘法;参考文献[3]的信号频谱融合法在低信噪比下也有良好的估计性能,但计算
量为M-1PQ+1+PN′-M次复数加法和PQM+N′+1次复数乘法。为满足测量实时性和数据吞吐量的要求,可以结合DSP浮点运算
速度快[4]和FPGA外设驱动能力强[5]的优势,采用DSP和FPGA双核架构设计雷达信号处理系统,实现高精度测距算法。采用
此架构,首先要解决的就是DSP和FPGA之间的通信问题。本文基于搭载TI公司DSP芯片TMS320F28335(下文简称DSP)的
核心板和搭载Altera公司CycloneII系列的FPGA芯片EP2C5Q208C8(下文简称FPGA)的核心板搭建实验平台,设计两种方
法构建并行通信通道,为搭建雷达信号处理系统的双核通信通道提供依据。
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连接示意图
TMS320F28335 DSP支持16位和32位XINTF数据总线,本文使用16位数据总线进行通信,将DSP的数据总线、(读写)使能
信号和ZONE7的选通信号XZCS7与FPGA的通用I/O口连接。此外,选用DSP的两个可编程通用输入/输出引脚与FPGA通用I/O
口相连,使FIFO的满信号作为DSP的中断输入,空信号作为数据读取完毕状态信号输入DSP。
1.3软件设计
1.3.1FPGA内部FIFO模块设计
利用Altera公司的QuartusII集成开发环境,在FPGA中实现FIFO有两种方式:通过编写VHDL程序实现和利用软件中
MegaWizard PlugIn 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 系统工作流程图
图3(a)为主程序的流程。在主程序中,首先进行DSP的初始化设置,具体包括系统初始化控制、GPIO的初始化和中断设置;
然后生成待写入到FIFO中的数据(本文设置为整数1~32共32个数);随后将生成的数据写入到ZONE7地址区域(0x20
0000~0x2F FFFF),由于FIFO是先进先出存储器,访问时不需要地址线,只要地址范围在ZONE7寻址范围内,就能使选通
信号XZCS7有效,从而实现对FIFO的读写操作;当FIFO已经写满时,通过GPIO29产生外部中断,DSP停止写入数据,开始
执行中断程序。中断程序主要实现DSP从FIFO中读取数据的功能,其实现流程如图3(b)所示。
1.4DSP与FPGA内部FIFO的并行通信实验
评论5