欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

數(shù)據(jù)包識別系統(tǒng)及方法與流程

文檔序號:11479646閱讀:207來源:國知局
數(shù)據(jù)包識別系統(tǒng)及方法與流程

本發(fā)明涉及通信技術領域,尤其涉及一種數(shù)據(jù)包識別系統(tǒng)及方法。



背景技術:

隨著移動通信技術的發(fā)展,越來越多的移動終端如智能手機具有雙卡雙通的功能,使得用戶在實現(xiàn)語音業(yè)務的待機同時,能建立數(shù)據(jù)業(yè)務連接。移動終端通常具有兩個用戶識別卡以及分別與所述兩個用戶識別卡連接的調制解調器,兩個用戶識別卡全開時,一個用戶識別卡(sim1)可以使用4g(the4thgenerationmobilecommunicationtechnology,第四代移動通信技術),例如lte(longtermevolution,長期演進技術)網(wǎng)絡,另一個用戶識別卡(sim2)僅能使用2g(2-generationwirelesstelephonetechnology,第二代手機通信技術規(guī)格)或3g(3rdgeneration,第三代移動通信技術)網(wǎng)絡,sim2不能上4g的原因主要是:移動終端只有一套射頻,兩張卡使用該套射頻是分時復用的關系,并不能同時占用,由于兩張卡全開時,只有一張卡可以使用4g網(wǎng)絡,另一張卡只能使用2g或3g網(wǎng)絡,導致移動終端中數(shù)據(jù)傳輸?shù)男瘦^低。

因此,為了使移動終端可以支持雙lte,以提高數(shù)據(jù)傳輸效率,移動終端可與外接設備連接(該外接設備中設置有調制解調器),以實現(xiàn)雙lte通信功能。但是,目前移動終端和外接設備進行數(shù)據(jù)包傳輸過程中,如果移動設備還未喚醒,外接設備就發(fā)送數(shù)據(jù)包,由于移動終端還沒完全喚醒,數(shù)據(jù)包前面發(fā)送的內(nèi)容會丟失,那么移動設備接收到的數(shù)據(jù)包就為殘包,導致移動設備無法響應該數(shù)據(jù)包。



技術實現(xiàn)要素:

本發(fā)明的主要目的在于提出一種數(shù)據(jù)包識別系統(tǒng)及方法,旨在解決數(shù)據(jù)包傳輸之后,若是發(fā)生數(shù)據(jù)包內(nèi)容丟失,容易出現(xiàn)數(shù)據(jù)包無法響應的技術問題。

為實現(xiàn)上述目的,本發(fā)明提供的一種數(shù)據(jù)包識別系統(tǒng),所述數(shù)據(jù)包識別系統(tǒng)包括移動終端,以及通過預設接口與所述移動終端連接的外接設備,所述移動終端包括第一應用處理器、內(nèi)嵌有虛擬用戶識別卡的第一調制解調器和第一射頻模塊,所述外接設備包括第二應用處理器、與實體用戶識別卡連接的第二調制解調器和第二射頻模塊;

所述第一應用處理器,用于被喚醒時,接收第二應用處理器通過所述預設接口發(fā)送的數(shù)據(jù)包;對接收的所述數(shù)據(jù)包的包頭進行識別,以確定所述包頭是否攜帶有預設的包頭標識;若所述包頭未攜帶預設的包頭標識,則發(fā)送重發(fā)消息給所述第二應用處理器,以供所述第二應用處理器重新發(fā)送所述數(shù)據(jù)包至所述第一應用處理器。

可選地,所述第一應用處理器對接收的所述數(shù)據(jù)包的包頭進行識別,以確定所述包頭是否攜帶有預設的包頭標識具體包括:

解析所述包頭的第一字節(jié),以確定所述包頭的第一字節(jié)是否為預設字段;及/或計算所述包頭的第二字節(jié)和第三字節(jié)的長度,并判斷所述長度是否滿足預設條件;

若所述包頭的第一字節(jié)為預設字段,及/或所述長度滿足預設條件,則確定所述包頭攜帶有預設的包頭標識。

可選地,所述預設條件為:所述長度為所述數(shù)據(jù)包的長度與預設值的差值。

可選地,所述第一應用處理器,還用于識別所述數(shù)據(jù)包的長度;

在所述數(shù)據(jù)包的長度大于預設長度值,才對接收的所述數(shù)據(jù)包的包頭進行識別。

可選地,所述第一應用處理器,還用于若所述包頭攜帶有預設的包頭標識,則發(fā)送確認消息給所述第二應用處理器,以供所述第二應用處理器繼續(xù)發(fā)送其它數(shù)據(jù)包至所述第一應用處理器。

此外,為實現(xiàn)上述目的,本發(fā)明還提出一種數(shù)據(jù)包識別方法,應用于移動終端以及通過預設接口與移動終端連接的外接設備,所述移動終端包括第一應用處理器、內(nèi)嵌有虛擬用戶識別卡的第一調制解調器和第一射頻模塊,所述外接設備包括第二應用處理器、與實體用戶識別卡連接的第二調制解調器和第二射頻模塊,所述方法包括:

第一應用處理器被喚醒時,接收第二應用處理器通過所述預設接口發(fā)送的數(shù)據(jù)包;

對接收的所述數(shù)據(jù)包的包頭進行識別,以確定所述包頭是否攜帶有預設的包頭標識;

若所述包頭未攜帶預設的包頭標識,則發(fā)送重發(fā)消息給所述第二應用處理器,以供所述第二應用處理器重新發(fā)送所述數(shù)據(jù)包至所述第一應用處理器。

可選地,所述對接收的所述數(shù)據(jù)包的包頭進行識別,以確定所述包頭是否攜帶有預設的包頭標識的步驟包括:

所述第一應用處理器解析所述包頭的第一字節(jié),以確定所述包頭的第一字節(jié)是否為預設字段;及/或計算所述包頭的第二字節(jié)和第三字節(jié)的長度,并判斷所述長度是否滿足預設條件;

若所述包頭的第一字節(jié)為預設字段,及/或所述長度滿足預設條件,則確定所述包頭攜帶有預設的包頭標識。

可選地,所述預設條件為:所述長度為所述數(shù)據(jù)包的長度與預設值的差值。

可選地,所述對接收的所述數(shù)據(jù)包的包頭進行識別,以確定所述包頭是否攜帶有預設的包頭標識的步驟之前,所述方法還包括:

所述第一應用處理器識別所述數(shù)據(jù)包的長度;

在所述數(shù)據(jù)包的長度大于預設長度值,才執(zhí)行所述對接收的所述數(shù)據(jù)包的包頭進行識別的步驟。

可選地,所述對接收的所述數(shù)據(jù)包的包頭進行識別,以確定所述包頭是否攜帶有預設的包頭標識的步驟之后,所述方法還包括:

若所述包頭攜帶有預設的包頭標識,則所述第一應用處理器發(fā)送確認消息給所述第二應用處理器,以供所述第二應用處理器繼續(xù)發(fā)送其它數(shù)據(jù)包至所述第一應用處理器。

