在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)分別為距離和角度的測量值 濾波器遞推方程為: 其中, 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所示。 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開始存放。 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雷達系統中數據處理任務的需要。 |