王 晴,黃朝麗
(陜西航天時代導航設備有限公司,寶雞 721006)
近年來,隨著計算機系統與衛星通信技術的發展,國內軍用、民用兩大領域對導航計算機的精確性、實時性、穩定性提出了更高的要求。導航計算機的主要工作包括:1)采集IMU信號,并通過解算得到慣導系統的位置、速度和姿態角信號;2)采集GNSS接收裝置的位置和速度信號;3)對慣導系統和GNSS接收裝置各自提供的導航信息進行組合導航解算[1],利用兩個系統的各自優勢,同時完成導航解算及人機接口等多任務工作,以得到更高精度的導航結果。傳統的單處理器負擔重,數據處理速度慢,難以滿足作戰系統實時性的要求。在國外,多核技術已成功應用于軍用導航計算機;而在國內,多核技術在軍用導航計算機上的應用仍存在多核數據通信沖突、實時性難以保證的技術瓶頸。
針對上述問題,本文設計了一種雙口RAM[2]的雙DSP導航計算機,即由兩個DSP對導航計算機的任務進行分工,構成主從式系統各自完成相應功能,并充分利用雙口RAM獨特的數據共享存儲能力,其最大訪問時間為20ns,無需插入等待,解決了雙處理器之間數據通信的延時問題,高效實現了主從DSP之間的實時通信。
慣性導航系統由MEMS傳感器電路(內置1個三軸陀螺儀、1個三軸加速度計、1個三軸磁力計、1個氣壓計)、導航計算機、二次電源及GNSS接收裝置組成,如圖1所示。

圖1 慣性導航系統組成框圖Fig.1 Block diagram of inertial navigation system
總體設計分為硬件設計和軟件設計兩大部分。硬件設計[3]包括二次電源設計、MEMS傳感器設計、導航計算機設計(數據采集模塊、導航解算模塊[4]、雙口RAM數據共享模塊)等;軟件設計包括GPS信號接收[5]、MEMS傳感器數據采集、導航解算、主從DSP雙口RAM通信、數據對外輸出等。
導航計算機以雙DSP芯片為核心處理器[6],主從控制器均采用TMS320F28335,對導航計算機的任務進行分工。其中,主控制器DSP芯片通過SPI口采集MEMS傳感器的3個陀螺儀、3個加速度計、磁力計、氣壓計信號,同時通過UART通信接口對GNSS接收裝置進行配置,接收GPS信號,并通過雙口RAM將數據寫入共享存儲體;從控制器DSP將數據分時讀出,進行導航解算及信息融合后,將姿態、位置等導航信息通過雙口RAM寫入共享存儲體;主控制器DSP分時讀出姿態、位置等導航信息,并通過RS232串口對外輸出;同時,從控制器可將導航信息通過其預留的RS232串口輸出。總體設計的原理框圖如圖2所示。

圖2 總體設計原理框圖Fig.2 Block diagram of general design principle
二次電源為慣性導航系統各模塊供電,包括:MEMS傳感器(3.3V)、 導航計算機(3.3V 和1.9V)、GNSS接收裝置及天線(3.3V和5V)。為便于對慣導系統電源進行檢測和排故,各供電系統進行了故障隔離點設計。慣導系統供電設計的原理框圖如圖3所示。

圖3 慣性導航系統供電設計原理框圖Fig.3 Block diagram of inertial navigation system power supply design principle
MEMS傳感器要求輸出三軸陀螺儀、三軸加速度計、三軸磁力計、氣壓計、溫度數據,傳感器及慣性導航系統的具體指標要求如表1所示。

