美章網(wǎng) 資料文庫 GPRS模塊的應(yīng)用技巧范文

GPRS模塊的應(yīng)用技巧范文

本站小編為你精心準(zhǔn)備了GPRS模塊的應(yīng)用技巧參考范文,愿這些范文能點燃您思維的火花,激發(fā)您的寫作靈感。歡迎深入閱讀并收藏。

《電氣時代》2014年第五期

一、應(yīng)用技術(shù)和特點

目前,微控制器與gprs模塊之間的互動操作大部分采用通用異步串行數(shù)據(jù)接口實現(xiàn),微控制器通過串口發(fā)出AT指令,接收GPRS模塊的指令應(yīng)答和數(shù)據(jù),實現(xiàn)對模塊的控制和數(shù)據(jù)傳輸。與早期GSM模塊不同,目前的GPRS模塊在實現(xiàn)語音和短信通信的基礎(chǔ)上,大部分都內(nèi)嵌TCP/IP協(xié)議棧,可以直接實現(xiàn)與后臺服務(wù)器之間的數(shù)據(jù)傳輸功能。以數(shù)據(jù)傳輸為例,說明GPRS模塊以TCP/IP協(xié)議進行數(shù)據(jù)通信時,要經(jīng)過3個操作過程。1)建立連接。一般來說都是客戶端主動向服務(wù)器端的IP和端口發(fā)出連接請求,而服務(wù)器端偵聽指定的端口,等待客戶端的連接請求并且進行回應(yīng)建立連接。2)數(shù)據(jù)收發(fā)。利用已經(jīng)建立的鏈路進行數(shù)據(jù)收發(fā)。可以使用單幀數(shù)據(jù)包的傳輸,通常一幀可以包含1KB左右。也可以使用“透明傳輸”模式,將串口收到的所有字符和數(shù)據(jù)原封不動地按照TCP/IP協(xié)議打包發(fā)送到遠方服務(wù)器。3)連接釋放。當(dāng)所有數(shù)據(jù)都收發(fā)完成,就需要切斷與后臺服務(wù)器的連接,釋放通信信令和后臺服務(wù)器的資源。但在某些場合,也可一直保持與后臺的連接過程,即“永遠在線”,但在沒有數(shù)據(jù)傳輸?shù)拈g隙內(nèi),需要通過“心跳”數(shù)據(jù)包來維持與后臺的連接,否則在一定空閑后通信網(wǎng)絡(luò)將自動回收空閑的資源。

二、軟件應(yīng)用方案

在使用GPRS模塊進行設(shè)備開發(fā)過程中,逐漸發(fā)現(xiàn)以下的幾個特點。1)使用串口與模塊的通信過程中,存在長度不定的通信幀需要區(qū)分,如果不能可靠地分斷各幀數(shù)據(jù)就不可能正常運行。2)由于涉及到外部網(wǎng)絡(luò)的通信過程,微控制器與GPRS模塊通信過程中存在應(yīng)答延遲的情況,而且延遲的時間長短隨機。如果缺乏合理的應(yīng)對機制,則可能會影響到程序中其他進程的工作。下面就遇到的兩個主要問題進行分析,并提出一種可能的解決方案進行討論。

1.分割數(shù)據(jù)幀對于來自GPRS模塊的數(shù)據(jù)幀長度不定的情況,一般有以下兩種方式解決。1)對于串口具備硬件緩存或DMA以及空閑中斷的微控制器,可以使用足夠長度的緩存進行接收,并配合空閑標(biāo)志進行判斷,該方案可以最大程度地釋放CPU的資源,對于CPU負荷較重的場合比較合適。但該方案對MCU的外設(shè)資源有一定的要求,使得該方案受到一定的限制,而且對延時判斷時間的控制也缺乏靈活性。2)在硬件條件不成熟的情況下,借鑒Modbus協(xié)議的3.5字符時間作為幀分斷的思路,以一定的延遲時間作為判斷數(shù)據(jù)幀完成的標(biāo)志。具體來說,在串口接收到第一個字節(jié)后,啟動已經(jīng)設(shè)定的定時器,并且在每次收到新的字節(jié)后都清空該定時器。幀數(shù)據(jù)接收完成后最后一次清除定時器,等待定時器溢出并產(chǎn)生中斷,報告一幀數(shù)據(jù)接收完成。由于大部分的微控制器都具備串口和定時器等外設(shè),該方案具有更大的普遍意義。另外,在開發(fā)調(diào)試過程中,同一條AT指令的應(yīng)答返回數(shù)據(jù),可能被分斷為兩個甚至三個段發(fā)送回來,中間的間隔可能比MCU串口的硬件產(chǎn)生的空閑中斷判據(jù)要大,可能存在接收不完整的情況。由于可以靈活設(shè)置定時器的超時范圍,對不同廠家的GPRS模塊具備更好的適應(yīng)能力。

