本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)包識(shí)別系統(tǒng)及方法。
背景技術(shù):
隨著移動(dòng)通信技術(shù)的發(fā)展,越來越多的移動(dòng)終端如智能手機(jī)具有雙卡雙通的功能,使得用戶在實(shí)現(xiàn)語音業(yè)務(wù)的待機(jī)同時(shí),能建立數(shù)據(jù)業(yè)務(wù)連接。移動(dòng)終端通常具有兩個(gè)用戶識(shí)別卡以及分別與所述兩個(gè)用戶識(shí)別卡連接的調(diào)制解調(diào)器,兩個(gè)用戶識(shí)別卡全開時(shí),一個(gè)用戶識(shí)別卡(sim1)可以使用4g(the4thgenerationmobilecommunicationtechnology,第四代移動(dòng)通信技術(shù)),例如lte(longtermevolution,長期演進(jìn)技術(shù))網(wǎng)絡(luò),另一個(gè)用戶識(shí)別卡(sim2)僅能使用2g(2-generationwirelesstelephonetechnology,第二代手機(jī)通信技術(shù)規(guī)格)或3g(3rdgeneration,第三代移動(dòng)通信技術(shù))網(wǎng)絡(luò),sim2不能上4g的原因主要是:移動(dòng)終端只有一套射頻,兩張卡使用該套射頻是分時(shí)復(fù)用的關(guān)系,并不能同時(shí)占用,由于兩張卡全開時(shí),只有一張卡可以使用4g網(wǎng)絡(luò),另一張卡只能使用2g或3g網(wǎng)絡(luò),導(dǎo)致移動(dòng)終端中數(shù)據(jù)傳輸?shù)男瘦^低。
因此,為了使移動(dòng)終端可以支持雙lte,以提高數(shù)據(jù)傳輸效率,移動(dòng)終端可與外接設(shè)備連接(該外接設(shè)備中設(shè)置有調(diào)制解調(diào)器),以實(shí)現(xiàn)雙lte通信功能。但是,目前移動(dòng)終端和外接設(shè)備進(jìn)行數(shù)據(jù)包傳輸過程中,如果移動(dòng)設(shè)備還未喚醒,外接設(shè)備就發(fā)送數(shù)據(jù)包,由于移動(dòng)終端還沒完全喚醒,數(shù)據(jù)包前面發(fā)送的內(nèi)容會(huì)丟失,那么移動(dòng)設(shè)備接收到的數(shù)據(jù)包就為殘包,導(dǎo)致移動(dòng)設(shè)備無法響應(yīng)該數(shù)據(jù)包。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的主要目的在于提出一種數(shù)據(jù)包識(shí)別系統(tǒng)及方法,旨在解決數(shù)據(jù)包傳輸之后,若是發(fā)生數(shù)據(jù)包內(nèi)容丟失,容易出現(xiàn)數(shù)據(jù)包無法響應(yīng)的技術(shù)問題。
為實(shí)現(xiàn)上述目的,本發(fā)明提供的一種數(shù)據(jù)包識(shí)別系統(tǒng),所述數(shù)據(jù)包識(shí)別系統(tǒng)包括移動(dòng)終端,以及通過預(yù)設(shè)接口與所述移動(dòng)終端連接的外接設(shè)備,所述移動(dòng)終端包括第一應(yīng)用處理器、與實(shí)體用戶識(shí)別卡連接的第一調(diào)制解調(diào)器、第一射頻模塊,所述外接設(shè)備包括內(nèi)嵌有虛擬用戶識(shí)別卡的第二應(yīng)用處理器、第二調(diào)制解調(diào)器和第二射頻模塊,;
所述第一應(yīng)用處理器,用于被喚醒時(shí),接收第二應(yīng)用處理器通過所述預(yù)設(shè)接口發(fā)送的數(shù)據(jù)包;對(duì)接收的所述數(shù)據(jù)包的包頭進(jìn)行識(shí)別,以確定所述包頭是否攜帶有預(yù)設(shè)的包頭標(biāo)識(shí);若所述包頭未攜帶預(yù)設(shè)的包頭標(biāo)識(shí),則發(fā)送重發(fā)消息給所述第二應(yīng)用處理器,以供所述第二應(yīng)用處理器重新發(fā)送所述數(shù)據(jù)包至所述第一應(yīng)用處理器。
可選地,所述第一應(yīng)用處理器對(duì)接收的所述數(shù)據(jù)包的包頭進(jìn)行識(shí)別,以確定所述包頭是否攜帶有預(yù)設(shè)的包頭標(biāo)識(shí)具體包括:
解析所述包頭的第一字節(jié),以確定所述包頭的第一字節(jié)是否為預(yù)設(shè)字段;及/或計(jì)算所述包頭的第二字節(jié)和第三字節(jié)的長度,并判斷所述長度是否滿足預(yù)設(shè)條件;
若所述包頭的第一字節(jié)為預(yù)設(shè)字段,及/或所述長度滿足預(yù)設(shè)條件,則確定所述包頭攜帶有預(yù)設(shè)的包頭標(biāo)識(shí)。
可選地,所述預(yù)設(shè)條件為:所述長度為所述數(shù)據(jù)包的長度與預(yù)設(shè)值的差值。
可選地,所述第一應(yīng)用處理器,還用于識(shí)別所述數(shù)據(jù)包的長度;
在所述數(shù)據(jù)包的長度大于預(yù)設(shè)長度值,才對(duì)接收的所述數(shù)據(jù)包的包頭進(jìn)行識(shí)別。
可選地,所述第一應(yīng)用處理器,還用于若所述包頭攜帶有預(yù)設(shè)的包頭標(biāo)識(shí),則發(fā)送確認(rèn)消息給所述第二應(yīng)用處理器,以供所述第二應(yīng)用處理器繼續(xù)發(fā)送其它數(shù)據(jù)包至所述第一應(yīng)用處理器。
此外,為實(shí)現(xiàn)上述目的,本發(fā)明還提出一種數(shù)據(jù)包識(shí)別方法,應(yīng)用于移動(dòng)終端以及通過預(yù)設(shè)接口與移動(dòng)終端連接的外接設(shè)備,所述移動(dòng)終端包括第一應(yīng)用處理器、與實(shí)體用戶識(shí)別卡連接的第一調(diào)制解調(diào)器、第一射頻模塊,所述外接設(shè)備包括內(nèi)嵌有虛擬用戶識(shí)別卡的第二應(yīng)用處理器、第二調(diào)制解調(diào)器和第二射頻模塊,所述方法包括:
第一應(yīng)用處理器被喚醒時(shí),接收第二應(yīng)用處理器通過所述預(yù)設(shè)接口發(fā)送的數(shù)據(jù)包;
對(duì)接收的所述數(shù)據(jù)包的包頭進(jìn)行識(shí)別,以確定所述包頭是否攜帶有預(yù)設(shè)的包頭標(biāo)識(shí);
若所述包頭未攜帶預(yù)設(shè)的包頭標(biāo)識(shí),則發(fā)送重發(fā)消息給所述第二應(yīng)用處理器,以供所述第二應(yīng)用處理器重新發(fā)送所述數(shù)據(jù)包至所述第一應(yīng)用處理器。
可選地,所述對(duì)接收的所述數(shù)據(jù)包的包頭進(jìn)行識(shí)別,以確定所述包頭是否攜帶有預(yù)設(shè)的包頭標(biāo)識(shí)的步驟包括:
所述第一應(yīng)用處理器解析所述包頭的第一字節(jié),以確定所述包頭的第一字節(jié)是否為預(yù)設(shè)字段;及/或計(jì)算所述包頭的第二字節(jié)和第三字節(jié)的長度,并判斷所述長度是否滿足預(yù)設(shè)條件;
若所述包頭的第一字節(jié)為預(yù)設(shè)字段,及/或所述長度滿足預(yù)設(shè)條件,則確定所述包頭攜帶有預(yù)設(shè)的包頭標(biāo)識(shí)。
可選地,所述預(yù)設(shè)條件為:所述長度為所述數(shù)據(jù)包的長度與預(yù)設(shè)值的差值。
可選地,所述對(duì)接收的所述數(shù)據(jù)包的包頭進(jìn)行識(shí)別,以確定所述包頭是否攜帶有預(yù)設(shè)的包頭標(biāo)識(shí)的步驟之前,所述方法還包括:
所述第一應(yīng)用處理器識(shí)別所述數(shù)據(jù)包的長度;
在所述數(shù)據(jù)包的長度大于預(yù)設(shè)長度值,才執(zhí)行所述對(duì)接收的所述數(shù)據(jù)包的包頭進(jìn)行識(shí)別的步驟。
可選地,所述對(duì)接收的所述數(shù)據(jù)包的包頭進(jìn)行識(shí)別,以確定所述包頭是否攜帶有預(yù)設(shè)的包頭標(biāo)識(shí)的步驟之后,所述方法還包括:
若所述包頭攜帶有預(yù)設(shè)的包頭標(biāo)識(shí),則所述第一應(yīng)用處理器發(fā)送確認(rèn)消息給所述第二應(yīng)用處理器,以供所述第二應(yīng)用處理器繼續(xù)發(fā)送其它數(shù)據(jù)包至所述第一應(yīng)用處理器。
本發(fā)明提出的數(shù)據(jù)包識(shí)別系統(tǒng)及方法,所述數(shù)據(jù)包識(shí)別系統(tǒng)包括移動(dòng)終端,以及通過預(yù)設(shè)接口與所述移動(dòng)終端連接的外接設(shè)備,所述移動(dòng)終端包括第一應(yīng)用處理器、與實(shí)體用戶識(shí)別卡連接的第一調(diào)制解調(diào)器、第一射頻模塊,所述外接設(shè)備包括內(nèi)嵌有虛擬用戶識(shí)別卡的第二應(yīng)用處理器、第二調(diào)制解調(diào)器和第二射頻模塊,所述第一應(yīng)用處理器被喚醒時(shí),接收第二應(yīng)用處理器通過所述預(yù)設(shè)接口發(fā)送的數(shù)據(jù)包,并對(duì)接收的所述數(shù)據(jù)包的包頭進(jìn)行識(shí)別,以確定所述包頭是否攜帶有預(yù)設(shè)的包頭標(biāo)識(shí),若所述包頭未攜帶預(yù)設(shè)的包頭標(biāo)識(shí),則發(fā)送重發(fā)消息給所述第二應(yīng)用處理器,以供所述第二應(yīng)用處理器重新發(fā)送所述數(shù)據(jù)包至所述第一應(yīng)用處理器。本方案在移動(dòng)終端中的第一應(yīng)用處理器被喚醒時(shí),先對(duì)接收到的數(shù)據(jù)包的包頭進(jìn)行識(shí)別,在識(shí)別所述包頭未攜帶有預(yù)設(shè)包頭標(biāo)識(shí)時(shí),通知第二應(yīng)用處理器重新發(fā)送該數(shù)據(jù)包,即使數(shù)據(jù)包內(nèi)容丟失,第一應(yīng)用處理器也可以及時(shí)通知第二應(yīng)用處理器重新發(fā)送該數(shù)據(jù)包,及時(shí)響應(yīng)數(shù)據(jù)包,提高了數(shù)據(jù)傳輸?shù)臏?zhǔn)確性。
附圖說明
圖1為本發(fā)明一實(shí)施例的lte網(wǎng)絡(luò)架構(gòu)的示意圖;
圖2為本發(fā)明實(shí)施例中移動(dòng)終端和外接設(shè)備通訊連接的一種通訊連接的實(shí)體示意圖;
圖3為本發(fā)明實(shí)施例中移動(dòng)終端和外接設(shè)備通訊連接的一種硬件結(jié)構(gòu)示意圖;
圖4為本發(fā)明數(shù)據(jù)包識(shí)別方法第一實(shí)施例的流程示意圖;
圖5為本發(fā)明對(duì)接收的所述數(shù)據(jù)包的包頭進(jìn)行識(shí)別,以確定所述包頭是否攜帶有預(yù)設(shè)的包頭標(biāo)識(shí)的細(xì)化流程示意圖;
圖6為本發(fā)明數(shù)據(jù)包識(shí)別方法第四實(shí)施例的流程示意圖。
本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做說明。
具體實(shí)施方式
應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。需要說明的是,在不沖突的情況下,本發(fā)明中的實(shí)施例及實(shí)施例中的特征可以相互任意結(jié)合。
為了對(duì)本發(fā)明的技術(shù)特征、目的和效果有更加清楚的理解,現(xiàn)對(duì)照附圖詳細(xì)說明本發(fā)明的具體實(shí)施方式。
圖1是本發(fā)明一實(shí)施例的lte(longtermevolution,長期演進(jìn))網(wǎng)絡(luò)架構(gòu)的示意圖。本發(fā)明一實(shí)施例的lte網(wǎng)絡(luò)架構(gòu)包括:一個(gè)或多個(gè)移動(dòng)終端(userequipment,ue)100、外接設(shè)備200、e-utran(evolvedumtsterrestrialradioaccessnetwork,演進(jìn)的umts陸地?zé)o線接入網(wǎng))(圖中未標(biāo)號(hào))、演進(jìn)分組核心(epc)(圖中未標(biāo)號(hào))、歸屬訂戶服務(wù)器(hss)107、網(wǎng)絡(luò)(例如,因特網(wǎng))(圖中未標(biāo)號(hào))以及電路交換系統(tǒng)(圖中未標(biāo)號(hào))。
e-utran包括演進(jìn)b節(jié)點(diǎn)(enodeb)101和其它enodeb102。enodeb101提供朝向移動(dòng)終端100的用戶面和控制面的協(xié)議終接。enodeb101可經(jīng)由x2接口連接到其他enodeb。enodeb101也可稱為基站、基收發(fā)機(jī)站、無線電基站、無線電收發(fā)機(jī)、收發(fā)機(jī)功能、基本服務(wù)集、擴(kuò)展服務(wù)集、或其他某個(gè)合適的術(shù)語。enodeb101為移動(dòng)終端100提供去往epc的接入點(diǎn)。
enodeb101通過s1接口連接到epc。epc包括移動(dòng)管理實(shí)體(eem)104、其他移動(dòng)管理實(shí)體106、服務(wù)網(wǎng)關(guān)103,以及分組數(shù)據(jù)網(wǎng)絡(luò)(pdn)網(wǎng)關(guān)105。移動(dòng)管理實(shí)體104是處理移動(dòng)終端100與epc之間的信令的控制節(jié)點(diǎn)。移動(dòng)管理實(shí)體104提供承載和連接管理。所有用戶ip分組通過服務(wù)網(wǎng)關(guān)103來傳遞,服務(wù)網(wǎng)關(guān)103自身連接到pdn網(wǎng)關(guān)105。pdn網(wǎng)關(guān)105提供ueip地址分配以及其他功能。pdn網(wǎng)關(guān)105連接到網(wǎng)絡(luò),例如,因特網(wǎng)。
電路交換系統(tǒng)包括交互解決方案模塊(iws)108、移動(dòng)交換中心(msc)109、基站110和移動(dòng)站111。在一個(gè)方面,電路交換系統(tǒng)可以通過iws和mme(mobilitymanagemententity,移動(dòng)管理實(shí)體)與eps(evolvedpacketsystem,演進(jìn)的分組系統(tǒng))進(jìn)行通信。
移動(dòng)終端100通過usb(universalserialbus,通用串行總線)數(shù)據(jù)線與外接設(shè)備200通訊連接。
圖2為本發(fā)明移動(dòng)終端100和外接設(shè)備200通訊連接的實(shí)體示意圖。
如圖2所示,移動(dòng)終端100通過usb數(shù)據(jù)線300與外接設(shè)備200通訊連接,其中,所述移動(dòng)終端包括但不限于手機(jī)、pc(personalcomputer,個(gè)人電腦)或pad(personaldigitalassistant,個(gè)人數(shù)字助理),所述外接設(shè)備200可選為無線上網(wǎng)卡或數(shù)據(jù)卡。
圖3為本發(fā)明移動(dòng)終端100和外接設(shè)備200通訊連接的結(jié)構(gòu)示意圖。
本發(fā)明實(shí)施例的移動(dòng)終端100通過usb數(shù)據(jù)線300與外接設(shè)備200通訊連接,基于移動(dòng)終端100和外接設(shè)備200通訊連接的基礎(chǔ),移動(dòng)終端100可支持雙lte。具體地:
移動(dòng)終端100包括第一處理芯片001,以及與所述第一處理芯片001連接的第一射頻模塊12,其中,第一處理芯片001包括第一應(yīng)用處理器(applicationprocessor,用ap1表示)10、與實(shí)體用戶識(shí)別卡13連接的第一調(diào)制解調(diào)器11(modem1)、rpm(resourcepowermanager,資源電源管理器)14、所述實(shí)體用戶識(shí)別卡13為sim(subscriberidentitymodule,用戶識(shí)別模塊)卡。
外接設(shè)備200包括第二處理芯片002,以及與所述第二處理芯片002連接的第二射頻模塊22,其中,第二處理芯片002包括內(nèi)嵌有虛擬用戶識(shí)別卡20a的第二應(yīng)用處理器(用ap2表示)20、第二調(diào)制解調(diào)器(modem2)21。
其中,虛擬用戶識(shí)別卡20a包括存儲(chǔ)模塊和虛擬片內(nèi)操作系統(tǒng)(virtualchipoperatingsystem,vcos),該存儲(chǔ)模塊可為efs(encryptingfilesystem,加密文件系統(tǒng)),存儲(chǔ)模塊用于存儲(chǔ)虛擬用戶識(shí)別卡20a的鑒權(quán)數(shù)據(jù)。
第一應(yīng)用處理器10和第二應(yīng)用處理器20的內(nèi)部框架包括應(yīng)用層、框架層等,可處理復(fù)雜的邏輯操作以及進(jìn)行任務(wù)分配等。在一個(gè)實(shí)施例中,應(yīng)用處理器指android操作系統(tǒng),以及基于android操作系統(tǒng)的各種apk(androidpackage,安卓安裝包)。在本發(fā)明的實(shí)施例中,第一應(yīng)用處理器10和第二應(yīng)用處理器20通過usb數(shù)據(jù)線300實(shí)現(xiàn)通訊連接,為用戶提供交互接口,將用戶輸入的操作指令(例如,用戶通過用戶界面輸入的有關(guān)啟動(dòng)視頻通話的操作指令)傳輸給第一調(diào)制解調(diào)器11或第二調(diào)制解調(diào)器21,以實(shí)現(xiàn)兩個(gè)應(yīng)用處理器之間數(shù)據(jù)的定義與傳遞,例如,進(jìn)行兩個(gè)應(yīng)用處理器的休眠、喚醒、同步的控制、開關(guān)機(jī)時(shí)芯片啟動(dòng)順序的控制等。
應(yīng)當(dāng)理解的是,在本發(fā)明實(shí)施例中,usb數(shù)據(jù)線300復(fù)用出兩條數(shù)據(jù)通道,分別用于第一應(yīng)用處理器10和第二應(yīng)用處理器20之間用戶數(shù)據(jù)或控制信令數(shù)據(jù)的交互,即第一應(yīng)用處理器10和第二應(yīng)用處理器20通過usb數(shù)據(jù)線300傳輸?shù)臄?shù)據(jù)包括用戶數(shù)據(jù)和控制信令數(shù)據(jù)。其中,用戶數(shù)據(jù)包括上網(wǎng)產(chǎn)生的數(shù)據(jù),圖片和聊天信息數(shù)據(jù);控制信令數(shù)據(jù)包括開關(guān)機(jī)的控制數(shù)據(jù),開關(guān)飛行模式的控制數(shù)據(jù),顯示狀態(tài)信號(hào)的控制數(shù)據(jù)。由于本發(fā)明實(shí)施例中,移動(dòng)終端100的第一調(diào)制解調(diào)器11連接有實(shí)體用戶識(shí)別卡13,外接設(shè)備200的第二應(yīng)用處理器20內(nèi)嵌有虛擬用戶識(shí)別卡20a,因此,usb數(shù)據(jù)線300不進(jìn)行sim卡鑒權(quán)數(shù)據(jù)的交互。
本發(fā)明中,第一應(yīng)用處理器10和第二應(yīng)用處理器20通過otg(on-the-go)技術(shù)進(jìn)行數(shù)據(jù)交互。通過otg技術(shù),移動(dòng)終端100中的第一調(diào)制解調(diào)器11可通過實(shí)體用戶識(shí)別卡13接入enodeb101,外接設(shè)備中的第二調(diào)制解調(diào)器21可通過虛擬用戶識(shí)別卡20a接入enodeb101,所述sim卡參數(shù)包括但不限于sim卡鑒權(quán)數(shù)據(jù)。
第一調(diào)制解調(diào)器11和第二調(diào)制解調(diào)器21包含各種網(wǎng)絡(luò)交互的網(wǎng)絡(luò)制式的協(xié)議棧,協(xié)議棧包含lte(longtermevolution,長期演進(jìn))/wcdma(widebandcodedivisionmultipleaccess,寬帶碼分多址)/gsm(globalsystemformobilecommunication,全球移動(dòng)通信系統(tǒng))/td-scdma(timedivision-synchronouscodedivisionmultipleaccess,同步時(shí)分碼分多址)/cdma(codedivisionmultipleaccess,碼分多址)/edge(enhanceddatarateforgsmevolution,強(qiáng)型數(shù)據(jù)速率gsm演進(jìn)技術(shù))等通訊標(biāo)準(zhǔn)里邊規(guī)定的協(xié)議代碼。移動(dòng)終端100通過協(xié)議與運(yùn)營商網(wǎng)絡(luò)進(jìn)行交互,即進(jìn)行數(shù)據(jù)流量上網(wǎng)、volte(voiceoverlte)打電話或者cs(circuitswitched,電路交換)域打電話。第一調(diào)制解調(diào)器11和第二調(diào)制解調(diào)器21還用于對(duì)sim卡的管控等等。
在本發(fā)明實(shí)施例中,第一射頻模塊12用于將移動(dòng)終端100傳輸?shù)臄?shù)據(jù)處理后傳給enodeb101(基站網(wǎng)絡(luò)),以及用于將enodeb101傳輸?shù)臄?shù)據(jù)處理后傳給移動(dòng)終端100。第二射頻模塊22用于將外接設(shè)備200傳輸?shù)臄?shù)據(jù)處理后傳給enodeb101(基站網(wǎng)絡(luò)),以及用于將enodeb101傳輸?shù)臄?shù)據(jù)處理后傳給外接設(shè)備200。
第一射頻模塊12和第二射頻模塊22所涉及的無線接入技術(shù)可以包括lte、gsm、gprs(generalpacketradioservice,通用分組無線服務(wù))、cdma、edge、wlan(wirelesslocalareanetworks,無線局域網(wǎng))、cdma-2000、td-scdma、wcdma、wifi(wirelessfidelity,無線保真)等等。
本發(fā)明需要說明的是,由于移動(dòng)終端100的第一調(diào)制解調(diào)器11連接有實(shí)體用戶識(shí)別卡13,外接設(shè)備200的第二應(yīng)用處理器20內(nèi)嵌有虛擬用戶識(shí)別卡20a,因此,第一調(diào)制解調(diào)器11和第二調(diào)制解調(diào)器21相互獨(dú)立,第二調(diào)制解調(diào)器21不喚醒第一調(diào)制解調(diào)器11。
移動(dòng)終端100中的實(shí)體用戶識(shí)別卡13和外接設(shè)備200中的虛擬用戶識(shí)別卡20a存儲(chǔ)不同的無線通信標(biāo)準(zhǔn)相關(guān)聯(lián)的用戶信息。應(yīng)當(dāng)理解,目前的移動(dòng)終端只有一套射頻,移動(dòng)終端內(nèi)部的兩個(gè)用戶識(shí)別卡使用該套射頻是分時(shí)復(fù)用的關(guān)系,并不能同時(shí)占用。例如,在兩張用戶識(shí)別卡全開時(shí),一張卡可以處理gsm通話,另一張卡只能處理4g網(wǎng)絡(luò)信息,具體哪個(gè)用戶識(shí)別卡執(zhí)行何種網(wǎng)絡(luò),不做限定。因此目前的射頻雙卡分時(shí)復(fù)用這種架構(gòu)僅做到了lte+gsm(即一張用戶識(shí)別卡對(duì)應(yīng)的技術(shù)標(biāo)準(zhǔn)為lte,另一張用戶識(shí)別卡對(duì)應(yīng)的技術(shù)標(biāo)準(zhǔn)為gsm)。
也就是說,現(xiàn)有的移動(dòng)終端100雖然可以支持雙用戶識(shí)別卡,但是移動(dòng)終端100在注冊(cè)網(wǎng)絡(luò)的情況下,兩個(gè)用戶識(shí)別卡支持的是不同技術(shù)標(biāo)準(zhǔn)的網(wǎng)絡(luò),一個(gè)支持2g或3g,另一個(gè)支持4g,會(huì)使得移動(dòng)終端100使用過程中,上網(wǎng)流量速度較慢,因此本發(fā)明中,移動(dòng)終端100通過usb數(shù)據(jù)線300連接外接設(shè)備200,由于外接設(shè)備200包括第二射頻模塊22,且第二射頻模塊22支持4g網(wǎng)絡(luò),因此,移動(dòng)終端100可通過usb線300與外接設(shè)備200交互,從而使得移動(dòng)終端100具備雙lte功能。
在本實(shí)施例中,實(shí)體用戶識(shí)別卡13和虛擬用戶識(shí)別卡20a用于提供移動(dòng)通信業(yè)務(wù)(cs語音業(yè)務(wù)、ps數(shù)據(jù)業(yè)務(wù)和ps語音業(yè)務(wù))所需的相關(guān)數(shù)據(jù),并在其內(nèi)部存儲(chǔ)用戶信息、短消息、執(zhí)行鑒權(quán)算法和產(chǎn)生加密密匙等。
實(shí)體用戶識(shí)別卡13與移動(dòng)終端100交互時(shí),移動(dòng)終端100檢測該實(shí)體用戶識(shí)別卡13存在與否的信號(hào)只在開機(jī)瞬時(shí)產(chǎn)生,當(dāng)開機(jī)檢測不到實(shí)體用戶識(shí)別卡13存在時(shí),移動(dòng)終端100將提示“插入用戶識(shí)別卡”。移動(dòng)終端100開機(jī)之后,移動(dòng)終端100和實(shí)體用戶識(shí)別卡13之間28秒通信一次,完成一些固定的通信檢查(例如,用戶識(shí)別卡是否在位等)。
在本發(fā)明的實(shí)施例中,實(shí)體用戶識(shí)別卡13和虛擬用戶識(shí)別卡20a承載信息,并且根據(jù)外界請(qǐng)求返回對(duì)應(yīng)卡參數(shù),以及對(duì)網(wǎng)絡(luò)進(jìn)行鑒權(quán)運(yùn)算,第一射頻模塊12和第二射頻模塊22所涉及的無線接入技術(shù)為lte。當(dāng)移動(dòng)終端100通過usb數(shù)據(jù)線300與外接設(shè)備200連接時(shí),實(shí)體用戶識(shí)別卡13可通過移動(dòng)終端100中的第一調(diào)制解調(diào)器11支持lte,而虛擬用戶識(shí)別卡20a通過第二調(diào)制解調(diào)器21支持lte,以實(shí)現(xiàn)移動(dòng)終端100連接外接設(shè)備200情況下可支持雙lte。
移動(dòng)終端100中的rpm14用于管控各種資源,包括時(shí)鐘資源、總線資源、pmic(powermanagementic,電源管理集成電路,即各個(gè)芯片的電壓)、ddr(內(nèi)存分配),以及管理芯片的休眠喚醒的中斷和應(yīng)用處理器喚醒的截止時(shí)間。移動(dòng)終端100的各個(gè)子系統(tǒng),在需要資源時(shí),向rpm14申請(qǐng)資源,各個(gè)子系統(tǒng)分別包括第一應(yīng)用處理器10,第一調(diào)制解調(diào)器11、pronto(wifi/藍(lán)牙、nfc(nearfieldcommunication,近場通信)等)、lpass(lowpoweraudiosubsystem,低功耗音頻子系統(tǒng)),rpm14用來決定移動(dòng)終端100系統(tǒng)的休眠狀態(tài),具體是,rpm14基于各個(gè)子系統(tǒng)的投票機(jī)制實(shí)現(xiàn),當(dāng)各個(gè)子系統(tǒng)都投休眠票時(shí),rpm14才可以使移動(dòng)終端100整個(gè)系統(tǒng)進(jìn)行休眠。
在移動(dòng)終端100的整個(gè)系統(tǒng)休眠之后,若是要重新啟動(dòng)運(yùn)行,需要喚醒第一應(yīng)用處理器10以進(jìn)行數(shù)據(jù)的傳輸交互。
在移動(dòng)終端100和外接設(shè)備200通過usb通訊連接的情況下,喚醒方式包括三種:
1、第一應(yīng)用處理器10接收到控制信令數(shù)據(jù)時(shí),通過usb數(shù)據(jù)線300傳送探測包給第二應(yīng)用處理器20,以喚醒第二應(yīng)用處理器20。
2、外接設(shè)備200的第二調(diào)制解調(diào)器21接收到用戶數(shù)據(jù)時(shí),喚醒第二應(yīng)用處理器20,由第二應(yīng)用處理器20通過usb數(shù)據(jù)線300傳送探測包給第一應(yīng)用處理器10,以喚醒第一應(yīng)用處理器10。
3、第二調(diào)制解調(diào)器21周期性查找尋呼請(qǐng)求,以主動(dòng)激活自己,若接收到尋呼請(qǐng)求,喚醒第二應(yīng)用處理器20,由第二應(yīng)用處理器20通過usb數(shù)據(jù)線300發(fā)送探測包給第一應(yīng)用處理器10,以喚醒第二應(yīng)用處理器20。
此外,第二調(diào)制解調(diào)器21還可以定期喚醒自己,以在移動(dòng)終端100進(jìn)行位置更新時(shí),跟基站進(jìn)行握手交互,此時(shí)不需要喚醒第一應(yīng)用處理器10。
基于上述lte網(wǎng)絡(luò)的架構(gòu)圖、以及移動(dòng)終端100和外接設(shè)備200通訊連接的結(jié)構(gòu)示意圖,提出本發(fā)明的各個(gè)實(shí)施例。
參照?qǐng)D3,本實(shí)施例提出一種數(shù)據(jù)包識(shí)別系統(tǒng),所述數(shù)據(jù)包識(shí)別系統(tǒng)包括移動(dòng)終端100,以及通過預(yù)設(shè)接口與所述移動(dòng)終端100連接的外接設(shè)備200,所述移動(dòng)終端100包括第一應(yīng)用處理器10、與嵌入式用戶識(shí)別卡13連接的第一調(diào)制解調(diào)器11、第一射頻模塊12,所述外接設(shè)備200包括第二應(yīng)用處理器20、與實(shí)體用戶識(shí)別卡20a連接的第二調(diào)制解調(diào)器21和第二射頻模塊22;
所述第一應(yīng)用處理器10,用于被喚醒時(shí),接收第二應(yīng)用處理器20通過所述預(yù)設(shè)接口發(fā)送的數(shù)據(jù)包;
對(duì)接收的所述數(shù)據(jù)包的包頭進(jìn)行識(shí)別,以確定所述包頭是否攜帶有預(yù)設(shè)的包頭標(biāo)識(shí);
若所述包頭未攜帶預(yù)設(shè)的包頭標(biāo)識(shí),則發(fā)送重發(fā)消息給所述第二應(yīng)用處理器20,以供所述第二應(yīng)用處理器20重新發(fā)送所述數(shù)據(jù)包至所述第一應(yīng)用處理器10。
在本實(shí)施例中,所述第一應(yīng)用處理器10被喚醒,是通過預(yù)設(shè)接口接收第二應(yīng)用處理器20發(fā)送的探測包以實(shí)現(xiàn)喚醒的。后續(xù),第一應(yīng)用處理器10對(duì)數(shù)據(jù)包的識(shí)別,也是對(duì)通過預(yù)設(shè)接口接收到的數(shù)據(jù)包進(jìn)行識(shí)別。其中,所述預(yù)設(shè)接口為usb接口。
首先,需要說明的是,在移動(dòng)終端100和外接設(shè)備200都休眠之后,若外接設(shè)備200通過第二射頻模塊22接收到外部信號(hào),外接設(shè)備200的第二射頻模塊22將外部信號(hào)傳輸至第二調(diào)制解調(diào)器21中,使得第二調(diào)制解調(diào)器21喚醒,第二調(diào)制解調(diào)器21喚醒之后,再喚醒第二應(yīng)用處理器20,從而實(shí)現(xiàn)外接設(shè)備200的喚醒。在外接設(shè)備200喚醒之后,外接設(shè)備200的第二應(yīng)用處理器20會(huì)通過usb數(shù)據(jù)線300發(fā)送探測包以喚醒移動(dòng)終端100中的第一應(yīng)用處理器10,對(duì)于外接設(shè)備200的第二應(yīng)用處理器20而言,當(dāng)發(fā)送探測包給移動(dòng)終端100的第一應(yīng)用處理器10之后,第二應(yīng)用處理器20認(rèn)為第一應(yīng)用處理器10已經(jīng)被喚醒,此時(shí),第二應(yīng)用處理器20會(huì)緊接著發(fā)送用戶數(shù)據(jù)或控制信令的數(shù)據(jù)包給移動(dòng)終端100的第一應(yīng)用處理器10,以進(jìn)行后續(xù)的數(shù)據(jù)交互過程。
但是實(shí)際過程中,當(dāng)?shù)谝粦?yīng)用處理器10發(fā)送探測包給第一應(yīng)用處理器10之后,第一應(yīng)用處理器10并沒有立刻被喚醒,而是需要一段時(shí)間從休眠狀態(tài)切換為喚醒狀態(tài)。此時(shí),若是第二應(yīng)用處理器20緊接著發(fā)送數(shù)據(jù)包,由于第一應(yīng)用處理器10還未完全喚醒,會(huì)導(dǎo)致第一應(yīng)用處理器10接收到的數(shù)據(jù)包中,前面部分內(nèi)容丟失,造成接收到的數(shù)據(jù)包是不完整的數(shù)據(jù)包,也就是殘包。
為更好理解,舉例如下:外接設(shè)備200的第二應(yīng)用處理器20通過usb數(shù)據(jù)線300發(fā)送數(shù)據(jù)包給第一應(yīng)用處理器10,該數(shù)據(jù)包為512個(gè)字節(jié),在前36個(gè)字節(jié)的發(fā)送過程中,由于移動(dòng)終端100的第一應(yīng)用處理器10還沒完全被喚醒,在第37個(gè)字節(jié)才真正喚醒,此時(shí),第一應(yīng)用處理器10無法接收到前36個(gè)字節(jié),那么移動(dòng)終端100接收到的數(shù)據(jù)包就是殘包,由于移動(dòng)終端100根本就無法識(shí)別該數(shù)據(jù)包,導(dǎo)致移動(dòng)終端100也無法響應(yīng)該數(shù)據(jù)包,造成外接設(shè)備200遲遲得不到回復(fù),導(dǎo)致數(shù)據(jù)傳輸不準(zhǔn)確。
因此,本實(shí)施例中,當(dāng)?shù)谝粦?yīng)用處理器10被喚醒之后,若接收到第二應(yīng)用處理器20通過所述預(yù)設(shè)接口發(fā)送的數(shù)據(jù)包,先對(duì)接收的所述數(shù)據(jù)包的包頭進(jìn)行識(shí)別,以確定所述包頭是否攜帶有預(yù)設(shè)的包頭標(biāo)識(shí)。應(yīng)當(dāng)理解,包頭中攜帶有多個(gè)字節(jié),具體的個(gè)數(shù)不做限定。
本實(shí)施例中,所述第一應(yīng)用處理器10對(duì)接收到的數(shù)據(jù)包的包頭進(jìn)行識(shí)別,具體為解析出所述數(shù)據(jù)包,然后對(duì)解析出的數(shù)據(jù)包的包頭進(jìn)行識(shí)別,以確定所述包頭是否攜帶有預(yù)設(shè)的包頭標(biāo)識(shí),具體的識(shí)別方式在下文實(shí)施例中詳述。
當(dāng)?shù)谝粦?yīng)用處理器10識(shí)別出包頭未攜帶預(yù)設(shè)的包頭標(biāo)識(shí)時(shí),發(fā)送重發(fā)消息給所述第二應(yīng)用處理器20,以供所述第二應(yīng)用處理器20重新發(fā)送所述數(shù)據(jù)包至所述第一應(yīng)用處理器10。
即,第一應(yīng)用處理器10識(shí)別出包頭未攜帶預(yù)設(shè)的包頭標(biāo)識(shí)時(shí),說明當(dāng)前接收到的數(shù)據(jù)包的已經(jīng)發(fā)生了內(nèi)容丟失,無法對(duì)該數(shù)據(jù)包進(jìn)行識(shí)別,也無法反饋響應(yīng)的數(shù)據(jù)包,因此,所述第一應(yīng)用處理器10通過所述usb數(shù)據(jù)線300發(fā)送重發(fā)消息給所述第二應(yīng)用處理器20,以供所述第二應(yīng)用處理器20重新發(fā)送所述數(shù)據(jù)包至所述第一應(yīng)用處理器10,例如,第一應(yīng)用處理器10發(fā)送應(yīng)答消息“err”給第二應(yīng)用處理器20,告知第二應(yīng)用處理器20之前發(fā)送的數(shù)據(jù)包有誤,以便第二應(yīng)用處理器20重新發(fā)送該數(shù)據(jù)包。本實(shí)施例中,所述重新消息的形式不做限定,可以是一個(gè)短消息如“err”或“retry”,也可以是一個(gè)預(yù)設(shè)字段,如“0001”,具體根據(jù)實(shí)際情況設(shè)定。
本實(shí)施例中,相當(dāng)于是當(dāng)?shù)谝粦?yīng)用處理器10識(shí)別出數(shù)據(jù)包為殘包時(shí),即檢測到數(shù)據(jù)包中沒有攜帶包頭標(biāo)記,此時(shí),會(huì)給第二應(yīng)用處理器20反饋一個(gè)應(yīng)答err,第一應(yīng)用處理器10通過usb數(shù)據(jù)線300將應(yīng)答err傳送給外接設(shè)備200的第二應(yīng)用處理器20,此時(shí),第二應(yīng)用處理器20基于接收到的應(yīng)答err,通過usb數(shù)據(jù)線300重新發(fā)送該數(shù)據(jù)包給第一應(yīng)用處理器10,以完成數(shù)據(jù)的交互。
本實(shí)施例提出的數(shù)據(jù)包識(shí)別系統(tǒng),所述數(shù)據(jù)包識(shí)別系統(tǒng)包括移動(dòng)終端,以及通過預(yù)設(shè)接口與所述移動(dòng)終端連接的外接設(shè)備,所述移動(dòng)終端包括第一應(yīng)用處理器、與實(shí)體用戶識(shí)別卡連接的第一調(diào)制解調(diào)器、第一射頻模塊,所述外接設(shè)備包括內(nèi)嵌有虛擬用戶識(shí)別卡的第二應(yīng)用處理器、第二調(diào)制解調(diào)器和第二射頻模塊,所述第一應(yīng)用處理器被喚醒時(shí),接收第二應(yīng)用處理器通過所述預(yù)設(shè)接口發(fā)送的數(shù)據(jù)包,并對(duì)接收的所述數(shù)據(jù)包的包頭進(jìn)行識(shí)別,以確定所述包頭是否攜帶有預(yù)設(shè)的包頭標(biāo)識(shí),若所述包頭未攜帶預(yù)設(shè)的包頭標(biāo)識(shí),則發(fā)送重發(fā)消息給所述第二應(yīng)用處理器,以供所述第二應(yīng)用處理器重新發(fā)送所述數(shù)據(jù)包至所述第一應(yīng)用處理器。本方案在移動(dòng)終端中的第一應(yīng)用處理器被喚醒時(shí),先對(duì)接收到的數(shù)據(jù)包的包頭進(jìn)行識(shí)別,在識(shí)別所述包頭未攜帶有預(yù)設(shè)包頭標(biāo)識(shí)時(shí),通知第二應(yīng)用處理器重新發(fā)送該數(shù)據(jù)包,即使數(shù)據(jù)包內(nèi)容丟失,第一應(yīng)用處理器也可以及時(shí)通知第二應(yīng)用處理器重新發(fā)送該數(shù)據(jù)包,及時(shí)響應(yīng)數(shù)據(jù)包,提高了數(shù)據(jù)傳輸?shù)臏?zhǔn)確性。
進(jìn)一步地,提出本發(fā)明數(shù)據(jù)包識(shí)別系統(tǒng)第二實(shí)施例。
數(shù)據(jù)包識(shí)別系統(tǒng)第二實(shí)施例與數(shù)據(jù)包識(shí)別系統(tǒng)第一實(shí)施例的區(qū)別在于,所述第一應(yīng)用處理器10對(duì)接收的所述數(shù)據(jù)包的包頭進(jìn)行識(shí)別,以確定所述包頭是否攜帶有預(yù)設(shè)的包頭標(biāo)識(shí)具體包括:
所述第一應(yīng)用處理器10解析所述包頭的第一字節(jié),以確定所述包頭的第一字節(jié)是否為預(yù)設(shè)字段;及/或計(jì)算所述包頭的第二字節(jié)和第三字節(jié)的長度,并判斷所述長度是否滿足預(yù)設(shè)條件;
若所述包頭的第一字節(jié)為預(yù)設(shè)字段,及/或所述長度滿足預(yù)設(shè)條件,則確定所述包頭攜帶有預(yù)設(shè)的包頭標(biāo)識(shí)。
在本實(shí)施例中,所述預(yù)設(shè)條件優(yōu)選為:所述長度為所述數(shù)據(jù)包的長度與預(yù)設(shè)值的差值。即,計(jì)算所述包頭的第二字節(jié)和第三字節(jié)的長度之后,判斷所述長度是否滿足預(yù)設(shè)條件,具體是:計(jì)算數(shù)據(jù)包的長度,然后將數(shù)據(jù)包的長度減去預(yù)設(shè)值,以得到所述數(shù)據(jù)包的長度與預(yù)設(shè)值的差值,其中,所述預(yù)設(shè)值不做限定,例如為1,在得到差值之后,再將第二字節(jié)和第三字節(jié)的長度與所述差值進(jìn)行比較,以確定所述長度是否與所述差值相等,若相等,說明第二字節(jié)和第三字節(jié)的長度滿足條件。
一般情況下,用戶數(shù)據(jù)或控制信令數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)包的首字節(jié)為預(yù)設(shè)字段,所述預(yù)設(shè)字段不做限定,例如字段“0x01”,且第2、3字節(jié)共同表征一個(gè)長度,值為整個(gè)數(shù)據(jù)包的長度減預(yù)設(shè)值,例如預(yù)設(shè)值為1。因此,第一應(yīng)用處理器10在對(duì)接收的所述數(shù)據(jù)包的包頭進(jìn)行識(shí)別,以確定所述包頭是否攜帶有預(yù)設(shè)的包頭標(biāo)識(shí),實(shí)際上就是確定包頭的首字節(jié)是否為預(yù)設(shè)字段,以及第2、3字節(jié)的長度是否為整個(gè)數(shù)據(jù)包的長度減預(yù)設(shè)值。若識(shí)別出包頭的首字節(jié)為預(yù)設(shè)字段0x01,且第2、3字節(jié)的值為整個(gè)數(shù)據(jù)包的長度減1,此時(shí),第一應(yīng)用處理器10認(rèn)為數(shù)據(jù)包中攜帶有包頭標(biāo)記,認(rèn)為該包是有效的數(shù)據(jù)包。
本實(shí)施例中,包括三種實(shí)施方式:
1)方式一、解析所述包頭的第一字節(jié),以確定所述包頭的第一字節(jié)是否為預(yù)設(shè)字段;若所述包頭的第一字節(jié)為預(yù)設(shè)字段,則確定所述包頭攜帶有預(yù)設(shè)的包頭標(biāo)識(shí)。
2)方式二、計(jì)算所述包頭的第二字節(jié)和第三字節(jié)的長度,并判斷所述長度是否滿足預(yù)設(shè)條件;若所述長度滿足預(yù)設(shè)條件,則確定所述包頭攜帶有預(yù)設(shè)的包頭標(biāo)識(shí)。
3)方式三、解析所述包頭的第一字節(jié),以確定所述包頭的第一字節(jié)是否為預(yù)設(shè)字段;以及計(jì)算所述包頭的第二字節(jié)和第三字節(jié)的長度,并判斷所述長度是否滿足預(yù)設(shè)條件;若所述包頭的第一字節(jié)為預(yù)設(shè)字段,且所述長度滿足預(yù)設(shè)條件,則確定所述包頭攜帶有預(yù)設(shè)的包頭標(biāo)識(shí)。
本發(fā)明實(shí)施例中,可以根據(jù)具體需要設(shè)置上述三種方式的任意一種,但是為了提高數(shù)據(jù)包識(shí)別的準(zhǔn)確性,優(yōu)選采用方式三。
在采用方式三的情況下,所述第一應(yīng)用處理器10接收到數(shù)據(jù)包之后,可采用多線程分析數(shù)據(jù)包的包頭,即通過一個(gè)線程解析包頭的第一字節(jié),以確定所述包頭的第一字節(jié)是否為預(yù)設(shè)字段。同時(shí),通過另一個(gè)線程計(jì)算所述包頭的第二字節(jié)和第三字節(jié)的長度,并判斷所述長度是否滿足預(yù)設(shè)條件,當(dāng)所述包頭的第一字節(jié)為預(yù)設(shè)字段,且所述長度滿足預(yù)設(shè)條件,才確定所述包頭攜帶有預(yù)設(shè)的包頭標(biāo)識(shí)。
應(yīng)當(dāng)理解,采用多線程對(duì)包頭中的各個(gè)字節(jié)進(jìn)行并行分析,無須一個(gè)個(gè)先后分析,縮短了分析的時(shí)間,提高了分析的效率。
或者,所述第一應(yīng)用處理器10接收到數(shù)據(jù)包之后,先解析包頭的第一節(jié)點(diǎn),以確定所述包頭的第一字節(jié)是否為預(yù)設(shè)字段,當(dāng)所述包頭的第一字節(jié)為預(yù)設(shè)字段時(shí),才計(jì)算所述包頭的第二字節(jié)和第三字節(jié)的長度,并判斷所述長度是否滿足預(yù)設(shè)條件,并在所述長度滿足預(yù)設(shè)條件,則確定所述包頭攜帶有預(yù)設(shè)的包頭標(biāo)識(shí)。需要注意的是,當(dāng)所述包頭的第一字節(jié)不為預(yù)設(shè)字段,此時(shí),就無須再判斷第二字節(jié)和第三字節(jié)的長度,直接認(rèn)定包頭中未攜帶包頭標(biāo)識(shí)即可。
可以理解,通過這種前后判斷的方式,可以在第一字節(jié)符合要求的情況下再繼續(xù)判斷第二字節(jié)和第三字節(jié),防止第一字節(jié)不滿足要求的情況下,還花費(fèi)資源去進(jìn)行判斷,從而提高了數(shù)據(jù)包分析的智能性,也避免了資源的浪費(fèi)。
進(jìn)一步地,提出本發(fā)明數(shù)據(jù)包識(shí)別系統(tǒng)第三實(shí)施例。
數(shù)據(jù)包識(shí)別系統(tǒng)第三實(shí)施例與數(shù)據(jù)包識(shí)別系統(tǒng)第一實(shí)施例的區(qū)別在于,所述第一應(yīng)用處理器10,還用于識(shí)別所述數(shù)據(jù)包的長度;
在所述數(shù)據(jù)包的長度大于預(yù)設(shè)長度值,才對(duì)接收的所述數(shù)據(jù)包的包頭進(jìn)行識(shí)別。
在本實(shí)施例中,所述第一應(yīng)用處理器10被喚醒后接收到數(shù)據(jù)包時(shí),先識(shí)別該數(shù)據(jù)包的長度,然后獲取預(yù)設(shè)長度值,將識(shí)別的數(shù)據(jù)包的長度與預(yù)設(shè)長度值進(jìn)行比對(duì),以確定所述數(shù)據(jù)包的長度是否大于預(yù)設(shè)長度值,若所述數(shù)據(jù)包的長度大于預(yù)設(shè)長度值,所述第一應(yīng)用處理器10才對(duì)接收的所述數(shù)據(jù)包的包頭進(jìn)行識(shí)別,若是識(shí)別出所述數(shù)據(jù)包的長度小于或等于預(yù)設(shè)長度值,此時(shí)可不對(duì)接收的所述數(shù)據(jù)包的包頭進(jìn)行識(shí)別。
此處需要說明的是,用戶數(shù)據(jù)或控制信令數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)包(data)的長度一般大于6個(gè)字節(jié)對(duì)應(yīng)的長度,而應(yīng)答消息對(duì)應(yīng)的數(shù)據(jù)包(ack)的長度一般是4或者6個(gè)字節(jié)。
因此,當(dāng)?shù)谝粦?yīng)用處理器10被喚醒后接收到數(shù)據(jù)包時(shí),先通過包長度判斷該數(shù)據(jù)包是ack還是data,若檢測出該數(shù)據(jù)包沒有大于6字節(jié)對(duì)應(yīng)的長度,即可確認(rèn)該數(shù)據(jù)包是ack,此時(shí)說明外接設(shè)備200的第二應(yīng)用處理器20還沒發(fā)送data,因此不會(huì)出現(xiàn)上述的丟包情況,當(dāng)檢測出該數(shù)據(jù)包大于6個(gè)字節(jié)對(duì)應(yīng)的長度時(shí),才會(huì)對(duì)該數(shù)據(jù)包的包頭進(jìn)行解析。
可以理解,本實(shí)施例中,在接收到數(shù)據(jù)包之后,第一應(yīng)用處理器10先對(duì)數(shù)據(jù)包的長度進(jìn)行解析,以確定該數(shù)據(jù)包的類型,從而決定是否對(duì)該數(shù)據(jù)包的包頭進(jìn)行解析,防止所有的數(shù)據(jù)包都進(jìn)行包頭解析,從而提高了數(shù)據(jù)包識(shí)別的智能性。
進(jìn)一步地,提出本發(fā)明數(shù)據(jù)包識(shí)別系統(tǒng)第四實(shí)施例。
數(shù)據(jù)包識(shí)別系統(tǒng)第四實(shí)施例與數(shù)據(jù)包識(shí)別系統(tǒng)第一至第三實(shí)施例的區(qū)別在于,所述第一應(yīng)用處理器10,還用于若所述包頭攜帶有預(yù)設(shè)的包頭標(biāo)識(shí),則發(fā)送確認(rèn)消息給所述第二應(yīng)用處理器20,以供所述第二應(yīng)用處理器20繼續(xù)發(fā)送其它數(shù)據(jù)包至所述第一應(yīng)用處理器10。
即本實(shí)施例中,第一應(yīng)用處理器10若識(shí)別出包頭并沒有上述的包頭標(biāo)識(shí),此時(shí),認(rèn)為該數(shù)據(jù)包是殘包,在檢驗(yàn)出該數(shù)據(jù)包為殘包之后,會(huì)采用數(shù)據(jù)應(yīng)答機(jī)制進(jìn)行反饋,以供第二應(yīng)用處理器20根據(jù)第一應(yīng)用處理器10反饋的數(shù)據(jù)應(yīng)答機(jī)制決定繼續(xù)發(fā)包,還是重新發(fā)送數(shù)據(jù)包,具體地:
當(dāng)?shù)谝粦?yīng)用處理器10識(shí)別出數(shù)據(jù)包為有效的數(shù)據(jù)包時(shí),也就是檢測出數(shù)據(jù)包中攜帶有包頭標(biāo)記時(shí),此時(shí),會(huì)給第二應(yīng)用處理器20反饋一個(gè)應(yīng)答ok,以通知第二應(yīng)用處理器20當(dāng)前接收到的數(shù)據(jù)包是完整的數(shù)據(jù)包,具體地:第一應(yīng)用處理器10通過usb數(shù)據(jù)線300將應(yīng)答ok傳送給外接設(shè)備200的第二應(yīng)用處理器20,此時(shí),第二應(yīng)用處理器20根據(jù)第一應(yīng)用處理器10反饋的應(yīng)答ok,通過usb數(shù)據(jù)線300繼續(xù)發(fā)送其它的數(shù)據(jù)包給第一應(yīng)用處理器10,以完成數(shù)據(jù)包發(fā)送操作。
本實(shí)施例中,在識(shí)別出所述包頭攜帶有預(yù)設(shè)的包頭標(biāo)識(shí),則發(fā)送確認(rèn)消息給所述第二應(yīng)用處理器20,以供所述第二應(yīng)用處理器20繼續(xù)發(fā)送其它數(shù)據(jù)包至所述第一應(yīng)用處理器10,從而完成數(shù)據(jù)的傳輸過程。
本發(fā)明進(jìn)一步提供一種數(shù)據(jù)包識(shí)別方法。
參照?qǐng)D4,圖4為本發(fā)明數(shù)據(jù)包識(shí)別方法較佳實(shí)施例的流程示意圖。
本實(shí)施例提出一種數(shù)據(jù)包識(shí)別方法,在本實(shí)施例中,提供了數(shù)據(jù)包識(shí)別方法的實(shí)施例,需要說明的是,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
本發(fā)明中,數(shù)據(jù)包識(shí)別方法應(yīng)用于移動(dòng)終端100以及通過預(yù)設(shè)接口與移動(dòng)終端100連接的外接設(shè)備200,所述移動(dòng)終端100包括第一應(yīng)用處理器10、與實(shí)體用戶識(shí)別卡13連接的第一調(diào)制解調(diào)器11和第一射頻模塊12,所述外接設(shè)備200包括內(nèi)嵌有虛擬用戶識(shí)別卡20a的第二應(yīng)用處理器20、第二調(diào)制解調(diào)器21和第二射頻模塊22,所述方法包括:
步驟s10,第一應(yīng)用處理器10被喚醒時(shí),接收第二應(yīng)用處理器20通過所述預(yù)設(shè)接口發(fā)送的數(shù)據(jù)包;
步驟s20,對(duì)接收的所述數(shù)據(jù)包的包頭進(jìn)行識(shí)別,以確定所述包頭是否攜帶有預(yù)設(shè)的包頭標(biāo)識(shí);
步驟s30,若所述包頭未攜帶預(yù)設(shè)的包頭標(biāo)識(shí),則發(fā)送重發(fā)消息給所述第二應(yīng)用處理器20,以供所述第二應(yīng)用處理器20重新發(fā)送所述數(shù)據(jù)包至所述第一應(yīng)用處理器10。
在本實(shí)施例中,所述第一應(yīng)用處理器10被喚醒,是通過預(yù)設(shè)接口接收第二應(yīng)用處理器20發(fā)送的探測包以實(shí)現(xiàn)喚醒的。后續(xù),第一應(yīng)用處理器10對(duì)數(shù)據(jù)包的識(shí)別,也是對(duì)通過預(yù)設(shè)接口接收到的數(shù)據(jù)包進(jìn)行識(shí)別。其中,所述預(yù)設(shè)接口為usb接口。
首先,需要說明的是,在移動(dòng)終端100和外接設(shè)備200都休眠之后,若外接設(shè)備200通過第二射頻模塊22接收到外部信號(hào),外接設(shè)備200的第二射頻模塊22將外部信號(hào)傳輸至第二調(diào)制解調(diào)器21中,使得第二調(diào)制解調(diào)器21喚醒,第二調(diào)制解調(diào)器21喚醒之后,再喚醒第二應(yīng)用處理器20,從而實(shí)現(xiàn)外接設(shè)備200的喚醒。在外接設(shè)備200喚醒之后,外接設(shè)備200的第二應(yīng)用處理器20會(huì)通過usb數(shù)據(jù)線300發(fā)送探測包以喚醒移動(dòng)終端100中的第一應(yīng)用處理器10,對(duì)于外接設(shè)備200的第二應(yīng)用處理器20而言,當(dāng)發(fā)送探測包給移動(dòng)終端100的第一應(yīng)用處理器10之后,第二應(yīng)用處理器20認(rèn)為第一應(yīng)用處理器10已經(jīng)被喚醒,此時(shí),第二應(yīng)用處理器20會(huì)緊接著發(fā)送用戶數(shù)據(jù)或控制信令的數(shù)據(jù)包給移動(dòng)終端100的第一應(yīng)用處理器10,以進(jìn)行后續(xù)的數(shù)據(jù)交互過程。
但是實(shí)際過程中,當(dāng)?shù)谝粦?yīng)用處理器10發(fā)送探測包給第一應(yīng)用處理器10之后,第一應(yīng)用處理器10并沒有立刻被喚醒,而是需要一段時(shí)間從休眠狀態(tài)切換為喚醒狀態(tài)。此時(shí),若是第二應(yīng)用處理器20緊接著發(fā)送數(shù)據(jù)包,由于第一應(yīng)用處理器10還未完全喚醒,會(huì)導(dǎo)致第一應(yīng)用處理器10接收到的數(shù)據(jù)包中,前面部分內(nèi)容丟失,造成接收到的數(shù)據(jù)包是不完整的數(shù)據(jù)包,也就是殘包。
為更好理解,舉例如下:外接設(shè)備200的第二應(yīng)用處理器20通過usb數(shù)據(jù)線300發(fā)送數(shù)據(jù)包給第一應(yīng)用處理器10,該數(shù)據(jù)包為512個(gè)字節(jié),在前36個(gè)字節(jié)的發(fā)送過程中,由于移動(dòng)終端100的第一應(yīng)用處理器10還沒完全被喚醒,在第37個(gè)字節(jié)才真正喚醒,此時(shí),第一應(yīng)用處理器10無法接收到前36個(gè)字節(jié),那么移動(dòng)終端100接收到的數(shù)據(jù)包就是殘包,由于移動(dòng)終端100根本就無法識(shí)別該數(shù)據(jù)包,導(dǎo)致移動(dòng)終端100也無法響應(yīng)該數(shù)據(jù)包,造成外接設(shè)備200遲遲得不到回復(fù),導(dǎo)致數(shù)據(jù)傳輸不準(zhǔn)確。
因此,本實(shí)施例中,當(dāng)?shù)谝粦?yīng)用處理器10被喚醒之后,若接收到第二應(yīng)用處理器20通過所述預(yù)設(shè)接口發(fā)送的數(shù)據(jù)包,先對(duì)接收的所述數(shù)據(jù)包的包頭進(jìn)行識(shí)別,以確定所述包頭是否攜帶有預(yù)設(shè)的包頭標(biāo)識(shí)。應(yīng)當(dāng)理解,包頭中攜帶有多個(gè)字節(jié),具體的個(gè)數(shù)不做限定。
本實(shí)施例中,所述第一應(yīng)用處理器10對(duì)接收到的數(shù)據(jù)包的包頭進(jìn)行識(shí)別,具體為解析出所述數(shù)據(jù)包,然后對(duì)解析出的數(shù)據(jù)包的包頭進(jìn)行識(shí)別,以確定所述包頭是否攜帶有預(yù)設(shè)的包頭標(biāo)識(shí),具體的識(shí)別方式在下文實(shí)施例中詳述。
當(dāng)?shù)谝粦?yīng)用處理器10識(shí)別出包頭未攜帶預(yù)設(shè)的包頭標(biāo)識(shí)時(shí),發(fā)送重發(fā)消息給所述第二應(yīng)用處理器20,以供所述第二應(yīng)用處理器20重新發(fā)送所述數(shù)據(jù)包至所述第一應(yīng)用處理器10。
即,第一應(yīng)用處理器10識(shí)別出包頭未攜帶預(yù)設(shè)的包頭標(biāo)識(shí)時(shí),說明當(dāng)前接收到的數(shù)據(jù)包的已經(jīng)發(fā)生了內(nèi)容丟失,無法對(duì)該數(shù)據(jù)包進(jìn)行識(shí)別,也無法反饋響應(yīng)的數(shù)據(jù)包,因此,所述第一應(yīng)用處理器10通過所述usb數(shù)據(jù)線300發(fā)送重發(fā)消息給所述第二應(yīng)用處理器20,以供所述第二應(yīng)用處理器20重新發(fā)送所述數(shù)據(jù)包至所述第一應(yīng)用處理器10,例如,第一應(yīng)用處理器10發(fā)送應(yīng)答消息“err”給第二應(yīng)用處理器20,告知第二應(yīng)用處理器20之前發(fā)送的數(shù)據(jù)包有誤,以便第二應(yīng)用處理器20重新發(fā)送該數(shù)據(jù)包。本實(shí)施例中,所述重新消息的形式不做限定,可以是一個(gè)短消息如“err”或“retry”,也可以是一個(gè)預(yù)設(shè)字段,如“0001”,具體根據(jù)實(shí)際情況設(shè)定。
本實(shí)施例中,相當(dāng)于是當(dāng)?shù)谝粦?yīng)用處理器10識(shí)別出數(shù)據(jù)包為殘包時(shí),即檢測到數(shù)據(jù)包中沒有攜帶包頭標(biāo)記,此時(shí),會(huì)給第二應(yīng)用處理器20反饋一個(gè)應(yīng)答err,第一應(yīng)用處理器10通過usb數(shù)據(jù)線300將應(yīng)答err傳送給外接設(shè)備200的第二應(yīng)用處理器20,此時(shí),第二應(yīng)用處理器20基于接收到的應(yīng)答err,通過usb數(shù)據(jù)線300重新發(fā)送該數(shù)據(jù)包給第一應(yīng)用處理器10,以完成數(shù)據(jù)的交互。
本實(shí)施例提出的數(shù)據(jù)包識(shí)別方法,第一應(yīng)用處理器被喚醒時(shí),接收第二應(yīng)用處理器通過所述預(yù)設(shè)接口發(fā)送的數(shù)據(jù)包,并對(duì)接收的所述數(shù)據(jù)包的包頭進(jìn)行識(shí)別,以確定所述包頭是否攜帶有預(yù)設(shè)的包頭標(biāo)識(shí),若所述包頭未攜帶預(yù)設(shè)的包頭標(biāo)識(shí),則發(fā)送重發(fā)消息給所述第二應(yīng)用處理器,以供所述第二應(yīng)用處理器重新發(fā)送所述數(shù)據(jù)包至所述第一應(yīng)用處理器。本方案在移動(dòng)終端中的第一應(yīng)用處理器被喚醒時(shí),先對(duì)接收到的數(shù)據(jù)包的包頭進(jìn)行識(shí)別,在識(shí)別所述包頭未攜帶有預(yù)設(shè)包頭標(biāo)識(shí)時(shí),通知第二應(yīng)用處理器重新發(fā)送該數(shù)據(jù)包,即使數(shù)據(jù)包內(nèi)容丟失,第一應(yīng)用處理器也可以及時(shí)通知第二應(yīng)用處理器重新發(fā)送該數(shù)據(jù)包,及時(shí)響應(yīng)數(shù)據(jù)包,提高了數(shù)據(jù)傳輸?shù)臏?zhǔn)確性。
進(jìn)一步地,提出本發(fā)明數(shù)據(jù)包識(shí)別方法第二實(shí)施例。
數(shù)據(jù)包識(shí)別方法第二實(shí)施例與數(shù)據(jù)包識(shí)別方法第一實(shí)施例的區(qū)別在于,參照?qǐng)D5,所述步驟s20包括:
步驟s21,所述第一應(yīng)用處理10器解析所述包頭的第一字節(jié),以確定所述包頭的第一字節(jié)是否為預(yù)設(shè)字段;及/或計(jì)算所述包頭的第二字節(jié)和第三字節(jié)的長度,并判斷所述長度是否滿足預(yù)設(shè)條件;
步驟s22,若所述包頭的第一字節(jié)為預(yù)設(shè)字段,及/或所述長度滿足預(yù)設(shè)條件,則確定所述包頭攜帶有預(yù)設(shè)的包頭標(biāo)識(shí)。
在本實(shí)施例中,所述預(yù)設(shè)條件優(yōu)選為:所述長度為所述數(shù)據(jù)包的長度與預(yù)設(shè)值的差值。即,計(jì)算所述包頭的第二字節(jié)和第三字節(jié)的長度之后,判斷所述長度是否滿足預(yù)設(shè)條件,具體是:計(jì)算數(shù)據(jù)包的長度,然后將數(shù)據(jù)包的長度減去預(yù)設(shè)值,以得到所述數(shù)據(jù)包的長度與預(yù)設(shè)值的差值,其中,所述預(yù)設(shè)值不做限定,例如為1,在得到差值之后,再將第二字節(jié)和第三字節(jié)的長度與所述差值進(jìn)行比較,以確定所述長度是否與所述差值相等,若相等,說明第二字節(jié)和第三字節(jié)的長度滿足條件。
一般情況下,用戶數(shù)據(jù)或控制信令數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)包的首字節(jié)為預(yù)設(shè)字段,所述預(yù)設(shè)字段不做限定,例如字段“0x01”,且第2、3字節(jié)共同表征一個(gè)長度,值為整個(gè)數(shù)據(jù)包的長度減預(yù)設(shè)值,例如預(yù)設(shè)值為1。因此,第一應(yīng)用處理器10在對(duì)接收的所述數(shù)據(jù)包的包頭進(jìn)行識(shí)別,以確定所述包頭是否攜帶有預(yù)設(shè)的包頭標(biāo)識(shí),實(shí)際上就是確定包頭的首字節(jié)是否為預(yù)設(shè)字段,以及第2、3字節(jié)的長度是否為整個(gè)數(shù)據(jù)包的長度減預(yù)設(shè)值。若識(shí)別出包頭的首字節(jié)為預(yù)設(shè)字段0x01,且第2、3字節(jié)的值為整個(gè)數(shù)據(jù)包的長度減1,此時(shí),第一應(yīng)用處理器10認(rèn)為數(shù)據(jù)包中攜帶有包頭標(biāo)記,認(rèn)為該包是有效的數(shù)據(jù)包。
本實(shí)施例中,包括三種實(shí)施方式:
1)方式一、解析所述包頭的第一字節(jié),以確定所述包頭的第一字節(jié)是否為預(yù)設(shè)字段;若所述包頭的第一字節(jié)為預(yù)設(shè)字段,則確定所述包頭攜帶有預(yù)設(shè)的包頭標(biāo)識(shí)。
2)方式二、計(jì)算所述包頭的第二字節(jié)和第三字節(jié)的長度,并判斷所述長度是否滿足預(yù)設(shè)條件;若所述長度滿足預(yù)設(shè)條件,則確定所述包頭攜帶有預(yù)設(shè)的包頭標(biāo)識(shí)。
3)方式三、解析所述包頭的第一字節(jié),以確定所述包頭的第一字節(jié)是否為預(yù)設(shè)字段;以及計(jì)算所述包頭的第二字節(jié)和第三字節(jié)的長度,并判斷所述長度是否滿足預(yù)設(shè)條件;若所述包頭的第一字節(jié)為預(yù)設(shè)字段,且所述長度滿足預(yù)設(shè)條件,則確定所述包頭攜帶有預(yù)設(shè)的包頭標(biāo)識(shí)。
本發(fā)明實(shí)施例中,可以根據(jù)具體需要設(shè)置上述三種方式的任意一種,但是為了提高數(shù)據(jù)包識(shí)別的準(zhǔn)確性,優(yōu)選采用方式三。
在采用方式三的情況下,所述第一應(yīng)用處理器10接收到數(shù)據(jù)包之后,可采用多線程分析數(shù)據(jù)包的包頭,即通過一個(gè)線程解析包頭的第一字節(jié),以確定所述包頭的第一字節(jié)是否為預(yù)設(shè)字段。同時(shí),通過另一個(gè)線程計(jì)算所述包頭的第二字節(jié)和第三字節(jié)的長度,并判斷所述長度是否滿足預(yù)設(shè)條件,當(dāng)所述包頭的第一字節(jié)為預(yù)設(shè)字段,且所述長度滿足預(yù)設(shè)條件,才確定所述包頭攜帶有預(yù)設(shè)的包頭標(biāo)識(shí)。
應(yīng)當(dāng)理解,采用多線程對(duì)包頭中的各個(gè)字節(jié)進(jìn)行并行分析,無須一個(gè)個(gè)先后分析,縮短了分析的時(shí)間,提高了分析的效率。
或者,所述第一應(yīng)用處理器10接收到數(shù)據(jù)包之后,先解析包頭的第一節(jié)點(diǎn),以確定所述包頭的第一字節(jié)是否為預(yù)設(shè)字段,當(dāng)所述包頭的第一字節(jié)為預(yù)設(shè)字段時(shí),才計(jì)算所述包頭的第二字節(jié)和第三字節(jié)的長度,并判斷所述長度是否滿足預(yù)設(shè)條件,并在所述長度滿足預(yù)設(shè)條件,則確定所述包頭攜帶有預(yù)設(shè)的包頭標(biāo)識(shí)。需要注意的是,當(dāng)所述包頭的第一字節(jié)不為預(yù)設(shè)字段,此時(shí),就無須再判斷第二字節(jié)和第三字節(jié)的長度,直接認(rèn)定包頭中未攜帶包頭標(biāo)識(shí)即可。
可以理解,通過這種前后判斷的方式,可以在第一字節(jié)符合要求的情況下再繼續(xù)判斷第二字節(jié)和第三字節(jié),防止第一字節(jié)不滿足要求的情況下,還花費(fèi)資源去進(jìn)行判斷,從而提高了數(shù)據(jù)包分析的智能性,也避免了資源的浪費(fèi)。
進(jìn)一步地,提出本發(fā)明數(shù)據(jù)包識(shí)別方法第三實(shí)施例。
數(shù)據(jù)包識(shí)別方法第三實(shí)施例與數(shù)據(jù)包識(shí)別方法第一實(shí)施例的區(qū)別在于,所述步驟s20之前,所述方法還包括:
步驟a,所述第一應(yīng)用處理器10識(shí)別所述數(shù)據(jù)包的長度;
步驟b,在所述數(shù)據(jù)包的長度大于預(yù)設(shè)長度值,才執(zhí)行所述對(duì)接收的所述數(shù)據(jù)包的包頭進(jìn)行識(shí)別的步驟。
在本實(shí)施例中,所述第一應(yīng)用處理器10被喚醒后接收到數(shù)據(jù)包時(shí),先識(shí)別該數(shù)據(jù)包的長度,然后獲取預(yù)設(shè)長度值,將識(shí)別的數(shù)據(jù)包的長度與預(yù)設(shè)長度值進(jìn)行比對(duì),以確定所述數(shù)據(jù)包的長度是否大于預(yù)設(shè)長度值,若所述數(shù)據(jù)包的長度大于預(yù)設(shè)長度值,所述第一應(yīng)用處理器10才對(duì)接收的所述數(shù)據(jù)包的包頭進(jìn)行識(shí)別,若是識(shí)別出所述數(shù)據(jù)包的長度小于或等于預(yù)設(shè)長度值,此時(shí)可不對(duì)接收的所述數(shù)據(jù)包的包頭進(jìn)行識(shí)別。
此處需要說明的是,用戶數(shù)據(jù)或控制信令數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)包(data)的長度一般大于6個(gè)字節(jié)對(duì)應(yīng)的長度,而應(yīng)答消息對(duì)應(yīng)的數(shù)據(jù)包(ack)的長度一般是4或者6個(gè)字節(jié)。
因此,當(dāng)?shù)谝粦?yīng)用處理器10被喚醒后接收到數(shù)據(jù)包時(shí),先通過包長度判斷該數(shù)據(jù)包是ack還是data,若檢測出該數(shù)據(jù)包沒有大于6字節(jié)對(duì)應(yīng)的長度,即可確認(rèn)該數(shù)據(jù)包是ack,此時(shí)說明外接設(shè)備200的第二應(yīng)用處理器20還沒發(fā)送data,因此不會(huì)出現(xiàn)上述的丟包情況,當(dāng)檢測出該數(shù)據(jù)包大于6個(gè)字節(jié)對(duì)應(yīng)的長度時(shí),才會(huì)對(duì)該數(shù)據(jù)包的包頭進(jìn)行解析。
可以理解,本實(shí)施例中,在接收到數(shù)據(jù)包之后,第一應(yīng)用處理器10先對(duì)數(shù)據(jù)包的長度進(jìn)行解析,以確定該數(shù)據(jù)包的類型,從而決定是否對(duì)該數(shù)據(jù)包的包頭進(jìn)行解析,防止所有的數(shù)據(jù)包都進(jìn)行包頭解析,從而提高了數(shù)據(jù)包識(shí)別的智能性。
進(jìn)一步地,提出本發(fā)明數(shù)據(jù)包識(shí)別方法第四實(shí)施例。
數(shù)據(jù)包識(shí)別方法第四實(shí)施例與數(shù)據(jù)包識(shí)別方法第一至第三實(shí)施例的區(qū)別在于,參照?qǐng)D6,所述步驟s20之后,所述方法還包括:
步驟s40,若所述包頭攜帶有預(yù)設(shè)的包頭標(biāo)識(shí),則所述第一應(yīng)用處理器10發(fā)送確認(rèn)消息給所述第二應(yīng)用處理器20,以供所述第二應(yīng)用處理器20繼續(xù)發(fā)送其它數(shù)據(jù)包至所述第一應(yīng)用處理器10。
即本實(shí)施例中,第一應(yīng)用處理器10若識(shí)別出包頭并沒有上述的包頭標(biāo)識(shí),此時(shí),認(rèn)為該數(shù)據(jù)包是殘包,在檢驗(yàn)出該數(shù)據(jù)包為殘包之后,會(huì)采用數(shù)據(jù)應(yīng)答機(jī)制進(jìn)行反饋,以供第二應(yīng)用處理器20根據(jù)第一應(yīng)用處理器10反饋的數(shù)據(jù)應(yīng)答機(jī)制決定繼續(xù)發(fā)包,還是重新發(fā)送數(shù)據(jù)包,具體地:
當(dāng)?shù)谝粦?yīng)用處理器10識(shí)別出數(shù)據(jù)包為有效的數(shù)據(jù)包時(shí),也就是檢測出數(shù)據(jù)包中攜帶有包頭標(biāo)記時(shí),此時(shí),會(huì)給第二應(yīng)用處理器20反饋一個(gè)應(yīng)答ok,以通知第二應(yīng)用處理器20當(dāng)前接收到的數(shù)據(jù)包是完整的數(shù)據(jù)包,具體地:第一應(yīng)用處理器10通過usb數(shù)據(jù)線300將應(yīng)答ok傳送給外接設(shè)備200的第二應(yīng)用處理器20,此時(shí),第二應(yīng)用處理器20根據(jù)第一應(yīng)用處理器10反饋的應(yīng)答ok,通過usb數(shù)據(jù)線300繼續(xù)發(fā)送其它的數(shù)據(jù)包給第一應(yīng)用處理器10,以完成數(shù)據(jù)包發(fā)送操作。
本實(shí)施例中,在識(shí)別出所述包頭攜帶有預(yù)設(shè)的包頭標(biāo)識(shí),則發(fā)送確認(rèn)消息給所述第二應(yīng)用處理器20,以供所述第二應(yīng)用處理器20繼續(xù)發(fā)送其它數(shù)據(jù)包至所述第一應(yīng)用處理器10,從而完成數(shù)據(jù)的傳輸過程。
需要說明的是,在本文中,術(shù)語“包括”、“包含”或者其任何其它變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者系統(tǒng)不僅包括那些要素,而且還包括沒有明確列出的其它要素,或者是還包括為這種過程、方法、物品或者系統(tǒng)所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括該要素的過程、方法、物品或者系統(tǒng)中還存在另外的相同要素。
上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到上述實(shí)施例方法可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)(如rom/ram、磁碟、光盤)中,包括若干指令用以使得一臺(tái)終端設(shè)備(可以是手機(jī),計(jì)算機(jī),服務(wù)器,空調(diào)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。
以上僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其它相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。