ADXL345與EB3631在GPS導(dǎo)航中的應(yīng)用
摘要:為實現(xiàn)用戶到目標(biāo)點的距離測量和方向控制,設(shè)計并實現(xiàn)了基于加速度傳感器ADXL345和EB3631的GPS模塊的實時導(dǎo)航系統(tǒng)。系統(tǒng)選用EB3631搭建GPS模塊,通過串口與ATMEGA644P控制器通信采集GPS定位信息;采用加速度傳感器ADXL345,通過IIC協(xié)議與控制器通信實現(xiàn)位移測量。在0m-500m范圍內(nèi),時系統(tǒng)穩(wěn)定性和準(zhǔn)確性的反復(fù)測試,最終實現(xiàn)了相對誤差在10%以內(nèi)的準(zhǔn)確度較高的導(dǎo)航系統(tǒng)。
隨著GPS用戶設(shè)備價格不斷下降及GPS應(yīng)用研究的不斷深入,大量GPS定位導(dǎo)航系統(tǒng)被應(yīng)用于航海、飛機的導(dǎo)航、導(dǎo)彈衛(wèi)星測控、精密授時、石油開采等方面。由于受測量環(huán)境的干擾或者信號被阻擋導(dǎo)致GPS不能定位,同時受GPS定位芯片的影響,使得GPS接收機定位精度大大降低。為解決這些問題,獲得精準(zhǔn)的定位。文中以三軸加速度傳感器ADXL345為基礎(chǔ),詳細(xì)描述了基于第三代GPS芯片EB3631的硬件和軟件設(shè)計方案,使得用戶可以實時獲取當(dāng)前位置到目標(biāo)位置的距離及方位,系統(tǒng)實用性較高。
1 硬件設(shè)計
GPS測距系統(tǒng)總體設(shè)計框架如圖1所示。主控制器采用基于AVR內(nèi)核的8位低功耗控制器ATMEGA644P,芯片具有64K的片內(nèi)FLASH,2K的EEPROM,4K的片內(nèi)SRAM。芯片通用I/O接口32個,集成了IIC接口、SPI接口、JTAG接口及8通道的10為ADC轉(zhuǎn)換接口,豐富的外圍接口,能更好的滿足系統(tǒng)的設(shè)計要求。GPS MODULE采用臺灣環(huán)天公司的EB3631為核心器件,由于采用TTL電平輸出,可以直接通過串口與控制器進(jìn)行通信,為用戶提供定位信息。三軸加速度傳感器ADXL345實現(xiàn)加速度的測量,從而得到用戶位移。電源模塊采用8節(jié)AA電池,經(jīng)過π型濾波電路,LM7805穩(wěn)壓為ATMEGA644P、LCD1602液晶提供5 V電壓,5 V電壓經(jīng)過AMS1117系列低壓差穩(wěn)壓芯片穩(wěn)壓,為GPS模塊和加速度傳感器ADXL345供電。
1.1 加速度傳感器接口電路
ADXL345是ANALOG DEVICES公司的一款數(shù)字式的三軸加速度感器,測量范圍最小+2g,測量范圍最大達(dá)到±16g。芯片輸出數(shù)據(jù)采用16位的二進(jìn)制補碼形式,控制器可以通過三線制或四線制SPI接口訪問,也可以通過IIC接口訪問。ADXL345非常適合移動設(shè)備應(yīng)用,不僅可以測量靜態(tài)重力加速度,還可以測量運動或者沖擊導(dǎo)致的動態(tài)加速度。芯片分辨率非常高,能夠測量傾斜角度小于1°的變化。ADXL345的工作流程為:首先由三軸敏感單元感知3個方向的比力,通過電子感應(yīng)器件獲得模擬量,經(jīng)過AD轉(zhuǎn)換為數(shù)字信號,經(jīng)過數(shù)字濾波后送往控制欲中斷邏輯,在命令字的控制下通過I/O口與控制器交互。
ADXL345在IIC模式下工作時,CS引腳必須接VDD,芯片支持單字節(jié)或多字節(jié)的讀寫,讀寫地址是由7位的IIC器件地址和R/W位組成。IIC器件地址與ALT ADDRESS引腳的邏輯電平密切相關(guān),當(dāng)ALT ADDRESS引腳處于高電平時,7位器件地址是0x1D,相應(yīng)的讀寫地址就轉(zhuǎn)換為0x3B,0x3A;當(dāng)ALT ADDRESS引腳處于低電平時,7位器件地址是0x53,相應(yīng)的讀寫地址就轉(zhuǎn)換為0xA7,0xA6[4];加速度傳感器的接口電路如圖2所示。SCL作為IIC總線的時鐘線,SDA是IIC總線的數(shù)據(jù)線,通過1~20K上拉電阻至VDD;INT1、INT2是ADXL345的中斷引腳。
1.2 NMEA-0813協(xié)議
NMEA-0813是美國海洋電子協(xié)會為海用電子設(shè)備制定的標(biāo)準(zhǔn)格式,數(shù)據(jù)輸出采用ASCII碼字符,目前廣泛采用的版本是V2.0。數(shù)據(jù)傳輸以$開始,后面的是5個字母的語句頭。其中語句頭的前兩個字母代表系統(tǒng)“ID”,如果是GP,則表示該語句屬于GPS定位系統(tǒng);如果是HC,則表示該語句屬于羅經(jīng)方位系統(tǒng)。語句“ID”由最后3個字母決定,語句頭之后是數(shù)據(jù)集合,不同類型的數(shù)據(jù)字段以“,”分割,每條語句以回車換行符結(jié)束。
$GPGGA是GPS定位系統(tǒng)中標(biāo)準(zhǔn)的GPS定位信息語句,$GPRMC是推薦最小的定位信息語句。GPS數(shù)據(jù)傳輸采用標(biāo)準(zhǔn)的RS232異步傳輸,通信的波特率一般默認(rèn)是4800,1個起始位,8個數(shù)據(jù)位,一個停止位,無奇偶校驗位。
1.3 EB3631 GPS模塊設(shè)計
GPS(Global Positioning System),也是我們通常所說的全球定位系統(tǒng),一個完整的GPS定位系統(tǒng)由太空部分、監(jiān)控部分、用戶部分組成。用戶部分由GPS接收機、數(shù)據(jù)處理軟件及相應(yīng)的設(shè)備組成,GPS接收機是由前置放大器、信號處理、控制與顯示、記錄和供電單元組成。GPS系統(tǒng)定位的原理:每顆GPS衛(wèi)星時刻發(fā)送自身的位置和時間信號,用戶接收機可以測量出每顆衛(wèi)星到接收機的時間延遲,根據(jù)信號傳輸?shù)乃俣?,將速度與時間延遲相乘便可得出接收機到不同衛(wèi)星的距離。三維坐標(biāo)、速度和時間的確定至少需要接收到4顆衛(wèi)星的數(shù)據(jù)才能解算。
基于EB3631的GPS接收板,是高性能的、低功耗的GPS接收板。核心器件采用第三代芯片SiRFstar III,高速的GPS芯片,-159dBm超高的靈敏度,4Mb的flash存儲空間,該芯片具有兩個串行口,方便與ATMEGA644P控制器通信,采用NMEA-0183和SIRF binary協(xié)議,一次最大可接收20顆衛(wèi)星,即使在信號很微弱的環(huán)境,定位也很快。圖3所示是GPS接口電路。
2%20軟件設(shè)計
GPS測距系統(tǒng)的軟件開發(fā)采用WINAVR/GCC編譯器,程序設(shè)計采用模塊化方式編寫,其中包括ADXL345測量程序、GPS接收程序、LCD1602液晶驅(qū)動程序。在編寫程序前需要采集目標(biāo)點坐標(biāo),這些數(shù)據(jù)將存儲在ATMEGA644P控制器的片內(nèi)2K的EEPROM中,在PC機上通過Google地圖獲得目標(biāo)點經(jīng)緯度坐標(biāo)。表1所示是阿壩師專校園坐標(biāo)記錄。
2.1 ADXL345程序
ATMEGA644P通過IIC總線訪問三軸加速度傳感器ADXL345,IIC總線是飛利浦公司推出的一種串行總線,是具備多主機系統(tǒng)所需的總線裁決和高低速器件同步功能的高性能串行總線。IIC總線由數(shù)據(jù)線SDA和時鐘線SCL組成。IIC總線的數(shù)據(jù)線上提供起始、停止、應(yīng)答、非應(yīng)答四種信號。在使用ADXL345測量加速度時,需要對電源寄存器、數(shù)據(jù)格式寄存器初始化,初始化完成后,方可測量x、y、z方向的加速度。電源寄存器不僅可以設(shè)定供電模式,而且配合BW_RATE寄存器,還可對數(shù)據(jù)速率進(jìn)行設(shè)定,默認(rèn)情況下是100 Hz。配置數(shù)據(jù)格式寄存器,可以設(shè)定SPI工作模式是三線制還是四線制、分辨率位數(shù)、量程、是否將自測應(yīng)用到傳感器。以下是ADXL345初始化的主要代碼。
本題中將三軸加速度傳感器ADXL345的分辨率設(shè)置為13位,從寄存器DATAX0,DATAX1中讀出數(shù)值,將DATAX1中低5位數(shù)據(jù)和DATAX0的數(shù)據(jù)進(jìn)行拼接,DATAX1的高3為作為符號位,就能實現(xiàn)X方向的加速度測量,Y軸、Z軸方向加速度讀取方法與X軸方向一致。
2.2 GPS接收程序
由于GPS板接收到的語句格式不只一條,所以要完整的接收到“$GPGGA*”數(shù)據(jù),就必須對語句頭進(jìn)行檢測,當(dāng)接收的字符和這7個字符完全相同后,才能將數(shù)據(jù)進(jìn)行存儲,當(dāng)接收到“*”字符,表示該條語句接收結(jié)束,可以對數(shù)據(jù)進(jìn)行處理。圖4所示是串行口中斷函數(shù)接收子程序流程。
2.3 主程序
主程序的設(shè)計包括初始化相關(guān)寄存器、I/O端口、USART、IIC以及LCD1602液晶初始化,初始化完成之后顯示開機LOGO。在循環(huán)體中,先進(jìn)行鍵盤掃描,以選擇目標(biāo)點,ATMEGA644P控制器通過串口中斷接收GPS接收板發(fā)回的$GPGGA數(shù)據(jù),以獲得當(dāng)前的坐標(biāo),經(jīng)過計算得到當(dāng)前位置距離目標(biāo)點距離及相對方向,通過LCD1602液晶顯示。然后每隔5秒,判斷是否需要采集當(dāng)前的經(jīng)緯度數(shù)據(jù),通過公式(1)計算獲得最新數(shù)據(jù)信息,以便數(shù)據(jù)信息及時更新。圖5是主程序流程圖。
d=R*arccos(θ)*PI/180
其中θ=sin(LatA)*sin(LatB)+cos(LatA)*cos(LatB)*cos(LongA-LongB),(LatA,LongA)是A點的經(jīng)緯度坐標(biāo),(LatB,LongB)是B點的經(jīng)緯度坐標(biāo)。經(jīng)度按照東正西負(fù)來計,緯度按照北緯取90-緯度值,南緯取90+緯度值,地球半徑R為6 371 004 m,PI取值3.141 592 6。
3 測試結(jié)果
在阿壩師專校園試運行,接收當(dāng)前位置信息時要確保接收到3顆及以上的衛(wèi)星,使得GPS定位準(zhǔn)確,所采集的經(jīng)緯度數(shù)據(jù)有效,獲得較準(zhǔn)確的距離。表2所示是實測距離結(jié)果是以行政樓作為當(dāng)前位置。
通過表2可以看出測量距離在500 m以內(nèi),相對誤差范圍控制在10%以內(nèi),達(dá)到了較高的精度。
4 結(jié)束語
文中設(shè)計了一種基于ATMEGA單片機的低功耗、低成本的跟蹤系統(tǒng)。主要闡述了整個系統(tǒng)的硬件設(shè)計原理、主要模塊電路設(shè)計及軟件設(shè)計流程,系統(tǒng)在戶外運行,通過實驗測得的數(shù)據(jù)誤差較小,能提供長達(dá)8h以上連續(xù)穩(wěn)定工作,為用戶導(dǎo)航提供很大的幫助。