2.GPRS模塊的操作機制嘗試了2種不同的處理架構(gòu),分別是有限狀態(tài)機方式和優(yōu)先級消息方式。兩種方式各有千秋,分別適應(yīng)與不同的應(yīng)用模式,同時,作為一種設(shè)計思路,還可以應(yīng)用于更多的場合。(1)有限狀態(tài)機方式由于GPRS模塊的操作是由一系列的請求和應(yīng)答指令配合完成,部分操作流程中“指令-應(yīng)答”之間的順序存在嚴格要求。但在涉及與外部網(wǎng)絡(luò)通信的情況下,應(yīng)答的延遲情況難以判斷。為了嚴格遵循流程操作,同時為了避免由于不定延遲導(dǎo)致系統(tǒng)過長等待而影響其他進程的執(zhí)行,在GPRS模塊的操作中引入“有限狀態(tài)機”的方式,每一步操作成為一個狀態(tài),包含:當(dāng)前狀態(tài),當(dāng)前狀態(tài)下收到的各類消息及轉(zhuǎn)向的下一狀態(tài),和當(dāng)前狀態(tài)需要執(zhí)行的動作。若干個操作形成的序列就轉(zhuǎn)換為一系列順序流轉(zhuǎn)的狀態(tài),所有的狀態(tài)集合成為“狀態(tài)矩陣”,如下圖1所示。程序進入狀態(tài)機,如果收到新的消息,則與已經(jīng)發(fā)出的指令的規(guī)定應(yīng)答相比較,判斷相同則可以按照“狀態(tài)矩陣”規(guī)定的路線轉(zhuǎn)移。直至正確收到本序列最后一條指令的應(yīng)答,結(jié)束本流程操作返回空閑狀態(tài)。以圖2為例進行說明。對于比較簡單的數(shù)據(jù)傳輸任務(wù),本方案可以較好實現(xiàn),尤其對于后續(xù)應(yīng)答或操作不明確的場合比較適合。例如,在人機交互過程中,由于操作人員可能隨意操作按鍵,對鍵盤的響應(yīng)過程可能出現(xiàn)大量不可預(yù)計的操作,利用狀態(tài)矩陣就可為每一個狀態(tài)下每一個按鍵消息進行約束,可以從容地應(yīng)對各種可能出現(xiàn)的情況。對GPRS模塊的操作由于涉及到外部網(wǎng)絡(luò)的互動過程,有時候也會存在一些“意料之外”的情況,采用該方案能較好地控制異常的流程。但對于需要雙向數(shù)據(jù)通信的需求來說,存在一定的風(fēng)險,即“流程交叉”的情況。舉例來說,如果當(dāng)前正在執(zhí)行一次數(shù)據(jù)發(fā)送流程,其中進行到第2步,此時如果收到一條短信數(shù)據(jù),則可能驅(qū)動狀態(tài)機轉(zhuǎn)入短信接收流程。如果之后收到數(shù)據(jù)發(fā)送流程第2步的應(yīng)答,則狀態(tài)機可能陷入混亂。雖然發(fā)生這種極端情況的概率非常小,但系統(tǒng)中始終暗藏這種的風(fēng)險。如果要避免發(fā)生這樣的混亂,就必須再進一步加入狀態(tài)流程的掛起機制,必然會使得整個機制變得更加復(fù)雜。(2)優(yōu)先級消息方式結(jié)合“指令-應(yīng)答”結(jié)構(gòu)體(RA)及表達序列流程的RA數(shù)組,數(shù)據(jù)的組成方式如圖3所示。頂層的“操作流程”由一系列的RA組成,比如一次“透傳流程”就包括:打開鏈接指令及應(yīng)答,啟動透傳指令及應(yīng)答,發(fā)起傳輸指令及應(yīng)答,關(guān)閉透傳指令及應(yīng)答,關(guān)閉連接指令及應(yīng)答等5個步驟。且每一個步驟又涉及:發(fā)出的指令和各種情況的應(yīng)答。在程序方面,采用帶有優(yōu)先級的消息控制的方式,以一種簡潔的方式高效實現(xiàn)四種不同操作:數(shù)據(jù)收/發(fā)與短信收/發(fā)。進入GPRS處理流程,首先判斷是否收到新的消息,如果收到消息則按照一定順序判斷收到消息是否為收短信或收數(shù)據(jù)并按標(biāo)記掛起,然后判斷當(dāng)前是否存在正在執(zhí)行的流程,并將收到的應(yīng)答與RA中的正確應(yīng)答進行比較判斷,并按序列推動狀態(tài)在RA數(shù)組內(nèi)部流轉(zhuǎn)。如果沒有收到任何消息,且不存在任何正在執(zhí)行的流程,則按照:發(fā)數(shù)據(jù),收短信,收數(shù)據(jù)和發(fā)短信的優(yōu)先級順序檢查是否存在掛起的事件,并啟動相應(yīng)的流程。比如,如果存在正在執(zhí)行的流程而沒有收到應(yīng)答,則轉(zhuǎn)入對應(yīng)的流程超時管理機制,對不同的流程分別進行超時控制,并在超時發(fā)生的時候產(chǎn)生標(biāo)記,然后清空當(dāng)前正在執(zhí)行流程的指針,轉(zhuǎn)入空閑等待狀態(tài)。消息處理的過程如圖4所示。

