亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Linux+ARM的GPS模塊設(shè)計

        2016-05-30 15:02:34周小仨
        軟件工程 2016年3期
        關(guān)鍵詞:嵌入式

        摘 要:隨著移動終端的普及,嵌入式Linux系統(tǒng)越來越得到廣泛的應(yīng)用,同時作為定位領(lǐng)域最為常用的GPS信號,也需要逐步應(yīng)用到基于Linux的移動便攜終端中來,使得各種移動終端的位置信息更加可靠,同時使得各設(shè)備之間互聯(lián)及數(shù)據(jù)傳輸變得高效和方便,本文旨在設(shè)計一款基于Linux+ARM的GPS通信模塊。

        關(guān)鍵詞:嵌入式;Linux;GPS;ARM

        中圖分類號:TP391 文獻標(biāo)識碼:A

        Abstract:With the popularity of mobile terminal,embedded Linux system,more and more widely used,at the same time as the location of most commonly used GPS signal,also need to gradually applied to Linux mobile portable terminal based on,makes a variety of mobile terminal location information more reliable,at the same time between each equipment interconnection and data transmission more efficient and convenient.The aim of this paper is to design a GPS communication module based on Linux+arm is being paid.

        Keywords:embedded;Linux;GPS;ARM

        1 引言(Introduction)

        何謂GPS呢,就是全球定位系統(tǒng),英文為Global Positioning System。換言之,是一個由覆蓋全地球的24顆衛(wèi)星組成的衛(wèi)星定位系統(tǒng)。此項技術(shù)可作為航空器、船只、汽車和人的定位和導(dǎo)向,能夠較為安全和準(zhǔn)確地沿著既定的路線,準(zhǔn)確的到達所需目的地。美國主導(dǎo)的全球定位系統(tǒng)簡稱GPS,是20世紀70年代末期美軍三軍聯(lián)合研制的醫(yī)用衛(wèi)星來進行導(dǎo)航和定位的系統(tǒng)。它研制的主要目的是為三軍的三個大的領(lǐng)域提供全球性、長時間的和實時的導(dǎo)航和定位信號,還可用于軍事情報的收集、核爆炸的監(jiān)測和應(yīng)急通訊等,是美國控制全球戰(zhàn)略的重要組成部分之一。歷經(jīng)30多年的發(fā)展和壯大,消耗資金超過400億美金,至今其全球覆蓋率已經(jīng)達到99%的二十余顆GPS衛(wèi)星都已經(jīng)全部布置完成。上述GPS全球衛(wèi)星定位系統(tǒng)主要由以下幾大部分構(gòu)成,它們是空間部分,即GPS星座,地面控制部分,即地面監(jiān)控系統(tǒng),用戶終端接收設(shè)備部分,即GPS信號接收器[1]。

        2 定位系統(tǒng)的構(gòu)成(Composition of positioning system)

        2.1 定位系統(tǒng)的三大構(gòu)成部分

        地球周邊太空空間部分,定位系統(tǒng)需要21顆工作衛(wèi)星組成,后備的衛(wèi)星為三顆。地球上的后臺支撐系統(tǒng),主要有一個主控站點、三個注入站點、五個監(jiān)測站點共同組成。終端用戶的信號接收設(shè)備部分,用來接收GPS衛(wèi)星所發(fā)射來的信號,來獲取所需的導(dǎo)航和定位數(shù)據(jù),經(jīng)過信號的分析和處理,從而來實現(xiàn)導(dǎo)航和定位的目的。本定位系統(tǒng)的接收機硬件主要由主控機、天線和電源部分所構(gòu)成。

        2.2 全球定位系統(tǒng)的定位思路

        依據(jù)高速運動的衛(wèi)星瞬時的位置作為已知的初始數(shù)據(jù),來達到定位的目的,利用空間距離后方交會的方式,從而來確定待檢測點的位置數(shù)據(jù)。當(dāng)前定位系統(tǒng)所提供的定位精度是9米以內(nèi),誤差較大,為了提高定位的精度,經(jīng)常利用差分的定位技,在基準(zhǔn)站點之上安放一臺GPS接收器進行檢測。依據(jù)該基準(zhǔn)站點的精準(zhǔn)坐標(biāo)值,來計算出衛(wèi)星到基準(zhǔn)站點的距離誤差修正數(shù)據(jù),然后由基準(zhǔn)站點把此數(shù)據(jù)實時發(fā)送至終端用戶。終端接收器進行系統(tǒng)定位檢測的時候,同時接收到基準(zhǔn)站點所發(fā)來的修正數(shù)據(jù),綜合對定位結(jié)果數(shù)據(jù)進行修正,從而來提高定位精度。差分定位系統(tǒng)主要分兩大類,它們是偽距差分和載波相位差分[2]。偽距差分的思想,該方法是應(yīng)用最為廣泛的差分方式。即在基準(zhǔn)站點之上,檢測所有衛(wèi)星數(shù)據(jù),依據(jù)基準(zhǔn)站已有的坐標(biāo)數(shù)據(jù)和諸衛(wèi)星的坐標(biāo)數(shù)值,解出每顆衛(wèi)星在每一個時刻距離基準(zhǔn)站點的實際距離值。然后與測得的偽距離相比較之后,計算出偽距修正數(shù),把它發(fā)送至用戶終端接收器,以此來提高定位精度。此差分方式,能得到米級定位精度,例如,我國開放地區(qū)大量應(yīng)用的信標(biāo)差分。載波相位差分思路,該差分技術(shù)簡稱RTK,即Real Time Kinematic,是及時計算若干個測站載波相位觀測值的差分方式。就是把基準(zhǔn)站點采樣到的數(shù)據(jù)發(fā)送給終端用戶接收器,從而來求解坐標(biāo)值。此方式能使定位精度達到厘米級。其廣泛應(yīng)用在需要高精度定位的領(lǐng)域。此方式經(jīng)歷了十多年的發(fā)展,隨著GPS技術(shù)的不斷改良,該系統(tǒng)的軟件和硬件技術(shù)也在不斷完善,不斷的拓展其應(yīng)用領(lǐng)域,至今已經(jīng)遍及經(jīng)濟社會的各個領(lǐng)域,同時逐步深入到老百姓的日常生活當(dāng)中。本全球定位系統(tǒng)的強大的作用還會繼續(xù)方便人們的生活[3]。

        3 GR-87模塊介紹(GR-87 module introduction)

        該模塊與MCU的接口是普通TTL電平串口,非常方便。另外模塊使用SiRF第二代高效能晶片,大大縮小體積。快速定位及追蹤23顆衛(wèi)星的能力。晶片內(nèi)建1920次/頻率硬體,提高接收傳送搜尋衛(wèi)星信號。GR-87模塊輸出的數(shù)據(jù)格式遵循標(biāo)準(zhǔn)GPS接收機定位的數(shù)據(jù)格式——“NMEA-0183”數(shù)據(jù)格式。

        4 具體實現(xiàn)步驟(Specific implementation steps)

        (1)插上GPS模塊后上電,啟動開發(fā)平臺

        用普通交叉串口線連接開發(fā)平臺的DBGU串口到PC的串口,用USB電纜連接開發(fā)平臺的USB Slave口到PC,使用網(wǎng)線可以連接開發(fā)平臺的100M網(wǎng)卡到PC的網(wǎng)口。

        (2)使用時要注意GPS模塊串口的波特率

        程序所要做的工作是通過串口從GR-87模塊接收數(shù)據(jù)然后進行分析,得到經(jīng)緯度,時間等信息。部分核心代碼如下:

        int main(int argc,char *argv[])

        {int i;char huanchong[GPS_RECV_CMD_MAX_BUF];//receive huanchong

        char tmp;XINXI xinxi;char Jiaodu[4];

        char Fenzhong[8];char Shizhong[4];char Minu[4];

        char Miao[4];char Zhuangtaishu[4];int number=0;//open the COM

        bsp_init();int recv_count;rs485_open();

        printf("test GPS...\r\n");while(1){while(!Is_startGP(fd_rs485));

        for(i=0;i<256;i++){read(fd_rs485,&tmp,1);huanchong[i]=tmp; if(tmp=='\n')break;}

        if(Is_GGA(huanchong)){xinxi.bIsGPGGA=1;number=6;

        for(i=0;i<4;i++) Shizhong[i]=0;

        Shizhong[0]=huanchong[number];Shizhong[1]=huanchong[number+1];number += 2;for(i=0;i<4;i++)Minu[i]=0;

        Minu[0]=huanchong[number];Minu[1]=huanchong[number+1];number+=2;for(i=0;i<4;i++)Miao[i]=0;

        Miao[0]=huanchong[number];Miao[1]=huanchong[number+1];xinxi.shizhong=atoi(Shizhong);

        xinxi.min=atoi(Minu);xinxi.sec=atoi(Miao);

        xinxi.secFrac=0;xinxi.bjshizhong=xinxi.shizhong+8;

        if(xinxi.bjshizhong>24)xinxi.bjshizhong-=24;number=17;

        for(i=0;i<4;i++)

        Jiaodu[i]=0;Jiaodu[0]=huanchong[number];Jiaodu[1]=

        huanchong[number+1];number+=2;for(i=0;i<8;i++)Fenzhong[i]=0;

        for(i=0;i<7;i++)Fenzhong[i]=huanchong[number+i];

        xinxi.latitude=(atof(Fenzhong))/60.0 + atoi(Jiaodu);

        xinxi.latNS=huanchong[27];number=29;

        for(i=0;i<4;i++)Jiaodu[i]=0;

        Jiaodu[0]=huanchong[number];Jiaodu[1]=huanchong[number+1];Jiaodu[2]=huanchong[number+2];number+=3;for

        (i=0;i<8;i++) Fenzhong[i]=0;

        for(i=0;i<7;i++)Fenzhong[i]=huanchong[number+i];

        xinxi.longitude=(atof(Fenzhong))/60.0+atoi(Jiaodu); xinxi.lgtEW=huanchong[40];number=44;

        for(i=0;i<4;i++)Zhuangtaishu[i]=0;Zhuangtaishu[0]=huanchong[number];Zhuangtaishu[1]=huanchong[number+1];xinxi.satellites=atoi(Zhuangtaishu);

        printf("UTC Time:%d h%d m%d s\n",xinxi.shizhong,xinxi.min,xinxi.sec);

        printf("BJ Time:%d h%d m%d s\n",xinxi.bjshizhong,xinxi.min,xinxi.sec);

        printf("Latitude:%c wei %f\n",xinxi.latNS,xinxi.latitude);

        printf("Longitude:%c jing %f\n",xinxi.lgtEW,xinxi.longitude);

        printf("Satellites:%d\n",xinxi.satellites);printf("\n");

        }else continue;sleep(1);}return 0;}

        (3)編譯生成目標(biāo)代碼下載至目標(biāo)板然后運行調(diào)試

        直接使用arm-linux-gcc命令進行編譯,也可先編好Makefile文件,然后用make命令編譯。我們采用后一種方法,較規(guī)范。

        (4)運行之前先進行如下操作

        ①cd dev;②mkdir tts;③ln–s/dev/tq2440_serial1/dev/tts/1然后運行目標(biāo)程序,調(diào)試發(fā)送和接受數(shù)據(jù)。

        5 結(jié)論(Conclusion)

        本文是作者在多年從事Linux和嵌入式ARM開發(fā)的實踐過程中,就基于Linux+ARM的GPS模塊的開發(fā)所得到的一點心得體會,希望對讀者有所幫助,由于本人能力有限,技術(shù)細節(jié)不夠完善,尚未實現(xiàn)多GPS模塊的多點通訊,沒能把GPS模塊驅(qū)動程序加載至Linux內(nèi)核中開機自動運行,不足之處,希望讀者朋友多多的指正。

        參考文獻(References)

        [1] 田世君.高靈敏度GPS定位及組合導(dǎo)航技術(shù)研究[D].電子科技大學(xué),2009.

        [2] 唐康華.GPS/MIMU嵌入式組合導(dǎo)航關(guān)鍵技術(shù)研究[D].國防科學(xué)技術(shù)大學(xué),2008.

        [3] 公磊.基于Android的GPS測量系統(tǒng)開發(fā)[D].南昌大學(xué),2008.

        作者簡介:

        周小仨(1980-),男,碩士,講師.研究領(lǐng)域:嵌入式,EDA,單片機技術(shù)開發(fā).

        猜你喜歡
        嵌入式
        搭建基于Qt的嵌入式開發(fā)平臺
        嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
        Altera加入嵌入式視覺聯(lián)盟
        倍福 CX8091嵌入式控制器
        自動化博覽(2014年4期)2014-02-28 22:31:15
        在线永久免费观看黄网站| 亚洲一区二区日韩精品在线| 免费在线av一区二区| 亚洲无人区乱码中文字幕能看| 午夜时刻免费入口| 亚洲熟伦熟女新五十路熟妇| 日日人人爽人人爽人人片av| 亚洲精品中文字幕尤物综合 | 女高中生自慰污免费网站| 青青草最新在线视频观看| 亚洲蜜臀av一区二区三区| 成人午夜性a级毛片免费| 国产精品亚洲一区二区无码国产| 亚洲av高清资源在线观看三区| 大量漂亮人妻被中出中文字幕| 人与动牲交av免费| 国产精品黄网站免费观看| 一本久久a久久精品综合| 亚洲精品午夜久久久九九| 国产免费av片在线播放 | 国产主播一区二区在线观看| 国产女同舌吻1区2区| 麻豆影视视频高清在线观看| 夜夜春精品视频| 日韩性感av一区二区三区| 少妇无码av无码专线区大牛影院| 狠狠色婷婷久久综合频道日韩| 国产成人精品成人a在线观看| 91精品欧美综合在线观看| 国产精品一区二区三区av在线| 特黄大片又粗又大又暴| 亚洲饱满人妻视频| 久久精品国产亚洲av调教| 自拍成人免费在线视频| 亚洲精品无码永久在线观看你懂的| 国产精品久久国产精品99gif| 免费在线av一区二区| 一边摸一边抽搐一进一出口述| 成人做爰高潮尖叫声免费观看| 久久精品国产一区二区蜜芽| 日韩精品免费一区二区中文字幕 |