王 晴,黃朝麗
(陜西航天時(shí)代導(dǎo)航設(shè)備有限公司,寶雞 721006)
近年來,隨著計(jì)算機(jī)系統(tǒng)與衛(wèi)星通信技術(shù)的發(fā)展,國內(nèi)軍用、民用兩大領(lǐng)域?qū)?dǎo)航計(jì)算機(jī)的精確性、實(shí)時(shí)性、穩(wěn)定性提出了更高的要求。導(dǎo)航計(jì)算機(jī)的主要工作包括:1)采集IMU信號,并通過解算得到慣導(dǎo)系統(tǒng)的位置、速度和姿態(tài)角信號;2)采集GNSS接收裝置的位置和速度信號;3)對慣導(dǎo)系統(tǒng)和GNSS接收裝置各自提供的導(dǎo)航信息進(jìn)行組合導(dǎo)航解算[1],利用兩個(gè)系統(tǒng)的各自優(yōu)勢,同時(shí)完成導(dǎo)航解算及人機(jī)接口等多任務(wù)工作,以得到更高精度的導(dǎo)航結(jié)果。傳統(tǒng)的單處理器負(fù)擔(dān)重,數(shù)據(jù)處理速度慢,難以滿足作戰(zhàn)系統(tǒng)實(shí)時(shí)性的要求。在國外,多核技術(shù)已成功應(yīng)用于軍用導(dǎo)航計(jì)算機(jī);而在國內(nèi),多核技術(shù)在軍用導(dǎo)航計(jì)算機(jī)上的應(yīng)用仍存在多核數(shù)據(jù)通信沖突、實(shí)時(shí)性難以保證的技術(shù)瓶頸。
針對上述問題,本文設(shè)計(jì)了一種雙口RAM[2]的雙DSP導(dǎo)航計(jì)算機(jī),即由兩個(gè)DSP對導(dǎo)航計(jì)算機(jī)的任務(wù)進(jìn)行分工,構(gòu)成主從式系統(tǒng)各自完成相應(yīng)功能,并充分利用雙口RAM獨(dú)特的數(shù)據(jù)共享存儲能力,其最大訪問時(shí)間為20ns,無需插入等待,解決了雙處理器之間數(shù)據(jù)通信的延時(shí)問題,高效實(shí)現(xiàn)了主從DSP之間的實(shí)時(shí)通信。
慣性導(dǎo)航系統(tǒng)由MEMS傳感器電路(內(nèi)置1個(gè)三軸陀螺儀、1個(gè)三軸加速度計(jì)、1個(gè)三軸磁力計(jì)、1個(gè)氣壓計(jì))、導(dǎo)航計(jì)算機(jī)、二次電源及GNSS接收裝置組成,如圖1所示。
圖1 慣性導(dǎo)航系統(tǒng)組成框圖Fig.1 Block diagram of inertial navigation system
總體設(shè)計(jì)分為硬件設(shè)計(jì)和軟件設(shè)計(jì)兩大部分。硬件設(shè)計(jì)[3]包括二次電源設(shè)計(jì)、MEMS傳感器設(shè)計(jì)、導(dǎo)航計(jì)算機(jī)設(shè)計(jì)(數(shù)據(jù)采集模塊、導(dǎo)航解算模塊[4]、雙口RAM數(shù)據(jù)共享模塊)等;軟件設(shè)計(jì)包括GPS信號接收[5]、MEMS傳感器數(shù)據(jù)采集、導(dǎo)航解算、主從DSP雙口RAM通信、數(shù)據(jù)對外輸出等。
導(dǎo)航計(jì)算機(jī)以雙DSP芯片為核心處理器[6],主從控制器均采用TMS320F28335,對導(dǎo)航計(jì)算機(jī)的任務(wù)進(jìn)行分工。其中,主控制器DSP芯片通過SPI口采集MEMS傳感器的3個(gè)陀螺儀、3個(gè)加速度計(jì)、磁力計(jì)、氣壓計(jì)信號,同時(shí)通過UART通信接口對GNSS接收裝置進(jìn)行配置,接收GPS信號,并通過雙口RAM將數(shù)據(jù)寫入共享存儲體;從控制器DSP將數(shù)據(jù)分時(shí)讀出,進(jìn)行導(dǎo)航解算及信息融合后,將姿態(tài)、位置等導(dǎo)航信息通過雙口RAM寫入共享存儲體;主控制器DSP分時(shí)讀出姿態(tài)、位置等導(dǎo)航信息,并通過RS232串口對外輸出;同時(shí),從控制器可將導(dǎo)航信息通過其預(yù)留的RS232串口輸出。總體設(shè)計(jì)的原理框圖如圖2所示。
圖2 總體設(shè)計(jì)原理框圖Fig.2 Block diagram of general design principle
二次電源為慣性導(dǎo)航系統(tǒng)各模塊供電,包括:MEMS傳感器(3.3V)、 導(dǎo)航計(jì)算機(jī)(3.3V 和1.9V)、GNSS接收裝置及天線(3.3V和5V)。為便于對慣導(dǎo)系統(tǒng)電源進(jìn)行檢測和排故,各供電系統(tǒng)進(jìn)行了故障隔離點(diǎn)設(shè)計(jì)。慣導(dǎo)系統(tǒng)供電設(shè)計(jì)的原理框圖如圖3所示。
圖3 慣性導(dǎo)航系統(tǒng)供電設(shè)計(jì)原理框圖Fig.3 Block diagram of inertial navigation system power supply design principle
MEMS傳感器要求輸出三軸陀螺儀、三軸加速度計(jì)、三軸磁力計(jì)、氣壓計(jì)、溫度數(shù)據(jù),傳感器及慣性導(dǎo)航系統(tǒng)的具體指標(biāo)要求如表1所示。
表1 傳感器及慣性導(dǎo)航系統(tǒng)指標(biāo)要求Table 1 Index requirements of sensor and inertial navigation system
對慣性傳感器的精度、動態(tài)范圍、功耗、成本、物理尺寸等諸多因素進(jìn)行綜合考慮,最終選用AD公司的ADIS 16488,其簡單的SPI外設(shè)接口大大簡化了設(shè)計(jì)的復(fù)雜度,可通過SPI接口對傳感器內(nèi)部寄存器進(jìn)行配置,即可采集傳感器數(shù)據(jù),并對數(shù)據(jù)進(jìn)行FIR濾波處理。
(1)數(shù)據(jù)采集模塊設(shè)計(jì)
數(shù)據(jù)采集[7]模塊作為主控制器,選用TI公司的TMS320F28335浮點(diǎn)型DSP,該器件具有精度高、成本低、功耗小、性能高、外設(shè)集成度高等優(yōu)點(diǎn)。TMS320F28335具有150MHz的高速處理能力,有32位浮點(diǎn)處理單元,支持8個(gè)隱藏的外部中斷,串行外圍接口豐富,包含3個(gè)SCI(UART)模塊、1個(gè)SPI模塊、2個(gè)多通道緩沖串行接口(可配置為SPI接口)、其他外部通信接口等。主控制器通過讀寫片選信號中斷信號數(shù)據(jù)線地址線對雙口RAM進(jìn)行操作,并為從控制器提供系統(tǒng)時(shí)鐘,與外設(shè)接口進(jìn)行通信。
(2)導(dǎo)航解算模塊設(shè)計(jì)
導(dǎo)航解算模塊作為從控制器,選用TI公司的TMS320F28335浮點(diǎn)型DSP。其設(shè)計(jì)原理與主控制器類似,僅任務(wù)分工不同,主要完成導(dǎo)航解算、數(shù)據(jù)融合,通過讀寫片選信號中斷信號對雙口RAM進(jìn)行操作,將導(dǎo)航解算最終結(jié)果通過雙口RAM進(jìn)行數(shù)據(jù)共享。
雙口RAM數(shù)據(jù)共享模塊設(shè)計(jì)也是至關(guān)重要的一部分,雙口RAM芯片選用CY7C038[8],主要完成主從控制器之間的快速數(shù)據(jù)共享通信。
CY7C038是Cypress公司研制的64K×18位低功耗CMOS型靜態(tài)雙端口RAM,最大訪問時(shí)間為20ns,可提供兩套完全獨(dú)立的數(shù)據(jù)、地址、讀寫控制總線,兩個(gè)處理器可同時(shí)對雙端口進(jìn)行操作(讀寫、數(shù)據(jù)存取等),具有兩套中斷邏輯,可用于實(shí)現(xiàn)兩個(gè)處理器之間的 “握手”。同時(shí),CY7C038具備完全獨(dú)立的忙邏輯,可保護(hù)兩個(gè)處理器對同一地址單元進(jìn)行正確的讀寫操作。
為了避免兩個(gè)DSP對同一地址單元進(jìn)行訪問時(shí)由于地址數(shù)據(jù)爭用而造成的數(shù)據(jù)讀寫錯誤,綜合考慮忙邏輯(硬件判優(yōu))和中斷邏輯(中斷判優(yōu))兩種方式[9]:
(1)硬件判優(yōu)方式
雙口RAM具有解決兩個(gè)處理器同時(shí)訪問同一地址單元的硬件仲裁邏輯(即BUSY控制)。當(dāng)兩端的DSP不對雙口RAM的同一地址單元存取時(shí),BUSYL=H、BUSYR=H,可正常存儲;當(dāng)兩端的DSP對雙口RAM同一地址單元存取時(shí),哪個(gè)端口的請求存取信號出現(xiàn)后,則其對應(yīng)的BUSY=L,禁止其存取數(shù)據(jù);在無法判定兩個(gè)端口存取請求信號出現(xiàn)的先后順序時(shí),控制線 BUSYL、BUSYR只有一個(gè)為低電平。這樣,就能保證對應(yīng)于BUSY=H的端口能進(jìn)行正常存取,對應(yīng)于BUSY=L的端口不能存取,從而避免了兩個(gè)DSP同時(shí)競爭地址資源而引發(fā)錯誤的可能。
(2)中斷判優(yōu)方式
雙口RAM具有兩套獨(dú)立的中斷邏輯,通過兩個(gè)INT引腳分別接到兩個(gè)DSP的中斷引腳上,以實(shí)現(xiàn)雙DSP的 “握手”。在雙口RAM的數(shù)據(jù)傳送中,兩端的DSP都把雙口RAM作為自己存儲器的一部分。當(dāng)兩個(gè)DSP需要數(shù)據(jù)傳送時(shí),首先將需要傳送的數(shù)據(jù)存放到雙口RAM某段約定的地址單元中,然后進(jìn)行寫操作,用以向另一端口發(fā)出一個(gè)中斷,這樣另一開端口就進(jìn)入其相應(yīng)的中斷服務(wù)子程序,將約定地址單元的數(shù)據(jù)讀出,然后進(jìn)行寫操作,清除該中斷。
綜合考慮系統(tǒng)的空間尺寸、復(fù)雜程度、成本等,發(fā)現(xiàn)硬件判優(yōu)方式需要單獨(dú)的可編程邏輯器件來實(shí)現(xiàn),而中斷判優(yōu)方式只需要通過軟件編程即可實(shí)現(xiàn),既節(jié)約了設(shè)計(jì)成本,又簡化了電路設(shè)計(jì)。因而,本系統(tǒng)采用中斷判優(yōu)方式實(shí)現(xiàn),其與主控制器及從控制之間的連接方式如圖4所示。
圖4 雙口RAM通信原理框圖Fig.4 Block diagram of dual-port RAM communication principle
根據(jù)系統(tǒng)的工作原理,軟件設(shè)計(jì)主要包含兩大模塊:1)主控制器軟件設(shè)計(jì);2)從控制器軟件設(shè)計(jì)。
主控制器DSP軟件主要包括:主程序、GPS信號接收、MEMS傳感器數(shù)據(jù)采集和雙口RAM數(shù)據(jù)共享。其中,主程序負(fù)責(zé)完成系統(tǒng)的初始化,建立整個(gè)程序的運(yùn)行框架等;GPS信號接收主要通過RS232接口完成;MEMS傳感器數(shù)據(jù)采集主要通過SPI接口完成;雙口RAM數(shù)據(jù)共享程序主要是通過兩套中斷邏輯,使兩端的主從控制器DSP都把雙口RAM作為自己存儲器的一部分。
主控制器采集GPS信號、MEMS傳感器數(shù)據(jù),通過控制雙口RAM的左端口將采集的數(shù)據(jù)存放到雙口RAM某段約定的地址單元中,然后向0×FFFFH(即右端口的郵箱)進(jìn)行寫操作的同時(shí),右端口產(chǎn)生一個(gè)中斷信號。從控制器DSP響應(yīng)到中斷后,將約定地址單元的數(shù)據(jù)讀出,然后對雙口RAM右端口的郵箱進(jìn)行寫操作,用以清除該中斷,讀取導(dǎo)航數(shù)據(jù)的操作方式與此相同。主控制器的軟件流程如圖5所示。
從控制器DSP主要通過雙口RAM讀取GPS數(shù)據(jù)和MEMS傳感器數(shù)據(jù),進(jìn)行初始對準(zhǔn)[10]、導(dǎo)航解算[11]、數(shù)據(jù)融合,最終通過控制雙口RAM的右端口將導(dǎo)航數(shù)據(jù)存放到雙口RAM某段約定的地址單元中,然后向0×FFFEH(即左端口的郵箱)進(jìn)行寫操作的同時(shí),左端口產(chǎn)生一個(gè)中斷信號。主控制器DSP響應(yīng)到中斷后,將約定地址單元的數(shù)據(jù)讀出,然后對雙口RAM左端口的郵箱進(jìn)行寫操作,用以清除該中斷,讀取傳感器數(shù)據(jù)的操作方式與此相同。從控制器的軟件流程如圖6所示。
圖6 從控制器軟件流程Fig.6 Flowchart of slave controller software
對該慣導(dǎo)系統(tǒng)進(jìn)行聯(lián)調(diào)測試,主控制器DSP實(shí)時(shí)采集MEMS傳感器信號,并進(jìn)行濾波處理,接收GPS信號,通過雙口RAM將采集的原始數(shù)據(jù)進(jìn)行實(shí)時(shí)共享,從控制器DSP讀取原始數(shù)據(jù),對GPS信號進(jìn)行解碼,最終通過兩種方法驗(yàn)證系統(tǒng)的可行性及實(shí)時(shí)性,慣導(dǎo)系統(tǒng)實(shí)物圖如圖7所示。
圖7 慣導(dǎo)系統(tǒng)實(shí)物圖Fig.7 Physical drawing of inertial navigation system
(1)試驗(yàn)一:靜態(tài)傳感器數(shù)據(jù)采集
將慣導(dǎo)系統(tǒng)放置在平板上,通過測試電纜分別與直流穩(wěn)壓電源及測試計(jì)算機(jī)串口連接,慣導(dǎo)系統(tǒng)實(shí)際坐標(biāo)系為右前上。
試驗(yàn)方法一:慣導(dǎo)系統(tǒng)連接正常后,主控制器DSP采集MEMS傳感器數(shù)據(jù)及GNSS數(shù)據(jù),通過雙口RAM將數(shù)據(jù)實(shí)時(shí)共享給從控制器DSP,從控制器DSP進(jìn)行數(shù)據(jù)解碼及處理后,通過從控制器DSP外掛的RS232通信接口與上位機(jī)通信,上位機(jī)實(shí)時(shí)顯示傳感器數(shù)據(jù)及導(dǎo)航結(jié)果。
試驗(yàn)方法二:產(chǎn)品連接正常后,從控制器DSP通過雙口RAM讀取主控制器DSP共享的MEMS傳感器數(shù)據(jù),對數(shù)據(jù)進(jìn)行解碼及處理,將處理后的傳感器數(shù)據(jù)及導(dǎo)航結(jié)果通過雙口RAM進(jìn)行實(shí)時(shí)共享,主控制器DSP實(shí)時(shí)讀取數(shù)據(jù),通過主控制器DSP外掛的RS232通信接口(最終通信接口)與上位機(jī)通信,上位機(jī)實(shí)時(shí)顯示傳感器數(shù)據(jù)及導(dǎo)航結(jié)果。
通過示波器監(jiān)測兩種方法的數(shù)據(jù)輸出端口,進(jìn)行多次測試,數(shù)據(jù)輸出延時(shí)均小于15ns。通過上位機(jī)顯示傳感器數(shù)據(jù),取慣導(dǎo)系統(tǒng)1min穩(wěn)定輸出后的數(shù)據(jù),如表2所示。其中,試驗(yàn)方法一的數(shù)據(jù)為表2的序號1~5,試驗(yàn)方法二的數(shù)據(jù)為表2的序號6~10。
表2 傳感器數(shù)據(jù)Table 2 Data of sensor
根據(jù)上述輸出數(shù)據(jù)繪制輸出曲線圖,如圖8所示。采用極值法進(jìn)行分析,由表 2、圖8(a)~圖8(c)可知,前5組數(shù)據(jù)最大值與后5組數(shù)據(jù)最小值的極差值分別為 0.005548(°)/s、 0.008798(°)/s、0.007282 (°)/s, 分 別 對 應(yīng) 19.9728 (°)/h、31.6728(°)/h、26.2151(°)/h, 滿足傳感器單獨(dú)驗(yàn)收測試 40(°)/h、 56(°)/h、 50(°)/h 的指標(biāo); 由表 2、圖8(d)~圖8(f)可知,前5組數(shù)據(jù)最大值與后5組數(shù)據(jù)最小值的極差值分別為0.09154mg、0.344684mg、1.078552mg,遠(yuǎn)小于傳感器單獨(dú)驗(yàn)收測試16mg的指標(biāo)。由于本階段產(chǎn)品暫未使用磁力計(jì)數(shù)據(jù)和氣壓計(jì)數(shù)據(jù),故不進(jìn)行磁力計(jì)和氣壓計(jì)數(shù)據(jù)分析。
圖8 傳感器數(shù)據(jù)曲線圖Fig.8 Curves of sensor data
(2)試驗(yàn)二:動態(tài)導(dǎo)航驗(yàn)證
將慣導(dǎo)系統(tǒng)與高精度慣導(dǎo)同時(shí)安裝在試驗(yàn)車底板的工裝上,慣導(dǎo)系統(tǒng)的GNSS天線放置在車頂,確保無遮擋物,準(zhǔn)備時(shí)間結(jié)束后開始跑車,用測試機(jī)同時(shí)記錄兩個(gè)系統(tǒng)的導(dǎo)航輸出,跑車結(jié)束后對比兩個(gè)系統(tǒng)的航向角、俯仰角和滾動角,慣導(dǎo)系統(tǒng)1h的試驗(yàn)結(jié)果如表3所示。
表3 組合導(dǎo)航結(jié)果Table 3 Results of integrated navigation
靜態(tài)試驗(yàn)的兩種方法和動態(tài)試驗(yàn)均表明了系統(tǒng)設(shè)計(jì)的可靠性、穩(wěn)定性,系統(tǒng)實(shí)時(shí)性高,可行性也得到充分驗(yàn)證,為后續(xù)的導(dǎo)航解算、數(shù)據(jù)共享和通信提供了良好的基礎(chǔ)。
本文介紹了雙口RAM在導(dǎo)航計(jì)算機(jī)中的設(shè)計(jì)與實(shí)現(xiàn),充分利用了雙口RAM數(shù)據(jù)通信最大訪問時(shí)間20ns、無需插入等待、采用中斷判優(yōu)方式可避免雙DSP對同一地址單元爭用而引起的沖突等優(yōu)點(diǎn),實(shí)現(xiàn)了導(dǎo)航計(jì)算機(jī)主從控制器之間實(shí)時(shí)、高效的數(shù)據(jù)通信,解決了傳統(tǒng)方法數(shù)據(jù)采集所帶來的時(shí)間滯后問題(一般在毫秒(ms)量級),滿足了系統(tǒng)的實(shí)時(shí)性要求。經(jīng)過多次試驗(yàn)驗(yàn)證,系統(tǒng)具有運(yùn)行穩(wěn)定可靠、調(diào)試方便、較高的通信速度等優(yōu)點(diǎn)。另外,本文方法簡化了硬件及軟件設(shè)計(jì),可移植性高,具有較高的工程應(yīng)用價(jià)值。