• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于Windows?。茫诺模牵校討?yīng)用

    2009-06-10 05:30:02宋園方
    合作經(jīng)濟與科技 2009年12期
    關(guān)鍵詞:嵌入式系統(tǒng)串口

    宋園方

    提要本文介紹了Window CE串口讀寫以及GPS報文解析。闡述了串口讀寫數(shù)據(jù)的實現(xiàn)過程,并以GPRMC報文為例,說明從報文中提取有效數(shù)據(jù)的過程。

    關(guān)鍵詞:嵌入式系統(tǒng);GPS報文;串口;Windows CE

    中圖分類號:F49文獻(xiàn)標(biāo)識碼:A

    嵌入式系統(tǒng)因為其擁有與應(yīng)用緊密結(jié)合、系統(tǒng)體積小能夠隨意裁剪、實時處理的特點,現(xiàn)已成為生活、工業(yè)、服務(wù)業(yè)、消費電子各領(lǐng)域中不可或缺的一部分。嵌入式系統(tǒng)家族中成員不少,杰出的代表產(chǎn)品有VxWork、Linux、Windows CE等。其中,Windows CE出自微軟,因為其繼承了Windows的系統(tǒng)與應(yīng)用程序相分離的特點,在嵌入式系統(tǒng)領(lǐng)域中搶占先機,獨領(lǐng)風(fēng)騷。GPS全球衛(wèi)星定位系統(tǒng),由美國國防部研制,具有在海、陸、空進行全方位實時三維導(dǎo)航與定位能力的新一代衛(wèi)星導(dǎo)航與定位系統(tǒng)。隨著全球定位系統(tǒng)的不斷改進,硬軟件的不斷完善,應(yīng)用領(lǐng)域不斷地開拓,目前已遍及國民經(jīng)濟各部門,并開始逐步深入人們的日常生活。本文通過介紹Windows CE串口應(yīng)用程序的實現(xiàn)以及GPS數(shù)據(jù)報文格式解析,實現(xiàn)了基于Windows CE的GPS應(yīng)用。

    一、基于Windows CE串口程序設(shè)計

    因為串性傳輸受干擾小、傳輸速度快的優(yōu)點,被大量應(yīng)用到各種外設(shè)與CPU之間的通信上,所以,目前主流的GPS芯片與CPU之間也是采用串口通信的。Windows CE已經(jīng)為開發(fā)者提供了現(xiàn)成的API。Windows CE中用于打開串口的API 函數(shù)為CreateFile,其原型為:

    HANDLE CreateFile (

    LPCTSTR lpFileName,//將要打開的串口邏輯名,如COM1 或COM2

    DWORD dwAccess,//指定串口訪問的類型,可以是讀取、寫入或兩者并列

    DWORD dwShareMode,//指定共享屬性,由于串口不能共享,該參數(shù)必須置為0

    LPSECURITY_ATTRIBUTES lpsa,//引用安全性屬性結(jié)構(gòu),缺省值為NULL

    DWORD dwCreate,//創(chuàng)建標(biāo)志,對串口操作該參數(shù)必須置為OPEN EXISTING

    DWORD dwAttrsAndFlags,//屬性描述,用于指定該串口是否可進行異步操作

    HANDLE hTemplateFile//指向模板文件的句柄,對串口而言該參數(shù)必須置為NULL

    );

    讀串口的API為ReadFile,其原型為:

    BOOL ReadFile(

    HANDLE hFile,//要讀串口的句柄

    LPVOID lpBuffer,//接收數(shù)據(jù)buffer 的指針

    DWORD nNumberOfBytesToRead,//讀取數(shù)據(jù)的字節(jié)數(shù)

    LPDWORD lpNumberOfBytesRead,//實際讀取數(shù)據(jù)的字節(jié)數(shù)

    LPOVERLAPPED lpOverlapped //重疊操作時該參數(shù)指向一個OVERLAPPED結(jié)構(gòu),同步操作時該參數(shù)為NULL

    );

    打開串口后,需要對串口進行一些初始化配置工作。這需要通過一個DCB結(jié)構(gòu)來進行。DCB結(jié)構(gòu)包含了諸如波特率、數(shù)據(jù)位數(shù)、奇偶校驗和停止位數(shù)等信息。在查詢或配置串口的屬性時,都要用DCB結(jié)構(gòu)來作為緩沖區(qū)。一般用CreateFile打開串口后,可以調(diào)用GetCommState函數(shù)來獲取串口的初始配置。要修改串口的配置,應(yīng)該先修改DCB結(jié)構(gòu),然后再調(diào)用SetCommState函數(shù)設(shè)置串口。

    除了在BCD中的設(shè)置外,程序一般還需要設(shè)置I/O緩沖區(qū)的大小和超時。Windows CE同Windows系統(tǒng)一樣,用I/O緩沖區(qū)來暫時存放串口輸入和輸出的數(shù)據(jù)。調(diào)用SetupComm函數(shù)可以設(shè)置串行口的輸入和輸出緩沖區(qū)的大小。

    在讀寫串口時,由于硬件或是緩存等問題,會出現(xiàn)超時現(xiàn)象。在串口程序設(shè)計時,要有相應(yīng)的處理。超時設(shè)置的作用是在規(guī)定的時間內(nèi)沒有讀入或發(fā)送出指定數(shù)量的字符,則讀或?qū)懙牟僮鲿K止??梢杂肎etCommTimeouts函數(shù)查詢當(dāng)前的超時設(shè)置,該函數(shù)會填充一個COMMTIMEOUTS結(jié)構(gòu)。調(diào)用SetCommTimeouts可以用某一個COMMTIMEOUTS結(jié)構(gòu)的內(nèi)容來設(shè)置超時。

    從串口讀出數(shù)據(jù)后,我們就可以對GPS數(shù)據(jù)報文進行解析了。

    二、GPS報文解析

    GPS的數(shù)據(jù)有多種報文格式,分別有GPRMC、GPGSV、GPGSA、GPGGA。GPR-

    MC為推薦定位信息,GPGSV為可視衛(wèi)星狀態(tài)輸出語句,GPGSA為GPS精度指針及使用衛(wèi)星格式GPGGA為GPS固定數(shù)據(jù)輸出語句。

    報文數(shù)據(jù)中有些數(shù)據(jù)是重復(fù)的,在解析GPS報文的時候,沒有必要將所有的報文都解析,根據(jù)應(yīng)用的需要,只解析所需數(shù)據(jù)即可。如本文涉及到的應(yīng)用只需要經(jīng)度、緯度,所以,我們只解析GPRMC報文就足夠了。如下是GPRMC報文數(shù)據(jù)格式和描述。其他應(yīng)用所需報文數(shù)據(jù)及其相關(guān)報文數(shù)據(jù)描述,本文不再贅述。

    $GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>

    (1)標(biāo)準(zhǔn)定位時間(UTC time)格式:時時分分秒秒.秒秒秒(hhmmss.sss)

    (2)定位狀態(tài),A=數(shù)據(jù)可用,V=數(shù)據(jù)不可用

    (3)緯度,格式:度度分分.分分分分(ddmm.mmmm)

    (4)緯度區(qū)分,北半球(N)或南半球(S)

    (5)經(jīng)度,格式:度度分分.分分分分

    (6)經(jīng)度區(qū)分,東(E)半球或西(W)半球

    (7)相對位移速度,0.0至1851.8knots

    (8)相對位移方向,000.0至359.9度

    (9)日期,格式:日日月月年年(ddmmyy)

    (10)磁極變量,000.0至180.0

    (11)度數(shù)

    (12)Checksum.(檢查位)

    因為串口收到的數(shù)據(jù)是GPS的全部報文,根據(jù)設(shè)計,我們只提取GPRMC報文。GPS報文數(shù)據(jù)是ASCⅡ碼,在應(yīng)用時,需要將其轉(zhuǎn)換成數(shù)值,便于在程序中進行運算和對比。圖1是從GPRMC報文中提取經(jīng)度、緯度的具體流程,以及處理GPRMC報文,將維度、維度區(qū)分,經(jīng)度、經(jīng)度區(qū)分,提取出來部分代碼。(圖1)

    得到經(jīng)度和緯度后,可以簡單地做些應(yīng)用,但是要達(dá)到商用GPS應(yīng)用要求還需要進一步完善,如在短時間內(nèi)GPS沒有定位,則需要經(jīng)緯度推算等設(shè)計。

    本文介紹了基于Windows CE串口讀取數(shù)據(jù)以及GPS報文解析的實現(xiàn)。該設(shè)計成功用于某便攜式導(dǎo)航產(chǎn)品的電子狗功能中,實現(xiàn)了系統(tǒng)根據(jù)當(dāng)前經(jīng)緯度對指定地點距離進行判斷。串口讀取GPS數(shù)據(jù)方案在嵌入式領(lǐng)域中應(yīng)用很廣泛,如車載、手持產(chǎn)品中都有應(yīng)用。Windows CE已成為嵌入式系統(tǒng)的主流,其快速、模塊化的開發(fā)方式,為開發(fā)者開發(fā)應(yīng)用程序提供了規(guī)范、快速的框架。

    (作者單位:西安歐亞學(xué)院信息工程學(xué)院)

    參考文獻(xiàn):

    [1]周毓林,寧楊,陸貴強,付林林.Windows CE.net內(nèi)核定制及應(yīng)用開發(fā).北京:電子工業(yè)出版社,2005.2.

    [2]龔建偉,熊光明.Visual C++/Turbo C串口通信編程實踐(第2版).北京:電子工業(yè)出版社,2007.9.

    猜你喜歡
    嵌入式系統(tǒng)串口
    淺談AB PLC串口跟RFID傳感器的通訊應(yīng)用
    辦公自動化系統(tǒng)的設(shè)計
    嵌入式系統(tǒng)在醫(yī)療器械中的應(yīng)用分析
    基于物聯(lián)網(wǎng)項目驅(qū)動的嵌入式系統(tǒng)教學(xué)改革的研究與實踐
    嵌入式系統(tǒng)課程“中斷、異常與事件”教學(xué)實踐及啟示
    計算機教育(2016年7期)2016-11-10 08:31:34
    面向?qū)嵺`創(chuàng)新人才培養(yǎng)的嵌入式系統(tǒng)教學(xué)研究
    計算機教育(2016年7期)2016-11-10 08:12:11
    在DiskOnChip上構(gòu)建VxWorks系統(tǒng)開發(fā)環(huán)境
    數(shù)字電源內(nèi)部數(shù)據(jù)傳輸?shù)拇谕ㄐ欧椒▽崿F(xiàn)
    USB接口的多串口數(shù)據(jù)并行接收方法探索
    串口技術(shù)的實物調(diào)試和虛擬仿真聯(lián)合教學(xué)模式
    河东区| 黔江区| 颍上县| 虹口区| 板桥市| 湖州市| 连平县| 沧州市| 西青区| 治县。| 金阳县| 永德县| 扶风县| 靖西县| 盐源县| 灌云县| 临高县| 乐至县| 濮阳市| 改则县| 亚东县| 富宁县| 曲阳县| 时尚| 临潭县| 普兰县| 陇西县| 定西市| 浦城县| 化州市| 凌源市| 武宁县| 昌平区| 崇仁县| 仪征市| 扎鲁特旗| 黔南| 新巴尔虎右旗| 盐津县| 彩票| 榆中县|