在TWS雷达系统中,对跟踪目标的数据进行处理常常要进行卡尔曼滤波。卡尔曼滤波是一种最优估计的递推滤波算法,具有实时性好和精度高的特点。但是由于其算法中多为矩阵运算,所以较其它算法如最小二乘法、α-β算法等的运算量要大。为了减小运算量以满足系统反应时间的要求,应用中往往采用简化的卡尔曼滤波算法,但这样又会带来滤波精度的降低。在设计卡尔曼滤波数据处理模块时,为了解决该矛盾,采用了高速浮点型DSP TMS320C31。TMS320C31是美国TI公司的第三代DSP产品,其内部采用程序和数据分开的哈佛结构、流水线操作以及并发I/O和CPU操作。芯片内含有专用硬件乘法器和桶形移位寄存器,具有32位的浮点精度,特别适合类似卡尔曼滤波这样运算量大、实时性和计算精度要求高的场合。
1 卡尔曼滤波算法
卡尔曼滤波器的状态方程和量测方程如下:
ρ(K),分别为距离和径向速度的估值
θ(K)、分别为方位角和方位角速度的估值
U1(K)表示T时间内径向速度的变化量
U2(K)表示T时间内方位角速度的变化量
V1(K)为距离量测噪声
V2(K)为方位角量测噪声
Z1(K)和Z2(K)分别为距离和角度的测量值[page]
滤波器递推方程为:
其中, G(K)为卡尔曼增益矩阵
Q(K)、R(K)分别为状态噪声协方差矩阵和量测噪声协方差矩阵
2 基于TMS320C31的数据处理模块的工作原理
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所示。
[page]
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中。采用外部存储器装入时,需在程序前加装程序头。程序头包括下列信息:
(1)外部存储器的宽度(8/16/32位);
(2)程序代码块的长度;
(3)装入的目的起始地址;
(4)存储器访问的定时控制。
程序头内容安排见表1。
本方案中程序头配置如下:“08 00 00 00 F8 10 00 00 FF 20 00 00 00 00 10 00”,包含以下信息:①外部程序存储器宽度为8位;②EPROM需要7个等待状态;③装入的目的起始地址为0X100000;④程序代码块长度为20FF。程序头在存储器的0X400000开始存放。[page]
C31的EMU0~EMU3为4个仿真引脚,H3为时钟引脚,按照MPSD仿真头的定义将其和仿真器相连。C31的仿真器没有采用传统的电路仿真器,而是采用先进的扫描仿真器,扫描仿真器通过DSP芯片上提供的仿真引脚和时钟引脚实现仿真功能。用户程序存储在目标系统的片内或片外存储器中,可实时运行,而不会因仿真器引入额外的等待状态。
3 数据处理模块的软件设计方法
数据处理模块的软件设计是在TI公司的DSP集成开发环境CCS下进行的。它有C2000CC、C3000CC、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雷达系统中数据处理任务的需要。
上一篇:多核DSP的BootLoader程序的实现
下一篇:TMS320C6711中心定位实时图像处理系统
推荐阅读最新更新时间:2024-05-02 20:43
- Allegro MicroSystems 在 2024 年德国慕尼黑电子展上推出先进的磁性和电感式位置感测解决方案
- 左手车钥匙,右手活体检测雷达,UWB上车势在必行!
- 狂飙十年,国产CIS挤上牌桌
- 神盾短刀电池+雷神EM-i超级电混,吉利新能源甩出了两张“王炸”
- 浅谈功能安全之故障(fault),错误(error),失效(failure)
- 智能汽车2.0周期,这几大核心产业链迎来重大机会!
- 美日研发新型电池,宁德时代面临挑战?中国新能源电池产业如何应对?
- Rambus推出业界首款HBM 4控制器IP:背后有哪些技术细节?
- 村田推出高精度汽车用6轴惯性传感器
- 福特获得预充电报警专利 有助于节约成本和应对紧急情况