基于多核处理器的火控雷达信号处理方法与实现

基于多核处理器的火控雷达信号处理方法与实现

ID:37028582

大小:3.01 MB

页数:90页

时间:2019-05-15

上传者:文档小小白
基于多核处理器的火控雷达信号处理方法与实现_第1页
基于多核处理器的火控雷达信号处理方法与实现_第2页
基于多核处理器的火控雷达信号处理方法与实现_第3页
基于多核处理器的火控雷达信号处理方法与实现_第4页
基于多核处理器的火控雷达信号处理方法与实现_第5页
资源描述:

《基于多核处理器的火控雷达信号处理方法与实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1硕士学位论文|修|基于多核处理器的火控雷达信号处理方法与实现作者姓名彭中硕指导教师姓名、职称曹运合教授申请学位类别工学硕士 西安电子科技大学学位论文独创性(或创新性)声明秉承学校严谨的学风和优良的科学道德,本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研宄成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研宄成果;也不包含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的材料一。与我同工作的同事对本研究所做的任何贡献均己在论文中作了明确的说明并表示了谢意。I一学位论文若有不实之处,本人承担切法律责任。^^本人签名:日期:西安电子科技大学关于论文使用授权的说明:本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即研宄生在校攻读学位期间论文工作的知识产权属于西安电子科技大学。学校有权保留送交论文、的复印件,允许查阅可以公布论文的全部或部分内容,允许采用影借阅论文;学校印。、缩印或其它复制手段保存论文同时本人保证,结合学位论文研究成果完成的论文、发明专利等成果,署名单位为西安电子科技大学。保密的学位论文在年解密后适用本授权书。_::本人签名导师签名彳日期:日期:, 学校代码10701学号1502120920分类号TN95密级公开西安电子科技大学硕士学位论文基于多核处理器的火控雷达信号处理方法与实现作者姓名:彭中硕一级学科:信息与通信工程二级学科:信号与信息处理学位类别:工学硕士指导教师姓名、职称:曹运合教授学院:电子工程学院提交日期:2018年6月 MethodandImplementofFireControlRadarSignalProcessingBasedonMulticoreProcessorAthesissubmittedtoXIDIANUNIVERSITYinpartialfulfillmentoftherequirementsforthedegreeofMasterinSignalandInformationProcessingByPengZhongshuoSupervisor:CaoYunheTitle:ProfessorJune2018 摘要摘要火控雷达在我国防空等领域的武器系统中占据着不可替代的位置。传统雷达系统实现采用的是多片单核DSP架构,但是多片单核架构往往导致整个系统存在集成度低、功耗大、数据传输困难等缺点。随着雷达技术的迅猛发展,雷达系统要求数字信号处理器能够做到实时数据处理、多任务并行处理、大数据处理与存储、大带宽传输数据。因此多功能一体化、多核并行处理以及高集成度等要求已成为现在雷达系统的发展趋势,本文结合某火控雷达信号处理机实际项目,详细介绍了火控雷达信号处理具体算法流程,并对雷达信号处理与数据处理进行DSP软件设计与模块实现。首先,论文介绍了火控雷达信号处理主要工作流程,对其关键算法的理论进行说明与实验仿真,并且详细介绍核心算法在DSP中编程实现,通过将DSP处理结果与仿真结果作对比以此验证实现的正确性;之后介绍了雷达系统数据处理部分,该部分主要介绍单目标跟踪的实现方法—滤波,阐述了该滤波方法理论及DSP实现的具体流程,并结合电脑仿真验证算法实现的正确性。其次,论文着手雷达信号处理系统设计以及实现,根据项目需求以及板卡上的资源,确定了系统的总体设计、系统中数据传输方法、任务的多核分配以及多核通信的方法。项目涉及多核任务间数据交互,采用EDMA数据传输方法大大提高核间数据传输效率以及系统流水线操作;论文详细探讨了芯片间如何实现流水线操作,并采用SRIO高速串口实现DSP与FPGA之间的双向数据传输以及Hyperlink高速串口实现双片DSP间的数据传输;项目涉及到DSP与上位机的数据交互,论文详细介绍了以太网接口,并采用UDP协议与上位机进行通信。最后,论文介绍了系统设计中遇到的问题,主要结合在调试过程中遇到一些突出性问题进行分析并给出解决方法,例如进行核间数据传输时如何解决多核之间数据传输出现高速缓存一致性的问题;算法运算时间过长,如何将代码进行并行处理和高效率优化代码;使用SYS/BIOS系统如何解决信号量崩溃、通信机制消失以及程序退出SYS/BIOS系统等问题。论文对这些问题进行了详细分析并给出解决方法,其解决方法为工程实现中的诸多问题提供了基础。关键词:火控雷达,信号处理,数据处理,多核DSP,高速串口,核间通信I ABSTRACTABSTRACTFirecontrolradaroccupiesanirreplaceablepositionintheweaponsysteminourairdefenseandotherfields.ThetraditionalradarsystemimplementationisbasedonmultiplesinglecoreDSP’sarchitecture,whichoftenleadstotheshortcomingsofthewholesystem,suchaslowintegration,highpowerconsumption,anddifficultdatatransmission.Withtherapiddevelopmentofradartechnology,theradarsystemrequiresthedigitalsignalprocessortoachievereal-timedataprocessing,multitaskparallelprocessing,largedataprocessingandstorage,andlargebandwidthtransmissionofdata.Therefore,therequirementsofmulti-functionintegration,multi-coreparallelprocessing,andhighintegrationhavebecomethetrendofmodernradarsystems.Basedonstudyofthefirecontrolradarsignalprocessorproject,thispaperintroducesthefirecontrolradarsignalprocessingalgorithmandthespecificprocessofradarsignalprocessinganddataprocessingmoduledesignandimplementationofDSPsoftware.Firstly,thispaperintroducesthemainworkingprocessoffirecontrolradarsignalprocessing,andthekeyalgorithmisdescribedandimplemented.ThepaperdescribesindetailtheimplementationofkeyalgorithmsinDSP,andcomparestheDSPprocessingresultswiththesimulationresultsoncomputertoverifythecorrectnessoftheimplementation.Thenthepaperintroducesthedataprocessingoftheradarsystem,whichmainlyintroducestherealizationmethodofsingletargettracking-filtering—filter,expoundsthetheoryofthisfilteringmethodandtheconcreteflowofDSPimplementation,andverifiestheresultwiththecomputersimulation.Secondly,thispaperbeginstodetermineradarsignalprocessingsystemdesignandimplementation.Accordingtotherequirementsoftheprojectandtheresourcesoftheboardcard,thepaperdeterminesthesystem'sdesign,themethodofsystemdatatransmission,taskallocationandthecommunicationmethodofmulticore.Becausetheprojectinvolvesdatainteractionbetweentasks,usingEDMAtotransferdatacangreatlyimprovethetransmissionefficiencyofthesystemandthepipelineoperation;thepaperdiscusseshowtorealizethepipelinebetweenchips,andtheprojectusesSRIOtotransferdatabetweenDSPandFPGAandHyperlinktotransferdatabetweenDSPs;theprojectinvolvesdatainteractionbetweenDSPandPC,sothispaperintroducestheEthernetIII 西安电子科技大学硕士学位论文interfaceandcommunicationprotocolUDPusedforcommunicatingwiththePC.Finally,thepaperintroducessomeproblemsinsystemdesign.Thepaperanalyzestheproblemsencounteredindebuggingandgivesthemethodtosolvetheproblems,suchashowtosolvemulticorecacheconsistencyproblemswhentransferdatabetweenmulticore,howtoparallelandoptimizethecodeswhenthecomputingtimeistoolong,andhowtosolvethecollapseofsemaphore,communicationmechanismfailureandtheSYS/BIOSsystem.Thispaperdiscussestheseproblemsandgivesadetailedanalysisofsolution,whichprovidesthebasisformanyproblemsinprojectimplementation.Keywords:FireControlRadar,SignalProcessing,DataProcessing,Multi-coreDSP,HighSpeedSerialI/O,InterProcessorCommunicationIV 插图索引插图索引图2.1线性调频脉冲信号数字处理框图.................................................................6图2.2脉冲压缩实现流程图.....................................................................................7图2.3MATLAB仿真脉压与DSP实现脉压对比..................................................8图2.4动目标检测流程图.......................................................................................10图2.5电脑仿真MTD与DSP实现MTD结果对比............................................11图2.6单元平均恒虚警检测框图...........................................................................12图2.7恒虚警率检测流程图...................................................................................13图2.8恒虚警率检测电脑仿真与DSP实现..........................................................14图2.9点迹凝聚流程图...........................................................................................16图2.10和差归一模块流程图...................................................................................17图2.11单目标跟踪模块流程图...............................................................................20图2.12计算机仿真结果与DSP实现结果对比图..................................................21图2.13DSP实现结果与电脑仿真结果相对误差....................................................22图3.1信号处理板资源结构...................................................................................24图3.2系统流水线示意图.......................................................................................25图3.3软件处理流程图...........................................................................................26图3.4SRIO设备间接口框图.................................................................................28图3.5锁闭LSU单元..............................................................................................31图3.6配置LSU寄存器..........................................................................................31图3.7触发传输.......................................................................................................32图3.8SRIO传输机制.............................................................................................33图3.9SRIO调试结果.............................................................................................34图3.10Hyperlink点对点连接...................................................................................35图3.11Hyperlink串并转换器配置...........................................................................35图3.12Hyperlink映射到不同存储区.......................................................................36图3.13Hyperlink的传输流程图...............................................................................37图3.14EDMA控制器框图.......................................................................................39图3.15EDMA转置传输...........................................................................................40图3.16Link模式PaRAM更新................................................................................41图3.17EDMA配置流程...........................................................................................42图3.18EDMA向Hyperlink窗传输数据结果.........................................................43V 西安电子科技大学硕士学位论文图3.19EDMA进行数据转移并转置.......................................................................43图3.20千兆以太网模块...........................................................................................44图3.21DSP端以太网调试结果................................................................................45图3.22上位机端与DSP端以太网联调..................................................................46图3.23主从模型.......................................................................................................47图3.24数据流模式...................................................................................................47图3.25雷达信号处理流程图...................................................................................48图3.26主从、数据流模式结合...............................................................................49图3.27信号量使用...................................................................................................49图3.28多事件处理流程...........................................................................................50图3.29Message通信机制.........................................................................................51图3.30消息队列八核通信调试结果.......................................................................51图3.31通知机制流程...............................................................................................52图3.32通知机制调试结果.......................................................................................53图3.33中断拓扑结构...............................................................................................53图3.34次级事件映射到核中断...............................................................................54图4.1脉冲压缩处理时间.......................................................................................57图4.2代码优化示意图...........................................................................................59图4.3循环未展开与循环展开消耗时间对比.......................................................60图4.4线性汇编处理结果.......................................................................................61图4.5核A与核B数据对比.................................................................................63图4.6核A更新内存中数据..................................................................................64图4.7核B读取内存中数据..................................................................................65图4.8信号量崩溃...................................................................................................65图4.9通信机制时间过长.......................................................................................66图4.10核间通信失效...............................................................................................67VI 表格索引表格索引表2.1不同点脉冲压缩算法消耗时间.....................................................................8表3.1串并通道配置成不同的接口.......................................................................27表3.2RapidIO读取/存储寄存器.........................................................................29表3.3SRIO数据包部分类型配置.........................................................................32表3.4EDMA资源分配情况..................................................................................38表4.1编译器优化选项...........................................................................................61表4.2不同类型代码消耗时间...............................................................................62VII 符号对照表符号对照表符号符号名称km千米m/s2米每平方秒m/s米每秒发射脉冲时宽调频斜率B调频带宽D时宽带宽积fd多普勒频移Pfa虚警概率K0门限系数fs采样频率归一化误差信号a加速度Gbps吉比特每秒IX 缩略语对照表缩略语对照表缩略语英文全称中文对照DSPDigitalSignalProcessor数字信号处理器FPGAFieldProgrammableGataArray现场可编程门阵列FFTFastFourierTranformation快速傅立叶变换IFFTInverseFastFourierTranformation逆快速傅立叶变换CFARConstantFalseAlarmRate恒虚警率SRIOSerialRapidI/O串行高速串口UDPUserDatagramProtocol用户数据协议EDMAEnhancedDirectMemoryAccess增强型直接存储器访问DMADirectMemoryAccess直接存储器访问PSTPacketSwitchingTechnology包交换技术APIApplicationProgrammingInterface应用程序编程接口XI 目录目录摘要........................................................................................................................................IABSTRACT........................................................................................................................III插图索引..............................................................................................................................V表格索引............................................................................................................................VII符号对照表.........................................................................................................................IX缩略语对照表.....................................................................................................................XI第一章绪论.........................................................................................................................11.1论文研究背景及意义.............................................................................................11.2国内外研究现状.....................................................................................................11.3论文主要内容及安排.............................................................................................2第二章雷达信号处理流程理论分析及其实现.................................................................52.1引言.........................................................................................................................52.2信号处理的理论仿真及其实现.............................................................................52.2.1脉冲压缩处理...........................................................................................52.2.2动目标检测...............................................................................................92.2.3恒虚警率检测.........................................................................................112.2.4点迹凝聚处理.........................................................................................142.2.5和差归一.................................................................................................162.3单目标跟踪的理论仿真及其实现.......................................................................182.3.1滤波...................................................................................................182.3.2滤波的工程实现...............................................................................192.3.3跟踪模块调试.........................................................................................212.4小结.......................................................................................................................22第三章雷达信号处理系统设计以及实现.......................................................................233.1引言.......................................................................................................................233.2系统总体设计.......................................................................................................233.2.1系统总体框架.........................................................................................233.2.2流水线进程.............................................................................................243.3系统数据传输设计...............................................................................................263.3.1信号处理的数据传输设计.....................................................................263.3.2数据处理的数据传输设计.....................................................................34XIII 西安电子科技大学硕士学位论文3.3.3多核任务间的数据传输设计.................................................................373.3.4信号处理机与上位机数据传输设计.....................................................433.4多核任务分配及多核通信..................................................................................463.4.1任务分配.................................................................................................463.4.2核间通信.................................................................................................493.4.3中断.........................................................................................................533.5小结......................................................................................................................55第四章系统设计中遇到的问题.......................................................................................574.1引言......................................................................................................................574.2脉冲压缩算法代码优化......................................................................................574.2.1脉冲压缩实现消耗时间过长.................................................................574.2.2消耗时间过长问题分析.........................................................................584.2.3代码优化解决方法.................................................................................584.3高速缓存一致性..................................................................................................624.3.1核间数据传输出现错误.........................................................................624.3.2数据传输错误问题分析.........................................................................634.3.3数据传输错误解决办法.........................................................................644.4核间通信错误......................................................................................................654.4.1信号量崩溃.............................................................................................654.4.2核间通信时间过长.................................................................................664.4.3核间通信失效.........................................................................................664.5小结......................................................................................................................67第五章工作总结与展望...................................................................................................695.1工作总结..............................................................................................................695.2工作展望..............................................................................................................69参考文献.............................................................................................................................71致谢.....................................................................................................................................73作者简介.............................................................................................................................75XIV 第一章绪论第一章绪论1.1论文研究背景及意义雷达通过发射无线电,利用目标对电磁波散射的回波信号进行雷达信号处理,从中检测目标并测定目标在空间的位置。雷达通过雷达信号检测流程检测出目标信息并从中提取出需要的目标信息,之后雷达对目标信息进行数据处理,对目标进行航迹关联、定位跟踪。火控雷达通过雷达检测系统与火力控制系统实现对准目标,能够准确把握目标速度与空间位置,以此对目标进行火力打击,因此火控雷达在防空武器系统中占据着重要位置。随着电磁波产品的日益增多,检测目标总是处于存在复杂干扰的环境中,这对雷达系统的工作带来了很大困扰,因此如何提高雷达在日益复杂的电磁波环境中检测出目标的能力已成为现代雷达研究工作的主要方向[1]。火控雷达作为繁多种类雷达中的一员,由于它和火力控制系统结合起来能够锁定需要攻击的目标,而在攻击过程中能保持对目标的跟踪,因此火控雷达在我国防空等领域的武器系统中占据着不可替代的位置。但火控雷达往往功能单一,导致一台雷达无法应对多种复杂多变的环境[2]。因此多功能一体化能够提升雷达应对复杂环境的能力,也成为现代雷达发展趋势。随着雷达技术的迅猛发展,雷达信号处理系统对数据实时处理要求很高、对处理数据的数据量也在变大,而传统的雷达系统由于整个系统功能单一、集成度低、功耗大、数据传输困难,已无法满足现代雷达的要求。现代雷达系统要求信号处理器的硬件平台具有高速处理数据、多核多线程并行处理、大容量数据存储与处理等特点。本论文结合某雷达信号处理机项目,项目采用现场可编程门阵列(FieldProgrammableGataArray,FPGA)+多片多核数字信号处理器(DigitalSignalProcessor,DSP)的处理板作为硬件平台实现雷达目标检测以及目标跟踪两部分。系统使用两片TI公司多核架构技术的TMS320C6678芯片为核心处理器,对火控雷达信号处理以及数据处理进行了软件设计与实现。该芯片具有八核并行处理功能,满足雷达系统多线程并行处理要求;拥有丰富的片上内存以及扩展内存,能够存储雷达系统大数据量;拥有多个高速串口,满足系统实时传输数据的要求。论文给出了雷达系统的整个设计实现以及部分关键技术的应用。1.2国内外研究现状自第一部雷达诞生以来,雷达技术发展突飞猛进,由原始的功能单一、准确率低到如今的多功能、多任务、一体化。二十世纪五六十年代,国外雷达技术发展迅速,由之前的功能单一、准确率低的雷达系统发展为同时能够进行目标检测、识别以及跟1 西安电子科技大学硕士学位论文踪预测的多功能雷达[3]。二十世纪八十年代左右,美国研制出了当时最先进机载火控雷达之一的AN/APG-66V雷达,具有体积小、重量轻以及可靠性高等特点;近年来,美国研制出AIM-9XBLOCK3红外格斗导弹,其射程可达20公里;美国雷神公司与波兰BumarElektronika公司联合研制出敌我识别系统,并被集成于AN/MPQ-53型和AN/MPQ-65型雷达,能够实现搜索、跟踪以及反电子干扰等功能,能够探测170公里;美国马丁公司为美国陆军制造了一批AN/TPS59A型雷达,该雷达可360度方位探测10~740公里,高度可达305公里。火控雷达在我国防空等领域的武器系统中占据着不可替代的位置。中国海军最早的火控雷达351型雷达,主要装备在海军鱼雷艇上,其工作在X波段,精确度较高,但是探测距离短;1978年设计定型并且投入批量生产的343型雷达可工作在X波段和Ku波段,该雷达一般工作在X波段,当遭到干扰后切换到Ku波段;2016年11月,珠海航展展出了由中电十四所研制的KLJ7A有源相控阵火控雷达,其采用了先进的固态有源相控阵,能够进行可靠的搜索以及多目标跟踪,可360度同时探测10个左右的目标。雷达技术的应用不仅仅被局限于军事设施,民用飞机、气象探测、船舶交通管制以及测量雷达等方面均采用雷达作为关键技术[4]。近年来,我国的雷达研制新科技不断创新和提高,研制水平也在提高,中国雷达技术已跻身世界前列。但在科技发展的同时,雷达面临的困难也在升级,科研人员需紧随国际先进技术步伐,与时俱进,争取为国家的防御系统做出更大的贡献。1.3论文主要内容及安排本论文结合某火控雷达信号处理机项目对基于多核处理器的火控雷达信号处理方法与实现进行论证研究,论文从火控雷达信号处理机的背景意义、理论分析及算法实现、系统设计和软件调试等多个方面进行了详细介绍与说明。同时对进行软件调试过程中遇到的突出问题进行了说明,并提出了改进方法,有效的解决了工程中诸多问题。论文分为五章,具体安排如下:第一章绪论,主要介绍课题基于多核处理器的火控雷达信号处理方法与实现的研究背景以及国内外发展现状。第二章雷达信号处理流程理论分析及其实现,该章节介绍了火控雷达信号处理的工作流程,并对其关键算法的理论进行说明,并且介绍了核心算法在DSP中的实现结果,并与MATLAB仿真结果作了对比;章节最后介绍了数据处理部分单目标跟踪的理论及DSP实现的流程,并给出了软件调试结果图以及验证算法实现的正确性。第三章雷达信号处理系统设计以及实现,根据项目需求,确定系统的总体设计、数据传输方法、任务的多核分配以及详细介绍多核通信的方法。该项目涉及多核间数2 第一章绪论据交互,采用增强型直接存储器访问(EnhancedDirectMemoryAccess,EDMA)数据传输方法,大大提高核间数据传输效率;同样涉及到FPGA与DSP间和DSP与DSP片间的数据交互,所以详细介绍了串行高速串口(SerialRapidI/O,SRIO)和Hyperlink高速接口;项目涉及到DSP与上位机的数据交互,所以详细介绍了以太网接口,使用用户数据协议(UserDatagramProtocol,UDP)与上位机进行通信。第四章系统设计中遇到的问题,主要结合在调试过程中遇到一些突出性问题进行分析并给出解决方法,例如如何解决多核之间数据传输出现高速缓存一致性的问题;算法运算时间过长,如何将代码进行并行处理和高效率优化代码;使用SYS/BIOS系统如何解决信号量崩溃、通信机制消失等问题。论文对这些问题进行了详细分析并给出解决方法,其解决方法为工程实现中的诸多问题提供了基础。第五章工作总结与展望,结合项目的完成进度总结了论文所做的工作,提出了系统现在的不足之处,以及项目在现已完成的基础之上,下一步的发展方向以及需要注意的一些问题。3 西安电子科技大学硕士学位论文4 第二章雷达信号处理流程理论分析及其实现第二章雷达信号处理流程理论分析及其实现2.1引言火控雷达实现的功能就是从回波信号中检测提取出目标的有用信息,并且根据这些目标信息进行点迹关联和预测,对目标进行跟踪、锁定并进行火力打击[2]。但是实际情况是空间中存在各种杂波以及干扰,因而导致雷达系统提取目标信息是很困难的,因此实现雷达信号处理流程最终的目的就是抑制杂波与干扰[5]。本章主要探讨的是线性调频信号,在该模式下,信号处理软件主要包括回波信号的脉冲压缩处理、动目标检测、恒虚警、点迹凝聚、和差归一等[4]。雷达系统根据信号处理部分凝聚出来的目标信息进行数据处理。雷达系统的数据处理主要是滤波方法的介绍以及实现。在本章节主要介绍信号处理和单目标跟踪的理论分析及其在DSP中的实现,并且利用MATLAB进行理论仿真,根据仿真结果与DSP实现的结果进行对比,验证算法实现的正确性。2.2信号处理的理论仿真及其实现2.2.1脉冲压缩处理根据雷达信号处理基础可以知道:雷达发射脉冲的能量越大,其探测距离就会越大;然而当发射脉冲的带宽越短宽,雷达具有越大的分辨率,而提高探测性能意味着要求更大的时宽。因此分辨率与探测性能是一个耦合的关系,而简单脉冲信号只有一个有效的自由变量,无法满足二者兼得的要求。现代雷达系统为了能够满足探测距离的同时,又能满足距离分辨率的要求,那么就要求信号要具有大时宽带宽积,而脉冲压缩波形能够满足这一要求[6],它能够满足探测性能的前提下,也能够满足分辨率的要求。脉冲压缩处理能够实现将发射的宽脉冲信号压缩处理后得到窄脉冲信号。雷达发射的宽脉冲信号能够提高信号的平均功率以及雷达的探测性能,脉冲压缩处理后的窄脉冲信号又能够满足距离分辨率,项目中采用的发射信号为线性调频信号,线性调频信号一般表示为:2j2fttj20.5ft0utxtuteArecte0(2-1)公式里面为发射脉冲的时宽,是调频的斜率,B为脉冲信号的调频带宽,DB代表的是信号的时宽带宽积,也是压缩比[3]。5 西安电子科技大学硕士学位论文项目中脉冲压缩模块的算法主要实现将线性调频信号的回波数据进行匹配滤波的作用,最终将宽的回波信号压缩成窄的脉压信号。而脉冲压缩算法的工程实现有两种想法:一种在时域里面完成卷积运算;另一种在频域里面完成相乘运算[7]。时域中的脉冲压缩处理采用的是卷积运算实现自先关处理;由数字信号处理知识可知,时域内的卷积运算对应的频域中乘法运算。项目中采用了在DSP中更容易被实现的方法:频域里面进行脉冲压缩,其实现方法是需将回波信号作快速傅立叶变换(FastFourierTranformation,FFT),之后与经过FFT处理后的滤波器系数进行复数相乘运算,最后再次经过逆快速傅立叶变换(InverseFastFourierTranformation,IFFT)得到最终的脉冲压缩结果,其具体操作如图2.1所示的频域实现线性调频信号脉冲压缩的方框图。为了能够降低旁瓣的影响,项目对调频信号进行了加窗处理[8],为了能够节省运算时间,提前利用MATLAB产生滤波系数,并且滤波系数需要进行加窗和FFT算法处理,即:HfFFTsnn(2-2)公式中的()n窗函数。MATLAB将生成的H(f)导出、存储到项目工程的根目录下,因此只需要在系统初始化时读取一次就可以重复使用。同样在FFT运算以及IFFT运算中需要的蝶形因子和旋转因子,只需要在系统初始化时生成,之后再次用到时不需要再次产生。Sr(n)Sr(f)Y(f)So(n)FFTFFTH(f)图2.1线性调频脉冲信号数字处理框图脉冲压缩算法在DSP中实现的具体流程图如图2.2所示,具体步骤如下:1、程序初始化,第一次执行算法时首先加载对应的滤波系数以及生成对应的蝶形因子和旋转因子;2、根据数据的包头信息判断进行脉冲压缩数据个数,转移对应的数据,数据不足2n个数的补零;3、对数据进行FFT处理,并且保存数据;4、将处理后的数据与之前加载的滤波系数进行复数乘法运算,为了节约本地L2的空间,得到的结果覆盖掉之前存放原始数据;5、再次调用IFFT子函数,将数据进行处理得到最终的脉压数据并保存在输出缓6 第二章雷达信号处理流程理论分析及其实现存中。开始初始化,滤波系数等数据加载调用FFT函数,将数据FFT变换调用复乘函数,将数据与匹配系数相乘调用IFFT函数,将数据进行IFFT变换结束图2.2脉冲压缩实现流程图工程实现中,函数PC(float*restrictINBUF,float*restrictptr_w,float*restrictptr_w_ifft,float*restrictcoeff,float*restrictOUTBUF,unsignedintN)是实现DSP中脉冲压缩算法,INBUF代表输入数据的地址;ptr_w和ptr_w_ifft存放的是进行FFT和逆FFT需要的旋转因子;coeff存放的是脉冲压缩的滤波系数;N代表的是脉冲压缩的点数。项目中调试采用了512点复数回波信号进行了调试,如图2.3为分别利用MATLAB软件仿真和DSP硬件处理后的效果对比图,从图中可以知道DSP实现该算法的正确性。图2.3中(a)仿真图为MATLAB仿真的结果图,(b)图展示的是脉冲压缩算法在DSP实现的结果,二者采用的数据都是一样,并且算法流程也是一样的。从二者对比图中可以看出DSP实现的结果与MATLAB仿真的结果是一样的,因此DSP实现满足项目需求。7 西安电子科技大学硕士学位论文(a)MATLAB实现脉冲压缩(b)DSP仿真脉冲压缩图2.3MATLAB仿真脉压与DSP实现脉压对比表2.1给出了利用DSP进行不同点数脉压算法所消耗的时间,内核频率采用的是1GHz。从下表中可以看出来,脉冲压缩点数比较小的时候,算法中的复数相乘消耗了大部分的时间,FFT算法以及IFFT算法是官方提供的。脉冲压缩模块实现512点的脉冲压缩算法消耗了19.705s,消耗时间满足系统的指标要求。表2.1不同点脉冲压缩算法消耗时间点数消耗周期时间(s)5121970519.70510242481624.81620484413244.13240968226482.2648 第二章雷达信号处理流程理论分析及其实现2.2.2动目标检测动目标检测是通过多普勒滤波器组来抑制各种杂波的一种技术,它是对多个回波信号进行相参积累,能够提高雷达在噪声与杂波背景下检测运动目标的能力和系统信噪比[4]。运动的目标由于多普勒效应能够使回波信号在频谱上有相应的偏移,而杂波信号在频谱上表现出的偏移与运动目标的偏移相差很大,所以动目标检测是在频率上对运动目标和杂波进行区分[9],进而能够实现对杂波和干扰的抑制以此达到检测目标的目的。动目标检测实现本质是在回波信号的多普勒维进行匹配滤波处理,是通过多普勒滤波器组来实现[10],滤波器组中不同的窄带滤波器可以将不同的多普勒速度目标区分出来。工程实现中一般有两种方法实现动目标检测:其一是利用FFT变换;其次是FIR滤波器[10]。在本项目中采用的是FFT变换的方法来实现动目标检测。在DSP中进行动目标检测之前,为了能够降低滤波器旁瓣的影响并提高雷达系统检测能力,需要对回波数据进行加窗处理。为了减少算法运行的时间提高效率,汉明窗的系数以常数的形式直接存储在内存中,程序运行时,直接对其进行读取操作;同理,FFT变换需要蝶形因子以及旋转因子等系数也是在系统初始化时产生并且存储,之后算法直接进行读取;之后进行动目标检测算法,首先对数据进行加窗处理,加窗完毕之后对其进行FFT转换,等到所有的数据进行了FFT转换之后,再对整个矩阵进行转置操作。动目标检测算法在DSP中实现的流程图如图2.4所示,具体流程如下:1、系统初始化,其中包括EDMA初始化,中断初始化,中断任务初始化,以及窗系数初始化;2、等待前方数据通过EDMA传输过来并触发中断,数据传输过程中实现了数据转置操作,节省了核心处理时间;3、进行多普勒维的加窗和FFT变换,将多个脉冲的相同距离单元的数据提取出来,并且进行加窗处理之后,进行FFT变化;4、判断是否所有距离维的数据都已进行了处理,如果未完成,则跳转至上一步继续;如果处理完毕,结果进行相应的转置,并且存储。工程中函数MTD3(intpulsenum,intfft_num,float*restrictMTDIN,float*restrictbuff,float*restrictMTDOUT,float*restricttwid,constfloat*hanning,float*restrictdsp_mtd_out)实现了动目标检测的功能,其中pulsenum表示了一帧数据里面的脉冲数目;fft_num代表了一条脉冲里面有多少个复数点;MTDIN代表着输入数据的首地址;buff表示加窗处理的中间缓存;MTDOUT代表着中间数据缓存的首地址;twid存放的是需要的旋转因子;hanning代表存放窗系数的首地址;dsp_mtd_out存放最终结果的首地址。9 西安电子科技大学硕士学位论文开始初始化,加载窗系数等待DMA中断将数据与窗系数相乘进行FFT变换否是否全部完成?是结束图2.4动目标检测流程图图2.5展示了动目标检测仿真图与DSP实现的结果图对比。图中的结果采用的是MATLAB产生的数据,仿真了一帧数据,一帧数据中包含了32个脉冲,每个脉冲中512个复数点。其中把一帧数据利用MATLAB导出,并放入DSP工程目录下读取。回波数据在DSP中进行了动目标检测算法处理之后导出,与MATLAB理论仿真的仿真图做对比。图中(a)仿真图为MATLAB仿真的动目标检测结果,(b)图为DSP实现的结果图,从二者的结果显示来看,DSP实现的动目标检测处理结果与电脑仿真的结果一样,因此DSP实现动目标检测算法模块满足项目需求。10 第二章雷达信号处理流程理论分析及其实现(a)MATLAB仿真动目标检测(b)DSP实现动目标检测图2.5MATLAB仿真MTD与DSP实现MTD结果对比2.2.3恒虚警率检测雷达一直都是工作在充满各种干扰与杂波的背景下,这些干扰和杂波除了系统内部的热噪声,还有地面杂波以及天气影响带来的杂波干扰,生活中的各种电磁产品干扰以及敌人人为施加的干扰[11]。雷达回波信号经过之前的动目标检测之后,虽然对一些慢速杂波起到了抑制作用,但是当杂波干扰强度比较大时,处理后的信号依然存在杂波,而其中强度比较大的杂波信号会被当成目标信号,因此常常造成系统虚警。为了能够使系统更加方便观察回波信号的变化,提出了自动检测雷达系统。自动检测雷达系统不需要人为干预的情况下,能够实现自动检测出目标并且能够保持虚警率稳定,雷达系统可以实现同时处理多批目标。传统固定门限的检测方法能够根据目标所处的实际情况计算得出一个门限值,该门限一经确定就固定不变,因此该方法在面对复杂多变的环境时有很大的局限性,例如,过高的门限值会导致检测目标的丢失,出现大量漏警情况;过低的门限值,系统会将比较大的噪声当成目标,导致出现大量虚警的情况。为了能够应对复杂多变的环境以及更加方便准确的检测出目标,提出了恒虚警率,该算法能够根据不同的目标背11 西安电子科技大学硕士学位论文景来产生不同的检测阈值来应对复杂的环境,以此来保持虚警率的恒定[12]。对于雷达系统,其内部的噪声一般是服从于高斯分布的[13],而当杂波和高斯噪声经过窄带线性系统后,它们的概率密度函数均服从于瑞利分布,而瑞利分布的概率密度函数如式(2-3)[14],而将T作为门限值,可以计算出超过门限值的恒虚警概率式(2-4)如下:2xxfxxexp,0(2-3)22222xxTPfaT2exp2dxexp2(2-4)222Ta式(2-4)中,令a表示电压相对值,因此式(2-4)化简可以得到Pfaexp,因2此可以得出虚警概率与式中的门限因子a相关。项目中恒虚警率检测采用的是单元平均恒虚警率(ConstantFalseAlarmRate,CFAR)算法,如图2.6所示,该算法能够起到防止检测单元能量的泄露,将检测单元与之左右相邻若干单元作为保护单元,而对检测单元左右两边的若干参考单元进行实时计算求和得出检测点杂波平均值的估计值,求出来的估计值乘上一个门限系数K0,得到此时相对应的阈值门限[12]。输出裁决M个参考单元M个参考单元输入信号保护检测保护……...单元单元单元求和平均值求和平均值求和平均值门限系数K0图2.6单元平均恒虚警检测框图在DSP工程实现中,恒虚警率检测模块主要包括了求模和恒虚警检测两部分。12 第二章雷达信号处理流程理论分析及其实现其实现的流程图如图2.7所示,具体流程如下:1、等待MTD结果,进行求模。为了节约核资源以及提高系统整体处理能力,动目标检测算法与恒虚警率检测算法在同一个核内进行。当该核完成动目标检测之后,处理结果备份储存在内存之中以备之后进行和差归一等算法,另外将动目标检测结果进行求模计算;2、进行恒虚警检测。在该算法下,之前进行了求模计算的数据会进行恒虚警检测,从中检测出符合条件的目标。该算法是从数据两端同时并行运行,大大缩短了运行时间;3、通知核进行下一算法。检测出的数据信息进行存储,并等待进行点迹凝聚算法。开始MTD结果存储,调用求模函数求模恒虚警函数两端进行检测提取目标信息,进行存储结束图2.7恒虚警率检测流程图函数CFAR4(float*inbuff,float*outbuff,intpro,intref,intlength,intdoppler,floatk,int*row_lie,int*count)实现了对求模后的数据进行恒虚警检测处理,inbuff代表着需要处理的数据的首地址;pro,ref分别代表着保护单元和参考单元的数目;length代表着单脉冲里面距离维的长度;doppler代表着一帧数据里面有多少个脉冲数目;k代表着门限系数;row_lie代表着存放检测出的目标的距离维和多普勒维的位置;count代表着检测出目标的个数。图2.8展示出了恒虚警率检测仿真图与DSP实现的结果图对比。图中的结果采用13 西安电子科技大学硕士学位论文的是MATLAB产生的数据,仿真了一帧数据,一帧数据中包含了8个脉冲,每个脉冲中512个复数点,这些数据是经过之前动目标检测之后的结果。其中把一帧数据利用MATLAB导出,并在DSP中读取。经过DSP将数据进行了恒虚警率检测处理之后导出,与电脑仿真图做对比。(a)MATLAB仿真恒虚警率(b)DSP实现恒虚警率图2.8恒虚警率检测MATLAB仿真与DSP实现从图中的结果显示来看,DSP实现的恒虚警率检测处理结果与电脑MATLAB仿真的结果一样,从而验证了DSP实现恒虚警率检测算法的正确性。该模块符合项目需求。2.2.4点迹凝聚处理回波数据经过了恒虚警率检测之后,虚警概率会大大降低。根据采样定理,对于带宽为B的信号进行采样后的数据能够还原出原始信号所携带信息的条件:采样频率14 第二章雷达信号处理流程理论分析及其实现需要满足fs≥2B,而在实际工程中,为了能够提高采样信号的质量一般会使采样频率fs>2B,因此实际中采样间隔小于信号宽度(1/fs<1/2B),所以对于同一个目标点将会包含多个采样点,而经过恒虚警率检测之后,可能会使得同一个目标保留下来多个点。所以需要对经过恒虚警率检测后的数据进行目标区分操作,将同一个目标的多个点凝聚成最能反映出真实目标轨迹的点,区分掉虚假的目标[15]。点迹凝聚处理是对经过恒虚警率检测后的回波数据进行处理,在工程实现中该算法实现采用的是线性汇编语言,为了能够更大程度上减少算法运行时间,根据汇编语言在不同运算单元中进行,将线性汇编语言进行了并行处理;并且为了减少算法本身的运算量,已经被区分出来的目标将会被另行储存,并且将原始数据中的目标信息抹除掉,以便于下次进行目标区分时,不需要对其进行重复处理。工程实现中点迹凝聚流程图如图2.9所示,其具体步骤为:1、从恒虚警率检测出来的目标中寻找出其中最大幅值点,使其作为第一个目标点,抹除原始数据并对目标另行存储;2、通过函数提供窗的长度确定目标在距离维以及速度维两个方向的作用范围,确定目标的窗;3、将剩余的目标点进行点迹融合算法处理,判断剩余的目标点是否处于该目标的窗之内,如果目标点处于该目标的窗之内,则抹除相关信息进行下一个目标点的判断;否则保留该点信息,进行下一个点的处理;4、判断所有的点之后,重复上面的步骤,直到所有的点信息被抹除完之后,算法结束。函数ningju(float*inbuff,int*row_lie_s,intcnt,float*outbuff,int*row_lie_D,int*cnt1,intduopule,intjuli);实现了对恒虚警率检测后的数据进行点迹凝聚的处理功能,其中inbuff是存储原始数据的首地址;row_lie_s是存储原始数据目标的多普勒和距离信息的首地址;cnt表示的是原始数据中的目标个数;outbuff是存储凝聚之后的目标幅值信息;row_lie_D是存储凝聚之后的目标的多普勒和距离信息;cnt1代表的是点迹凝聚后的数据的个数;duopule、juli两个整数分别表示多普勒维和距离维窗长度。根据工程实现的调试结果与电脑MATLAB仿真的结果相对比,该函数算法能够实现点迹凝聚的处理效果,并且凝聚出来的目标信息与MATLAB仿真的结果一样,因此满足项目要求。15 西安电子科技大学硕士学位论文开始查找出幅值点最大的目标信息判断剩余的目标是否在窗内否是将数据保存,等将数据去除,防止二次待下次判断判断否数据判断完否?是结束图2.9点迹凝聚流程图2.2.5和差归一和差归一模块主要实现将回波信号中和通道信号以及差通道信号通过相应的除法运算得到归一化的误差信号。在单脉冲测角雷达中,角误差的值能够确定检测目标的角度信息。根据目标与天线的跟踪轴线的位置关系,能够得到目标的角度信息。当目标处在雷达天线的跟踪轴线上的时候,目标对应的俯仰角角度误差以及方位角角度误差理论上应该为零;但是当目标不在雷达天线的跟踪轴线上的时候,目标所对应的俯仰角角度误差以及方位角角度误差不再为零,因此单脉冲雷达是通过和差信号的幅度比值来确定目标背离跟踪轴的位置的,从而确定目标的俯仰角角度误差和方位角角度误差[16]。设回波信号和信号为=+IjQ,回波信号差信号为=+IjQ,则归一化误差信号为:IjQ+IjQ+IjQ+IjQ(2-5)IjQ+IjQIIQQ++jQIIQ22IQ+现代雷达不需要先对和差通道信号进行包络检波,而是直接将和差通道信号的复16 第二章雷达信号处理流程理论分析及其实现包络进行提取归一化误差信号,则:*RealIIQQ+==(2-6)222IQ+如图2.10所示,和差归一在DSP中实现的流程,具体实现方法是:1、和通道将点迹凝聚出来的目标信息传递给进行和差归一算法的核,该核接收到和通道凝聚出来的目标信息之后,根据目标的多普勒信息和距离信息从俯仰差通道中提取出目标对应的俯仰差信号复数信息以及方位差通道里面对应目标的方位差信号复数信息数据提取出来;2、利用上面提供的式子进行相除得到俯仰角误差以及方位角误差;3、将最后的结果存储;4、判断此时所有的目标是否有剩余,如果有,则跳转至1继续该流程;否则结束。和差归一模块提取目标个数,循环提取目标点和差路信息根据角误差公式计算角误差保存角误差值否判断是否所有目标完成?是结束图2.10和差归一模块流程图该模块算法经过DSP编程实现并通过调试,其调试计算与MATLAB仿真的最后结果是一样的,因此此模块满足项目需求。17 西安电子科技大学硕士学位论文2.3单目标跟踪的理论仿真及其实现雷达回波信号经过雷达信号处理流程之后凝聚出目标点,火控雷达信号处理机的数据处理芯片会根据这些目标点进行相关处理[17],从中找出能够跟已经存在的航迹进行关联的点迹,以此信号处理机达到探测、跟踪的功能[18]。某火控雷达信号处理机项目中使用滤波方法对已处理的目标点进行相关滤波跟踪。由于滤波器算法容易工程实现以及计算量小的优点,常常被作为工程应用上首选的滤波方法。2.3.1滤波滤波器是一种适用于进行匀速直线运动目标的稳态滤波器,它可以根据当前时刻的观测值以及前一时刻的预测值进行相应的滤波操作之后,得到该时刻的目标状态估计[3]。假设在某一个k时刻,已知此时刻目标的位置信息是Xk以及速度信息是Vk,该时刻得到目标的观测值为Zk,而下一个时刻k1时刻的目标位置预测值为Xkk1/以及速度预测值为Vkk1/,系统中数据的时间更新率为T。滤波器的滤波增益系数和。因此可以得到滤波方程为:XXkkkXkk/1/1[Z]k(2-7)VVkkkZX/1kkk/1(2-8)T预测方程为:Xk1/kXkTVk(2-9)VVk1/kk(2-10)由于滤波器的滤波系数和可以离线计算,可利用MATLAB生成并导出、放入到DSP工程的目录下。因此在DSP系统初始化时,将导出的系数存储在内存之中,滤波过程中直接进行调用。而在工程中,常使用的自适应跟踪算法来计算、增益系数,其确定方法如下[19]:22k16kk,(2-11)kk11kk18 第二章雷达信号处理流程理论分析及其实现其中k可以理解为目标所处在的时刻,对于来说,k应该从1开始计算;而对于来说,k值应该从2开始计算。在实际应用中,、是变化的,但是当系统稳定跟踪之后,、值将会保持不变。2.3.2滤波的工程实现在工程实现中,雷达回波信号经过信号处理流程之后所凝聚出来的目标点数可能会出现多种情况,例如零个、一个或者是多个。因此系统在对目标进行跟踪时,需要根据不同的情况来满足项目需求。对于存在多个目标的情况,系统需要进行目标判断,选择其中一个目标作航迹关联;对已经选择好的目标,系统需要根据实际情况来判断是进行航迹建立还是进行航迹的关联操作;对于不符合航迹的目标点,系统做出相应操作。以下是项目中实现跟踪过程的几个要点:1、航迹建立。首先应该考虑航迹建立所需要的点数,项目中滤波操作主要是对目标的距离进行操作,而目标的速度信息需要在建航开始时需根据至少两个目标点之间的距离差进行计算得到。而为了能够使航迹建立更准确,在本项目中采用的是三点建航。三点建航不仅能够得到更加准确的目标,更因为该方法是工程上经验选择;2、在波门的选择方面,建航开始时一般会将波门设置的大一些,这样能够保证在跟踪不稳定时期不会因为虚警的存在把真实的目标给漏掉;而当航迹建立时,系统由于刚刚进入航迹关联时期,仍然处于不稳定跟踪状态,因此波门的设置同样设置大一些,但是要比航迹建立时的波门小;当跟踪系统进入到稳定跟踪时期,需要根据检测到的目标运动状态来设置合适的波门,该波门应为小波门;3、针对同一帧数据中存在多个检测目标,采用最邻近目标法来确定感兴趣的目标。实际工程中,一帧回波数据往往会凝聚出多个目标点,该系统针对的是单目标跟踪,因此需要确定多个目标中某一个目标为所需要的目标点。最邻近目标法是从多个目标点中选出距离目标预测位置最近的点,还要判断该点是否满足波门要求;如果此时选出的点不满足波门的要求,则标记为目标丢失;如果满足波门选择,则该点为航迹点;4、系统允许目标丢失的次数。由于检测目标所处的环境存在各种物体的干扰,这些干扰的存在可能导致检测出的目标点并不处于波门范围之内,因此会被系统判定为目标丢失;而当干扰消失时,检测出的目标点可能依然保证该航迹的有效性。因此系统能够允许目标连续丢失多次,在次数允许范围之内,检测到的目标点依然能够重新关联航迹,该方法能够一定程度上提高雷达系统的抗扰能力。根据以上几个要点,确定单目标跟踪模块主要流程如图2.11所示,整个流程主要分为两大部分:其一航迹建立,目标点与航迹关联;其二航迹未建立。其步骤如下:步骤1,进入单目标跟踪模块,首先判断航迹是否建立,如果此时航迹已经建立19 西安电子科技大学硕士学位论文则进行目标点判断:(1a)判断该帧目标是否为0,如果为0,系统则丢失次数加一,并判断是否取消建立的航迹;反之,执行下一步处理;(1b)采用最邻近目标法,确定该帧中所感兴趣的目标点;(1c)滤波处理。首先判断选择出的目标点是否满足波门,如果不满足波门范围,则判断为丢失目标,根据丢失次数判断是否需要重新建立航迹;如果满足波门范围,则进行滤波处理并且存储相应的标志位,退出程序。如果航迹未建立,进入步骤2;步骤2,此时航迹未建立,此时判断目标点的个数是否为0,如果为0,则将标志位修改并退出程序;否则进入步骤3;步骤3,航迹建立。系统采用的是三点建航法,因此航迹未建立时状态分为以下几个小步骤:(3a)判断是否已经存在建航第一点,如果不存在,该帧进行建航第一点的确认;否则执行下一步;(3b)判断是否已经存在建航第二点,如果不存在,该帧进行建航第二点的确认;否则执行下一步;(3c)建航第三点判断。将上一次存储的目标信息取出,判断此帧目标点是否满足波门,如果满足,则将该点作为航迹第三点,并且求出速度信息;否则,航迹建立标志位仍然处于之前的状态,判断下一次是否满足建航要求。开始NNYY航迹建立目标个数是否为0是否存在第一点是否存在第二点YYNN判断是否需要滤波该次目标作为航迹该次目标作为航迹该次目标作为航迹标志位修改退出等跳转第一点,判断第二点,判断第三点,判断参数修改及滤波处理目标信息存储结束图2.11单目标跟踪模块流程图20 第二章雷达信号处理流程理论分析及其实现2.3.3跟踪模块调试为了得到滤波所需要的目标信息,采用的方法是利用MATLAB产生匀速运动目标的原始信息。将该数据导出并放入DSP工程的目录下以便在DSP中实现滤波,同时将该数据仿真出滤波的最后结果,并将仿真的结果与DSP实现的算法所产生的结果做对比,验证DSP实现算法的正确性。如图2.12所示,图中仿真的目标初始距离为r0=7000m,目标的初始速度为2vms1000/,目标的加速度ams0/,目标数据的更新率为Ts0.002,误差012dem5。根据以上信息可以得到目标各个时刻的运动轨迹为:rrvtat,由002于加速度为零,因此目标的真实轨迹为rrvt。00图2.12MATLAB仿真结果与DSP实现结果对比图从图2.12可以知道,由于误差的存在,导致观测轨迹与目标的真实轨迹有很大的差距,而当目标信息经过滤波之后,滤波结果明显与真实轨迹更为接近,有效实现了雷达系统对目标跟踪。因此滤波对匀速目标可以准确的进行跟踪。从图2.12中也可以发现经过DSP滤波处理后的数据与电脑仿真的滤波结果之间基本重合,在图2.12中无法分辨出。为了验证DSP处理数据的正确性,图2.13展示DSP实现结果与电脑仿真结果相对误差,从图中可以知道二者之间有微小差距,二者5之间的相对误差最大的时候不超过1.410%,由于电脑仿真所使用的数据为双精度21 西安电子科技大学硕士学位论文浮点数,而在DSP中运算使用的是单精度浮点数,所以导致最后的结果有微小的差距。因此根据以上结果分析可以得出结论:在误差允许范围之内,该模块算法实现满足项目要求。图2.13DSP实现结果与电脑仿真结果相对误差2.4小结本章节结合某火控雷达信号处理机项目主要探讨了火控雷达信号处理的主要流程,对流程的理论进行了分析与MATLAB仿真。在该理论基础之上,完成了DSP的算法实现,并将算法实现处理的结果与之前MATLAB仿真的结果做对比验证算法实现的正确性。将各个主要流程进行了模块化,为之后的系统设计提供了基础。最后对项目中涉及到的单目标跟踪知识进行了理论分析以及给出了工程实现的主要步骤,重点将滤波方法在DSP中的实现做了阐述,并且将DSP处理结果与电脑仿真结果做了对比,验证了算法实现的正确性。22 第三章雷达信号处理系统设计以及实现第三章雷达信号处理系统设计以及实现3.1引言本章以某火控雷达信号处理机项目为背景并结合信号处理板硬件资源,首先根据项目需求,确定系统的总体设计、数据传输、多核分配以及详细介绍多核通信的方法。TMS320C6678芯片本身具有多核[20],需要根据系统的总体设计进行任务分配;之后对项目中的数据传输方法作了详细介绍,项目中涉及到跨核进行数据交互,采用EDMA数据传输方法,大大提高核间数据传输效率;项目涉及到FPGA与DSP间之间进行数据传输,因此详细介绍SRIO串口的配置使用[21];项目涉及到DSP与DSP片间的数据交互,所以详细介绍了Hyperlink高速接口[22];项目涉及到DSP与上位机的数据交互,所以详细介绍了以太网接口,使用UDP协议与上位机进行通信。设计一个复杂过程的系统,往往需要将整个系统分解为多个任务模块,模块之间需要相互通信与同步才能使得这些不同的模块任务有条不紊的执行,论文对任务分配与通信作了详细介绍,并且项目中采用了SYS/BIOS实时操作系统[23]。3.2系统总体设计项目中使用的信号处理板主要包括一片高性能的FPGA和两片TI公司TMS320C6678多核DSP,为了能够体现出高并行的流水线功能,板卡整体布局采用的是FPGA通过SRIO串口与DSP0进行数据传输;DSP0与DSP1芯片之间采用的是Hyperlink高速串口进行数据交互;DSP1与上位机之间的通信,采用的是以太网接口。TMS320C6678DSP每片包含八个核,每个核可以独立运行任务[24];每个核包含两组通用的寄存器文件组(A和B),它们能够允许一个核同时高效进行多种运算,确保了并行处理的基础[25];该DSP芯片多核的特点能够保证一片6678DSP能够高效并行处理一个任务或者同时进行不同的任务的合理性,因此只要合理安排芯片和每个核的任务就能够使板卡发挥出高并行的流水线功能。3.2.1系统总体框架该项目主要任务是实现雷达信号处理流程以及单目标跟踪滤波,根据系统的主要算法以及流程,分析出每个模块任务的运行要求和特性。依据板卡资源,确定项目总体框架是FPGA接收前端传输过来的回波数据,进行简单处理后通过高速接口SRIO将数据传输给第一片6678DSP进行雷达信号处理流程[21],之后DSP0将处理后的数据通过Hyperlink高速串口传输给DSP1进行数据处理[22],DSP1可以将处理后的数据23 西安电子科技大学硕士学位论文通过以太网接口传输给上位机,这样将该信号处理板划分为二级流水线处理。该论文主要讲述雷达信号处理在多核处理器中的实现,所以FPGA部分不做详细介绍。如图3.1所示,信号处理板的资源以及芯片间的连接方式,其中FPGA与两片DSP之间都用SRIO连接以备各种情况;主DSP可以通过Ethernet与上位机进行通信;两片DSP之间直接使用Hyperlink高速串口相连。图3.1信号处理板资源结构3.2.2流水线进程根据雷达信号处理板资源以及雷达系统整个流程得出以下系统结构的总体框架:首先,雷达信号处理系统首先通过SRIO串口接收前端FPGA传输的数据;其次,当FPGA完成数据传输任务后,FPGA利用SRIO串口会向后端的DSP0发送一个门铃包;DSP0接收到来自于FPGA的门铃后,通过解析门铃包触发DSP0片中相应事件,事件触发核0的中断,而中断使DSP0进行相应的中断响应任务,该响应任务通过识别发送过来的数据的包头,进行状态识别,根据不同的状态标识进入不同的工作模式;24 第三章雷达信号处理系统设计以及实现之后,经过DSP0完成了信号处理流程,也就是该系统的一级流水线处理,DSP0通过Hyperlink高速串口将处理后的数据发送到DSP1的相对应的内存区,并且通过Hyperlink向DSP1发送一个中断包告知DSP1数据传输完成[26],DSP1进行相应的数据处理,进行单目标跟踪滤波;最后,当DSP1完成数据处理整个流程后,通过以太网网口,利用UDP协议,向上位机发送处理之后的数据,于此整个系统完成信号处理的任务。从描述中不难发现,整个流程因为在不同的芯片上独立完成,并且处理中的数据并无交互性,所以DSP0与DSP1处理流程可以达到流水线操作。流水线流程图如图3.2所示。SRIO接数据1数据2数据3数据4数据5数据6数据7数据8……收数据接收接收接收接收接收接收接收接收DSP0数据1数据2数据3数据4数据5数据6数据7……处理处理处理处理处理处理处理Hyperlink数据1数据2数据3数据4数据5数据6……接收数据接收接收接收接收接收接收数据1数据2数据3数据4数据5……DSP1处理处理处理处理处理网口发送数数据1数据2数据3数据4……据发送发送发送发送图3.2系统流水线示意图从图3.2系统流水线示意图可以分析出:只要两片DSP进行的任务所需要的数据在处理进程中不会出现交互影响,那么该系统的两片DSP能够同时进行数据处理。每片DSP都能够做到在接收此时刻数据的同时,能够将上一时刻收到的数据进行处理。只要前端数据不断发送过来,该系统能够稳定进行下去,充分发挥出该系统的流水线操作。火控雷达信号处理机的处理流程主要包括脉冲压缩、MTD(动目标检测)、CFAR(恒虚警率)、点迹凝聚、和差归一以及单目标跟踪等任务。结合DSP本身资源特点以及处理机处理流程的特点,将这些任务模块分配给两片DSP来完成。图3.3给出了软件的任务规划。从图3.3的处理流程图中可以看出,两片DSP的任务分别为:1、DSP0:DSP0主要任务是信号处理,它接收前端传输过来的三路回波信号,将和路回波信号进行脉冲压缩、动目标检测、恒虚警、点迹凝聚,而另外两路差回波信号进行脉冲压缩、动目标检测算法处理;DSP0根据和路凝聚之后的结果从两路处理后的差回波信号中找到对应的俯仰差和方位差数据,通过三路回波信号数据进行和差归一的处理得到方位角和俯仰角;DSP0将目标的各种信息(距离信息、多普勒信息、25 西安电子科技大学硕士学位论文三路回波信号数据、方位角、俯仰角等)整合并通过Hyperlink高速串口传输给下一片DSP1;2、DSP1:DSP1主要任务是数据处理,它通过Hyperlink串口接收前面DSP0传输的数据,并且进行数据整理之后,进行单目标跟踪算法处理,并将最终结果通过以太网网口模块传输给上位机。脉冲压缩MTD恒虚警点迹凝聚DSP0信号处理和差归一数据整理上单目标跟踪位机DSP1信息处理图3.3软件处理流程图3.3系统数据传输设计雷达信号处理机由于需要进行FPGA与DSP之间数据交互、DSP片间数据交互以及DSP与上位机之间进行数据交互,所以本小节主要对数据传输所需要的三种串口设计进行介绍:SRIO接口,用于DSP与FPGA之间进行高性能、高可靠数据传输;Hyperlink接口,用于DSP与DSP片间进行高速串行传输数据;千兆以太网,用于DSP与上位机进行UDP协议的数据传输。3.3.1信号处理的数据传输设计DSP0实现信号处理功能,需要进行信号处理的数据来自于前端FPGA,因此本小节主要介绍信号处理数据传输串口—SRIO的设计方法。(1)SRIO介绍SRIO是基于包交换技术新的一代高带宽的高速串行接口,它的特点是面向嵌入式系统开发,面向串行背板、DSP与相关设备进行数据平面连接的主要串行接口。在TI公司生产的6678DSP中SRIO串并模块有能够自主转换的4X链路,这四26 第三章雷达信号处理系统设计以及实现个链路模块可以根据用户需要配置成多种模式,如表3.1所示。表3.1串并通道配置成不同的接口通道A通道B通道C通道DMode01X配置1Mode01X1X配置2Mode12XMode01X1X1X1XMode11X1X2XMode22X1X1X配置4Mode32X2XMode44X当被配置成为1X模式时,该端口将会占用一个传输通道和一个接收通道,核心通过确定serdescfgpll、cfgtx和cfgrx寄存器使端口运行在正常的传输速率上;当被配置成为2X模式的时候,该端口将会占据1X模式两倍的通道资源,同理此时端口传输速率也会成倍增加;4X模式的配置将会使该端口占用A、B、C和D四条通道,并且传输速率能够达到1X模式的四倍。每个端口数据传输速率有1.25Gbps、2.5Gbps、3.125Gbps和5Gbps四种选择。图3.4给出了1X和4X模式的接口框图,从图中也可以看出来1X模式只是占用了一套收发通道;而4X模式用到了4套收发通道。为了达到更加理想的传输效率和满足项目需求,在该课题中采用的是4X模式。27 西安电子科技大学硕士学位论文1XDevice1XDeviceTD[0]RD[0]TD[0]RD[0]RD[0]TD[0]RD[0]TD[0](a)SRIO1X模式设备间接口框图4XDevice4XDeviceTD[0-3]RD[0-3]TD[0-3]RD[0-3]RD[0-3]TD[0-3]RD[0-3]TD[0-3](b)SRIO4X模式设备间接口框图图3.4SRIO设备间接口框图C6678DSP的SRIO支持两种传输方式,一种为直接IO,另外一种为消息。1、直接IO模式直接作用于所有输出包的源,直接IO的包中已经包含接收数据需要存储的地址或者读取目标器件中的数据地址,因此直接IO模式要求源器件需要保存一份关于目的器件存储区地址表。当地址表建立后,DSP将会根据该表计算出数据的目的地址并且将该地址插入到包头;2、另外一种传输模式Message中,CPPI(端口通信配置界面)DMA模块是进行接收和传输消息传递的核心。Message已经包含了应用(application)的特定数据,这些数据将会被推进接收设备,类似于流写。在Message传输模式中,目的地址并不需要给出,代替的是邮箱的标识符将会在消息包中用到。消息模式的SRIO传输最大有利条件就是源器件不需要知道目的器件的存储区映射,而该模式因为基于消息模式,需要应答包来检验是否出错,这就保证了该模式传输的正确率,却因此降低了传输速度;而直接IO因为直接作用于内存存储区,所以传输效率大大高于消息模式,适合大数据量的传输,前提条件是需要目的器件存储区地址表。根据两种模式优缺点,为了更高的传输速率以及应对大量数据传输,项目中采用的是直接IO传输模式。28 第三章雷达信号处理系统设计以及实现(2)SRIO配置为获得更高的传输速率,SRIO的传输模式采用的是直接IO模式,为了能够进行传输,需要提供出SRIO的关键的传输信息。在TMS320C6678中,装载/存储(Load/Store)模块提供了SRIO需要的关键信息,凭借一系列作为传输描述符的区域寄存器来控制这些信息的改变。表3.2给出了这些区域寄存器的信息,可以根据实际情况对这些寄存器进行配置。表3.2RapidIO读取/存储寄存器31-0LSU_Reg0RapidIO的扩展地址LSU_Reg1RapidIO的低位地址LSU_Reg2DSP的地址3130-2019-0LSU_Reg3门铃信息保留字节数目31-1615-1211-109-87-43-210LSU_Reg4目的ID源IDID位数输出端口优先级Xambs中断评估中断31-1615-87-43-0LSU_Reg5包类型门铃信息不配置数据包类型TTypeFTypeLSU_Reg6313029-54-0(只读)BusyFull无意义不需配置LSU_Reg631-282726-65-210(只写)PrivID清除位无意义标志位重启位/在该项目中,FPGA与DSP之间的数据交互靠SRIO来实现,所以对于寄存器0和寄存器1来说填写的应该是目的地址,需要根据实际情况下,决定是否使用寄存器0;而寄存器2需要设置成DSP的本地地址,该地址存放的是需要传输的数据地址;寄存器3中,第31位是一个门铃信息标志位,可以不需要配置。19-0位代表的是需要传输的数据字节数,SRIO一次传输最大不能超过1MB;寄存器4存放的是目的器件的ID、本地器件的ID、确定ID的位数、优先级等信息;寄存器5的配置说明了包的类型以及门铃信息;寄存器6是一个比较特殊的存在,它分为两种状态,一种是只读,另外一种是只写。当该寄存器是只读状态时,则是标志位,需要根据实际情况进行分析,当进行一次数据传输时,需要首先判断是否该SRIO是否处于忙的状态,29 西安电子科技大学硕士学位论文此时是否存在空的影子寄存器存在;寄存器6只写状态下,需要根据情况来进行操作。当多这些寄存器完成配置之后,LSU模块将会根据目的地址、源地址、字节数目等信息进行数据分割,将会自动完成数据传输。除此之外,TI为了更方便用户使用,为用户提供了一系列的影子寄存器,影子寄存器作用是能够允许用户提前编程来实现创建数据传输。影子寄存器具体操作:当SRIO一次传输完成并释放LSU寄存器时,SRIO会将之前配置好的数据从影子寄存器转移到LSU寄存器中,完成下一次数据传输配置。每个影子寄存器是装载/存储模块中的Reg0~5寄存器的复制,而LSU_Reg6是所有影子寄存器所共享的。用户通过对LSU_Rge0~5的写操作来创建LSU的传输处理,而写操作一般是对影子寄存器进行的。如果LSU的HW是空闲的,那么下一次传输的影子寄存器将会被获取;如果LSUHW正在处理影子寄存器配置的传输内容,则其它保存在影子寄存器中处于挂起状态的传输将会一直等待直到此时的传输任务完成,一旦完成现有的传输,SRIO立马获取下一个影子寄存器配置信息,开启下一次传输。为了防止两个不同的核在同一时间尝试获取同一个LSU存取单元的情况发生,用户需要遵循以下几个步骤:1、锁闭LSU存取单元。首先通过只读寄存器LSU_Reg6获取Busy位和Full位状态,判断此时该LSU是否为可用。需要注意的是,Busy位和Full位需要同时进行读取,只有当二者同时满足要求时才可进行配置。如图3.5锁闭存取单元,该操作可能会出现以下几种情况:(1a)Full为1:意味着没有可用的影子寄存器,此时CPU就会循环读取该寄存器来确保是否有可用的影子寄存器。如果软件为每个核限制了影子寄存器数目的话,那么这种情况一般不会发生;(1b)其他核已经将LSU锁闭。多核状况下,LSU被其他核锁闭是有可能的。这种情况下,当一个核对LSU_Reg6进行读取,此时的busy为1。那么该核再次读取并试着去锁定它;(1c)正常情况:busy为0,意味着该核此时可以将这个LSU锁定并使用。硬件会保存下该核的PRIVID,Busy位置1。30 第三章雷达信号处理系统设计以及实现读取LSU_Reg6寄存器没有可用影子寄存器,挂起直到得到一个YFULLbit=1orBUSYbit=1NLSUX锁起。其他核检测LSUX的busy位为1图3.5锁闭LSU单元2、寄存器的配置:LSU_Reg0-4寄存器由核来进行配置,如图3.6配置LSU寄存器。进行写操作请求的PRIVID需要与锁住LSUbusy位的PRIVID互相符合,否则将会被忽视。如果LSU被EDMA所用,对PRIVID的检查被忽略。值得注意的是,当寄存器正在被建立,LSU能够同时处理另外一个请求;配置LSUX_Reg0配置LSUX_Reg1配置LSUX_Reg2配置LSUX_Reg3图3.6配置LSU寄存器3、触发传输,释放已经锁闭的寄存器。如图3.7触发传输。当完成对Reg5写操作后,busy位被自动清零,此时代表影子寄存器可被LSU模块所使用。然而当LSU模块处于忙状态(busy)时,数据将被储存在影子寄存器里。当LSU完成了传输后,影子寄存器会被使用。31 西安电子科技大学硕士学位论文配置LSUx_Reg5LSUx被释放,自动清零Busy位之前传输完成?N等待LSU可用Y传输数据图3.7触发传输(3)SRIO串口调试项目中FPGA与DSP之间的SRIO采用的是4X模式相连,端口速率采用的是3.125Gbps,其端口连接方式如图3.4中所示。SRIO软件设计的具体流程如下:1、SRIO接口软件初始化,该模块包括了端口传输速率设置,端口模式配置以及端口的使能。因为在项目中只有DSP0与FPGA之间的数据交互采用SRIO串口,因此DSP占用的资源只需要一个端口即可;2、数据包类型的配置并初始化门铃信息,据之前介绍,SRIO的直接IO传输模式可提供更高的传输速率,传输比较可靠,比较符合项目需求。而SRIO的数据包类型也是有多种选择,直接IO传输的包类型主要通过表3.2中LSU_Reg5中的FType和TType两个位置来决定,而包的类型主要包括表3.3中几种类型。表3.3给出了部分包类型的配置。在本论文中采用的是SWRITE模式;表3.3SRIO数据包部分类型配置数据包类型FTypeTTypeNREAD24NWRITE54NWRITE_R55SWRITE6/DOORBELL10/3、配置好LSU_Reg系列寄存器,触发传输。根据项目要求的源地址、目的地址、数据字节数目等具体信息对LSU_Reg寄存器进行配置,当完成对LSU_Reg5的配置后,传输启动;32 第三章雷达信号处理系统设计以及实现4、等待传输完成以及门铃的发送。数据传输完成时,FPGA端会向DSP端发送门铃包,DSP接收到门铃会触发门铃事件的中断任务以此来通知DSP进行算法处理。DSP端需要向FPGA端发送消息通知其准备工作完成,而FPGA需要向DSP内存中写数据,因此SRIO串口需要双方都能够进行通信,具体实现流程如图3.8。DSPFPGA连接初始化初始化发送通知接收通知包接收数据发送数据接收门铃发送门铃响应中断处理数据,等待下等待下次次数据传输图3.8SRIO传输机制如图3.8所示,FPGA与DSP之间首先进行初始化,并建立连接确保串口通畅;当DSP完成一系列准备任务之后,会向FPGA发送一个通知包,该通知包任务通知FPGA可以向DSP端进行数据传输;当FPGA将数据传输完成后,会向DSP发送一个门铃,该门铃触发DSP中断,DSP中断任务包括事件标志位清零并触发DSP进行数据处理;之后FPGA等待下次数据传输,DSP端SRIO模块处于等待状态直到下次数据的传输。SRIO模块最后调试的结果如图3.9所示:如图所示,FPGA向DSP发送数据,起始地址为0x88002000,其中发送的是32位有符号整数型数字,数字大小依次递增,当传输完毕时,DSP接收到门铃包并且触发中断。从图中可以知道,DSP接收来自于FPGA的数据是正确的,并且SRIO接口传输速率满足课题需求。33 西安电子科技大学硕士学位论文图3.9SRIO调试结果3.3.2数据处理的数据传输设计DSP1实现数据处理功能,需要的数据来自于前端DSP0,因此本小节主要介绍数据处理数据传输串口—Hyperlink的设计方法。(1)Hyperlink串口介绍Hyperlink可以为两片TMS320C6678器件提供高速、高效率、低延时数据交换,它的传输机制与PCIE串口类似,进行的是内存之间的映射。Hyperlink是一个基于包类型传输协议,提供非常突出的写、读和中断会报等操作。当对Hyperlink配置完成了之后,它靠自己内部状态器件来自主的控制数据流。各自端能够独立地完成对数据流的控制,当RX端向TX端发送一个调节信号后,在另一端TX会自主完成调节。图3.10Hyperlink点对点连接描述了项目中两片DSP之间的连接方式,如图所示,DSP0与DSP1之间采用的是4X模式,与应用于传统的高速串并接口的8b10b编码相比,Hyperlink的编码减少了编码工作量,它的编码效率与8b9b编码相等,其传输速率也相应得到提升。在本论文中Hyperlink采用的是4X模式,其理论数据传输率能够达到12.5×4×8/9=44.44Gbps=5.55GB/s。两片DSP都进行了内存的映射,因此Hyperlink可为双方提供通信机制。34 第三章雷达信号处理系统设计以及实现DSP0DSP1从端口从端口PowerManagement从端口TX4X通道RX从端口FlowControlVBUSPVBUSPPower/MSCR/MSCRManagement主端口RX4X通道TX主端口FlowControl主端口主端口图3.10Hyperlink点对点连接(2)Hyperlink串口配置Hyperlink的软件配置其实是对一系列的寄存器进行配置,当完成对寄存器的传输配置之后,只要将想传输的数据传输到Hyperlink的区域窗,剩下的工作Hyperlink本身会完成数据传输任务。它传输数据的主要原理是将主设备的Hyperlink存储区域窗映射到从设备的不同的存储区域,类似于PCIe的传输方法。对于Hyperlink的主要配置主要基于以下几个步骤:1、串并转换器的配置。串并转换器需要被配置成达到所需要的连接速度,图3.11给出了输入的参考时钟与其对应的输出的时钟关系图;输出时钟串并转换器锁相环连接速率输入参1.5625-x4,x5,x6,x8,x10,x12Full(x4)考时钟3.125GHzx12.5,x15,x16,x16.5,Half(x2)X20,x22,x25Quarter(x1)Eighth(/2)图3.11Hyperlink串并转换器配置如图所示,外部输入参考时钟被限制在156.25MHZ到312.5MHZ,与串并转换器的锁相环乘以一个系数能够产生1.5625到3.125GHZ之间的时钟。最后的链接速率会根据链接速率的配置来产生一个内部时钟。2、Hyperlink内存映射配置。Hyperlink传输数据的主要原理是将主设备的Hyperlink存储区域窗映射到从设备的不同的存储区域来完成数据传输任务。Hyperlink的内存映射是非常灵活的,Hyperlink的内存映射配置其实就是将主设备的Hyperlink存储区域映射到从设备的不同的存储区域,每个C6678都有一个Hyperlink35 西安电子科技大学硕士学位论文的内存存储区域,从地址0x40000000开始之后的256MB都是Hyperlink的映射区。主设备可以人为将256MB存储区映射到从设备的不同的存储区,包括从设备本地L2,共享存储区以及DDR中。如图3.12Hyperlink映射到不同存储区。图3.12Hyperlink映射到不同存储区从图中可以知道,DSP0可以通过改变自己本身的Hyperlink输出窗内存中的内容来达到向DSP1发送数据的目的,并且在DSP1端,作为从设备通过配置自己接收内存映射情况来实现将接收到的数据映射至不同的存储区。例如,DSP0的核0通过向Hyperlink输出框中复制数据内容可以实现将数据传送至DSP1端的核0的本地L2中,核1的本地L2中,核2的本地L2中,共享存储区以及DDR的功能。(3)Hyperlink串口调试结果本论文中,Hyperlink配置成4X模式,首先完成串并转换器以及其他任务的初始化;初始化完成之后两片DSP之间需要建立相互链接,进行内存映射操作;之后可以通过中断来通知从设备DSP可以进行数据操作,等其他任务的实行;之后进入等待状态,等待下次数据传输以及任务操作,流程图如图3.13Hyperlink通信流程图。36 第三章雷达信号处理系统设计以及实现建立链接初始化初始化数据发送数据接收否发送中断响应中断判断数据正确?是数据处理等待下次发送数据中断清空,等待下次接受数据图3.13Hyperlink的传输流程图3.3.3多核任务间的数据传输设计项目涉及到片上多核间的数据交互以及内存之间的传输,为了保证在DSP中数据传输不影响到CPU的工作并且提供高效的数据传输方法,项目中采用的方法是EDMA[26]。火控雷达信号处理机对系统的流水线操作和实时工作的要求很高,为了满足系统设计要求,数据的传输需要在CPU不干预的情况下完成。因此本章节对EDMA进行介绍。(1)EDMA介绍项目中,EDMA是应用在片内核间和片上内存之间的数据传输,一般情况下EDMA会将数据传输到某一个固定的内存存储区,但是考虑到实际情况中当系统进行某一块数据处理时,可能发生下一次数据到来导致覆盖掉原始数据的情况,这个隐患会极大影响系统的稳定性。因此综合考虑项目采用的是乒乓存储,而EDMA的强大之处在于存在支持乒乓存储的LINK模式,利用EDMA的LINK模式可以在乒接收缓存和乓接收缓存之间进行切换[27]。DSP6678中一共有三套EDMA的存在,每一套EDMA除了资源有稍许差距之外,其余配置、传输功能基本相同。由图3.14给出了EDMA控制器框图,EDMA的通道(既包括普通的DMA通道,也包括需要CPU参与的QDMA通道)都需要一个事件来触发数据传输任务,触发事件包括外设事件、人为手动事件、chain或者是中断事件等,这些事件方式都可触发传输通道进行数据的传输;表3.4中的事件队列(Eventqueues)与用作传输数据的传输控制器(TC)一一对应,即queue0队列对应的传输请求将会被上传至TC0的传输控制器完成数据传输请求;queue1队列对应的传输请求将37 西安电子科技大学硕士学位论文会被上传至TC1的传输控制器完成数据传输请求。当人为地将任务分配给一个队列时,控制器可以通过PaRAM的参数配置产生一个传输任务请求(TR),最后传输任务请求将会被上传至相对应的传输控制器,传输控制器将会根据设置的参数进行数据传输,此时EDMA控制器可以处理下一条传输任务;当传输请求到达传输控制器(TC)之后,传输控制器将会按照传输请求中的具体参数进行数据搬移,当传输任务完成之后,将会给EDMACC发送传输完成信号;当EDMACC检测到传输完成信号时,将会产生相应的中断[27]。TMS320C6678的EDMA部分资源如下表3.4所示:表3.4EDMA资源分配情况资源名称EDMACC0EDMACC1EDMACC2DMA通道数166464QDMA通道数888中断通道数166464PaRAM配置入口数128512512队列数244传输控制器244存储器保护存在存在存在存储保护和影子区域个数888传输控制器244由于传输控制器与EDMA的队列数一一对应,所以可以把不同的传输任务分配给不同的队列,这样可以实现在队列1进行数据传输时,还可以进行队列2的传输任务,这样即节省了大量的时间,也符合了系统的并行操作需求。在表3.4中可以知道每一套EDMA都有八个影子区域,八个影子寄存器可以允许多个核对其进行配置。每一个影子区域可以被绑定到一个核进行设置并且它们各自有一系列与之相关的寄存器存在,这些寄存器允许DMA/QDMA通道和中断完成代码组合。这些寄存器是用户可编程的,可以通过编程来分配通道以及其他资源。38 第三章雷达信号处理系统设计以及实现事件触发图3.14EDMA控制器框图以下介绍影子区域比较重要的两个寄存器:1、DRAEm和DRAEHm:该寄存器对存在于每个影子区域中,每个寄存器对中的位数与通道数相同,该寄存器允许用户通过编程的方式来对DMA通道和中断方式进行分配,分配的中断以及通道可以被一个核心所拥有。通过影子区域地址映射来访问DMA事件寄存器和中断寄存器能够通过这个寄存器对的过滤。在这个寄存器对里面每个bit位与一个通道和中断一一对应,对应的bit位如果置1,对应着一个相应的通道和中断是能够被该绑定的区域使用的;反之,如果为0,那么对应的中断以及通道是不能被使用的;2、QRAEn:每个区域中都有一个。与QDMA的数目相同。项目中不涉及。影子区域的存在允许编程者自己把握资源分配,可以根据自己的项目需求来对EDMA的资源进行分配,只需要在相对应的寄存器中置位,影子区域可以将某个通道或者中断资源独占。影子区域另外一个好处就是能够产生自己的区域中断。EDMA的全局中断是一个共享的中断,当一个传输任务完成的时候可以触发中断,但是在没有将中断标志位清零期间,不能响应另外的传输任务所产生的中断,这就无法满足项目的需求。而影子区域的存在解决了该问题,除了有全局完成中断以外,还存在完成中断EDMA3CCx_INTn,这里的n代表着与影子区域数相关的数字,这些区域完成中断可以为不同的核绑定到中断控制寄存器。对于一个特定的DMA/QDMA通道来说,中断可以使用全局中断或者是影子中断,但是两种中断不能同时使用。(2)EDMA配置项目中一共使用了两套EDMA,一套用于Hyperlink的数据传输,该配置比较简单方便,只是进行简单的数据传输;另外一套用于和差差三路回波信号脉压处理之后数据传输任务,由于可能会出现三路数据同时需要传输,所以需要将三路的传输任务分配在不同的队列里面,这就要求所使用的DMA需要存在至少三个队列,因此采用39 西安电子科技大学硕士学位论文的是EDMACC1。由于涉及到矩阵转置以及乒乓传输,所以该配置比较复杂,下面详细介绍EDMA实现数据传输、LINK传输模式以及触发方式。A、利用EDMA实现数据传输并转置下面是利用EDMA技术对矩阵进行转置操作的例子,最终实现结果如图3.15EDMA转置,具体配置如下:1、ACNT:将该数值配置为一个元素的字节大小,在项目中,由于回波信号数据是复数类型,所以一个元素的大小则是两个浮点数,即8字节大小;2、BCNT:将该数值配置为每一帧数据中元素的个数,在项目中,每一个脉冲的数据个数暂时设置为512,所以将BCNT设置为512。该数值可根据项目要求自由更换数值;3、CCNT:将该数值配置为帧的个数,在项目中,帧的个数暂时设置为8。该数值可根据项目要求自由更换数值;4、SRCBIDX:将该数值设置为ACNT的值,它代表的是传输数据源地址中,传输元素之间的增量;5、DSTBIDX:该数值配置为CCNT×ACNT,该数值代表的是传输数据目的地址中,传输元素之间的增量,因为需要达到转置效果,所以该数值设置为CCNT×ACNT;6、SRCCIDX:该数值设置为ACNT×BCNT,该数值代表的是传输数据源地址中,传输帧之间的增量;7、DSTCDX:该数值设置为ACNT的值,该数值代表的是传输数据的目的地址中,传输帧之间的增量。图3.15EDMA转置传输B、LINK模式为了保证核心在数据运算时,正在被处理的数据不会被新传输过来的数据所覆盖,系统采用的存储方式是乒乓存储。TMS320C6678的EDMA由于其特殊模式恰好支持乒乓传输,用户只需将EDMA配置为LINK模式。在该模式下,当系统完成乒存储40 第三章雷达信号处理系统设计以及实现结构的数据传输任务之后,DMA配置寄存器直接LINK到乓存储结构配置,并自动读取乓结构存储内存的配置进行下一次传输配置;而当系统完成乓存储结构的数据传输任务之后,DMA配置寄存器又会被LINK到乒存储结构配置,自动读取乒结构存储内存的配置进行下一次传输配置……系统如此循环下去,形成乒乓存储。系统使用LINK模式需要使用至少三个PaRAM参数集,这是由于6678DSP的EDMA提供一种特殊配置机制:当控制器将传输请求上传成功,与之对应的PaRAM就会重新载入一个新的PaRAM,这个新的PaRAM是通过16位的linkaddress域来指定的,而LINK的更新只有在现PaRAM已经被执行完成之后才会出现。PaRAM执行完毕的标准是控制器提交了所有与之相关的传输任务请求。如图3.16说明了在LINK模式下,PaRAM如何实现更新。在图3.16中,当EDMA将PaRAMset3设置的传输任务完成之后,将会根据该PaRAM中的LINK域来实现了连接,因为PaRAMset3中LINKX=5FE0h,所代表的是PaRAMset255的地址,所以当提交了该传输请求之后,PaRAMset255中的设置将会直接重新载入,而又因为PaRAMset255中LINKY=FFFFh,当LINK域为FFFFh值时,表明该链接无效,所以当该配置的传输请求被上传之后,将会结束重新载入新的参数集,此次传输任务结束。而为了能够满足乒乓传输能够循环下去,所以需要三个PaRAM参数集的存在,这三个参数集需要相互link,来达到循环乒乓传输的作用。图3.16Link模式PaRAM更新C、触发方式41 西安电子科技大学硕士学位论文项目采用的是手动触发传输。当数据处理完成之后,核心手动向事件置位寄存器进行写操作来完成手动触发传输。当事件置位寄存器的某一个事件位被置1,导致的结果是不管此时事件使能寄存器的状态如何,在相对应的队列中的事件都会被被触发。当触发事件到达队列首部,DMA将会根据参数集配置将其生成传输请求并上传至传输控制器;如果事件对应的参数集为空,将不会产生传输请求,并且事件寄存器中相对应的事件位被清除;当传输控制器完成数据传输后,会向控制器发送一个完成标志,而当控制器检测到该完成标志后,触发中断。基于以上配置说明,软件流程图如图3.17所示。通道初始化通道、队列相关通道、参数集相关参数初始化手动触发传输完成,触发中断图3.17EDMA配置流程图3.17说明了配置流程图,首先需要将通道进行初始化,用户根据自己要求判断使用通道数、参数集以及队列;之后将初始化选定的通道与计划需要的队列进行绑定相关;给通道分配参数集,并与之相关,因为用到了乒乓存储结构,因此在这里需要三个参数集与之相关;将之前的参数集进行相应的配置初始化;配置完成,手动向事件置位寄存器事件位置位触发传输;传输完成并且触发中断,处理中断任务。(3)EDMA调试1、使用EDMA向Hyperlink窗发送数据。其结果如图3.18所示:该图片显示的是八位无符号整数型,利用EDMA在CPU的不干预的情况下进行了数据传输的。其中0x40000000地址是Hyperlink存储框的首地址,由图中的传输结果可以知道该配置完成了数据传输,符合项目需求。42 第三章雷达信号处理系统设计以及实现图3.18EDMA向Hyperlink窗传输数据结果2、使用EDMA实现数据转移并且进行数据转置,其部分结果如图3.19所示:该图片显示的是16×16的浮点型复数矩阵,复数在DSP6678内存中存储的形式是分别用一个浮点型数据表示复数的实部与虚部,形成实虚交替放置。从图中可以知道,放置在0x0C0088D0处原始数据src,通过DMA将数据传输到0x0C0090D0处目的数据dst中,并且将16×16的复数矩阵进行了转置操作。图3.19EDMA进行数据转移并转置3.3.4信号处理机与上位机数据传输设计雷达信号处理机需要与上位机进行通信,将最后的结果通过以太网接口传输给上43 西安电子科技大学硕士学位论文位机,因此6678的以太网模块就需要进行配置。TMS320C6678的千兆以太网能够与包加速器和安全加速器共同工作来构成网络工作机制,以太网的存在就是为了给上位机与DSP之间提供一个以太网协议传输数据的工具。图3.20给出千兆以太网模块的框图,从图可知千兆以太网系统主要包括了四个主要的模块:以太网交换机、MDIO模块、SGMII0模块和SGMII1模块[28]。其中,以太网交换机是一个三端口器件,DSP与其中一个端口相连,该端口是一个双向传输端口,DSP可以通过该端口与以太网交换机进行数据交互;两个SGMII模块与另外两个端口分别相连,SGMII模块接收来自于串并转换器的数据以及向外传输以太网交换机传输过来的数据,实现与外界进行双向数据交互;以太网交换机可以触发DSP中断,通知核进行下一步操作。图3.20千兆以太网模块(1)千兆以太网的配置对于以太网接口的配置具体流程解释如下:1、使能包加速器,并且对其上电,包加速器在网络协处理器中的主要工作是对包进行处理操作,包括包头分别、校验和产生和多队列路由。包加速器默认情况下是关闭的,而项目中因为用到了包加速器,因此函数PApoweron()实现了对包加速器的使能以及配置;2、初始化队列管理器,由于包加速器与以太网模块需要多核导航器的队列来进行管理,因此需要将以太网的特用的通道、队列进行初始化操作。Queuem_init()对队列进行初始化,创建内存区域的描述符,并且初始化这些描述符,描述符的基础地址必须是全局地址;3、初始化包DMA,Cppi_initial()函数是对包DMA进行相应的初始化。打开所有的与包加速器相关的传输通道,通道都是与包加速器的传输队列一一对应的;包DMA进行的操作是将通道里面的描述符所携带的内容进行数据传输,每一个包DMA44 第三章雷达信号处理系统设计以及实现都会支持一些特定的通道,因此这里的初始化只需要初始化与包加速器相关的包DMA;4、初始化包加速器。对包加速器进行初始化,包括为包存放缓冲分配空间、下载固件配置等操作;5、配置以太网子系统,主要是对以太网交换机、MDIO、SGMII模块进行配置。Init_SGMII_SERDES()函数是对SGMII串口的频率设置以及端口使能,SGMII的输入参考时钟频率设置为125MHZ,6678中存在两个SGMII模块,因此两个端口都应该进行相应的配置。创建以太网交换机的查找表,Switch_addrupdate(n,macAddress,0)函数是用来设置端口的MAC地址,其中n代表的是三端口交换机中的端口号,macAddress代表是要设置成的MAC地址;6、创建发送数据队列,tranque_set()函数创建用来向包加速器发送数据的队列,同时创建一个传输释放描述符队列,该队列存放释放后的描述符;7、创建接收数据队列。receque_set()函数创建用来接收来自于包加速器发送过来的数据,函数创建了一个接受释放描述符队列,该队列存放的是之前已经分配好、空的描述符,这些描述符是用来接收数据的;同时创建了一个接收队列,该队列描述了数据流的流向;8、数据双向传输,send_packet()函数是用来向外部传输数据;receive_packet()用来接收上位机传输过来的数据。以太网的配置完成之后就是DSP与上位机之间的通信调试。(2)千兆以太网调试DSP端以太网调试结果如图3.21所示,从中可以知道通过以上步骤对DSP进行初始化,并且每一步的初始化都已成功;通过函数send_packet()向上位机发送数据“HelloWorld”,并在上位机端查看数据是否正确。图3.21DSP端以太网调试结果45 西安电子科技大学硕士学位论文上位机端接收DSP发送数据的程序采用的是TI公司提供的接收程序,该程序用来接收UDP协议的数据包并验证DSP发送的数据是否正确。上位机接收到DSP调试结果图如图3.22所示,从窗口中可以看出上位机端确实接收到DSP发出的13字节数据,因此以太网能够正常工作,该模块符合项目需求。图3.22上位机端与DSP端以太网联调3.4多核任务分配及多核通信项目火控雷达信号处理机实现三路回波信号处理,处理流程主要包括脉冲压缩、动目标检测、恒虚警、点迹凝聚、和差归一以及目标跟踪滤波的算法。项目要求雷达系统具有很高实时性的特点,所以需要根据实际情况对各个算法进行任务分配,实现并行处理和流水线操作;任务之间协同工作需要核间通信来完成模块与模块之间的同步以及数据传输。项目中用于数据处理的DSP1的任务比较简单,只需要处理目标跟踪滤波任务,因此这里对DSP1的任务分配不作详细介绍。3.4.1任务分配根据TMS320C6678的多核资源特点,分配在不同核上的任务可以同时并行处理;如果不同核处理不同的任务并且每个核处理的数据并无交互性,多核能够使整个系统实现流水线操作,从而系统整体效率得到提升。6678DSP多核并行处理算法设计中主要有两种处理模式可供选择:一种是主从模式。在该模式下,主核通过进行任务分发以及多核间的协调处理来进行管控,可实现多核同时处理一个任务,以此提高效率。如图3.23所示,一般会将核0作为主核,主核来实现从核的任务分配、数据的并行处理以及多线程之间的调度等作用。从核与主核之间能够相互通信,但是从核之间不能够相互通信。系统中由于主核的存在,任务的分配、数据的传输都是在可操控的状态下进行,核之间的同步也能够得到保障,线程也在主核的作用下稳定调度。该模式最突出的特点是多核可同时处理一个任务,大大提升算法执行效率。但该模式需要考虑资源的负载情况,例如46 第三章雷达信号处理系统设计以及实现带宽,图中TeraNet是系统的总线,当多个核同时对共享存储区进行读写操作时,由于带宽的限制,可能需要仲裁操作[29]。由于项目要求整个系统实时处理雷达回波信号,如果采用主从模式,八个核在同一时间只能处理同一个任务,但雷达信号处理包括多个任务模块,只能完成前一个任务后,核0控制其他核执行下一个任务,无法达到预想的流水线操作,同样无法保证实时处理。因此该模式不满足项目需求。Core0Core1Core2Core3Core4Core5Core6Core7TeraNet图3.23主从模型另外一种则是数据流模式。如图3.24所示,在该模式下,每个核都是平等的,没有主次之分,但是有先后之分[30]。每个核只与后核有通信,核之间的数据依然是靠数据总线进行转移,数据从前往后依次经过每个核进行数据处理,之后再次传递给后面的核进行处理。因为每个核都是平等的,因此每个核既要起到控制作用,又要对数据进行处理,因此该模式比较适合于要求实时性很高的系统;由于数据的处理是顺序执行的,使整个过程可以形成一个流水线,所以带宽的负载比较小。缺点是没有主核的存在,两核之间的通信要求高;单核处理复杂度比较高的算法的时间会比较长;系统中只要一个核出现问题,将会导致系统错乱、崩溃。由于八核串联模式,整个系统只能处理完一路回波数据才能处理另外一路,无法满足项目并行处理三路数据的要求。Core0Core1Core2Core3TeraNetCore7Core6Core5Core4图3.24数据流模式论文第二章已经介绍了火控雷达信号处理机的处理流程。雷达信号处理流程主要包括:和差差三路回波数据进行脉冲压缩处理,和差差动目标检测处理,和路恒虚警处理,和路点迹凝聚处理以及和差归一等。整体流程图如图3.25所示,考虑到脉冲压缩的算法比较消耗时间,因此三路回波信号的脉冲压缩处理需要三个核分别处理来47 西安电子科技大学硕士学位论文节省时间消耗;动目标检测、恒虚警、点迹凝聚的算法相对于脉冲压缩来说时间很短,因此可以放在同一个核中进行处理,需要三个核分别处理三路回波信号的这些算法处理。和差归一是将和路回波信号点迹凝聚之后结果与相对应的两路差回波信号之间算法处理,并将最后的结果利用Hyperlink串口传输给DSP1,因此该算法和串口配置放在一个核进行处理。开始俯仰路方位路不同通道进行不同处理和路整理前端俯仰路整理前端和路整理前端方位路I/Q数据I/Q数据I/Q数据俯仰路脉冲压缩和路脉冲压缩方位路脉冲压缩动目标检测动目标检测动目标检测根据和路凝聚结恒虚警根据和路凝聚结果提取目标信息果提取目标信息点迹凝聚三路数据整合和差归一Hyperlink传输结束图3.25雷达信号处理流程图通过分析两种结构的优缺点以及火控雷达信号处理流程的特点,项目中将两种结构合并采用的是主从、数据流相结合的模式。如图3.26所示,在该模式下,核0依然是一个主核,它接收FPGA发送过来的回波数据,接收完成之后响应门铃中断控制从核完成算法处理;其中核1和核2为和路回波信号处理支线,核1接收到核0的通信之后将数据进行脉冲压缩,之后储存数据并通知核2进行之后的算法;核3和核5为俯仰差路回波信号处理支线,与和路的处理相差不大;核4和核6为方位差回波信号处理支线;核7为过渡核,实现和差归一算法以及Hyperlink传输,只有当核2、核5、核6都通知核7之后,才会进行之后的算法,处理之后的数据会经过Hyperlink将数据传输给数据处理DSP1。该模式既能够实现系统实时处理,也满足系统流水线操作的要求。48 第三章雷达信号处理系统设计以及实现核2核1MTD、和路脉冲压缩CFAR、点迹凝聚核0核7核3核5任务分配和差归一、俯仰路脉冲压缩MTD数据接收Hyperlink传输核4核6方位路脉冲压缩MTD图3.26主从、数据流模式结合3.4.2核间通信为了方便单核的任务调度和多核之间的通信,TI公司为用户提供了一个内核间通信开发包[31]。该开发包包含了对于开发者来说易于操作的应用程序接口(ApplicationProgrammingInterface,API),开发者可利用这些API函数调度同一内核中不同的进程,也可以控制不同内核之间的通信[29]。在单核中不同任务调度与通信,常常使用的是信号量和事件模块;多核之间的通信方式有多种,项目中应用到的有两种:消息队列、通知模块。下面对信号量以及多核之间通信方式进行介绍:(1)、在单核中不同任务调度与通信,常常使用的是信号量和事件模块。1、信号量,在项目中使用的二值信号量类似于创建了一个单内核可见的标志位[23]。如图3.27所示,任务的执行都需要询问这个标志位信号量是否得到释放。任务要想执行都会首先访问信号量,如果此时的信号量处于挂起状态,那么任务也会被挂起,一直处于等待状态;如果当访问的信号量已经被释放,此时就会执行该任务。项目中采用信号量进行单核任务的调度。开始初始化二值信号量创建信号量pend,挂起否信号量挂起轮询信号量是否释放是算法处理图3.27信号量使用49 西安电子科技大学硕士学位论文2、用于单核线程之间同步以及互相通信的方式还有事件模块。事件模块的工作方式类似于信号量,而与信号量不同的是事件模块能够实现当多个条件同时发生或者多个条件中一个条件发生时允许某些线程执行的功能。项目中核7需要进行和差归一的任务,而该任务是在三路回波数据完成处理之时才会执行算法。使用事件模块来实现该功能,核7需要注册一个事件模块的任务,核7被该事件挂起,而该任务只有在核7收到三路回波数据处理完成的事件后才会进行之后的算法。如图3.28所示,多事件处理流程。开始注册事件模块核被事件任务挂起否事件0&事件1&事件2同时发生是执行事件任务结束图3.28多事件处理流程(2)、多核之间的通信方式有多种,项目中应用到的有两种:消息队列、通知模块。1、消息队列是一种对用户比较友好的通信机制,它以消息与队列为基础进行内核之间的通信[32]。在软件层面上来说,它类似于多核导航器在软件层面上的实现;在硬件方面来说,它的核间通信途径可以通过共享区、多核导航器以及SRIO三种方式实现。在项目中采用的是基于共享区来实现消息通信。主核在共享存储区创建一个共享区,并且将该区域标记给消息用来进行消息的传输,其它核只需要打开该区域,并且也将该区域标记给消息,这样才能够实现多核之间的通信。发送核将想要传输的消息放入到目的核的队列之中,目的核使用函数获取消息就会接收到该消息,消息的传递就可完成。消息通信方式流程如图3.29所示。50 第三章雷达信号处理系统设计以及实现主核从核开始开始Heapbuf的创建打开主核创建HeapbufHeapbuf标记给MessageHeapbuf标记给Message打开从核的消息队列创建消息队列为消息分配内存get消息是将消息放入目的队列消息释放是继续收发消息继续收发消息否否消息队列关闭消息队列删除结束结束图3.29Message通信机制图3.30消息八核通信的调试结果,图中所采用的结构模型是数据流模式,核0创建一个八核共享的共享区,核0需要将该区域标记为用于消息;之后其余的七个核分别打开该区域,并且也将该区域标记为用于消息;所有的核创建自己的消息队列;队列建好之后,每个核打开自己核号加一的下一个核的消息队列,为其分配用于存放消息的内存;将消息放进已经打开的远程核消息队列,将消息放入,完成消息的传递;后面的核首先要获取前面传递过来的消息,才会向后面的核发送消息,以此类推,无限循环下去。结果如图3.30所示:图3.30消息队列八核通信调试结果51 西安电子科技大学硕士学位论文2、通知模块被称为最小应用模块(Minimaluse),一般采用通知用于核间的通信机制,与消息传输机制不同的是它只能携带一个32位数据,也因此它只适用于处理多核之间的简单同步问题,无法传递处理复杂的消息。由于通知机制携带的有效负载比较少,所以一般情况下核间传递的是一个事件号,该事件号是代表的就是通知机制的响应函数。通知模块中的多重中断线可以满足系统应用,正是这样通知模块的通信原理过程类似于核间中断方式,一个核向另外一个核发送通知的时候,核就会触发通知模块响应函数,核就优先处理响应函数。项目中调用通知模块在核间进行传递消息,通过通知机制的响应函数触发核的动作,结合信号量的使用来判断当前是否执行算法任务。通知机制的流程如图3.31所示。核B核A开始通知响应任务开始注册核A任务处理通知挂起否发送通知通知下个核处收到通知事件?理是结束响应任务处理结束图3.31通知机制流程在上图中,核A和核B组成了一个数据流模式,在该模式中核A需要将处理后的数据交给核B处理。核B需要为自己注册一个通知事件,该事件需要绑定一个通知响应任务,当注册任务完成时,核B被该事件挂起,等待事件的到来;而核A在将数据处理完成之后,会通过通知机制向核B发送事件;核B接收到通知事件之后,进行通知响应任务;之后整个流程结束。图3.32通知机制调试结果。52 第三章雷达信号处理系统设计以及实现图3.32通知机制调试结果通知机制调试采用数据流模式,在该模式下核0首先采用通知机制通知核1,之后核0挂起等待下一次通知;核1收到通知之后,马上通知核2,之后核1挂起等待下一次通知;其他的核同样执行这些步骤,如此循环下去。其中通知携带的32位数据即是图中#后面的有符号整形整数,它代表的意思是循环圈数。3.4.3中断TMS320C6678囊括了许多外设以及大量的事件源,用户只需要自己进行相应的配置以及软件控制,就可以轻松的完成系统设计[27]。DSP6678供用户可配置的中断只有12个核中断,但是DSP本身又包括了上百个中断源事件,因此为了解决由有限个中断管理上百个中断源的问题,片上中断控制器应运而生。一般DSP6678的中断源事件有两种:其一为初级事件,该事件可以直接路由到核中断进行配置;其二为次级事件,用户需要将次级事件经过片上中断控制器映射之后再映射给核中断,即可完成对中断的配置,图3.33展示了中断拓扑结构。之前介绍的SRIO以及EDMA等外设,当检测到传输完成时就会触发核中断,核就会响应中断任务进行后续任务处理。以下详细介绍本论文所涉及到的中断配置。次级保留事件初级事件次级核事件片上中断控制器xCorex共同事件事件图3.33中断拓扑结构1、门铃中断配置53 西安电子科技大学硕士学位论文FPGA通过SRIO串口与DSP进行数据传输,当数据传输完成的时候,FPGA会向DSP发送一个门铃,门铃事件被DSP检测到之后,会直接向核0产生中断,之后核0中断响应向其它核进行任务分配。查阅用户手册可以知道,门铃中断属于128个初级系统事件的20号中断,可以直接将该中断路由到12个核中断中的任意一个,所以不需要进行片级中断的配置。这里不作详细介绍。2、增强型DMA中断配置之前介绍增强型DMA时已经提到,影子区域有一个好处就是能够产生自己的区域中断,并且该中断可以通过配置被一个核、一个通道所有,可以解决多通道使用同一套DMA产生多个中断触发的效果。增强型DMA的全局中断是一个共享的中断,当一个传输任务完成的时候可以触发中断,但是在没有将中断标志位清零期间,不能响应另外的传输任务所产生的中断;项目需要实时处理三路回波信号,因此可能同时产生三个中断,一个全局中断无法满足项目的需求,影子区域的存在解决了该问题。6678DSP除了有全局完成中断以外,还存在一系列完成中断EDMA3CCx_INTn,这里的x代表第几套DMA,n代表着与影子区域数相关的数字,每一套DMA都有八个影子区域,每个影子区域可被任意核所使用,因此影子区域完成中断可以被不同的核绑定到中断控制寄存器。通过查阅用户手册可知,影子寄存器产生的区域中断是次级事件,因此需要经过片上寄存器路由到初级事件上,这样才能够给核产生中断,之后核进入中断响应。图3.34展示了次级事件映射到核中断的实例。CIC0INTC编程映片上中断控制固定关编程映次级事件8号编程映射射器输出事件系射(EDMACC1_CIC0_out初级事件92核中断6事件(host事件INT0)20)图3.34次级事件映射到核中断如图3.34所示,经过查表可以知道第一套增强型DMA的第0个影子区域所产生的中断事件是EDMACC1_INT0,它所对应的事件编号是8。该次级事件作为片上中断控制器的输入,输入事件与host事件的映射是可以通过编程实现,用户需通过软件编程,将该输入事件映射到host事件20号,host事件与输出事件的映射情况已经是固定关系,所以只需要查表查找输出事件号即可。输出事件映射到初级事件也是通过软件编程实现,通过查表知道输出事件可映射到92号事件。剩下就是将92事件映射至核中断的6号事件,就可完成对增强型DMA中断的配置。54 第三章雷达信号处理系统设计以及实现3.5小结本章结合某火控雷达信号处理机项目和信号处理板硬件资源,依据项目要求,首先确定系统的总体设计,采用主从、数据流相结合的模式作为系统总体框架;之后介绍了项目涉及到的数据传输方法;最后根据6678DSP本身多核的特点,在总体框架基础上进行任务的多核分配以及详细介绍多核通信的方法,并且项目涉及到了中断的配置方法,所以详细介绍了片上中断事件映射到核中断的流程。55 西安电子科技大学硕士学位论文56 第四章系统设计中遇到的问题第四章系统设计中遇到的问题4.1引言火控雷达信号处理整个算法流程软件设计基本完成,因此对整个系统进行调试。在项目调试的过程中却遇到一些比较突出的问题,例如算法运算的时间过长,核间数据传输出现不同步的情况,以及核间通信报错的问题。通过具体问题分析得出相应的结论并给出相应的解决办法,例如算法运算周期较大主要涉及到了代码优化问题,核间数据传输出现不同步的原因主要涉及到了缓存一致性的问题,核间通信出错涉及到了IPC的使用。针对不同的问题,下面详细介绍了问题分析与解决整个过程。4.2脉冲压缩算法代码优化4.2.1脉冲压缩实现消耗时间过长如图4.1所示,该图片所展示的是雷达系统处理一条脉冲回波信号所花费的时间。图中的脉冲回波信号是512点复数,因为高速缓存技术的应用使得系统处理一条脉冲所花费的时间约为53000个周期。其中DSP6678芯片的主核频率一般设置为1GHz,因此处理一条脉冲回波信号的时间一般为53s。但雷达系统要求整个系统实时处理能力很高,这个处理速度无法满足雷达系统实时处理的要求,因此在保证算法能够稳定运行的前提下,需要对算法进行优化。图4.1脉冲压缩处理时间57 西安电子科技大学硕士学位论文4.2.2消耗时间过长问题分析第二章已经对脉冲压缩算法的实现做了详细介绍,从理论算法可知,在DSP中实现脉冲压缩的方法就是调频信号的匹配滤波,而为了更适合于在DSP中实现脉冲压缩算法,项目中采用将回波数据转换为频域中处理的方法,先将回波数据进行FFT转换,之后转换的数据与之前已经存储好的匹配滤波系数进行复数相乘,之后将相乘后的数据进行IFFT转换,得到的数据就是脉冲压缩之后的数据。项目中使用的FFT算法以及IFFT算法是官方提供的库函数,采用的是线性汇编语言编写,官方已经对其进行优化处理,并且512点复数的FFT消耗时间为3600周期,IFFT所消耗的周期为3700周期。因此算法中的复数乘法以及部分操作占据了大部分的时间,编写的复数相乘的函数不符合项目要求;另外,数据一般存放在共享存储区,共享存储区远离核心,执行算法速度较慢,为了能够获得更快的处理速度,需要将数据从共享存储区搬移到每个核的本地存储区里进行算法处理,因此搬移数据的函数也应该得到相应的优化处理。4.2.3代码优化解决方法项目部分算法未经优化处理就放入系统中导致算法消耗时间过长,因此解决办法只需要对算法进行优化即可。TI公司为用户提供算法优化用户手册,手册提到为了使代码得到更好的效果以及更为简便的实现方法,用户一般需要遵循如图4.2所示的代码优化步骤[33]。从图中可知,第一阶段首先使用C语言代码编写,判断是否满足项目需求,如果满足,那么完成任务;如果不满足,那么进入第二阶段。该阶段的优点在于能够使代码获得更好的移植性和简便性,用户不需要重新学习汇编知识就可完成项目程序;缺点在于高级语言导致代码效率比较低,无法满足项目需求,该方法比较适合要求实时性比较低的系统;第二阶段,在第一阶段基础之上优化C语言代码,使用循环展开,内联函数等方法优化代码。TI公司为用户提供了大量的内联函数,每一个内联函数都对应汇编语言,这些内联函数执行效率一般低于底层汇编语言,但是快于C语言,因此内联函数的常常应用于算法的优化。经过该阶段优化之后,判断代码执行效率是否满足项目需求,满足则完成代码编写;不满足,则进入第三阶段。该阶段优点在于能够满足用户不需通过汇编函数来获得更高的执行效率;第三阶段,使用线性汇编代码编写算法程序,使用线性汇编语言编写代码时,不需要关心芯片寄存器的分配问题,一般情况下线性汇编语言就会满足项目需求。如果此时仍不满足项目要求,就需要精炼代码,在代码中加入更多的细节,例如寄存器分配、并行处理等。该阶段的缺点需要浪费很长的时间判断寄存器分配,酌情考虑添加58 第四章系统设计中遇到的问题并行处理。编写C语言程序第一阶段:C语言程序编译是效率满足?完成否第二阶段:优化C语言程序优化C语言程序编译是效率满足?完成否编写线性汇编第三阶段:线性汇编程序否编译效率满足?是完成图4.2代码优化示意图抛却上述优化编程语言以外,下面对代码优化的方法作详细介绍:1、循环展开。循环展开针对的是循环结构进行的优化,可以通过增加单次数据操作的次数来降低整体循环次数,这样可以减少循环分支的开销,减少系统对算法本身没有意义的数据计算,同样由于单次循环实现了多次循环才能实现的操作,因此提高了数据预存取的操作,大大提高了其流水线特性。图4.3展示了循环展开的代码与未进行循环展开的代码两种代码进行数据转移所消耗时间对比图。从图中的结果可以知道,同样的数据搬移,代码未经过循环展开的效果大大低于代码经过循环展开的效果。59 西安电子科技大学硕士学位论文图4.3循环未展开与循环展开消耗时间对比2、使用内联函数。为了程序能够达到很高的优化程度,C6000编译器为用户提供了很多的内联函数,它的执行效率比高级语言高效,与汇编语言相当。项目中,并没有使用到内联函数,使用的是比其效率更高的汇编语言,在此只是作为一种优化方法提出而已;3、采用并行线性汇编。优化代码第三阶段有提到,在使用线性汇编语言编写代码时,不需要关心芯片寄存器的分配问题,一般情况下线性汇编语言就会满足项目需求。如果此时仍不满足项目要求,就需要精炼代码,在代码中加入更多的细节,例如寄存器分配、并行处理等。线性汇编与汇编语言使用一样的汇编语言,而与汇编语言不同的是在使用线性汇编语言的时候不需要像汇编语言一样向编译器说明该语句所需要的所有信息。例如,汇编语言使用的时候需要向编译器说明自己需要在哪个运算单元里进行,而线性汇编语言则无需这样,编译器会根据实际情况对线性汇编指令进行资源分配。设计线性汇编语言程序时,不需要向编译器说明哪些语句需要进行并行处理,但是有时线性汇编无法满足项目需求时,为了使程序获得更高的处理效率,用户将线性汇编程序进行并行化处理。由于线性汇编所使用的指令与汇编语言指令一样,使用线性汇编语言设计出的程序本身就更加贴近于硬件本身的特性,因此使用线性汇编语言能够将硬件本身的性能发挥到极致,指令本身的精炼也会使得程序代码效率更高。如图4.4所示,采用线性汇编语言编写的程序最后实现的效果远远高于使用C语言编写的程序,并且使用并行处理的线性汇编语言要比普通的线性汇编语言快的多。60 第四章系统设计中遇到的问题图4.4线性汇编处理结果4、编译器优化选项。C6000的编译器为用户提供了大量的编译选项,用户在编译程序时可以根据需求特点来选择所需要的选项。其中一部分选项可以很大程度上直接影响或者决定编译器优化的程度,因而往往不同的选项所编译出的代码优化程度上有很大区别。下表4.1列出了部分选项的优化影响。需要注意的是,-on的优化选项对于汇编优化器同样可用,尽管汇编优化器不能将所有的优化操作全部实现,但是一般情况下,一些重要的优化操作还是会实现的[34]。例如,软件流水线操作以及循环展开等操作。表4.1编译器优化选项优化选项作用影响优化级别去除无用代码,简化表达式和声对代码的运行效率基-o0优化程度最低明,分配变量到寄存器本无帮助包括-o0的全部功能、去除无用的代码执行效率提升很-o1优化程度较低分配、淘汰本地共同表达式小包含-o1的全部功能,优化软件流代码的运行效率有了-o2水线、空循环,取出去除全局无优化程度较高明显提升用声明,优化循环展开包含-o2的全部功能,将未被调用代码的运行效率提升-o3的函数删除、对功能声明重排序,优化程度很高非常大将部分函数当作内联函数使用一般与上述几种优化模式一同使-g用,作用是能够防止过度的优化//导致程序的崩溃对于之前的程序全部使用编译器的三级优化,其结果对比可以从表4.2中知道。61 西安电子科技大学硕士学位论文表4.2不同类型代码消耗时间代码类型消耗周期(ns)C语言代码23686优化后C语言代码16541线性汇编代码5007并行处理后线性汇编3470开启-o3后C语言代码1170开启-o3后的线性汇编语言660从表4.2中可知道:经过-o3优化后的代码都会比未经过优化的代码运行效率提高很多;同样该优化选项对于线性汇编来说具有同样的效果,开启优化后消耗时间是未开启优化消耗时间的13%左右。值得注意的是开启三级优化之后,虽然获得了很大收益效果,但是由于代码量变小并且优化可能会把一些不常用的变量给优化掉,可能不稳定,所以有时候需要开启-g优化来保证程序的稳定性。从表中可以知道,为了得到更高的效率,核心算法应采用线性汇编语言编写,并根据实际情况决定使用-o3优化选项。4.3高速缓存一致性4.3.1核间数据传输出现错误项目中涉及到了多核处理的算法,因此不可避免需要进行核与核之间的数据交换。该芯片八核除了自己本身的本地L2存储区,还共享一个4MB大小的共享存储区,在系统设计中核之间的数据交互采用的方法是将数据放入共享存储区。但是在实际调试过程中总是会出现数据无法传输到目的核的情况,具体现象是核A将数据放置在共享存储区的buffer_A缓冲区,之后核B会去共享存储区的buffer_A缓冲区读取数据并进行相应的数据处理,在核A看来数据已经放置在共享存储区并且数据正确,而在核B的内存中数据无法显示正确的数据,如图4.5所示。从图中可以知道核A查看存放在gaina缓冲区的数据,该缓冲区位于共享存储区地址为0x0C200000的内存中,此时数据是能够正常被读取到的;而从核B查看该共享存储区的数据时,gaina缓冲区的数据却无法正常读取,因此这为核间数据通信带来了很大的困扰。62 第四章系统设计中遇到的问题(a)从核A查看数据(b)从核B查看数据图4.5核A与核B数据对比4.3.2数据传输错误问题分析TMS320C6678芯片的存储结构式是分层的,越是靠近CPU的存储区,其读取速度越快,处理效率也越高,而其存储空间却越小;与之相对,越是远离CPU的存储区,其读取速度越慢,处理效率也越低,而其存储空间能够做到很大。为了解决空间大小和处理速度之间的耦合问题,6678DSP应用了高速缓存技术。当芯片要进行数据处理时,核首先从高速缓存中查找要处理的数据,如果高速缓存中没有请求的数据,核从L1级的存储区进行查找,而当L1级存储区没有请求的数据,核从L2级存储区进行查找,由此一级一级查找,直到查找到请求的数据,找到的数据将被搬移至高速缓存区;由于缓存区读取到的内容会一直保存在缓存区中,下次核需要再次用到该数据时,直接从高速缓存区中读取,无需再从低级存储区中读取,从而提高了运算能力。然而高速缓存区中的数据和存储器里面的数据不会时时进行数据的维护,因此就会导致从核A查看数据是正确的,而从核B查看数据是错误的,因为核A更新了数据只是将高速缓存区的数据进行了更新,未将数据进行回写操作,根本原因在于数据还保存在高速缓存区中。63 西安电子科技大学硕士学位论文4.3.3数据传输错误解决办法解决高速缓存一致性写操作的方法如图4.6所示,核B需要读取共享存储区的内容时,核A对数据已经进行了更新,但是核A更新的数据依然存放在高速缓存中,此时核B对存储器中的数据进行读操作的时候,由于数据未被写回,将会发生读取错误;只有核A将高速缓存中数据回写之后才能将次级存储区中的数据进行更新,之后其他内核才能将读取到正确的数据。因此当核A将数据进行了更新之后,首先做的就是将数据回写到次级存储区中,以免发生高速缓存一致性的问题。在项目中函数WritebackCache_self(void*blockPtr,Uint32byteCnt)实现将数据回写功能,其中blockPtr表示的是回写数据存放的首地址,byteCnt代表需要回写的数据的字节数目。核B次级内存2区(本地31核A高速缓存L2、共享存储区DDR)1、核A存储数据2、数据回写到存储区3、核B核读取数据图4.6核A更新内存中数据解决高速缓存一致性读操作的方法如图4.7所示,核A已经完成数据的更新,核B需要进行数据处理,而此时核B端因为之前的旧数据依旧存放在高速缓存区中。核B通过从高速缓存中读取数据,但是高速缓存区中的数据未进行更新,那么就会导致核B读取到的数据依然是之前留下的数据,导致核B进行的数据处理发生错误。因此核B为了得到正确的数据,首先要将自己本身的高速缓存失效,重新将次级存储区中的数据读取到高速缓存中来。项目中函数InvalidCache_self(void*blockPtr,Uint32byteCnt)实现将高速缓存区的数据进行无效化功能,其中blockPtr表示的是数据存放的首地址,byteCnt代表需要失效的数据的字节数目。64 第四章系统设计中遇到的问题核A次级内存2区(本地13核B高速缓存L2、共享存储区DDR)1、核A更新回写数据2、数据读取到高速缓存3、核B读取数据图4.7核B读取内存中数据4.4核间通信错误硬件调试核间通信的过程中,碰到了许多小问题,这些问题虽然很简单的就能被解决,但是人们往往会忽略一些关键点,往往会导致系统崩溃无法正常完成工作。该小节总结性的说明一下这些问题。4.4.1信号量崩溃在调试中发生如图4.8所示的情况,信号量使用发生了错误并且信号量发生错误显示,系统直接崩溃跳出,根据错误报告指出产生此错误的原因是由于一个计数数据溢出导致的,count值超过了65535。经过查阅资料可以知道,在创建信号量的API函数sem_create()中有一个形参count为int类型,而它的最大值确实是65535。在项目中使用的信号量是为了起到一个标志位的作用,当任务被挂起的时候,如果此时信号量得到释放,该任务会继续执行;如果释放的信号量并没有被挂起,那么该信号量就会将创建之初的count值加一,如此循环,由此可以知道为什么信号量会出现崩溃状态。为了解决该问题,可以在挂起信号量之前首先利用API函数sem_get()获取该信号量的count值,如果count值为0,那么之前并无信号量的释放,表示此时正确;如果此时信号量不为0,那么说明算法程序还没进行完成信号量就得到释放,那么算法程序消耗时间过长,需要对算法进行优化处理。图4.8信号量崩溃65 西安电子科技大学硕士学位论文4.4.2核间通信时间过长在系统调试过程中,发生如图4.9的错误,进行脉冲压缩算法的时候,总是会周期性出现处理时间过长的现象,时间已经超过秒级单位。问题一开始认为是算法问题,根据算法消耗时间统计,算法执行消耗的时间根本不可能达到此级别,所以排除是算法问题。最后判断是核间通信方面出现了问题,因为项目程序主要依托于SYS/BIOS系统。DSP6678在使用SYS/BIOS系统,首先执行的是main函数,如果此时系统有任务则执行任务线程,当任务线程完成之后,直接进入idle线程等待下一个线程的发生。当程序执行到BIOS_exit(),退出BIOS系统,之后会打印之前程序中出现打印内容,即main函数中的printf语句。需要特别注意的是只有当芯片退出BIOS系统的时候才会打印程序中printf函数内容,所以项目中程序执行打印。芯片每次重新进入BIOS系统都会重新对核间通信机制进行设置,浪费了大量的时间,因此会出现如图4.9所示的结果。解决方法就是把相应的打印函数直接去掉。图4.9通信机制时间过长4.4.3核间通信失效如图4.10所示,在系统调试过程中,核间通信只能够维持了几次,之后就再也没被触发过。图中标注的变量timer_n是每个核都存在的计数器,每当系统触发了核间通信机制,都会使各自核的计数器加一,以此来判断核间通信触发次数。本次调试66 第四章系统设计中遇到的问题设置为触发50次核间通信,核2和核5却分别触发了0次和7次,核6能够正常运行,然而另外两条支路无法正常工作导致整个系统瘫痪、系统崩溃。从上述描述和调试结果中可以知道,部分通信机制是正常运行,表明通信机制配置是没有出现错误的,只是在触发几次通信之后才会出现错误,因此判断可能是处理数据时,发生了不可抗拒的错误。经过逐步分析,最终确定是因为FPGA向DSP发送数据时,覆盖了部分核0创建的堆,之前在第三章核间进程通信中做了详细介绍,核间通信需要依靠核0创建的堆才能完成核之间的通信,数据覆盖掉堆,导致核之间通信无法正常运行,因此利用cfg文件将该堆独立出来,防止被数据覆盖即可解决该问题。图4.10核间通信失效4.5小结本章结合雷达信号处理机项目的硬件调试过程中遇到的诸多问题进行了详细讨论,通过问题描述、问题分析和问题解决办法做了详细说明,为以后的工作提供了很大的帮助;部分问题原因简单但是不容易被注意到,文章提及到的解决办法对工程的实践具有参考价值。67 西安电子科技大学硕士学位论文68 第五章工作总结与展望第五章工作总结与展望5.1工作总结本论文结合某火控雷达信号处理机项目对基于多核处理器的火控雷达信号处理方法与实现进行论证研究,首先对项目的背景意义以及国内外发展现状进行简单介绍;详细介绍火控雷达信号处理的整个流程,对整个流程的理论做了仿真并与工程实现的算法结果做了对比,得出算法实现正确性的结论;根据信号处理得到的信息进行点迹关联和预测,对目标进行跟踪。论文重点对以下几个方面进行了分析:首先,本论文主要探讨的是线性调频信号,在该模式下,信号处理软件主要包括回波信号的脉冲压缩处理、动目标检测、恒虚警、点迹凝聚、和差归一等理论算法,论文对它们进行了仿真,根据结果验证实现的正确性;雷达系统根据信号处理模块凝聚出来的目标信息进行简单的单目标跟踪,该模块主要介绍了滤波理论知识,并详细介绍了其实现流程。其次,介绍了雷达信号处理系统设计和实现,结合信号处理板硬件资源,首先根据项目需求,确定系统的总体设计,根据芯片多核特点,采用主从、数据流相结合的模式相结合的结构方式确定系统总体框架;数据传输,雷达信号处理机由于需要FPGA与DSP之间进行数据交互,DSP片间数据交互以及DSP与上位机之间进行数据交互,对三种高速传输接口的设计进行相关介绍;最后根据6678DSP本身多核的特点,依据系统的总体设计将任务多核分配以及详细介绍多核通信的方法并详细介绍了片上中断事件映射到核中断的流程。最后,对工程调试中碰到比较突出的问题作了详细的分析以及给出解决办法。主要包括算法优化的问题,该解决方法为项目的算法优化方面有重要的参考价值;SYS/BIOS系统下核间通信问题的解决为整个雷达系统稳定性打下基础。5.2工作展望本论文依托于某火控雷达信号处理机项目,按照计划要求,整个雷达系统主要流程基本完成。事实上雷达信号处理与雷达数据处理所研究的内容涉及十分广泛,由于作者本人水平有限,到现在为止,项目完成进度只是将整个雷达系统的基本流程完成,对于系统中一些关键算法并没做深入研究,并且整个系统还存在很多不完善的地方。例如:项目中动目标检测算法只将FFT变化方法实现并没有将FIR滤波的方法进行实现,希望以后的同学将此完善;项目中单目标跟踪采用的是滤波,该算法适用于匀速直线运动的目标,而对于具有加速度的目标,本论文并没有涉及;跟踪滤波69 西安电子科技大学硕士学位论文模块,本论文只是探讨了单目标跟踪,根据实际环境,可能需要进行多目标跟踪,本论文并没涉及此内容;雷达系统针对不同的目标环境,需要不同的工作模式来应对,因此系统需要完善不同的方法处理数据;系统设计方面,只是单纯的将各个模块架构起来,为了系统功能的稳定性,需要对核间通信、片间通信进行相应的优化。由于本人水平以及工作能力有限,论文存在的错误之处,望读者批评与指正。同样盼望后继同学努力完善项目的不足之处。70 参考文献参考文献[1]刘浪.某制导雷达信号处理机DSP程序设计与优化[D].西安:西安电子科技大学,2011.[2]杨英.某舰载火控雷达信息处理软件的设计与实现[D].西安:西安电子科技大学,2017.[3]崔素芬.脉冲多普勒雷达信号处理软件设计与实现[D].西安:西安电子科技大学,2015.[4]陈伯孝.现代雷达系统分析与设计[M].西安:西安电子科技大学出版社,2012.[5]周万幸.舰载雷达的现状及发展趋势分析[J].现代雷达,2007,29(9):1~4.[6]LeiZhao.AnovelapproachforCFARprocessorsdesign[C].2001IEEERadarConference,Atlanta,Georgia,USA,2001:284-288.[7]ECC,MB,JP.MatchedFilteringPulseCompressingandWaveformDesign[J].Microvave,1984(10,11,12).[8]张贤达.现代信号处理[M].北京:清华大学出版社,1995.[9]丁鹭飞,耿富录.雷达原理[M].西安:西安电子科技大学出版社,2002.[10]任腊梅.基于ADSPTS201的某雷达信号处理软件设计[D].西安电子科技大学,2013.[11]姜婕.舰载火控雷达信号处理机设计与开发[D].西安:西安电子科技大学,2014.[12]都基焱,胡军,张百顺.七种恒虚警处理方案及其性能分析[J].现代雷达,2004,26(4):47-50.[13]夏金艳.某制导雷达信号处理机设计与实现[D].西安:西安电子科技大学,2009.[14]朱江,张军,赵永波.恒虚警检测在DSP芯片上的实现[J].现代雷达,2005,27(4):2-3.[15]韩婧.微波稀布阵雷达目标检测技术的设计与实现[D].西安:西安电子科技大学,2010.[16]王得望,郭金良,韩国强.单脉冲和差通道幅—相失衡分析与改善[J].现代电子技术,2012,35(19):44-46.[17]孙龙祥,张组稷等.雷达数据处理(第二卷)[M].北京:国防工业出版社,1992.[18]刘钦.雷达/红外复合引导头数据融合技术研究[D].西安:西安电子科技大学,2013.[19]王莹.雷达目标跟踪算法研究[D],南京理工大学,2008.[20]SPRABI5A.PowerConsumptionSummaryforKeyStoneC66xDevices[M].TexasInstruments,September2011.[21]SPRUGW1B.KeyStoneArchitectureSerialRapidIO(SRIO)UserGuide[M].TexasInstruments,November2012.[22]SPRUGW8.KeyStoneArchitectureHyperlinkUserGuide[M].TexasInstruments,November2011.[23]SPRUGO6D.SYS/BIOSInter-ProcessorCommunication(IPC)andI/OUser’sGuide[M].TexasInstruments,September2011.71 西安电子科技大学硕士学位论文[24]TexasInstrument.KeyStoneArchitectureChipInterruptControllerUserGuide[M].SPRUGW4A,March2012:9~34.[25]TexasInstrumentInc.TMS320C66xDSPCorePacUserGuide[M].TexasInstruments,November2011.[26]欧旺军.基于多核处理器的机载PD雷达信号处理算法设计[D].西安:西安电子科技大学,2014.[27]TexasInstrumentInc.EnhancedDirectMemoryAccess(EDMA3)ControllerUserGuide[M].TexasInstruments,March2011.[28]方午梅.SAR成像实时处理平台的设计与实现[D].西安:西安电子科技大学,2014.[29]牛金海.TMS320C66xKeyStone架构多核DSP入门与实例精解[M].上海:上海交通大学出版社,2014.[30]牛龙.基于多核处理器的雷达信号实时处理系统研究[D].西安:西安电子科技大学,2014.[31]牛金海.TIC66X多核软件开发(MCSDK)技术[M].上海:上海交通大学出版社,2014.[32]刘洋.基于PCIe的视频监控系统研究与实现[D].成都:电子科技大学,2014.[33]SPRU187S.TMS320C6000OptimizingCompilerv7.2User'sGuide[M].TexasInstruments,March2011.[34]李方慧,王飞,何佩琨.TMS320C6000系列DSPs原理与应用(第2版)[M].北京:电子工业出版社,2003.72 致谢致谢时光荏苒,岁月如梭,依稀记得2015年第一次踏进西安电子科技大学,第一次进入实验室见到曹运合老师,第一次见到师兄师姐,一幕幕历历在目,不禁感叹时光飞逝。经历了在西安电子科技大学的三年研究生生活,不仅拓展了科学研究的视野,还丰富了专业知识,在这里我向所有给予我指导、关心、支持和帮助的老师、亲人、同学、朋友们致以衷心的感谢。首先感谢的是尊敬的曹运合教授,感谢曹老师在我研究生期间对我的理论学习和工程实践给出的指导。三年来,不管是平常的科研学习,还是项目工作,以及整个论文撰写阶段,曹老师都尽自己所能给予我们最大的支持和帮助。从最开始面对科研的茫然不知所措到之后开始收获点点滴滴的辛勤劳动成果都离不开曹老师的帮助以及支持。曹老师渊博的专业知识,严谨的治学态度、务实的工作作风、平易近人的人格魅力,是我在求学过程中深受裨益;生活中的曹老师,平易近人,与学生亦师亦友,与我们谈笑风生,关心我们的生活,就像家人一样希望我们能够越来越好,有任何事情都可以和他交流。我非常庆幸自己遇到曹运合教授这样的导师,同样非常感恩曹老师对我的帮助。感谢实验室为我们提供了良好的学习环境以及科研平台,在此感谢刘铮老师、王俊老师、陈伯孝老师、白洁老师、詹志伟老师等的帮助与支持,感谢电子所所有给予我帮助的老师。感谢同一级的龚作豪、齐晨、张元超、宋小圆等同学,谢谢你们给予我的帮助与支持。尤其感谢张元超同学在我对项目感到迷茫的时候所提供的帮助,谢谢!感谢王宇师兄、吴文华师兄、李龙师兄、李焘师姐、闫浩师兄、张奕师兄、杨英师姐给予我的帮助。感谢我的师弟林达同学,林达师弟有着丰富的硬件知识与学科知识,与他共处的日子里让我受益匪浅,谢谢师弟。同样感谢潘媚师妹、曾丽师妹、李春阳师弟、孙正源师弟、周剑师弟。感谢与你们一起学习玩耍的日子。最后,衷心的感谢我的家人,我的父母、哥哥、姐姐,感谢你们对我读研究生的支持,感谢你们对我的理解、鼓励、照顾与无私的奉献。你们是我最坚实的后盾,每当想到你们的笑脸时,我都会感到充满希望与未来。再次感谢帮助与支持我的人,谢谢大家!73 西安电子科技大学硕士学位论文74 作者简介作者简介1.基本情况彭中硕,男,河北石家庄人,1990年6月出生,西安电子科技大学电子工程学院信号与信息处理专业2015级硕士研究生。2.教育背景2011.08~2015.07河北工业大学,本科,专业:电子科学与技术2015.08~西安电子科技大学,硕士研究生,专业:信号与信息处理3.攻读硕士学位期间的研究成果3.1参与科研项目及获奖[1]某火控雷达信号处理机,2016.8~至今,信号处理算法仿真及其DSP编程实现,数据处理滤波的DSP编程实现,完成系统的整体框架搭建并完成了信号处理与数据处理硬件调试。75 摩XIDIANUNIVERSITY地址:西撤白臟I邮编:710071网址.xidian.edu.cn:www

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