張 禹,錢宏文
(中國電子科技集團公司第五十八研究所,江蘇 無錫 214072)
為了滿足現(xiàn)代戰(zhàn)爭的需求,車輛在運動中時刻清楚自己所處方位、車輛姿態(tài)及行駛速度等信息[1],需要以捷聯(lián)慣導系統(tǒng)為代表的自主定位定向系統(tǒng)[2]。隨著人工智能在軍事應用的進一步轉(zhuǎn)移[3],國家對武器裝備的安全性和獨立設計的要求也越來越高。定位定向系統(tǒng)我國雖已建成北斗,但相比于美國的GPS、英國的FIN500、德國的FNA615等導航系統(tǒng)[4]的應用和普及,還存在不少差距。同時目前捷聯(lián)慣性導航系統(tǒng)信號處理平臺基本都是采用國外基礎軟硬件,如美國的賽靈思FPGA、Intel處理器、Windows操作系統(tǒng)。在國產(chǎn)化方面國產(chǎn)化FPGA、國產(chǎn)化CPU、中標麒麟操作系統(tǒng)、銳華、睿思等操作系統(tǒng)雖已完成核心知識產(chǎn)權認證,但還未真正實現(xiàn)大范圍的推廣應用,武器裝備國產(chǎn)化的需求越來越緊迫。
基于以上背景和需求,本文設計開發(fā)了一種基于國產(chǎn)化CPU+國產(chǎn)化FPGA平臺的捷聯(lián)慣性導航系統(tǒng)信號處理平臺,平臺采用100%國產(chǎn)化器件設計,同時適配經(jīng)過實時性改造的RTLinux操作系統(tǒng)。
針對捷聯(lián)慣性導航系統(tǒng)信號處理平臺產(chǎn)品自主可控和安全可靠的性能要求,兼顧導航自主性、可靠性、穩(wěn)定性和抗干擾性要求[5],開展設計和研制工作,本次設計主要針對國產(chǎn)化元器件和操作系統(tǒng)為核心進行設計。
元器件的選型方面,考慮國內(nèi)知名廠家和已經(jīng)經(jīng)過認證量產(chǎn)的器件優(yōu)先選用。核心CPU選擇龍芯中科的2K1000,該CPU采用了40 nm CMOS工藝,單片內(nèi)部集成了2個全流水64位雙精度GS264 CPU核心與GPU圖形核心,主頻可達1 GHz,峰值運算速度為8G flops,二級緩存為256 KB,三級緩存為1 MB,功耗為1~5 W,并支持動態(tài)降頻和降壓[6]。同時,該處理器支持64位DDR3控制器,有SATA2.0、USB2.0、PCIE2.0、RGMII、CAN、UART、Local Bus、I2C、SPI等豐富的外設接口,可滿足更多的場景和接口需求。
FPGA選擇中國電子科技集團公司第58研究所的FPGA“億芯一號”,“億芯一號”是基于SRAM配置的高密度可編程邏輯陣列電路,包含了128行×52列共6 656個可編程邏輯塊、59 904個邏輯單元、64個XtremeDSP Slice、2 880K的可編程Block RAM以及可編程端口、DCM、PDCM等模塊,可完美替換賽靈思XC4VLX60系列。
硬件電路的設計以龍芯處理器為核心,在單板上集成CPU等核心處理單元,通過國產(chǎn)化FPGA擴展豐富的對外接口,可實現(xiàn)RS422通信接口、RS232調(diào)試接口、存儲接口、CAN接口、以太網(wǎng)接口、磁隔離計數(shù)接口、GPIO控制接口等。操作系統(tǒng)選用經(jīng)實時化改造的RTLinux操作系統(tǒng),主板采用模塊化、整體化的設計,實現(xiàn)處理器和操作系統(tǒng)核心軟硬件的國產(chǎn)化。
捷聯(lián)慣性導航系統(tǒng)信號處理平臺由電源模塊、信號處理模塊、存儲單元模塊、1553B模塊、422通信模塊、CAN通信模塊、以太網(wǎng)模塊、隔離接口模塊組成(如圖1所示)。系統(tǒng)通過PMON實現(xiàn)硬件的初始化與檢測,引導操作系統(tǒng)內(nèi)核;系統(tǒng)軟件以RTLinux操作系統(tǒng)作為基礎軟件平臺,在設備驅(qū)動層提供支持;開發(fā)環(huán)境層集成常用的編譯工具及各種支持的環(huán)境;基礎軟件層,為后續(xù)的應用部署提供支撐。整個平臺能夠完成捷聯(lián)導航解算、流程控制、數(shù)據(jù)和上位機的交互等功能。
圖1 捷聯(lián)慣性導航系統(tǒng)信號處理平臺組成
本次設計采用CPU+FPGA的硬件架構,其中CPU選用龍芯中科的2K1000型處理器,F(xiàn)PGA選擇使用中國電子科技集團公司第58研究所的“億芯一號”。CPU主要實現(xiàn)系統(tǒng)的數(shù)據(jù)處理和部分外部接口擴展功能,F(xiàn)PGA主要實現(xiàn)CPU的上電時序控制及其他外設接口的擴展和通信功能,系統(tǒng)整體框圖如圖2所示。
圖2 捷聯(lián)慣性導航系統(tǒng)信號處理平臺整體框圖
CPU采用外掛SPI NOR Flash來實現(xiàn)BIOS的引導,CPU對外引出CAN接口、RGMII網(wǎng)絡接口、SATA存儲接口,CPU和FPGA之間通過localbus總線來進行數(shù)據(jù)交互。
龍芯2K1000處理器內(nèi)部集成有64位DDR3內(nèi)存控制器,內(nèi)存讀寫規(guī)則遵守DDR3 SDRAM行業(yè)標準(JESD79-3)。可配置為64/32/16位工作模式,支持命令調(diào)度,但不支持ECC。
設計選用4片紫光國芯公司的256×16 Mb DDR3 SDRAM存儲器HXI15H4G160AF-13K實現(xiàn)總容量2 GB的內(nèi)存擴展。該芯片具有16根數(shù)據(jù)線和15根地址線,選用標準DDR3電源供電和上電時序要求。
龍芯2K1000處理器的內(nèi)部集成2路10/100/1 000 Mbps自適應以太網(wǎng)多媒體控制器接口(Media Access Controller,MAC),兩者在邏輯結構上完全相同。雙網(wǎng)卡均兼容IEEE802.3協(xié)議,對外部的PHY通過RGMII方式實現(xiàn),支持半雙工和全雙工的自適應調(diào)整、CRC校驗碼的自動生成和校驗等功能。
網(wǎng)口芯片選用中國電科58研究所的千兆PHY芯片JSPHY1000,電路功能兼容Marvell公司的Gigabit以太網(wǎng)收發(fā)器88E1111,它支持RGMII、GMII、SGMII等多種連接模式,能夠和龍芯2K1000處理器進行對接,用于數(shù)據(jù)的傳輸和系統(tǒng)軟件升級,網(wǎng)絡變壓器使用順絡迅達的LT1303-A通過磁隔離來提高整個系統(tǒng)的可靠性。
龍芯2K1000處理器內(nèi)部集成了2路的CAN控制器,控制器通過對接CAN收發(fā)器可以實現(xiàn)CAN總線協(xié)議和CAN數(shù)據(jù)通信,CAN總線是由發(fā)送數(shù)據(jù)線TX和接收數(shù)據(jù)線RX構成的串行總線,支持發(fā)送和接收數(shù)據(jù),CAN總線上的設備支持數(shù)據(jù)的雙向傳送,最高傳輸速率可達1 Mb/s。
本次設計選用中國電子科技集團公司第58研究所的雙通道數(shù)字隔離器JS002實現(xiàn)雙向信號的輸入輸出,該電路與ADI公司的ADuM1201電路兼容。實現(xiàn)CAN信號的隔離傳輸,電源設計使用新雷能公司的DC-DC隔離電源LDCR05S05U產(chǎn)生數(shù)字隔離器端所需的5 V隔離電源為隔離器和CAN驅(qū)動器提供隔離電源。CAN收發(fā)器使用中國電子科技集團公司第58研究所的高可靠現(xiàn)場總線收發(fā)器JSCAN001,提供協(xié)議控制器和物理傳輸介質(zhì)之間的物理鏈路,同時該器件輸入兼容3.3 V和5 V電平,通信速率高達1MBuad,且?guī)в懈哌_±6 kV的ESD保護功能。該電路功能與Microchip公司的MCP2551功能兼容。CAN接口的硬件設計框圖如圖3所示。
圖3 隔離CAN硬件設計框圖
龍芯2K1000處理器支持LocalIO、SPI、SDIO、NAND四種系統(tǒng)啟動方式,本次設計選用SPI啟動方式。龍芯2K1000處理器集成的SPI控制器僅可作為主控端,所連接的是從設備。對軟件來說,SPI控制器有一段映射到SPI Flash的只讀Memory空間,如果將這段Memory空間分配在0x1fc00000,復位后不需要軟件干預就可以直接訪問,從而支持處理器從SPI Flash啟動。
Flash設計選用深圳國微的SM25P64用于PMON系統(tǒng)啟動,系統(tǒng)啟動硬件設計框圖如圖4所示。
圖4 系統(tǒng)啟動硬件設計框圖
龍芯2K1000處理器內(nèi)部包含有SATA控制器,支持SATA的1代1.5 Gb/s和SATA的2代3 Gb/s速率的傳輸,兼容串行ATA2.6和AHCI1.1規(guī)范,SATA盤選用鴻秦科技的HT10MCNNNN-XM來實現(xiàn)1 TB大容量存儲的擴展。
FPGA主要包含功能:隔離RS422串口擴展、外部控制信號輸入輸出、控制CPU的上電順序、整機5 V輸入電源的監(jiān)測功能、EEPROM的擴展、PROM的擴展等。FPGA和2K1000處理器之間通過Local BUS總線、多個GPIO和UART進行控制和通信。FPGA設計框圖如圖5所示。
圖5 FPGA部分硬件設計框圖
FPGA的配置設計選用JTAG和Master Select MAP兩種方式。使用Master Select MAP(Parallel) Mode配置方式的優(yōu)點是能夠減少FPGA的啟動配置時間,有效地提高系統(tǒng)的啟動速度,增加FPGA配置方式的靈活性[7]。PROM型號設計選用中國電子科技集團公司第58研究所的JS32P來存儲FPGA的配置信息,該器件容量為128 Mb,使用3.3 V和1.8 V同時供電,最大的工作頻率可達33 MHz,該產(chǎn)品和XCF32P功能兼容,但不支持壓縮的MCS文件。PROM啟動配置硬件設計框圖如圖6所示。
圖6 PROM配置電路設計框圖
EEPROM是帶電可擦可編程只讀存儲器,是一種掉電后數(shù)據(jù)不丟失的存儲芯片,因為掉電后不丟失,所以能夠有效地存放一些關鍵的監(jiān)控信息和系統(tǒng)的溫度數(shù)據(jù)等,EEPROM設計選用中微愛芯電子有限公司的AiP25-C256,其容量為256 Kb,存儲器的結構為32 768×8 bit,內(nèi)部分為512頁,每頁64 B,采用I2C接口,廣泛應用于低功耗、低電壓系統(tǒng)。
RS422接口芯片使用中國電子科技集團公司第58研究所的隔離式RS422/485收發(fā)器JSUART001,JSUART001將一個3通道的數(shù)字隔離器、一個三態(tài)差分線路驅(qū)動器、一個差分輸入的接收器和一個的隔離DC-DC轉(zhuǎn)換器集成于單片封裝中,從而實現(xiàn)完全集成的信號與電源隔離RS-485解決方案,可配置為半雙工或全雙工模式,實現(xiàn)最高16 Mb/s的傳輸速率,供電3.3 V或5 V可選,同時帶±15 kV的ESD保護功能,該芯片可兼容ADI公司的ADuM2682。當使用串口功能時RE和DE可由FPGA控制置高或置低使芯片處于異步半雙工狀態(tài),當使用數(shù)據(jù)傳輸功能時RE和DE可由FPGA控制置高或置低使芯片出去單向或雙向數(shù)據(jù)發(fā)送狀態(tài)。RS422接口的硬件設計框圖如圖7所示。
圖7 RS422電路設計框圖
磁隔離IO接口用于FPGA接收陀螺、加速度計及里程計計數(shù)脈沖和向外發(fā)送控制信號。設計選用中國電子科技集團公司第58研究所的雙通道隔離器JS002,以及中國電子科技集團公司第58研究所的四通道隔離器JS004P磁隔離IO接口。該芯片是一種基于電磁隔離的多通道數(shù)字隔離器,可實現(xiàn)輸入輸出之間完全的電氣隔離,電路兩端分別供電可實現(xiàn)3 V/5 V電平轉(zhuǎn)換,通過精確匹配傳輸線的特征阻抗[8],能夠把輸入數(shù)據(jù)通過高頻編碼之后接收端實現(xiàn)無失真恢復。該型號電路可與ADI公司的ADuM14xx系列功能兼容。
1553B接口電路用于完成1553B總線通信,設計選用中國電子科技集團公司第58研究所的全功能模塊1553B總線控制器,型號為JS1553B-003,JS1553B-003是一款高性能的MIL-STD-1553B總線通信控制器,該模塊電路內(nèi)部由一塊協(xié)議處理芯片和一塊收發(fā)器芯片(雙路)組成,包含了完整的主處理器與1553B總線的接口,集成了雙通道收發(fā)器、協(xié)議處理器、存儲器管理、處理器接口邏輯和內(nèi)置4 KB的RAM,實現(xiàn)了與1553B終端的全兼容,具有總線控制器(BC)、遠程終端(RT)和監(jiān)視器(MT)三大功能[9]。該芯片與DDC公司的BU-64843GC-140電路功能兼容。
捷聯(lián)慣性導航系統(tǒng)信號處理平臺軟件由系統(tǒng)引導軟件、操作系統(tǒng)軟件和驅(qū)動接口軟件組成,各軟件功能如下。
系統(tǒng)引導軟件是捷聯(lián)慣性導航系統(tǒng)信號處理平臺上電后首先加載的一段程序軟件,該軟件負責對處理器,即龍芯2K1000處理器進行初始化,包括初始化中斷、內(nèi)存、串口、GPIO、以太網(wǎng)以及啟動TFTP服務、調(diào)試等功能。本項目的系統(tǒng)引導軟件選用PMON軟件,PMON是一個兼有BIOS和BOOTLOADER部分功能的軟件代碼,多用于嵌入式系統(tǒng),其支持EXT2、FAT32、RAM文件系統(tǒng),支持網(wǎng)絡引導(TFTP)、磁盤引導、Flash引導以及內(nèi)建調(diào)試功能,并具有很好的通用性,能夠支持MIPS、ARM、PowerPC等平臺[10]。系統(tǒng)引導軟件主要用于引導以及操作系統(tǒng)軟件的升級,與其他軟件相互獨立和用戶層的應用不對接,用戶所需的功能均在操作系統(tǒng)軟件和驅(qū)動接口軟件代碼中實現(xiàn)。
操作系統(tǒng)軟件是捷聯(lián)慣性導航系統(tǒng)信號處理平臺系統(tǒng)運行的基礎,該軟件提供應用所需的進程管理、內(nèi)存管理、文件系統(tǒng)、網(wǎng)絡通信、安全機制、驅(qū)動程序等基礎功能,為實現(xiàn)系統(tǒng)控制、數(shù)據(jù)通信提供可能。
Linux系統(tǒng)由于具有內(nèi)核源碼開發(fā)、免費使用、可移植性高、跨平臺支持性好、易于裁剪等特點,被廣泛應用于嵌入式領域。但是由于Linux系統(tǒng)自身架構的問題,無法滿足實時操作系統(tǒng)需求,當前比較流行的實時Linux擴展莫過于RTAI、Xenomai、XtratuM和實時搶占補丁,經(jīng)過改善單內(nèi)核方案(Linux+RT搶占式補丁)以及雙內(nèi)核方案(RTLinux)越來越多的實時化方案被設計出來,使Linux具有強大的硬軟實時處理能力,比如單內(nèi)核方案(Linux+RT搶占式補丁)以及雙內(nèi)核方案(RTLinux)。
實時操作系統(tǒng)是指一個能夠在事先指定或者確定的時間內(nèi)完成系統(tǒng)功能和對外部或者內(nèi)部,同步或者異步事件做出響應的系統(tǒng)[11]。實時性的核心在于確定性而不是單純的系統(tǒng)響應所讀,即在規(guī)定的時間內(nèi)完成規(guī)定的事情。
本次軟件設計采用RTLinux操作系統(tǒng)軟件方案,其總體架構如圖8所示,其中SW-platform部分為軟件的總體框架,它對上位用戶的應用軟件提供交互接口API,對下位龍芯的硬件提供外設驅(qū)動,其中RS422和脈沖和脈沖計數(shù)器在FPGA上實現(xiàn),龍芯處理器和FPGA之間通過LocalBus總線通信。
圖8 捷聯(lián)慣性導航系統(tǒng)信號處理平臺Linux軟件整體框圖
測試平臺為龍芯2K1000+FPGA,RTLinux版本為V3.10。測試原理框圖如圖9所示。
圖9 實時性測試原理框圖
中斷響應測試RTLinux下的響應時間使用FPGA通過GPIO向龍芯2K1000發(fā)中斷,設置上升沿觸發(fā)中斷。中斷響應時間測試計時如圖10所示。
圖10 中斷響應時間測試計時
測試流程:
(1)龍芯2K1000通過寫FPGA約定寄存器后,F(xiàn)PGA返回GPIO_A中斷信號;
(2)同時FPGA通過拉高另外一個GPIO_B表示開始計時,以標記示波器采集計時時間開始點;
(3)龍芯2K1000響應中斷信號后,觸發(fā)中斷處理函數(shù)發(fā)信號給應用層進程,應用層通過系統(tǒng)調(diào)用,去讀取FPGA最終的計時數(shù)據(jù)結果,同時FPGA通過拉低GPIO_B表示計時停止,以標記示波器采集計時時間結束。
根據(jù)上述測試方法測試時,中斷時間統(tǒng)計表如表1所示,測試波形如圖11、圖12所示。RTLinux中斷響應時間平均不大于40 μs。VxWorks不大于10 μs。
表1 中斷時間統(tǒng)計表
圖11 內(nèi)核層中斷響應時間波形圖
圖12 內(nèi)核層加80%CPU負載中斷響應時間波形圖
經(jīng)測試結果表明系統(tǒng)完全可以達到實時性要求。
針對目前捷聯(lián)慣性導航系統(tǒng)信號處理平臺國產(chǎn)化的迫切需求,本次設計開發(fā)使用國產(chǎn)CPU+FPGA架構搭建硬件平臺,設計采用100%的國產(chǎn)化元器件實現(xiàn)了捷聯(lián)慣性導航系統(tǒng)信號處理平臺的設計和開發(fā),經(jīng)過適配軟件和系統(tǒng)測試產(chǎn)品性能穩(wěn)定,經(jīng)測試結果表明系統(tǒng)完全可以達到實時性要求,具有全天候、自主、隱蔽等優(yōu)點,短時定位定向精度高[12],拓展了我國國產(chǎn)化綜合處理平臺的設計思路,具有較高的推廣和應用價值。