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