余暉冬 陳 鑫 王書磊
(1.中國人民解放軍92145部隊,上海 200080 2.海軍工程大學導航工程教研室,湖北 武漢 430033)
捷聯(lián)式慣性導航系統(tǒng)(Strapdown Inertial Navigation System,SINS)將慣性器件直接固連在運載體上,慣性器件可以感應出運載體的加速度和姿態(tài)等信息,而且不受任何外部因素的影響,可以實現(xiàn)真正意義上的自主式導航[1-3]。捷聯(lián)慣導系統(tǒng)具有成本較低、體積更小、可靠性更高等優(yōu)點,因此已成為慣性導航技術的重要發(fā)展方向之一。相對于傳統(tǒng)平臺式慣性導航系統(tǒng),捷聯(lián)慣導數(shù)字化程度更高,因此數(shù)字信號的傳輸與通信是導航實現(xiàn)的前提和基礎。目前,捷聯(lián)慣導與上位機或?qū)Ш浇馑阌嬎銠C的通信主要采用串行通信。通信數(shù)據(jù)主要包含陀螺儀輸出的角速度數(shù)據(jù)和加速度計輸出的加速度數(shù)據(jù)等,用于后續(xù)導航解算和數(shù)據(jù)處理分析。為保證導航解算對于慣性器件數(shù)據(jù)更新率的要求,慣導串行通信通常具有數(shù)據(jù)量大、波特率高、更新率高等特點。在通用計算機上實現(xiàn)慣導高速串行通信相對簡單,文獻[4][5]介紹了在VC++開發(fā)平臺下,基于MSComm進行串口編程的方法。文獻[6][7]闡述了在VC++開發(fā)平臺下基于MOXA多串口卡的多串口實時通信的實現(xiàn)方法。但是在嵌入式計算機上,由于要兼顧成本和性能,需要對系統(tǒng)資源進行優(yōu)化配置,對程序進行合理設計。本文基于低成本的DSP 28335硬件架構,設計了捷聯(lián)慣導高速串行通信模塊,以較低的硬件成本,構建了慣性導航實現(xiàn)平臺。
DSP(Digital Signal Processer)即數(shù)字信號處理器,是美國德州儀器公司(Texas Instruments,簡稱TI)研發(fā)生產(chǎn)的專用于數(shù)字信號處理的芯片,其強大的浮點型計算能力是目前市面上其他CPU無法比擬的,集成有專用數(shù)學計算指令集以及對內(nèi)存優(yōu)化能力使這款專用CPU 在數(shù)字信號處理領域表現(xiàn)優(yōu)異。
由于是專用CPU,因此DSP 只能用TI 公司專用的軟件開發(fā)工具設計軟件,TI 公司將這款軟件命名為CCS(Code Composer Studio,CCS 集成代碼開發(fā)環(huán)境)。DSP 系統(tǒng)軟件開發(fā)工具CCS編輯、編譯、連接、軟件仿真以及硬件調(diào)試等功能于一體,操作簡單,擁有良好的人機交互界面,并支持C語言標準,編程簡單易于開發(fā)[8]。它不僅提供了配置、建立、調(diào)試、跟蹤和分析程序的工具,而且便于實時、嵌入式信號處理程序的編制和測試,能夠加速程序開發(fā)進程,提高設計工作效率。
慣性導航設備陀螺儀和加速度計數(shù)據(jù)采用IEEE標準浮點型數(shù)據(jù)格式輸出,每個浮點型數(shù)占4個字節(jié)外加協(xié)議頭和協(xié)議尾以及自定義信息共62字節(jié)。由于慣性導航解算要求陀螺儀和加速度計數(shù)據(jù)更新率不低于100Hz,為保證信息的有效傳輸以及為后續(xù)導航解算預留硬件資源,設定通信波特率為1843200bit/s。
串口接收數(shù)據(jù)以及發(fā)送數(shù)據(jù)都設置為中斷模式,利用中斷模式接收數(shù)據(jù)可以有效節(jié)省CPU資源,避免主程序?qū)崟r查詢帶來不必要的浪費,當串口完整接收一個字節(jié)時將數(shù)據(jù)存儲在預先定義的串口接收緩存區(qū)中,緩存區(qū)至少能緩存3條最大協(xié)議內(nèi)容的長度。這種設計方式能夠保證即使主程序不能及時處理串口數(shù)據(jù)也不會造成數(shù)據(jù)丟失的問題。
主程序遍歷串口接收數(shù)據(jù)緩存區(qū),如果協(xié)議緩存區(qū)字節(jié)數(shù)超過最大協(xié)議長度字節(jié)數(shù)62字節(jié)依然沒有收到協(xié)議頭或者協(xié)議尾,或者校驗失敗則丟棄這條協(xié)議,清除協(xié)議解析緩沖區(qū)。這種串口接收數(shù)據(jù)處理方式稱之為雙緩存區(qū)模式。這種處理方式可以很輕松處理高速數(shù)據(jù)通信問題而且不容易丟失數(shù)據(jù)。串口數(shù)據(jù)接收協(xié)議解析流程如圖1所示。
圖1 串口數(shù)據(jù)接收處理流程圖
串口接收數(shù)據(jù)中斷函數(shù)流程如圖2所示。
圖2 串口接收中斷函數(shù)流程圖
串口發(fā)送函數(shù)流程處理如圖3所示。
圖3 串口發(fā)送函數(shù)流程圖
串口發(fā)送中斷函數(shù)處理過程如圖4所示。
圖4 串口發(fā)送中斷函數(shù)流程圖
DSP 28335芯片初始化階段,主要對系統(tǒng)時鐘頻率、串行通信SCI模塊、芯片引腳、中斷向量等進行初始化設置,其主要代碼及其功能如下:
串口接收中斷服務程序主要將輸入緩沖區(qū)的數(shù)據(jù)讀入到存儲器中,同時將數(shù)據(jù)按照協(xié)議進行解析,將其轉(zhuǎn)換成計算機能處理的數(shù)據(jù)形式,便于后續(xù)進行慣性導航解算,其主要代碼及功能如下:
捷聯(lián)慣性導航系統(tǒng)在軍、民用領域都有重要應用,而嵌入式慣性導航解算計算機是捷聯(lián)慣導的重要組成部分。陀螺儀和加速度計等慣性器件與嵌入式計算機的通信是實現(xiàn)慣性導航的前提和基礎。為了兼顧慣性導航串行通信的高更新率、高波特率、大數(shù)據(jù)量等特性,以及嵌入式計算機成本等需求,本文基于DSP 28335硬件架構設計了捷聯(lián)慣導通信模塊,從而實現(xiàn)了捷聯(lián)慣導高速、穩(wěn)定、可靠的數(shù)據(jù)通信。