專利名稱:At指令處理裝置及其方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種AT指令處理裝置及其方法,特別是涉及一種基于AT指令發(fā)送,數(shù)據(jù)解析和應(yīng)用處理任務(wù)相分離的AT指令處理裝置及其方法,同時(shí)實(shí)現(xiàn)了一種基于 μ COS-Ii的超時(shí)機(jī)制的數(shù)據(jù)接收方法。
背景技術(shù):
由于GSM協(xié)議的規(guī)定,對(duì)無(wú)線模塊執(zhí)行AT指令后的回復(fù)消息中,各個(gè)指令沒(méi)有統(tǒng)一的結(jié)束符,這給回復(fù)消息的解析添加了難度。傳統(tǒng)的解析AT指令的方法是存儲(chǔ)所有的發(fā)送AT指令返回的可能值,依據(jù)返回消息的換行結(jié)束符號(hào)來(lái)解析。由于應(yīng)用中通常有大量的 AT指令,需要在程序中占用大量空間。同時(shí),多路AT指令發(fā)送后,不同AT指令返回的不同行的數(shù)據(jù)存在混合的可能。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問(wèn)題是為了克服現(xiàn)有技術(shù)中多路AT指令發(fā)送后,多路AT接收數(shù)據(jù)相混合的缺陷,提供一種增加接收AT回復(fù)數(shù)據(jù)的可靠性的AT指令處理裝置及其方法。本發(fā)明是通過(guò)下述技術(shù)方案來(lái)解決上述技術(shù)問(wèn)題的一種AT指令處理裝置,其特點(diǎn)在于,其包括發(fā)送模塊,用于發(fā)送AT指令,并且任何一個(gè)時(shí)刻只有一條AT指令被發(fā)送過(guò);接收模塊,用于接收并解析AT指令,并依據(jù)接收到字符的不同情況觸發(fā)不同的應(yīng)用層的任務(wù);同時(shí),接收模塊還實(shí)現(xiàn)了一種基于μ COS-II的超時(shí)機(jī)制的數(shù)據(jù)接收方法。應(yīng)用處理模塊,用于AT指令中短信內(nèi)容的解析,依據(jù)短信的不同內(nèi)容執(zhí)行相應(yīng)的操作。較佳地,該裝置為基于實(shí)時(shí)多任務(wù)操作系統(tǒng)的裝置。較佳地,該實(shí)時(shí)多任務(wù)操作系統(tǒng)為yCOS-II。較佳地,所述AT指令包括GPRS以及TCP狀態(tài)查詢指令,發(fā)送以及讀取短信指令, 發(fā)送TCP數(shù)據(jù)指令。本發(fā)明的另一技術(shù)方案為一種所述的裝置的AT指令處理方法,其特點(diǎn)在于,其包括以下步驟S1、發(fā)送模塊發(fā)送AT指令,并且任何一個(gè)時(shí)刻只有一條AT指令被發(fā)送過(guò);&、接收模塊接收并解析AT指令,并依據(jù)接收到字符的不同情況觸發(fā)不同的應(yīng)用層的任務(wù);&、應(yīng)用處理模塊解析AT指令中的短信內(nèi)容,依據(jù)短信的不同內(nèi)容執(zhí)行相應(yīng)的操作。較佳地,步驟S1中,發(fā)送模塊發(fā)送數(shù)據(jù)后,只有等待預(yù)定的超時(shí)間隔后,才發(fā)送下一條數(shù)據(jù),以確保無(wú)線模塊發(fā)送數(shù)據(jù)的結(jié)束。
較佳地,所述AT指令包括GPRS以及TCP狀態(tài)查詢指令,發(fā)送以及讀取短信指令, 發(fā)送TCP數(shù)據(jù)指令。較佳地,步驟&中,接收AT指令的過(guò)程采用逐個(gè)字符接收的方式,基于硬件的中斷判斷到有數(shù)據(jù)后,利用信號(hào)量來(lái)通知接收模塊。較佳地,步驟&中,接收模塊通過(guò)信號(hào)量和郵箱來(lái)觸發(fā)不同的應(yīng)用層的任務(wù)。較佳地,步驟&中執(zhí)行的操作包括依據(jù)短信內(nèi)容控制LED的開(kāi)關(guān)、開(kāi)發(fā)板上的 LED的多路查詢和控制。本發(fā)明的積極進(jìn)步效果在于本發(fā)明采取逐個(gè)字符接收的方式來(lái)接收數(shù)據(jù),主要應(yīng)用基于μ COS-II的超時(shí)機(jī)制的數(shù)據(jù)接收,這一方法有別于傳統(tǒng)的數(shù)據(jù)接收方式。本發(fā)明有效降低了 AT回復(fù)數(shù)據(jù)的丟失概率,增加接收AT回復(fù)數(shù)據(jù)的可靠性。進(jìn)一步地,實(shí)現(xiàn)了在 μ COS-II下,AT指令發(fā)送和數(shù)據(jù)解析的完全分離。降低了接收數(shù)據(jù)中AT指令數(shù)據(jù)混合的可能性,降低了解析AT指令的復(fù)雜度?;贏T指令發(fā)送,數(shù)據(jù)解析和應(yīng)用處理任務(wù)相分離的原則,同時(shí)給后續(xù)的應(yīng)用添加留下了方便。
圖1為本發(fā)明的AT指令處理裝置的示意圖。圖2為本發(fā)明的AT指令處理方法的流程圖。圖3為本發(fā)明的各個(gè)任務(wù)之間的切換流程圖。圖4為本發(fā)明的基于μ COS-II的超時(shí)機(jī)制的數(shù)據(jù)接收流程圖。
具體實(shí)施例方式下面結(jié)合附圖給出本發(fā)明較佳實(shí)施例,以詳細(xì)說(shuō)明本發(fā)明的技術(shù)方案。眾所周知,在進(jìn)行無(wú)線模塊的開(kāi)發(fā)時(shí),需要利用MCU或單片機(jī)和無(wú)線模塊之間進(jìn)行通信。本發(fā)明就是基于此架構(gòu)上的一種開(kāi)發(fā),本實(shí)施例中的MCU采用的是ARM。如圖1所示,本發(fā)明的AT指令處理裝置1,包括發(fā)送模塊11,用于發(fā)送AT指令,并且任何一個(gè)時(shí)刻只有一條AT指令被發(fā)送過(guò);接收模塊12,用于接收并解析AT指令,并依據(jù)接收到字符的不同情況觸發(fā)不同的應(yīng)用層的任務(wù);應(yīng)用處理模塊13,用于AT指令中短信內(nèi)容的解析,依據(jù)短信的不同內(nèi)容執(zhí)行相應(yīng)的操作。其中,所述的AT指令可以為GPRS以及TCP狀態(tài)查詢指令,發(fā)送以及讀取短信指令,發(fā)送TCP數(shù)據(jù)指令。在本實(shí)施例中,采用了 μ COS-II作為實(shí)時(shí)操作系統(tǒng),當(dāng)然本領(lǐng)域技術(shù)人員也可采用其他類型的操作系統(tǒng),它具有絕大部分實(shí)時(shí)操作系統(tǒng)具有的實(shí)時(shí)性,任務(wù)可搶占性,同時(shí)它具有更小的內(nèi)存占用。在具體實(shí)現(xiàn)中,前述的模塊對(duì)應(yīng)操作系統(tǒng)的各個(gè)任務(wù),比如所有的AT發(fā)送都放在任務(wù)A而任務(wù)B負(fù)責(zé)所有接收到的數(shù)據(jù)處理,解析都放在這個(gè)任務(wù)。任務(wù)C為應(yīng)用任務(wù),它用來(lái)處理短信相關(guān)的任務(wù)。任務(wù)B 通過(guò)信號(hào)量和郵箱來(lái)控制任務(wù)C,后續(xù)的應(yīng)用可以通過(guò)添加單獨(dú)任務(wù)的形式來(lái)實(shí)現(xiàn),后續(xù)的任務(wù)統(tǒng)一和任務(wù)B來(lái)通信。圖2為本發(fā)明的裝置的AT指令處理方法,其包括以下步驟步驟101、發(fā)送模塊發(fā)送AT指令,并且任何一個(gè)時(shí)刻只有一條AT指令被發(fā)送過(guò)。 其中,本實(shí)施例中因?yàn)椴捎玫氖铅?cos-ii操作系統(tǒng),通過(guò)μ cos-ii操作系統(tǒng)提供的超時(shí)等待機(jī)制,確保了發(fā)送數(shù)據(jù)后,只有等待超時(shí)之后(這個(gè)超時(shí)的時(shí)間可以經(jīng)過(guò)測(cè)試確定,并且可以確保數(shù)據(jù)的完全接收),依此來(lái)判斷對(duì)端(即無(wú)線模塊發(fā)給ARM的數(shù)據(jù))發(fā)送數(shù)據(jù)的結(jié)束;此后,發(fā)送模塊才會(huì)發(fā)送下一條數(shù)據(jù)。本實(shí)施例中采取了發(fā)送一條數(shù)據(jù),接收一條數(shù)據(jù),再發(fā)送一條數(shù)據(jù)的原則。其中,超時(shí)接收數(shù)據(jù)和AT命令的互斥發(fā)送為本發(fā)明的關(guān)鍵技術(shù)手段所在。步驟102、接收模塊接收并解析AT指令,并依據(jù)接收到字符的不同情況觸發(fā)不同的應(yīng)用層的任務(wù);步驟103、應(yīng)用處理模塊解析AT指令中的短信內(nèi)容,依據(jù)短信的不同內(nèi)容執(zhí)行相應(yīng)的操作。上述步驟102 103在實(shí)際中的具體實(shí)現(xiàn)是本領(lǐng)域的現(xiàn)有技術(shù),并非本發(fā)明的發(fā)明點(diǎn)所在。如圖3所示,在具體的設(shè)計(jì)中,需要依據(jù)多種不同的情況發(fā)送多種AT指令如 GPRS以及TCP狀態(tài)查詢指令,發(fā)送以及讀取短信指令,發(fā)送TCP數(shù)據(jù)指令等等。本實(shí)施例統(tǒng)一把這些指令放到擁有最高優(yōu)先級(jí)的任務(wù)A中,通過(guò)各個(gè)應(yīng)用中不斷變化的狀態(tài)標(biāo)志位的互斥來(lái)保證,任何一個(gè)時(shí)刻任務(wù)A中只有一條AT指令剛剛被發(fā)送過(guò)。這樣實(shí)現(xiàn)的策略也是基于以往的實(shí)驗(yàn),大數(shù)據(jù)流量的AT指令混合發(fā)送的情況下,接收到的數(shù)據(jù)存在混合的情況,在這樣的情況下解析接收數(shù)據(jù)是比較有難度的。把接收到的來(lái)自無(wú)線模塊的數(shù)據(jù)的處理統(tǒng)一放在次高優(yōu)先級(jí)的任務(wù)B中,接收的過(guò)程采用逐個(gè)字符接收的方式,采用串口的中斷接收方式。一旦基于硬件的中斷判斷到有數(shù)據(jù)后,利用信號(hào)量來(lái)通知任務(wù)B,在一段時(shí)間接收不到數(shù)據(jù)后,系統(tǒng)超時(shí)返回,開(kāi)始發(fā)送下一條AT指令。同時(shí)在任務(wù)B中,依據(jù)接收到字符的各種不同的情況通過(guò)信號(hào)量和郵箱來(lái)觸發(fā)不同的應(yīng)用層的任務(wù),在本實(shí)施例的設(shè)計(jì)中是任務(wù)C。比如說(shuō)ARM開(kāi)發(fā)板從無(wú)線模塊接收到字符“>”表示可以發(fā)送數(shù)據(jù)了,接收到“CMT”表示接收到了新的短信等等。同時(shí),如果添加了新的AT發(fā)送命令,對(duì)于這類AT命令解析的,特別的判斷統(tǒng)一放在任務(wù)B中。設(shè)計(jì)中任務(wù)C主要負(fù)責(zé)短信內(nèi)容的解析,依據(jù)短信的不同內(nèi)容來(lái)執(zhí)行相應(yīng)操作。 例如依據(jù)短信內(nèi)容控制LED的開(kāi)關(guān)等等。同時(shí),在中斷中還可以實(shí)現(xiàn)定時(shí),在中斷處理程序中置或者清相應(yīng)的標(biāo)志位,以此為依據(jù)來(lái)給TCP服務(wù)器發(fā)送數(shù)據(jù)。圖3中的各任務(wù)切換的具體流程為步驟201,任務(wù)A通過(guò)郵箱掛起自身,并且通知任務(wù)B,一條AT指令已經(jīng)被發(fā)送,準(zhǔn)備接受數(shù)據(jù)。步驟202,任務(wù)B把接收到的數(shù)據(jù)以郵箱的形式發(fā)送給任務(wù)C,同時(shí)用信號(hào)量來(lái)掛起本身。步驟203,任務(wù)C以信號(hào)量的形式通知任務(wù)B,數(shù)據(jù)已經(jīng)處理完成。掛起任務(wù)C,通知內(nèi)核完成任務(wù)切換。步驟204,任務(wù)B通知任務(wù)A,數(shù)據(jù)已經(jīng)接收完成,請(qǐng)求發(fā)送下一條AT指令,通知內(nèi)核進(jìn)行任務(wù)切換。圖中英文短語(yǔ)為編程時(shí)自定義的名稱,僅為舉例而已。圖4為本發(fā)明提出的一種新的數(shù)據(jù)接收方法。在ARM開(kāi)發(fā)板的串口中斷處理程序的接收中斷中,給系統(tǒng)發(fā)送信號(hào)量。在接收函數(shù)中,應(yīng)用μ COS-II的超時(shí)機(jī)制,當(dāng)超過(guò)了一定的時(shí)鐘周期后還是沒(méi)有收到來(lái)自無(wú)線模塊的字符后,同時(shí)ARM開(kāi)發(fā)板的串口硬件FIFO還是為空的話,那么掛起接收任務(wù)(在本發(fā)明的系統(tǒng)中,這個(gè)時(shí)候?qū)⑦\(yùn)行最高優(yōu)先級(jí)別的任務(wù)A ;發(fā)送下一條AT指令)。在沒(méi)有應(yīng)用上述方法之前,傳統(tǒng)的技術(shù)中,在多處或者多個(gè)地方發(fā)送AT指令后,前一條AT指令對(duì)應(yīng)的接收數(shù)據(jù)經(jīng)常和后一條AT指令對(duì)應(yīng)的接收數(shù)據(jù)混合在一起;這時(shí)解析無(wú)線模塊給出的數(shù)據(jù)是比較困難的,而且經(jīng)常出現(xiàn)數(shù)據(jù)丟失現(xiàn)象。通過(guò)應(yīng)用這種新的數(shù)據(jù)接收方法后,測(cè)試結(jié)果顯示,相比其他方法,這種方法大幅度提高了數(shù)據(jù)接收可靠性,降低了丟失數(shù)據(jù)的概率。如圖,具體流程如下
步驟301,操作系統(tǒng)初始化。步驟302,多任務(wù)環(huán)境創(chuàng)建。步驟303,目標(biāo)板初始化。步驟304,μ COS-II系統(tǒng)等待超時(shí)后,還沒(méi)有接收到字符則掛起接收任務(wù)(任務(wù)A 將運(yùn)行)。步驟305,無(wú)線模塊接收到一個(gè)字符后,發(fā)送信號(hào)量。其中,圖中英文短語(yǔ)為編程時(shí)自定義的名稱,僅為舉例而已。本領(lǐng)域技術(shù)人員在測(cè)試本發(fā)明時(shí),可以實(shí)現(xiàn)GPRS和TCP狀態(tài)的實(shí)時(shí)檢測(cè),并有 BEEP提示;實(shí)現(xiàn)短信對(duì)ARM開(kāi)發(fā)板上的LED的多路查詢和控制;實(shí)現(xiàn)LED狀態(tài)定時(shí)向PC端 TCP服務(wù)器的上報(bào)。具體測(cè)試的過(guò)程如下,1、把ARM開(kāi)發(fā)板的一個(gè)串口和無(wú)線模塊的開(kāi)發(fā)板連接起來(lái);2、把ARM開(kāi)發(fā)板的另一個(gè)串口和PC連接起來(lái),打開(kāi)PC上串口接收工具,用以監(jiān)視GPRS 狀態(tài)和TCP狀態(tài);3、無(wú)線模塊通過(guò)短信控制ARM開(kāi)發(fā)板上的LED狀態(tài)。查詢時(shí),短信回復(fù)。 4、定時(shí)上報(bào)LED狀態(tài)給PC上的TCP服務(wù)器。通過(guò)測(cè)試可以實(shí)現(xiàn)本發(fā)明全部的功能,同時(shí)新的AT解析方法和架構(gòu),層次清晰, 降低了解析數(shù)據(jù)的復(fù)雜度,避免了通常會(huì)出現(xiàn)的接收到的AT數(shù)據(jù)混合的情況。同時(shí)給新的功能的添加留下了方便。雖然以上描述了本發(fā)明的具體實(shí)施方式
,但是本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,這些僅是舉例說(shuō)明。本發(fā)明的保護(hù)范圍是由所附權(quán)利要求書限定的。本領(lǐng)域的技術(shù)人員在不背離本發(fā)明的原理和實(shí)質(zhì)的前提下,可以對(duì)這些實(shí)施方式做出多種變更或修改,但這些變更和修改均落入本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種AT指令處理裝置,其特征在于,其包括發(fā)送模塊,用于發(fā)送AT指令,并且任何一個(gè)時(shí)刻只有一條AT指令被發(fā)送過(guò); 接收模塊,用于接收并解析AT指令,并依據(jù)接收到字符的不同情況觸發(fā)不同的應(yīng)用層的任務(wù);應(yīng)用處理模塊,用于AT指令中短信內(nèi)容的解析,依據(jù)短信的不同內(nèi)容執(zhí)行相應(yīng)的操作。
2.如權(quán)利要求1所述的AT指令處理裝置,其特征在于,該裝置為基于實(shí)時(shí)多任務(wù)操作系統(tǒng)的裝置。
3.如權(quán)利要求2所述的AT指令處理裝置,其特征在于,該實(shí)時(shí)多任務(wù)操作系統(tǒng)為 μ COS-II。
4.如權(quán)利要求1所述的AT指令處理裝置,其特征在于,所述AT指令包括GPRS以及 TCP狀態(tài)查詢指令,發(fā)送以及讀取短信指令,發(fā)送TCP數(shù)據(jù)指令。
5.一種如權(quán)利要求1所述的裝置的AT指令處理方法,其特征在于,其包括以下步驟 S1、發(fā)送模塊發(fā)送AT指令,并且任何一個(gè)時(shí)刻只有一條AT指令被發(fā)送過(guò);
6.接收模塊接收并解析AT指令,并依據(jù)接收到字符的不同情況觸發(fā)不同的應(yīng)用層的任務(wù); 應(yīng)用處理模塊解析AT指令中的短信內(nèi)容,依據(jù)短信的不同內(nèi)容執(zhí)行相應(yīng)的操作。 如權(quán)利要求5所述的AT指令處理方法,其特征在于,步驟S1中,發(fā)送模塊發(fā)送數(shù)據(jù)后,只有等待預(yù)定的超時(shí)間隔后,才發(fā)送下一條數(shù)據(jù),以確保無(wú)線模塊發(fā)送數(shù)據(jù)的結(jié)束。
7.如權(quán)利要求5所述的AT指令處理方法,其特征在于,所述AT指令包括GPRS以及 TCP狀態(tài)查詢指令,發(fā)送以及讀取短信指令,發(fā)送TCP數(shù)據(jù)指令。
8.如權(quán)利要求5所述的AT指令處理方法,其特征在于,步驟&中,接收AT指令的過(guò)程采用逐個(gè)字符接收的方式,基于硬件的中斷判斷到有數(shù)據(jù)后,利用信號(hào)量來(lái)通知接收模塊。
9.如權(quán)利要求5所述的AT指令處理方法,其特征在于,步驟&中,接收模塊通過(guò)信號(hào)量和郵箱來(lái)觸發(fā)不同的應(yīng)用層的任務(wù)。
10.如權(quán)利要求5所述的AT指令處理方法,其特征在于,步驟&中執(zhí)行的操作包括依據(jù)短信內(nèi)容控制LED的開(kāi)關(guān)、開(kāi)發(fā)板上的LED的多路查詢和控制。
全文摘要
本發(fā)明公開(kāi)了一種AT指令處理裝置和方法,該裝置包括發(fā)送模塊,用于發(fā)送AT指令,并且任何一個(gè)時(shí)刻只有一條AT指令被發(fā)送過(guò);接收模塊,用于接收并解析AT指令,并依據(jù)接收到字符的不同情況觸發(fā)不同的應(yīng)用層的任務(wù);同時(shí)實(shí)現(xiàn)了一種基于μCOS-II的超時(shí)機(jī)制的數(shù)據(jù)接收方法。應(yīng)用處理模塊,用于AT指令中短信內(nèi)容的解析,依據(jù)短信的不同內(nèi)容執(zhí)行相應(yīng)的操作。本發(fā)明有效降低了AT回復(fù)數(shù)據(jù)的丟失概率,增加接收AT回復(fù)數(shù)據(jù)的可靠性。進(jìn)一步地,實(shí)現(xiàn)了在μCOS-II下,AT指令發(fā)送和數(shù)據(jù)解析的完全分離。降低了接收數(shù)據(jù)中AT指令數(shù)據(jù)混合的可能性,降低了解析AT指令的復(fù)雜度。基于AT指令發(fā)送,數(shù)據(jù)解析和應(yīng)用處理任務(wù)相分離的原則,同時(shí)給后續(xù)的應(yīng)用添加留下了方便。
文檔編號(hào)H04W80/00GK102264047SQ20101018389
公開(kāi)日2011年11月30日 申請(qǐng)日期2010年5月25日 優(yōu)先權(quán)日2010年5月25日
發(fā)明者陳剛 申請(qǐng)人:芯訊通無(wú)線科技(上海)有限公司