本發(fā)明提出的數(shù)據(jù)包識別系統(tǒng)及方法,所述數(shù)據(jù)包識別系統(tǒng)包括移動終端,以及通過預設接口與所述移動終端連接的外接設備,所述移動終端包括第一應用處理器、內(nèi)嵌有虛擬用戶識別卡的第一調制解調器和第一射頻模塊,所述外接設備包括第二應用處理器、與實體用戶識別卡連接的第二調制解調器和第二射頻模塊,所述第一應用處理器被喚醒時,接收第二應用處理器通過所述預設接口發(fā)送的數(shù)據(jù)包,并對接收的所述數(shù)據(jù)包的包頭進行識別,以確定所述包頭是否攜帶有預設的包頭標識,若所述包頭未攜帶預設的包頭標識,則發(fā)送重發(fā)消息給所述第二應用處理器,以供所述第二應用處理器重新發(fā)送所述數(shù)據(jù)包至所述第一應用處理器。本方案在移動終端中的第一應用處理器被喚醒時,先對接收到的數(shù)據(jù)包的包頭進行識別,在識別所述包頭未攜帶有預設包頭標識時,通知第二應用處理器重新發(fā)送該數(shù)據(jù)包,即使數(shù)據(jù)包內(nèi)容丟失,第一應用處理器也可以及時通知第二應用處理器重新發(fā)送該數(shù)據(jù)包,及時響應數(shù)據(jù)包,提高了數(shù)據(jù)傳輸?shù)臏蚀_性。

附圖說明

圖1為本發(fā)明一實施例的lte網(wǎng)絡架構的示意圖;

圖2為本發(fā)明實施例中移動終端和外接設備通訊連接的一種通訊連接的實體示意圖;

圖3為本發(fā)明實施例中移動終端和外接設備通訊連接的一種硬件結構示意圖;

圖4為本發(fā)明數(shù)據(jù)包識別方法第一實施例的流程示意圖;

圖5為本發(fā)明對接收的所述數(shù)據(jù)包的包頭進行識別,以確定所述包頭是否攜帶有預設的包頭標識的細化流程示意圖;

圖6為本發(fā)明數(shù)據(jù)包識別方法第四實施例的流程示意圖。

本發(fā)明目的的實現(xiàn)、功能特點及優(yōu)點將結合實施例,參照附圖做說明。

具體實施方式

應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。需要說明的是,在不沖突的情況下,本發(fā)明中的實施例及實施例中的特征可以相互任意結合。

為了對本發(fā)明的技術特征、目的和效果有更加清楚的理解,現(xiàn)對照附圖詳細說明本發(fā)明的具體實施方式。

圖1是本發(fā)明一實施例的lte(longtermevolution,長期演進)網(wǎng)絡架構的示意圖。本發(fā)明一實施例的lte網(wǎng)絡架構包括:一個或多個移動終端(userequipment,ue)100、外接設備200、e-utran(evolvedumtsterrestrialradioaccessnetwork,演進的umts陸地無線接入網(wǎng))(圖中未標號)、演進分組核心(epc)(圖中未標號)、歸屬訂戶服務器(hss)107、網(wǎng)絡(例如,因特網(wǎng))(圖中未標號)以及電路交換系統(tǒng)(圖中未標號)。

e-utran包括演進b節(jié)點(enodeb)101和其它enodeb102。enodeb101提供朝向移動終端100的用戶面和控制面的協(xié)議終接。enodeb101可經(jīng)由x2接口連接到其他enodeb。enodeb101也可稱為基站、基收發(fā)機站、無線電基站、無線電收發(fā)機、收發(fā)機功能、基本服務集、擴展服務集、或其他某個合適的術語。enodeb101為移動終端100提供去往epc的接入點。

enodeb101通過s1接口連接到epc。epc包括移動管理實體(eem)104、其他移動管理實體106、服務網(wǎng)關103,以及分組數(shù)據(jù)網(wǎng)絡(pdn)網(wǎng)關105。移動管理實體104是處理移動終端100與epc之間的信令的控制節(jié)點。移動管理實體104提供承載和連接管理。所有用戶ip分組通過服務網(wǎng)關103來傳遞,服務網(wǎng)關103自身連接到pdn網(wǎng)關105。pdn網(wǎng)關105提供ueip地址分配以及其他功能。pdn網(wǎng)關105連接到網(wǎng)絡,例如,因特網(wǎng)。

電路交換系統(tǒng)包括交互解決方案模塊(iws)108、移動交換中心(msc)109、基站110和移動站111。在一個方面,電路交換系統(tǒng)可以通過iws和mme(mobilitymanagemententity,移動管理實體)與eps(evolvedpacketsystem,演進的分組系統(tǒng))進行通信。

移動終端100通過usb(universalserialbus,通用串行總線)數(shù)據(jù)線與外接設備200通訊連接。

圖2為本發(fā)明移動終端100和外接設備200通訊連接的實體示意圖。

如圖2所示,移動終端100通過usb數(shù)據(jù)線300與外接設備200通訊連接,其中,所述移動終端包括但不限于手機、pc(personalcomputer,個人電腦)或pad(personaldigitalassistant,個人數(shù)字助理),所述外接設備200可選為無線上網(wǎng)卡或數(shù)據(jù)卡。

圖3為本發(fā)明移動終端100和外接設備200通訊連接的結構示意圖。

本發(fā)明實施例的移動終端100通過usb數(shù)據(jù)線300與外接設備200通訊連接,基于移動終端100和外接設備200通訊連接的基礎,移動終端100可支持雙lte。具體地:

移動終端100包括第一處理芯片001,以及與所述第一處理芯片001連接的第一射頻模塊12,其中,第一處理芯片001包括第一應用處理器(applicationprocessor,用ap1表示)10、內(nèi)嵌有虛擬用戶識別卡11a的第一調制解調器11(modem1)、rpm(resourcepowermanager,資源電源管理器)14。

其中,虛擬用戶識別卡11a包括存儲模塊和虛擬片內(nèi)操作系統(tǒng)(virtualchipoperatingsystem,vcos),該存儲模塊可為efs(encryptingfilesystem,加密文件系統(tǒng)),存儲模塊用于存儲虛擬用戶識別卡11a的鑒權數(shù)據(jù)。

外接設備200包括第二處理芯片002,以及與所述第二處理芯片002連接的第二射頻模塊22,其中,第二處理芯片002包括第二應用處理器(用ap2表示)20、與實體用戶識別卡23連接的第二調制解調器(modem2)21,所述實體用戶識別卡23為sim(subscriberidentitymodule,用戶識別模塊)卡。

第一應用處理器10和第二應用處理器20的內(nèi)部框架包括應用層、框架層等,可處理復雜的邏輯操作以及進行任務分配等。在一個實施例中,應用處理器指android操作系統(tǒng),以及基于android操作系統(tǒng)的各種apk(androidpackage,安卓安裝包)。在本發(fā)明的實施例中,第一應用處理器10和第二應用處理器20通過usb數(shù)據(jù)線300實現(xiàn)通訊連接,為用戶提供交互接口,將用戶輸入的操作指令(例如,用戶通過用戶界面輸入的有關啟動視頻通話的操作指令)傳輸給第一調制解調器11或第二調制解調器21,以實現(xiàn)兩個應用處理器之間數(shù)據(jù)的定義與傳遞,例如,進行兩個應用處理器的休眠、喚醒、同步的控制、開關機時芯片啟動順序的控制等。

應當理解的是,在本發(fā)明實施例中,usb數(shù)據(jù)線300復用出兩條數(shù)據(jù)通道,分別用于第一應用處理器10和第二應用處理器20之間用戶數(shù)據(jù)或控制信令數(shù)據(jù)的交互,即第一應用處理器10和第二應用處理器20通過usb傳輸?shù)臄?shù)據(jù)包括用戶數(shù)據(jù)和控制信令數(shù)據(jù)。其中,用戶數(shù)據(jù)包括上網(wǎng)產(chǎn)生的數(shù)據(jù),圖片和聊天信息數(shù)據(jù);控制信令數(shù)據(jù)包括開關機的控制數(shù)據(jù),開關飛行模式的控制數(shù)據(jù),顯示狀態(tài)信號的控制數(shù)據(jù)。由于本發(fā)明實施例中,移動終端100的第一調制解調器11內(nèi)嵌有虛擬用戶識別卡11a,外接設備200第二調制解調器21連接有實體用戶識別卡23,因此,usb數(shù)據(jù)線300不進行sim卡鑒權數(shù)據(jù)的交互。

本發(fā)明中,第一應用處理器10和第二應用處理器20通過otg(on-the-go)技術進行數(shù)據(jù)交互。通過otg技術,移動終端100中的第一調制解調器11可通過虛擬用戶識別卡11a中的sim卡參數(shù)來接入enodeb101,外接設備中的第二調制解調器21可通過實體用戶識別卡23中的sim卡參數(shù)來接入enodeb101,所述sim卡參數(shù)包括但不限于sim卡鑒權數(shù)據(jù)。

第一調制解調器11和第二調制解調器21包含各種網(wǎng)絡交互的網(wǎng)絡制式的協(xié)議棧,協(xié)議棧包含lte(longtermevolution,長期演進)/wcdma(widebandcodedivisionmultipleaccess,寬帶碼分多址)/gsm(globalsystemformobilecommunication,全球移動通信系統(tǒng))/td-scdma(timedivision-synchronouscodedivisionmultipleaccess,同步時分碼分多址)/cdma(codedivisionmultipleaccess,碼分多址)/edge(enhanceddatarateforgsmevolution,強型數(shù)據(jù)速率gsm演進技術)等通訊標準里邊規(guī)定的協(xié)議代碼。移動終端100通過協(xié)議與運營商網(wǎng)絡進行交互,即進行數(shù)據(jù)流量上網(wǎng)、volte(voiceoverlte)打電話或者cs(circuitswitched,電路交換)域打電話。第一調制解調器11和第二調制解調器21還用于對sim卡的管控等等。

在本發(fā)明實施例中,第一射頻模塊12用于將移動終端100傳輸?shù)臄?shù)據(jù)處理后傳給enodeb101(基站網(wǎng)絡),以及用于將enodeb101傳輸?shù)臄?shù)據(jù)處理后傳給移動終端100。第二射頻模塊22用于將外接設備200傳輸?shù)臄?shù)據(jù)處理后傳給enodeb101(基站網(wǎng)絡),以及用于將enodeb101傳輸?shù)臄?shù)據(jù)處理后傳給外接設備200。

第一射頻模塊12和第二射頻模塊22所涉及的無線接入技術可以包括lte、gsm、gprs(generalpacketradioservice,通用分組無線服務)、cdma、edge、wlan(wirelesslocalareanetworks,無線局域網(wǎng))、cdma-2000、td-scdma、wcdma、wifi(wirelessfidelity,無線保真)等等。

本發(fā)明需要說明的是,由于移動終端100的第一調制解調器11內(nèi)嵌有虛擬用戶識別卡11a,外接設備200的第二調制解調器21連接有實體用戶識別卡23,因此,第一調制解調器11和第二調制解調器21相互獨立,第二調制解調器21不喚醒第一調制解調器11。

移動終端100中的虛擬用戶識別卡11a和外接設備200中的實體用戶識別卡23存儲不同的無線通信標準相關聯(lián)的用戶信息。應當理解,目前的移動終端只有一套射頻,移動終端內(nèi)部的兩個用戶識別卡使用該套射頻是分時復用的關系,并不能同時占用。例如,在兩張用戶識別卡全開時,一張卡可以處理gsm通話,另一張卡只能處理4g網(wǎng)絡信息,具體哪個用戶識別卡執(zhí)行何種網(wǎng)絡,不做限定。因此目前的射頻雙卡分時復用這種架構僅做到了lte+gsm(即一張用戶識別卡對應的技術標準為lte,另一張用戶識別卡對應的技術標準為gsm)。

也就是說,現(xiàn)有的移動終端100雖然可以支持雙用戶識別卡,但是移動終端100在注冊網(wǎng)絡的情況下,兩個用戶識別卡支持的是不同技術標準的網(wǎng)絡,一個支持2g或3g,另一個支持4g,會使得移動終端100使用過程中,上網(wǎng)流量速度較慢,因此本發(fā)明中,移動終端100通過usb線300連接外接設備200,由于外接設備200包括第二射頻模塊22和實體用戶識別卡23,且第二射頻模塊22支持4g網(wǎng)絡,因此,移動終端100可通過usb線300與外接設備200交互,從而使得移動終端100具備雙lte功能。

在本實施例中,虛擬用戶識別卡11a和實體用戶識別卡23用于提供移動通信業(yè)務(cs語音業(yè)務、ps數(shù)據(jù)業(yè)務和ps語音業(yè)務)所需的相關數(shù)據(jù),并在其內(nèi)部存儲用戶信息、短消息、執(zhí)行鑒權算法和產(chǎn)生加密密匙等。

實體用戶識別卡23與外接設備200交互時,外接設備200檢測該實體用戶識別卡23存在與否的信號只在開機瞬時產(chǎn)生,當外接設備200開機檢測不到實體用戶識別卡23存在時,在移動終端100的顯示屏中提示“接入用戶識別卡”。外接設備200開機之后,外接設備200和實體用戶識別卡23之間28秒通信一次,完成一些固定的通信檢查(例如,用戶識別卡是否在位等)。

需要說明的是,當虛擬用戶識別卡11a需要進行網(wǎng)絡注冊時,通過開啟的無線保真(wifi)網(wǎng)絡發(fā)送包含業(yè)務菜單數(shù)據(jù)的下載請求至虛擬用戶識別卡11a對應的云端服務器,以從云端服務器獲取虛擬用戶識別卡11a的數(shù)據(jù)信息。當獲取到虛擬用戶識別卡11a的數(shù)據(jù)信息時,將數(shù)據(jù)信息寫入虛擬用戶識別卡11a的存儲模塊中,以實現(xiàn)虛擬用戶識別卡11a的網(wǎng)絡注冊。其中,數(shù)據(jù)信息可以包括:imsi、ki(keyidentifier,鑒權密鑰)、iccid(integratedcircuitcardidentifier)、pin(個人標識號,personalidentificationnumber)、puk(pinunlockingkey)??梢岳斫獾氖?,云端服務器中存儲了各個運營商的卡號資源。

在本發(fā)明的實施例中,虛擬用戶識別卡11a和實體用戶識別卡23承載信息,并且根據(jù)外界請求返回對應卡參數(shù),以及對網(wǎng)絡進行鑒權運算,第一射頻模塊12和第二射頻模塊22所涉及的無線接入技術為lte。當移動終端100通過usb與外接設備200連接時,虛擬用戶識別卡11a可通過移動終端100中的第一調制解調器11支持lte,而實體用戶識別卡23通過第二調制解調器21支持lte,以實現(xiàn)移動終端100連接外接設備200情況下可支持雙lte。

移動終端100中的rpm14用于管控各種資源,包括時鐘資源、總線資源、pmic(powermanagementic,電源管理集成電路,即各個芯片的電壓)、ddr(內(nèi)存分配),以及管理芯片的休眠喚醒的中斷和應用處理器喚醒的截止時間。移動終端100的各個子系統(tǒng),在需要資源時,向rpm14申請資源,各個子系統(tǒng)分別包括第一應用處理器10,第一調制解調器11、pronto(wifi/藍牙、nfc(nearfieldcommunication,近場通信)等)、lpass(lowpoweraudiosubsystem,低功耗音頻子系統(tǒng)),rpm14用來決定移動終端100系統(tǒng)的休眠狀態(tài),具體是,rpm14基于各個子系統(tǒng)的投票機制實現(xiàn),當各個子系統(tǒng)都投休眠票時,rpm14才可以使移動終端100整個系統(tǒng)進行休眠。