表1 傳感器及慣性導航系統指標要求Table 1 Index requirements of sensor and inertial navigation system
對慣性傳感器的精度、動態范圍、功耗、成本、物理尺寸等諸多因素進行綜合考慮,最終選用AD公司的ADIS 16488,其簡單的SPI外設接口大大簡化了設計的復雜度,可通過SPI接口對傳感器內部寄存器進行配置,即可采集傳感器數據,并對數據進行FIR濾波處理。
(1)數據采集模塊設計
數據采集[7]模塊作為主控制器,選用TI公司的TMS320F28335浮點型DSP,該器件具有精度高、成本低、功耗小、性能高、外設集成度高等優點。TMS320F28335具有150MHz的高速處理能力,有32位浮點處理單元,支持8個隱藏的外部中斷,串行外圍接口豐富,包含3個SCI(UART)模塊、1個SPI模塊、2個多通道緩沖串行接口(可配置為SPI接口)、其他外部通信接口等。主控制器通過讀寫片選信號中斷信號數據線地址線對雙口RAM進行操作,并為從控制器提供系統時鐘,與外設接口進行通信。
(2)導航解算模塊設計
導航解算模塊作為從控制器,選用TI公司的TMS320F28335浮點型DSP。其設計原理與主控制器類似,僅任務分工不同,主要完成導航解算、數據融合,通過讀寫片選信號中斷信號對雙口RAM進行操作,將導航解算最終結果通過雙口RAM進行數據共享。
雙口RAM數據共享模塊設計也是至關重要的一部分,雙口RAM芯片選用CY7C038[8],主要完成主從控制器之間的快速數據共享通信。
CY7C038是Cypress公司研制的64K×18位低功耗CMOS型靜態雙端口RAM,最大訪問時間為20ns,可提供兩套完全獨立的數據、地址、讀寫控制總線,兩個處理器可同時對雙端口進行操作(讀寫、數據存取等),具有兩套中斷邏輯,可用于實現兩個處理器之間的 “握手”。同時,CY7C038具備完全獨立的忙邏輯,可保護兩個處理器對同一地址單元進行正確的讀寫操作。
為了避免兩個DSP對同一地址單元進行訪問時由于地址數據爭用而造成的數據讀寫錯誤,綜合考慮忙邏輯(硬件判優)和中斷邏輯(中斷判優)兩種方式[9]:
(1)硬件判優方式
雙口RAM具有解決兩個處理器同時訪問同一地址單元的硬件仲裁邏輯(即BUSY控制)。當兩端的DSP不對雙口RAM的同一地址單元存取時,BUSYL=H、BUSYR=H,可正常存儲;當兩端的DSP對雙口RAM同一地址單元存取時,哪個端口的請求存取信號出現后,則其對應的BUSY=L,禁止其存取數據;在無法判定兩個端口存取請求信號出現的先后順序時,控制線 BUSYL、BUSYR只有一個為低電平。這樣,就能保證對應于BUSY=H的端口能進行正常存取,對應于BUSY=L的端口不能存取,從而避免了兩個DSP同時競爭地址資源而引發錯誤的可能。
(2)中斷判優方式
雙口RAM具有兩套獨立的中斷邏輯,通過兩個INT引腳分別接到兩個DSP的中斷引腳上,以實現雙DSP的 “握手”。在雙口RAM的數據傳送中,兩端的DSP都把雙口RAM作為自己存儲器的一部分。當兩個DSP需要數據傳送時,首先將需要傳送的數據存放到雙口RAM某段約定的地址單元中,然后進行寫操作,用以向另一端口發出一個中斷,這樣另一開端口就進入其相應的中斷服務子程序,將約定地址單元的數據讀出,然后進行寫操作,清除該中斷。
綜合考慮系統的空間尺寸、復雜程度、成本等,發現硬件判優方式需要單獨的可編程邏輯器件來實現,而中斷判優方式只需要通過軟件編程即可實現,既節約了設計成本,又簡化了電路設計。因而,本系統采用中斷判優方式實現,其與主控制器及從控制之間的連接方式如圖4所示。

圖4 雙口RAM通信原理框圖Fig.4 Block diagram of dual-port RAM communication principle
根據系統的工作原理,軟件設計主要包含兩大模塊:1)主控制器軟件設計;2)從控制器軟件設計。
主控制器DSP軟件主要包括:主程序、GPS信號接收、MEMS傳感器數據采集和雙口RAM數據共享。其中,主程序負責完成系統的初始化,建立整個程序的運行框架等;GPS信號接收主要通過RS232接口完成;MEMS傳感器數據采集主要通過SPI接口完成;雙口RAM數據共享程序主要是通過兩套中斷邏輯,使兩端的主從控制器DSP都把雙口RAM作為自己存儲器的一部分。
主控制器采集GPS信號、MEMS傳感器數據,通過控制雙口RAM的左端口將采集的數據存放到雙口RAM某段約定的地址單元中,然后向0×FFFFH(即右端口的郵箱)進行寫操作的同時,右端口產生一個中斷信號。從控制器DSP響應到中斷后,將約定地址單元的數據讀出,然后對雙口RAM右端口的郵箱進行寫操作,用以清除該中斷,讀取導航數據的操作方式與此相同。主控制器的軟件流程如圖5所示。
從控制器DSP主要通過雙口RAM讀取GPS數據和MEMS傳感器數據,進行初始對準[10]、導航解算[11]、數據融合,最終通過控制雙口RAM的右端口將導航數據存放到雙口RAM某段約定的地址單元中,然后向0×FFFEH(即左端口的郵箱)進行寫操作的同時,左端口產生一個中斷信號。主控制器DSP響應到中斷后,將約定地址單元的數據讀出,然后對雙口RAM左端口的郵箱進行寫操作,用以清除該中斷,讀取傳感器數據的操作方式與此相同。從控制器的軟件流程如圖6所示。

