




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
精品文檔-下載后可編輯GPRS模塊的應(yīng)用技巧《電氣時(shí)代》2022年第五期
一、應(yīng)用技術(shù)和特點(diǎn)
目前,微控制器與GPRS模塊之間的互動(dòng)操作大部分采用通用異步串行數(shù)據(jù)接口實(shí)現(xiàn),微控制器通過(guò)串口發(fā)出AT指令,接收GPRS模塊的指令應(yīng)答和數(shù)據(jù),實(shí)現(xiàn)對(duì)模塊的控制和數(shù)據(jù)傳輸。與早期GSM模塊不同,目前的GPRS模塊在實(shí)現(xiàn)語(yǔ)音和短信通信的基礎(chǔ)上,大部分都內(nèi)嵌TCP/IP協(xié)議棧,可以直接實(shí)現(xiàn)與后臺(tái)服務(wù)器之間的數(shù)據(jù)傳輸功能。以數(shù)據(jù)傳輸為例,說(shuō)明GPRS模塊以TCP/IP協(xié)議進(jìn)行數(shù)據(jù)通信時(shí),要經(jīng)過(guò)3個(gè)操作過(guò)程。1)建立連接。一般來(lái)說(shuō)都是客戶(hù)端主動(dòng)向服務(wù)器端的IP和端口發(fā)出連接請(qǐng)求,而服務(wù)器端偵聽(tīng)指定的端口,等待客戶(hù)端的連接請(qǐng)求并且進(jìn)行回應(yīng)建立連接。2)數(shù)據(jù)收發(fā)。利用已經(jīng)建立的鏈路進(jìn)行數(shù)據(jù)收發(fā)??梢允褂脝螏瑪?shù)據(jù)包的傳輸,通常一幀可以包含1KB左右。也可以使用“透明傳輸”模式,將串口收到的所有字符和數(shù)據(jù)原封不動(dòng)地按照TCP/IP協(xié)議打包發(fā)送到遠(yuǎn)方服務(wù)器。3)連接釋放。當(dāng)所有數(shù)據(jù)都收發(fā)完成,就需要切斷與后臺(tái)服務(wù)器的連接,釋放通信信令和后臺(tái)服務(wù)器的資源。但在某些場(chǎng)合,也可一直保持與后臺(tái)的連接過(guò)程,即“永遠(yuǎn)在線”,但在沒(méi)有數(shù)據(jù)傳輸?shù)拈g隙內(nèi),需要通過(guò)“心跳”數(shù)據(jù)包來(lái)維持與后臺(tái)的連接,否則在一定空閑后通信網(wǎng)絡(luò)將自動(dòng)回收空閑的資源。
二、軟件應(yīng)用方案
在使用GPRS模塊進(jìn)行設(shè)備開(kāi)發(fā)過(guò)程中,逐漸發(fā)現(xiàn)以下的幾個(gè)特點(diǎn)。1)使用串口與模塊的通信過(guò)程中,存在長(zhǎng)度不定的通信幀需要區(qū)分,如果不能可靠地分?jǐn)喔鲙瑪?shù)據(jù)就不可能正常運(yùn)行。2)由于涉及到外部網(wǎng)絡(luò)的通信過(guò)程,微控制器與GPRS模塊通信過(guò)程中存在應(yīng)答延遲的情況,而且延遲的時(shí)間長(zhǎng)短隨機(jī)。如果缺乏合理的應(yīng)對(duì)機(jī)制,則可能會(huì)影響到程序中其他進(jìn)程的工作。下面就遇到的兩個(gè)主要問(wèn)題進(jìn)行分析,并提出一種可能的解決方案進(jìn)行討論。
1.分割數(shù)據(jù)幀對(duì)于來(lái)自GPRS模塊的數(shù)據(jù)幀長(zhǎng)度不定的情況,一般有以下兩種方式解決。1)對(duì)于串口具備硬件緩存或DMA以及空閑中斷的微控制器,可以使用足夠長(zhǎng)度的緩存進(jìn)行接收,并配合空閑標(biāo)志進(jìn)行判斷,該方案可以最大程度地釋放CPU的資源,對(duì)于CPU負(fù)荷較重的場(chǎng)合比較合適。但該方案對(duì)MCU的外設(shè)資源有一定的要求,使得該方案受到一定的限制,而且對(duì)延時(shí)判斷時(shí)間的控制也缺乏靈活性。2)在硬件條件不成熟的情況下,借鑒Modbus協(xié)議的3.5字符時(shí)間作為幀分?jǐn)嗟乃悸?,以一定的延遲時(shí)間作為判斷數(shù)據(jù)幀完成的標(biāo)志。具體來(lái)說(shuō),在串口接收到第一個(gè)字節(jié)后,啟動(dòng)已經(jīng)設(shè)定的定時(shí)器,并且在每次收到新的字節(jié)后都清空該定時(shí)器。幀數(shù)據(jù)接收完成后最后一次清除定時(shí)器,等待定時(shí)器溢出并產(chǎn)生中斷,報(bào)告一幀數(shù)據(jù)接收完成。由于大部分的微控制器都具備串口和定時(shí)器等外設(shè),該方案具有更大的普遍意義。另外,在開(kāi)發(fā)調(diào)試過(guò)程中,同一條AT指令的應(yīng)答返回?cái)?shù)據(jù),可能被分?jǐn)酁閮蓚€(gè)甚至三個(gè)段發(fā)送回來(lái),中間的間隔可能比MCU串口的硬件產(chǎn)生的空閑中斷判據(jù)要大,可能存在接收不完整的情況。由于可以靈活設(shè)置定時(shí)器的超時(shí)范圍,對(duì)不同廠家的GPRS模塊具備更好的適應(yīng)能力。
2.GPRS模塊的操作機(jī)制嘗試了2種不同的處理架構(gòu),分別是有限狀態(tài)機(jī)方式和優(yōu)先級(jí)消息方式。兩種方式各有千秋,分別適應(yīng)與不同的應(yīng)用模式,同時(shí),作為一種設(shè)計(jì)思路,還可以應(yīng)用于更多的場(chǎng)合。(1)有限狀態(tài)機(jī)方式由于GPRS模塊的操作是由一系列的請(qǐng)求和應(yīng)答指令配合完成,部分操作流程中“指令-應(yīng)答”之間的順序存在嚴(yán)格要求。但在涉及與外部網(wǎng)絡(luò)通信的情況下,應(yīng)答的延遲情況難以判斷。為了嚴(yán)格遵循流程操作,同時(shí)為了避免由于不定延遲導(dǎo)致系統(tǒng)過(guò)長(zhǎng)等待而影響其他進(jìn)程的執(zhí)行,在GPRS模塊的操作中引入“有限狀態(tài)機(jī)”的方式,每一步操作成為一個(gè)狀態(tài),包含:當(dāng)前狀態(tài),當(dāng)前狀態(tài)下收到的各類(lèi)消息及轉(zhuǎn)向的下一狀態(tài),和當(dāng)前狀態(tài)需要執(zhí)行的動(dòng)作。若干個(gè)操作形成的序列就轉(zhuǎn)換為一系列順序流轉(zhuǎn)的狀態(tài),所有的狀態(tài)集合成為“狀態(tài)矩陣”,如下圖1所示。程序進(jìn)入狀態(tài)機(jī),如果收到新的消息,則與已經(jīng)發(fā)出的指令的規(guī)定應(yīng)答相比較,判斷相同則可以按照“狀態(tài)矩陣”規(guī)定的路線轉(zhuǎn)移。直至正確收到本序列最后一條指令的應(yīng)答,結(jié)束本流程操作返回空閑狀態(tài)。以圖2為例進(jìn)行說(shuō)明。對(duì)于比較簡(jiǎn)單的數(shù)據(jù)傳輸任務(wù),本方案可以較好實(shí)現(xiàn),尤其對(duì)于后續(xù)應(yīng)答或操作不明確的場(chǎng)合比較適合。例如,在人機(jī)交互過(guò)程中,由于操作人員可能隨意操作按鍵,對(duì)鍵盤(pán)的響應(yīng)過(guò)程可能出現(xiàn)大量不可預(yù)計(jì)的操作,利用狀態(tài)矩陣就可為每一個(gè)狀態(tài)下每一個(gè)按鍵消息進(jìn)行約束,可以從容地應(yīng)對(duì)各種可能出現(xiàn)的情況。對(duì)GPRS模塊的操作由于涉及到外部網(wǎng)絡(luò)的互動(dòng)過(guò)程,有時(shí)候也會(huì)存在一些“意料之外”的情況,采用該方案能較好地控制異常的流程。但對(duì)于需要雙向數(shù)據(jù)通信的需求來(lái)說(shuō),存在一定的風(fēng)險(xiǎn),即“流程交叉”的情況。舉例來(lái)說(shuō),如果當(dāng)前正在執(zhí)行一次數(shù)據(jù)發(fā)送流程,其中進(jìn)行到第2步,此時(shí)如果收到一條短信數(shù)據(jù),則可能驅(qū)動(dòng)狀態(tài)機(jī)轉(zhuǎn)入短信接收流程。如果之后收到數(shù)據(jù)發(fā)送流程第2步的應(yīng)答,則狀態(tài)機(jī)可能陷入混亂。雖然發(fā)生這種極端情況的概率非常小,但系統(tǒng)中始終暗藏這種的風(fēng)險(xiǎn)。如果要避免發(fā)生這樣的混亂,就必須再進(jìn)一步加入狀態(tài)流程的掛起機(jī)制,必然會(huì)使得整個(gè)機(jī)制變得更加復(fù)雜。(2)優(yōu)先級(jí)消息方式結(jié)合“指令-應(yīng)答”結(jié)構(gòu)體(RA)及表達(dá)序列流程的RA數(shù)組,數(shù)據(jù)的組成方式如圖3所示。頂層的“操作流程”由一系列的RA組成,比如一次“透?jìng)髁鞒獭本桶ǎ捍蜷_(kāi)鏈接指令及應(yīng)答,啟動(dòng)透?jìng)髦噶罴皯?yīng)答,發(fā)起傳輸指令及應(yīng)答,關(guān)閉透?jìng)髦噶罴皯?yīng)答,關(guān)閉連接指令及應(yīng)答等5個(gè)步驟。且每一個(gè)步驟又涉及:發(fā)出的指令和各種情況的應(yīng)答。在程序方面,采用帶有優(yōu)先級(jí)的消息控制的方式,以一種簡(jiǎn)潔的方式高效實(shí)現(xiàn)四種不同操作:數(shù)據(jù)收/發(fā)與短信收/發(fā)。進(jìn)入GPRS處理流程,首先判斷是否收到新的消息,如果收到消息則按照一定順序判斷收到消息是否為收短信或收數(shù)據(jù)并按標(biāo)記掛起,然后判斷當(dāng)前是否存在正在執(zhí)行的流程,并將收到的應(yīng)答與RA中的正確應(yīng)答進(jìn)行比較判斷,并按序列推動(dòng)狀態(tài)在RA數(shù)組內(nèi)部流轉(zhuǎn)。如果沒(méi)有收到任何消息,且不存在任何正在執(zhí)行的流程,則按照:發(fā)數(shù)據(jù),收短信,收數(shù)據(jù)和發(fā)短信的優(yōu)先級(jí)順序檢查是否存在掛起的事件,并啟動(dòng)相應(yīng)的流程。比如,如果存在正在執(zhí)行的流程而沒(méi)有收到應(yīng)答,則轉(zhuǎn)入對(duì)應(yīng)的流程超時(shí)管理機(jī)制,對(duì)不同的流程分別進(jìn)行超時(shí)控制,并在超時(shí)發(fā)生的時(shí)候產(chǎn)生標(biāo)記,然后清空當(dāng)前正在執(zhí)行流程的指針,轉(zhuǎn)入空閑等待狀態(tài)。消息處理的過(guò)程如圖4所示。
三、結(jié)束語(yǔ)
通過(guò)采用以上機(jī)制,以一種簡(jiǎn)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國(guó)瓶裝飲用天然凈水項(xiàng)目投資可行性研究報(bào)告
- 農(nóng)村小區(qū)租賃合同范本
- 2024年廣西桂林醫(yī)學(xué)院附屬醫(yī)院招聘助理考試真題
- 2023-2028年中國(guó)種子檢驗(yàn)行業(yè)市場(chǎng)深度研究及投資戰(zhàn)略規(guī)劃建議報(bào)告
- 兩個(gè)乙方合同范本
- 2025年度教育機(jī)構(gòu)租賃合同字
- 農(nóng)用機(jī)械作業(yè)勞務(wù)合同范本
- 2025年度影視作品模特出演合約書(shū)
- 2025年度聯(lián)合體投標(biāo)協(xié)議書(shū)(數(shù)據(jù)中心及云計(jì)算合作)
- 2025年度一手新房全款合同簡(jiǎn)易版(含網(wǎng)絡(luò)設(shè)施)
- (幻燈片)湘教版七年級(jí)下冊(cè)地理復(fù)習(xí)課件
- 食堂油鍋起火演練方案及流程
- 2024年江西電力職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)及答案解析
- 醫(yī)療器械銷(xiāo)售渠道管理
- 幼兒園中班跳繩實(shí)施方案及措施
- 2024年中考政治總復(fù)習(xí)初中道德與法治知識(shí)點(diǎn)總結(jié)(重點(diǎn)標(biāo)記版)
- 小學(xué)學(xué)校培優(yōu)輔差計(jì)劃
- 【真題】2023年常州市中考道德與法治試卷(含答案解析)
- 高速公路工程項(xiàng)目監(jiān)理質(zhì)量控制
- 肺結(jié)節(jié)圍術(shù)期護(hù)理
- 馬錫五審判方式
評(píng)論
0/150
提交評(píng)論