摘? 要: 對目標跟蹤中的卡爾曼濾波" title="卡爾曼濾波">卡爾曼濾波算法進行了介紹,給出了應用DSP設計卡爾曼濾波數(shù)據(jù)處理模塊" title="處理模塊">處理模塊的實例。詳細介紹了在多處理器工作模式下,主計算機和TMS320C31的工作原理和軟件設計過程。
關(guān)鍵詞: 卡爾曼濾波? TMS320C31? 雙口" title="雙口">雙口RAM
?
在TWS雷達系統(tǒng)中,對跟蹤目標的數(shù)據(jù)進行處理常常要進行卡爾曼濾波。卡爾曼濾波是一種最優(yōu)估計的遞推濾波算法,具有實時性好和精度高的特點。但是由于其算法中多為矩陣運算,所以較其它算法如最小二乘法、α-β算法等的運算量要大。為了減小運算量以滿足系統(tǒng)反應時間的要求,應用中往往采用簡化的卡爾曼濾波算法,但這樣又會帶來濾波精度的降低。在設計卡爾曼濾波數(shù)據(jù)處理模塊時,為了解決該矛盾,采用了高速浮點型DSP TMS320C31。TMS320C31是美國TI公司的第三代DSP產(chǎn)品,其內(nèi)部采用程序和數(shù)據(jù)分開的哈佛結(jié)構(gòu)、流水線操作以及并發(fā)I/O和CPU操作。芯片內(nèi)含有專用硬件乘法器和桶形移位寄存器,具有32位的浮點精度,特別適合類似卡爾曼濾波這樣運算量大、實時性和計算精度要求高的場合。
1 卡爾曼濾波算法
卡爾曼濾波器的狀態(tài)方程和量測" title="量測">量測方程如下:
???? U1(K)表示T時間內(nèi)徑向速度的變化量
???? U2(K)表示T時間內(nèi)方位角速度的變化量
???? V1(K)為距離量測噪聲
?????V2(K)為方位角量測噪聲
???? Z1(K)和Z2(K)分別為距離和角度的測量值
??? 濾波器遞推方程為:
其中, G(K)為卡爾曼增益矩陣
????? Q(K)、R(K)分別為狀態(tài)噪聲協(xié)方差矩陣和量測噪聲協(xié)方差矩陣
2 基于TMS320C31的數(shù)據(jù)處理模塊的工作原理
2.1 多處理器工作模式下主機和TMS320C31數(shù)據(jù)通信的設計
數(shù)據(jù)處理模塊由雙口RAM IDT7134、TMS320C31(以下簡稱C31)、EEROM 28F010和高速RAM CY7C199組成,通過ISA總線和主計算機連接起來,構(gòu)成主從式多處理器工作模式,如圖1所示。主從式處理器系統(tǒng)的設計關(guān)鍵在于處理器之間的數(shù)據(jù)交換" title="數(shù)據(jù)交換">數(shù)據(jù)交換,主從處理器間的數(shù)據(jù)交換主要有串行、并行、DMA及雙口RAM四種交換方式。本方案采用IDT公司的雙口RAM IDT7134實現(xiàn)主計算機和C31間的數(shù)據(jù)交換。IDT7134內(nèi)部含有4KB的存儲器資源,具有兩組地址、數(shù)據(jù)總線及讀寫控制線。主計算機和C31可同時對其進行讀寫操作。在對其內(nèi)部同一存儲單元訪問時,要考慮寫入和讀出數(shù)據(jù)的完整性。IDT7134沒有單獨的主從處理器訪問控制引腳,設計時需用軟件方式來保證主計算機和C31之間數(shù)據(jù)交換的正確性。本方案中采用了在IDT7134中設置輸入輸出semaphore的方案,即主計算機在將跟蹤雷達的測量數(shù)據(jù)寫入雙口RAM后,設置輸入semaphore,通知C31讀取測量數(shù)據(jù)。C31進行卡爾曼濾波后,將濾波結(jié)果寫入雙口RAM,設置輸出semaphore,通知主計算機讀取。雙口RAM的數(shù)據(jù)寬度為8位,C31數(shù)據(jù)總線寬度為32位。雙口RAM的數(shù)據(jù)總線和C31低8位數(shù)據(jù)總線相接。為了提高數(shù)據(jù)處理的精度,雙口RAM中的跟蹤數(shù)據(jù)和C31的濾波結(jié)果都以字(32位)為單位進行存儲,C31作卡爾曼濾波時,首先按字節(jié)讀取跟蹤數(shù)據(jù),然后進行移位,拼接成32位整形數(shù),再將整形數(shù)轉(zhuǎn)換為浮點數(shù),進行濾波運算。輸出時,則將浮點型的結(jié)果轉(zhuǎn)為整形數(shù),按字節(jié)寫入雙口RAM中。雙口RAM空間分配如圖2所示。
?
?
?
2.2 C31的系統(tǒng)裝入和管理
C31有兩種工作模式,即微處理器和微計算機方式,本方案中,C31的MCBL/MP腳接高電平,C31工作于微計算機方式。C31具有程序引導功能,其內(nèi)部固化有引導程序(BOOT),可將來自其它處理器、低速EPROM或其它標準的存儲器件的程序和數(shù)據(jù)裝入到高速靜態(tài)RAM中以全速運行。C31有兩種裝入方式可供用戶選擇:串行裝入方式和存儲器裝入方式。存儲器裝入方式根據(jù)地址的不同又分為三種:BOOT1、BOOT2、BOOT3。C31通過查詢四個中斷引腳確定裝入方式,引腳低電平有效。在本方案中,C31的INT腳接低電平。C31采取BOOT2的引導方式,將從0x400000處開始的程序存儲器中的卡爾曼濾波程序以8位字節(jié)方式引導到首地址為0x100000的高速RAM中。采用外部存儲器裝入時,需在程序前加裝程序頭。程序頭包括下列信息:
????(1)外部存儲器的寬度(8/16/32位);
????(2)程序代碼塊的長度;
(3)裝入的目的起始地址;
????(4)存儲器訪問的定時控制。
程序頭內(nèi)容安排見表1。
?
?
本方案中程序頭配置如下:“08 00 00 00 F8 10 00 00 FF 20 00 00 00 00 10 00”,包含以下信息:①外部程序存儲器寬度為8位;②EPROM需要7個等待狀態(tài);③裝入的目的起始地址為0X100000;④程序代碼塊長度為20FF。程序頭在存儲器的0X400000開始存放。
????C31的EMU0~EMU3為4個仿真引腳,H3為時鐘引腳,按照MPSD仿真頭的定義將其和仿真器相連。C31的仿真器沒有采用傳統(tǒng)的電路仿真器,而是采用先進的掃描仿真器,掃描仿真器通過DSP芯片上提供的仿真引腳和時鐘引腳實現(xiàn)仿真功能。用戶程序存儲在目標系統(tǒng)的片內(nèi)或片外存儲器中,可實時運行,而不會因仿真器引入額外的等待狀態(tài)。
3 數(shù)據(jù)處理模塊的軟件設計方法
數(shù)據(jù)處理模塊的軟件設計是在TI公司的DSP集成開發(fā)環(huán)境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文件可通過仿真器進行調(diào)試。調(diào)試完成后,將·out文件保存為·out(coff)格式文件。在編程器中對該文件進行修改,把程序頭加到卡爾曼濾波程序的前面,一起寫入EPROM。
圖3和圖4給出了數(shù)據(jù)處理模塊的流程圖,主計算機和C31可并行工作,通過雙口RAM中的semaphone進行查詢和設置,完成它們之間的數(shù)據(jù)交換,進而對跟蹤目標實現(xiàn)數(shù)據(jù)處理。
?
?
本文介紹了卡爾曼濾波以及基于DSP的卡爾曼濾波器數(shù)據(jù)處理模塊的原理,該模塊具有運算能力強和實時性好的特點。在對跟蹤目標進行卡爾曼濾波時,其處理周期僅有幾十個μs,能很好地滿足TMS雷達系統(tǒng)中數(shù)據(jù)處理任務的需要。
?
參考文獻
1 Z. Salcic, C.R.Lee.FPGA-Based Adaptive Tracking?Estimation Computer.IEEE Transactions on Aerospace and
? Electranic Systems, 2001.4;37(2):699~706
2 TMS320c3x User’Guide.USA: Texas Instruments Incorporation,1997
3 張雄偉.DSP芯片的原理與開發(fā)應用(第2版).北京:電子工業(yè)出版社,2001.3









