新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 嵌入式物流信息終端定位功能設計與實現

        嵌入式物流信息終端定位功能設計與實現

        作者: 時間:2012-11-16 來源:網絡 收藏


          對于終端導航而言,“$GPRMC”幀格式可以滿足大部分需求,其幀長相對較短,便于信息處理。因此,在本系統中,選取“$GPRMC”幀進行定位信息提取。系統通過RS232串口從-OEM模塊中接收定位數據,從接收數據中的“$GPRMC”幀提取時間、經緯度、速度、方位角等定位導航信息。其程序模塊主體結構如下:

        ……
        //判斷是否為$GPRMC幀頭,并進行標記
        if(Data[i]=='$' Data[i+3]=='R')
        ……
        //判斷是否為幀尾,幀尾以換行字符LF>表示,數值為10 ''
        if(Data[i]==10 SectionID==13) { ……
        id_check=m*16+n; //得到檢驗數據的INT型
        if(chk_result!=id_check) //比較異或運算結果與檢驗數據是否一致
        …… i f( Data[i]=='*' SectionID==12 ) //異或運算結果
        ……
        //對$至*之間的字符進行異或運算,得到結果chk_result
        for( ; Data[n]!='*"; n++) chk_result^=Data[n];
        //判斷逗號,區分識別數據,并判別*號,區分校驗數據
        if(Data[i]==','||(Data[i]=='*' SectionID==12) )
        SectionID++;
        else
        { switch(SectionID)
        { case 1: //提取時間
        m_sTime[a++]=Data[i];
        break;
        case 2: //接收判別有效性數據A為有效,V為無效
        ……
        case 3: //提取緯度
        ……//提取經度、速度、方位角、校驗數據等其它信息

        2)Linux串口通信編程

          嵌入式Linux操作系統使用接口標準POSIX的termios接口來控制串口的行為。在Linux系統中,串口等設備被當作文件進行處理,其程序模塊主體實現如下:

        int fd=open("/dev/ttyS1",O_RDWRIO_NOCTTY);//打開串口
        ……
        new_options.c_cflag =~PARENB;//無奇偶校驗
        new_options.c_cflag =~CSIZE;//不隱藏數據位
        new_options.c_cflag =~CSTOP8;//無停止位
        new_options.c_cflag |=CS8;//8位數據位
        cfsetispeed(new_options,B4800);//設置波特率4800bit/s
        cfsetospeed(new_options,B4800);
        tcflush(fd,TCIOFLUSH);
        tcsetattr(fd,TCSANOW,new_options);//設置新的設備方式

          完成串口設置后,就可以使用read( )、write( )函數對串口進行操作。需注意的是,串口默認是阻塞型的,當沒有數據到達時,將會阻塞掛起,這時可以通過多線程編程、串口超時設定或使用select輪詢等方式進行調整控制。本系統主要采用多線程編程實現對串口阻塞的調控,使用的是QT的Qthread類,也可以直接使用Linux自身的多線程函數進行操作。

        3)QT/Embedded編程

          Qt/Embedded是著名的Qt庫開發商TrollTech正在進行的基于framebuffer的面向嵌入式系統的Qt版本。因其面向對象、跨平臺和界面設計方便美觀而得到廣泛應用。

          本設計采用QT/Embedded 3.3.4版本,它支持SQLITE數據庫驅動,便于數據庫操作與編程。設計主要使用了QTE的畫布模塊、SQL模塊和網絡模塊。畫布模塊中,QCanvas庫是一個高度優化的二維繪圖庫,與其它畫布模塊結合使用,能很方便地實現導航地圖的顯示、縮放、漫游以及鷹眼等功能。而SQL模塊和網絡模塊能很方便地實現數據庫編程和網絡通信功能,極大地縮短了程序的開發周期,提高了開發效率。

        初步實現

          定位誤差主要取決于-OEM模塊的定位精度,實驗顯示本系統能初步滿足的需求。


        結束語

          本文提出了一套基于嵌入式Linux系統的物流信息化終端的設計方案,并對其進行了初步實現。實驗證明:系統定位數據精確、界面友好、系統可擴展性強,較好地完成了物流信息化終端。本系統可用于物流終端定位導航,也可適用于其它需要定位導航服務的場合,具有較普遍的適用價值和參考價值。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 绵阳市| 塘沽区| 台东县| 江阴市| 邯郸市| 略阳县| 大石桥市| 巴南区| 兴业县| 娱乐| 泽州县| 泰来县| 宜昌市| 阳信县| 南丰县| 盐亭县| 达日县| 凯里市| 泽普县| 保山市| 陆河县| 广德县| 安泽县| 黄山市| 盖州市| 莫力| 南丰县| 屏东市| 衡阳市| 五台县| 安龙县| 东乌珠穆沁旗| 宜春市| 福泉市| 达拉特旗| 商河县| 比如县| 汤原县| 衢州市| 夏津县| 永川市|