在移動終端100的整個系統(tǒng)休眠之后,若是要重新啟動運行,需要喚醒第一應用處理器10以進行數(shù)據(jù)的傳輸交互。

在移動終端100和外接設備200通過usb通訊連接的情況下,喚醒方式包括三種:

1、第一應用處理器10接收到控制信令數(shù)據(jù)時,通過usb數(shù)據(jù)線300傳送探測包給第二應用處理器20,以喚醒第二應用處理器20。

2、外接設備200的第二調制解調器21接收到用戶數(shù)據(jù)時,喚醒第二應用處理器20,由第二應用處理器20通過usb數(shù)據(jù)線300傳送探測包給第一應用處理器10,以喚醒第一應用處理器10。

3、第二調制解調器21周期性查找尋呼請求,以主動激活自己,若接收到尋呼請求,喚醒第二應用處理器20,由第二應用處理器20通過usb數(shù)據(jù)線300發(fā)送探測包給第一應用處理器10,以喚醒第二應用處理器20。

此外,第二調制解調器21還可以定期喚醒自己,以在移動終端100進行位置更新時,跟基站進行握手交互,此時不需要喚醒第一應用處理器10。

基于上述lte網(wǎng)絡的架構圖、以及移動終端100和外接設備200通訊連接的結構示意圖,提出本發(fā)明的各個實施例。

參照圖3,本實施例提出一種數(shù)據(jù)包識別系統(tǒng),所述數(shù)據(jù)包識別系統(tǒng)包括移動終端100,以及通過預設接口與所述移動終端100連接的外接設備200,所述移動終端100包括第一應用處理器10、內(nèi)嵌有虛擬用戶識別卡11a的第一調制解調器11和第一射頻模塊12,所述外接設備200包括第二應用處理器20、與實體用戶識別卡23連接的第二調制解調器21和第二射頻模塊22;

所述第一應用處理器10,用于被喚醒時,接收第二應用處理器20通過所述預設接口發(fā)送的數(shù)據(jù)包;

對接收的所述數(shù)據(jù)包的包頭進行識別,以確定所述包頭是否攜帶有預設的包頭標識;

若所述包頭未攜帶預設的包頭標識,則發(fā)送重發(fā)消息給所述第二應用處理器20,以供所述第二應用處理器20重新發(fā)送所述數(shù)據(jù)包至所述第一應用處理器10。

在本實施例中,所述第一應用處理器10被喚醒,是通過預設接口接收第二應用處理器20發(fā)送的探測包以實現(xiàn)喚醒的。后續(xù),第一應用處理器10對數(shù)據(jù)包的識別,也是對通過預設接口接收到的數(shù)據(jù)包進行識別。其中,所述預設接口為usb接口。

首先,需要說明的是,在移動終端100和外接設備200都休眠之后,若外接設備200通過第二射頻模塊22接收到外部信號,外接設備200的第二射頻模塊22將外部信號傳輸至第二調制解調器21中,使得第二調制解調器21喚醒,第二調制解調器21喚醒之后,再喚醒第二應用處理器20,從而實現(xiàn)外接設備200的喚醒。在外接設備200喚醒之后,外接設備200的第二應用處理器20會通過usb數(shù)據(jù)線300發(fā)送探測包以喚醒移動終端100中的第一應用處理器10,對于外接設備200的第二應用處理器20而言,當發(fā)送探測包給移動終端100的第一應用處理器10之后,第二應用處理器20認為第一應用處理器10已經(jīng)被喚醒,此時,第二應用處理器20會緊接著發(fā)送用戶數(shù)據(jù)或控制信令的數(shù)據(jù)包給移動終端100的第一應用處理器10,以進行后續(xù)的數(shù)據(jù)交互過程。

但是實際過程中,當?shù)谝粦锰幚砥?0發(fā)送探測包給第一應用處理器10之后,第一應用處理器10并沒有立刻被喚醒,而是需要一段時間從休眠狀態(tài)切換為喚醒狀態(tài)。此時,若是第二應用處理器20緊接著發(fā)送數(shù)據(jù)包,由于第一應用處理器10還未完全喚醒,會導致第一應用處理器10接收到的數(shù)據(jù)包中,前面部分內(nèi)容丟失,造成接收到的數(shù)據(jù)包是不完整的數(shù)據(jù)包,也就是殘包。

為更好理解,舉例如下:外接設備200的第二應用處理器20通過usb數(shù)據(jù)線300發(fā)送數(shù)據(jù)包給第一應用處理器10,該數(shù)據(jù)包為512個字節(jié),在前36個字節(jié)的發(fā)送過程中,由于移動終端100的第一應用處理器10還沒完全被喚醒,在第37個字節(jié)才真正喚醒,此時,第一應用處理器10無法接收到前36個字節(jié),那么移動終端100接收到的數(shù)據(jù)包就是殘包,由于移動終端100根本就無法識別該數(shù)據(jù)包,導致移動終端100也無法響應該數(shù)據(jù)包,造成外接設備200遲遲得不到回復,導致數(shù)據(jù)傳輸不準確。

因此,本實施例中,當?shù)谝粦锰幚砥?0被喚醒之后,若接收到第二應用處理器20通過所述預設接口發(fā)送的數(shù)據(jù)包,先對接收的所述數(shù)據(jù)包的包頭進行識別,以確定所述包頭是否攜帶有預設的包頭標識。應當理解,包頭中攜帶有多個字節(jié),具體的個數(shù)不做限定。

本實施例中,所述第一應用處理器10對接收到的數(shù)據(jù)包的包頭進行識別,具體為解析出所述數(shù)據(jù)包,然后對解析出的數(shù)據(jù)包的包頭進行識別,以確定所述包頭是否攜帶有預設的包頭標識,具體的識別方式在下文實施例中詳述。

當?shù)谝粦锰幚砥?0識別出包頭未攜帶預設的包頭標識時,發(fā)送重發(fā)消息給所述第二應用處理器20,以供所述第二應用處理器20重新發(fā)送所述數(shù)據(jù)包至所述第一應用處理器10。

即,第一應用處理器10識別出包頭未攜帶預設的包頭標識時,說明當前接收到的數(shù)據(jù)包的已經(jīng)發(fā)生了內(nèi)容丟失,無法對該數(shù)據(jù)包進行識別,也無法反饋響應的數(shù)據(jù)包,因此,所述第一應用處理器10通過所述usb數(shù)據(jù)線300發(fā)送重發(fā)消息給所述第二應用處理器20,以供所述第二應用處理器20重新發(fā)送所述數(shù)據(jù)包至所述第一應用處理器10,例如,第一應用處理器10發(fā)送應答消息“err”給第二應用處理器20,告知第二應用處理器20之前發(fā)送的數(shù)據(jù)包有誤,以便第二應用處理器20重新發(fā)送該數(shù)據(jù)包。本實施例中,所述重新消息的形式不做限定,可以是一個短消息如“err”或“retry”,也可以是一個預設字段,如“0001”,具體根據(jù)實際情況設定。

本實施例中,相當于是當?shù)谝粦锰幚砥?0識別出數(shù)據(jù)包為殘包時,即檢測到數(shù)據(jù)包中沒有攜帶包頭標記,此時,會給第二應用處理器20反饋一個應答err,第一應用處理器10通過usb數(shù)據(jù)線300將應答err傳送給外接設備200的第二應用處理器20,此時,第二應用處理器20基于接收到的應答err,通過usb數(shù)據(jù)線300重新發(fā)送該數(shù)據(jù)包給第一應用處理器10,以完成數(shù)據(jù)的交互。

本實施例提出的數(shù)據(jù)包識別系統(tǒng),所述數(shù)據(jù)包識別系統(tǒng)包括移動終端,以及通過預設接口與所述移動終端連接的外接設備,所述移動終端包括第一應用處理器、內(nèi)嵌有虛擬用戶識別卡的第一調制解調器和第一射頻模塊,所述外接設備包括第二應用處理器、與實體用戶識別卡連接的第二調制解調器和第二射頻模塊,所述第一應用處理器被喚醒時,接收第二應用處理器通過所述預設接口發(fā)送的數(shù)據(jù)包,并對接收的所述數(shù)據(jù)包的包頭進行識別,以確定所述包頭是否攜帶有預設的包頭標識,若所述包頭未攜帶預設的包頭標識,則發(fā)送重發(fā)消息給所述第二應用處理器,以供所述第二應用處理器重新發(fā)送所述數(shù)據(jù)包至所述第一應用處理器。本方案在移動終端中的第一應用處理器被喚醒時,先對接收到的數(shù)據(jù)包的包頭進行識別,在識別所述包頭未攜帶有預設包頭標識時,通知第二應用處理器重新發(fā)送該數(shù)據(jù)包,即使數(shù)據(jù)包內(nèi)容丟失,第一應用處理器也可以及時通知第二應用處理器重新發(fā)送該數(shù)據(jù)包,及時響應數(shù)據(jù)包,提高了數(shù)據(jù)傳輸?shù)臏蚀_性。

進一步地,提出本發(fā)明數(shù)據(jù)包識別系統(tǒng)第二實施例。

數(shù)據(jù)包識別系統(tǒng)第二實施例與數(shù)據(jù)包識別系統(tǒng)第一實施例的區(qū)別在于,所述第一應用處理器10對接收的所述數(shù)據(jù)包的包頭進行識別,以確定所述包頭是否攜帶有預設的包頭標識具體包括:

所述第一應用處理器10解析所述包頭的第一字節(jié),以確定所述包頭的第一字節(jié)是否為預設字段;及/或計算所述包頭的第二字節(jié)和第三字節(jié)的長度,并判斷所述長度是否滿足預設條件;

若所述包頭的第一字節(jié)為預設字段,及/或所述長度滿足預設條件,則確定所述包頭攜帶有預設的包頭標識。

在本實施例中,所述預設條件優(yōu)選為:所述長度為所述數(shù)據(jù)包的長度與預設值的差值。即,計算所述包頭的第二字節(jié)和第三字節(jié)的長度之后,判斷所述長度是否滿足預設條件,具體是:計算數(shù)據(jù)包的長度,然后將數(shù)據(jù)包的長度減去預設值,以得到所述數(shù)據(jù)包的長度與預設值的差值,其中,所述預設值不做限定,例如為1,在得到差值之后,再將第二字節(jié)和第三字節(jié)的長度與所述差值進行比較,以確定所述長度是否與所述差值相等,若相等,說明第二字節(jié)和第三字節(jié)的長度滿足條件。

一般情況下,用戶數(shù)據(jù)或控制信令數(shù)據(jù)對應的數(shù)據(jù)包的首字節(jié)為預設字段,所述預設字段不做限定,例如字段“0x01”,且第2、3字節(jié)共同表征一個長度,值為整個數(shù)據(jù)包的長度減預設值,例如預設值為1。因此,第一應用處理器10在對接收的所述數(shù)據(jù)包的包頭進行識別,以確定所述包頭是否攜帶有預設的包頭標識,實際上就是確定包頭的首字節(jié)是否為預設字段,以及第2、3字節(jié)的長度是否為整個數(shù)據(jù)包的長度減預設值。若識別出包頭的首字節(jié)為預設字段0x01,且第2、3字節(jié)的值為整個數(shù)據(jù)包的長度減1,此時,第一應用處理器10認為數(shù)據(jù)包中攜帶有包頭標記,認為該包是有效的數(shù)據(jù)包。

本實施例中,包括三種實施方式:

1)方式一、解析所述包頭的第一字節(jié),以確定所述包頭的第一字節(jié)是否為預設字段;若所述包頭的第一字節(jié)為預設字段,則確定所述包頭攜帶有預設的包頭標識。

2)方式二、計算所述包頭的第二字節(jié)和第三字節(jié)的長度,并判斷所述長度是否滿足預設條件;若所述長度滿足預設條件,則確定所述包頭攜帶有預設的包頭標識。

3)方式三、解析所述包頭的第一字節(jié),以確定所述包頭的第一字節(jié)是否為預設字段;以及計算所述包頭的第二字節(jié)和第三字節(jié)的長度,并判斷所述長度是否滿足預設條件;若所述包頭的第一字節(jié)為預設字段,且所述長度滿足預設條件,則確定所述包頭攜帶有預設的包頭標識。

本發(fā)明實施例中,可以根據(jù)具體需要設置上述三種方式的任意一種,但是為了提高數(shù)據(jù)包識別的準確性,優(yōu)選采用方式三。

在采用方式三的情況下,所述第一應用處理器10接收到數(shù)據(jù)包之后,可采用多線程分析數(shù)據(jù)包的包頭,即通過一個線程解析包頭的第一字節(jié),以確定所述包頭的第一字節(jié)是否為預設字段。同時,通過另一個線程計算所述包頭的第二字節(jié)和第三字節(jié)的長度,并判斷所述長度是否滿足預設條件,當所述包頭的第一字節(jié)為預設字段,且所述長度滿足預設條件,才確定所述包頭攜帶有預設的包頭標識。

應當理解,采用多線程對包頭中的各個字節(jié)進行并行分析,無須一個個先后分析,縮短了分析的時間,提高了分析的效率。

或者,所述第一應用處理器10接收到數(shù)據(jù)包之后,先解析包頭的第一節(jié)點,以確定所述包頭的第一字節(jié)是否為預設字段,當所述包頭的第一字節(jié)為預設字段時,才計算所述包頭的第二字節(jié)和第三字節(jié)的長度,并判斷所述長度是否滿足預設條件,并在所述長度滿足預設條件,則確定所述包頭攜帶有預設的包頭標識。需要注意的是,當所述包頭的第一字節(jié)不為預設字段,此時,就無須再判斷第二字節(jié)和第三字節(jié)的長度,直接認定包頭中未攜帶包頭標識即可。

可以理解,通過這種前后判斷的方式,可以在第一字節(jié)符合要求的情況下再繼續(xù)判斷第二字節(jié)和第三字節(jié),防止第一字節(jié)不滿足要求的情況下,還花費資源去進行判斷,從而提高了數(shù)據(jù)包分析的智能性,也避免了資源的浪費。

進一步地,提出本發(fā)明數(shù)據(jù)包識別系統(tǒng)第三實施例。

數(shù)據(jù)包識別系統(tǒng)第三實施例與數(shù)據(jù)包識別系統(tǒng)第一實施例的區(qū)別在于,所述第一應用處理器10,還用于識別所述數(shù)據(jù)包的長度;

在所述數(shù)據(jù)包的長度大于預設長度值,才對接收的所述數(shù)據(jù)包的包頭進行識別。

