在TWS雷达系统中,对跟踪目标的数据进行处理常常要进行卡尔曼滤波。卡尔曼滤波是一种估计的递推滤波算法,具有实时性好和高的特点。但是由于其算法中多为矩阵运算,所以较其它算法如二乘法、α-β算法等的运算量要大。为了减小运算量以满足系统反应时间的要求,应用中往往采用简化的卡尔曼滤波算法,但这样又会带来滤波的降低。在设计卡尔曼滤波数据处理模块时,为了解决该矛盾,采用了高速浮点型DSP TMS320C31。TMS320C31是美国TI公司的第三代DSP产品,其内部采用程序和数据分开的哈佛结构、流水线操作以及并发I/O和CPU操作。芯片内含有专用硬件乘法器和桶形移位寄存器,具有32位的浮点,特别适合类似卡尔曼滤波这样运算量大、实时性和计算要求高的场合。
1 卡尔曼滤波算法 卡尔曼滤波器的状态方程和量测方程如下: 式中,X(K)=[X1(K),X2(K),X3(K),X4(K)]T Z(K)=[Z1(K),Z2(K)]T H=1000 0010 U1(K)表示T时间内径向速度的变化量 其中,G(K)为卡尔曼增益矩阵 2.1 多处理器工作模式下主机和TMS320C31数据通信的设计 数据处理模块由双口RAM IDT7134、TMS320C31(以下简称C31)、EEROM 28F010和高速RAM CY7C199组成通过ISA总线和主计算机连接起来,构成主从式多处理器工作模式,如图1所示。主从式处理器系统的设计关键在于处理器之间的数据交换,主从处理器间的数据交换主要有串行、并行、DMA及双口RAM四种交换方式。本方案采用IDT公司的双口RAM IDT7134实现主计算机和C31间的数据交换。IDT7134内部含有4KB的存储器资源,具有两组地址、数据总线及读写控制线。主计算机和C31可同时对其进行读写操作。在对其内部同一存储单元访问时,要考虑写入和读出数据的完整性。IDT7134没有单独的主从处理器访问控制引脚,设计时需用软件方式来保证主计算机和C31之间数据交换的正确性。本方案中采用了在IDT7134中设置输入输出semaphore的方案,即主计算机在将跟踪雷达的测量数据写入双口RAM后,设置输入semaphore,通知C31读取测量数据。C31进行卡尔曼滤波后,将滤波结果写入双口RAM,设置输出semaphore,通知主计算机读取。双口RAM的数据宽度为8位,C31数据总线宽度为32位。双口RAM的数据总线和C31低8位数据总线相接。为了提高数据处理的,双口RAM中的跟踪数据和C31的滤波结果都以字(32位)为单位进行存储,C31作卡尔曼滤波时,首先按字节读取跟踪数据,然后进行移位,拼接成32位整形数,再将整形数转换为浮点数,进行滤波运算。输出时,则将浮点型的结果转为整形数,按字节写入双口RAM中。双口RAM空间分配如图2所示。 2.2 C31的系统装入和管理 C31有两种工作模式,即微处理器和微计算机方式,本方案中,C31的MCBL/MP脚接高电平,C31工作于微计算机方式。C31具有程序引导功能,其内部固化有引导程序(BOOT),可将来自其它处理器、低速EPROM或其它标准的存储器件的程序和数据装入到高速静态RAM中以全速运行。C31有两种装入方式可供用户选择:串行装入方式和存储器装入方式。存储器装入方式根据地址的不同又分为三种:BOOT1、BOOT2、BOOT3。C31通过查询四个中断引脚确定装入方式,引脚低电平有效。在本方案中,C31的INT脚接低电平。C31采取BOOT2的引导方式,将从0x400000处开始的程序存储器中的卡尔曼滤波程序以8位字节方式引导到首地址为0x100000的高速RAM中。采用外部存储器装入时,需在程序前加装程序头。程序头包括下列信息: (3)装入的目的起始地址; 程序头内容安排见表1。 本方案中程序头配置如下:"08 00 00 00 F8 10 00 00 FF 20 00 00 00 00 10 00",包含以下信息:①外部程序存储器宽度为8位;②EPROM需要7个等待状态;③装入的目的起始地址为0X100000;④程序代码块长度为20FF。程序头在存储器的0X400000开始存放。 3 数据处理模块的软件设计方法 数据处理模块的软件设计是在TI公司的DSP集成开发环境CCS下进行的。它有C2000CC、C3000CCC、CCS5000、CCS6000等4个不同版本。对于C31来讲,可采用C3000CC版本的软件。编程语言既可选择C31的汇编语言也可使用C语言。汇编语言在低层的初始化和I/O控制编程方面效率高,但对于类似卡尔曼滤波这类复杂控制算法的编程却不如C语言简捷,且汇编语言的可读性和移植性差。因此这里采用C语言进行程序设计。设计过程如下: (1)在CCS下用C语言编辑卡尔曼滤波源程序; (2)编写链接命令文件,即扩展名为·cmd文件; (3)建立扩展名为·mak的工程文件,将卡尔曼滤波源程序、链接命令文件以及支持库RTS30·LIB加入到所建立的工程中去; (4)对该工程进行build,若无错误,即生成扩展名为·out的文件。 生成的·out文件可通过仿真器进行调试。调试完成后,将·out文件保存为·out(coff)格式文件。在编程器中对该文件进行修改,把程序头加到卡尔曼滤波程序的前面,一起写入EPROM。 图3和图4给出了数据处理模块的流程图,主计算机和C31可并行工作,通过双口RAM中的semaphone进行查询和设置,完成它们之间的数据交换进而对跟踪目标实现数据处理。 本文介绍了卡尔曼滤波以及基于DSP的卡尔曼滤波器数据处理模块的原理,该模块具有运算能力强和实时性好的特点。在对跟踪目标进行卡尔曼滤波时,其处理周期仅有几十个μs,能很好地满足TMS雷达系统中数据处理任务的需要。 | |||
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。