通用DSP(精选3篇)
通用DSP 篇1
0 引言
二次雷达 (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.
[11]付丽娜, 顾春平.单脉冲二次雷达目标信息处理研究[J].中国雷达, 2008 (3) :39-43.
通用DSP 篇2
关键词:低密度奇偶校验码,矩阵压缩,编码器,数字信号处理器
近年来,低密度奇偶校验码因其优异的性能已经逐渐在实际的工程中应用,编解码器的优化设计是LDPC码得以工程应用的前提[1]。LDPC码最简单直接的传统编码方法是基于生成矩阵的编码方式,但以往的研究通常认为该方法复杂度高,在码长较长时消耗硬件资源量大而难以在工程上实现,尤其是基于DSP平台实现的LDPC编码器速率并不高[2,3]。同时,在编码器设计中,校验矩阵的存储一般采用一维数组存放矩阵“1”元素列标的方法(以下简称存储列标法),该方法能一定程度上减少矩阵所需的存储空间,但列标索引增加了其后对矩阵使用的复杂度,且该方法一般只适用于规则的LDPC码,难以普遍适用。
DSP平台具有编程简单,工程上易于调试,且很多廉价的DSP芯片已经具备优异的性能等优点。本文研究国际空间数据系统咨询委员会(CCSDS)公布的一类准循环LDPC码的DSP快速编码实现:验证了该码的优异性能;对“贪婪算法”进行了复杂度简化;提出了一种新的矩阵存储方法,在减小矩阵存储空间的同时较大的提高了编码速率;基于TMS320C6416 DSP平台,分别在两种编码算法下设计了快速编码器。
1 特点及性能
文献[4]提出一类准循环LDPC(QC-LDPC)删余码[5],其校验矩阵H是基于原模图[6]构造的。本文以信息位长度k=1 024,码率1/2的码字为例进行研究。该码字的H阵形式为
式中:k=1 024时,M=512;0M为512×512的零矩阵;IM为512×512的单位阵;Πi(i=1,2,…,8)为512×512的矩阵[7]。
从图1中可以看出,该码具有较好的性能。因此,对其编码器进行设计研究具有工程应用价值。
2 两种常用的编码方法分析及改进
LDPC码传统的编码方法是其理论研究中常用的一种编码方式[8],原理是采用高斯消元的方法,由校验矩阵H得出生成矩阵G。假设待编码信息流为m,编码生成的码字为m′,则基于传统编码方式的公式为
m′=m×G (2)
由于生成矩阵G已经不具有稀疏性,以往的研究认为,该方法虽然简单,但矩阵存储量大,编码运算量大,不易硬件实现。因此,通常认为该方法常只用于理论研究。下文介绍了一种新的矩阵存储方法,降低了该方法的硬件资源消耗,实现了快速编码,证明其工程上完全可以实现[9],如图2所示。
为降低其编码复杂度为O(N+g2),而参数g一定时,该方法由于涉及较多的矩阵运算和存储,仍具有较高的复杂度,否则在编码结束后还须进行列变换,还原原始比特位置,从而增加了编码复杂度。
鉴于此,本文对“贪婪算法”做一定的改进,不经行列置换完成近似线性复杂度的编码。将本文采用的H阵模块化如图3所示。
即有
将式(3)变形
经验证,可得
由(5)式推得两部分校验比特
式(6)的计算过程可分以下两个步骤进行:
1)由图3可知T为1 024×1 024的单位阵,故式(6)中的(-ET-1B⊕D)-1(-ET-1A⊕C)=(-EB⊕D)-1(-EA⊕C),在以后用到的过程中,直接调取使用,减少了编码的计算量。
2)计算出pT2后,由于A矩阵为循环阵,B矩阵为准循环阵,易计算出pT1=-T-1(AsT⊕BpT2)=AsT⊕BpT2。从而得出原始的码字x=(s,p1,p2),删除后512位即为最终需发射的码字。
可以发现,编码过程中无须对H阵进行存储,只需存储步骤1)中的固定矩阵。原“贪婪算法”与本文改进的“贪婪算法”的计算过程分别如表1所示。
由表1可以看出,为相对减少运算复杂度,原“贪婪算法”除了对H阵存储列标,还应直接存储维数为512×512的逆矩阵-(EB⊕D)-1,因而所需存储空间仍较大,复杂度也较高。而改进的“贪婪算法”因为直接存储了[(-EB⊕D)-1(-EA⊕C)]阵,计算过程较原“贪婪算法”简单,降低了运算复杂度,但[(-EB⊕D)-1(-EA⊕C)]阵为512×1 024矩阵,其存储仍占用较大的空间,需设计一种好的矩阵存储方法,如下文所述。
3 矩阵存储设计
以往的文献中,针对矩阵的存储设计,常采用的方法是定义较小的数组来存储校验矩阵的列标,由于校验矩阵的稀疏性,这种方法可以大大减小矩阵的存储空间,但该方法通常只局限于规则的LDPC码[3],且在后面调用校验矩阵时,需按列标索引,运算复杂度仍较高,制约了编码器速率。
一般情况下,DSP平台上可定义的最小数组类型为char型,在TI C6000系列平台上[10],该数据类型为8 bit数,在C5000平台上,该数据类型为16 bit数,而LDPC码的校验矩阵或生成矩阵元素仅有“0”或“1”组成,每个元素只占用1 bit空间,因此若直接存储矩阵会造成较大的空间浪费。
为减小矩阵的存储空间,本文提出一种新的矩阵存储方法,即直接将矩阵元素逐行按顺序每8位(基于C6000平台)或每16位(C5000平台)串接为一个数据,然后存储在char型数组中,也可将每32位串接为1个数据存储在int型数组中(基于C6000平台),这样可较大减小矩阵的存储空间,相对于直接存储H阵,存储量减少在95%以上。需要注意的是,在编码过程中须对待编码信息流做如上变换,即将信息位按顺序进行相应位数的串接,再进行一定的编码计算。该存储方法可较大减少矩阵存储空间,降低编码复杂度。
4 快速编码器的DSP实现及仿真分析
仿真中采用TI的C6416平台,该芯片具有甚长指令字处理能力,最高主频可达1.1 GHz,EMIF接口速率可达数百兆比特/秒,且TI为配合C6000系列推出了效率可达80%左右的汇编级C编译器。本仿真采用C语言,代码优化方法如下:
1) 采用新的矩阵存储方法。根据本文上一小节中的编码算法思想,需要对校验比特pT2计算过程中-ET-1B⊕D)-1(-ET-1A⊕C)=(-EB⊕D)-1(-EA⊕C)的结果进行存储。由于该结果为一固定矩阵,且其中的元素只含有“0”和“1”,因此,基于C6416平台,可将该矩阵的每32位合为1个32 bit数据,存储在一维数组unsigned int n[8192]中,有效减少了矩阵存储空间。
2) 减小存储器相关性。关键字const指定存储单元保持不变,有助于编译器确定指令的不相关性,提高指令的并行执行度,因此可将一维数组unsigned int n[8192]定义为const unsigned int n[8192]。
3) 使用内联(intrinsic)函数。对应(1)中的矩阵存储方法,将信息流s的每32位结合为1个32 bit数,再计算[(-EB⊕D)-1(-EA⊕C)]sT,结果用int型数组存储。注意到,只含有“0”、“1”的乘法运算用“&”运算代替,可减少指令周期的消耗量。同时使用内联函数_dotpu4(Uint src1& Uint src2,16843009)&1来实现矩阵乘法,完成编码。
此外,在优化C代码的过程中,还采取了合理选择编译器自动优化选项、对循环体进行适度的展开等方法。通过优化,编码所需的指令周期大大缩短。
同时,为验证本文提出的矩阵存储方法的普遍适用性,采用传统的编码算法,即对所采用的校验矩阵,直接求出生成矩阵,然后采用新的矩阵存储方法进行存储、编码。对于本文采用的信息位长度k=1 024,码率1/2的码字,经CCS 3.1 Simulator仿真,得到两种编码算法与原“贪婪算法”下的编码性能比较如表2所示。
由表2可以看出,在改进的“贪婪算法”下,相对于存储列标法,本文提出的矩阵存储方法兼顾了减小矩阵存储空间与提高编码速率,且基于传统的编码算法,也能获得较小的矩阵存储和较高的编码速率。经硬件测试,基于主频1 GHz的DSP C6416平台,采用本文提出的矩阵存储方法,在改进的“贪婪算法”下编码速率达到100 Mbit/s;在传统的编码算法下,编码速率达到60 Mbit/s。由于传统编码方法适用于所有类型的LDPC码,因此本文的矩阵压缩存储方法具有通用性。
5 结束语
本文提出了一种新的矩阵存储算法,有效地减小了矩阵存储空间,提高了编码速率。并基于码进行快速编码研究,对“贪婪算法”进行改进,并通过运算技巧与C6416功能的结合,设计了适合于该类码C6416平台快速实现的编码器。仿真表明,本文提出的矩阵存储方法能够兼顾减小矩阵存储空间与提高编码速率,且具有普遍适用性。
参考文献
[1]林竞力,敬龙江,陈涛.CDTTB标准中LDPC码的编码结构设计[J].电子科技大学学报,2009,38(3):341-344.
[2]李寰宇,柏鹏,彭卫东.基于快速编译码的LDPC-CPM系统设计[J].航天控制,2011,29(5):53-57.
[3]陈蓉,汪一鸣.一种高效的LDPC编码器的DSP设计与实现[J].通信技术,2008,41(7):44-46.
[4]CCSDS.Low-density parity-check codes LDPC for use in near-earthand deep space applications[S].2007.
[5]PISHRO N H.Results on punctured LDPC codes[C]//Proc.Informa-tion Theory Workshop 2004.[S.l.]:IEEE Press,2004:215-219.
[6]THORPE J.Low-density parity-check(LDPC)codes constructed fromprotographs[EB/OL].[2012-08-15].http://ipnpr.jpl.nasa.gov/progress_report/42-154/154C.pdf.
[7]LIU Yuanhua,WANG Xinmei,WEI Ru.Generalized combining methodfor design of quasi-cyclic LDPC codes[C]//Proc.CommunicationsLetters.[S.l.]:IEEE Press,2008:392-394.
[8]雷维嘉,谢显中,李广军.一种基于LDPC编码的协作通信方式[J].电子学报,2007,35(4):712-715.
[9]王加庆,于晓燕,吴乐南.数字调幅广播中基于LDPC码的多级编码方案[J].通信学报,2006,27(1):85-90.
通用DSP 篇3
DSP具有丰富的指令系统、高效的运算速度以及大存储器的高速寻址能力,同时具有灵活的接口和通信能力,便于组织多处理器并行运算、流水作业以及资源共享。其处理速度和运算精度都在不断提高,大大促进了雷达、声纳、通信等领域电子技术的发展。为了获得更多信息,需要探测更多的通道和更宽的频带,由此采样到高速、海量的原始数据流,并实时处理。数字信号处理器的飞速发展,使得高速信号处理得到普及[1,2]。各个领域的信号处理也具有了基本相同的处理结构,主要由三个部分组成:1. 模拟信号转换为数字信号的采样模块;2. 完成大量数据处理的信号处理模块;3. 重现模拟信号的信号再生模块。通用数字信号处理平台由PC和可扩展的DSP处理板组成,DSP以高性能的数据流运算完成实时信号处理,而PC完成信号处理结果数据的显示以及人机交互。随着应用规模的不断扩大,PC和DSP之间实时通信的数据带宽增大,成为系统设计的瓶颈。本文介绍了在工程中已经实现的PC与DSP之间实时高速数据通信的实用技术。
2 通用信号处理平台简介
2.1 硬件结构及特点
本文描述的通用数字信号处理平台采用AD公司的ADSP21060数字信号处理器,该处理器采用超级哈佛结构,40ns指令周期,可以完成32bit定点运算或32/40bit浮点运算,具有120MFLOPS的峰值运算能力。每块DSP处理板由六片ADSP21060数字信号处理器组成一个并行处理系统,每片ADSP21060具有六路传输速率为40MByte/s的LINK ports,LINK ports由片内I/O处理器控制,I/O处理器和片内运算控制单元并行工作[2,5]。通过LINK ports处理板内的ADSP21060以及板与板之间的ADSP21060组成了一个交织的数据流处理及通信网。
通用数字信号处理平台基于CPCI(COMPACT PCI)总线微型计算机系统,总线上的各个设备占用的I/O、存储器空间以及中断等都可以由主机(PC)统一分配,不会出现设备冲突,同时可以根据需要裁剪DSP处理模块。
通用数字信号处理平台通过CPCI总线扩展DSP处理板,通过板外LINK ports扩展数据通路,组成一个可灵活裁剪、性能强大的信号处理平台。
2.2 软件结构及特点
信号处理应用一般具有多通道数据、数据流量大、算法复杂等特点,应用于通用数字信号处理平台必然是多任务并行操作,多个任务之间又有复杂的数据交换。所以,通用数字信号处理平台采用实时多任务操作系统Virtuoso管理平台的硬件配置、资源分配与共享等。Virtuoso是WindRiver公司针对DSP处理器环境设计的嵌入式实时多任务操作系统[4]。
这样,通用数字信号处理平台开发人员主要关心数字信号处理问题本身,将问题划分为多个任务。每片DSP可以运行一个或多个任务,或者一个任务由多片DSP完成,这主要由任务运算量和DSP处理能力的比较决定。一般情况下,数字信号处理问题在通用数字信号处理平台的实现可以看成是数据流处理的问题。
2.3 数据流处理框架
在雷达、声纳、通信等领域的数字信号处理可以简单描述为模拟信号的再生并发射、单路/多路数据的采样(分割为帧数据)、帧数据的一级或者多级处理、产生结果数据。在这个流程中,往往由PC控制DSP的执行动作和传递处理参数;由PC获取结果数据并显示;并且由PC处理人机界面等,如图1所示。
3 PC与DSP之间的实时高速通信
结合工程背景分析查询方式下PC与DSP实时、高速数据通信技术。
3.1 工程背景
①24路通道A/D信号采样,采样周期为96k,数字化16bit(2Byte),数据帧周期为8ms,每路每帧数据768点,A/D采样数据由PC实时存盘;②每个信号处理周期为1248数据帧,既1248×8ms=9984ms;③DSP信号处理模块对数据帧实时处理,经过多级信号处理后,结果数据帧长为256点,浮点型(4Byte),帧周期为256ms,共48路,每个信号处理周期为39帧(39×256ms=9984ms),结果数据由PC显示。那么每个信号处理周期PC与DSP之间通信的数据量及数据通信率计算如下。
768×24×2×1248+256×48×4×39=46800KByte (1)
46800KByte/9984ms×1000=4687.5KByte/s (2)
A/D采样数据缓存在A/D板DSP芯片,DSP处理结果数据分别缓存在四个DSP芯片。其系统框图如图2所示。
为了防止数据混叠,与PC数据通信的A/D板DSP缓存和DSP结果数据缓存都采用了双缓存技术,既DSP缓存数据到存储器A时,PC与DSP存储器B通信,DSP缓存数据到存储器B时,PC与DSP存储器A通信。
3.2 平台数据通信率实验
通用数字信号处理平台PC与DSP之间的数据通信有两种方式:1. CPU方式CPCI总线数据通信;2. DMA方式CPCI总线数据通信。经过实验测得不同数据帧长、单个或多个数据缓存区两种方式下数据通信时间如表1所示(取100次实验样本的平均值)。
从表1分析得出,小数据量通信CPU方式高效,而大数据量通信DMA方式明显高效,并且无需运算控制单元干预。表中最后一行表示PC相继与5个DSP数据缓存区通信。通信的数据包括五个部分:A/D采样数据(48×768Byte)、DSP处理结果数据(单片48×256Byte,共有四片)。在切换数据存储区的情况下,通信时间明显增加。即使DMA方式下的通信时间(约13ms)也大于A/D采样数据帧周期(8ms),所以必须对A/D采样数据帧进行缓存。DSP片内存储器空间较小,需要使用共享片外存储器。为了和DSP处理结果数据通信周期相同,需要缓存32组A/D数据帧。每片DSP处理板共享外存为2MByte,缓存32组A/D数据帧为768×24×2×32=1152KByte,所以使用两块DSP处理板片外存储器,分别定义为储存器A、储存器B(双缓存技术)。这样A/D采样的数据和DSP处理结果数据通信周期均为256ms。缓存后的A/D数据帧采用DMA方式CPCI总线通信,DSP信号处理结果数据采用CPU方式CPCI总线通信。
3.3 周期同步
在PC与DSP数据通信前,需要有一个握手过程,使得PC与DSP之间数据通信周期同步。根据数字信号处理系统多为数据流周期处理的过程,查询方式是实现周期同步的一种有效方法。PC与DSP数据通信周期同步示意图如图3所示。
图3中横轴表示时间,平行排列的横轴分别为模拟信号输入、A/D采样、DSP处理和PC处理等系统的流程。每个8ms周期A/D采样数据成帧,由LINK ports分两路数据传输,一路传输到DSP处理板进行处理,另一路传输到共享外存缓存。A/D板DSP片内设计一状态量,当A/D采样32帧数据后,设置状态量有效,表示存储器已满。PC完成上一周期A/D采样数据存盘和DSP结果数据显示后,查询A/D板内的状态量。当查询到状态量有效后,PC开始DMA方式CPCI总线数据通信,完成数据通信后,设置状态量为无效,这个过程周期反复。DSP处理结果数据的通信同样处理。要求PC在256ms内完成这些动作,否则会出现数据通信的紊乱。
4 结束语
本文介绍的通用数字信号处理平台查询方式下PC与DSP之间的实时、高速数据通信技术已经在工程中得到了应用,经过长时间的应用测试得出,数据通信的性能和稳定性都达到了要求。中断方式下PC与DSP之间的实时、高速数据通信也有同样的结论。随着通用信号处理平台二期的开发,PC与DSP之间实时数据通信会有更高的带宽。
参考文献
[1]李启虎.数字式声纳设计原理.合肥:安徽教育出版社,2002.
[2]苏涛等.DSP实用技术.西安:西安电子科技大学出版社,2002.
[3]通用信号处理平台实用说明书.北京:中科海讯科技有限公司.2001.
[4] Virtuoso user guide for Version 4.1.Eonic Systems,Inc.2000.