基于DSP的車載GPS/DR組合導(dǎo)航系統(tǒng)硬件設(shè)計(jì)
關(guān)鍵詞:組合導(dǎo)航系統(tǒng)GPS/DRDSPFPGATL16C554
1 引言
目前,差分GPS水平定位精度已經(jīng)達(dá)到3~5m,完全滿足車輛定位精度的要求。但是,由于在城市高建筑群中或穿過立交橋時(shí),常常會(huì)出現(xiàn)GPS信號(hào)遮擋問題,導(dǎo)致GPS不能正常定位。航位推算(DR)是常用的車輛定位技術(shù),但方向傳感器隨時(shí)間積累誤差較大,不能單獨(dú)、長時(shí)間地使用。采用組合導(dǎo)航系統(tǒng)能夠利用GPS系統(tǒng)提供的位置和速度信息對(duì)DR系統(tǒng)的誤差進(jìn)行實(shí)時(shí)的校正和補(bǔ)償;當(dāng)GPS信號(hào)失鎖時(shí),又可通過DR系統(tǒng)完成航位推算,提高了組合導(dǎo)航系統(tǒng)的可靠性。
組合導(dǎo)航系統(tǒng)除了要完成大量運(yùn)算處理工作外,還要實(shí)現(xiàn)慣性測量單元IMU(陀螺儀和加速度計(jì))和GPS等傳感器的數(shù)據(jù)采集、與外部系統(tǒng)的通信、時(shí)序邏輯控制和人機(jī)接口等功能。在這種情況下,如果僅用一片DSP芯片,則系統(tǒng)的實(shí)時(shí)性能較差,因此多數(shù)組合系統(tǒng)都采用兩個(gè)或多個(gè)DSP或是由一個(gè)或幾個(gè)通用的微處理器MPU加上一個(gè)DSP構(gòu)成主從式多處理器系統(tǒng)的方案。而目前利用DSP與FPGA結(jié)合的方案來處理高速的數(shù)字信號(hào)越來越被廣泛采用。
2 GPS/DR組合導(dǎo)航系統(tǒng)組成
該GPS/DR組合系統(tǒng)具有接收和處理里程計(jì)信息、電子羅盤信息、慣性測量單元IMU以及GPS的信息的功能,其系統(tǒng)組成主框圖如圖1所示。
圖1 組合導(dǎo)航系統(tǒng)的組成框圖
GPS提供的絕對(duì)位置信息可以為DR提供推算定位的初始值并進(jìn)行誤差校正;另一方面,DR的推算結(jié)果可以用于補(bǔ)償部分GPS定位中的隨機(jī)誤差,從而平滑定位軌跡。所以,利用適當(dāng)?shù)姆椒▽煞N系統(tǒng)組合起來,充分利用其定位信息的互補(bǔ)性,就能夠獲得比單獨(dú)使用任何一種方法時(shí)都要高的定位精度和可靠性[1]。
2 中心處理單元的組成
目前導(dǎo)航系統(tǒng)已經(jīng)發(fā)展成為采用多傳感器數(shù)據(jù)融合的組合導(dǎo)航系統(tǒng),導(dǎo)航計(jì)算機(jī)在完成復(fù)雜計(jì)算的同時(shí),還要進(jìn)行大量的數(shù)據(jù)通信,因此必須具有豐富的通信接口,完成傳感器數(shù)據(jù)的采集、傳輸任務(wù)。這就需要中心處理單元能夠在進(jìn)行與外部通信的同時(shí),還要保證計(jì)算精度和運(yùn)算速度。
通過對(duì)系統(tǒng)進(jìn)行功能分析,導(dǎo)航計(jì)算機(jī)需要完成數(shù)據(jù)采集、數(shù)據(jù)處理和數(shù)據(jù)輸出功能。數(shù)據(jù)輸入部分主要完成各種傳感器輸出數(shù)據(jù)的采集;數(shù)據(jù)處理部分主要完成數(shù)據(jù)濾波、微型慣性測量元件的誤差補(bǔ)償和初始對(duì)準(zhǔn)、卡爾曼濾波以及進(jìn)行導(dǎo)航參數(shù)解算等等;數(shù)據(jù)輸出部分主要負(fù)責(zé)導(dǎo)航參數(shù)輸出,應(yīng)用于定位導(dǎo)航或者下一步需要的輸入。由于采用多種傳感器進(jìn)行信息融合,需要較多的外圍通信接口,同時(shí),外部傳感器數(shù)據(jù)輸出通信主要通過符合RS-232標(biāo)準(zhǔn)的異步串行通信口進(jìn)行,如果和中央處理器直接相連,大量的中斷響應(yīng)必將影響到CPU的處理速度,目前各種MCU、MPU可以提供的串口資源也是有限的。傳統(tǒng)的設(shè)計(jì)很多都是采用PC104作為系統(tǒng)的中心處理器,PC104體積大,價(jià)格高,不利于系統(tǒng)的小型化、低功耗和低成本的實(shí)現(xiàn)。因此,本設(shè)計(jì)考慮采用DSP+FPGA+TL16C554的方案進(jìn)行設(shè)計(jì),其中 DSP完成主要的導(dǎo)航參數(shù)計(jì)算,利用TL16C554進(jìn)行外部通信接口的擴(kuò)展,F(xiàn)PGA完成串口的模擬以及相應(yīng)的邏輯控制以保證三者之間通過數(shù)據(jù)線的高速通信,提高系統(tǒng)的運(yùn)行效率和運(yùn)算精度。
中心處理單元的核心處理器要完成大規(guī)模的矩陣運(yùn)算和代數(shù)運(yùn)算,因此系統(tǒng)選用浮點(diǎn)DSP 芯片TMS320VC33。該芯片具有150MFLOPS和75MIPS的運(yùn)算速度,單指令周期13ns。TMS320VC33通過提高硬件功能來提高速度,而其他處理器是通過改善軟件功能或編碼速率來提高速度的。這種通過硬件來提高性能的方式在以往單芯片DSP上是不可能實(shí)現(xiàn)的。處理器具有在單個(gè)周期內(nèi)對(duì)整數(shù),浮點(diǎn)數(shù)據(jù)同時(shí)執(zhí)行并行乘法算數(shù)運(yùn)算的強(qiáng)大功能。同時(shí)該芯片具有低功耗,低成本等特點(diǎn),滿足系統(tǒng)的設(shè)計(jì)要求[2]。
FPGA具有可編程特性,能夠方便地完成我們所需要的邏輯功能。利用FPGA來擴(kuò)展外圍通信接口,主要是擴(kuò)展TTL電平的串行通信口作為系統(tǒng)的備用。根據(jù)完成串行通信的資源需求以及今后擴(kuò)展使用的考慮,這里采用ALTERA公司的ACEX1K 30(以下簡稱ep1k30)來完成這項(xiàng)工作。ep1k30可以提供119000門的資源,具有1728個(gè)邏輯宏單元,可以實(shí)現(xiàn)UART串口,并同時(shí)能夠完成相應(yīng)的譯碼、邏輯控制等功能[3]。
系統(tǒng)包含有多個(gè)傳感器,這就要求處理器要擴(kuò)展出多個(gè)串口。DSP芯片TMS320VC33本身有串行通信口,如果直接利用DSP片上的串口資源進(jìn)行串行通信,只適用于傳輸數(shù)據(jù)比較少,傳輸速率慢的場合,[ ]其軟件編程比較復(fù)雜,而且控制串行通訊要占用很大的系統(tǒng)資源,影響傳感器的實(shí)時(shí)處理功能,因此, 本系統(tǒng)采用了TI公司生產(chǎn)的4通道異步收發(fā)器集成芯片TL16C554擴(kuò)展DSP串口,實(shí)現(xiàn)傳感器與導(dǎo)航計(jì)算機(jī)的通信。該芯片是一種具有串行異步通信
接口的大規(guī)模集成電路芯片,可以實(shí)現(xiàn)數(shù)據(jù)的并/串、串/并的轉(zhuǎn)換功能。其內(nèi)部帶有16字節(jié)的FIFO緩沖器。在FIFO模式下,傳輸和接收前將數(shù)據(jù)緩沖為16字節(jié)數(shù)據(jù)包,減少了CPU的中斷數(shù)量。內(nèi)部包含4片改良的16C550異步傳輸器件,使得串行I/O更加可靠[5]。
中心處理單元的整體硬件設(shè)計(jì)框圖如圖2。
系統(tǒng)充分發(fā)揮了DSP進(jìn)行加、乘運(yùn)算的優(yōu)勢,實(shí)現(xiàn)了導(dǎo)航參數(shù)的實(shí)時(shí)運(yùn)算,并利用FPGA和16C554擴(kuò)展外圍通信接口,將串行數(shù)據(jù)轉(zhuǎn)為并行數(shù)據(jù)后通過數(shù)據(jù)總線同DSP進(jìn)行通信,把處理器從大量的I/O中斷響應(yīng)負(fù)擔(dān)中解脫出來,提高CPU的運(yùn)行效率。解算后的導(dǎo)航參數(shù)再通過數(shù)據(jù)總線到FPGA經(jīng)過轉(zhuǎn)化后以串行數(shù)據(jù)的格式輸出。同時(shí),考慮到IMU數(shù)據(jù)量較大,數(shù)據(jù)更新率大于100Hz,并不把收到的每一包數(shù)據(jù)直接發(fā)送到DSP,而是首先進(jìn)行濾波處理后,再通過一個(gè)FIFO,暫時(shí)將數(shù)據(jù)存儲(chǔ)起來,在數(shù)據(jù)量達(dá)到一定程度的時(shí)候,再通知DSP把這些數(shù)據(jù)取走,這樣做可以進(jìn)一步減輕DSP的負(fù)擔(dān),提高運(yùn)行效率。
3 中心處理單元的硬件設(shè)計(jì)
中心處理單元的硬件部分主要由電源模塊、數(shù)據(jù)通信模塊、FPGA部分、DSP部分等組成。
3.1 系統(tǒng)電源模塊
整個(gè)系統(tǒng)需要使用1.8V、2.5V、3.3V和5V四種電壓。其中DSP需要1.8V和3.3V作為核心供電和I/O供電;FPGA需要2.5V和3.3V電壓供電;GPS需要5V電壓供電,因此整個(gè)系統(tǒng)采用5V電壓供電。然后通過兩片TI公司的TPS73HD3XX系列芯片進(jìn)行電壓轉(zhuǎn)換,可以分別獲得所需電壓。TPS73HD3XX系列芯片為雙路電壓輸出轉(zhuǎn)換芯片,具有非常低的靜態(tài)電流,即使對(duì)于變化負(fù)載,靜態(tài)電流在實(shí)際中仍能夠保持不變。
3.2 數(shù)據(jù)通信模塊
TL16C554擴(kuò)展的數(shù)據(jù)通信模塊的硬件結(jié)構(gòu)圖如圖3所示.
圖3 數(shù)據(jù)通信模塊原理框圖
TL16C554的地址線 A2~A0、數(shù)據(jù)線 D7~D0 分別和 DSP 的地址總線 A2~A0、外部數(shù)據(jù)線 D7~D0直接相連,而片選信號(hào)CSA ~CSD 、讀寫信號(hào)IOR / IOW 以及中斷信號(hào)INTA~INTD 則接入 FPGA 并由 FPGA處理。電路中使用FPGA一方面可以對(duì) UART 的地址靈活配置,另一方面也可以靈活生成 UART 的選通和讀寫信號(hào),從而增強(qiáng)系統(tǒng)的靈活性,方便系統(tǒng)調(diào)試。
3.3 FPGA部分
傳統(tǒng)的系統(tǒng)設(shè)計(jì)大部分是以 DSP 為主機(jī)負(fù)責(zé)數(shù)據(jù)處理、以單片機(jī)為從機(jī)負(fù)責(zé)數(shù)據(jù)采集的多機(jī)并行系統(tǒng),但從機(jī)單片微控制器的速度限制制約著整個(gè)采集處理系統(tǒng)的速度。針對(duì)這種情況,將傳統(tǒng)的多機(jī)結(jié)構(gòu)改為宿主式單機(jī)結(jié)構(gòu):系統(tǒng)仍然以 DSP 作數(shù)據(jù)處理主機(jī),用多種計(jì)數(shù)器、邏輯電路、時(shí)鐘電路組成的純硬件子系統(tǒng)來代替過去的從機(jī)系統(tǒng)[4]。但若采用傳統(tǒng)的方法,即用標(biāo)準(zhǔn)的數(shù)字電路芯片擴(kuò)展實(shí)現(xiàn)此子系統(tǒng),必然需要多片電路芯片,這不僅使系統(tǒng)結(jié)構(gòu)復(fù)雜,連線增多,還使可靠性隨之降低。因此,系統(tǒng)采用了現(xiàn)場可編程門陣列器件FPGA來設(shè)計(jì)該子系統(tǒng)。用FPGA設(shè)計(jì)本系統(tǒng)最大的優(yōu)點(diǎn)是節(jié)省了PCB板子面積,并且滿足低成本的要求。并且在系統(tǒng)設(shè)計(jì)完成后,如果想升級(jí)、改進(jìn)系統(tǒng),不必更改任何硬件電路,
只需要將FPGA內(nèi)部邏輯重新編程即可。
FPGA掉電后配置信息不能夠保存,再次上電時(shí)需要對(duì)其重新進(jìn)行配置,因此需要使用片外存儲(chǔ)器保存配置信息。本設(shè)計(jì)中選擇ALTERA公司的epc2作為配置芯片。epc2是一種可以多次擦寫的具有可編程FLASH的存儲(chǔ)器,專門用于ALTERA公司的FPGA的配置。同時(shí),系統(tǒng)板上的JTAG口,可以實(shí)現(xiàn)對(duì)epc2進(jìn)行編程和對(duì)FPGA的在線配置。通過撥碼開關(guān)實(shí)現(xiàn)對(duì)FPGA的在線配置和對(duì)epc2的編程的切換,具體硬件連接如圖4所示。
圖4 FPGA配置連線方法
3.4 DSP部分
DSP需要系統(tǒng)算法程序存儲(chǔ)器,采用FLASH存儲(chǔ)器進(jìn)行存儲(chǔ),本系統(tǒng)選用四片256k16b CY7C1041擴(kuò)展了兩個(gè)256k32b的RAM,為復(fù)雜組合算法提供了存儲(chǔ)空間;選用了兩片16位SST39VF400 FLASH芯片作為系統(tǒng)的程序存儲(chǔ)器。采用FLASH存儲(chǔ)器克服了傳統(tǒng)EPROM體積大的缺點(diǎn),同時(shí)有利于減小電路板的面積。通過DSP仿真器,按照FLASH的燒寫算法可以將程序?qū)懭氲紽LASH中,完成DSP算法的存儲(chǔ)。系統(tǒng)上電時(shí)通過自舉方式,可以快速加載程序。這樣做可以降低系統(tǒng)的成本、體積和功耗。
在DSP之前增加一個(gè)FIFO,等待數(shù)據(jù)滿足要求后由DSP一起讀取,由此解決IMU輸出數(shù)據(jù)量大造成CPU響應(yīng)頻繁的問題。優(yōu)化了系統(tǒng)的效率。IMU數(shù)據(jù)中各數(shù)據(jù)都由高字節(jié)和低字節(jié)兩部分組成,通過串口接收數(shù)據(jù)后,可以合并為16位的形式。16C554芯片具有16字節(jié)的FIFO緩存器,滿足系統(tǒng)的要求。利用FIFO的半滿信號(hào)作為通知DSP接收數(shù)據(jù)的中斷信號(hào),通知DSP進(jìn)行讀取。根據(jù)DSP進(jìn)行數(shù)據(jù)讀寫的開銷時(shí)間以及所進(jìn)行的運(yùn)算量,并考慮實(shí)際接收數(shù)據(jù)的大小和傳輸波特率,計(jì)算出DSP對(duì)一包數(shù)據(jù)進(jìn)行所花費(fèi)的時(shí)間以及FIFO中寫入一包數(shù)據(jù)花費(fèi)時(shí)間,從而使系統(tǒng)能夠順利完成解算任務(wù)。
4 結(jié)束語
GPS/DR車輛組合定位導(dǎo)航系統(tǒng)將GPS系統(tǒng)與DR系統(tǒng)相結(jié)合,提高了系統(tǒng)的有效性、完整性和精度。利用DR航跡推算系統(tǒng)能保證衛(wèi)星信號(hào)丟失時(shí)車輛位置信息輸出。系統(tǒng)具有全方位、全天候、無遮擋、高精度的特點(diǎn),具有良好的應(yīng)用前景。此組合導(dǎo)航系統(tǒng)具有強(qiáng)大數(shù)據(jù)處理能力,同時(shí)具有體積小、低成本、高可靠性、實(shí)時(shí)性好等優(yōu)點(diǎn)。該設(shè)計(jì)充分發(fā)揮了DSP強(qiáng)大的數(shù)據(jù)處理能力,利用了FPGA的高集成度編程仿真方便、速度快等優(yōu)點(diǎn),而且使得系統(tǒng)在今后具有很大的改進(jìn)余地,可以實(shí)現(xiàn)用同樣的硬件實(shí)現(xiàn)不同的功能。
參 考 文 獻(xiàn)
[1] 畢軍. 車輛GPS/DR定位地系統(tǒng)、地圖匹配及路經(jīng)規(guī)劃技術(shù)的研究[D]. 北京:北京理工大學(xué),2003.
[2] 支長義, 雷天友, 蔡麗麗. TMS320C3x系列浮點(diǎn)DSP原理及應(yīng)用[M]. 成都: 電子科技大學(xué)出版社,2002.
[3] 趙雅. FPGA原理、設(shè)計(jì)與應(yīng)用[M]. 天津: 天津大學(xué)出版社,2000.
[4] 吳越,林支付,葛霽光. 持續(xù)高速數(shù)據(jù)采集與過程控制并行工作的單機(jī)系統(tǒng)設(shè)計(jì)[J]. 化工自動(dòng)化及儀表. 1996,(5).
[5] 雷平,繆玲娟,沈軍. TMS320VC33擴(kuò)展異步串口及串口通信的實(shí)現(xiàn)[J]. 微計(jì)算機(jī)信息,2006 年第 22 卷第 1-2 期,140-142
評(píng)論