FPGA/DSP(共6篇)
FPGA/DSP 篇1
0 引言
当相控阵雷达处于强有源干扰环境时,即使干扰信号从天线的旁瓣进入,也远大于从主瓣进入的目标信号,使得雷达无法正常工作[1]。采用自适应波束形成技术可以实现空域滤波[2],在干扰方向形成零陷,有效对消干扰。数字阵列雷达接收和发射均采用数字波束形成技术[3],具有很大的自由度,使得自适应波束形成技术能够方便应用于工程中。目前,常用的自适应波束形成算法有:自适应旁瓣对消(ASLC)和自适应-自适应波束形成(A-ADBF)。自适应旁瓣对消工程实现较容易,但其引入辅助通道增益必须和天线副瓣增益相当,当天线阵面较大时,选取一个天线阵元做为辅助通道则增益不足,而且这种算法自适应方向图在除干扰外其它方向旁瓣较高,不满足低旁瓣要求。自适应-自适应波束形成是一种性能稳健的算法,其性能接近理想滤波器,因而得到广泛使用。
文献[4]讨论了自适应数字波束形成在工程中的关键技术,提出主要需要解决运算资源与算法性能之间的矛盾。运算量小的算法稳健性较差,稳健性好的算法运算量又较大。文献[5]和文献[6]提出了利用FPGA+DSP的处理架构实现常规波束形成和自适应旁瓣对消。对于自适应-自适应波束形成,运算量更大,实现也更加困难。本文对FPGA+DSP处理架构进行了优化,使之能够实现自适应-自适应波束形成算法。DSP用于干扰协方差矩阵估计、矩阵求逆等运算,保证了运算精度,FPGA用于实现FIR滤波器结构,提高了实时性。将这种架构用于雷达信号处理机中,实测的运算速度能够满足系统指标要求。
1 自适应-自适应波束形成原理
自适应-自适应方法是一种波束空间自适应方法,其原理框图如图1所示,所有阵元加不同的权系数形成多个波束,自适应滤波可以看作阵元方向图为各波束方向图的自适应阵列。这种方法需要事先估计出干扰方向和干扰数目,形成指向干扰的若干个辅助波束,再形成指向期望方向主波束。干扰波束和主波束一起进行自适应滤波。
假设阵列输出为X(t),在期望方向形成的主波束对应的加权矢量应为:
假设有M个干扰,在干扰方向形成M个辅助波束的加权矢量应为
则包括主波束在内M+1个波束输出记为
则最优权向量为
自适应-自适应方法有效实现了降维,而且其性能比较稳健,算法收敛所需的快拍数也比全阵面少,比较适合工程应用。
2 DSP实现方法
由自适应-自适应波束形成算法可以看出,自适应处理可以分为自适应权计算和滤波运算两部分。在用DSP实现的方法中,这两个步骤都有DSP完成。首先,当发射触发到来时,各个阵列通道的数字回波经过数字波束形成系统形成一个主波束和若干个干扰波束数据。多波束数据通过DSP链路口进入DSP内部存储器,整个重复周期数据收集完后,再选取该周期末尾数据做为采样快拍估计干扰协方差矩阵,计算自适应权,计算完成后再对整个重复周期的数据从头开始进行滤波运算(即加权求和)。这种方法的缺点是:当同时有多个主波束或者脉冲重复周期较长时,DSP内部存储器资源有限,必须采用外部存储器,这时,DSP读写速度变慢,且多个主波束带来运算量成倍增加,该处理方法无法满足实时性要求。
3 FPGA+DSP实现方法
在工程中一般采用FPGA+DSP硬件处理平台完成DBF,该平台具备高数据传输速率,高并行运算能力等特点。DSP有浮点运算动态范围大的优点,用以完成干扰协方差矩阵求逆等复杂运算,计算自适应权值。FPGA适合完成大量并行乘累加算法,用以完成滤波运算。若采用该平台实现自适应-自适应波束形成,则能大大提高实时性,同时也可以和DBF一体化设计节省硬件成本。
具体工作流程如下,接收DBF在发射触发到来之前的休止期形成指向期望方向和干扰方向波束,FPGA产生中断信号通知DSP,DSP通过链路口以DMA方式从FPGA读取各个波束数据,做为采样快拍计算自适应权。同时FPGA中的波束数据缓存一段时间(此缓存可以利用FPGA外部存储器实现以节省内部存储空间),直至DSP计算自适应权完成。DSP计算完成的自适应权转换成定点数后通过DSP总线写入FPGA,在FPGA用FIR滤波器结构即可实现滤波运算。总的运算结果有效数据仅剩下主波束,且只是相对输入数据有一段延迟,因此该方法实时性很好。
4 测试结果
测试方法如下,假设天线阵列由64×64个矩形排列的阵元组成,阵元水平间距和垂直间距均为0.51倍波长,有三个干扰源,方向分别为0°0,-25°0、0°0,-18°0、0°0,-21°0和,期望波束指向为0°0,0°0,三个干扰源输入干噪比均为30d B。如图2所示为FPGA实测的自适应方向图。
可以看出,FPGA运算能够在干扰方向形成零点,有效抑制干扰,工程应用中能够满足实际需求。
5 结论
自适应-自适应波束形成算法(A-ADBF)性能稳健,能够有效抑制干扰。针对其运算量相对较大,工程实现困难的特点,本文提出一种有效的工程实现方法,该方法基于FPGA+DSP的硬件处理平台,发挥了DSP运算精度高和FPGA运算速度快的优点,易于实现且实时性好。在硬件平台上的实测结果表明,该方法能够有效抑制干扰,同时能够满足雷达系统对实时性的要求。
摘要:在相控阵雷达中常采用自适应波束形成算法来有效对消天线旁瓣干扰。但是,阵元级算法运算量巨大,在工程中必须采用降维算法。其中,波束空间降维算法A-ADBF应用较为广泛,该算法性能稳健,有效抑制干扰的同时又降低了运算量。本文针对该算法在工程中采用DSP运算速度较慢的缺点,提出了一种FPGA+DSP的工程实现方案,有效降低了运算时间。
关键词:自适应波束形成,FPGA,DSP
参考文献
[1]张光义.相控阵雷达系统[M].北京:国防工业出版社,1994.
[2]吴曼青.数字阵列雷达及其进展[J].中国电子科学研究院学报,2006,1(1):11-16.
[3]王永良,丁前军,李荣锋.自适应阵列处理[M].北京:清华大学出版社,2009.
[4]徐伟.自适应波束形成算法工程应用中的关键技术研究[J].火控雷达技术,2012,41(1):39-42.
[5]刘志英,万卫华.基于FPGA+DSP的数字波束形成的实现[J].甘肃科技,2007,23(10):27-29.
[6]李波.自适应旁瓣对消在数字阵列雷达中的工程实现[J].电子科技,2012,25(4):96-99.
FPGA/DSP 篇2
关键词:全景视觉,多通道视觉,FPGA,DSP,智能车
基于单相机的全景视觉系统是利用凸面镜反射四周图像进行定位,在计算资源有限时是一种较好的选择,且视觉导航等方向的应用也成为一种最实用的方法[1,2],这种方案虽然视野开阔,但获取的信息有限,真实的系统中很难应用。随着芯片计算能力的不断提高,基于多通道的全景视觉系统已逐渐成为可能。本文介绍的智能车多通道全景视觉是指以观测点为中心,多个相机可同时观测车辆的前中、前左、前右、后左、后右和顶上6个方向的景物。该系统中的6台数字相机中5台分布在车辆的侧面,1台在顶部,可以得到车辆周围全景360°的图像。该系统每个相机的分辨率为百万像素,即1 280×1 024,帧率为30 f/s,即便图像为8 bit单色,系统的总数据率也高达200 MB/s以上。同时,6个相机图像需要预处理,投影到同一坐标系,或者拼接成单幅完整图像才能满足智能车导航系统的要求,这些涉及到大量复杂计算。针对这些要求,该系统的硬件处理部分利用了DSP和FPGA芯片各自的特长,选用高速DSP+FPGA[3,4,5,6]的方案,而DSP方案也是海量图像处理中普遍应用的[7]。高性能通用C6416 DSP芯片,配合FPGA进行高度并行数据处理,可实现高速实时的视觉图像处理。这种方案的优点在于,不仅可以利用DSP的高速处理能力,同时利用FPGA的控制能力和在高度并行化数据处理方面的优势,相比其他方案更容易满足全景视觉系统所需要的高度实时处理。
1 系统总体方案设计
为适合高速图像采集,本系统选用CMOS传感器,CMOS的一个优点是数据读取速度快。系统由高速CMOS相机、基于Cam Link技术的图像读取、FPGA+DSP的图像处理三部分构成,如图1所示。从图1可以看出,该系统有两片FPGA,图像读取模块中的FPGA1负责从CMOS相机抓图和通讯控制,FPGA2则辅助两片DSP进行高速图像处理,实现同时对6个相机图像的实时处理。
逻辑控制芯片FPGA1选用XILINX公司的XC3S1000L-FG456作为视频数据采集控制芯片,该芯片是Spartan3低功耗系列的一种,具有1 M个逻辑门,24个18×18乘法器及丰富的片上存储空间,足够进行视频采集的同步逻辑控制。并行计算FPGA选用XILINX公司Virtex-4系列中的XC4VFX60-FF1152,内部有4 Mbit RAM,56 880个逻辑门和128个Xtreme DSP模块,足够进行大量高速数据处理,特别是片上18 KRAM模块工作在500 MHz,支持真正的双端口读写同步操作,为该芯片作为芯片间高速数据交互提供了资源。2个协处理DSP芯片为TI公司高性能C6416,拥有8个并行处理单元,工作频率为600 Hz,最高处理速度可达4 800兆指令/秒(MFLOPS)。
系统设计采集图像大小为1 280×1 024像素,最高速度可达每相机60 f/s的实时采集。6路摄像头输出的数字视频信号经过FPGA1进行同步分离后,进入输入端高速数据缓冲区。系统采用两片ZBT SRAM进行乒乓数据采集,当一帧图像采集完,FPGA1通知FPGA2进行数据转移,FPGA2将数据预处理后由DSP经EDMA保存到SRAM后等待进一步处理。
2 多通道数字图像采集
由于智能车的目标是在公路上行驶,该系统需要处理场景中快速运动的物体,要求图像采集模块必须足够快地从相机转移出帧数据,以便对快速运动的物体轨迹进行记录,因此,相机模块的处理速度是决定该系统是否达到要求的重要一环。由于相机技术的快速发展,已经能从市面上买到足够快的传感器来捕获高速运动的物体,如车辆。
2.1 图像抓取模块
MT9M413是一种分辨率为130万像素1 280×1 024的CMOS传感器,最高可实现500 fps的采集速度。而MT9M413内部集成有10 bit A/D转换器,可直接输出3.3 V的数字信号,无需电平转换电路,简化了系统的设计。MT9M413可以工作在灰度或彩色模式下,但是却需要不同的偏置参考电压,两片数模转化芯片DAC6573用于生成该偏置电压。图2给出了相机模块的框图。
高速相机模块主要包括以下三部分:
(1)传感器部分:包括高速像素时钟下的光电信号转换传感器。
(2)信号分离:预先编写好在FPGA1内部的程序,用来产生传感器模块和数据接口所需要的控制信号。
(3)接口板:将数字信号转换成高速LVDS信号对,并从主处模块接收控制信号。
该模块的三个部分通过高速Samtec连接器(QTH-090-01-L-D-A)连在一起,以增加系统的灵活性。主处理板与高速相机模块间采用Cam Link协议连接,以满足系统很高的带宽。根据采集图像的大小、帧率和数据位精度,Cam Link电路可配置成基本、中等、全幅3种模式,由FPGA1中的程序控制。FPGA1的另一个任务是进行视频信号的同步、通知FPGA2设置参数,如视频开窗、帧率、曝光时间等。
2.2 FPGA控制模块
系统的逻辑控制芯片是FG456,其主要工作是控制输入/输出帧存,以便通知主处理芯片及时将存在ZBT SRAM中的图像数据读出,片上可编程时钟PLL用来产生驱动该FPGA所需的不同时钟,FPGA内部的计数器通过改变加法器不同的进位信号控制采集图像的大小。
FPGA1接收到来自CMOS传感器的视频同步信号后,开始将原始像素数据按照Cam Link协议打包通过高速Semtec连接器送到下一个模块中的FPGA2。
2.3 ZBT-RAM中的数据乒乓
系统设计的视频信号采集能力是,从CMOS采集到1 024×1 024大小的数字图像,并通过两片Zero-bus turnaround(ZBT)SRAM作为数据乒乓的帧缓存,ZBT SRAM没有总线延迟,不需像DDR那样必须通过FIFO进行管理。ZBT SRAM为系统提供了最大的吞吐量,从而提供了最大的系统带宽[8,9]。为保证系统的高速性能,FPGA1的3个内部时钟管理模块DCMs用来产生ZBT-RAM需要的时钟,一个为控制时钟,另外两个为视频输入的banks的信号。系统中的两片1 M×36 bit ZBT SRAM,每片ZBT SRAM可同时接收两路视频的满帧数据采集。如果两路信号都为60 f/s,则每秒采集120 MB数据,而ZBT SRAM的工作频率为250 MHz,最大数据吞吐为4.5GB/s,完全满足数据采集速度系统的要求。
3 芯片间通信
多芯片协处理系统中最重要的一个方面就是芯片间数据通信的效率,该效率直接影响系统的运行效率。而数据延迟和传输带宽,是最值得关注的两个方面。本系统采用多种方式进行数据传输,提高了系统的灵活性。
3.1 FPGA2与DSPs间的数据通信
根据应用特点和系统接口,本系统采用两种方式连接FPGA和DSP:32 bit EMIF-A and Mc BSP0。选用32 bit EMIF-A作为DSP与FPGA间进行高速数据通信主要原因是传输速率高,可充分利用TMS320C6416内EDMA方式传输数据的优点。如图3所示。
FPGA内部的EMIF&FIFO接口模块用于转换DSP的EMIF信号,将数据转移至接收FIFO。当接收满一帧数据后,FPGA的计算内核开始从该接收FIFO获取数据并处理,然后将处理完的数据写到发送FIFO。发送FIFO数据满时,启动DMA中断将数据传送到DSP片内Cache。由于该EMIF-A是工作在133 MHz的32 bit总线,峰值数据率可达532 MB/s。
FPGA2与DSPs间的第二种通信方法是Mc BSP(Multichannel Buffered Serial Port),两个DSP的Mc BSP0连到FPGA。Mc BSP是一种全复用串行口,工作频率为125 Mb/s。进行串行通信时,具有独立的帧同步FSX,FSR和位同步时钟CLKX、CLKR,提供系统时钟信号为CLKS。在从模式下,可由外部时钟驱动,主模式下可由Mc BSP采样时钟驱动。接收和发送也很简单,各需要一个数据线:DR,DX。Mc BSP通信协议简单,可节省FPGA的资源。
3.2 两片DSP间的数据通信
两片DSP之间的通信也有两种通信方式。第一种通信是通过Mc BSP接口。为了获得最大的数据传送率,将两片DSP的Mc BSP1和Mc BSP2连接起来,这样每个DSP可以做为时钟主控和帧主控。换句话说,同一片DSP的一个Mc BSP接口作为主控在通信时产生数据发送时钟和帧同步时钟,同时另外一个接口作为从控等待控制信号以接收数据。图中,当DSP-A的Mc BSP1为主控发送数据时,Mc BSP2为从控;同时DSP-B的Mc BSP2为主控,DSP-A的Mc BSP1等待从DSP-B的同步信号以接收数据。
除了Mc BSP之外,两片DSP间还通过EMIF-A进行高速连接映射,FPGA内部的32 bit双向接口通过FIFO实现,如图4所示。这种基于FIFO的双向数据传送口支持DSP间复杂的数据交换和控制消息传递。DSP的EMIF-A工作频率为133 MHz,数据传输时,FPGA的可编程FIFO阈值中断支持DSP间通过EDMA方式。
3.3 与上位机PC的数据通信
为了实现从PC进行远程控制,特别是用无线网络连接控制通信,系统特别设计了以太网接口、USB2.0接口和PCI接口。网络连接是通过FPGA2的标准GMII接口,以太网PHY连接到外部RJ45。GPIO接口配置成USB2.0数据接口,而4个PCI则是将PCI芯片连接到FPGA2内的MGT模块来实现的。
4 高速并行数字图像处理结果
在智能车视觉系统中,除了要预先将多通道画面进行拼接等预处理外,更重要的是完成自动导航和目标跟踪,这些都牵涉到海量数据流的实时传输和运算。本次实验为基于特征点的运动物体追踪,包括以下步骤:(1)背景学习;(2)全画面运动估计、图像差分;(3)差分部分的特征提取;(4)特征点的帧间运动估计;(5)基于K-means法的特征点分类。
基于全景画面的特征点跟踪需要对多通道视频同时进行运算,运算过程复杂,包括跟踪前与跟踪后的处理任务,如何将这些任务分配到不同的芯片上并使板载资源做到任务间最大共享,需要根据任务强度估计后放到不同的芯片上。同时,由于μC/OS是一种可移植性强、代码微小的实时、多任务操作系统,适合在本系统的DSP上运行[10]。移植μC/OS操作系统到一个DSP上,将该DSP作为主控DSP进行任务分配,本次实验的各个任务分配如图5所示。由于两个DSP协助FPGA2进行运算具有强大的计算能力,可进行多目标跟踪,FPGA2承担了大量的并行数据运算,如运动探测包括的差分、运动估计、图像拼接,而DSP则承担特征点提取和追踪这些不能并行运算的部分。实验结果表明,6路视频采集后的全景图像上可作实时多目标追踪。
本系统通过选用FPGA+DSP相配合的方式,同时利用了两种芯片的性能优势,既保证系统的执行速度,也能保证可靠的逻辑控制。该系统实现了6路1 M大小视频图像信号的同时采集和处理,由FPGA1对系统的运行逻辑进行控制,通过优化在DSP上运行的图像处理程序,可实现智能车导航应用中全景图像范围内的目标追踪。该系统还可作为一个独立的图像处理系统,后续通过添加其他如立体视觉和光学跟踪等的算法,形成其他多方面的图像应用研究平台。同时该方案也为其他基于多DSP和FPGA混合图像处理平台设计提供了参考。
参考文献
[1]王亮.智能移动机器人定位技术研究[D].哈尔滨:哈尔滨工程大学,2004.
[2]NAYAR S.Catadiop tric qmnidirectional camera[A].IEEEConf Computer Vision and Pattern Recognition[C].Washing-ton D C,997.
[3]李立金,华标,陈智君,等.基于FPGA和DSP的高分辨率图像采集系统[J],数据采集与处理,2008,23(1):117-122.
[4]衰大伟,张跃文.基于DSP+FPGA的电子图像直接稳定技术研究[J].仪器仪表学报,2007,28(4):735-737.
[5]周贤波,冯龙龄.基于DSP和FPGA图像采集技术的研究.光学技术,2006,32(Suppl):141-143.
[6]Shirvaikar Mukul1,Bushnaq,Tariq1.A compari-son between DSP and FPGA platforms for real-time imaging applications,Proceedings of SPIE-ISand T Electronic Imaging-Real-Time Imageand Video Processing,2009,7244.
[7]CHAUBEY R C.Computerized image analysissoftware for the comet assay,Molecular ToxicologyProtocols,ISSN 1064-3745,2008,291.
[8]钱博,刘元涛,钟鸣.高速数字信号处理中的双缓冲ZBTSram控制器设计[J].沈阳理工大学学报.2008,27(2).
[9]陈兴耀,王振华,田金文,等.高速遥感图像压缩系统ZBTSRAM控制器的设计[J].微电子学与计算机.2005,22(3).
FPGA/DSP 篇3
笔者利用Matlab /Simulink建立了矩阵变换器仿真模型,验证了间接矢量调制策略的正确性,设计制作了矩阵变换器样机,输入采用LC滤波器,箝位电路,输出带阻感负载,并在样机上实现四步换流FPGA逻辑算法设计。
1 矩阵变换器的系统构成
矩阵变换器分为单级和双级两种,也分别称为直接和间接矩阵变换器。笔者以单级矩阵变换器为研究对象,其由9 个双向开关构成,如图1 所示。三相输入与输出通过开关直接相连,通过对双向开关的逻辑控制,可以实现AC-DC、DC-DC、DC-AC任意电力变换,但AC-AC变换是研究的重点[3,4]。
控制器采用FPGA + DSP结构实现,总体设计框图如图2 所示。主电路采用高频IGBT作为主功率器件; DSP负责完成矩阵变换器控制算法,并最终生成9 路PWM控制信号,送至FPGA控制器; FPGA接收DSP时钟信号,通过DCM( 时钟管理模块) 将15MHz时钟信号分频为FPGA所需的6MHz时钟信号,接收复位、三路电流方向检测信号和9 路DSP输出PWM信号; 电流方向检测信号供FPGA实现四步换流,最终得到矩阵变换器的18 路PWM控制信号,并通过驱动电路实现对矩阵变换器主电路的控制。
2 电流四步换流原理
矩阵变换器是一次变换器,无须中间储能环节。通过双向开关的逻辑控制,快速改变输入与输出的连接方式,即可实现幅值和频率的改变[5]。由于矩阵变换器通过9 个双向开关将三相输入/输出直接相连,不存在续流环节,因此需要对双向开关进行逻辑控制来实现安全换流、调频、调幅。通常,矩阵变换器的输入侧为三相电压源,而输出侧可等效为三相电流源。为实现安全换流,矩阵变换器的工作过程中必须遵循两个基本原则[6,7]:
a. 为避免过流,与同一输出相相连的3 个开关有且只能有一个导通;
b. 为防止过压,三相输出端的任意一相电路均不能断路。
图3 为两个双向开关之间的换流示意图,图中两个单向开关S1n与S1p组成双向开关S1,两个单相开关S2n与S2p组成双向开关S2。为防止出现过流,换流过程输入电源端不能短路,即S1p和S2n不能同时导通,S1n和S2p也不能同时导通; 为防止出现过压,换流过程中输出端不能出现断路,即在换流过程中,4 个单向开关中至少有1 个处于导通状态。换流的过程是伴随着电流方向来区分的,由于能量是在电源和负载之间双向流动交换的,因此电流方向分为电源流向负载和负载流向电源两种,此处定义电源流向负载为正方向,图4所示为iL> 0 时4 步换流控制信号波形。
设计中设置IGBT的导通、关断延时统一为2μs,IGBT的关断时间为1μs,开通时间小于关断时间,因此2μs的延时足够满足一个IGBT的导通或者关断时间。
3 空间矢量调制策略
空间矢量调制算法是虚拟直流储能环节,将矩阵变换器虚拟为电压源整流器与电压源逆变器,采用传统的空间矢量法进行合成[8 ~ 10]。
图5a所示的正六边形由6 个有效矢量划分为6 个输出电压扇区,在每个扇区中的参考输出电压矢量可由该扇区中相邻的两个有效矢量按相应占空比合成得到; 两个相邻有效矢量的占空比分别为dm与dn; 图5b中为虚拟整流器,两个相邻有效矢量的占空比分别为dα与dβ。
每个PWM周期内实际矩阵变换器的4 个有效矢量开关状态分别定义 αm、αn、βn、βm。由于虚拟整流器和虚拟逆变器空间矢量调制中分别存在6 个输入电流扇区和6 个输出电压扇区,实际矩阵变换器存在36 种不同的输入电流- 输出电压扇区组合[11,12]。
4 个有效矢量开关状态与零矢量开关状态的占空比分别为[13,14]:
4 样机和实验波形
基于四步换流和空间矢量调制策略,分别在仿真和实验中对方案进行研究:
a. 仿真验证。在Matlab / Simulink中利用理想开关搭建MC的模型,其输入采用LC滤波,输出分别采用带纯阻性负载和阻感负载,直接给定调制系数0. 8,实验中负载采用36Ω 电阻和8m H电感,其仿真波形如图6、7 所示。
b. 实验验证。为进一步验证所采用的控制策略,在仿真的基础上利用FPGA和DSP控制器搭建了实验平台。矩阵变换器输入侧为电网电压,输出侧为阻感负载,参数与仿真中设置一致。实验波形如图8、9 所示。
在实测波形中发现,当输出PWM波形中出现窄脉冲(脉冲作用时间小于换流时间)时,会导致触发脉冲的丢失,引起输出波形畸变。
经实验验证,高调制比输出时,出现窄脉冲的几率小,给定调制比越低,实际输出电压中谐波含量越大,THD值越高,因此实验中直接给定调制系数为0. 8,保证了输出电流、电压的正弦性[15]。通过仿真和实验实测波形对比,波形基本相符,验证了四步换流程序和空间矢量调制策略的正确性、可行性。由于实验样机的功率管不是仿真中的理想开关,双向开关的开通、闭合具有响应延时,使实验波形没有仿真中的效果好。引入闭环控制,可以改善矩阵变换器的输出电能质量。
5 结束语
FPGA/DSP 篇4
二次雷达 (Secondary Surveillance Radar, SSR) 目标识别系统能够通过发射特定的射频脉冲序列对装有应答机的目标进行“一问一答”式的询问, 由应答机的应答脉冲码获得目标的高度、编号等信息。航管二次雷达常用的基本工作模式为传统的A/C模式和新近的S模式。A模式提供飞机的代码, C模式提供飞机的高度码。但是, 传统的A/C模式存在一些技术缺陷, 如多目标代码交织、重叠、多径反射, 同步窜扰, 异步干扰等。这在大型航空港等飞机非常密集的地方, 时间不同步和混淆信号已经越来越严重, 同时单脉冲二次雷达无法提供数据链路的服务。
针对上述情况出现了一种新式的二次雷达——S模式二次雷达。S模式是一种先进的雷达询问系统, 它建立在独立编址和选择性询问的基础上, 能够解决在模式A/C中具有的信号干扰、有限的信息编码、幻影 (garble) 和异步应答 (fruit) 等问题, 同时在数据链路方面也具有巨大的潜力[1⁃2]。
本文采用通行的FPGA+DSP结构[3⁃4], 结构简单清晰, 功能强大, 成本相对较低, 实现了3/A、C、二级S模式码发射;接收并处理三路射频信号, 检测并正确提取AC码、S码及相应参数, ;输出航管的A模式, C模式和S模式编码信号, 并有较强的抗干扰能力。
1 二次雷达处理机基本性能要求
二次雷达指标为:工作模式3/A、二级S模式功能, 处理能力≥10 000点/帧, 同时≥900批/帧。抗异步串扰密度10 000 fruits/s;检测概率≥99%, 虚警率1个/帧, 解码有效率≥99%;具有接收旁瓣抑制和询问旁瓣抑制能力, 可自适应反串扰和他站应答干扰;具有抑制反射假目标的能力。
根据上面基本要求, 二次雷达可以按任务分解为:解码、发射时序、点迹处理、通信四种功能。相对而言, FPGA易于处理大数据量的流水数据, 不适于复杂算法的事务处理, 开发调试困难。DSP功能强大、运算速度快、寻址灵活、通信能力强, 易于开发;但有些功能仅DSP无法完成, 必须有FPGA配合。这就要在FPGA和DSP之间合理分配任务。因此这里除了点迹由DSP处理外, 其他都由FPGA来完成。系统结构如图1所示。
FPGA完成三通道采样、下变频、AC码、S码检测提取, 两片DSP分别完成AC码、S码点迹处理。FPGA同时完成与航迹管理机双向通信, 及控制发射机的发射时序。
系统接口一般有FIFO和双口RAM, 前者适于顺序事务处理, 但速度慢, 而且需要加同步头, 不适于DMA处理。这里全部采用FPGA内部的双口RAM, 并且置为乒乓结构, 这样可利用DMA高速处理大量数据。同时为了加快处理速度, DSP外总线全部采用同步方式。
根据性能要求, 为了同时装配4路AC码, 专门设计了接口同时捕获4路信号, 并顺序处理捕获的信号。
2 系统软件流程及功能
从系统的性能及硬件结构可以看出, FPGA的任务相当复杂, 要完成解码、发射及相应的通信功能。解码框图如图2所示, 基本过程是下变频, 幅度、相位校正, 门限处理, 再分别AC通道和S通道处理。
FPGA除了完成解码、还要完成编码和时序控制功能, 编码框图如3所示。由于航迹管理机有空中飞机的历史航迹, 因此发射模式是由航迹管理机来配置的。航迹管理机根据历史航迹来确定某一方位的询问是全呼叫还是点名, 并确定回答概率等参数。然后并将这些参数传入发射模式表。编解码根据方位读取相应参数, 并产生相应编码脉冲。
2.1 编码主要系统软件流程及功能
2.1.1 下变频模块
二次雷达要求和、差、控制三通道同步, 因此系统中频放到了信号处理机, 这样便于同步。系统中频是60 MHz, 采样80 MHz, 采样后, 必须滤波并抽取。下变频一般用DDS模块, 但DDS占用资源较大, 这里I, Q通道各自只用了4个预置值。一般预置值I通道采用[1, 0, -1, 0], Q通道采用[0, 1, 0, -1]。但这样遇到采样值是[1, 0, -1, 0]或[0, 1, 0, -1]时, 一个通道输出是0。因此这里采用这样保证每一个通道都有输出值。但这样做会扩大了数据位数, 直接截位会影响小信号检测。为了不影响小信号处理, 必须在抽取滤波时加大数据位数, 最后再截位处理。
2.1.2 求模与相角
求模与相角采用cordic核, 这样将I, Q数据转化为模与相角。表1是cordic核数据范围表, 输入的I, Q的范围是[-1, 1]。在cordic核中模与相角分别采用1QN、2QN表示形式, 例如在幅度是用1QN表示的。假设cordic核的数据长度是10位, 即幅度用1Q8表示中, 因此1和-1表示为:
同时来自AD的I, Q数据也是用补码表示的。假定AD数据长度也是10位, 那么正数最大是29-1, 即0111111111。这样就超过了cordic核的表示范围, 因此cordic核的位数必须正确设置才能不损失动态范围。并且相位的范围是[-π, π], 补偿后相位必须归算到[-π, π]。
2.1.3 幅度与相角补偿
一般通道校正可以在射频补偿[5], 也可在I, Q通道补偿[6⁃7], 但都是复数乘法补偿, 必然有舍入损失。这里插入了log模块, 将乘法简化为加法, 因此直接在求模与相角后补偿相角, 并在求log后补偿幅度。这样将乘性误差转化为加性误差, 补偿精度比直接在I, Q通道补偿高很多, 如图4所示。
2.1.4 AC通道处理
AC通道在边沿检测、脉冲预处理、框架检测后提取AC码参数, 并且进行去除幻影处理。幻影框架是因为不同框架脉冲交叠在一起, 产生多个虚假的框架, 从而产生多个虚假的应答, 必须去除。
单脉冲二次雷达目标信号处理去除幻影的基本思路是利用单脉冲二次雷达和、差通道的信号幅度信息来去除幻影框架[5]。属于同一框架脉冲的AMP值应具有一致性, 不具有AMP一致性的两个脉冲很可能属于不同的框架。并且通过以下步骤去除幻影:
(1) 可能的幻影框架判定
根据完全重叠的定义, 对所有收到框架中的F1和F2脉冲进行完全重叠判定。通过判断该F1, F2脉冲是否在另一个框架的F1后n×29±3 (n=0, 1, …, 14) 的位置上 (系统时钟选20 MHz) 。即计算两个脉冲的距离值差, 如果等于n×29±3 (n=0, 1, …, 14) , 即为可能的幻影框架。
(2) 构成交叠关系的框架
根据构成交叠关系的框架的定义, 对于上步找到的n个可能的幻影框架, 找出与每个框架Ai (1≤i≤n) 构成交叠关系的所有框架, 即计算两个框架的距离值差, 如果等于n×29±3 (n=0, 1, …, 14) , 就是构成交叠关系的框架, 假定有m个构成交叠的框架。
(3) 去除幻影
根据判定幻影框架充分必要条件中的Σ, Δ值均具有一致性的原则, 分别计算出每一个可能幻影框架Ai (1≤i≤n) 的参考信号的Σ值, 跟每个与之构成交叠关系的框架Bi ( (1≤i≤m) 的参考信号的Σ值之差, 同时也计算出两者的Δ值之差。只要其中有一组的Σ值之差具有一致性, 且Δ值之差也具有一致性, 就将该框架作为幻影删除。
这里去幻影是流水处理, 为了处理方便将此算法放在FPGA内处理。
2.1.5 S通道处理
S通道经过边沿检测, 报头检测, 计算参考值, DF认证, 重触发, 参数提取模块完成S模式应答信号的检测与提取[6⁃7]。
S模式信号报头为8μs, 并且数据可长达112μs, 提取电路相对复杂。这里采用移位寄存器来提取码值。即检测到有效报头后, 等数据脉冲部分到来后, 再启动数据提取, 将数据逐次打入。
2.2 编码主要流程及功能
信号处理机还须进行编码发射时序处理, 发射时序如图5所示。根据图3流程, 航迹计算机来配置每一SCAN的发射模式及参数表。信号处理机来顺序读取每个脉冲的模式及相应参数, 并据此来控制发射波形。
这里模式仅分为三种, 分别是00、01、02。如图5所示, 00模式是AC模式, 即AC交替模式, 用于发射AC码。01模式是S和AC联合全呼叫模式, 这样装有S模式和只装AC模式的飞机都能应答。02模式是点名呼叫模式, 这样地址一致的S模式飞机才响应并应答。
2.3 点迹处理
信号处理机同时完成点迹处理, 即将飞机的多个应答处理为一个点迹报告, 并传送到航迹计算机, 这部分任务由DSP完成。
点迹处理处理分点迹相关和点迹凝聚的两个过程。其中点迹相关的基本流程如图6所示。
相关上的点迹形成一个链, 码值的凝聚则根据链上所有应答的置信度来凝聚码值, 生成距离、方位、点迹质量、紧急/识别标注等, 然后生成点迹报告送至航迹计算机。
3 结论
本系统采用FPGA+DSP的方式设计、实现了单脉冲二次监视雷达实时信号处理机, 结构清晰简单, 功能强大, 成本相对较低。经测试SSR信号处理机, 可以达到≤15 m级的距离分辨率。并且根据二次雷达设备规范[8], 每个SCAN可以达到约600个目标, 或每个扇区可处理64批目标, 检测概率大于99%, 测角精度优于0.05°。同时系统有BIT功能, 可以离线或在线检测, 可靠性很高。另外, 系统简单扩展既可以实现1、2、B、D、IFF等功能。综上所述, 本二次雷达信号处理机具有较高的性价比, 市场前景广阔。
摘要:针对二次雷达的通用处理要求, 采用流行的FPGA和DSP结构的处理机, 并且合理设计处理流程和算法, 有效地整合二次雷达接收、发射、信号处理、点迹处理的功能, 并适于FPGA流水处理和DSP事务处理。该处理机结构简单、紧凑, 功能强大。经测试, 能有效处理AC模式和S模式应答信号, 实施S模式询问管理及相应功能。
关键词:二次雷达,AC模式,S模式,信号处理
参考文献
[1]王洪, 刘昌忠, 汪学刚.二次雷达S模式综述[J].电讯技术, 2008, 48 (7) :113-118.
[2]张蔚.二次雷达原理[M].北京:国防工业出版社, 2009.
[3]钟睿, 毛士艺, 张永鹏, 等.基于DSP FPGA的二次雷达信号处理机的实现[J].系统工程与电子技术, 2002, 24 (12) :8-11.
[4]牛力丕, 毛士艺, 李少洪.基于多DSP技术的SSR实时信号处理机[J].北京航空航天大学学报, 2003, 29 (5) :394-397.
[5]蒋德富.单脉冲和差通道幅相不平衡校正[J].现代雷达, 1997, 19 (8) :9-11.
[6]梁士龙, 郝祖全.单脉冲雷达数字接收机幅相不平衡的一种校正方法[J].系统工程与电子技术, 2003, 25 (2) :137-139.
[7]杜俊蛟, 曹旭东, 李宝森, 等.基于FPGA的多通道雷达接收机幅相不一致校正[J].电光与控制, 2011, 18 (1) :85-89.
[8]中国民用航空总局空中交通管理局.空中交通管制二次雷达监视雷达设备技术规范[S].北京:中国民用航空总局, 2006.
[9]郑植, 练马林, 张超, 等.模式S应答处理中报头检测算法的研究与实现[J].电子科技大学学报, 2008, 37 (z1) :66-70.
[10]伊娜.模式S应答处理中的视频处理[D].成都:电子科技大学, 2006.
FPGA/DSP 篇5
关键词:FPGA,DSP,ARM
0 引言
随着集成电路自身的不断发展、器件尺寸的不断缩小、集成度的不断提高、多种工艺水平的突飞猛进, 将整个雷达信号处理系统集成到一块板卡上变得可能。在某些情况下, 诸如总体的系统设计方案在性价比上、结构上、重量上有着特殊的考量, 寄希望数字处理端在完成系统功能的前提下, 尽量能减少板卡的种类、数量。在这里, 我们提出一种以高端大规模可编程逻辑器件 (FPGA) 、高性能专用DSP芯片、以及ARM模块为架构的硬件一体化平台, 基于此平台, 我们可以完成通道少、数据率相对不高的雷达信号处理系统设计。
1 硬件平台设计方案
硬件平台设计初期, 设计师首先需要根据系统技术参数具体分析所需的资源, 比如fpga的内部逻辑资源是否足够丰富、对外接口I/O是否够用、DSP的运算能力是否达到实时处理的要求、ARM的主频是否能够完成实时的数据处理等等, 同时还要考虑到本系统在未来3到5年不至于被淘汰, 设计师经过综合考量, 选出一套切合实际的硬件解决方案。本篇的硬件方案为:Altera公司的FPGA (EP4SE360) 、AD公司的TS201、以及盛博研发的ARM3471核心模块。图1给出了本平台的实物图:
下面依次按照FPGA设计、DSP设计、以及ARM设计做逐一介绍。
1.1 FPGA设计
1.1.1 器件介绍
本硬件平台选择的FPGA为EP4SE360, 为Altera公司第四代高性能超大规模逻辑器件, 其内部逻辑资源如下:
等价逻辑单元 (LE) 为353, 600,
自适应逻辑模块 (ALM) 为141, 400;寄存器为282, 880;
M9K存储器模块为1, 248个;
M144K存储器模块为48个;
嵌入式存储器为18, 144kbits;
18*18乘法器为1040个;
用户可自定义的User IO为744个;
工作核电压为0.9v, 功耗较低;
以前, 完成雷达信号处理系统设计需要多片FPGA级联才能够实现, 而目前单片EP4SE360即可完成数字脉压、MTD滤波器、恒虚警、杂波图、滑窗检测等等设计。
1.1.2 FPGA硬件设计
在本设计方案中, FPGA作为整个整个设计的核心模块, 在系统的设计方面起着重大的意义, 极大的增加了系统的灵活性。FPGA和其他器件的交互原理图如下图:
Fpga的外围电路包括一片ADSP-TS201、一块ARM核心模块以及四片SRAM。
Fpga和TS201的具体连接关系为:1) 64bit的双向地址传输、32bi的地址总线以及读写使能等;2) 两对链路口, 每个链路口都是由4位双向查分数据线和另外3个控制信号构成;3) 其他的连接信号包括:外部中断、SDRAM控制信号、FLASH控制信号、外部口DMA控制信号、复位信号等等。
FPGA和ARM之间的具体连接关系为:32bit的互联数据总线, 16bit的地址总线以及读写控制信号等等;
FPGA与每片SRAM之间具体连接关系为:36位的数据线、21位的地址线, 以及对应的读写控制信号等等;
在剩余的IO分配上, 主要是和其他分系统间互联互通管腿, 同时预留了一些管脚作为测试引脚。
1.2 TS201设计
1.2.1 TS201概述
ADSP TS201采用超级哈佛结构, 静态超标量操作适合多处理器模式运算, 可直接构成分布式并行系统和共享存储式系统, 用于大的信号处理任务和通信结构优化。主要性能如下:
最高工作主频可达600Mz, 支持单指令多数据 (SIMD) 操作, 3.6GFLOPs峰值浮点处理能力;支持IEEE 32位、40位浮点数据格式和8位、16位、32位和64位定点数据格式;外部总线宽度为64bit, 速度最高为125MHz;可以提供1GB/SDE数据吞吐能力, 4路Link通道, 每个通道的传输速率最高为600MB/s;4条128位的片内数据总线与6个4Mb的内部RAM相连;32位的地址总线提供4G的统一寻址空间。
1.2.2 TS201外围电路设计
应用ADSP-TS201进行外围电路设计时, 有一些特别需要注意的地方, 如电源设计、时钟设计、JTAG接口等等。下面就这几个方面进行讨论。
1) 电源设计
ADSP-TS201处理器共有4组电源, 分别是核电源、模拟PLL电源、内部DRAM电源、IO电源, 并且在不同的工作频率下供电要求不尽相同。因此设计电源的时候奥选择符合电压电流要求的电源。另外ADSP-TS201电源管脚需要旁路电容去偶。在PCB设计时需要注意。
2) 时钟设计
ADSP-TS201有2个时钟参考电压管教, SCLK_VREF1和SCLK_VREF2, 这两个管教应该连在一起, 为系统时钟供电电压的一半。SCLK1和SCLK2是时钟输入端, 最大系统时钟是核时钟的1/4。同时SCLK也为外部接口总线提供时钟。ADSP-TS201内部有一个PLL, 通过设置SCLK RATE2~0引脚将SCLK倍频到所需的核时钟。在设计过程中, 为了保证时钟的同步, 可以采用时钟驱动芯片, 可以同时输出多路时钟, 为外围的SDRAM提供系统时钟。
3) JTAG接口
ADSP-TS201 JTAG仿真器是一个14pin的母头, 第3脚为NC (no connect) , 在调试过程中, 使用仿真器的时候, 必须拔出来。在JTAG接口设计时要注意以下方面:正确的上拉下拉电阻, 数据 (tdi, tms, tdo, trst, emu) 驱动、时钟驱动如IDT74系列的驱动芯片。
4) ADSP-TS201外围电路
(1) ADSP-TS201与SDRAM接口
ADSP-TS201处理器有一个专用的SDRAM接口, 可以实现与标准SDRAM 6Mb, 64Mb, 128Mb, 256Mb, 512Mb的无缝连接。支持1024, 512, 256的页面长度, 通过对SDRCON寄存器的编程可实现页面长度的选择, 同时SDRAM占用TS201的外部存储空间寻址, 通过设置/MSSD3~0来确定SDRAM的地址空间范围。
本设计选用的SDRAM是W332M64V-125SBI。
(2) ADSP-TS201与FLASH接口
本文设计的硬件系统需要将FLASH连接在TS201的外部总线上, 典型的sch设计如图4所示。
(3) TS201与FPGA的接口在FPGA硬件设计部分已做了详细介绍。
1.3 ARM模块设计
本设计平台选择的盛博科技提供的SAM-3471。如图5所示。该型ARM产品适合于军用、控制设备、多媒体、终端、医疗电子、汽车电子、手持设备等应用的RISC核心模块。采用intel基于XScale构架处理器, 尺寸大小仅仅80mm*55mm。
SAM-3471的主要特性
x Scale处理器 (主频416M/216M可选)
低功耗、高性能的多媒体平台
丰富的接口, 包括:串口、100M网口, USBHOST接口、USB devic接口、显示接口、ac97接口、触摸屏接口, 扩展键盘接口、cf卡接口、sd卡接口、sim卡接口。
硬件设计师在具体逻辑图设计时, 只需参照厂家提供的参考sch电路绘制ARM模块和底板的接口, 无需深究ARM模块内部的架构。软件设计师依照任务需求, 在linux系统下开发应用程序。
2 结语
本文介绍了一种基于FPGA、DSP、ARM为架构的信号处理硬件平台, 本平台集AD采样 (低频) 、数字信号处理、数据处理于一身, 该板卡集成度高、功能强大、对外接口丰富。本硬件平台已经成功应用于多种型号产品中, 性能稳定, 可靠性高, 在工程应用中具有一定的参考价值。
参考文献
[1]李兰英, 等.Nios II嵌入式软核SOPC设计原理及应用[M].北京:北京航空航天大学出版社, 2006, 11.
FPGA/DSP 篇6
全自动灯检机是医药生产线上对液体药品产品质量检测的装置,可以实时检测药品中玻璃碎屑、铝屑、橡皮屑、毛发、纤维等异物,同时也可以检测瓶身是否存在缺陷以及液位是否达到标准等,自动剔除不合格产品。传统的检测方法大多采用人工检测等方法,很难满足当前对生产效率、准确性和实时性的要求[1]。随着电子信息技术的快速发展,数字图像处理技术已经广泛应用于工业、军事、生物医疗、视频监控等领域。基于FPGA和DSP的全自动灯检机图像识别系统,充分发挥FPGA的灵活性和DSP运算速度快、寻址方式灵活等优点,更好的提高了灯检机的集成度和检测精度,并满足实时性要求[2,3]。
1 系统原理与体系结构
基于FPGA和DSP的图像识别系统是一种基于数字图像技术的非接触式检测方法,首先通过CMOS(互补金属氧化物半导体)等图像传感器对目标药瓶进行图像采集,然后经过FPGA和DSP进行图像处理,运用有效的异物识别算法对目标产品合格与否做出判断,最后给执行单元发出剔除与否的信号。这种方法环境适应性好,精度高,测量范围大,图像信息易于管理和保存[4]。
为了实现图像识别系统的高精度和实时性,该系统根据不同的任务、FPGA和DSP各自的特点。将系统划分为图像传感器模块、FPGA图像采集及预处理模块、数据缓存模块和DSP图像处理模块四个部分,系统结构原理图如图1所示。
如图1所示,CMOS图像传感器输入的图像数据经FPGA预处理后,通过FPGA内部IP核FIFO进行缓存并将数据传送至DSP,DSP对输入数据图像进行实时处理和识别,同时将处理后的图像通过输出接口发送给执行单元进行相应的操作。
2 系统具体实现方案
运用数字图像处理技术对液体药瓶中可见异物识别的检测精度和速度取决于采集到图像的清晰度、分辨率和图像处理算法的实时性。根据系统设计性能指标,要求图像识别系统的图像分辨率不小于640×480,处理速度达到30fps以上,最小检测杂质30微米,本文将围绕这些性能指标进行设计。
2.1 视频图像的获取
在图像识别系统中,图像的采集是第一步,它的好坏直接影响到整个系统的性能。目前图像采集系统中的成像单元,主要采用CCD(电荷耦合元件)和CMOS图像传感器。CCD图像传感器具有读取噪声低、动态范围大、响应灵敏度高等优点,广泛应用于各种摄录机和照相机的图像采集系统中。与CCD传感器相比,CMOS图像传感器具有体积小、集成度高、功耗低、抗干扰能力强和易于控制等优点,所以广泛应用于摄像头、扫描仪、可视电话、视频会议和视频监控等领域中。本系统采用美光公司推出的低功耗、低成本、逐行扫描CMOS图像传感器MT9M111,130万像素分辨率(1280H×1024V),QSXGA格式的最大帧率可达30fps,满足系统性能的要求。其内部集成10位片上模数转换器,每像素时钟输出8位数据格式的数字图像,而且还配备了两线串行接口,可以通过这两线串口对其进行初始化配置[5]。
2.2 FPGA模块
本系统中,FPGA芯片选用Altera公司Cyclone II系列的EP2C8,采用Quartus II进行FPGA设计。FPGA主要用于实现图像采集、图像预处理和图像数据缓存,并且还为CMOS图像传感器提供时钟信号以及通过I2C总线接口进行初始化配置。FPGA使用一块50MHz的晶振作为其全局时钟输入,依片内PLL(锁相环)分频可产生所需的时钟频率。由于采用基于SDRAM工艺的FPGA芯片,所以还需要配置电路在上电时对FPGA进行配置。
作为系统的协处理器,FP-GA主要完成图像采集和预处理,同时通过I2C总线对CMOS传感器进行初始化配置。FPGA内部图像采集模块实时采集图像传感器传来的图像数据,然后进行灰度转换和滤波等图像预处理操作,最后将图像数据送入数据缓存,等待DSP读取。由FPGA内部RAM配置而成的异步FIFO作为数据缓存,通过异步FIFO可以满足在FPGA与DSP之间大量数字图像数据传输的要求,读写控制非常方便。
2.3 DSP模块
DSP在图像识别系统中作为核心处理器,用于实现图像识别等。本系统选用的DSP芯片是TI公司的定点数字信号处理器TMS320DM642,采用Veloci TI1.2VLIW架构,支持8条32位的指令,使其在每个时钟周期内可操作8个独立的功能单元,其中有2个结果为32位的乘法器和6个算数逻辑单元,在主频为720MHz下处理速度达到5 760MIPS。因此可以很好的满足系统对图像处理算法的复杂性、实时性和灵活性的要求。
作为系统的主处理器,DSP与FPGA建立即时通信,产生相应的逻辑信号来控制FPGA启动复位、图像采集开始/结束,实现系统程序模块间的调度与协调。当FPGA完成预处理后,将图像数据写入FIFO中,DSP通过EMIFA开始读取数据FIFO中的图像数据并写入其外部SDRAM,当传输完一帧图像后,启用EDMA通道将数据传输到内部RAM进行实时图像处理和识别,并将识别的结果发送给执行单元,完成相应的操作。
2.4 FPGA和DSP接口设计
FPGA与DSP工作在不同的时钟域,为了使相对低速的数据采集和高速的DSP相匹配,使用FP-GA内部RAM配置而成的异步FIFO作为数据缓冲器,外部接口与DM642的EMIFA接口构成异步传输,接口控制采用DM642的外部中断,当FIFO不为空时,通知DSP读出数据,FPGA和DSP两者各控制异步FIFO一端的读写来完成数据的传输。同时将DSP通用I/O信号接入FPGA的I/O口,控制FPGA启动复位、图像采集开始/结束,以灵活的实现FPGA与DSP的控制与通信[6],如图2所示。
3 系统软件设计
3.1 FPGA图像采集及预处理
FPGA软件系统采用Verilog硬件描述语言对软件进行模块化设计,将软件分成若干相对独立的功能模块,并为各模块安排适当的入口和出口参数,使得模块之间的相互连接、组合灵活方便。
系统上电后,FPGA首先从外部配置芯片中读取配置数据,通过AS主动串行方式完成自身的程序加载,进入工作模式状态。随后通过I2C总线配置CMOS图像传感器的内部寄存器,同时提供外部时钟信号控制CMOS图像传感器工作并按像素逐点输出数字图像数据。FPGA内部各个模块示意图如图3所示。
实际现场的采集过程中得到的图像信息是RGB彩色图像,为了获得更快速处理速度,必须用灰度转换等方法对图像进行预处理以增加后期DSP图像识别算法实行的效率,通过灰度空间转换来减小图像的冗余量。灰度空间转换的基本公式如公式(1)所示:
数字信号处理系统中,尽量避免低速的浮点运算,因此将其改为整数运算。如公式(2)所示:
通过调用FPGA中乘法器内核和移位寄存器可以非常简单方便的实现公式(2)中的灰度转换运算。
在待处理的图像中包括目标、背景,要想从多值的数字图像中直接提取出目标区域,通常将灰度图像转为二值化图像进行处理[7]。运算公式如式(3)所示。
公式(3)中f(x,y)为二值化图像,g(x,y)为灰度图像,θ为灰度阈值。
在FPGA中可以采用一个比较器来实现数字图像的阈值分割,输出二值化图像,在此基础上才能对目标区域做进一步的分析。
3.2 DSP软件设计
系统上电DSP在接收复位信号后启动BOOT-LOADER,从片外FLASH中装载程序,并跳到复位向量处开始执行程序。首先程序初始化,配置EMIF接口寄存器及中断寄存器等,同时向FPGA发送启动图像采集信号,然后进入for循环,等待外部中断信号。TMS320DM642的软件设计流程图如图4所示。
图像识别算法由DSP来完成,主要包括边缘检测和特征提取两部分。当DSP接收完一帧图像后,启用EDMA通道将数据传输到内部RAM进行实时处理。边缘检测的目的是标识图像中亮度变化明显的像素点,常用的方法有Roberts交叉算子、Sobel算子、Prewitt算子。
采用边缘检测算法可以得到目标物体的边缘,其中包括一条液位线,再运用形态学和直线拟合等方法,可以得到液位线上各像素点的坐标。在系统中对液面边缘的Y坐标取平均值就可以得到了液位线[8],如公式(4)所示。
公式(4)中P是构成液位线的像素个数,yi为各像素点的y坐标。
根据计算结果,与给定的液位高度取值范围进行比较,就可以判断液位是否符合要求。若液位符合要求,则继续进行杂质检测等操作,否则将结果发送到执行单元,剔除不合格产品。而杂质的检测则通过特征提取等算法来完成。
4 试验结果
全自动灯检机图像识别系统的图像处理算法包括图像预处理算法和后期复杂的边缘检测、特征提取等算法。图像预处理算法主要是图像的滤波、增强和灰度转换等,主要的作用是消除干扰和加强图像的特征,图像预处理的特点是算法简单但数据量比较大,适合由FPGA来完成。经过预处理后,图像的冗余量大大减少,再用DSP对图像进行分割、识别和跟踪等操作,增加了算法实行的效率。为了验证系统的特性,进行了大量的测试试验,图5为图像识别系统的液位检测图像处理效果。
结合图5(d)中液位线上各像素点的坐标和公式(4)可以得到目标药瓶的液位线。将图像识别系统检测结果和人工测量读数进行比较,如表1所示。
从表1可以看出,图像识别与人工读数结果之间的相对误差在0.25%~1.2%之间,图像识别具有较高的测量精度,并且效率比人工测量高。
5 结论
本文对提出的基于FPGA+DSP的图像识别系统方案进行了仿真实验和编程实现。实验表明,图像识别速度快、精度高、可靠性好,对不同光线环境的适应性良好,取得了预期效果,而且算法运算速度快,满足全自动灯检机实时性要求,易于硬件实现。
摘要:针对全自动灯检机对精度、鲁棒性和实时性的要求,设计一种基于数字信号处理器(DSP)和现场可编程阵列(FPGA)数字图像处理的全自动灯检机图像识别系统。该系统采用FPGA对CMOS图像传感器采集的图像信息进行预处理,并采用高性能的DSP作为图像处理的核心部分,保证了系统性能的要求。详细介绍了系统的原理和实现方案,并在硬件系统上进行了算法验证及仿真实验。试验结果表明:该系统满足精度、实时性和适应性的设计要求。
关键词:图像识别,数字图像处理,现场可编程阵列,数字信号处理器
参考文献
[1]李杨果,王耀南,王威.基于机器视觉的大输液智能灯检机研究[J].光电工程,2006,33(11):69-74.
[2]杨露,苏秀琴,向静波.基于DSP和FPGA的视频图像处理系统设计[J].微计算机信息,2008,24(21):288-289.
[3]张良庆,宋开臣.基于双DSP和FPGA的导航处理系统设计[J].机电工程,2010(5):38-40,55.
[4]陈金丽,张帆,张显.基于卡尔曼滤波的液位检测与跟踪[J].计算机仿真,2009,26(9):317-320.
[5]Micon.MT9M111数据手册[Z].Micon Technology Inc.2004.
[6]胡波,李鹏.异步FIFO在FPGA与DSP通信中的运用[J].电子科技,2011,24(3),53-55.
[7]杨福刚,孙同景,宋松林.基于机器视觉的全自动灯检机关键技术研究[J].仪器仪表学报,2009,29(3):562-566.
【FPGA/DSP】推荐阅读: