本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種移動(dòng)終端及數(shù)據(jù)包識(shí)別方法。
背景技術(shù):
隨著移動(dòng)通信技術(shù)的發(fā)展,越來(lái)越多的移動(dòng)終端如智能手機(jī)具有雙卡雙通的功能,使得用戶在實(shí)現(xiàn)語(yǔ)音業(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,長(zhǎng)期演進(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)終端可內(nèi)置兩個(gè)處理芯片,每個(gè)處理芯片對(duì)應(yīng)一個(gè)調(diào)制解調(diào)器,以使移動(dòng)終端的兩張sim卡連接不同的調(diào)制解調(diào)器,從而實(shí)現(xiàn)雙lte通信功能。但是,當(dāng)移動(dòng)終端內(nèi)置兩個(gè)處理芯片時(shí),如果第一個(gè)處理芯片還未喚醒,第二個(gè)處理芯片就發(fā)送數(shù)據(jù)包,由于第一個(gè)處理芯片還沒完全喚醒,數(shù)據(jù)包前面發(fā)送的內(nèi)容會(huì)丟失,那么第一個(gè)處理芯片接收到的數(shù)據(jù)包為殘包,導(dǎo)致第一個(gè)處理芯片無(wú)法響應(yīng)該數(shù)據(jù)包。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的主要目的在于提出一種移動(dòng)終端及數(shù)據(jù)包識(shí)別方法,旨在解決數(shù)據(jù)包傳輸之后,若是發(fā)生數(shù)據(jù)包內(nèi)容丟失,容易出現(xiàn)數(shù)據(jù)包無(wú)法響應(yīng)的技術(shù)問題。
為實(shí)現(xiàn)上述目的,本發(fā)明提供的一種移動(dòng)終端,所述移動(dòng)終端包括基于預(yù)設(shè)接口連接的第一處理芯片和第二處理芯片、與所述第一處理芯片連接的第一射頻模塊、以及與所述第二處理芯片連接的第二射頻模塊,所述第一處理芯片包括第一應(yīng)用處理器以及與嵌入式用戶識(shí)別卡和實(shí)體用戶識(shí)別卡連接的第一調(diào)制解調(diào)器,所述第二處理芯片包括第二應(yīng)用處理器和第二調(diào)制解調(diào)器,
所述第一處理芯片,用于被喚醒時(shí),接收第二處理芯片通過所述預(yù)設(shè)接口發(fā)送的數(shù)據(jù)包;對(duì)接收的所述數(shù)據(jù)包的包頭進(jìn)行識(shí)別,以確定所述包頭是否攜帶有預(yù)設(shè)的包頭標(biāo)識(shí);若所述包頭未攜帶預(yù)設(shè)的包頭標(biāo)識(shí),則發(fā)送重發(fā)消息給所述第二處理芯片,以供所述第二處理芯片重新發(fā)送所述數(shù)據(jù)包至所述第一處理芯片。
可選地,所述對(duì)接收的所述數(shù)據(jù)包的包頭進(jìn)行識(shí)別,以確定所述包頭是否攜帶有預(yù)設(shè)的包頭標(biāo)識(shí)具體包括:
所述第一處理芯片解析所述包頭的第一字節(jié),以確定所述包頭的第一字節(jié)是否為預(yù)設(shè)字段;及/或計(jì)算所述包頭的第二字節(jié)和第三字節(jié)的長(zhǎng)度,并判斷所述長(zhǎng)度是否滿足預(yù)設(shè)條件;
若所述包頭的第一字節(jié)為預(yù)設(shè)字段,及/或所述長(zhǎng)度滿足預(yù)設(shè)條件,則確定所述包頭攜帶有預(yù)設(shè)的包頭標(biāo)識(shí)。
可選地,所述預(yù)設(shè)條件為:所述長(zhǎng)度為所述數(shù)據(jù)包的長(zhǎng)度與預(yù)設(shè)值的差值。
可選地,所述第一處理芯片,還用于識(shí)別所述數(shù)據(jù)包的長(zhǎng)度;
在所述數(shù)據(jù)包的長(zhǎng)度大于預(yù)設(shè)長(zhǎng)度值,才對(duì)接收的所述數(shù)據(jù)包的包頭進(jìn)行識(shí)別。
可選地,所述第一處理芯片,還用于若所述包頭攜帶有預(yù)設(shè)的包頭標(biāo)識(shí),則發(fā)送確認(rèn)消息給所述第二處理芯片,以供所述第二處理芯片繼續(xù)發(fā)送其它數(shù)據(jù)包至所述第一處理芯片。
此外,為實(shí)現(xiàn)上述目的,本發(fā)明還提出一種數(shù)據(jù)包識(shí)別方法,應(yīng)用于移動(dòng)終端,所述移動(dòng)終端包括基于預(yù)設(shè)接口連接的第一處理芯片和第二處理芯片、與所述第一處理芯片連接的第一射頻模塊、以及與所述第二處理芯片連接的第二射頻模塊,所述第一處理芯片包括第一應(yīng)用處理器以及與嵌入式用戶識(shí)別卡和實(shí)體用戶識(shí)別卡連接的第一調(diào)制解調(diào)器,所述第二處理芯片包括第二應(yīng)用處理器和第二調(diào)制解調(diào)器,所述方法包括:
第一處理芯片被喚醒時(shí),接收第二處理芯片通過所述預(yù)設(shè)接口發(fā)送的數(shù)據(jù)包;
對(duì)接收的所述數(shù)據(jù)包的包頭進(jìn)行識(shí)別,以確定所述包頭是否攜帶有預(yù)設(shè)的包頭標(biāo)識(shí);
若所述包頭未攜帶預(yù)設(shè)的包頭標(biāo)識(shí),則發(fā)送重發(fā)消息給所述第二處理芯片,以供所述第二處理芯片重新發(fā)送所述數(shù)據(jù)包至所述第一處理芯片。
可選地,所述對(duì)接收的所述數(shù)據(jù)包的包頭進(jìn)行識(shí)別,以確定所述包頭是否攜帶有預(yù)設(shè)的包頭標(biāo)識(shí)的步驟包括:
所述第一處理芯片解析所述包頭的第一字節(jié),以確定所述包頭的第一字節(jié)是否為預(yù)設(shè)字段;及/或計(jì)算所述包頭的第二字節(jié)和第三字節(jié)的長(zhǎng)度,并判斷所述長(zhǎng)度是否滿足預(yù)設(shè)條件;
若所述包頭的第一字節(jié)為預(yù)設(shè)字段,及/或所述長(zhǎng)度滿足預(yù)設(shè)條件,則確定所述包頭攜帶有預(yù)設(shè)的包頭標(biāo)識(shí)。
可選地,所述預(yù)設(shè)條件為:所述長(zhǎng)度為所述數(shù)據(jù)包的長(zhǎng)度與預(yù)設(shè)值的差值。
可選地,所述對(duì)接收的所述數(shù)據(jù)包的包頭進(jìn)行識(shí)別,以確定所述包頭是否攜帶有預(yù)設(shè)的包頭標(biāo)識(shí)的步驟之前,所述方法還包括:
所述第一處理芯片識(shí)別所述數(shù)據(jù)包的長(zhǎng)度;
在所述數(shù)據(jù)包的長(zhǎng)度大于預(yù)設(shè)長(zhǎng)度值,才執(zhí)行所述對(duì)接收的所述數(shù)據(jù)包的包頭進(jìn)行識(shí)別的步驟。
可選地,所述對(duì)接收的所述數(shù)據(jù)包的包頭進(jìn)行識(shí)別,以確定所述包頭是否攜帶有預(yù)設(shè)的包頭標(biāo)識(shí)的步驟之后,所述方法還包括:
若所述包頭攜帶有預(yù)設(shè)的包頭標(biāo)識(shí),則所述第一處理芯片發(fā)送確認(rèn)消息給所述第二處理芯片,以供所述第二處理芯片繼續(xù)發(fā)送其它數(shù)據(jù)包至所述第一處理芯片。
本發(fā)明提出的移動(dòng)終端及數(shù)據(jù)包識(shí)別方法,所述移動(dòng)終端包括基于預(yù)設(shè)接口連接的第一處理芯片和第二處理芯片、與所述第一處理芯片連接的第一射頻模塊、以及與所述第二處理芯片連接的第二射頻模塊,所述第一處理芯片包括第一應(yīng)用處理器以及與嵌入式用戶識(shí)別卡和實(shí)體用戶識(shí)別卡連接的第一調(diào)制解調(diào)器,所述第二處理芯片包括第二應(yīng)用處理器和第二調(diào)制解調(diào)器,所述第一處理芯片,用于被喚醒時(shí),接收第二處理芯片通過所述預(yù)設(shè)接口發(fā)送的數(shù)據(jù)包;對(duì)接收的所述數(shù)據(jù)包的包頭進(jìn)行識(shí)別,以確定所述包頭是否攜帶有預(yù)設(shè)的包頭標(biāo)識(shí);若所述包頭未攜帶預(yù)設(shè)的包頭標(biāo)識(shí),則發(fā)送重發(fā)消息給所述第二處理芯片,以供所述第二處理芯片重新發(fā)送所述數(shù)據(jù)包至所述第一處理芯片。本方案在移動(dòng)終端中的第一處理芯片被喚醒時(shí),先對(duì)接收到的數(shù)據(jù)包的包頭進(jìn)行識(shí)別,在識(shí)別所述包頭未攜帶有預(yù)設(shè)包頭標(biāo)識(shí)時(shí),通知第二處理芯片重新發(fā)送該數(shù)據(jù)包,即使數(shù)據(jù)包內(nèi)容丟失,第一處理芯片也可以及時(shí)通知第二處理芯片重新發(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)終端的一種硬件結(jié)構(gòu)示意圖;
圖3為本發(fā)明數(shù)據(jù)包識(shí)別方法第一實(shí)施例的流程示意圖;
圖4為本發(fā)明對(duì)接收的所述數(shù)據(jù)包的包頭進(jìn)行識(shí)別,以確定所述包頭是否攜帶有預(yù)設(shè)的包頭標(biāo)識(shí)的細(xì)化流程示意圖;
圖5為本發(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網(wǎng)絡(luò)架構(gòu)的示意圖。本發(fā)明一實(shí)施例的lte網(wǎng)絡(luò)架構(gòu)包括:一個(gè)或多個(gè)移動(dòng)終端(userequipment,ue)100、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ī)站、無(wú)線電基站、無(wú)線電收發(fā)機(jī)、收發(fā)機(jī)功能、基本服務(wù)集、擴(kuò)展服務(wù)集、或其他某個(gè)合適的術(shù)語(yǔ)。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來(lái)傳遞,服務(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)行通信。
圖2為本發(fā)明實(shí)施例中移動(dòng)終端100的一種硬件結(jié)構(gòu)示意圖。
在本發(fā)明實(shí)施例中,移動(dòng)終端100包括第一處理芯片001和第二處理芯片002,與所述第一處理芯片001連接的第一射頻模塊12、以及與所述第二處理芯片002連接的第二射頻模塊22。其中,第一處理芯片001和第二處理芯片002通過預(yù)設(shè)接口連接。所述預(yù)設(shè)接口包括第一預(yù)設(shè)接口和第二預(yù)設(shè)接口。第一處理芯片001包括第一應(yīng)用處理器(applicationprocessor,用ap1表示)10、連接嵌入式用戶識(shí)別卡13和實(shí)體用戶識(shí)別卡的第一調(diào)制解調(diào)器11(modem1)、14和rpm(resourcepowermanager,資源電源管理器)15。第二處理芯片002包括第二應(yīng)用處理器20和第二調(diào)制解調(diào)器(modem2)21。
其中,所述嵌入式用戶識(shí)別卡13通過串口與第一調(diào)制解調(diào)器11連接,串口包括但不限于通用異步收發(fā)傳輸器(uart),需要說明的是,嵌入式用戶識(shí)別卡13為esim(embeddedsubscriberidentitymodule)卡,相關(guān)卡參數(shù)直接寫入該esim卡,該esim卡包含可編程的sim卡芯片;該嵌入式用戶識(shí)別卡13包括存儲(chǔ)模塊和片內(nèi)操作系統(tǒng)(chipoperatingsystem,cos),該存儲(chǔ)模塊可為efs(encryptingfilesystem,加密文件系統(tǒng)),存儲(chǔ)模塊用于存儲(chǔ)嵌入式用戶識(shí)別卡13的鑒權(quán)數(shù)據(jù)。所述實(shí)體用戶識(shí)別卡14為sim(subscriberidentitymodule,用戶識(shí)別模塊)卡。
第一應(yīng)用處理器10和第二應(yīng)用處理器20的內(nèi)部框架包括應(yīng)用層、框架層等,可處理復(fù)雜的邏輯操作以及進(jìn)行任務(wù)分配等。在本發(fā)明實(shí)施例中,應(yīng)用處理器指android操作系統(tǒng),以及基于android操作系統(tǒng)的各種apk(androidpackage,安卓安裝包)。
在本發(fā)明的實(shí)施例中,第一應(yīng)用處理器10和第二應(yīng)用處理器20通過第一預(yù)設(shè)接口實(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ù)設(shè)接口為usb(universalserialbus,通用串行總線)。應(yīng)當(dāng)理解的是,在本發(fā)明實(shí)施例中,usb數(shù)據(jù)線復(fù)用出兩條數(shù)據(jù)通道,分別用于第一應(yīng)用處理器10和第二應(yīng)用處理器20之間用戶數(shù)據(jù)和控制信令數(shù)據(jù)的交互,即第一應(yīng)用處理器10和第二應(yīng)用處理器20通過usb數(shù)據(jù)線傳輸?shù)臄?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ù)。
本實(shí)施例中,第一應(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í)別卡13中的sim卡參數(shù)來(lái)接入enodeb101,第二調(diào)制解調(diào)器21可通過實(shí)體用戶識(shí)別卡14的sim卡參數(shù)來(lái)接入enodeb101;或者第一調(diào)制解調(diào)器11通過實(shí)體用戶識(shí)別卡14中的sim卡參數(shù)來(lái)接入enodeb101,第二調(diào)制解調(diào)器21通過嵌入式用戶識(shí)別卡13的sim卡參數(shù)來(lái)接入enodeb101。sim卡參數(shù)包括但不限于sim卡鑒權(quán)數(shù)據(jù)。
第一調(diào)制解調(diào)器11和第二調(diào)制解調(diào)器21通過第二預(yù)設(shè)接口連接。在本發(fā)明實(shí)施例中,第二預(yù)設(shè)接口為uart(universalasynchronousreceiver/transmitter,通用異步收發(fā)傳輸器)。uart用于第一調(diào)制解調(diào)器11和第二調(diào)制解調(diào)器21之間sim卡參數(shù)的傳輸。
具體地:第二調(diào)制解調(diào)器21通過第二射頻模塊22接收到基站發(fā)送的sim卡數(shù)據(jù)獲取請(qǐng)求時(shí),將數(shù)據(jù)獲取請(qǐng)求傳送至第一調(diào)制解調(diào)器11中,由第一調(diào)制解調(diào)器11反饋?lái)憫?yīng)的sim卡數(shù)據(jù)。
其中,所述sim卡數(shù)據(jù)獲取請(qǐng)求的觸發(fā)方式包括兩種:
a、第二調(diào)制解調(diào)器21主動(dòng)注冊(cè)lte網(wǎng)絡(luò),以觸發(fā)sim卡數(shù)據(jù)獲取請(qǐng)求;
b、基站側(cè)需要鑒權(quán)用戶是否合法,將鑒權(quán)請(qǐng)求發(fā)給第二調(diào)制解調(diào)器21,由第二調(diào)制解調(diào)器21主動(dòng)發(fā)sim卡數(shù)據(jù)獲取請(qǐng)求。
第二調(diào)制解調(diào)器21通過第二射頻模塊22接收到基站發(fā)送的sim卡數(shù)據(jù)獲取請(qǐng)求時(shí),通過uart將數(shù)據(jù)獲取請(qǐng)求傳送至第一調(diào)制解調(diào)器11中,由第一調(diào)制解調(diào)器11根據(jù)數(shù)據(jù)獲取請(qǐng)求從嵌入式用戶識(shí)別卡13或?qū)嶓w用戶識(shí)別卡14獲取數(shù)據(jù),下文以第一調(diào)制解調(diào)器11根據(jù)數(shù)據(jù)獲取請(qǐng)求從嵌入式用戶識(shí)別卡13中獲取數(shù)據(jù)為例進(jìn)行詳述。
需要理解的是,嵌入式用戶識(shí)別卡13中包括有cos操作系統(tǒng)和存儲(chǔ)模塊,其中,所述cos操作系統(tǒng)作為存儲(chǔ)模塊的文件代理,根據(jù)所述第一調(diào)制解調(diào)器11發(fā)送的數(shù)據(jù)獲取請(qǐng)求從所述存儲(chǔ)模塊中提取數(shù)據(jù),所述存儲(chǔ)模塊用來(lái)存儲(chǔ)數(shù)據(jù)。即,本發(fā)明實(shí)施例中,第一調(diào)制解調(diào)器11是無(wú)法與嵌入式用戶識(shí)別卡13內(nèi)部的存儲(chǔ)模塊進(jìn)行交互以獲取數(shù)據(jù),只能通過cos操作系統(tǒng)進(jìn)行獲取。因此,當(dāng)所述第一調(diào)制解調(diào)器11將數(shù)據(jù)獲取請(qǐng)求發(fā)送至嵌入式用戶識(shí)別卡13時(shí),嵌入式用戶識(shí)別卡13內(nèi)部的cos操作系統(tǒng)解析出所述數(shù)據(jù)獲取請(qǐng)求的地址信息,然后根據(jù)所述地址信息,從所述存儲(chǔ)模塊中獲取所述地址信息對(duì)應(yīng)的數(shù)據(jù)。當(dāng)所述cos操作系統(tǒng)從存儲(chǔ)模塊中獲取到數(shù)據(jù)之后,將獲取的數(shù)據(jù)反饋至所述第一調(diào)制解調(diào)器11。
第一調(diào)制解調(diào)器11在獲取到cos操作系統(tǒng)反饋的數(shù)據(jù)之后,將數(shù)據(jù)通過uart發(fā)送給第二調(diào)制解調(diào)器21,最終第二調(diào)制解調(diào)器21通過第二射頻模塊22將數(shù)據(jù)上傳至基站,以完成鑒權(quán)。
實(shí)體用戶識(shí)別卡14包含的cos(chipoperatingsystem,片內(nèi)操作系統(tǒng))操作系統(tǒng)和存儲(chǔ)模塊,從實(shí)體用戶識(shí)別卡14中獲取數(shù)據(jù)的操作方式與上述一致,此處不再贅述。
可以理解的是,通過第一預(yù)設(shè)接口和/或第二預(yù)設(shè)接口,即可可實(shí)現(xiàn)第一處理芯片001和第二處理芯片002之間的連接。
第一調(diào)制解調(diào)器11和第二調(diào)制解調(diào)器21包含各種網(wǎng)絡(luò)交互的網(wǎng)絡(luò)制式的協(xié)議棧,協(xié)議棧包含lte(longtermevolution,長(zhǎng)期演進(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)營(yíng)商網(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用于將第一處理芯片001傳輸?shù)臄?shù)據(jù)處理后傳給enodeb101(基站網(wǎng)絡(luò)),以及用于將enodeb101傳輸?shù)臄?shù)據(jù)處理后傳給第一處理芯片001。第二射頻模塊22用于將第二處理芯片002傳輸?shù)臄?shù)據(jù)處理后傳給enodeb101(基站網(wǎng)絡(luò)),以及用于將enodeb101傳輸?shù)臄?shù)據(jù)處理后傳給第二處理芯片002。
第一射頻模塊12和第二射頻模塊22所涉及的無(wú)線接入技術(shù)可以包括lte、gsm、gprs(generalpacketradioservice,通用分組無(wú)線服務(wù))、cdma、edge、wlan(wirelesslocalareanetworks,無(wú)線局域網(wǎng))、cdma-2000、td-scdma、wcdma、wifi(wirelessfidelity,無(wú)線保真)等等。
移動(dòng)終端100中的嵌入式用戶識(shí)別卡13和實(shí)體用戶識(shí)別卡14存儲(chǔ)不同的無(wú)線通信標(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通過預(yù)設(shè)接口連接第一處理芯片001和第二處理芯片002,由于第二處理芯片002包括第二調(diào)制解調(diào)器21、并連接第二射頻模塊22,且第二射頻模塊22支持4g網(wǎng)絡(luò)。因此,移動(dòng)終端100可通過第一處理芯片001和第二處理芯片002具備雙lte功能。
在本實(shí)施例中,嵌入式用戶識(shí)別卡13和實(shí)體用戶識(shí)別卡14用于提供移動(dòng)通信業(yè)務(wù)(cs語(yǔ)音業(yè)務(wù)、ps數(shù)據(jù)業(yè)務(wù)和ps語(yǔ)音業(yè)務(wù))所需的相關(guān)數(shù)據(jù),并在其內(nèi)部存儲(chǔ)用戶信息、短消息、執(zhí)行鑒權(quán)算法和產(chǎn)生加密密匙等。
實(shí)體用戶識(shí)別卡14與移動(dòng)終端100交互時(shí),移動(dòng)終端100檢測(cè)該用戶識(shí)別卡存在與否的信號(hào)只在開機(jī)瞬時(shí)產(chǎn)生,當(dāng)開機(jī)檢測(cè)不到用戶識(shí)別卡存在時(shí),移動(dòng)終端100將提示“插入用戶識(shí)別卡”。移動(dòng)終端100開機(jī)之后,移動(dòng)終端100和用戶識(shí)別卡之間28秒通信一次,完成一些固定的通信檢查(例如,用戶識(shí)別卡是否在位等)。
在本發(fā)明的實(shí)施例中,嵌入式用戶識(shí)別卡13和實(shí)體用戶識(shí)別卡14承載信息,并且根據(jù)外界請(qǐng)求返回對(duì)應(yīng)卡參數(shù),以及對(duì)網(wǎng)絡(luò)進(jìn)行鑒權(quán)運(yùn)算,第一射頻模塊12和第二射頻模塊22所涉及的無(wú)線接入技術(shù)為lte。當(dāng)?shù)谝粦?yīng)用芯片001和第二應(yīng)用芯片002連接時(shí),嵌入式用戶識(shí)別卡13可通過移動(dòng)終端100中的第一調(diào)制解調(diào)器11支持lte,而實(shí)體用戶識(shí)別卡14通過第二調(diào)制解調(diào)器21支持lte;或者,嵌入式用戶識(shí)別卡13可通過第二調(diào)制解調(diào)器21支持lte,而實(shí)體用戶識(shí)別卡14通過第一調(diào)制解調(diào)器11支持lte,以實(shí)現(xiàn)移動(dòng)終端100可支持雙lte。
移動(dòng)終端100中的rpm15用于管控各種資源,包括時(shí)鐘資源、總線資源、pmic(powermanagementic,電源管理集成電路,即各個(gè)芯片的電壓)、ddr(內(nèi)存分配),以及管理芯片的休眠喚醒的中斷和應(yīng)用處理器喚醒的截止時(shí)間。移動(dòng)終端100的各個(gè)子系統(tǒng),在需要資源時(shí),向rpm15申請(qǐng)資源,各個(gè)子系統(tǒng)分別包括第一應(yīng)用處理器10,第一調(diào)制解調(diào)器11、pronto(wifi/藍(lán)牙、nfc(nearfieldcommunication,近場(chǎng)通信)等)、lpass(lowpoweraudiosubsystem,低功耗音頻子系統(tǒng)),rpm15用來(lái)決定移動(dòng)終端100系統(tǒng)的休眠狀態(tài),具體是,rpm15基于各個(gè)子系統(tǒng)的投票機(jī)制實(shí)現(xiàn),當(dāng)各個(gè)子系統(tǒng)都投休眠票時(shí),rpm15才可以使移動(dòng)終端100整個(gè)系統(tǒng)進(jìn)行休眠。在移動(dòng)終端100的整個(gè)系統(tǒng)休眠之后,若是要重新啟動(dòng)運(yùn)行,第二應(yīng)用處理芯片002可自動(dòng)喚醒,但是第一應(yīng)用處理芯片001需要第一應(yīng)用處理芯片001喚醒,以進(jìn)行數(shù)據(jù)的傳輸交互。
在本發(fā)明實(shí)施例中,第一處理芯片001和第二處理芯片002之間通過預(yù)設(shè)接口連接的情況下,喚醒方式可為以下三種:
1、第一應(yīng)用處理器10接收到控制信令數(shù)據(jù)時(shí),通過usb接口傳送探測(cè)包給第二應(yīng)用處理器20,以喚醒第二應(yīng)用處理器20。
2、第二調(diào)制解調(diào)器21接收到用戶數(shù)據(jù)時(shí),喚醒第二應(yīng)用處理器20,由第二應(yīng)用處理器20通過usb接口傳送探測(cè)包給第一應(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接口發(fā)送探測(cè)包給第一應(yīng)用處理器10,以喚醒第二應(yīng)用處理器20。
此外,第二調(diào)制解調(diào)器21還可以定期喚醒自己,以在移動(dòng)終端100進(jìn)行位置更新時(shí),跟基站進(jìn)行握手交互,此時(shí)不需要喚醒第一應(yīng)用處理器10。
在本發(fā)明實(shí)施例中,移動(dòng)終端包括但不限于手機(jī)、pc(personalcomputer,個(gè)人電腦)或pad(personaldigitalassistant,個(gè)人數(shù)字助理)。
基于上述lte網(wǎng)絡(luò)的架構(gòu)圖、以及移動(dòng)終端100的硬件結(jié)構(gòu)示意圖,提出本發(fā)明的各個(gè)實(shí)施例。
參照?qǐng)D2,本實(shí)施例提出一種移動(dòng)終端,所述移動(dòng)終端100包括基于預(yù)設(shè)接口連接的第一處理芯片001和第二處理芯片001、與所述第一處理芯片001連接的第一射頻模塊12、以及與所述第二處理芯片002連接的第二射頻模塊22,所述第一處理芯片001包括第一應(yīng)用處理器10以及與嵌入式用戶識(shí)別卡13和實(shí)體用戶識(shí)別卡14連接的第一調(diào)制解調(diào)器11,所述第二處理芯片002包括第二應(yīng)用處理器20和第二調(diào)制解調(diào)器21,
所述第一處理芯片001,用于被喚醒時(shí),接收第二處理芯片002通過所述預(yù)設(shè)接口發(fā)送的數(shù)據(jù)包;
對(duì)接收的所述數(shù)據(jù)包的包頭進(jìn)行識(shí)別,以確定所述包頭是否攜帶有預(yù)設(shè)的包頭標(biāo)識(shí);
若所述包頭未攜帶預(yù)設(shè)的包頭標(biāo)識(shí),則發(fā)送重發(fā)消息給所述第二處理芯片002,以供所述第二處理芯片002重新發(fā)送所述數(shù)據(jù)包至所述第一處理芯片001。
在本實(shí)施例中,所述第一處理芯片001被喚醒,是通過預(yù)設(shè)接口接收第二處理芯片002發(fā)送的探測(cè)包以實(shí)現(xiàn)喚醒的。后續(xù),第一處理芯片001對(duì)數(shù)據(jù)包的識(shí)別,也是對(duì)通過預(yù)設(shè)接口接收到的數(shù)據(jù)包進(jìn)行識(shí)別。由于本實(shí)施例中,第一處理芯片001包括第一應(yīng)用處理器10和第一調(diào)制解調(diào)器11,第二處理芯片001包括第二應(yīng)用處理器20和第二調(diào)制解調(diào)器21,且第二應(yīng)用處理器20和第一應(yīng)用處理器10通過usb接口連接,第二調(diào)制解調(diào)器21和第一調(diào)制解調(diào)器11之間通過uart接口連接。因此,本發(fā)明實(shí)施例中,第一處理芯片001對(duì)數(shù)據(jù)包的識(shí)別,實(shí)際上可以分為兩種:
1)第一應(yīng)用處理器10對(duì)第二應(yīng)用處理器10通過第一預(yù)設(shè)接口(usb接口)發(fā)送的數(shù)據(jù)包進(jìn)行識(shí)別;
2)第一調(diào)制解調(diào)器11對(duì)第二調(diào)制解調(diào)器21通過第二預(yù)設(shè)接口(uart接口)發(fā)送的數(shù)據(jù)包進(jìn)行識(shí)別;
需要說明,本發(fā)明中兩種數(shù)據(jù)包識(shí)別的方式一致,以及后續(xù)的應(yīng)答機(jī)制反饋方式也一致,僅僅是接口不同,下文中為了簡(jiǎn)介說明,優(yōu)選以第一應(yīng)用處理器10對(duì)數(shù)據(jù)包的識(shí)別和反饋為例。
首先,需要理解的是,在移動(dòng)終端100中的第一處理芯片001和第二處理芯片002都休眠之后,若第二處理芯片002通過第二射頻模塊22接收到外部信號(hào),第二射頻模塊22將外部信號(hào)傳輸至第二調(diào)制解調(diào)器21中,使得第二調(diào)制解調(diào)器21喚醒,第二調(diào)制解調(diào)器21喚醒之后,第二調(diào)制解調(diào)器21再發(fā)送探測(cè)包喚醒第二應(yīng)用處理器20,從而實(shí)現(xiàn)第二處理芯片002的喚醒。此時(shí)第二調(diào)制解調(diào)器21還會(huì)通過uart接口發(fā)送探測(cè)包以喚醒第一調(diào)制解調(diào)器11。在第二處理芯片002喚醒之后,第二處理芯片002的第二應(yīng)用處理器20會(huì)通過usb接口發(fā)送探測(cè)包以喚醒第一處理芯片001中的第一應(yīng)用處理器10。
對(duì)于第二處理芯片002的第二應(yīng)用處理器20而言,當(dāng)發(fā)送探測(cè)包給第一處理芯片001的第一應(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ù)交互過程。
同理,對(duì)于第二處理芯片002的第二調(diào)制解調(diào)器21而言,當(dāng)發(fā)送探測(cè)包給第一處理芯片001的第一調(diào)制解調(diào)器11之后,第二調(diào)制解調(diào)器21認(rèn)為第一調(diào)制解調(diào)器11已經(jīng)被喚醒,此時(shí),第二調(diào)制解調(diào)器21會(huì)緊接著發(fā)送sim卡鑒權(quán)數(shù)據(jù)的數(shù)據(jù)包給第一調(diào)制解調(diào)器11,以進(jìn)行后續(xù)的數(shù)據(jù)交互過程。
但是實(shí)際過程中,當(dāng)?shù)诙?yīng)用處理器20或第二調(diào)制解調(diào)器21發(fā)送探測(cè)包之后,第一應(yīng)用處理器10或第一調(diào)制解調(diào)器11并沒有立刻被喚醒,而是需要一段時(shí)間從休眠狀態(tài)切換為喚醒狀態(tài)。此時(shí),若是第二應(yīng)用處理器20或第二調(diào)制解調(diào)器21緊接著發(fā)送數(shù)據(jù)包,由于第一應(yīng)用處理器10或第一調(diào)制解調(diào)器11還未完全喚醒,會(huì)導(dǎo)致接收到的數(shù)據(jù)包中,前面部分內(nèi)容丟失,造成接收到的數(shù)據(jù)包是不完整的數(shù)據(jù)包,也就是殘包。
為更好理解,以應(yīng)用處理器為例,舉例如下:第二處理芯片002的第二應(yīng)用處理器20通過usb接口發(fā)送數(shù)據(jù)包給第一應(yīng)用處理器10,該數(shù)據(jù)包為512個(gè)字節(jié),在前36個(gè)字節(jié)的發(fā)送過程中,由于第一處理芯片001的第一應(yīng)用處理器10還沒完全被喚醒,在第37個(gè)字節(jié)才真正喚醒,此時(shí),第一應(yīng)用處理器10無(wú)法接收到前36個(gè)字節(jié),那么第一應(yīng)用處理器10接收到的數(shù)據(jù)包就是殘包,由于第一應(yīng)用處理器10根本就無(wú)法識(shí)別該數(shù)據(jù)包,導(dǎo)致第一應(yīng)用處理器10也無(wú)法響應(yīng)該數(shù)據(jù)包,造成第二應(yīng)用處理器20遲遲得不到回復(fù),導(dǎo)致數(shù)據(jù)傳輸不準(zhǔn)確。
因此,本實(shí)施例中,當(dāng)?shù)谝惶幚硇酒?01被喚醒之后,若接收到第二處理芯片002通過所述預(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í)施例中,所述第一處理芯片001對(duì)接收到的數(shù)據(jù)包的包頭進(jìn)行識(shí)別,具體為解析出所述數(shù)據(jù)包,然后對(duì)解析出的數(shù)據(jù)包的包頭進(jìn)行識(shí)別,以確定所述包頭是否攜帶有預(yù)設(shè)的包頭標(biāo)識(shí),具體的識(shí)別方式在下文實(shí)施例中詳述。
當(dāng)?shù)谝惶幚硇酒?01識(shí)別出包頭未攜帶預(yù)設(shè)的包頭標(biāo)識(shí)時(shí),發(fā)送重發(fā)消息給所述第二處理芯片002,以供所述第二處理芯片002重新發(fā)送所述數(shù)據(jù)包至所述第一處理芯片001。
即,第一處理芯片001識(shí)別出包頭未攜帶預(yù)設(shè)的包頭標(biāo)識(shí)時(shí),說明當(dāng)前接收到的數(shù)據(jù)包的已經(jīng)發(fā)生了內(nèi)容丟失,無(wú)法對(duì)該數(shù)據(jù)包進(jìn)行識(shí)別,也無(wú)法反饋?lái)憫?yīng)的數(shù)據(jù)包,因此,所述第一處理芯片001通過預(yù)設(shè)接口發(fā)送重發(fā)消息給所述第二處理芯片002,以供所述第二處理芯片002重新發(fā)送所述數(shù)據(jù)包至所述第一處理芯片001,例如,第一處理芯片001發(fā)送應(yīng)答消息“err”給第二處理芯片002,告知第二處理芯片002之前發(fā)送的數(shù)據(jù)包有誤,以便第二處理芯片002重新發(fā)送該數(shù)據(jù)包。本實(shí)施例中,所述重新消息的形式不做限定,可以是一個(gè)短消息如“err”或“retry”,也可以是一個(gè)預(yù)設(shè)字段,如“0001”,具體根據(jù)實(shí)際情況設(shè)定。
本實(shí)施例中,相當(dāng)于是當(dāng)?shù)谝惶幚硇酒?01識(shí)別出數(shù)據(jù)包為殘包時(shí),即檢測(cè)到數(shù)據(jù)包中沒有攜帶包頭標(biāo)記,此時(shí),會(huì)給第二處理芯片002反饋一個(gè)應(yīng)答err,例如,第一應(yīng)用處理器10通過usb接口將應(yīng)答err傳送第二應(yīng)用處理器20,此時(shí),第二應(yīng)用處理器20基于接收到的應(yīng)答err,通過usb接口重新發(fā)送該數(shù)據(jù)包給第一應(yīng)用處理器10,以完成數(shù)據(jù)的交互。
本實(shí)施例提出的移動(dòng)終端,所述移動(dòng)終端包括基于預(yù)設(shè)接口連接的第一處理芯片和第二處理芯片、與所述第一處理芯片連接的第一射頻模塊、以及與所述第二處理芯片連接的第二射頻模塊,所述第一處理芯片包括第一應(yīng)用處理器以及與嵌入式用戶識(shí)別卡和實(shí)體用戶識(shí)別卡連接的第一調(diào)制解調(diào)器,所述第二處理芯片包括第二應(yīng)用處理器和第二調(diào)制解調(diào)器,所述第一處理芯片,用于被喚醒時(shí),接收第二處理芯片通過所述預(yù)設(shè)接口發(fā)送的數(shù)據(jù)包;對(duì)接收的所述數(shù)據(jù)包的包頭進(jìn)行識(shí)別,以確定所述包頭是否攜帶有預(yù)設(shè)的包頭標(biāo)識(shí);若所述包頭未攜帶預(yù)設(shè)的包頭標(biāo)識(shí),則發(fā)送重發(fā)消息給所述第二處理芯片,以供所述第二處理芯片重新發(fā)送所述數(shù)據(jù)包至所述第一處理芯片。本方案在移動(dòng)終端中的第一處理芯片被喚醒時(shí),先對(duì)接收到的數(shù)據(jù)包的包頭進(jìn)行識(shí)別,在識(shí)別所述包頭未攜帶有預(yù)設(shè)包頭標(biāo)識(shí)時(shí),通知第二處理芯片重新發(fā)送該數(shù)據(jù)包,即使數(shù)據(jù)包內(nèi)容丟失,第一處理芯片也可以及時(shí)通知第二處理芯片重新發(fā)送該數(shù)據(jù)包,及時(shí)響應(yīng)數(shù)據(jù)包,提高了數(shù)據(jù)傳輸?shù)臏?zhǔn)確性。
進(jìn)一步地,提出本發(fā)明移動(dòng)終端第二實(shí)施例。
移動(dòng)終端第二實(shí)施例與移動(dòng)終端第一實(shí)施例的區(qū)別在于,所述第一處理芯片001對(duì)接收的所述數(shù)據(jù)包的包頭進(jìn)行識(shí)別,以確定所述包頭是否攜帶有預(yù)設(shè)的包頭標(biāo)識(shí)具體包括:
所述第一處理芯片001解析所述包頭的第一字節(jié),以確定所述包頭的第一字節(jié)是否為預(yù)設(shè)字段;及/或計(jì)算所述包頭的第二字節(jié)和第三字節(jié)的長(zhǎng)度,并判斷所述長(zhǎng)度是否滿足預(yù)設(shè)條件;
若所述包頭的第一字節(jié)為預(yù)設(shè)字段,及/或所述長(zhǎng)度滿足預(yù)設(shè)條件,則確定所述包頭攜帶有預(yù)設(shè)的包頭標(biāo)識(shí)。
在本實(shí)施例中,所述預(yù)設(shè)條件優(yōu)選為:所述長(zhǎng)度為所述數(shù)據(jù)包的長(zhǎng)度與預(yù)設(shè)值的差值。即,計(jì)算所述包頭的第二字節(jié)和第三字節(jié)的長(zhǎng)度之后,判斷所述長(zhǎng)度是否滿足預(yù)設(shè)條件,具體是:計(jì)算數(shù)據(jù)包的長(zhǎng)度,然后將數(shù)據(jù)包的長(zhǎng)度減去預(yù)設(shè)值,以得到所述數(shù)據(jù)包的長(zhǎng)度與預(yù)設(shè)值的差值,其中,所述預(yù)設(shè)值不做限定,例如為1,在得到差值之后,再將第二字節(jié)和第三字節(jié)的長(zhǎng)度與所述差值進(jìn)行比較,以確定所述長(zhǎng)度是否與所述差值相等,若相等,說明第二字節(jié)和第三字節(jié)的長(zhǎng)度滿足條件。
一般情況下,用戶數(shù)據(jù)或控制信令數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)包的首字節(jié)為預(yù)設(shè)字段,所述預(yù)設(shè)字段不做限定,例如字段“0x01”,且第2、3字節(jié)共同表征一個(gè)長(zhǎng)度,值為整個(gè)數(shù)據(jù)包的長(zhǎng)度減預(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é)的長(zhǎng)度是否為整個(gè)數(shù)據(jù)包的長(zhǎng)度減預(yù)設(shè)值。若識(shí)別出包頭的首字節(jié)為預(yù)設(shè)字段0x01,且第2、3字節(jié)的值為整個(gè)數(shù)據(jù)包的長(zhǎng)度減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é)的長(zhǎng)度,并判斷所述長(zhǎng)度是否滿足預(yù)設(shè)條件;若所述長(zhǎng)度滿足預(yù)設(shè)條件,則確定所述包頭攜帶有預(yù)設(shè)的包頭標(biāo)識(shí)。
3)方式三、解析所述包頭的第一字節(jié),以確定所述包頭的第一字節(jié)是否為預(yù)設(shè)字段;以及計(jì)算所述包頭的第二字節(jié)和第三字節(jié)的長(zhǎng)度,并判斷所述長(zhǎng)度是否滿足預(yù)設(shè)條件;若所述包頭的第一字節(jié)為預(yù)設(shè)字段,且所述長(zhǎng)度滿足預(yù)設(shè)條件,則確定所述包頭攜帶有預(yù)設(shè)的包頭標(biāo)識(shí)。
本發(fā)明實(shí)施例中,可以根據(jù)具體需要設(shè)置上述三種方式的任意一種,但是為了提高數(shù)據(jù)包識(shí)別的準(zhǔn)確性,優(yōu)選采用方式三。
在采用方式三的情況下,所述處理芯片001接收到數(shù)據(jù)包之后,可采用多線程分析數(shù)據(jù)包的包頭,即通過一個(gè)線程解析包頭的第一字節(jié),以確定所述包頭的第一字節(jié)是否為預(yù)設(shè)字段。同時(shí),通過另一個(gè)線程計(jì)算所述包頭的第二字節(jié)和第三字節(jié)的長(zhǎng)度,并判斷所述長(zhǎng)度是否滿足預(yù)設(shè)條件,當(dāng)所述包頭的第一字節(jié)為預(yù)設(shè)字段,且所述長(zhǎng)度滿足預(yù)設(shè)條件,才確定所述包頭攜帶有預(yù)設(shè)的包頭標(biāo)識(shí)。
應(yīng)當(dāng)理解,采用多線程對(duì)包頭中的各個(gè)字節(jié)進(jìn)行并行分析,無(wú)須一個(gè)個(gè)先后分析,縮短了分析的時(shí)間,提高了分析的效率。
或者,所述處理芯片001接收到數(shù)據(jù)包之后,先解析包頭的第一節(jié)點(diǎn),以確定所述包頭的第一字節(jié)是否為預(yù)設(shè)字段,當(dāng)所述包頭的第一字節(jié)為預(yù)設(shè)字段時(shí),才計(jì)算所述包頭的第二字節(jié)和第三字節(jié)的長(zhǎng)度,并判斷所述長(zhǎng)度是否滿足預(yù)設(shè)條件,并在所述長(zhǎng)度滿足預(yù)設(shè)條件,則確定所述包頭攜帶有預(yù)設(shè)的包頭標(biāo)識(shí)。需要注意的是,當(dāng)所述包頭的第一字節(jié)不為預(yù)設(shè)字段,此時(shí),就無(wú)須再判斷第二字節(jié)和第三字節(jié)的長(zhǎng)度,直接認(rèn)定包頭中未攜帶包頭標(biāo)識(shí)即可。
可以理解,通過這種前后判斷的方式,可以在第一字節(jié)符合要求的情況下再繼續(xù)判斷第二字節(jié)和第三字節(jié),防止第一字節(jié)不滿足要求的情況下,還花費(fèi)資源去進(jìn)行判斷,從而提高了數(shù)據(jù)包分析的智能性,也避免了資源的浪費(fèi)。
進(jìn)一步地,提出本發(fā)明移動(dòng)終端第三實(shí)施例。
移動(dòng)終端第三實(shí)施例與移動(dòng)終端第一實(shí)施例的區(qū)別在于,所述第一處理芯片001,還用于識(shí)別所述數(shù)據(jù)包的長(zhǎng)度;
在所述數(shù)據(jù)包的長(zhǎng)度大于預(yù)設(shè)長(zhǎng)度值,才對(duì)接收的所述數(shù)據(jù)包的包頭進(jìn)行識(shí)別。
在本實(shí)施例中,所述第一處理芯片001被喚醒后接收到數(shù)據(jù)包時(shí),先識(shí)別該數(shù)據(jù)包的長(zhǎng)度,然后獲取預(yù)設(shè)長(zhǎng)度值,將識(shí)別的數(shù)據(jù)包的長(zhǎng)度與預(yù)設(shè)長(zhǎng)度值進(jìn)行比對(duì),以確定所述數(shù)據(jù)包的長(zhǎng)度是否大于預(yù)設(shè)長(zhǎng)度值,若所述數(shù)據(jù)包的長(zhǎng)度大于預(yù)設(shè)長(zhǎng)度值,所述第一處理芯片001才對(duì)接收的所述數(shù)據(jù)包的包頭進(jìn)行識(shí)別,若是識(shí)別出所述數(shù)據(jù)包的長(zhǎng)度小于或等于預(yù)設(shè)長(zhǎng)度值,此時(shí)可不對(duì)接收的所述數(shù)據(jù)包的包頭進(jìn)行識(shí)別。
此處需要說明的是,用戶數(shù)據(jù)或控制信令數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)包(data)的長(zhǎng)度一般大于6個(gè)字節(jié)對(duì)應(yīng)的長(zhǎng)度,而應(yīng)答消息對(duì)應(yīng)的數(shù)據(jù)包(ack)的長(zhǎng)度一般是4或者6個(gè)字節(jié)。
因此,當(dāng)?shù)谝惶幚硇酒?01被喚醒后接收到數(shù)據(jù)包時(shí),先通過包長(zhǎng)度判斷該數(shù)據(jù)包是ack還是data,若檢測(cè)出該數(shù)據(jù)包沒有大于6字節(jié)對(duì)應(yīng)的長(zhǎng)度,即可確認(rèn)該數(shù)據(jù)包是ack,此時(shí)說明第二處理芯片002還沒發(fā)送data,因此不會(huì)出現(xiàn)上述的丟包情況,當(dāng)檢測(cè)出該數(shù)據(jù)包大于6個(gè)字節(jié)對(duì)應(yīng)的長(zhǎng)度時(shí),才會(huì)對(duì)該數(shù)據(jù)包的包頭進(jìn)行解析。
可以理解,本實(shí)施例中,在接收到數(shù)據(jù)包之后,第一處理芯片001先對(duì)數(shù)據(jù)包的長(zhǎng)度進(jìn)行解析,以確定該數(shù)據(jù)包的類型,從而決定是否對(duì)該數(shù)據(jù)包的包頭進(jìn)行解析,防止所有的數(shù)據(jù)包都進(jìn)行包頭解析,從而提高了數(shù)據(jù)包識(shí)別的智能性。
進(jìn)一步地,提出本發(fā)明移動(dòng)終端第四實(shí)施例。
移動(dòng)終端第四實(shí)施例與移動(dòng)終端第一至第三實(shí)施例的區(qū)別在于,所述第一處理芯片001,還用于若所述包頭攜帶有預(yù)設(shè)的包頭標(biāo)識(shí),則發(fā)送確認(rèn)消息給所述第二處理芯片002,以供所述第二處理芯片002繼續(xù)發(fā)送其它數(shù)據(jù)包至所述第一處理芯片001。
即本實(shí)施例中,第一處理芯片001若識(shí)別出包頭并沒有上述的包頭標(biāo)識(shí),此時(shí),認(rèn)為該數(shù)據(jù)包是殘包,在檢驗(yàn)出該數(shù)據(jù)包為殘包之后,會(huì)采用數(shù)據(jù)應(yīng)答機(jī)制進(jìn)行反饋,以供第二處理芯片002根據(jù)第一處理芯片001反饋的數(shù)據(jù)應(yīng)答機(jī)制決定繼續(xù)發(fā)包,還是重新發(fā)送數(shù)據(jù)包,具體地:
當(dāng)?shù)谝惶幚硇酒?01識(shí)別出數(shù)據(jù)包為有效的數(shù)據(jù)包時(shí),也就是檢測(cè)出數(shù)據(jù)包中攜帶有包頭標(biāo)記時(shí),此時(shí),會(huì)給第二處理芯片002反饋一個(gè)應(yīng)答ok,以通知第二處理芯片002當(dāng)前接收到的數(shù)據(jù)包是完整的數(shù)據(jù)包,例如:第一應(yīng)用處理器10通過usb數(shù)據(jù)線將應(yīng)答ok傳送給第二應(yīng)用處理器20,此時(shí),第二應(yīng)用處理器20根據(jù)第一應(yīng)用處理器10反饋的應(yīng)答ok,通過usb接口繼續(xù)發(fā)送其它的數(shù)據(jù)包給第一應(yīng)用處理器10,以完成數(shù)據(jù)包發(fā)送操作。
本實(shí)施例中,在識(shí)別出所述包頭攜帶有預(yù)設(shè)的包頭標(biāo)識(shí),則發(fā)送確認(rèn)消息給所述第二處理芯片002,以供所述第二處理芯片002繼續(xù)發(fā)送其它數(shù)據(jù)包至所述第一處理芯片001,從而完成數(shù)據(jù)的傳輸過程。
本發(fā)明進(jìn)一步提供一種數(shù)據(jù)包識(shí)別方法。
參照?qǐng)D3,圖3為本發(fā)明數(shù)據(jù)包識(shí)別方法較佳實(shí)施例的流程示意圖。
本實(shí)施例提出一種數(shù)據(jù)包識(shí)別方法,在本實(shí)施例中,提供了數(shù)據(jù)包識(shí)別方法的實(shí)施例,需要說明的是,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
本發(fā)明中,數(shù)據(jù)包識(shí)別方法應(yīng)用于移動(dòng)終端,所述移動(dòng)終端包括基于預(yù)設(shè)接口連接的第一處理芯片001和第二處理芯片002、與所述第一處理芯片001連接的第一射頻模塊12、以及與所述第二處理芯片002連接的第二射頻模塊22,所述第一處理芯片001包括第一應(yīng)用處理器10以及與嵌入式用戶識(shí)別卡13和實(shí)體用戶識(shí)別卡14連接的第一調(diào)制解調(diào)器11,所述第二處理芯片002包括第二應(yīng)用處理器20和第二調(diào)制解調(diào)器21,所述方法包括:
步驟s10,第一處理芯片001被喚醒時(shí),接收第二處理芯片002通過所述預(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ā)消息給所述第二處理芯片002,以供所述第二處理芯片002重新發(fā)送所述數(shù)據(jù)包至所述第一處理芯片001。
在本實(shí)施例中,所述第一處理芯片001被喚醒,是通過預(yù)設(shè)接口接收第二處理芯片002發(fā)送的探測(cè)包以實(shí)現(xiàn)喚醒的。后續(xù),第一處理芯片001對(duì)數(shù)據(jù)包的識(shí)別,也是對(duì)通過預(yù)設(shè)接口接收到的數(shù)據(jù)包進(jìn)行識(shí)別。由于本實(shí)施例中,第一處理芯片001包括第一應(yīng)用處理器10和第一調(diào)制解調(diào)器11,第二處理芯片001包括第二應(yīng)用處理器20和第二調(diào)制解調(diào)器21,且第二應(yīng)用處理器20和第一應(yīng)用處理器10通過usb接口連接,第二調(diào)制解調(diào)器21和第一調(diào)制解調(diào)器11之間通過uart接口連接。因此,本發(fā)明實(shí)施例中,第一處理芯片001對(duì)數(shù)據(jù)包的識(shí)別,實(shí)際上可以分為兩種:
1)第一應(yīng)用處理器10對(duì)第二應(yīng)用處理器10通過第一預(yù)設(shè)接口(usb接口)發(fā)送的數(shù)據(jù)包進(jìn)行識(shí)別;
2)第一調(diào)制解調(diào)器11對(duì)第二調(diào)制解調(diào)器21通過第二預(yù)設(shè)接口(uart接口)發(fā)送的數(shù)據(jù)包進(jìn)行識(shí)別;
需要說明,本發(fā)明中兩種數(shù)據(jù)包識(shí)別的方式一致,以及后續(xù)的應(yīng)答機(jī)制反饋方式也一致,僅僅是接口不同,下文中為了簡(jiǎn)介說明,優(yōu)選以第一應(yīng)用處理器10對(duì)數(shù)據(jù)包的識(shí)別和反饋為例。
首先,需要理解的是,在移動(dòng)終端100中的第一處理芯片001和第二處理芯片002都休眠之后,若第二處理芯片002通過第二射頻模塊22接收到外部信號(hào),第二射頻模塊22將外部信號(hào)傳輸至第二調(diào)制解調(diào)器21中,使得第二調(diào)制解調(diào)器21喚醒,第二調(diào)制解調(diào)器21喚醒之后,第二調(diào)制解調(diào)器21再發(fā)送探測(cè)包喚醒第二應(yīng)用處理器20,從而實(shí)現(xiàn)第二處理芯片002的喚醒。此時(shí)第二調(diào)制解調(diào)器21還會(huì)通過uart接口發(fā)送探測(cè)包以喚醒第一調(diào)制解調(diào)器11。在第二處理芯片002喚醒之后,第二處理芯片002的第二應(yīng)用處理器20會(huì)通過usb接口發(fā)送探測(cè)包以喚醒第一處理芯片001中的第一應(yīng)用處理器10。
對(duì)于第二處理芯片002的第二應(yīng)用處理器20而言,當(dāng)發(fā)送探測(cè)包給第一處理芯片001的第一應(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ù)交互過程。
同理,對(duì)于第二處理芯片002的第二調(diào)制解調(diào)器21而言,當(dāng)發(fā)送探測(cè)包給第一處理芯片001的第一調(diào)制解調(diào)器11之后,第二調(diào)制解調(diào)器21認(rèn)為第一調(diào)制解調(diào)器11已經(jīng)被喚醒,此時(shí),第二調(diào)制解調(diào)器21會(huì)緊接著發(fā)送sim卡鑒權(quán)數(shù)據(jù)的數(shù)據(jù)包給第一調(diào)制解調(diào)器11,以進(jìn)行后續(xù)的數(shù)據(jù)交互過程。
但是實(shí)際過程中,當(dāng)?shù)诙?yīng)用處理器20或第二調(diào)制解調(diào)器21發(fā)送探測(cè)包之后,第一應(yīng)用處理器10或第一調(diào)制解調(diào)器11并沒有立刻被喚醒,而是需要一段時(shí)間從休眠狀態(tài)切換為喚醒狀態(tài)。此時(shí),若是第二應(yīng)用處理器20或第二調(diào)制解調(diào)器21緊接著發(fā)送數(shù)據(jù)包,由于第一應(yīng)用處理器10或第一調(diào)制解調(diào)器11還未完全喚醒,會(huì)導(dǎo)致接收到的數(shù)據(jù)包中,前面部分內(nèi)容丟失,造成接收到的數(shù)據(jù)包是不完整的數(shù)據(jù)包,也就是殘包。
為更好理解,以應(yīng)用處理器為例,舉例如下:第二處理芯片002的第二應(yīng)用處理器20通過usb接口發(fā)送數(shù)據(jù)包給第一應(yīng)用處理器10,該數(shù)據(jù)包為512個(gè)字節(jié),在前36個(gè)字節(jié)的發(fā)送過程中,由于第一處理芯片001的第一應(yīng)用處理器10還沒完全被喚醒,在第37個(gè)字節(jié)才真正喚醒,此時(shí),第一應(yīng)用處理器10無(wú)法接收到前36個(gè)字節(jié),那么第一應(yīng)用處理器10接收到的數(shù)據(jù)包就是殘包,由于第一應(yīng)用處理器10根本就無(wú)法識(shí)別該數(shù)據(jù)包,導(dǎo)致第一應(yīng)用處理器10也無(wú)法響應(yīng)該數(shù)據(jù)包,造成第二應(yīng)用處理器20遲遲得不到回復(fù),導(dǎo)致數(shù)據(jù)傳輸不準(zhǔn)確。
因此,本實(shí)施例中,當(dāng)?shù)谝惶幚硇酒?01被喚醒之后,若接收到第二處理芯片002通過所述預(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í)施例中,所述第一處理芯片001對(duì)接收到的數(shù)據(jù)包的包頭進(jìn)行識(shí)別,具體為解析出所述數(shù)據(jù)包,然后對(duì)解析出的數(shù)據(jù)包的包頭進(jìn)行識(shí)別,以確定所述包頭是否攜帶有預(yù)設(shè)的包頭標(biāo)識(shí),具體的識(shí)別方式在下文實(shí)施例中詳述。
當(dāng)?shù)谝惶幚硇酒?01識(shí)別出包頭未攜帶預(yù)設(shè)的包頭標(biāo)識(shí)時(shí),發(fā)送重發(fā)消息給所述第二處理芯片002,以供所述第二處理芯片002重新發(fā)送所述數(shù)據(jù)包至所述第一處理芯片001。
即,第一處理芯片001識(shí)別出包頭未攜帶預(yù)設(shè)的包頭標(biāo)識(shí)時(shí),說明當(dāng)前接收到的數(shù)據(jù)包的已經(jīng)發(fā)生了內(nèi)容丟失,無(wú)法對(duì)該數(shù)據(jù)包進(jìn)行識(shí)別,也無(wú)法反饋?lái)憫?yīng)的數(shù)據(jù)包,因此,所述第一處理芯片001通過預(yù)設(shè)接口發(fā)送重發(fā)消息給所述第二處理芯片002,以供所述第二處理芯片002重新發(fā)送所述數(shù)據(jù)包至所述第一處理芯片001,例如,第一處理芯片001發(fā)送應(yīng)答消息“err”給第二處理芯片002,告知第二處理芯片002之前發(fā)送的數(shù)據(jù)包有誤,以便第二處理芯片002重新發(fā)送該數(shù)據(jù)包。本實(shí)施例中,所述重新消息的形式不做限定,可以是一個(gè)短消息如“err”或“retry”,也可以是一個(gè)預(yù)設(shè)字段,如“0001”,具體根據(jù)實(shí)際情況設(shè)定。
本實(shí)施例中,相當(dāng)于是當(dāng)?shù)谝惶幚硇酒?01識(shí)別出數(shù)據(jù)包為殘包時(shí),即檢測(cè)到數(shù)據(jù)包中沒有攜帶包頭標(biāo)記,此時(shí),會(huì)給第二處理芯片002反饋一個(gè)應(yīng)答err,例如,第一應(yīng)用處理器10通過usb接口將應(yīng)答err傳送第二應(yīng)用處理器20,此時(shí),第二應(yīng)用處理器20基于接收到的應(yīng)答err,通過usb接口重新發(fā)送該數(shù)據(jù)包給第一應(yīng)用處理器10,以完成數(shù)據(jù)的交互。
本實(shí)施例提出的數(shù)據(jù)包識(shí)別方法,第一處理芯片被喚醒時(shí),接收第二處理芯片通過所述預(yù)設(shè)接口發(fā)送的數(shù)據(jù)包;對(duì)接收的所述數(shù)據(jù)包的包頭進(jìn)行識(shí)別,以確定所述包頭是否攜帶有預(yù)設(shè)的包頭標(biāo)識(shí);若所述包頭未攜帶預(yù)設(shè)的包頭標(biāo)識(shí),則發(fā)送重發(fā)消息給所述第二處理芯片,以供所述第二處理芯片重新發(fā)送所述數(shù)據(jù)包至所述第一處理芯片。本方案在移動(dòng)終端中的第一處理芯片被喚醒時(shí),先對(duì)接收到的數(shù)據(jù)包的包頭進(jìn)行識(shí)別,在識(shí)別所述包頭未攜帶有預(yù)設(shè)包頭標(biāo)識(shí)時(shí),通知第二處理芯片重新發(fā)送該數(shù)據(jù)包,即使數(shù)據(jù)包內(nèi)容丟失,第一處理芯片也可以及時(shí)通知第二處理芯片重新發(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)D4,所述步驟s20包括:
步驟s21,所述第一處理芯片001解析所述包頭的第一字節(jié),以確定所述包頭的第一字節(jié)是否為預(yù)設(shè)字段;及/或計(jì)算所述包頭的第二字節(jié)和第三字節(jié)的長(zhǎng)度,并判斷所述長(zhǎng)度是否滿足預(yù)設(shè)條件;
步驟s22,若所述包頭的第一字節(jié)為預(yù)設(shè)字段,及/或所述長(zhǎng)度滿足預(yù)設(shè)條件,則確定所述包頭攜帶有預(yù)設(shè)的包頭標(biāo)識(shí)。
在本實(shí)施例中,所述預(yù)設(shè)條件優(yōu)選為:所述長(zhǎng)度為所述數(shù)據(jù)包的長(zhǎng)度與預(yù)設(shè)值的差值。即,計(jì)算所述包頭的第二字節(jié)和第三字節(jié)的長(zhǎng)度之后,判斷所述長(zhǎng)度是否滿足預(yù)設(shè)條件,具體是:計(jì)算數(shù)據(jù)包的長(zhǎng)度,然后將數(shù)據(jù)包的長(zhǎng)度減去預(yù)設(shè)值,以得到所述數(shù)據(jù)包的長(zhǎng)度與預(yù)設(shè)值的差值,其中,所述預(yù)設(shè)值不做限定,例如為1,在得到差值之后,再將第二字節(jié)和第三字節(jié)的長(zhǎng)度與所述差值進(jìn)行比較,以確定所述長(zhǎng)度是否與所述差值相等,若相等,說明第二字節(jié)和第三字節(jié)的長(zhǎng)度滿足條件。
一般情況下,用戶數(shù)據(jù)或控制信令數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)包的首字節(jié)為預(yù)設(shè)字段,所述預(yù)設(shè)字段不做限定,例如字段“0x01”,且第2、3字節(jié)共同表征一個(gè)長(zhǎng)度,值為整個(gè)數(shù)據(jù)包的長(zhǎng)度減預(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é)的長(zhǎng)度是否為整個(gè)數(shù)據(jù)包的長(zhǎng)度減預(yù)設(shè)值。若識(shí)別出包頭的首字節(jié)為預(yù)設(shè)字段0x01,且第2、3字節(jié)的值為整個(gè)數(shù)據(jù)包的長(zhǎng)度減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é)的長(zhǎng)度,并判斷所述長(zhǎng)度是否滿足預(yù)設(shè)條件;若所述長(zhǎng)度滿足預(yù)設(shè)條件,則確定所述包頭攜帶有預(yù)設(shè)的包頭標(biāo)識(shí)。
3)方式三、解析所述包頭的第一字節(jié),以確定所述包頭的第一字節(jié)是否為預(yù)設(shè)字段;以及計(jì)算所述包頭的第二字節(jié)和第三字節(jié)的長(zhǎng)度,并判斷所述長(zhǎng)度是否滿足預(yù)設(shè)條件;若所述包頭的第一字節(jié)為預(yù)設(shè)字段,且所述長(zhǎng)度滿足預(yù)設(shè)條件,則確定所述包頭攜帶有預(yù)設(shè)的包頭標(biāo)識(shí)。
本發(fā)明實(shí)施例中,可以根據(jù)具體需要設(shè)置上述三種方式的任意一種,但是為了提高數(shù)據(jù)包識(shí)別的準(zhǔn)確性,優(yōu)選采用方式三。
在采用方式三的情況下,所述處理芯片001接收到數(shù)據(jù)包之后,可采用多線程分析數(shù)據(jù)包的包頭,即通過一個(gè)線程解析包頭的第一字節(jié),以確定所述包頭的第一字節(jié)是否為預(yù)設(shè)字段。同時(shí),通過另一個(gè)線程計(jì)算所述包頭的第二字節(jié)和第三字節(jié)的長(zhǎng)度,并判斷所述長(zhǎng)度是否滿足預(yù)設(shè)條件,當(dāng)所述包頭的第一字節(jié)為預(yù)設(shè)字段,且所述長(zhǎng)度滿足預(yù)設(shè)條件,才確定所述包頭攜帶有預(yù)設(shè)的包頭標(biāo)識(shí)。
應(yīng)當(dāng)理解,采用多線程對(duì)包頭中的各個(gè)字節(jié)進(jìn)行并行分析,無(wú)須一個(gè)個(gè)先后分析,縮短了分析的時(shí)間,提高了分析的效率。
或者,所述處理芯片001接收到數(shù)據(jù)包之后,先解析包頭的第一節(jié)點(diǎn),以確定所述包頭的第一字節(jié)是否為預(yù)設(shè)字段,當(dāng)所述包頭的第一字節(jié)為預(yù)設(shè)字段時(shí),才計(jì)算所述包頭的第二字節(jié)和第三字節(jié)的長(zhǎng)度,并判斷所述長(zhǎng)度是否滿足預(yù)設(shè)條件,并在所述長(zhǎng)度滿足預(yù)設(shè)條件,則確定所述包頭攜帶有預(yù)設(shè)的包頭標(biāo)識(shí)。需要注意的是,當(dāng)所述包頭的第一字節(jié)不為預(yù)設(shè)字段,此時(shí),就無(wú)須再判斷第二字節(jié)和第三字節(jié)的長(zhǎng)度,直接認(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,所述第一處理芯片001識(shí)別所述數(shù)據(jù)包的長(zhǎng)度;
步驟b,在所述數(shù)據(jù)包的長(zhǎng)度大于預(yù)設(shè)長(zhǎng)度值,才執(zhí)行所述對(duì)接收的所述數(shù)據(jù)包的包頭進(jìn)行識(shí)別的步驟。
在本實(shí)施例中,所述第一處理芯片001被喚醒后接收到數(shù)據(jù)包時(shí),先識(shí)別該數(shù)據(jù)包的長(zhǎng)度,然后獲取預(yù)設(shè)長(zhǎng)度值,將識(shí)別的數(shù)據(jù)包的長(zhǎng)度與預(yù)設(shè)長(zhǎng)度值進(jìn)行比對(duì),以確定所述數(shù)據(jù)包的長(zhǎng)度是否大于預(yù)設(shè)長(zhǎng)度值,若所述數(shù)據(jù)包的長(zhǎng)度大于預(yù)設(shè)長(zhǎng)度值,所述第一處理芯片001才對(duì)接收的所述數(shù)據(jù)包的包頭進(jìn)行識(shí)別,若是識(shí)別出所述數(shù)據(jù)包的長(zhǎng)度小于或等于預(yù)設(shè)長(zhǎng)度值,此時(shí)可不對(duì)接收的所述數(shù)據(jù)包的包頭進(jìn)行識(shí)別。
此處需要說明的是,用戶數(shù)據(jù)或控制信令數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)包(data)的長(zhǎng)度一般大于6個(gè)字節(jié)對(duì)應(yīng)的長(zhǎng)度,而應(yīng)答消息對(duì)應(yīng)的數(shù)據(jù)包(ack)的長(zhǎng)度一般是4或者6個(gè)字節(jié)。
因此,當(dāng)?shù)谝惶幚硇酒?01被喚醒后接收到數(shù)據(jù)包時(shí),先通過包長(zhǎng)度判斷該數(shù)據(jù)包是ack還是data,若檢測(cè)出該數(shù)據(jù)包沒有大于6字節(jié)對(duì)應(yīng)的長(zhǎng)度,即可確認(rèn)該數(shù)據(jù)包是ack,此時(shí)說明第二處理芯片002還沒發(fā)送data,因此不會(huì)出現(xiàn)上述的丟包情況,當(dāng)檢測(cè)出該數(shù)據(jù)包大于6個(gè)字節(jié)對(duì)應(yīng)的長(zhǎng)度時(shí),才會(huì)對(duì)該數(shù)據(jù)包的包頭進(jìn)行解析。
可以理解,本實(shí)施例中,在接收到數(shù)據(jù)包之后,第一處理芯片001先對(duì)數(shù)據(jù)包的長(zhǎng)度進(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)D5,所述步驟s20之后,所述方法還包括:
步驟s40,若所述包頭攜帶有預(yù)設(shè)的包頭標(biāo)識(shí),則所述第一處理芯片001發(fā)送確認(rèn)消息給所述第二處理芯片002,以供所述第二處理芯片002繼續(xù)發(fā)送其它數(shù)據(jù)包至所述第一處理芯片001。
即本實(shí)施例中,第一處理芯片001若識(shí)別出包頭并沒有上述的包頭標(biāo)識(shí),此時(shí),認(rèn)為該數(shù)據(jù)包是殘包,在檢驗(yàn)出該數(shù)據(jù)包為殘包之后,會(huì)采用數(shù)據(jù)應(yīng)答機(jī)制進(jìn)行反饋,以供第二處理芯片002根據(jù)第一處理芯片001反饋的數(shù)據(jù)應(yīng)答機(jī)制決定繼續(xù)發(fā)包,還是重新發(fā)送數(shù)據(jù)包,具體地:
當(dāng)?shù)谝惶幚硇酒?01識(shí)別出數(shù)據(jù)包為有效的數(shù)據(jù)包時(shí),也就是檢測(cè)出數(shù)據(jù)包中攜帶有包頭標(biāo)記時(shí),此時(shí),會(huì)給第二處理芯片002反饋一個(gè)應(yīng)答ok,以通知第二處理芯片002當(dāng)前接收到的數(shù)據(jù)包是完整的數(shù)據(jù)包,例如:第一應(yīng)用處理器10通過usb數(shù)據(jù)線將應(yīng)答ok傳送給第二應(yīng)用處理器20,此時(shí),第二應(yīng)用處理器20根據(jù)第一應(yīng)用處理器10反饋的應(yīng)答ok,通過usb接口繼續(xù)發(fā)送其它的數(shù)據(jù)包給第一應(yīng)用處理器10,以完成數(shù)據(jù)包發(fā)送操作。
本實(shí)施例中,在識(shí)別出所述包頭攜帶有預(yù)設(shè)的包頭標(biāo)識(shí),則發(fā)送確認(rèn)消息給所述第二處理芯片002,以供所述第二處理芯片002繼續(xù)發(fā)送其它數(shù)據(jù)包至所述第一處理芯片001,從而完成數(shù)據(jù)的傳輸過程。
需要說明的是,在本文中,術(shù)語(yǔ)“包括”、“包含”或者其任何其它變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者系統(tǒng)不僅包括那些要素,而且還包括沒有明確列出的其它要素,或者是還包括為這種過程、方法、物品或者系統(tǒng)所固有的要素。在沒有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括該要素的過程、方法、物品或者系統(tǒng)中還存在另外的相同要素。
上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到上述實(shí)施例方法可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實(shí)施方式。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(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)。