專利名稱:一種終端設(shè)備和終端適配器間處理at命令的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種終端設(shè)備和終端適配器間處理AT命令的方法,特別是涉及一種終端設(shè)備和終端適配器間并發(fā)處理AT命令的方法。
背景技術(shù):
AT(Attention,TE到TA命令的起始的2個字符)命令用于在TE(TerminalEquipment,終端設(shè)備)和TA(Terminal Adaptor,終端適配器)間實現(xiàn)控制,一般由TE向TA發(fā)起一個AT命令,TA將命令解析、執(zhí)行后返回對該AT命令的響應(yīng)。以移動終端為例,移動終端可以看做是結(jié)合TA和MT功能的實體,計算機可以看做TE。AT命令一般通過串口通訊來完成,一條AT命令的處理過程可以看作是一次會話,如圖1所示。
通用的AT命令處理機制如圖2所示,TA從串行設(shè)備讀取數(shù)據(jù),然后交給AT命令分析器,AT命令分析器分析讀取的數(shù)據(jù),判斷數(shù)據(jù)是否是AT命令,如果是的話,那么判斷出是哪一條AT命令,再交給相應(yīng)的AT命令處理器。AT命令處理器根據(jù)命令的參數(shù)執(zhí)行預(yù)先設(shè)定的操作,待操作完成后再把結(jié)果返回到串行設(shè)備??梢钥闯觯@是一個串行化的流程。隨著計算機和通信技術(shù)的發(fā)展,TE和TA間的物理接口也多種多樣,現(xiàn)在應(yīng)用比較廣泛的有USB(Universal Serial Bus,通用串行總線)、PCMCIA(Personal Computer Memory Card International Association,個人計算機存儲卡國際協(xié)會)等接口。在這些接口上,可以支持復(fù)合設(shè)備,即可以在一個物理接口上支持若干個子設(shè)備。比如,一個USB的無線modem(MOdulator/DEModulator,調(diào)制解調(diào)器)網(wǎng)卡可能會在計算機里映射成一個modem子設(shè)備和若干個串口子設(shè)備的復(fù)合設(shè)備。那么TE和TA可能會同時利用這幾個子設(shè)備進(jìn)行通訊,更進(jìn)一步,TE和TA可能會同時利用這幾個子設(shè)備進(jìn)行AT命令的通訊。一個現(xiàn)實的例子是,計算機在modem口上利用AT命令進(jìn)行上網(wǎng)連接,同時在一個串口上利用AT命令進(jìn)行讀取信號強度的操作。
AT命令分析器、AT命令處理器在邏輯上都是串行處理的,沒有辦法同時處理來自多個端口并發(fā)的AT命令。所以一般的做法是在一個端口上應(yīng)用AT命令,而在別的端口上使用別的會話協(xié)議。這樣的方法可以滿足上述的并發(fā)業(yè)務(wù)需求,但是需要定義另一套會話協(xié)議,既帶來了開發(fā)工作量的增加,在通用性上也不好。
發(fā)明內(nèi)容本發(fā)明所要解決的技術(shù)問題在于提供一種終端設(shè)備和終端適配器間處理AT的方法,克服了現(xiàn)有技術(shù)中的一個AT處理器只能對應(yīng)一個端口的缺點(這里的端口可以是一個獨立的串行設(shè)備,也可以是上述復(fù)合設(shè)備中的串行子設(shè)備),使其在功能上可以同時支持多個端口并發(fā)AT會話的請求。
為了實現(xiàn)上述目的,本發(fā)明提供了一種終端設(shè)備和終端適配器間處理AT命令的方法,其特點在于,利用設(shè)置在AT處理模塊之前的一個具有將多端口并發(fā)的AT轉(zhuǎn)換成單端口串行的AT功能的并/串轉(zhuǎn)換器,當(dāng)任何一個端口有數(shù)據(jù)時,該端口將數(shù)據(jù)送到該并/串轉(zhuǎn)換器,進(jìn)行分析、緩存,再交給AT處理模塊處理,得到返回結(jié)果,并將返回結(jié)果發(fā)送回該并/串轉(zhuǎn)換器,由該并/串轉(zhuǎn)換器將結(jié)果輸出到對應(yīng)的端口,實現(xiàn)終端設(shè)備與終端適配器間AT的并發(fā)處理。
上述的終端設(shè)備和終端適配器間處理AT命令的方法,其特點在于,該方法包括如下步驟步驟一,在AT處理模塊之前設(shè)置一個多端口并發(fā)的AT轉(zhuǎn)換到單端口串行的AT的并/串轉(zhuǎn)換器,用于維護(hù)一個端口狀態(tài),記錄當(dāng)前AT處理模塊處理的是哪個端口的AT命令;步驟二,當(dāng)任何一個端口有數(shù)據(jù)時,該端口將數(shù)據(jù)送到并/串轉(zhuǎn)換器;步驟三,并/串轉(zhuǎn)換器收到來自某個端口的數(shù)據(jù)時,如果端口狀態(tài)為空,即沒有任何一個端口的AT命令在處理,更新端口狀態(tài)為發(fā)送相應(yīng)數(shù)據(jù)的端口,然后將數(shù)據(jù)發(fā)送到AT處理模塊處理;如果端口狀態(tài)不為空,即有某個端口的AT命令在處理,則將這條AT命令緩存到一個對應(yīng)此端口的緩沖區(qū);步驟四,AT處理模塊從并/串轉(zhuǎn)換器接收到AT命令后,經(jīng)過分析器和處理器,得到返回結(jié)果,并將結(jié)果發(fā)送回并/串轉(zhuǎn)換器;步驟五,并/串轉(zhuǎn)換器從AT命令模塊收到返回結(jié)果后,根據(jù)端口狀態(tài)的當(dāng)前值,將返回結(jié)果發(fā)送到對應(yīng)的端口,并將端口狀態(tài)的值置為空;步驟六,當(dāng)步驟五結(jié)束后,如果命令緩沖區(qū)均為空,則等待端口的數(shù)據(jù);如果端口命令緩沖區(qū)不為空,則從不同端口的命令緩沖區(qū)中取出一條AT命令來執(zhí)行,并將端口狀態(tài)置為對應(yīng)的端口。
上述的終端設(shè)備和終端適配器間處理AT命令的方法,其特點在于,在步驟六中,該并/串轉(zhuǎn)換器根據(jù)優(yōu)先級高低原則從不同端口的命令緩沖區(qū)中取出一條AT命令來執(zhí)行。
采用本發(fā)明所述方法,與現(xiàn)有技術(shù)相比,既滿足并發(fā)業(yè)務(wù)的需求,又無需重新定義一套會話協(xié)議,節(jié)省了開發(fā)時間,并具有較好的通用性、標(biāo)準(zhǔn)性,可廣泛應(yīng)用于網(wǎng)絡(luò)設(shè)備的應(yīng)用中,如手機、網(wǎng)卡等產(chǎn)品。
以下結(jié)合附圖和具體實施例對本發(fā)明進(jìn)行詳細(xì)描述,但不作為對本發(fā)明的限定。
圖1是現(xiàn)有技術(shù)中AT命令會話示意圖;圖2是現(xiàn)有技術(shù)中通用的AT命令的實現(xiàn)機制示意圖;圖3是本發(fā)明中在AT處理模塊和兩個串行設(shè)備間的并/串轉(zhuǎn)換器的連接示意圖;圖4是本發(fā)明并/串轉(zhuǎn)換器的工作流程是意圖。
具體實施方式本發(fā)明的核心思想是使用一個軟件的串并行轉(zhuǎn)換器以及緩存機制,支持多個串行設(shè)備或者子設(shè)備并發(fā)AT會話的請求。
本發(fā)明的TE和TA間并發(fā)處理AT的方法包括以下工作步驟步驟一,設(shè)置一個多端口并發(fā)的AT轉(zhuǎn)換到單端口串行的AT的并/串轉(zhuǎn)換器,這個轉(zhuǎn)換器維護(hù)一個端口狀態(tài),記錄當(dāng)前AT處理模塊處理的是哪個端口的AT命令。
步驟二,當(dāng)任何一個端口有數(shù)據(jù)時,該端口將數(shù)據(jù)送到并/串轉(zhuǎn)換器。
步驟三,并/串轉(zhuǎn)換器收到來自某個端口的數(shù)據(jù)時,如果端口狀態(tài)為空,即沒有任何一個端口的AT命令在處理,更新端口狀態(tài)為發(fā)送相應(yīng)數(shù)據(jù)的端口,然后將數(shù)據(jù)發(fā)送到AT處理模塊處理;如果端口狀態(tài)不為空,即有某個端口的AT命令在處理,則將這條AT命令緩存到一個對應(yīng)此端口的緩沖區(qū)。
步驟四,AT處理模塊從并/串轉(zhuǎn)換器接收到AT命令后,經(jīng)過分析器和處理器,得到返回結(jié)果,并將結(jié)果發(fā)送回并/串轉(zhuǎn)換器。
步驟五,并/串轉(zhuǎn)換器從AT命令模塊收到返回結(jié)果后,根據(jù)端口狀態(tài)的當(dāng)前值,將返回結(jié)果發(fā)送到對應(yīng)的端口,并將端口狀態(tài)的值置為空。
步驟六,當(dāng)步驟五結(jié)束后,如果命令緩沖區(qū)均為空,則等待端口的數(shù)據(jù);如果端口命令緩沖區(qū)不為空,則可以根據(jù)優(yōu)先級的原則或者其他原則從不同端口的命令緩沖區(qū)中取出一條AT命令來執(zhí)行,并將端口狀態(tài)置為對應(yīng)的端口。
在本發(fā)明中,我們將這個并/串轉(zhuǎn)換器命名為Serializer,在圖3中有兩個串行設(shè)備,但可以理解的是,本發(fā)明的方法并不限于兩個設(shè)備,它可以擴展到多個設(shè)備上,這里用兩個設(shè)備為的是更簡單的說明問題。Serializer負(fù)責(zé)將從多個端口上來的數(shù)據(jù)進(jìn)行分析、緩存,再交給AT處理模塊處理,當(dāng)AT處理模塊處理結(jié)束后,再將結(jié)果返回給Serializer,由Serializer將結(jié)果輸出到具體的某個端口上。因此,對AT處理模塊來說,它看不到多個端口,它只能看到一個Serializer,從而實現(xiàn)對并發(fā)AT會話請求得處理。
下面將接合圖4,詳細(xì)說明本發(fā)明的Serializer的工作原理(1)Serializer維護(hù)一個狀態(tài)which_port,記錄當(dāng)前AT模塊處理的是哪個端口的AT命令,如null_port、PortA、PortB,等等。
(2)當(dāng)任何一個端口有數(shù)據(jù)時,將數(shù)據(jù)送到Serializer。
(3)Serializer收到來自某個端口的數(shù)據(jù)時,如果which_port為null_port,即沒有端口的AT命令在處理,更新which_port為發(fā)送相應(yīng)數(shù)據(jù)的端口,然后將數(shù)據(jù)發(fā)送到AT處理模塊處理。
(4)Serializer收到來自某個端口的數(shù)據(jù)時,如果which_port不為null_port,即有某個端口的AT命令在處理,則將這條AT命令緩存到一個對應(yīng)此端口的緩沖區(qū)。
(5)AT處理模塊從Serializer接收到AT命令后,經(jīng)過分析器和處理器,得到返回結(jié)果,并將結(jié)果發(fā)送回Serializer。
(6)Serializer從AT處理模塊收到返回結(jié)果后,根據(jù)which_port的當(dāng)前值,將返回結(jié)果發(fā)送到對應(yīng)的端口,并將which_port的值置為null_port。
(7)當(dāng)(6)結(jié)束后,如果命令緩沖區(qū)均為空,則等待端口的數(shù)據(jù)。
(8)當(dāng)(6)結(jié)束后,如果端口命令緩沖區(qū)不為空,則可以根據(jù)優(yōu)先級的原則或者其他原則從不同端口的命令緩沖區(qū)中取出一條AT命令來執(zhí)行,并將which_port置為對應(yīng)的端口。
以上的整個工作流程可參考圖4。
當(dāng)然,本發(fā)明還可有其他多種實施例,在不背離本發(fā)明精神及其實質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求
的保護(hù)范圍。
權(quán)利要求
1.一種終端設(shè)備和終端適配器間處理AT命令的方法,其特征在于,利用設(shè)置在AT處理模塊之前的一個具有將多端口并發(fā)的AT轉(zhuǎn)換成單端口串行的AT功能的并/串轉(zhuǎn)換器,當(dāng)任何一個端口有數(shù)據(jù)時,該端口將數(shù)據(jù)送到該并/串轉(zhuǎn)換器,進(jìn)行分析、緩存,再交給AT處理模塊處理,得到返回結(jié)果,并將返回結(jié)果發(fā)送回該并/串轉(zhuǎn)換器,由該并/串轉(zhuǎn)換器將結(jié)果輸出到對應(yīng)的端口,實現(xiàn)終端設(shè)備與終端適配器間AT命令的并發(fā)處理。
2.根據(jù)權(quán)利要求
1所述的終端設(shè)備和終端適配器間處理AT命令的方法,其特征在于,該方法包括如下步驟步驟一,在AT處理模塊之前設(shè)置一個多端口并發(fā)的AT轉(zhuǎn)換到單端口串行的AT的并/串轉(zhuǎn)換器,用于維護(hù)一個端口狀態(tài),記錄當(dāng)前AT處理模塊處理的是哪個端口的AT命令;步驟二,當(dāng)任何一個端口有數(shù)據(jù)時,該端口將數(shù)據(jù)送到并/串轉(zhuǎn)換器;步驟三,并/串轉(zhuǎn)換器收到來自某個端口的數(shù)據(jù)時,如果端口狀態(tài)為空,即沒有任何一個端口的AT命令在處理,更新端口狀態(tài)為發(fā)送相應(yīng)數(shù)據(jù)的端口,然后將數(shù)據(jù)發(fā)送到AT處理模塊處理;如果端口狀態(tài)不為空,即有某個端口的AT命令在處理,則將這條AT命令緩存到一個對應(yīng)此端口的緩沖區(qū);步驟四,AT處理模塊從并/串轉(zhuǎn)換器接收到AT命令后,經(jīng)過分析器和處理器,得到返回結(jié)果,并將結(jié)果發(fā)送回并/串轉(zhuǎn)換器;步驟五,并/串轉(zhuǎn)換器從AT命令模塊收到返回結(jié)果后,根據(jù)端口狀態(tài)的當(dāng)前值,將返回結(jié)果發(fā)送到對應(yīng)的端口,并將端口狀態(tài)的值置為空;步驟六,當(dāng)步驟五結(jié)束后,如果命令緩沖區(qū)均為空,則等待端口的數(shù)據(jù);如果端口命令緩沖區(qū)不為空,則從不同端口的命令緩沖區(qū)中取出一條AT命令來執(zhí)行,并將端口狀態(tài)置為對應(yīng)的端口。
3.根據(jù)權(quán)利要求
2所述的終端設(shè)備和終端適配器間處理AT命令的方法,其特征在于,在步驟六中,該并/串轉(zhuǎn)換器根據(jù)優(yōu)先級高低原則從不同端口的命令緩沖區(qū)中取出一條AT命令來執(zhí)行。
專利摘要
本發(fā)明涉及一種終端設(shè)備和終端適配器間處理AT命令的方法,利用設(shè)置在AT處理模塊之前的一個具有將多端口并發(fā)的AT轉(zhuǎn)換成單端口串行的AT功能的并/串轉(zhuǎn)換器,當(dāng)任何一個端口有數(shù)據(jù)時,該端口將數(shù)據(jù)送到該并/串轉(zhuǎn)換器,進(jìn)行分析、緩存,再交給AT處理模塊處理,得到返回結(jié)果,并將返回結(jié)果發(fā)送回該并/串轉(zhuǎn)換器,由該并/串轉(zhuǎn)換器將結(jié)果輸出到對應(yīng)的端口,實現(xiàn)終端設(shè)備與終端適配器間AT的并發(fā)處理。本發(fā)明可以同時支持多個端口并發(fā)AT會話的請求,既滿足并發(fā)業(yè)務(wù)的需求,又無需重新定義一套會話協(xié)議,節(jié)省了開發(fā)時間,并具有較好的通用性、標(biāo)準(zhǔn)性,具有廣泛的應(yīng)用性。
文檔編號H04L29/06GK1992709SQ200510130749
公開日2007年7月4日 申請日期2005年12月27日
發(fā)明者張曉鵬, 劉三強, 車忠輝 申請人:中興通訊股份有限公司導(dǎo)出引文BiBTeX, EndNote, RefMan