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