在本實施例中,所述第一應用處理器10被喚醒后接收到數(shù)據(jù)包時,先識別該數(shù)據(jù)包的長度,然后獲取預設長度值,將識別的數(shù)據(jù)包的長度與預設長度值進行比對,以確定所述數(shù)據(jù)包的長度是否大于預設長度值,若所述數(shù)據(jù)包的長度大于預設長度值,所述第一應用處理器10才對接收的所述數(shù)據(jù)包的包頭進行識別,若是識別出所述數(shù)據(jù)包的長度小于或等于預設長度值,此時可不對接收的所述數(shù)據(jù)包的包頭進行識別。

此處需要說明的是,用戶數(shù)據(jù)或控制信令數(shù)據(jù)對應的數(shù)據(jù)包(data)的長度一般大于6個字節(jié)對應的長度,而應答消息對應的數(shù)據(jù)包(ack)的長度一般是4或者6個字節(jié)。

因此,當?shù)谝粦锰幚砥?0被喚醒后接收到數(shù)據(jù)包時,先通過包長度判斷該數(shù)據(jù)包是ack還是data,若檢測出該數(shù)據(jù)包沒有大于6字節(jié)對應的長度,即可確認該數(shù)據(jù)包是ack,此時說明外接設備200的第二應用處理器20還沒發(fā)送data,因此不會出現(xiàn)上述的丟包情況,當檢測出該數(shù)據(jù)包大于6個字節(jié)對應的長度時,才會對該數(shù)據(jù)包的包頭進行解析。

可以理解,本實施例中,在接收到數(shù)據(jù)包之后,第一應用處理器10先對數(shù)據(jù)包的長度進行解析,以確定該數(shù)據(jù)包的類型,從而決定是否對該數(shù)據(jù)包的包頭進行解析,防止所有的數(shù)據(jù)包都進行包頭解析,從而提高了數(shù)據(jù)包識別的智能性。

進一步地,提出本發(fā)明數(shù)據(jù)包識別系統(tǒng)第四實施例。

數(shù)據(jù)包識別系統(tǒng)第四實施例與數(shù)據(jù)包識別系統(tǒng)第一至第三實施例的區(qū)別在于,所述第一應用處理器10,還用于若所述包頭攜帶有預設的包頭標識,則發(fā)送確認消息給所述第二應用處理器20,以供所述第二應用處理器20繼續(xù)發(fā)送其它數(shù)據(jù)包至所述第一應用處理器10。

即本實施例中,第一應用處理器10若識別出包頭并沒有上述的包頭標識,此時,認為該數(shù)據(jù)包是殘包,在檢驗出該數(shù)據(jù)包為殘包之后,會采用數(shù)據(jù)應答機制進行反饋,以供第二應用處理器20根據(jù)第一應用處理器10反饋的數(shù)據(jù)應答機制決定繼續(xù)發(fā)包,還是重新發(fā)送數(shù)據(jù)包,具體地:

當?shù)谝粦锰幚砥?0識別出數(shù)據(jù)包為有效的數(shù)據(jù)包時,也就是檢測出數(shù)據(jù)包中攜帶有包頭標記時,此時,會給第二應用處理器20反饋一個應答ok,以通知第二應用處理器20當前接收到的數(shù)據(jù)包是完整的數(shù)據(jù)包,具體地:第一應用處理器10通過usb數(shù)據(jù)線300將應答ok傳送給外接設備200的第二應用處理器20,此時,第二應用處理器20根據(jù)第一應用處理器10反饋的應答ok,通過usb數(shù)據(jù)線300繼續(xù)發(fā)送其它的數(shù)據(jù)包給第一應用處理器10,以完成數(shù)據(jù)包發(fā)送操作。

本實施例中,在識別出所述包頭攜帶有預設的包頭標識,則發(fā)送確認消息給所述第二應用處理器20,以供所述第二應用處理器20繼續(xù)發(fā)送其它數(shù)據(jù)包至所述第一應用處理器10,從而完成數(shù)據(jù)的傳輸過程。

本發(fā)明進一步提供一種數(shù)據(jù)包識別方法。

參照圖4,圖4為本發(fā)明數(shù)據(jù)包識別方法較佳實施例的流程示意圖。

本實施例提出一種數(shù)據(jù)包識別方法,在本實施例中,提供了數(shù)據(jù)包識別方法的實施例,需要說明的是,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。

本發(fā)明中,數(shù)據(jù)包識別方法應用于移動終端100以及通過預設接口與移動終端100連接的外接設備200,所述移動終端100包括第一應用處理器10、內(nèi)嵌有虛擬用戶識別卡11a的第一調制解調器11和第一射頻模塊12,所述外接設備200包括第二應用處理器20、與實體用戶識別卡23連接的第二調制解調器21和第二射頻模塊22,所述方法包括:

步驟s10,第一應用處理器10被喚醒時,接收第二應用處理器20通過所述預設接口發(fā)送的數(shù)據(jù)包;

步驟s20,對接收的所述數(shù)據(jù)包的包頭進行識別,以確定所述包頭是否攜帶有預設的包頭標識;

步驟s30,若所述包頭未攜帶預設的包頭標識,則發(fā)送重發(fā)消息給所述第二應用處理器20,以供所述第二應用處理器20重新發(fā)送所述數(shù)據(jù)包至所述第一應用處理器10。

在本實施例中,所述第一應用處理器10被喚醒,是通過預設接口接收第二應用處理器20發(fā)送的探測包以實現(xiàn)喚醒的。后續(xù),第一應用處理器10對數(shù)據(jù)包的識別,也是對通過預設接口接收到的數(shù)據(jù)包進行識別。其中,所述預設接口為usb接口。

首先,需要說明的是,在移動終端100和外接設備200都休眠之后,若外接設備200通過第二射頻模塊22接收到外部信號,外接設備200的第二射頻模塊22將外部信號傳輸至第二調制解調器21中,使得第二調制解調器21喚醒,第二調制解調器21喚醒之后,再喚醒第二應用處理器20,從而實現(xiàn)外接設備200的喚醒。在外接設備200喚醒之后,外接設備200的第二應用處理器20會通過usb數(shù)據(jù)線300發(fā)送探測包以喚醒移動終端100中的第一應用處理器10,對于外接設備200的第二應用處理器20而言,當發(fā)送探測包給移動終端100的第一應用處理器10之后,第二應用處理器20認為第一應用處理器10已經(jīng)被喚醒,此時,第二應用處理器20會緊接著發(fā)送用戶數(shù)據(jù)或控制信令的數(shù)據(jù)包給移動終端100的第一應用處理器10,以進行后續(xù)的數(shù)據(jù)交互過程。

但是實際過程中,當?shù)谝粦锰幚砥?0發(fā)送探測包給第一應用處理器10之后,第一應用處理器10并沒有立刻被喚醒,而是需要一段時間從休眠狀態(tài)切換為喚醒狀態(tài)。此時,若是第二應用處理器20緊接著發(fā)送數(shù)據(jù)包,由于第一應用處理器10還未完全喚醒,會導致第一應用處理器10接收到的數(shù)據(jù)包中,前面部分內(nèi)容丟失,造成接收到的數(shù)據(jù)包是不完整的數(shù)據(jù)包,也就是殘包。