三、結(jié)束語

通過采用以上機制,以一種簡潔的方式實現(xiàn)了比較復(fù)雜的數(shù)據(jù)傳輸任務(wù),較好地實現(xiàn)對GPRS模塊控制。在實際測試過程中表現(xiàn)穩(wěn)定,對網(wǎng)絡(luò)和通信環(huán)境的適應(yīng)能力較強。另外,類似的方案,也可以滿足多種應(yīng)用情況。

作者:陳杭張帆付克勤楊靖單位:重慶市黔江供電有限責(zé)任公司重慶市電力公司璧山供電局重慶櫻花電氣開關(guān)有限公司

精品推薦
主站蜘蛛池模板: 免费黄色网址在线播放| 国产真实乱系列2孕妇| 中文字幕无码不卡一区二区三区| 欧美jlzz18性欧美| 亚洲精品自产拍在线观看| 精品无码人妻一区二区三区品| 国产在线国偷精品免费看| 可以免费看黄的网站| 在公车上拨开内裤进入毛片| 一本色道久久综合亚洲精品高清| 日本午夜精品一区二区三区电影| 五月婷婷丁香六月| 欧美式free群乱| 亚洲码欧美码一区二区三区| 男生的肌肌桶女生的肌肌| 又色又爽又黄的视频软件app| 金莲你下面好紧夹得我好爽| 国产最新在线视频| 香蕉狠狠再啪线视频| 国产高清在线a视频大全| av无码一区二区三区| 学长在下面撞我写着作业l| 中文字幕亚洲欧美日韩高清| 日本在线视频一区二区三区| 久久经典免费视频| 杨钰莹欲乱小说| 亚洲国产日韩欧美一区二区三区| 污视频免费在线观看网站| 人妻少妇看A偷人无码精品视频 | 岳双腿间已经湿成一片视频| 久久中文娱乐网| 日本精品久久久久中文字幕| 亚洲Aⅴ在线无码播放毛片一线天| 欧美成人www在线观看网页| 亚洲精品乱码久久久久久不卡| 男女一级爽爽快视频| 夜夜爽免费888视频| 一卡2卡3卡4卡免费高清| 成人国产精品一级毛片视频| 中文字幕日韩丝袜一区| 无码国产精品一区二区免费模式 |