




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
:技術:咨 本手冊向大家介紹PZ-S1216F8-BDGPS北斗定位模塊及其在普中實現GPS/北斗定位。本章分為如下幾部分內容:PZ-S1216F8-BDGPS/GPS/北斗雙模定位模塊。該模S1216F8-BDFLASH,3.3V/5V模塊通過串口與外部系統連接,串口波特率支持4800、9600、19200、38400(默認)、576001152002304005V/3.3V(1):GPS/北斗接收歷史信息都丟失了(相指模塊保存了GPS/北斗接收歷史信息,但是當前可視的信息和保存的信息注(2):模塊的TXD和RXD120歐電阻,做輸出電平兼容處理,所以在使用的時候要注意,導線電阻不可過大(尤其是接USBTTL口模塊的時候,如果模塊的TXDRXD上帶了LED,那就會有問題),否則可能PZ-S1216F8-BDGPS/北斗模塊支持多種通信波特率,通過串口進行設置,PZ-S1216F8-BDGPS/北斗模塊非常小巧(19.66mm*44.75mm),模塊通過12*42.54mm4安裝到自己的設備里面,模塊外觀如圖所示:塊相連即待擴展腳,可用的管腳只有5個,各引腳的詳細描述如圖所示:PPS引腳同時連接到了模塊自帶了的狀態指示燈:PPS1,該引腳連接指示燈(即PPS引腳),在默認條件下(沒經過程序設置),有2個狀態:1,2,(100ms900ms),PPS1指示燈,我們就可以很方便的判斷模塊的當前狀態,方GPS有源天線都是采用SMA接口,我們需要準備一根IPX(IPEX)SMAPZ-S1216F8-BDGPS/北斗模塊與有源天線,如圖所PZ-S1216F8-BDGPS/NMEA-0183GPS/北斗定位數據,并可以通過SkyTraq,NMEA-0183協議將在后面會SkyTraqBinaryMessagesofSkyTraqVenus8使用PZ-S1216F8-BDGPS/北斗模塊,任何單片機(3.3V/5V電源)都可以GPS/北斗定位。PZ-S1216F8-BDGPS/北斗模塊的原理圖如圖所示:PZ-S1216F8-BDGPS/北斗模塊同外部設備的通口采用UART(串口)方式,輸出的GPS/北斗定位數據采用NMEA-0183協議(默認),控制協議為SkyTraq協議(該協議的詳細介紹請看BinaryMessagesofSkyTraqVenus8GNSSReceiver.pdf這個文檔)。這里我們主要向大家介紹NMEA-0183NMEA0183是國家海洋電子(NationalMarineElectronics備統一的RTCM(Radio missionforMaritimeservices)標準NMEA-0183協議采用ASCII碼來傳遞GPS,我們稱之為幀。幀格式形如:$aaccc,ddd,ddd,…,ddd*hh(CR)(LF)1$”:2、aaccc:(aa),后三位為語句名(ccc)3、ddd…ddd:數據4、“*”:校驗和前綴(也可以作為語句數據結束的標志字節做異或運算,得到校驗和后,再轉換16進制格式的ASCII字符)NMEA-0183注1:即協調世界時,相當于本初子午線(0度經線)上的時間,時間比UTC早8個小時。$GNGGA(GPS,GlobalPositioningSystemFix$GNGGA(MM,hhCRUTC時間,格式為緯度,格式為ddmm.mmmmm(度分格式緯度半球,N或S(北緯或南緯經度,格式為dddmm.mmmmm(度分格式經度半球,E或W(東經或西經GPS0=1=2=正在使用的用于定位的數量(HDOP水平精確度因子(海拔高度(-9999.9到9999.9米大地水準面高度(-9999.9到9999.9米$GNGSA(當前信息$GNGSAMA1=2=2D3=3D正在用于定位的號(PDOP綜合位置精度因子(0.5-HDOP水平精度因子①(0.5-VDOP垂度因子(0.5-$GPGSV(可見數,GPSSalitesin$GPGSV$GPGSV,GSVGSV可見的總數(00~12,前面的0也將被傳輸)編號(01~32,前面的0也將被傳輸)仰角(00~90度,前面的0也將被傳輸)方位角(000~359度,前面的0也將被傳輸信噪比(00~99dB,沒有到時為空)注:每條GSV語句最多包括四顆的信息,其他的信息將在下一$BDGSV(可見數,GPSSalitesin$BDGSV$BDGSV,GSVGSV可見的總數(00~12,前面的0也將被傳輸)編號(01~32,前面的0也將被傳輸)仰角(00~90度,前面的0也將被傳輸)方位角(000~359度,前面的0也將被傳輸信噪比(00~99dB,沒有到時為空)注:每條GSV語句最多包括四顆的信息,其他的信息將在下一$GNRMC(推薦, $GNRMCUTC時間,hhmmss(時分秒A=V=緯度ddmm.mmmmm(度分緯度半球N(北半球)或S(南半球經度dddmm.mmmmm(度分經度半球E(東經)或W(西經地面速率(000.0~999.9節地面航向(000.0~359.9度,以真北方為參考基準UTC日期,ddmmyy(日月年磁偏角(000.0~180.0度,前導位數不足則補磁偏角方向,E(東)或W(西模式指示(A=D=E=N=數據無效)$GNVTG(TrackMadeGoodandGround$GNVTG以真北為參考基準的地面航向(000~359度,前面的0也將被傳輸以磁北為參考基準的地面航向(000~3590地面速率(000.0~999.90地面速率(0000.0~1851.80模式指示(A=D=E=N=數據無效)$GNGLL(Geographic$GNGLL緯度ddmm.mmmmm(度分緯度半球N(北半球)或S(南半球經度dddmm.mmmmm(度分經度半球E(東經)或W(西經UTC時間:hhmmss(時分秒A=V=模式指示(A=D=E=N=數據無效)$GNZDA$GNZDA,(1),(2),(3),(4),(5),UTC時間:hhmmss(時分秒日月年本地區域小時(NEO-6M未用到,為本地區域分鐘(NEO-6M00)NMEA-0183協議命令幀部分就介紹到這里,接下來我們看看NMEA-0183驗和是通過計算$與*之間所有字符ASCII碼的異或運算得到,將得到的結果以ASCII字符表示就是該校驗(hh)。0X47xor0X4Exor0X5Axor0X44xor0X41xor0X2Cxor0X30xor0X39xor0X35xor0X35xor0X35xor0X35xor0X2Exor0X30xor0X30xor0X30xor0X2Cxor0X30xor0X38xor0X2Cxor0X31xor0X32xor0X2Cxor0X32xor0X30xor0X31xor0X35xor0X2Cxor0X30xor0X30xor0X2Cxor0X30xor0X30得到的結果就是0X4C,用ASCII表示就是4C代碼,解析NMEA-0183數據,從而得到GPS/北斗定位的各種信息了。PZ-S1216F8-BDGPS/PZ-S1216F8-BDGPS/北斗模塊與開發板如何模塊、PZ-HC05PZ-S1216F8-BDGPS),直接將該模塊插上WIFI模塊接口處即可,其內部管腳連接關系如圖所示:RS2323TXDRXD,RXDTXD3PZ-S1216F8-BDGPS/北斗模塊,然后通過液晶顯示GPS/北斗信息,包括精度、緯度、高度、速度、用于定位的數、可見數、UTC時間等信息。另外通過K_UP按鍵,可以開啟或關閉NMEA數據的上傳(即輸出到串口1,方便開發調試)。我們打開本實驗工程,可以看到我們的工程APPusart3.c和gps.cusart3.h、gps.h。首先,我們來看usart3.c#include"stdio.h"#include"time.h"u8USART3_RX_BUF[USART3_MAX_RECV_LEN];//接收緩沖,最大u8USART3_TX_BUF[USART3_MAX_SEND_LEN];//發送緩沖,最大USART3_MAX_SEND_LENu16USART3_RX_STA=0;voidUSART3_Init(u32{GPIO_InitTypeDefGPIO_InitStructure;NVIC_InitTypeDefNVIC_InitStructure;RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB,ENABLE);//使能GPIOARCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3,ENABLE);//使能USART3//串口3對應引腳復用映射GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10|GPIO_Pin_11;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF;//復用功能GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; //速度
GPIO_InitStructure.GPIO_OTypeGPIO_OType_PP;GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;//上拉//Usart3NVICNVIC_InitStructure.NVIC_IRQChannel=NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=2優先級0NVIC_InitStructure.NVIC_IRQChannelSubPriority= NVIC_InitStructure.NVIC_IRQChannelCmd= 器//USART3USART_InitStructure.USART_BaudRate=bound;//串口波特率USART_InitStructure.USART_WordLength=USART_WordLength_8b;//8USART_InitStructure.USART_StopBits=USART_StopBits_1;USART_InitStructure.USART_ParityUSART_Parity_No;/位 USART_InitStructure.USART_ModeUSART_Mode_Rx|USART_Mode_Tx;USART_Init(USART3,&USART_InitStructure);USART_ITConfig(USART3,USART_IT_RXNE,ENABLE);//斷USART_Cmd(USART3, }voidUSART3_IRQHandler(void{u8據{res=USART_ReceiveData(USART3);if((USART3_RX_STA&(1<<15))==0)//接收完的一批數據,還沒有被{if(USART3_RX_STA<USART3_MAX_RECV_LEN){ 7{} }{ 成}}}}voidusart3_printf(char*{u16i,j;i=strlen((constchar*)USART3_TX_BUF); {}}10ms下面我們來看下gps.c里面的代碼,如下:#include"gps.h"#include"led.h"#include"usart3.h"#include"stdio.h"#include"stdarg.h"#include"string.h"#include"math.h" ma_Pos(u8*buf,u8{{if(*buf=='*'||*buf<''||*buf>'z')return0XFF;//遇到'*'或者字符,則不存在第cx個逗號if(*buf==',')cx--}returnbuf-}u32NMEA_Pow(u8m,u8{u32result=1;returnresult;}//buf:數字intNMEA_Str2num(u8{u8u32ires=0,fres=0;u8mask=0;intwhile(1){elseif(*p>'9'||(*p<'0')) {}elseilen++;}if(mask&0X02)buf++;//去掉負號for(i=0;i<ilen;i++)//得到整數部分數據{ires+=NMEA_Pow(10,ilen-1-i)*(buf[i]-} for(i=0;i<flen;i++)//得到小數部分數據{fres+=NMEA_Pow(10,flen-1-i)*(buf[ilen+1+i]-}return}voidNMEA_GPGSV_ysis(nmea_msg*gpsx,u8{u8u8posx;p1=(u8*)strstr((constcharlen=p1[7]- {p1=(u8*)strstr((constchar*)p,"$GPGSV");{ 得到編elseif(posx!=0XFF)gpsx->s/得 仰elseif(posx!=0XFF)gpsx- else 得到信噪}}}voidNMEA_BDGSV_ysis(nmea_msg*gpsx,u8{u8u8posx;p1=(u8*)strstr((constcharlen=p1[7]- //得到可見北斗數{p1=(u8*)strstr((constchar*)p,"$BDGSV");{posx,&dx);//得到編號elseelseelseosx,&dx);//得到信噪比}}}voidNMEA_GNGGA_ysis(nmea_msg*gpsx,u8{u8posx;p1=(u8*)strstr((constchar 于定位的 }
if(posx!=0XFF)gpsx-voidNMEA_GNGSA_ysis(nmea_msg*gpsx,u8{u8posx;u8i;p1=(u8*)strstr((constchar
{elsebreak;}
//得到 //得到 //得到if(posx!=0XFF)gpsx-}voidNMEA_GNRMC_ysis(nmea_msg*gpsx,u8{u8posx;u32temp;floatrs;p1=(u8*)strstr((constchar*)buf,"$GNRMC");//"$GNRMC",&和GNRMC分開的情況,故只判斷GPRMC. { UTC時間,去掉ms} 度{ gpsx->latitude=gpsx->latitude*NMEA_Pow(10,5)+(rs*NMEA_Pow(10,5-}度
{ }
{ }}voidNMEA_GNVTG_ysis(nmea_msg*gpsx,u8{u8u8p1=(u8*)strstr((constchar
{gpsx- 擴大1000倍}}voidGPS_ysis(nmea_msg*gpsx,u8{NMEA_GPGSV_ysis(gpsx,buf);//GPGSV解析NMEA_BDGSV_ysis(gpsx,buf);//BDGSV解析NMEA_GNGGA_ysis(gpsx,buf);//GNGGA解析NMEA_GNGSA_ysis(gpsx,buf);//GPNSA解析NMEA_GNRMC_ysis(gpsx,buf);//GPNMC解析NMEA_GNVTG_ysis(gpsx,buf);//GPNTG解析} 配置代 u8{u8rval=0;while((USART3_RX_STA&0X8000)==0&&len<100)/{} { {elseif(USART3_RX_BUF[i]==0X84){}} }else returnrval;} u8S1216F8BD_Cfg_Prt(u8baud_id){ //配置波特率的ID //操作串口1 //保存到SRAM&FLASHcfg_prt->CS=cfg_prt->id^cfg_prt->com_port^cfg_prt-_prt- }u8S1216F8BD_Cfg_Tp(u32width){u32 cfg_tp->sos=0XA1A0;//cfgheader(小端模式)cfg_tp->id=0X65; //cfgtpidcfg_tp->Sub_ID=0X01;//數據區長度為20個字節.cfg_tp->width=temp;//脈沖寬度,uscfg_tp->Attributes=0X01;- return}Hz,最大不能大于50Hzu8S1216F8BD_Cfg_Rate(u8Frep){ //cfgheader(小端模式)cfg_rate- //cfgrateid //保存到SRAM&FLASH.//脈沖間隔 return}voidS1216F8BD_Send_Date(u8*dbuf,u16{ {}}外一部分則是S1216F8BDF8-BD協議控制部分。NMEA-0183協議解析部分,這里利用了一個簡單的數逗號方法來解析。我們NMEA-0183協議都是以類似$GPGSV的開頭,然后固定輸出格式,不論是否NMEA-0183協議的$GNGGA$GPGSA$GNGSV、$BDGSV、$GNRMC$GNVTG6gps.h3PPSS1216F8BD_Cfg_Prt寬度(1us~100ms)。的測量輸出頻率,最快可以達到20Hz的測量輸出頻率。S1216F8BD_Send_Date2,完成對GPS模塊的配置。最后我們打開main.c文件,里面的代碼如下:#include"system.h"#include"led.h"#include"key.h"#include"usart.h"#include"tftlcd.h"#include"gps.h"#include"usart3.h"#include"string.h"u8 nmea_msg align(4)u8dtbuf[50]; constu8*fixmode_tbl[4]={"Fail","Fail","2D3D"};//fix//顯示GPS{floattp; ",tp/=100000,gpsx.ewhemi);//得到經度字符串 ",tp/=100000,gpsx.nshemi);//得到緯度字符串sprintf((char
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 湖南三一工業職業技術學院《法理學》2023-2024學年第二學期期末試卷
- 阜陽科技職業學院《計算機專業英語》2023-2024學年第二學期期末試卷
- 閩江學院《數字信號處理B》2023-2024學年第二學期期末試卷
- 江西師范大學科學技術學院《馬克思主義基本原理》2023-2024學年第二學期期末試卷
- 重慶城市職業學院《基礎微生物學實驗》2023-2024學年第二學期期末試卷
- 綏化學院《地球物理計算方法》2023-2024學年第二學期期末試卷
- 浙江同濟科技職業學院《納米材料合成與表征》2023-2024學年第二學期期末試卷
- 黃河交通學院《小學英語課堂教學觀摩》2023-2024學年第二學期期末試卷
- 韓山師范學院《銀行綜合業務實驗實訓》2023-2024學年第二學期期末試卷
- 廣東肇慶航空職業學院《電氣控制技術》2023-2024學年第二學期期末試卷
- 2024年秋兒童發展問題的咨詢與輔導終考期末大作業案例分析1-5答案
- 《話題:敘述角度和人稱》教學課件
- 高中語文必修下冊名師全冊教案合集【word版】
- 《有余數的除法》(數學西師版二年級下冊)課件
- 中型生產制造企業組織結構
- 機械制造專業畢業設計(論文)-BCL-609型壓縮機結構設計
- DB11 509-2017 房屋建筑修繕工程定案和施工質量驗收規程
- 幼兒園小班繪本:《小黑捉迷藏》 課件
- 液氨培訓課件資料
- 專家聘用協議書參考
- 板式家具生產工藝PPT通用通用課件
評論
0/150
提交評論