薛亞洲,張 琨,劉文菲
(中國(guó)飛行試驗(yàn)研究院,西安 710089)
一種GPS數(shù)據(jù)記錄儀的設(shè)計(jì)實(shí)現(xiàn)
薛亞洲,張 琨,劉文菲
(中國(guó)飛行試驗(yàn)研究院,西安 710089)
GPS定位廣泛應(yīng)用在個(gè)各行各業(yè)的定位系統(tǒng)中,針對(duì)一款高精度的GPS接收機(jī),進(jìn)行了一種實(shí)時(shí)GPS數(shù)據(jù)記錄儀的系統(tǒng)設(shè)計(jì);系統(tǒng)設(shè)計(jì)以C8051F020為主控處理器,通過控制程序?qū)⒏呔炔罘諫PS OEM模塊接收的定位數(shù)據(jù)實(shí)時(shí)存儲(chǔ)在CF卡中,主要包括GPS數(shù)據(jù)接收機(jī)配置和CF卡存儲(chǔ)設(shè)計(jì);同時(shí),系統(tǒng)設(shè)計(jì)了基于Windows操作系統(tǒng)的專用上位機(jī)軟件來進(jìn)行扇區(qū)的讀數(shù)和數(shù)據(jù)導(dǎo)出,其功能包括扇區(qū)區(qū)間的選擇,扇區(qū)數(shù)據(jù)的導(dǎo)出,磁盤格式化等;通過完整的硬件和軟件設(shè)計(jì),在可供用戶二次開發(fā)的GPS OEM板上設(shè)計(jì)實(shí)現(xiàn)了一種高精度的可配置的實(shí)時(shí)GPS數(shù)據(jù)記錄儀;設(shè)計(jì)的GPS數(shù)據(jù)記錄儀具有小巧,輕便,可穩(wěn)定工作于惡劣環(huán)境等特點(diǎn),并且可以滿足單點(diǎn)和差分GPS數(shù)據(jù)的記錄;通過功能試驗(yàn)和驗(yàn)證,該系統(tǒng)工作穩(wěn)定且可靠性高。
差分GPS;C8051F020;CF卡;存儲(chǔ)
GPS(global positioning system)是全球衛(wèi)星定位系統(tǒng)簡(jiǎn)稱,是由美國(guó)軍方所建立,是一種利用圍繞在地球固定軌道上的24顆衛(wèi)星發(fā)射的信號(hào)來進(jìn)行經(jīng)緯度和高度定位的系統(tǒng)[1]?;贕PS定位功能所研制的種類繁多的GPS接收機(jī),在航海、航空、航天、工業(yè)和其他行業(yè)中都有著廣泛的應(yīng)用。
為達(dá)到更高的定位精度,往往采用差分GPS定位系統(tǒng)[2],其分為實(shí)時(shí)差分和事后差分,需要移動(dòng)站與基準(zhǔn)站相互配合完成。根據(jù)基準(zhǔn)站已知的精密坐標(biāo),計(jì)算出基準(zhǔn)站到衛(wèi)星的距離修正數(shù),并把這一改正數(shù)實(shí)時(shí)發(fā)送至移動(dòng)站,移動(dòng)站不但接收GPS信號(hào),同時(shí)也接收基準(zhǔn)站發(fā)來改正數(shù),通過實(shí)時(shí)計(jì)算對(duì)其定位結(jié)果進(jìn)行修正,進(jìn)而提高了定位精度。對(duì)于事后差分,移動(dòng)站和基準(zhǔn)站的數(shù)據(jù)在記錄時(shí)不參與導(dǎo)航,并且移動(dòng)站不用接收基準(zhǔn)站發(fā)來的改正數(shù),僅僅把移動(dòng)站和基準(zhǔn)站記錄的GPS數(shù)據(jù)送入事后差分軟件進(jìn)行事后分析。通常,采用事后差分技術(shù)處理后的定位信息可達(dá)厘米級(jí)的精度,這種技術(shù)在海底探測(cè),無人機(jī)航跡點(diǎn)繪制等領(lǐng)域有著廣泛的應(yīng)用。
由于GPS數(shù)據(jù)實(shí)時(shí)的參與到導(dǎo)航定位,對(duì)于差分GPS尤其是事后差分?jǐn)?shù)據(jù)的正確記錄也是尤為重要的。CF卡(Compact Flash Card)[3]是眾多移動(dòng)存儲(chǔ)介質(zhì)中的一種。CF卡以價(jià)格低、速度快、容量大、體積小等優(yōu)點(diǎn)被廣泛的應(yīng)用于各種消費(fèi)電子產(chǎn)品。此外,CF卡由于其區(qū)別于U盤和SD卡獨(dú)特的針孔結(jié)構(gòu)設(shè)計(jì)使其可以應(yīng)用于如振動(dòng)、沖擊等惡劣環(huán)境。本文采用具有51內(nèi)核的高速單片機(jī)與CF卡實(shí)現(xiàn)了GPS數(shù)據(jù)的記錄存儲(chǔ)設(shè)計(jì)。
在該GPS數(shù)據(jù)記錄儀的設(shè)計(jì)中,以低功耗、低成本和體積小為設(shè)計(jì)原則,進(jìn)行了系統(tǒng)的整體設(shè)計(jì)。如圖1所示,整個(gè)系統(tǒng)由系統(tǒng)硬件設(shè)計(jì)和系統(tǒng)軟件設(shè)計(jì)組成,硬件部分包括了GPS OEM板模塊,處理器(C8051F020)模塊和存儲(chǔ)模塊(CF卡)組成。OEM板與處理器模塊之間采用RS-232進(jìn)行通信,配置與數(shù)據(jù)交換,處理器模塊與存儲(chǔ)模塊之間則通過控制總線和數(shù)據(jù)總線進(jìn)行GPS數(shù)據(jù)的存儲(chǔ)。軟件部分包括了系統(tǒng)軟件和上位機(jī)軟件,系統(tǒng)軟件主要涵蓋了GPS數(shù)據(jù)接收和CF卡硬件驅(qū)動(dòng)接口函數(shù),上位機(jī)軟件主要完成了CF卡扇區(qū)數(shù)據(jù)的讀取與CF卡的格式化操作。
圖1 系統(tǒng)原理框圖
整個(gè)系統(tǒng)的數(shù)據(jù)接收部分由GPS OME板完成,通過不同的配置命令,可配置成單端和差分的GPS 數(shù)據(jù)流。主控芯片用于GPS數(shù)據(jù)的完整接收,提供了CF卡初始化函數(shù)和CF卡硬件驅(qū)動(dòng)的接口函數(shù),并在GPS數(shù)據(jù)包連續(xù)時(shí)間間隔內(nèi)完成了把GPS數(shù)據(jù)完整的寫入CF卡的某個(gè)指定扇區(qū)。上位機(jī)軟件用于PC端與CF卡的交互,主要包括了CF卡的格式化、指定扇區(qū)或者連續(xù)扇區(qū)的內(nèi)容顯示和數(shù)據(jù)導(dǎo)出。對(duì)于非差分GPS數(shù)據(jù),可在事后直接按照OEM板配置的內(nèi)容進(jìn)行數(shù)據(jù)的解析。對(duì)于事后差分GPS,需要把GPS原始數(shù)據(jù)經(jīng)過數(shù)據(jù)格式轉(zhuǎn)換后導(dǎo)入到專用事后差分軟件進(jìn)行更精確的事后航跡定位。
本文選擇的是NovAtel公司最新推出的第六代產(chǎn)品中尺寸最小(46×71×11 mm)的OME 615,該OEM板采用了全新的軟硬件設(shè)計(jì),支持最高50 Hz數(shù)據(jù)輸出,具有實(shí)時(shí)、事后差分功能,定位精度最高可達(dá)1 cm+1 ppm。
OEM 615采用全新的OEM6硬件平臺(tái),能夠?qū)崿F(xiàn)對(duì)GPS、GLONASS、Galileo、BDS多個(gè)系統(tǒng)的信號(hào)的接收,提高了衛(wèi)星的可用性。OEM 615提供給用戶豐富的通訊接口(3個(gè)LV-TTL、2個(gè)CAN總線、1個(gè)USB總線)供二次開發(fā)使用。此外OME 615還具有體積小、功耗低、重量輕,工業(yè)級(jí)工作溫寬、抗振、抗沖擊等特點(diǎn)。
Compact Flash是由CF協(xié)會(huì)(CFA)提出的一種與PC機(jī)ATA接口標(biāo)準(zhǔn)兼容的技術(shù)。如圖2所示,CF卡由兩個(gè)基本部分構(gòu)成:內(nèi)部控制器和閃存模塊。CF卡讀寫是通過卡內(nèi)緩沖區(qū)進(jìn)行的,不直接讀寫閃存模塊,這也使CF卡具有很高的安全性。CF卡的存取方式有PC Card Memory模式、PC Card I/O模式以及True IDE三種模式,其中True IDE[4]模式與ATA/IDE標(biāo)準(zhǔn)完全兼容,CF卡與處理器通信信號(hào)最少,硬件接口最簡(jiǎn)單,軟件相對(duì)容易實(shí)現(xiàn),因此本設(shè)計(jì)采用了True IDE模式。此外,CF卡可以工作在3.3~5 V電壓,省去了與處理器之間的電平轉(zhuǎn)換電路。
對(duì)于CF卡的開發(fā)是編寫底層驅(qū)動(dòng),所以實(shí)現(xiàn)CF卡存儲(chǔ)功能不依賴與特定的處理器芯片,針對(duì)不同的處理器芯片只需簡(jiǎn)單修改輸入輸出(I/O)端口定義即可完成該驅(qū)動(dòng)的移植。本設(shè)計(jì)選用了innodisk公司的容量為2 GB的工業(yè)級(jí)CF卡ICF4000。
圖2 CF卡結(jié)構(gòu)圖
綜合性價(jià)比及芯片速度性能考慮,本文選擇了Silicon Labs公司片內(nèi)含有CIP-51內(nèi)核的C8051F020單片機(jī)[5]作為主控芯片。C8051F020是一種混合信號(hào)系統(tǒng)級(jí)單片機(jī),支持3.3 V供電,工業(yè)級(jí)工作溫寬,片內(nèi)的CIP-51內(nèi)核與MCS-51完全兼容。此外C8051F020單片機(jī)含有64 KB片內(nèi)FLASH程序存儲(chǔ)器,具有片內(nèi)非侵入式的在線系統(tǒng)調(diào)試(JTAG)接口、4352B的RAM資源、8個(gè)I/O端口共64根I/O線、豐富的模擬外設(shè)、硬件實(shí)現(xiàn)的SPI、I2C和兩個(gè)UART串行接口等資源。在True IDE模式下,CF卡與處理器連接包括數(shù)據(jù)信號(hào)、控制信號(hào)與寄存器信號(hào),其中包括了8跟數(shù)據(jù)總線(D0~D8),3跟地址總線(A0~A2),2跟寄存器組選擇線(CS0、CS1)讀寫控制線(DR、DW)。
OEM 615可以配置成多種不同GPS記錄信息,這些記錄信息又可以分為3種類型:同步信息、異步信息和輪詢信息[6]。同步信息是在固定時(shí)間間隔內(nèi)周期性產(chǎn)生,異步信息的產(chǎn)生與固定時(shí)間間隔無關(guān),由當(dāng)衛(wèi)星狀態(tài)改變而決定,而輪詢信息則是根據(jù)需求產(chǎn)生的。配置OEM 615接收機(jī)只能通過RS-232方式實(shí)現(xiàn),可以同時(shí)對(duì)三路RS-232輸出同時(shí)進(jìn)行配置。下面以配置常用的NMEA0183標(biāo)準(zhǔn)語句來介紹OEM 615板卡的配置步驟,其步驟可總結(jié)如下:
1) Unlogall //取消所有的數(shù)據(jù)輸出;
2) posave off //關(guān)閉自動(dòng)求平均功能;
3) fix none //取消坐標(biāo)固定;
4)com com1 9600 //設(shè)置com1口的波特率為9600;
5)log com1 gpgga on time 1 //設(shè)置com1的輸出為GPGGA格式,時(shí)間間隔1秒;
6) Saveconfig //保存設(shè)置。
CF卡讀取數(shù)據(jù)時(shí),內(nèi)部控制器先把數(shù)據(jù)寫入緩沖區(qū),然后處理器才能從緩沖區(qū)讀出數(shù)據(jù)。反之CF卡寫入數(shù)據(jù)時(shí),處理器先把數(shù)據(jù)寫入緩沖區(qū),然后內(nèi)部控制器將緩沖區(qū)數(shù)據(jù)讀入閃存模塊。所以對(duì)CF卡的讀寫操作實(shí)際上就是對(duì)CF卡內(nèi)部控制器中的寄存器進(jìn)行操作。表1為CF卡寄存器地址空間映像。
表1 CF卡寄存器地址空間映像
3.2.1 CF卡初始化
CF卡初始化包括了硬件復(fù)位,系統(tǒng)自檢,模式配置和設(shè)備信息獲取等,具體流程如圖3所示。
當(dāng)CF卡正確插入卡槽中時(shí),系統(tǒng)會(huì)檢測(cè)相關(guān)硬件管腳(CD1、CD0)是否接地,如果接地則證明CF卡正確接入,否則通過通過串口打印CF卡缺失語句并且點(diǎn)亮相關(guān)LED。隨后通過短暫的拉高CF卡復(fù)位管腳進(jìn)行硬件復(fù)位操作。當(dāng)CF卡硬件復(fù)位完成后立即向命令寄存器寫入診斷指令(0x90),診斷指令完成了CF卡內(nèi)部自檢測(cè)試,可以通過讀取錯(cuò)誤寄存器的值來判斷內(nèi)部自檢是否通過,當(dāng)錯(cuò)誤寄存器的值為0x01說明自檢通過且CF卡正常,否則會(huì)執(zhí)行相應(yīng)的錯(cuò)誤代碼。而后通過配置CF特征寄存器使CF卡為8位讀寫模式并通過向命令寄存器寫入設(shè)備識(shí)別命令(0xEC)來獲取CF卡的基本信息。
圖3 CF卡初始化流程圖
3.2.2 CF卡扇區(qū)讀寫
CF卡扇區(qū)尋址有兩種方式,物理尋址(CHS)和邏輯尋址(LBA),因?yàn)镃F卡沒有機(jī)械結(jié)構(gòu)所以宜采用邏輯尋址的方式,邏輯尋址沒有磁頭和磁道的轉(zhuǎn)換操作,所以在訪問連續(xù)扇區(qū)時(shí),速度要高于物理尋址方式[7]。扇區(qū)是CF卡讀寫的最小單位,在進(jìn)行扇區(qū)讀寫操作時(shí),需要向CF卡內(nèi)部控制器中的寄存器寫入CF卡尋址方式、扇區(qū)數(shù)目、數(shù)據(jù)寬度等信息,然后寫入寫操作命令30H或讀操作命令20H。等待CF卡有數(shù)據(jù)請(qǐng)求時(shí),進(jìn)行單個(gè)扇區(qū)或者連續(xù)扇區(qū)的讀寫操作,即可完成對(duì)CF卡扇區(qū)的讀寫[8]。流程如圖4所示。
圖4 CF卡扇區(qū)寫流程圖
3.2.3 GPS數(shù)據(jù)存儲(chǔ)實(shí)現(xiàn)
經(jīng)過CF卡初始化以后,系統(tǒng)可實(shí)現(xiàn)對(duì)GPS數(shù)據(jù)的存儲(chǔ),存儲(chǔ)過程如下:首先,C8051F020通過配置數(shù)字交叉開關(guān),使能外設(shè)UART并與OEM 615的com1相連;其次,處理器會(huì)根據(jù)同步頭判斷接收整包GPS數(shù)據(jù),把接收到的數(shù)據(jù)依次以寫扇區(qū)的方式寫入到CF卡中;最后,系統(tǒng)初始化時(shí)會(huì)遍歷所有扇區(qū)直到遇到空扇區(qū)作為下一次GPS數(shù)據(jù)接收的起始扇區(qū)。
由于CF卡存儲(chǔ)數(shù)據(jù)時(shí)沒有以文件系統(tǒng)識(shí)別的格式存儲(chǔ),因此不能在windows系統(tǒng)下直接讀取CF卡扇區(qū)數(shù)據(jù),需要專用上位機(jī)軟件進(jìn)行扇區(qū)讀數(shù)和數(shù)據(jù)導(dǎo)出,圖5是針對(duì)本次設(shè)計(jì)的專用上位機(jī)軟件流程圖,包括了扇區(qū)區(qū)間選擇,扇區(qū)數(shù)據(jù)導(dǎo)出,磁盤格式化等功能。當(dāng)完成數(shù)據(jù)存儲(chǔ)且硬件接通后,上位機(jī)軟件會(huì)首先識(shí)別硬件CF卡、并且根據(jù)選擇的分區(qū)判斷分區(qū)是否存在。硬件識(shí)別后,上位機(jī)軟件會(huì)循環(huán)等待接收指令,指令包括扇區(qū)讀出、扇區(qū)數(shù)據(jù)導(dǎo)出與系統(tǒng)格式化,扇區(qū)讀取指令可以顯示指定的單個(gè)扇區(qū)或者顯示連續(xù)扇區(qū),扇區(qū)數(shù)據(jù)導(dǎo)出指令則把選中的扇區(qū)數(shù)據(jù)導(dǎo)出并存儲(chǔ)在PC終端。格式化指令主要完成了給CF卡全部扇區(qū)寫零操作。
圖5 位機(jī)軟件流程
在上述基礎(chǔ)上,將設(shè)備的GPS數(shù)據(jù)配置為NMEA0183標(biāo)準(zhǔn)語句,經(jīng)過4小時(shí)的連續(xù)拷機(jī)存儲(chǔ),通過上位機(jī)軟件讀取寫入的扇區(qū)數(shù)據(jù),未發(fā)現(xiàn)錯(cuò)誤存儲(chǔ)。同時(shí),經(jīng)過多次反復(fù)(不低于30次)的數(shù)據(jù)讀寫測(cè)試,數(shù)據(jù)讀寫正常無誤。為了驗(yàn)證設(shè)備的可靠性,對(duì)設(shè)備進(jìn)行了高低溫試驗(yàn)(-40~70 ℃)和功能振動(dòng)試驗(yàn)(HB-5830E曲線),結(jié)果均表明設(shè)備可以正常工作,存儲(chǔ)的GPS數(shù)據(jù)正確。
對(duì)比市面上目前已知的某款應(yīng)用在無人機(jī)上的GPS數(shù)據(jù)記錄設(shè)備,該設(shè)計(jì)具有體積小、質(zhì)量輕、功耗低(整機(jī)功耗小于1 W)、價(jià)格低等優(yōu)點(diǎn)。
本文設(shè)計(jì)實(shí)現(xiàn)了一種基于C8051F020和CF卡的GPS數(shù)據(jù)記錄儀,該記錄儀具有體積小、重量輕、功耗低、可工作于惡劣環(huán)境等特點(diǎn)。通過上位機(jī)軟件對(duì)記錄數(shù)據(jù)的解析,驗(yàn)證了該記錄儀工作穩(wěn)定,可靠性高,達(dá)到系統(tǒng)設(shè)計(jì)要求。
[1] 王 錦,劉 鵬,尹川等.機(jī)載北斗/GPS/SINS組合導(dǎo)航系統(tǒng)軟硬件設(shè)計(jì)[J]. 計(jì)算機(jī)測(cè)量與控制,2016,24(3):267-269.
[2] 陳 磊,梁 強(qiáng). GPS原理及應(yīng)用簡(jiǎn)介[J]. 科技信息:學(xué)術(shù)研究,2008(22): 193-195.
[3] 李建清,李彥岑,李桂平. 基于CF卡的嵌入式存儲(chǔ)設(shè)備的設(shè)計(jì)[J]. 電子設(shè)計(jì)與應(yīng)用,2005(8): 108-110.
[4] CF+ and Compact Flash Specification Revision 1.4[M]. Innodesk Company, 1999.
[5] 潘逐金. C8051F高度SOC單片機(jī)原理及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2002.
[6] OEMV Family Firmware Reference Manual. OM-20000094 Rev6[M].NovAtel Company,2008.
[7] 張 輝,王軍民,羅明璋,等. 基于C8051F060的高速采集存儲(chǔ)設(shè)計(jì)[J]. 工業(yè)儀表與自動(dòng)化裝置, 2011(2): 16-18.
[8] 張承瑞,王金川,王 恒. CF卡與單片機(jī)接口設(shè)計(jì)及編程[J]. 山東大學(xué)學(xué)報(bào)工學(xué)版,2004, 36(6): 13-15.
Design and Implementation of a Kind of GPS Data Recorder
Xue Yazhou,Zhang Kun,Liu Wenfei
(Chinese Flight Test Establishment, Xi’an 710089, China))
GPS positioning system has been widely used in the positioning system of a wide range of industries. By means of a high-precision GPS receiver, this paper aims to design a real-time GPS data recorder. The design of this system is based on the C8051F020 processor control system and the real-time location data
from the high precision differential GPS OEM module is stored in the CF (Compact Flash) card through the control procedure. These parts mainly include the configuration of GPS data receiver and the design of CF card storage. At the same time, this system designs the dedicated PC software which could be used in Windows operating system for reading the sector of CF cards and export the data easily, the function in this part include the selection of sector interval, the export of sector data and disk formatting, etc. Through the complete design of hardware and software in this system, a high-precision and configurable real-time GPS data recorder is designed based on the GPS OEM board, for the more, users could make a secondary development on this project. All in all, this GPS data recorder has characters of small size, portable and stable working in bad environments, and can satisfy different data records type such as single point and differential GPS. At the end, through functional test and verification test of this system, this equipment is stable and reliable.
differential GPS; C8051F020; compact flash card; storage
2017-06-21;
2017-07-18。
薛亞洲(1990-),男,陜西咸陽人,碩士研究生,主要從事機(jī)載測(cè)試產(chǎn)品方向的研究。
1671-4598(2017)12-0295-03
10.16526/j.cnki.11-4762/tp.2017.12.076
TP273
A