在水声对抗技术迅速发展的背景下,声自导鱼雷的尺度识别能力已成为鱼雷捕获、跟踪目标的基本条件[1]。在水声对抗领域,鱼雷对抗器材也从常用的点源模拟器发展到尺度式目标模拟器。
为提高目标特性模拟真实程度,开展了多点实时收发水下声学尺度目标模拟器的研制,相对于现有单收多发方式声学尺度目标模拟器,其信号处理复杂度提高较多,在此情况下,采用多DSP系统可以较好完成信号处理任务。
通过Link口互联,ADSP TS201S芯片集成了无缝多处理器支持功能,便于多处理器DSP系统设计,为处理器间通信提供了最大的带宽。ADSP TS201S有4个独立的Link口,为LVDS的差分连接模式,可以进行完全双向通信,Link口时钟最高可达到核内时钟速度,提供了更高的工作速度和更高的可靠性[2]。
在多点实时收发水下声学尺度目标模拟器信号处理程序中,应用Link口完成以下工作:进行多DSP链式加载,利用Link口中断同步多DSP工作和DSP间实时双向通信。
数据收发板和信号处理板构成多点实时收发尺度目标模拟器信号处理设备,板上多片DSP通过Link口实现互联,其结构如图1所示。
![]() |
图 1 系统结构图 Fig. 1 System structure diagram |
在通过Link口耦合的多处理器系统中,实现整个系统的程序加载是非常关键的一步[3]。如果程序不能正常加载,整个DSP系统将不能工作,而且对于多个DSP程序来说,其加载顺序也有要求,如果加载顺序不对,DSP系统工作会产生紊乱。
目标模拟器信号处理程序共有5个模块,分别工作于5片DSP上。在片间Link口通信程序中,DSP2,DSP3和DSP4开始工作后应首先将其接收Link口初始化,等待DSP1通过各Link口发送A/D采样数据;同理DSP1开始工作后也应首先将其接收Link口初始化,等待DSP0通过Link口发送A/D采样数据,这样发送端发送的数据接收端才能够无误接收。因此,信号处理板上的程序模块应先于数据收发板上的程序模块开始工作,系统通过控制各片DSP程序模块的加载顺序来保证工作正常。
采用主机独立加载各片DSP程序模块的方式不能精确控制加载完成时间,各DSP开始工作时刻不能严格掌握,容易造成加载故障。采用多DSP链式加载方式,在各片DSP程序模块编写时已经确定了加载顺序,编译时被加载程序模块嵌入上一级程序模块,运行时只需加载一片后,其他模块的加载可链式展开。
目标模拟器各片DSP程序模块加载按以下顺序进行:DSP4首先通过主机加载模式加载,之后DSP4通过Link口加载模式加载DSP1,DSP1通过Link口加载模式加载DSP3,DSP2和DSP0。
DSP0程序模块编译为.ldr格式,在DSP1程序模块编译时嵌入;DSP3,DSP2和DSP1程序模块编译为.ldr格式,在DSP4程序模块编译时嵌入,最终生成的DSP4.dxe文件集成了目标模拟器信号处理程序所有功能模块,当DSP4程序模块加载运行后,通过Link口加载DSP1程序模块。DSP1程序模块自动引导运行后使能其Link口中断,等待DSP0使能IRQ中断,读取AD芯片的采样数据并进行通过Link口将数据送向DSP1。
DSP开发软件Visual DSP++内嵌了Link口加载内核引导程序,可以在对被加载DSP程序模块以.ldr格式编译时生成长度为256个字的程序加载码,其中包含TS201初始化程序以及用户程序长度等信息,添加在DSP程序模块开始部分,与其合成一个Link口加载方式的输出文件.ldr[4]。系统默认的Link口加载内核引导程序TS201-link.asm是针对处理器Link口3进行编写的,各片DSP程序模块应将其分别设置为实际所需的Link口数字,逐次重新编译系统自带工程生成新的库文件可执行代码,才能使用加载内核引导程序[5]。
在加载过程中,加载程序模块将加载码和用户程序分开传输。Link口缓冲器LBUFTX每次接收4字长度的被加载DSP程序模块加载码,Link口状态寄存器LTSTATX位表明Link口忙闲状态,只要Link口将之前数据传输完毕,即可再向缓冲器写入4字数据。完成256字长加载码传送后,应等待被加载程序加载码运行后再进行用户程序传送。同理,传送完用户程序部分后,也应等待其运行并完成其自身初始化。之后,整个多DSP系统Link口加载过程结束。Link口加载流程如图2所示。
![]() |
图 2 Link口加载流程图 Fig. 2 Flow chart of Link port loading |
另外,加载程序模块进行程序加载时,需要预先知道被加载程序模块的长度,在加载程序模块中定义这个长度数值的空间,而这个长度数值可根据编译器报错中的提示进行修正。
2 利用Link口中断同步多DSP工作各片DSP程序模块Link口通信程序中,将相应的DMA通道禁止使能,当有数据进入Link口接收缓冲时,就会产生Link口服务请求中断[6]。
鱼雷自导信号被目标模拟器不同接收换能器接收,经前置信号处理电路组件处理后形成多个中断,传至数据收发板DSP0。在一个中断周期内,DSP0依次响应所有中断,将所有A/D采样数据接收存储,随后立即打包并通过Link口传送至DSP1。DSP1因此产生Link口中断,在中断服务程序中将接收的A/D数据分发至对应的DSP2,DSP3和DSP4芯片,并以此中断为片上时间计数单位。DSP2,DSP3和DSP4产生Link口中断,接收A/D数据进行并行信号处理。
![]() |
图 3 目标模拟器工作流程图 Fig. 3 Flow chart of target simulator operation |
每片DSP处理信号产生的回波控制信息在下次中断时均返回至DSP1,由其回传至数据收发板DSP0。DSP0依据回波控制信息将存储的A/D采样数据送至功率放大组件,控制多路回波的形成及回发。
这样,利用Link口中断可以同步多DSP工作,在一个中断周期内,将采集的数据块完成处理,保证了系统的实时性。目标模拟器工作流程如图3所示。
3 DSP间实时双向通信ADSP TS201S片上有4个Link口,每个Link口都由4位双向差分数据线和另外3个控制信号构成。数据通信时,Link口可以直接由处理器核控制,也可以由DMA控制器控制[7]。ADSP TS201S Link口结构如图4所示。
![]() |
图 4 ADSP TS201S Link口结构 Fig. 4 ADSP TS201S Link prot structure |
目标模拟器各DSP程序模块Link口通信采用DMA方式,实现无处理器核参与的数据高速传送。编码为1位传输方式。通过设置LTCTLx,Link口配置为内核时钟的1/1。
信号处理板上的DSP1芯片内嵌数据交换模块,其中的代码实现Link口双向通信功能,在一个采样中断周期内,接收多个自导信号采样数据,根据预定处理任务分配策略转发至不同芯片;与此同时接收不同芯片处理结果,并上传至数据收发板DSP0。
DSP1芯片集中控制其上的4个Link口完成以上功能,且都采用双向通信功能,由于多路数据流传输时序需要,应在接收代码后插入NOP语句,形成合适的等待时间之后才能进行数据分发操作。同理,数据分发后也应等待再进行接收返回的回波控制信息动作,等待接收完毕之后再进行最后的回传发送。
4 结 语本文主要介绍了在多点实时收发水下声学尺度目标模拟器信号处理程序开发中,TS201S Link口在多DSP系统中的多项应用,展示了Link口通信的强大功能,可供软件开发者参考。
[1] |
陈建青, 赵俊杰. 一种尺度目标模拟器的模拟逼真度分析[J]. 鱼雷技术, 2014, 22 (6): 442–446.
CHEN Jian-qing, ZHAO Jun-jie. Fidelity analysis of a scale target simulator[J]. Torpedo Technology, 2014, 22 (6): 442–446. |
[2] | 刘书明, 罗勇江. ADSP TS20XS系列DSP原理与应用设计[M]. 北京: 电子工业出版社, 2007, 184–185. |
[3] | 刘书明, 苏涛, 罗军辉. TigerSHARC DSP应用系统设计[M]. 北京: 电子工业出版社, 2004, 405. |
[4] | B LERNER. ADSP-TS20x TigerSHARC处理器的启动加载内核运行[EB/OL]. Engineer-to-Engineer指南, 2004, EE-200. |
[5] | Analog Devices公司. ADSP-TS201 TigerSHARC处理器编程参考[EB/OL]. United States: Analog Devices公司, 2003, 6:16–19. |
[6] | 苏涛, 崔向阳. TigerSHARC系列DSP应用教程[M]. 北京: 电子工业出版社, 2009, 29. |
[7] | Analog Devices公司. ADSP-TS201 TigerSHARC处理器硬件参考[EB/OL]. United States: Analog Devices公司, 2003, 5:36–37. |