圖6 從控制器軟件流程Fig.6 Flowchart of slave controller software
對該慣導系統進行聯調測試,主控制器DSP實時采集MEMS傳感器信號,并進行濾波處理,接收GPS信號,通過雙口RAM將采集的原始數據進行實時共享,從控制器DSP讀取原始數據,對GPS信號進行解碼,最終通過兩種方法驗證系統的可行性及實時性,慣導系統實物圖如圖7所示。

圖7 慣導系統實物圖Fig.7 Physical drawing of inertial navigation system
(1)試驗一:靜態傳感器數據采集
將慣導系統放置在平板上,通過測試電纜分別與直流穩壓電源及測試計算機串口連接,慣導系統實際坐標系為右前上。
試驗方法一:慣導系統連接正常后,主控制器DSP采集MEMS傳感器數據及GNSS數據,通過雙口RAM將數據實時共享給從控制器DSP,從控制器DSP進行數據解碼及處理后,通過從控制器DSP外掛的RS232通信接口與上位機通信,上位機實時顯示傳感器數據及導航結果。
試驗方法二:產品連接正常后,從控制器DSP通過雙口RAM讀取主控制器DSP共享的MEMS傳感器數據,對數據進行解碼及處理,將處理后的傳感器數據及導航結果通過雙口RAM進行實時共享,主控制器DSP實時讀取數據,通過主控制器DSP外掛的RS232通信接口(最終通信接口)與上位機通信,上位機實時顯示傳感器數據及導航結果。
通過示波器監測兩種方法的數據輸出端口,進行多次測試,數據輸出延時均小于15ns。通過上位機顯示傳感器數據,取慣導系統1min穩定輸出后的數據,如表2所示。其中,試驗方法一的數據為表2的序號1~5,試驗方法二的數據為表2的序號6~10。

表2 傳感器數據Table 2 Data of sensor
根據上述輸出數據繪制輸出曲線圖,如圖8所示。采用極值法進行分析,由表 2、圖8(a)~圖8(c)可知,前5組數據最大值與后5組數據最小值的極差值分別為 0.005548(°)/s、 0.008798(°)/s、0.007282 (°)/s, 分 別 對 應 19.9728 (°)/h、31.6728(°)/h、26.2151(°)/h, 滿足傳感器單獨驗收測試 40(°)/h、 56(°)/h、 50(°)/h 的指標; 由表 2、圖8(d)~圖8(f)可知,前5組數據最大值與后5組數據最小值的極差值分別為0.09154mg、0.344684mg、1.078552mg,遠小于傳感器單獨驗收測試16mg的指標。由于本階段產品暫未使用磁力計數據和氣壓計數據,故不進行磁力計和氣壓計數據分析。

圖8 傳感器數據曲線圖Fig.8 Curves of sensor data
(2)試驗二:動態導航驗證
將慣導系統與高精度慣導同時安裝在試驗車底板的工裝上,慣導系統的GNSS天線放置在車頂,確保無遮擋物,準備時間結束后開始跑車,用測試機同時記錄兩個系統的導航輸出,跑車結束后對比兩個系統的航向角、俯仰角和滾動角,慣導系統1h的試驗結果如表3所示。

表3 組合導航結果Table 3 Results of integrated navigation
靜態試驗的兩種方法和動態試驗均表明了系統設計的可靠性、穩定性,系統實時性高,可行性也得到充分驗證,為后續的導航解算、數據共享和通信提供了良好的基礎。
本文介紹了雙口RAM在導航計算機中的設計與實現,充分利用了雙口RAM數據通信最大訪問時間20ns、無需插入等待、采用中斷判優方式可避免雙DSP對同一地址單元爭用而引起的沖突等優點,實現了導航計算機主從控制器之間實時、高效的數據通信,解決了傳統方法數據采集所帶來的時間滯后問題(一般在毫秒(ms)量級),滿足了系統的實時性要求。經過多次試驗驗證,系統具有運行穩定可靠、調試方便、較高的通信速度等優點。另外,本文方法簡化了硬件及軟件設計,可移植性高,具有較高的工程應用價值。