1、引言
數(shù)據(jù)采集是信息處理的重要環(huán)節(jié)。在野外試驗系統(tǒng)中,試驗平臺的姿態(tài)及運動狀態(tài)信息測量對試驗結(jié)果具有較大影響,因此,對試驗平臺的姿態(tài)信息進行實時采集具有現(xiàn)實意義。而且, 特別是對于導(dǎo)彈導(dǎo)引雷達等設(shè)備, 由于要求對現(xiàn)場信息實現(xiàn)實時測量和控制, 并且應(yīng)用環(huán)境復(fù)雜,因而對數(shù)據(jù)采集系統(tǒng)的精度、便攜性、可靠性與實時性具有較強要求。PC/104是嵌入式PC的機械電氣標準,它的制定為嵌入式應(yīng)用提供了標準的系統(tǒng)平臺,它繼承了IBM-PC的開放式總線結(jié)構(gòu)的優(yōu)點,為工程師提供了標準的、高可靠的、功能強大的、使用方便的系統(tǒng)組件。本文詳細論述了基于PC/104平臺的姿態(tài)數(shù)據(jù)、GPS定位信息采集系統(tǒng)的設(shè)計方案。
2、系統(tǒng)硬件設(shè)計
2.1 系統(tǒng)組成及功能
采集系統(tǒng)在硬件上主要由地面固定站和便攜式流動站組成。固定站包括:嵌入式控制計算機、多種姿態(tài)傳感器、固態(tài)硬盤和數(shù)傳系統(tǒng);流動站包括:便攜式手持機和數(shù)傳電臺等組成。系統(tǒng)組成如圖1所示。
圖1 系統(tǒng)組成框圖
地面固定站主要完成實時記錄地面GPS接收機的定位及姿態(tài)信息;記錄便攜式流動站的GPS定位信息并進行實時顯示;對地面設(shè)備進行參數(shù)裝訂和系統(tǒng)設(shè)置,實時監(jiān)控地面設(shè)備的工作狀態(tài),實時顯示地面站和流動站的相對空間位置和姿態(tài)數(shù)據(jù)并送給試驗設(shè)備;實時記錄試驗數(shù)據(jù),試驗結(jié)束后進行數(shù)據(jù)處理分析;打印試驗數(shù)據(jù)、圖形、曲線及分析結(jié)果。其組成為:(1)GPS接收機;(2)無線傳輸設(shè)備;(3)電源模塊;(4)控制計算機(地面固定站控制計算機);(5)試驗設(shè)備;(6)平臺姿態(tài)傳感器等。
流動站主要完成實時記錄并顯示本站的GPS定位信息、姿態(tài)信息,將所得到的數(shù)據(jù)通過無線數(shù)傳電臺傳輸給地面固定站進行處理。其組成為:(1)GPS接收機;(2)姿態(tài)傳感器;(3)無線傳輸設(shè)備;(4)電源及天線系統(tǒng);(5)控制計算機(流動站手持機)等。
本系統(tǒng)主要用于精確測量試驗設(shè)備載體和流動站的定位及姿態(tài)信息,通過無線數(shù)傳設(shè)備進行通信,同時提供速度信息,導(dǎo)航信息,用以輸出給試驗設(shè)備。固定站和流動站無線傳輸采用半雙工模式,速率為9600bps。
2.2固定站控制計算機設(shè)計
固定站系統(tǒng)組件中控制計算機是核心,經(jīng)過分析,其外部數(shù)據(jù)輸入/輸出接口有:GPS數(shù)據(jù)串行RS232輸出1路,平臺姿態(tài)傳感器串行輸出1路,無線傳輸設(shè)備串行輸出1路,試驗設(shè)備USB接口輸出1路。
在設(shè)計過程中按照便攜式、模塊化的思想,嵌入式計算機模塊采用DiamondSystems公司的ATHENA模塊,該模塊有CPU子模塊和數(shù)據(jù)獲取子模塊兩部分組成,可以支持DOS、Linux、Windows 98/NT/XP/2000、Windows CE.Net、VxWork等操作系統(tǒng),CPU子模塊包括128位圖形加速卡,128M板載內(nèi)存,支持UDMA33硬盤、最大可以安裝512M電子盤,4個全功能RS-232,2個UART,2個異步口,4個USB 1.1接口。模塊尺寸4.175英寸4.475英寸。完全能夠滿足設(shè)計要求,且具有端口備份。
2.3 其他部件的配置
除控制計算機外,其他部件包括:固定站GPS接收機、平臺姿態(tài)傳感器、無線傳輸設(shè)備和流動站手持機。
1、GPS接收機:固定站接收機選用NovAtel公司高性能雙天線GPS接收機 BeelineTM 。該卡工作在L1頻率,采用雙GPS天線,通過原始觀測量來獲取基線的方位和俯仰角度,同時能得到主天線的三維位置和速度信息。數(shù)據(jù)率最高可達5Hz。流動站接收機選用Garmin25 LP GPS模塊。
2、平臺姿態(tài)傳感器:在地面固定站和流動站的姿態(tài)傳感器選用Crossbow公司出品的CXILT02E數(shù)字傾角傳感器。該產(chǎn)品可提供360度范圍的滾動角和180度范圍的俯仰角。電源輸入9~30VDC,采用RS232輸出。
3、無線傳輸設(shè)備:采用Pacific Crest公司的PDL數(shù)傳電臺。該電臺在低功率工作時,最大僅2W,傳輸波特率為4800~38400bps。
4、手持機:選用濟南浪潮超越公司的巧金剛Ⅱ型加固手持式計算機,該機RISC CPU主頻可達400MHz, 超高分辨率顯示, 內(nèi)置GPS模塊,實現(xiàn)全球定位, 可提供應(yīng)用軟件開發(fā)系統(tǒng),方便用戶進行二次開發(fā),支持Windows CE操作系統(tǒng)。
3、 系統(tǒng)軟件設(shè)計
在進行軟件設(shè)計時,固定站系統(tǒng)軟件設(shè)計采用了Borland公司的C++ Builder 6.0進行二次開發(fā)而成[5]。在設(shè)計過程中,利用交互編程技術(shù)使窗口、事件和消息等Windows操作系統(tǒng)的工作方式與底層硬件驅(qū)動程序相融合,使軟件完全按事件驅(qū)動的模式來執(zhí)行,并在軟件中加強了容錯能力設(shè)計,在最大限度上避免了操作人員人為或非正常因素造成的錯誤。
由于設(shè)計時采用手持機作為流動站的主控計算機,操作系統(tǒng)為Windows CE,因此,流動站軟件設(shè)計采用EVC(Embedded Visual C++)作為開發(fā)工具。Windows CE是緊湊的、高效的和可升級的操作系統(tǒng),被廣泛應(yīng)用在各種嵌入式產(chǎn)品中。EVC是Microsoft公司退出的開發(fā)WinCE應(yīng)用程序的成熟、強大的工具,它和Visual C++開發(fā)工具具有一定的相似之處。
3.1 系統(tǒng)軟件組成
整個軟件系統(tǒng)包括固定站操控軟件和流動站操控軟件。如圖2所示。
圖2軟件模塊組成圖
流動站操控軟件主要完成通過串行接口接收手持機內(nèi)部GPS接收機數(shù)據(jù)、外部姿態(tài)傳感器數(shù)據(jù),并將數(shù)據(jù)進行處理、存儲、顯示、打包下行發(fā)送等功能??偟膩碚f在結(jié)構(gòu)上主要分為:端口初始化模塊;數(shù)據(jù)接收模塊;數(shù)據(jù)處理模塊;數(shù)據(jù)輸出模塊。在數(shù)據(jù)打包下行過程中,軟件將接收的姿態(tài)傳感器數(shù)據(jù)和GPS接收機數(shù)據(jù)自定義格式進行打包,一起輸出給無線數(shù)傳設(shè)備。
固定站操控軟件完成Beeline接收機數(shù)據(jù)、平臺姿態(tài)傳感器數(shù)據(jù)和流動站通過數(shù)傳設(shè)備輸入的數(shù)據(jù)接收工作,經(jīng)過處理后,將有效的姿態(tài)數(shù)據(jù)通過USB接口輸出給試驗設(shè)備使用。在結(jié)構(gòu)上由以下功能模塊組成:
初始化模塊。
該模塊在軟件啟動時,完成程序初始化,對各個端口的設(shè)置,包括串行口協(xié)議設(shè)定,USB接口初始化等。另外還要對固定站的Beeline GPS 接收機進行初始化設(shè)置,以使之按照要求輸出有效數(shù)據(jù)。
數(shù)據(jù)接收模塊。
數(shù)據(jù)接收模塊包括固定站GPS數(shù)據(jù)接收子程序、流動站打包數(shù)據(jù)接收子程序和固定站平臺姿態(tài)數(shù)據(jù)接收子程序。
數(shù)據(jù)處理模塊
數(shù)據(jù)轉(zhuǎn)換模塊完成數(shù)據(jù)包的解包過程,并且根據(jù)流動站與固定站定位信息計算兩者間距離及流動站以固定站為原點在空間直角坐標系中的方位角和俯仰角。
數(shù)據(jù)輸出模塊
數(shù)據(jù)輸出主要用來將有效的姿態(tài)數(shù)據(jù)通過USB接口輸出給受試設(shè)備。
3.2 軟件設(shè)計難點分析
從圖1中不難看出,無論是固定站還是流動站,對串口進行操作都是一個不可或缺的方面。固定站有3個串口操作,流動站需要3個串口操作。因此,設(shè)計過程中,統(tǒng)一采用YbCommDevice串口控件實現(xiàn)。通信參數(shù)可直接在屬性中設(shè)定,在程序運行過程中也可通過輸入界面進行多次更改。它支持任意格式的數(shù)據(jù)包收發(fā),支持多種數(shù)據(jù)包協(xié)議,操作簡單、實用,是一個較為實用的C++ Builder串口控件[4]。在實現(xiàn)時,按照協(xié)議統(tǒng)一的原則,設(shè)定串口數(shù)據(jù)格式為9600bps,1個起始位,8個數(shù)據(jù)位,1個停止位,無奇偶校驗。
在軟件的設(shè)計開發(fā)過程中發(fā)現(xiàn)包括GPS數(shù)據(jù)、傳感器數(shù)據(jù)等各種數(shù)據(jù)包均有固定格式,因此, 數(shù)據(jù)包的格式分析是重要一環(huán)。
1.GPS輸出格式分析[6]:兩型GPS接收機的定位信息格式為NMEA-0183格式。這一格式是較常用的一種數(shù)據(jù)通信標準,它是在0180和0182的基礎(chǔ)上增加了GPS接收機輸出內(nèi)容而完成的。此格式直觀、易處理的優(yōu)點使得幾乎所有的接收機及OEM板都采用了這一格式。典型輸出的語句如下所示:
$ AABBB,ddd ……………………ddd,*hhCR》LF》
其各字段定義如下:
$:起始語句頭;
AA:對話設(shè)備識別符;
BBB:語句名;
,:域分隔符;
ddd…ddd:發(fā)送的數(shù)據(jù)內(nèi)容;
*:校驗和符號;
hh:校驗和;
CR》LF》:終止符(回車、換行)。
2.傾角傳感器輸出格式分析[8]:傾角傳感器數(shù)據(jù)包為6字節(jié)的定長數(shù)據(jù)包,數(shù)據(jù)格式如表1所示。數(shù)據(jù)頭字節(jié)和最后的校驗和字節(jié)用于通信同步,實際格式為ASCII碼。具體定義如下:
表1:傾角傳感器數(shù)據(jù)包格式
3.USB接口操作:在對USB進行操作的時候,必須要利用WinDDK將設(shè)備驅(qū)動程序進行編譯,主要步驟為:得到設(shè)備的廠家標識和產(chǎn)品標識,利用驅(qū)動程序的GUID值獲取設(shè)備的文件名, 用 CreateFile 函數(shù)打開設(shè)備,接著利用設(shè)備文件名和驅(qū)動程序里面的 Pipe 名打開 Pipe, 訪問這個 Pipe 對應(yīng)的 USB 端點,利用CreateFile 得到的設(shè)備句柄,從而通過 DeviceIoControl 函數(shù)實現(xiàn)設(shè)備規(guī)定的動作。需要注意的是廠家標識、產(chǎn)品標識和GUID值在驅(qū)動程序的“*.inf”文件里面就可找到,如果沒有,則需要聯(lián)系設(shè)備生產(chǎn)廠家了;Pipe 名和DeviceIoControl函數(shù)的參數(shù)需要參考驅(qū)動程序資料才能找到。
相關(guān)代碼如下:
HANDLE hPipe = OpenDevPipe(“Pipe1”); //驅(qū)動程序里面的 Pipe 名, 對應(yīng)訪問某個端點的 I/O,需要與驅(qū)動一致
if(hPipe != INVALID_HANDLE_VALUE) //打開 Pipe 成功
{
WriteFile(hPipe, Buffer, BytesToWrite, nBytesWritten, NULL); //把 Buffer 里面的字節(jié)寫入 hPipe
CloseHandle(hPipe);
}
//使用 DeviceIoControl 訪問 USB 設(shè)備
HANDLE hDevice = OpenDevice();
if(hDevice != INVALID_HANDLE_VALUE) //打開設(shè)備成功
{
if(DeviceIoControl(hDevice, IOCTL_READ_xxxx, IOBlock, sizeof(IOBLOCK), c, 1, nBytes, NULL))
{ //操作成功,
}
CloseHandle(hDevice);
}
4 、結(jié)束語
在系統(tǒng)設(shè)計中,以PC/104嵌入式計算機模塊為核心,構(gòu)建了由GPS接收機、無線數(shù)傳設(shè)備、傾角傳感器等設(shè)備組成的實時姿態(tài)數(shù)據(jù)采集系統(tǒng),試驗表明,系統(tǒng)能夠?qū)崟r、穩(wěn)定、連續(xù)地提供固定站和流動站的姿態(tài)信息、定位信息以及兩者的相對位置信息,從而能更好地掌握試驗設(shè)備載體的運動狀態(tài),為得到精確的試驗結(jié)論提供保障。
責任編輯:gt
評論
查看更多