<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > 利用CDMA業(yè)務(wù)傳送GPS定位信息

          利用CDMA業(yè)務(wù)傳送GPS定位信息

          作者: 時(shí)間:2010-09-15 來源:網(wǎng)絡(luò) 收藏

            模塊進(jìn)行數(shù)據(jù)傳輸,既可以采用上網(wǎng)傳輸,也可以采用短消息的方法。下面就短消息方式的數(shù)據(jù)傳輸軟件流程作一介紹。

            對(duì)于數(shù)據(jù)源,模塊不斷發(fā)送固定格式的串行數(shù)據(jù),MCU一串口與之相連。一般MCU對(duì)串口數(shù)據(jù)的接收處理方式有查詢和中斷兩種。這里采用的方法既不是查詢也不是中斷,而是命令的方式,MCU根據(jù)接收到的不同命令,執(zhí)行不同的功能。移動(dòng)終端的軟件流程如圖3所示。

            

            圖3 移動(dòng)終端軟件流程

            (1) MCU的初始化

            單片機(jī)的初始化很重要,它關(guān)系到程序能否正確運(yùn)行。這里主要功能是分配串口引腳,設(shè)置系統(tǒng)時(shí)鐘,確定波特率。

            這里需要重點(diǎn)注意的問題是MCU的初始化。C8051 MCU硬件資源相當(dāng)豐富,但有一些不是能同時(shí)使用的,需要在初始化時(shí)進(jìn)行設(shè)定,所以它的交叉開關(guān)譯碼表的正確使用非常重要。資料中提供的優(yōu)先權(quán)交叉開關(guān)分配是有區(qū)別的,關(guān)鍵看XBR2特殊功能寄存器中的EMIFLE位的值。串口分配時(shí)只用到4個(gè)引腳,沒有用到外部存儲(chǔ)器,所以 P0.7、P0.6、P0.5 的功能由交叉開關(guān)或端口鎖存器決定,而且EMIFLE的值為“0”,這樣可以保證串口分配不出現(xiàn)錯(cuò)位。

            (2) 刪除短消息子程序

            刪除短消息子程序的作用是清空SIM卡里存入的所有讀過的短消息,但未讀取的短消息不會(huì)刪除,使每個(gè)新來的短消息的標(biāo)號(hào)都為“0”。

            (3) 讀短消息子程序

            讀短消息子程序的作用是讀取新消息并將短信的內(nèi)容存儲(chǔ)在內(nèi)部RAM中,為程序的跳轉(zhuǎn)提供判斷的依據(jù)。例如,如果短信的內(nèi)容是“###13520479697*”,表示設(shè)定短消息發(fā)送號(hào)碼;如果需要查詢車輛狀況,MCU就會(huì)向卡號(hào)為“13520479697”的用戶發(fā)信號(hào)。

            指令“AT+CMGR=0”表示讀取SIM卡里的標(biāo)號(hào)為0的短信。先把該指令轉(zhuǎn)換為ASCII碼,然后再串行發(fā)送出去。模塊就會(huì)執(zhí)行相應(yīng)的命令,并將短信內(nèi)容通過串行口傳遞給單片機(jī)。單片機(jī)的串口0的接收標(biāo)志位RI置位,表示接收到一個(gè)完整的字符,可以從串口寄存器中取走內(nèi)容。該標(biāo)志位不能自動(dòng)清零,需要軟件復(fù)位,然后進(jìn)行下一個(gè)字節(jié)的接收。

            短信的內(nèi)容是有長(zhǎng)度的,通過設(shè)定短信內(nèi)容的最后一個(gè)字符是否為“*”號(hào)來決定接收停止位。接收時(shí),判斷串口寄存器。如果接收到的字符為“*”,表示停止接收,則后面接收的無效,將SBUF0的內(nèi)容存入RAM區(qū)。

            (4) 短消息命令的執(zhí)行

            通過刪除舊短信,讀新短信,存儲(chǔ)新短信的內(nèi)容,MCU對(duì)存入內(nèi)容檢索、判斷是什么功能命令,然后跳轉(zhuǎn)到相應(yīng)的功能程序入口,實(shí)現(xiàn)用戶所要求的服務(wù)。

            這里舉兩個(gè)命令說明:如“###13520479697*”和“PLACE*”。

            接收到第1個(gè)命令時(shí),先檢測(cè)“###”,如果符合,則表示后面的數(shù)據(jù)是要存入Flash中的卡號(hào),需要掉電保存的內(nèi)容,將其存入128B的非易失性存儲(chǔ)扇區(qū)中。掉電后,該號(hào)碼不會(huì)丟失。如有語音命令和查詢的命令時(shí),都會(huì)呼叫這個(gè)存入Flash中的號(hào)碼。

            第2個(gè)命令表示接收。它是以第1個(gè)命令為基礎(chǔ)的,只有第1個(gè)命令執(zhí)行后,存有了卡號(hào),才能將定位信息發(fā)送出去。當(dāng)單片機(jī)檢測(cè)到新短信的內(nèi)容為“PLACE*”時(shí),啟動(dòng)定時(shí)器4,通過串口1,接收定位信號(hào)。這時(shí),接收的信號(hào)還不是發(fā)到信息中心,要通過對(duì)導(dǎo)航電文的檢索、提取,最后將有用的時(shí)間、經(jīng)度、緯度信息發(fā)送給設(shè)定的號(hào)碼。

            兩個(gè)不同命令短信的執(zhí)行,功能子程序是分開的,但前端的判斷跳轉(zhuǎn)程序是關(guān)聯(lián)的,所以將兩個(gè)程序合在一起討論。該程序包含對(duì)兩個(gè)串口同時(shí)操作,先讀新消息。如果內(nèi)容有“PLACE*”,則進(jìn)入定位信號(hào)的提取。判斷是否有“###”,有則進(jìn)入存儲(chǔ)號(hào)碼的功能。

            當(dāng)檢測(cè)到“PLACE*”時(shí),首先啟動(dòng)定時(shí)器4,接收串口1的定位信息。由于信號(hào)的定位信息里有些是用不到的,所以接收的信息要加以判斷。如果數(shù)據(jù)頭是“$GPRMC”,才開始接收。接收以A開頭,E結(jié)尾。存放在0800開始的地址空間中,最后把這些內(nèi)容整合到0900開始的地址空間內(nèi),串行發(fā)送給模塊,這樣就完成了定位信息以短消息發(fā)送的目的。

            如果需要更強(qiáng)大的網(wǎng)絡(luò)功能支持,可以嵌入RTOS內(nèi)核?,F(xiàn)在有不少操作系統(tǒng)支持C8051F MCU。

            結(jié)語

            隨著科學(xué)技術(shù)的發(fā)展,在工業(yè)、商業(yè)和軍事領(lǐng)域中實(shí)時(shí)信息的應(yīng)用越來越廣泛,需求量與日俱增。CDMA的推出,更加推動(dòng)了這一方向的迅猛發(fā)展,無線移動(dòng)數(shù)據(jù)傳輸技術(shù)的應(yīng)用有著越來越廣闊的前景。

          cdma相關(guān)文章:cdma原理



          上一頁 1 2 下一頁

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();