為更好理解,舉例如下:外接設備200的第二應用處理器20通過usb數(shù)據(jù)線300發(fā)送數(shù)據(jù)包給第一應用處理器10,該數(shù)據(jù)包為512個字節(jié),在前36個字節(jié)的發(fā)送過程中,由于移動終端100的第一應用處理器10還沒完全被喚醒,在第37個字節(jié)才真正喚醒,此時,第一應用處理器10無法接收到前36個字節(jié),那么移動終端100接收到的數(shù)據(jù)包就是殘包,由于移動終端100根本就無法識別該數(shù)據(jù)包,導致移動終端100也無法響應該數(shù)據(jù)包,造成外接設備200遲遲得不到回復,導致數(shù)據(jù)傳輸不準確。

因此,本實施例中,當?shù)谝粦锰幚砥?0被喚醒之后,若接收到第二應用處理器20通過所述預設接口發(fā)送的數(shù)據(jù)包,先對接收的所述數(shù)據(jù)包的包頭進行識別,以確定所述包頭是否攜帶有預設的包頭標識。應當理解,包頭中攜帶有多個字節(jié),具體的個數(shù)不做限定。

本實施例中,所述第一應用處理器10對接收到的數(shù)據(jù)包的包頭進行識別,具體為解析出所述數(shù)據(jù)包,然后對解析出的數(shù)據(jù)包的包頭進行識別,以確定所述包頭是否攜帶有預設的包頭標識,具體的識別方式在下文實施例中詳述。

當?shù)谝粦锰幚砥?0識別出包頭未攜帶預設的包頭標識時,發(fā)送重發(fā)消息給所述第二應用處理器20,以供所述第二應用處理器20重新發(fā)送所述數(shù)據(jù)包至所述第一應用處理器10。

即,第一應用處理器10識別出包頭未攜帶預設的包頭標識時,說明當前接收到的數(shù)據(jù)包的已經(jīng)發(fā)生了內(nèi)容丟失,無法對該數(shù)據(jù)包進行識別,也無法反饋響應的數(shù)據(jù)包,因此,所述第一應用處理器10通過所述usb數(shù)據(jù)線300發(fā)送重發(fā)消息給所述第二應用處理器20,以供所述第二應用處理器20重新發(fā)送所述數(shù)據(jù)包至所述第一應用處理器10,例如,第一應用處理器10發(fā)送應答消息“err”給第二應用處理器20,告知第二應用處理器20之前發(fā)送的數(shù)據(jù)包有誤,以便第二應用處理器20重新發(fā)送該數(shù)據(jù)包。本實施例中,所述重新消息的形式不做限定,可以是一個短消息如“err”或“retry”,也可以是一個預設字段,如“0001”,具體根據(jù)實際情況設定。

本實施例中,相當于是當?shù)谝粦锰幚砥?0識別出數(shù)據(jù)包為殘包時,即檢測到數(shù)據(jù)包中沒有攜帶包頭標記,此時,會給第二應用處理器20反饋一個應答err,第一應用處理器10通過usb數(shù)據(jù)線300將應答err傳送給外接設備200的第二應用處理器20,此時,第二應用處理器20基于接收到的應答err,通過usb數(shù)據(jù)線300重新發(fā)送該數(shù)據(jù)包給第一應用處理器10,以完成數(shù)據(jù)的交互。

本實施例提出的數(shù)據(jù)包識別方法,第一應用處理器被喚醒時,接收第二應用處理器通過所述預設接口發(fā)送的數(shù)據(jù)包,并對接收的所述數(shù)據(jù)包的包頭進行識別,以確定所述包頭是否攜帶有預設的包頭標識,若所述包頭未攜帶預設的包頭標識,則發(fā)送重發(fā)消息給所述第二應用處理器,以供所述第二應用處理器重新發(fā)送所述數(shù)據(jù)包至所述第一應用處理器。本方案在移動終端中的第一應用處理器被喚醒時,先對接收到的數(shù)據(jù)包的包頭進行識別,在識別所述包頭未攜帶有預設包頭標識時,通知第二應用處理器重新發(fā)送該數(shù)據(jù)包,即使數(shù)據(jù)包內(nèi)容丟失,第一應用處理器也可以及時通知第二應用處理器重新發(fā)送該數(shù)據(jù)包,及時響應數(shù)據(jù)包,提高了數(shù)據(jù)傳輸?shù)臏蚀_性。

進一步地,提出本發(fā)明數(shù)據(jù)包識別方法第二實施例。

數(shù)據(jù)包識別方法第二實施例與數(shù)據(jù)包識別方法第一實施例的區(qū)別在于,參照圖5,所述步驟s20包括:

步驟s21,所述第一應用處理10器解析所述包頭的第一字節(jié),以確定所述包頭的第一字節(jié)是否為預設字段;及/或計算所述包頭的第二字節(jié)和第三字節(jié)的長度,并判斷所述長度是否滿足預設條件;

步驟s22,若所述包頭的第一字節(jié)為預設字段,及/或所述長度滿足預設條件,則確定所述包頭攜帶有預設的包頭標識。

在本實施例中,所述預設條件優(yōu)選為:所述長度為所述數(shù)據(jù)包的長度與預設值的差值。即,計算所述包頭的第二字節(jié)和第三字節(jié)的長度之后,判斷所述長度是否滿足預設條件,具體是:計算數(shù)據(jù)包的長度,然后將數(shù)據(jù)包的長度減去預設值,以得到所述數(shù)據(jù)包的長度與預設值的差值,其中,所述預設值不做限定,例如為1,在得到差值之后,再將第二字節(jié)和第三字節(jié)的長度與所述差值進行比較,以確定所述長度是否與所述差值相等,若相等,說明第二字節(jié)和第三字節(jié)的長度滿足條件。

一般情況下,用戶數(shù)據(jù)或控制信令數(shù)據(jù)對應的數(shù)據(jù)包的首字節(jié)為預設字段,所述預設字段不做限定,例如字段“0x01”,且第2、3字節(jié)共同表征一個長度,值為整個數(shù)據(jù)包的長度減預設值,例如預設值為1。因此,第一應用處理器10在對接收的所述數(shù)據(jù)包的包頭進行識別,以確定所述包頭是否攜帶有預設的包頭標識,實際上就是確定包頭的首字節(jié)是否為預設字段,以及第2、3字節(jié)的長度是否為整個數(shù)據(jù)包的長度減預設值。若識別出包頭的首字節(jié)為預設字段0x01,且第2、3字節(jié)的值為整個數(shù)據(jù)包的長度減1,此時,第一應用處理器10認為數(shù)據(jù)包中攜帶有包頭標記,認為該包是有效的數(shù)據(jù)包。

本實施例中,包括三種實施方式:

1)方式一、解析所述包頭的第一字節(jié),以確定所述包頭的第一字節(jié)是否為預設字段;若所述包頭的第一字節(jié)為預設字段,則確定所述包頭攜帶有預設的包頭標識。

2)方式二、計算所述包頭的第二字節(jié)和第三字節(jié)的長度,并判斷所述長度是否滿足預設條件;若所述長度滿足預設條件,則確定所述包頭攜帶有預設的包頭標識。

3)方式三、解析所述包頭的第一字節(jié),以確定所述包頭的第一字節(jié)是否為預設字段;以及計算所述包頭的第二字節(jié)和第三字節(jié)的長度,并判斷所述長度是否滿足預設條件;若所述包頭的第一字節(jié)為預設字段,且所述長度滿足預設條件,則確定所述包頭攜帶有預設的包頭標識。

本發(fā)明實施例中,可以根據(jù)具體需要設置上述三種方式的任意一種,但是為了提高數(shù)據(jù)包識別的準確性,優(yōu)選采用方式三。

在采用方式三的情況下,所述第一應用處理器10接收到數(shù)據(jù)包之后,可采用多線程分析數(shù)據(jù)包的包頭,即通過一個線程解析包頭的第一字節(jié),以確定所述包頭的第一字節(jié)是否為預設字段。同時,通過另一個線程計算所述包頭的第二字節(jié)和第三字節(jié)的長度,并判斷所述長度是否滿足預設條件,當所述包頭的第一字節(jié)為預設字段,且所述長度滿足預設條件,才確定所述包頭攜帶有預設的包頭標識。

應當理解,采用多線程對包頭中的各個字節(jié)進行并行分析,無須一個個先后分析,縮短了分析的時間,提高了分析的效率。

或者,所述第一應用處理器10接收到數(shù)據(jù)包之后,先解析包頭的第一節(jié)點,以確定所述包頭的第一字節(jié)是否為預設字段,當所述包頭的第一字節(jié)為預設字段時,才計算所述包頭的第二字節(jié)和第三字節(jié)的長度,并判斷所述長度是否滿足預設條件,并在所述長度滿足預設條件,則確定所述包頭攜帶有預設的包頭標識。需要注意的是,當所述包頭的第一字節(jié)不為預設字段,此時,就無須再判斷第二字節(jié)和第三字節(jié)的長度,直接認定包頭中未攜帶包頭標識即可。

可以理解,通過這種前后判斷的方式,可以在第一字節(jié)符合要求的情況下再繼續(xù)判斷第二字節(jié)和第三字節(jié),防止第一字節(jié)不滿足要求的情況下,還花費資源去進行判斷,從而提高了數(shù)據(jù)包分析的智能性,也避免了資源的浪費。

進一步地,提出本發(fā)明數(shù)據(jù)包識別方法第三實施例。

數(shù)據(jù)包識別方法第三實施例與數(shù)據(jù)包識別方法第一實施例的區(qū)別在于,所述步驟s20之前,所述方法還包括:

步驟a,所述第一應用處理器10識別所述數(shù)據(jù)包的長度;

步驟b,在所述數(shù)據(jù)包的長度大于預設長度值,才執(zhí)行所述對接收的所述數(shù)據(jù)包的包頭進行識別的步驟。

在本實施例中,所述第一應用處理器10被喚醒后接收到數(shù)據(jù)包時,先識別該數(shù)據(jù)包的長度,然后獲取預設長度值,將識別的數(shù)據(jù)包的長度與預設長度值進行比對,以確定所述數(shù)據(jù)包的長度是否大于預設長度值,若所述數(shù)據(jù)包的長度大于預設長度值,所述第一應用處理器10才對接收的所述數(shù)據(jù)包的包頭進行識別,若是識別出所述數(shù)據(jù)包的長度小于或等于預設長度值,此時可不對接收的所述數(shù)據(jù)包的包頭進行識別。

此處需要說明的是,用戶數(shù)據(jù)或控制信令數(shù)據(jù)對應的數(shù)據(jù)包(data)的長度一般大于6個字節(jié)對應的長度,而應答消息對應的數(shù)據(jù)包(ack)的長度一般是4或者6個字節(jié)。

因此,當?shù)谝粦锰幚砥?0被喚醒后接收到數(shù)據(jù)包時,先通過包長度判斷該數(shù)據(jù)包是ack還是data,若檢測出該數(shù)據(jù)包沒有大于6字節(jié)對應的長度,即可確認該數(shù)據(jù)包是ack,此時說明外接設備200的第二應用處理器20還沒發(fā)送data,因此不會出現(xiàn)上述的丟包情況,當檢測出該數(shù)據(jù)包大于6個字節(jié)對應的長度時,才會對該數(shù)據(jù)包的包頭進行解析。

可以理解,本實施例中,在接收到數(shù)據(jù)包之后,第一應用處理器10先對數(shù)據(jù)包的長度進行解析,以確定該數(shù)據(jù)包的類型,從而決定是否對該數(shù)據(jù)包的包頭進行解析,防止所有的數(shù)據(jù)包都進行包頭解析,從而提高了數(shù)據(jù)包識別的智能性。

進一步地,提出本發(fā)明數(shù)據(jù)包識別方法第四實施例。

數(shù)據(jù)包識別方法第四實施例與數(shù)據(jù)包識別方法第一至第三實施例的區(qū)別在于,參照圖6,所述步驟s20之后,所述方法還包括:

步驟s40,若所述包頭攜帶有預設的包頭標識,則所述第一應用處理器10發(fā)送確認消息給所述第二應用處理器20,以供所述第二應用處理器20繼續(xù)發(fā)送其它數(shù)據(jù)包至所述第一應用處理器10。

即本實施例中,第一應用處理器10若識別出包頭并沒有上述的包頭標識,此時,認為該數(shù)據(jù)包是殘包,在檢驗出該數(shù)據(jù)包為殘包之后,會采用數(shù)據(jù)應答機制進行反饋,以供第二應用處理器20根據(jù)第一應用處理器10反饋的數(shù)據(jù)應答機制決定繼續(xù)發(fā)包,還是重新發(fā)送數(shù)據(jù)包,具體地:

當?shù)谝粦锰幚砥?0識別出數(shù)據(jù)包為有效的數(shù)據(jù)包時,也就是檢測出數(shù)據(jù)包中攜帶有包頭標記時,此時,會給第二應用處理器20反饋一個應答ok,以通知第二應用處理器20當前接收到的數(shù)據(jù)包是完整的數(shù)據(jù)包,具體地:第一應用處理器10通過usb數(shù)據(jù)線300將應答ok傳送給外接設備200的第二應用處理器20,此時,第二應用處理器20根據(jù)第一應用處理器10反饋的應答ok,通過usb數(shù)據(jù)線300繼續(xù)發(fā)送其它的數(shù)據(jù)包給第一應用處理器10,以完成數(shù)據(jù)包發(fā)送操作。

本實施例中,在識別出所述包頭攜帶有預設的包頭標識,則發(fā)送確認消息給所述第二應用處理器20,以供所述第二應用處理器20繼續(xù)發(fā)送其它數(shù)據(jù)包至所述第一應用處理器10,從而完成數(shù)據(jù)的傳輸過程。

需要說明的是,在本文中,術語“包括”、“包含”或者其任何其它變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者系統(tǒng)不僅包括那些要素,而且還包括沒有明確列出的其它要素,或者是還包括為這種過程、方法、物品或者系統(tǒng)所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括該要素的過程、方法、物品或者系統(tǒng)中還存在另外的相同要素。

上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。

通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到上述實施例方法可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可以通過硬件,但很多情況下前者是更佳的實施方式。基于這樣的理解,本發(fā)明的技術方案本質上或者說對現(xiàn)有技術做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(如rom/ram、磁碟、光盤)中,包括若干指令用以使得一臺終端設備(可以是手機,計算機,服務器,空調器,或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例所述的方法。

以上僅為本發(fā)明的優(yōu)選實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結構或等效流程變換,或直接或間接運用在其它相關的技術領域,均同理包括在本發(fā)明的專利保護范圍內(nèi)。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
应用必备| 务川| 嘉峪关市| 临江市| 奉新县| 晋州市| 翁牛特旗| 千阳县| 八宿县| 平泉县| 上杭县| 瓮安县| 泗水县| 正宁县| 屏边| 丁青县| 许昌市| 磐石市| 鹤岗市| 缙云县| 新竹市| 兰西县| 上杭县| 巧家县| 会理县| 高唐县| 枣庄市| 西贡区| 玛纳斯县| 泸溪县| 察隅县| 灯塔市| 女性| 偏关县| 吉安市| 宜章县| 和静县| 英吉沙县| 九寨沟县| 双柏县| 台中市|