本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)傳輸系統(tǒng)及方法。
背景技術(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)器,兩張用戶識(shí)別卡全開(kāi)時(shí),一張用戶識(shí)別卡(sim1)可以使用4g(the4thgenerationmobilecommunicationtechnology,第四代移動(dòng)通信技術(shù)),例如lte(longtermevolution,長(zhǎng)期演進(jìn)技術(shù))網(wǎng)絡(luò),另一張用戶識(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í)占用,由于兩張卡全開(kāi)時(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通信功能。但是在使用過(guò)程中,當(dāng)移動(dòng)終端和外接設(shè)備需要傳輸?shù)臄?shù)據(jù)是電信卡數(shù)據(jù)時(shí),會(huì)出現(xiàn)移動(dòng)終端死機(jī)的問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的主要目的在于提出一種數(shù)據(jù)傳輸系統(tǒng)及方法,旨在解決移動(dòng)終端通過(guò)外接設(shè)備實(shí)現(xiàn)雙lte通信過(guò)程中,移動(dòng)終端和外接設(shè)備之間傳輸電信卡數(shù)據(jù)時(shí),移動(dòng)終端容易出現(xiàn)死機(jī)的技術(shù)問(wèn)題。
為實(shí)現(xiàn)上述目的,本發(fā)明提供的一種數(shù)據(jù)傳輸系統(tǒng),數(shù)據(jù)傳輸系統(tǒng)包括移動(dòng)終端和外接設(shè)備,所述移動(dòng)終端包括第一調(diào)制解調(diào)器、第一臨時(shí)緩沖區(qū)和第一應(yīng)用處理器,所述第一調(diào)制解調(diào)器分別與第一用戶識(shí)別卡和第二用戶識(shí)別卡連接,所述外接設(shè)備包括第二應(yīng)用處理器、第二臨時(shí)緩沖區(qū)和第二調(diào)制解調(diào)器,其中,所述第一應(yīng)用處理器通過(guò)通用串行總線usb與所述第二應(yīng)用處理器連接,所述第一臨時(shí)緩沖區(qū)和所述第二臨時(shí)緩沖區(qū)的容量值是同步變化的;
所述第二應(yīng)用處理器,用于當(dāng)偵測(cè)到發(fā)送待傳輸數(shù)據(jù)包的數(shù)據(jù)傳輸指令時(shí),根據(jù)所述數(shù)據(jù)傳輸指令獲取待傳輸數(shù)據(jù)包;
所述第二應(yīng)用處理器還用于將所述待傳輸數(shù)據(jù)包緩存至所述第二臨時(shí)緩沖區(qū)中;
所述第一應(yīng)用處理器,用于從所述第一臨時(shí)緩沖區(qū)中獲取所述待傳輸數(shù)據(jù)包;
其中,所述第一臨時(shí)緩沖區(qū)和所述第二臨時(shí)緩沖區(qū)的容量值等于默認(rèn)容量值與增大值之和,且所述默認(rèn)容量值與所述增大值之和大于或者等于所述待傳輸數(shù)據(jù)包的大小。
可選地,所述第二應(yīng)用處理器還用于檢測(cè)所述待傳輸數(shù)據(jù)包的大小,并判斷所述待傳輸數(shù)據(jù)包的大小是否大于所述默認(rèn)容量值;
所述第二應(yīng)用處理器還用于當(dāng)所述待傳輸數(shù)據(jù)包的大小大于所述默認(rèn)容量值時(shí),計(jì)算所述待傳輸數(shù)據(jù)包的大小和所述默認(rèn)容量值之間的差值,根據(jù)所述差值確定所述增大值。
可選地,所述第二應(yīng)用處理器還用于當(dāng)所述待傳輸數(shù)據(jù)包的大小小于或者等于所述默認(rèn)容量值時(shí),將所述待傳輸數(shù)據(jù)包緩存至默認(rèn)容量值的所述第二臨時(shí)緩沖區(qū)中;
所述第一應(yīng)用處理器還用于從默認(rèn)容量值的所述第一臨時(shí)緩沖區(qū)中獲取所述待傳輸數(shù)據(jù)包。
可選地,所述第二應(yīng)用處理器還用于當(dāng)所述第一應(yīng)用處理器從所述第一臨時(shí)緩沖區(qū)獲取到所述待傳輸數(shù)據(jù)包時(shí),減小所述第二臨時(shí)緩沖區(qū)的容量值至所述默認(rèn)容量值。
可選地,所述第二應(yīng)用處理器還用于當(dāng)所述第一應(yīng)用處理器從所述第一臨時(shí)緩沖區(qū)獲取到所述待傳輸數(shù)據(jù)包時(shí),刪除所述第二臨時(shí)緩沖區(qū)中緩存的所述待傳輸數(shù)據(jù)包。
此外,為實(shí)現(xiàn)上述目的,本發(fā)明還提出一種數(shù)據(jù)傳輸方法,所述數(shù)據(jù)傳輸方法應(yīng)用于移動(dòng)終端,以及通過(guò)通用串行總線usb與所述移動(dòng)終端連接的外接設(shè)備,所述移動(dòng)終端包括第一調(diào)制解調(diào)器、第一臨時(shí)緩沖區(qū)和第一應(yīng)用處理器,所述第一調(diào)制解調(diào)器分別與第一用戶識(shí)別卡和第二用戶識(shí)別卡連接,所述外接設(shè)備包括第二應(yīng)用處理器、第二臨時(shí)緩沖區(qū)和第二調(diào)制解調(diào)器,其中,所述第一應(yīng)用處理器通過(guò)所述usb與所述第二應(yīng)用處理器連接,所述第一臨時(shí)緩沖區(qū)和所述第二臨時(shí)緩沖區(qū)的容量值是同步變化的;
當(dāng)所述第二應(yīng)用處理器偵測(cè)到發(fā)送待傳輸數(shù)據(jù)包的數(shù)據(jù)傳輸指令時(shí),所述第二應(yīng)用處理器根據(jù)所述數(shù)據(jù)傳輸指令獲取待傳輸數(shù)據(jù)包;
所述第二應(yīng)用處理器將所述待傳輸數(shù)據(jù)包緩存至所述第二臨時(shí)緩沖區(qū)中,以供所述第一應(yīng)用處理器從所述第一臨時(shí)緩沖區(qū)中獲取所述待傳輸數(shù)據(jù)包;
其中,所述第一臨時(shí)緩沖區(qū)和所述第二臨時(shí)緩沖區(qū)的容量值等于默認(rèn)容量值與增大值之和,且所述默認(rèn)容量值與所述增大值之和大于或者等于所述待傳輸數(shù)據(jù)包的大小。
可選地,所述第二應(yīng)用處理器將所述待傳輸數(shù)據(jù)包緩存至所述第二臨時(shí)緩沖區(qū)中的步驟之前,還包括:
所述第二應(yīng)用處理器檢測(cè)所述待傳輸數(shù)據(jù)包的大小,并判斷所述待傳輸數(shù)據(jù)包的大小是否大于所述默認(rèn)容量值;
當(dāng)所述待傳輸數(shù)據(jù)包的大小大于所述默認(rèn)容量值時(shí),所述第二應(yīng)用處理器計(jì)算所述待傳輸數(shù)據(jù)包的大小和所述默認(rèn)容量值之間的差值,根據(jù)所述差值確定所述增大值。
可選地,所述第二應(yīng)用處理器檢測(cè)所述待傳輸數(shù)據(jù)包的大小,并判斷所述待傳輸數(shù)據(jù)包的大小是否大于所述默認(rèn)容量值的步驟之后,還包括:
當(dāng)所述待傳輸數(shù)據(jù)包的大小小于或者等于所述默認(rèn)容量值時(shí),所述第二應(yīng)用處理器將所述待傳輸數(shù)據(jù)包緩存至默認(rèn)容量值的所述第二臨時(shí)緩沖區(qū)中,以供所述第一應(yīng)用處理器從默認(rèn)容量值的所述第一臨時(shí)緩沖區(qū)中獲取所述待傳輸數(shù)據(jù)包。
可選地,所述第二應(yīng)用處理器將所述待傳輸數(shù)據(jù)包緩存至所述第二臨時(shí)緩沖區(qū)中,以供所述第一應(yīng)用處理器從所述第一臨時(shí)緩沖區(qū)中獲取所述待傳輸數(shù)據(jù)包的步驟之后,還包括:
當(dāng)所述第一應(yīng)用處理器從所述第一臨時(shí)緩沖區(qū)獲取到所述待傳輸數(shù)據(jù)包時(shí),所述第二應(yīng)用處理器減小所述第二臨時(shí)緩沖區(qū)的容量值至所述默認(rèn)容量值。
可選地,所述第二應(yīng)用處理器將所述待傳輸數(shù)據(jù)包緩存至所述第二臨時(shí)緩沖區(qū)中,以供所述第一應(yīng)用處理器從所述第一臨時(shí)緩沖區(qū)中獲取所述待傳輸數(shù)據(jù)包的步驟之后,還包括:
當(dāng)所述第一應(yīng)用處理器從所述第一臨時(shí)緩沖區(qū)獲取到所述待傳輸數(shù)據(jù)包時(shí),所述第二應(yīng)用處理器刪除所述第二臨時(shí)緩沖區(qū)中緩存的所述待傳輸數(shù)據(jù)包。
本發(fā)明提供一種數(shù)據(jù)傳輸系統(tǒng)及方法,所述數(shù)據(jù)傳輸方法應(yīng)用于移動(dòng)終端,以及通過(guò)通用串行總線usb與所述移動(dòng)終端連接的外接設(shè)備,所述移動(dòng)終端包括第一調(diào)制解調(diào)器、第一臨時(shí)緩沖區(qū)和第一應(yīng)用處理器,所述第一調(diào)制解調(diào)器分別與第一用戶識(shí)別卡和第二用戶識(shí)別卡連接,所述外接設(shè)備包括第二應(yīng)用處理器、第二臨時(shí)緩沖區(qū)和第二調(diào)制解調(diào)器,其中,所述第一應(yīng)用處理器通過(guò)所述usb與所述第二應(yīng)用處理器連接,所述第一臨時(shí)緩沖區(qū)和所述第二臨時(shí)緩沖區(qū)的容量值是同步變化的;當(dāng)所述第二應(yīng)用處理器偵測(cè)到發(fā)送待傳輸數(shù)據(jù)包的數(shù)據(jù)傳輸指令時(shí),所述第二應(yīng)用處理器根據(jù)所述數(shù)據(jù)傳輸指令獲取待傳輸數(shù)據(jù)包;所述第二應(yīng)用處理器將所述待傳輸數(shù)據(jù)包緩存至所述第二臨時(shí)緩沖區(qū)中,以供所述第一應(yīng)用處理器從所述第一臨時(shí)緩沖區(qū)中獲取所述待傳輸數(shù)據(jù)包;其中,所述第一臨時(shí)緩沖區(qū)和所述第二臨時(shí)緩沖區(qū)的容量值等于默認(rèn)容量值與增大值之和,且所述默認(rèn)容量值與所述增大值之和大于或者等于所述待傳輸數(shù)據(jù)包的大小。通過(guò)增大移動(dòng)終端和外接設(shè)備之間用于緩存數(shù)據(jù)的臨時(shí)緩沖區(qū)的容量值,避免了在移動(dòng)終端和外接設(shè)備傳輸電信卡數(shù)據(jù)過(guò)程中,由于電信卡對(duì)應(yīng)某些的數(shù)據(jù)包的大小大于臨時(shí)緩沖區(qū)的容量值,導(dǎo)致移動(dòng)終端死機(jī)的情況出現(xiàn)。
附圖說(shuō)明
圖1為本發(fā)明一實(shí)施例的lte網(wǎng)絡(luò)架構(gòu)的示意圖;
圖2為本發(fā)明實(shí)施例中移動(dòng)終端和外接設(shè)備通訊連接的一種硬件結(jié)構(gòu)示意圖;
圖3為本發(fā)明實(shí)施例中移動(dòng)終端和外接設(shè)備通訊連接的一種實(shí)體結(jié)構(gòu)示意圖;
圖4為本發(fā)明數(shù)據(jù)傳輸方法第一實(shí)施例的流程示意圖;
圖5為本發(fā)明數(shù)據(jù)傳輸方法第二實(shí)施例的流程示意圖;
圖6為本發(fā)明數(shù)據(jù)傳輸方法第三實(shí)施例的流程示意圖;
圖7為本發(fā)明數(shù)據(jù)傳輸方法第四實(shí)施例的流程示意圖。
本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做說(shuō)明。
具體實(shí)施方式
應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
現(xiàn)在將參考附圖描述實(shí)現(xiàn)本發(fā)明各個(gè)實(shí)施例的移動(dòng)終端。在后續(xù)的描述中,使用用于表示元件的諸如“模塊”、“部件”或“單元”的后綴僅為了有利于本發(fā)明的說(shuō)明,其本身并沒(méi)有特定的意義。因此,"模塊"與"部件"可以混合地使用。
圖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也可稱(chēng)為基站、基收發(fā)機(jī)站、無(wú)線電基站、無(wú)線電收發(fā)機(jī)、收發(fā)機(jī)功能、基本服務(wù)集、擴(kuò)展服務(wù)集、或其他某個(gè)合適的術(shù)語(yǔ)。enodeb101為移動(dòng)終端100提供去往epc的接入點(diǎn)。
enodeb101通過(guò)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分組通過(guò)服務(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)可以通過(guò)iws和mme(mobilitymanagemententity,移動(dòng)管理實(shí)體)與eps(evolvedpacketsystem,演進(jìn)的分組系統(tǒng))進(jìn)行通信。
圖2為本發(fā)明實(shí)施例中移動(dòng)終端和外接設(shè)備通訊連接的一種硬件結(jié)構(gòu)示意圖。在本發(fā)明實(shí)施例中,移動(dòng)終端100通過(guò)usb(universalserialbus,通用串行總線)與外接設(shè)備200連接。移動(dòng)終端100包括第一處理芯片001和與第一處理芯片001連接的第一射頻模塊12。其中,第一處理芯片001包括第一應(yīng)用處理器(applicationprocessor)10、與第一用戶識(shí)別卡13和第二用戶識(shí)別卡14連接的第一調(diào)制解調(diào)器11(modem1)和rpm(resourcepowermanager,資源電源管理器)15。第一應(yīng)用處理器10包括第一臨時(shí)緩沖區(qū)(buffer1)。外接設(shè)備200包括第二處理芯片002和與第二處理芯片002連接的第二射頻模塊22。其中,第二處理芯片002包括第二應(yīng)用處理器20和第二調(diào)制解調(diào)器(modem2)21,第二應(yīng)用處理器20包括第二臨時(shí)緩沖區(qū)(buffer2)。用戶識(shí)別卡為sim卡。
usb與第一應(yīng)用處理器10和第二應(yīng)用處理器20連接的兩端設(shè)置有用于緩存待傳輸數(shù)據(jù)包的臨時(shí)緩沖區(qū)。具體地,usb與第一應(yīng)用處理器10連接處設(shè)置有第一臨時(shí)緩沖區(qū),usb與第二應(yīng)用處理器20連接處設(shè)置有第二臨時(shí)緩沖區(qū)。當(dāng)外接設(shè)備200為數(shù)據(jù)發(fā)送端,移動(dòng)終端100為數(shù)據(jù)接收端時(shí),第二臨時(shí)緩沖區(qū)為輸出緩沖區(qū),用于暫時(shí)存儲(chǔ)需要發(fā)送給第一應(yīng)用處理器10的數(shù)據(jù)包;第一臨時(shí)緩沖區(qū)為輸入緩沖區(qū),用于暫時(shí)存儲(chǔ)第二應(yīng)用處理器20發(fā)送的數(shù)據(jù)包。當(dāng)移動(dòng)終端100為數(shù)據(jù)發(fā)送端,外接設(shè)備200為數(shù)據(jù)接收端時(shí),第二臨時(shí)緩沖區(qū)為輸入緩沖區(qū),第一臨時(shí)緩沖區(qū)為輸出緩沖區(qū)。需要說(shuō)明的是,第一臨時(shí)緩沖區(qū)和第二臨時(shí)緩沖區(qū)對(duì)應(yīng)著同一個(gè)物理地址,通過(guò)該物理地址,可控制第一臨時(shí)緩沖區(qū)和第二臨時(shí)緩沖區(qū)容量值和狀態(tài)的同步變化。由于第一臨時(shí)緩沖區(qū)和第二臨時(shí)緩沖區(qū)對(duì)應(yīng)著同一個(gè)物理地址,當(dāng)?shù)诙?yīng)用處理器20將待傳輸數(shù)據(jù)包緩存至第二臨時(shí)緩沖區(qū)中時(shí),第一應(yīng)用處理器10即可檢測(cè)到該待傳輸數(shù)據(jù)包,從第一臨時(shí)緩沖區(qū)中讀取到待傳輸數(shù)據(jù)包,以獲取到該待傳輸數(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,安卓安裝包)。第一應(yīng)用處理器10和第二應(yīng)用處理器20通過(guò)usb實(shí)現(xiàn)連接,為用戶提供交互接口,將用戶輸入的操作指令(例如,用戶通過(guò)用戶界面輸入的有關(guān)啟動(dòng)視頻通話的操作指令)傳輸給第一調(diào)制解調(diào)器11或第二調(diào)制解調(diào)器21,以實(shí)現(xiàn)兩個(gè)處理器之間數(shù)據(jù)的定義與傳遞,例如,進(jìn)行兩個(gè)應(yīng)用處理器的休眠、喚醒、同步的控制、開(kāi)關(guān)機(jī)時(shí)芯片啟動(dòng)順序的控制等。
第一應(yīng)用處理器10通過(guò)usb與第二應(yīng)用處理器20連接,以實(shí)現(xiàn)移動(dòng)終端100與外接設(shè)備200之間的連接。在本發(fā)明實(shí)施例中,usb復(fù)用出三條數(shù)據(jù)通道,分別用于第一應(yīng)用處理器10和第二應(yīng)用處理器20之間用戶數(shù)據(jù)、信令數(shù)據(jù)和sim卡鑒權(quán)數(shù)據(jù)的交互。即第一應(yīng)用處理器10和第二應(yīng)用處理器20通過(guò)usb傳輸用戶數(shù)據(jù)、信令數(shù)據(jù)和sim卡鑒權(quán)數(shù)據(jù)。其中,用戶數(shù)據(jù)包括但不限于上網(wǎng)產(chǎn)生的數(shù)據(jù),圖片和聊天信息數(shù)據(jù);信令數(shù)據(jù)包括但不限于開(kāi)關(guān)機(jī)的控制數(shù)據(jù),開(kāi)關(guān)飛行模式的控制數(shù)據(jù),顯示狀態(tài)信號(hào)的控制數(shù)據(jù);sim卡鑒權(quán)數(shù)據(jù)包括但不限于imsi(internationalmobilesubscriberidentificationnumber,國(guó)際移動(dòng)用戶識(shí)別碼)和ki(keyidentifier,鑒權(quán)密鑰)。
具體地,第一應(yīng)用處理器10和第二應(yīng)用處理器20通過(guò)otg(on-the-go)技術(shù)進(jìn)行數(shù)據(jù)交互。通過(guò)otg技術(shù),移動(dòng)終端100中的第一調(diào)制解調(diào)器11可通過(guò)實(shí)體用戶識(shí)別卡14或嵌入式用戶識(shí)別卡13中的sim卡參數(shù)來(lái)接入enodeb101,第二調(diào)制解調(diào)器21可通過(guò)實(shí)體用戶識(shí)別卡14或嵌入式用戶識(shí)別卡13的sim卡參數(shù)來(lái)接入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/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通過(guò)協(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用于將移動(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。
第一用戶識(shí)別卡13和第二用戶識(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í)別卡13和第二用戶識(shí)別卡14可存儲(chǔ)與不同或相同的技術(shù)標(biāo)準(zhǔn)相關(guān)聯(lián)的用戶信息。在特定非限制性實(shí)例中,技術(shù)標(biāo)準(zhǔn)可為2g通信技術(shù),例如,gsm、edge)、3g通信技術(shù)(例如,wcdma、td-scdma)、4g通信技術(shù)(例如,lte),或任何其它移動(dòng)通信技術(shù)(例如,4g等等)。第一用戶識(shí)別卡13和第二用戶識(shí)別卡14優(yōu)選為sim卡。
第一用戶識(shí)別卡13和第二用戶識(shí)別卡14在與移動(dòng)終端100交互時(shí),移動(dòng)終端100檢測(cè)用戶識(shí)別卡存在與否的信號(hào)只在開(kāi)機(jī)瞬時(shí)產(chǎn)生,當(dāng)開(kāi)機(jī)檢測(cè)不到用戶識(shí)別卡存在時(shí),將提示“插入用戶識(shí)別卡”。移動(dòng)終端100開(kāi)機(jī)之后,移動(dòng)終端100和用戶識(shí)別卡之間28秒通信一次,完成一些固定的通信檢查(例如,用戶識(shí)別卡是否在位等)。
由于目前的移動(dòng)終端100只有一套射頻模塊,當(dāng)移動(dòng)終端100有兩張用戶識(shí)別卡時(shí),移動(dòng)終端100的兩張用戶識(shí)別卡使用該套射頻是分時(shí)復(fù)用的關(guān)系,并不能同時(shí)占用。例如,在兩張用戶識(shí)別卡全開(kāi)時(shí),其中一張用戶識(shí)別卡只處理gsm通話,而另一張用戶識(shí)別卡處理4g網(wǎng)絡(luò)信息,具體哪張用戶識(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ò)的情況下,兩張用戶識(shí)別卡支持的是不同技術(shù)標(biāo)準(zhǔn)的網(wǎng)絡(luò),一張支持2g或3g,另一張支持4g,會(huì)使得移動(dòng)終端100使用過(guò)程中,上網(wǎng)流量速度較慢。在本發(fā)明實(shí)施例中,移動(dòng)終端100通過(guò)usb連接外接設(shè)備200,由于外接設(shè)備200包括第二調(diào)制解調(diào)器21和第二射頻模塊22,且第二射頻模塊22支持4g網(wǎng)絡(luò),因此,移動(dòng)終端100可通過(guò)usb與外接設(shè)備200交互,從而使得移動(dòng)終端100具備雙lte功能(此時(shí)第一用戶識(shí)別卡13和第二用戶識(shí)別卡14管理的技術(shù)標(biāo)準(zhǔn)均為lte標(biāo)準(zhǔn),第一射頻模塊12和第二射頻模塊22所涉及的無(wú)線接入技術(shù)為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)移動(dòng)終端100有一個(gè)子或者多個(gè)子系統(tǒng)投反對(duì)休眠的票,移動(dòng)終端100整個(gè)系統(tǒng)都無(wú)法休眠。
在移動(dòng)終端100的整個(gè)系統(tǒng)休眠之后,若是要重新啟動(dòng)運(yùn)行,需要喚醒第一應(yīng)用處理器10以進(jìn)行數(shù)據(jù)的傳輸交互。
在移動(dòng)終端100和外接設(shè)備200通過(guò)usb通訊連接的情況下,喚醒方式可為以下三種:
1、第一應(yīng)用處理器10接收到信令數(shù)據(jù)時(shí),通過(guò)usb發(fā)送握手關(guān)鍵字給第二應(yīng)用處理器20,以喚醒第二應(yīng)用處理器20。
2、第二調(diào)制解調(diào)器21接收到用戶數(shù)據(jù)時(shí),喚醒第二應(yīng)用處理器20,由第二應(yīng)用處理器20通過(guò)usb傳送握手關(guān)鍵字給第一應(yīng)用處理器10,以喚醒第一應(yīng)用處理器10。
3、第二調(diào)制解調(diào)器21周期性查找尋呼請(qǐng)求,以主動(dòng)激活自己。若接收到尋呼請(qǐng)求,第二調(diào)制解調(diào)器21則喚醒第二應(yīng)用處理器20,由第二應(yīng)用處理器20通過(guò)usb發(fā)送握手關(guān)鍵字給第一應(yīng)用處理器10,以喚醒第二應(yīng)用處理器20。
需要說(shuō)明的是,握手關(guān)鍵字可用固定字長(zhǎng)的字符標(biāo)識(shí),是正常數(shù)據(jù)包中不會(huì)出現(xiàn)的字段。如可用0xf9f9f9或者0x9f9f9f表示握手關(guān)鍵字,通過(guò)握手關(guān)鍵字可喚醒處于睡眠狀態(tài)的第一應(yīng)用處理器10或第二應(yīng)用處理器20。
此外,第二調(diào)制解調(diào)器21還可以定期喚醒自己,以在移動(dòng)終端100進(jìn)行位置更新時(shí),跟基站進(jìn)行握手交互,此時(shí)不需要喚醒第一應(yīng)用處理器10。
參照?qǐng)D3,圖3為本發(fā)明移動(dòng)終端100和外接設(shè)備200通訊連接的實(shí)體結(jié)構(gòu)示意圖。移動(dòng)終端100通過(guò)usb與外接設(shè)備200通訊連接,其中,移動(dòng)終端包括但不限于手機(jī)、pc(personalcomputer,個(gè)人電腦)或pad(personaldigitalassistant,個(gè)人數(shù)字助理),外接設(shè)備200包括但不限于無(wú)線上網(wǎng)卡和數(shù)據(jù)卡。需要說(shuō)明的是,移動(dòng)終端100通過(guò)usb與外接設(shè)備200連接位置并不限于圖3所示,可根據(jù)具體需要來(lái)設(shè)置移動(dòng)終端100通過(guò)usb與外接設(shè)備200的連接位置。
在本發(fā)明實(shí)施例中,第一用戶識(shí)別卡13和第二用戶識(shí)別卡14可為移動(dòng)卡、聯(lián)通卡和電信卡中的其中一種。其中,移動(dòng)卡和聯(lián)通卡是指采用3gpp標(biāo)準(zhǔn)協(xié)議進(jìn)行通訊的電話卡,3gpp標(biāo)準(zhǔn)協(xié)議規(guī)定了電話卡傳輸數(shù)據(jù)包的大小不能超出一定值,一般情況下,該值為512字節(jié);而電信卡是指采用3gpp2標(biāo)準(zhǔn)協(xié)議的電話卡,gpp2標(biāo)準(zhǔn)協(xié)議對(duì)電信卡傳輸?shù)臄?shù)據(jù)包的大小未做限制,因此電信卡傳輸?shù)臄?shù)據(jù)包的大小可能會(huì)大于512字節(jié)。
需要說(shuō)明,在移動(dòng)終端100和外接設(shè)備200數(shù)據(jù)傳輸過(guò)程中,是由發(fā)送端將數(shù)據(jù)包存儲(chǔ)到對(duì)應(yīng)的臨時(shí)緩沖區(qū)中,然后接收端再?gòu)膶?duì)應(yīng)的臨時(shí)緩沖區(qū)中提取數(shù)據(jù)包,以實(shí)現(xiàn)待傳輸數(shù)據(jù)包的交互。
當(dāng)移動(dòng)終端100中的第一用戶識(shí)別卡13和第二用戶識(shí)別卡14都是移動(dòng)卡或者是聯(lián)通卡時(shí),由于移動(dòng)卡或者聯(lián)通卡的數(shù)據(jù)包的大小都是小于512字節(jié)的,且第一臨時(shí)緩沖區(qū)和第二臨時(shí)緩沖區(qū)的默認(rèn)容量值一般都是512字節(jié)。因此,在移動(dòng)終端100和外接設(shè)備200數(shù)據(jù)傳輸過(guò)程中(以移動(dòng)終端100為接收端,外接設(shè)備200為發(fā)送端為例進(jìn)行說(shuō)明),外接設(shè)備200存儲(chǔ)到第二臨時(shí)緩沖區(qū)的數(shù)據(jù)包都是小于512字節(jié)的,數(shù)據(jù)包可以完整的存儲(chǔ)到第二臨時(shí)緩沖區(qū)中。但是當(dāng)?shù)谝挥脩糇R(shí)別卡13和/或第二用戶識(shí)別卡14是電信卡,且電信卡對(duì)應(yīng)的數(shù)據(jù)包的大小大于512字節(jié)時(shí),會(huì)由于第二臨時(shí)緩沖區(qū)的默認(rèn)容量值小于移動(dòng)終端100和外接設(shè)備200所傳輸?shù)臄?shù)據(jù)包大小,導(dǎo)致移動(dòng)終端100出現(xiàn)死機(jī)的情況。
基于上述的lte網(wǎng)絡(luò)架構(gòu)圖、移動(dòng)終端100和外接設(shè)備200通訊連接的硬件結(jié)構(gòu)示意圖、實(shí)體結(jié)構(gòu)示意圖以及現(xiàn)有技術(shù)存在的問(wèn)題,提出本發(fā)明的各個(gè)實(shí)施例。
本實(shí)施例提出一種數(shù)據(jù)傳輸系統(tǒng),數(shù)據(jù)傳輸系統(tǒng)包括移動(dòng)終端100和外接設(shè)備200,移動(dòng)終端100包括第一射頻模塊12、第一調(diào)制解調(diào)器11、第一臨時(shí)緩沖區(qū)和第一應(yīng)用處理器10,第一調(diào)制解調(diào)器11分別與第一用戶識(shí)別卡13和第二用戶識(shí)別卡14連接,外接設(shè)備200包括第二應(yīng)用處理器20、第二射頻模塊22、第二臨時(shí)緩沖區(qū)和第二調(diào)制解調(diào)器21。
第二應(yīng)用處理器20,用于當(dāng)偵測(cè)到發(fā)送待傳輸數(shù)據(jù)包的數(shù)據(jù)傳輸指令時(shí),根據(jù)數(shù)據(jù)傳輸指令獲取待傳輸數(shù)據(jù)包。
第二應(yīng)用處理器20還用于將待傳輸數(shù)據(jù)包緩存至第二臨時(shí)緩沖區(qū)中。
第一應(yīng)用處理器10,用于從第一臨時(shí)緩沖區(qū)中獲取待傳輸數(shù)據(jù)包。
其中,第一臨時(shí)緩沖區(qū)和第二臨時(shí)緩沖區(qū)的容量值等于默認(rèn)容量值與增大值之和,且默認(rèn)容量值與增大值之和大于或者等于待傳輸數(shù)據(jù)包的大小。
本實(shí)施例以外接設(shè)備200為發(fā)送端,移動(dòng)終端100為接收端為例進(jìn)行說(shuō)明??梢岳斫獾氖牵?dāng)移動(dòng)終端100為發(fā)送端,外接設(shè)備200為接收端時(shí),移動(dòng)終端100和外接設(shè)備200之間進(jìn)行數(shù)據(jù)傳輸?shù)脑砼c外接設(shè)備200為發(fā)送端,移動(dòng)終端100為接收端的數(shù)據(jù)傳輸原理一致,在此不再贅述。
當(dāng)外接設(shè)備200的第二應(yīng)用處理器20偵測(cè)到發(fā)送待傳輸數(shù)據(jù)包的數(shù)據(jù)傳輸指令時(shí),第二應(yīng)用處理器20根據(jù)數(shù)據(jù)傳輸指令獲取待傳輸數(shù)據(jù)包。其中,當(dāng)?shù)诙?yīng)用處理器20接收到enodeb101的數(shù)據(jù)請(qǐng)求,或者第二應(yīng)用處理器20需要獲取移動(dòng)終端100中的第一用戶識(shí)別卡13或第二用戶識(shí)別卡14的數(shù)據(jù),或者第二應(yīng)用處理器20有鑒權(quán)需求等時(shí),第二應(yīng)用處理器20就會(huì)觸發(fā)數(shù)據(jù)傳輸指令。具體地,第二應(yīng)用處理器20通過(guò)usb將所獲取的待傳輸數(shù)據(jù)包發(fā)送給移動(dòng)終端100的第一應(yīng)用處理器10。
在本發(fā)明實(shí)施例中,第一臨時(shí)緩沖區(qū)要占用移動(dòng)終端100的內(nèi)存空間,第二臨時(shí)緩沖區(qū)要占用外接設(shè)備200的內(nèi)存空間。如當(dāng)?shù)诙R時(shí)緩沖區(qū)的容量值為512字節(jié),外接設(shè)備200的內(nèi)存空間1024字節(jié)時(shí),第二臨時(shí)緩沖區(qū)的512字節(jié)需要占用外接設(shè)備200內(nèi)存空間中的512字節(jié)。
在本發(fā)明實(shí)施例中,第一臨時(shí)緩沖區(qū)和第二臨時(shí)緩沖區(qū)的容量值等于默認(rèn)容量值與增大值之和,其中,默認(rèn)容量值與增大值之和大于或者等于待傳輸數(shù)據(jù)包的大小。具體地,可在第二應(yīng)用處理器20偵測(cè)到數(shù)據(jù)傳輸指令時(shí),調(diào)用與第二臨時(shí)緩沖區(qū)對(duì)應(yīng)的驅(qū)動(dòng)接口,增大第二臨時(shí)緩沖區(qū)的容量值。需要說(shuō)明的是,由于第二臨時(shí)緩沖區(qū)和第一臨時(shí)緩沖區(qū)對(duì)應(yīng)著同一個(gè)物理地址,因此當(dāng)?shù)诙?yīng)用處理器20增大第二臨時(shí)緩沖區(qū)的容量值時(shí),第一臨時(shí)緩沖區(qū)的容量值也同步增大。在本實(shí)施例中,第一臨時(shí)緩沖區(qū)和第二臨時(shí)緩沖區(qū)的容量值增大后,是固定不變的,不會(huì)再次改變。
移動(dòng)終端100和外接設(shè)備200在數(shù)據(jù)傳輸過(guò)程中所用的第一臨時(shí)緩沖區(qū)和第二臨時(shí)緩沖區(qū)的容量一般都是512個(gè)字節(jié),因此,在本發(fā)明實(shí)施例中,第一臨時(shí)緩沖區(qū)和第二臨時(shí)緩沖區(qū)的默認(rèn)容量值可設(shè)置為512字節(jié)。為了保證移動(dòng)終端100和外接設(shè)備200之間的待傳輸數(shù)據(jù)包可以全部成功傳輸,增大值和默認(rèn)容量值之和應(yīng)大于或者等于移動(dòng)終端100和外接設(shè)備200傳輸?shù)淖畲蟠齻鬏敂?shù)據(jù)包的大小。如當(dāng)最大待傳輸數(shù)據(jù)包的大小為3千字節(jié)時(shí),增大值和默認(rèn)容量值之和應(yīng)大于或者等于3千字節(jié)。
當(dāng)?shù)诙?yīng)用處理器20獲取到待傳輸數(shù)據(jù)包時(shí),第二應(yīng)用處理器20將待傳輸數(shù)據(jù)包緩存至第二臨時(shí)緩沖區(qū)中,以供第一應(yīng)用處理器10從第一臨時(shí)緩沖區(qū)獲取待傳輸數(shù)據(jù)包。當(dāng)?shù)诙?yīng)用處理器20已將待傳輸數(shù)據(jù)包成功寫(xiě)入第二臨時(shí)緩沖區(qū)中時(shí),第一應(yīng)用處理器10即可從第一臨時(shí)緩沖區(qū)檢測(cè)并獲取到待傳輸數(shù)據(jù)包,并將所獲取的待傳輸數(shù)據(jù)包發(fā)送給第一調(diào)制解調(diào)器11(由于第一臨時(shí)緩沖區(qū)和第二臨時(shí)緩沖區(qū)對(duì)應(yīng)著同一個(gè)物理地址,因此,當(dāng)?shù)诙?yīng)用處理器20待傳輸數(shù)據(jù)包寫(xiě)入第二臨時(shí)緩沖區(qū)時(shí),第一應(yīng)用處理器10即可在第一臨時(shí)緩沖區(qū)中檢測(cè)到該待傳輸數(shù)據(jù)包)。
當(dāng)?shù)谝徽{(diào)制解調(diào)器11接收到待傳輸數(shù)據(jù)包時(shí),第一調(diào)制解調(diào)器11根據(jù)待傳輸數(shù)據(jù)包從第一用戶識(shí)別卡13或第二用戶識(shí)別卡14獲取對(duì)應(yīng)的數(shù)據(jù)響應(yīng)待傳輸數(shù)據(jù)包,得到響應(yīng)數(shù)據(jù)包,并將響應(yīng)數(shù)據(jù)包按原路返回給外接設(shè)備200的第二應(yīng)用處理器20。在第一調(diào)制解調(diào)器11根據(jù)待傳輸數(shù)據(jù)包從第一用戶識(shí)別卡13或第二用戶識(shí)別卡14獲取對(duì)應(yīng)的數(shù)據(jù)響應(yīng)該待傳輸數(shù)據(jù)包過(guò)程中,第一調(diào)制解調(diào)器11不會(huì)直接與第一用戶識(shí)別卡13或第二用戶識(shí)別卡14中的文件存儲(chǔ)模塊交互,而是先向第一用戶識(shí)別卡13或第二用戶識(shí)別卡14中的cos(chipoperatingsystem,片內(nèi)操作系統(tǒng))操作系統(tǒng)發(fā)送數(shù)據(jù)獲取請(qǐng)求,然后第一用戶識(shí)別卡13或第二用戶識(shí)別卡14的cos操作系統(tǒng)基于該數(shù)據(jù)獲取請(qǐng)求在文件存儲(chǔ)模塊中獲取數(shù)據(jù),然后將獲取的數(shù)據(jù)再傳輸給第一調(diào)制解調(diào)器11,以實(shí)現(xiàn)待傳輸數(shù)據(jù)包的響應(yīng)。
本實(shí)施例通過(guò)當(dāng)?shù)诙?yīng)用處理器20偵測(cè)到發(fā)送待傳輸數(shù)據(jù)包的數(shù)據(jù)傳輸指令時(shí),第二應(yīng)用處理器20根據(jù)數(shù)據(jù)傳輸指令獲取待傳輸數(shù)據(jù)包;第二應(yīng)用處理器20將待傳輸數(shù)據(jù)包緩存至第二臨時(shí)緩沖區(qū)中,以供第一應(yīng)用處理器10從第一臨時(shí)緩沖區(qū)中獲取待傳輸數(shù)據(jù)包;其中,第一臨時(shí)緩沖區(qū)和第二臨時(shí)緩沖區(qū)的容量值等于默認(rèn)容量值與增大值之和,且默認(rèn)容量值與增大值之和大于或者等于待傳輸數(shù)據(jù)包的大小。通過(guò)增大移動(dòng)終端100和外接設(shè)備200之間用于緩存數(shù)據(jù)的臨時(shí)緩沖區(qū)的容量值,避免了在移動(dòng)終端100和外接設(shè)備200傳輸電信卡數(shù)據(jù)過(guò)程中,由于電信卡對(duì)應(yīng)某些的數(shù)據(jù)包大小大于臨時(shí)緩沖區(qū)的容量值,導(dǎo)致移動(dòng)終端100死機(jī)的情況出現(xiàn)。
進(jìn)一步地,通過(guò)增大移動(dòng)終端100和外接設(shè)備200之間用于數(shù)據(jù)傳輸?shù)呐R時(shí)緩沖區(qū)的默認(rèn)容量值,使待傳輸數(shù)據(jù)包的大小小于或者等于臨時(shí)緩沖區(qū)的容量值,實(shí)現(xiàn)了在外接設(shè)備200和移動(dòng)終端100進(jìn)行數(shù)據(jù)傳輸過(guò)程中,當(dāng)所傳輸?shù)拇齻鬏敂?shù)據(jù)包的大小大于臨時(shí)緩沖區(qū)的默認(rèn)容量值時(shí),不需要拆分待傳輸數(shù)據(jù)包,可直接傳輸一個(gè)完整的待傳輸數(shù)據(jù)包,提高了待傳輸數(shù)據(jù)包傳輸效率,同時(shí),由于不需要拆分待傳輸數(shù)據(jù)包,因此避免了在拆分待傳輸數(shù)據(jù)包后,所拆分的某一待傳輸數(shù)據(jù)包丟失,或者在待傳輸數(shù)據(jù)包合成過(guò)程中,合成失敗的情況出現(xiàn),提高了待傳輸數(shù)據(jù)包傳輸成功率。
進(jìn)一步地,提出本發(fā)明數(shù)據(jù)傳輸系統(tǒng)第二實(shí)施例。
數(shù)據(jù)傳輸系統(tǒng)第二實(shí)施例與數(shù)據(jù)傳輸系統(tǒng)第一實(shí)施例的區(qū)別在于,第二應(yīng)用處理器20還用于檢測(cè)待傳輸數(shù)據(jù)包的大小,并判斷待傳輸數(shù)據(jù)包的大小是否大于默認(rèn)容量值;
第二應(yīng)用處理器20還用于當(dāng)待傳輸數(shù)據(jù)包的大小大于默認(rèn)容量值時(shí),計(jì)算待傳輸數(shù)據(jù)包的大小和默認(rèn)容量值之間的差值,根據(jù)差值確定增大值。
當(dāng)?shù)谝挥脩糇R(shí)別卡13和/或第二用戶識(shí)別卡14為電信卡時(shí),外接設(shè)備200和移動(dòng)終端100之間所傳輸?shù)拇齻鬏敂?shù)據(jù)包并不都是大于512字節(jié)的,只是存在少數(shù)幾個(gè)待傳輸數(shù)據(jù)包才是大于512字節(jié)。因此,如果將第一臨時(shí)緩沖區(qū)和第二臨時(shí)緩沖區(qū)的容量值從默認(rèn)容量值增大到某一固定值,在數(shù)據(jù)傳輸過(guò)程中不改變第一臨時(shí)緩沖區(qū)和第二臨時(shí)緩沖區(qū)的容量值,則會(huì)浪費(fèi)第一臨時(shí)緩沖區(qū)和第二臨時(shí)緩沖區(qū)的存儲(chǔ)空間。因此,當(dāng)外接設(shè)備200的第二應(yīng)用處理器20獲取到待傳輸數(shù)據(jù)包時(shí),第二應(yīng)用處理器20檢測(cè)待傳輸數(shù)據(jù)包的大小。
具體地,第二應(yīng)用處理器20解析待傳輸數(shù)據(jù)包,得到待傳輸數(shù)據(jù)包的包頭,從包頭中獲取待傳輸數(shù)據(jù)包的大小。其中,待傳輸數(shù)據(jù)包為tlv格式,tlv格式是ber(basicencodingrules,基本編碼規(guī)則)編碼的一種,全稱(chēng)為type(類(lèi)型),length(長(zhǎng)度),value(值),t字段表示待傳輸數(shù)據(jù)包的類(lèi)型,l字段表示待傳輸數(shù)據(jù)包的長(zhǎng)度,即待傳輸數(shù)據(jù)包的大小,v字段往往用來(lái)存放待傳輸數(shù)據(jù)包的內(nèi)容。在第二應(yīng)用處理器20中,由物理層(物理傳輸介質(zhì))之上的物理驅(qū)動(dòng)層檢測(cè)待傳輸數(shù)據(jù)包的包頭,解析得到待傳輸數(shù)據(jù)包的大小。
需要說(shuō)明的是,待傳輸數(shù)據(jù)包的生成過(guò)程為:在第二應(yīng)用處理器20中,當(dāng)傳輸層獲取到待傳輸數(shù)據(jù)包對(duì)應(yīng)的原始數(shù)據(jù)時(shí),為該原始數(shù)據(jù)添加傳輸層的數(shù)據(jù)包頭,傳輸層的數(shù)據(jù)包頭包括傳輸層數(shù)據(jù)類(lèi)型和數(shù)據(jù)大小,得到初始數(shù)據(jù)包,并將輸出數(shù)據(jù)包傳輸至邏輯復(fù)用層。當(dāng)邏輯復(fù)用層接收到初始數(shù)據(jù)包后,為初始化數(shù)據(jù)包添加邏輯復(fù)用層的數(shù)據(jù)包頭,邏輯復(fù)用層的數(shù)據(jù)包頭包括邏輯復(fù)用層的數(shù)據(jù)類(lèi)型和數(shù)據(jù)大小,得到待傳輸數(shù)據(jù)包,并通過(guò)調(diào)用物理驅(qū)動(dòng)層的發(fā)送接口將待傳輸數(shù)據(jù)包發(fā)送給物理層??梢岳斫獾氖?,第二應(yīng)用處理器20最終所檢測(cè)到待傳輸數(shù)據(jù)包大小為邏輯復(fù)用層包頭中的數(shù)據(jù)大小。
當(dāng)確定待傳輸數(shù)據(jù)包的大小后,第二應(yīng)用處理器20判斷待傳輸數(shù)據(jù)包的大小是否大于默認(rèn)容量值。當(dāng)待傳輸數(shù)據(jù)包的大小大于默認(rèn)容量值時(shí),第二應(yīng)用處理器20計(jì)算默認(rèn)容量值和待傳輸數(shù)據(jù)包大小之間的差值,并根據(jù)計(jì)算所得的差值確定增大值。具體地,增大值可與計(jì)算所得的差值相等,也可大于計(jì)算所得的差值,如可將增大值的大小設(shè)置為大于該差值一個(gè)字節(jié)。當(dāng)確定增大值后,第二應(yīng)用處理器20根據(jù)增大值增大第二臨時(shí)緩沖區(qū)的容量值,使得第二臨時(shí)緩沖區(qū)的容量值等于增大值與默認(rèn)容量值之和。同時(shí),第一應(yīng)用處理器10調(diào)用與第一臨時(shí)緩沖區(qū)對(duì)應(yīng)的驅(qū)動(dòng)接口,根據(jù)增大值增大第一臨時(shí)緩沖區(qū)的容量值,以使第一臨時(shí)緩沖區(qū)和第二臨時(shí)緩沖區(qū)的容量值同步變化。
第二應(yīng)用處理器20還用于當(dāng)待傳輸數(shù)據(jù)包的大小小于或者等于默認(rèn)容量值時(shí),將待傳輸數(shù)據(jù)包緩存至默認(rèn)容量值的第二臨時(shí)緩沖區(qū)中。
第一應(yīng)用處理器10還用于從默認(rèn)容量值的第一臨時(shí)緩沖區(qū)中獲取待傳輸數(shù)據(jù)包。
當(dāng)待傳輸數(shù)據(jù)包的大小小于或者等于默認(rèn)容量值時(shí),第二應(yīng)用處理器20不改變第二臨時(shí)緩沖區(qū)的容量值,直接將待傳輸數(shù)據(jù)包緩存至容量值為默認(rèn)容量值的第二臨時(shí)緩沖區(qū)中,以供第一應(yīng)用處理器10從容量值為默認(rèn)容量值的第一臨時(shí)緩沖區(qū)中獲取待傳輸數(shù)據(jù)包。
本實(shí)施例通過(guò)根據(jù)待傳輸數(shù)據(jù)包的大小動(dòng)態(tài)調(diào)整第一臨時(shí)緩沖區(qū)和第二臨時(shí)緩沖區(qū)的容量值,保證在外接設(shè)備200和移動(dòng)終端100之間傳輸待傳輸數(shù)據(jù)包過(guò)程中,不需要對(duì)待傳輸數(shù)據(jù)包進(jìn)行拆分的額外操作,確保了移動(dòng)終端100和外接設(shè)備200之間數(shù)據(jù)通道透?jìng)鞯谋举|(zhì),避免了數(shù)據(jù)傳輸過(guò)程中二次拆分重組帶來(lái)數(shù)據(jù)損傷,同時(shí)避免直接增大第一臨時(shí)緩沖區(qū)和第二臨時(shí)緩沖區(qū)導(dǎo)致緩存空間浪費(fèi)的問(wèn)題。
進(jìn)一步地,提出本發(fā)明數(shù)據(jù)傳輸系統(tǒng)第三實(shí)施例。
數(shù)據(jù)傳輸系統(tǒng)第三實(shí)施例與數(shù)據(jù)傳輸系統(tǒng)第二實(shí)施例的區(qū)別在于,第二應(yīng)用處理器20還用于當(dāng)?shù)谝粦?yīng)用處理器10從第一臨時(shí)緩沖區(qū)獲取到待傳輸數(shù)據(jù)包時(shí),減小第二臨時(shí)緩沖區(qū)的容量值至默認(rèn)容量值。
當(dāng)?shù)谝粦?yīng)用處理器10從容量值等于默認(rèn)容量值和增大值之和的第一臨時(shí)緩沖區(qū)中成功獲取到待傳輸數(shù)據(jù)包時(shí),第二應(yīng)用處理器20調(diào)用與第二臨時(shí)緩沖區(qū)對(duì)應(yīng)的驅(qū)動(dòng)接口,將第二臨時(shí)緩沖區(qū)的容量值減小至默認(rèn)容量值,即將第二臨時(shí)緩沖區(qū)的容量值從等于默認(rèn)容量值與增大值之和減小至默認(rèn)容量值。當(dāng)?shù)诙?yīng)用處理器20減小第二臨時(shí)緩沖區(qū)的容量值至默認(rèn)容量值時(shí),第一應(yīng)用處理器10調(diào)用與第一臨時(shí)緩沖區(qū)對(duì)應(yīng)的驅(qū)動(dòng)接口,將第一臨時(shí)緩沖區(qū)的容量值減小至默認(rèn)容量值。
需要說(shuō)明的是,待傳輸數(shù)據(jù)包存在一個(gè)結(jié)束標(biāo)識(shí),通過(guò)該結(jié)束標(biāo)識(shí)可以確定待傳輸數(shù)據(jù)包是否被成功讀取。當(dāng)?shù)谝慌R時(shí)緩沖區(qū)中待傳輸數(shù)據(jù)包的結(jié)束標(biāo)識(shí)被讀取后,表明第一應(yīng)用處理器10已成功獲取到待傳輸數(shù)據(jù)包。即當(dāng)?shù)谝粦?yīng)用處理器10在第一臨時(shí)緩沖區(qū)中讀取到該結(jié)束標(biāo)識(shí)時(shí),表明第一應(yīng)用處理器10已成功獲取待傳輸數(shù)據(jù)包。由于第一臨時(shí)緩沖區(qū)和第二臨時(shí)緩沖區(qū)的狀態(tài)是同步變化的,因此第二應(yīng)用處理器20可根據(jù)結(jié)束標(biāo)識(shí)被讀取的情況確定第一應(yīng)用處理器10是否成功從第一臨時(shí)緩沖區(qū)中獲取到待傳輸數(shù)據(jù)包,從而決定是否執(zhí)行減小第二臨時(shí)緩沖區(qū)的容量值至默認(rèn)容量值的操作。
本實(shí)施例通過(guò)當(dāng)?shù)谝粦?yīng)用處理器10成功獲取到待傳輸數(shù)據(jù)包時(shí),第二應(yīng)用處理器20將第二臨時(shí)緩沖區(qū)的容量值重新減小至默認(rèn)容量值,以在不浪費(fèi)臨時(shí)緩沖區(qū)緩存空間的基礎(chǔ)上,保證移動(dòng)終端100和外接設(shè)備200在數(shù)據(jù)傳輸過(guò)程中不會(huì)因?yàn)閭鬏數(shù)臄?shù)據(jù)包過(guò)大而導(dǎo)致死機(jī)的問(wèn)題出現(xiàn)。
進(jìn)一步地,提出本發(fā)明數(shù)據(jù)傳輸系統(tǒng)第四實(shí)施例。
數(shù)據(jù)傳輸系統(tǒng)第四實(shí)施例與數(shù)據(jù)傳輸系統(tǒng)第一或二實(shí)施例的區(qū)別在于,第二應(yīng)用處理器20還用于當(dāng)?shù)谝粦?yīng)用處理器10從第一臨時(shí)緩沖區(qū)獲取到待傳輸數(shù)據(jù)包時(shí),刪除第二臨時(shí)緩沖區(qū)中緩存的待傳輸數(shù)據(jù)包。
當(dāng)?shù)谝粦?yīng)用處理器10從第一臨時(shí)緩沖區(qū)中成功獲取到待傳輸數(shù)據(jù)包時(shí),第二應(yīng)用處理器20觸發(fā)刪除指令,根據(jù)刪除指令刪除第二臨時(shí)緩沖區(qū)中的待傳輸數(shù)據(jù)包,以節(jié)省臨時(shí)緩沖區(qū)的緩存空間,保證移動(dòng)終端100和外接設(shè)備200之間數(shù)據(jù)的成功傳輸??梢岳斫獾氖?,當(dāng)?shù)诙?yīng)用處理器20刪除第二臨時(shí)緩沖區(qū)中的待傳輸數(shù)據(jù)包時(shí),第一應(yīng)用處理器10也會(huì)刪除第一臨時(shí)緩沖區(qū)中的待傳輸數(shù)據(jù)包。
本發(fā)明還提供一種數(shù)據(jù)傳輸方法。
參照?qǐng)D4,圖4為本發(fā)明數(shù)據(jù)傳輸方法第一實(shí)施例的流程示意圖。
本實(shí)施例提出一種數(shù)據(jù)傳輸方法,在本實(shí)施例中,提供了數(shù)據(jù)傳輸方法的實(shí)施例,需要說(shuō)明的是,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
數(shù)據(jù)傳輸方法應(yīng)用于通過(guò)usb與外接設(shè)備200連接的移動(dòng)終端100中,移動(dòng)終端100包括第一射頻模塊12、第一調(diào)制解調(diào)器11、第一臨時(shí)緩沖區(qū)和第一應(yīng)用處理器10,第一調(diào)制解調(diào)器11分別與第一用戶識(shí)別卡13和第二用戶識(shí)別卡14連接,外接設(shè)備200包括第二應(yīng)用處理器20、第二射頻模塊22、第二臨時(shí)緩沖區(qū)和第二調(diào)制解調(diào)器21。
數(shù)據(jù)傳輸方法包括:
步驟s10,當(dāng)?shù)诙?yīng)用處理器20偵測(cè)到發(fā)送待傳輸數(shù)據(jù)包的數(shù)據(jù)傳輸指令時(shí),第二應(yīng)用處理器20根據(jù)數(shù)據(jù)傳輸指令獲取待傳輸數(shù)據(jù)包。
步驟s20,第二應(yīng)用處理器20將待傳輸數(shù)據(jù)包緩存至第二臨時(shí)緩沖區(qū)中,以供第一應(yīng)用處理器10從第一臨時(shí)緩沖區(qū)中獲取待傳輸數(shù)據(jù)包。
其中,第一臨時(shí)緩沖區(qū)和第二臨時(shí)緩沖區(qū)的容量值等于默認(rèn)容量值與增大值之和,且默認(rèn)容量值與增大值之和大于或者等于待傳輸數(shù)據(jù)包的大小。
本實(shí)施例以外接設(shè)備200為發(fā)送端,移動(dòng)終端100為接收端為例進(jìn)行說(shuō)明??梢岳斫獾氖?,當(dāng)移動(dòng)終端100為發(fā)送端,外接設(shè)備200為接收端時(shí),移動(dòng)終端100和外接設(shè)備200之間進(jìn)行數(shù)據(jù)傳輸?shù)脑砼c外接設(shè)備200為發(fā)送端,移動(dòng)終端100為接收端的數(shù)據(jù)傳輸原理一致,在此不再贅述。
當(dāng)外接設(shè)備200的第二應(yīng)用處理器20偵測(cè)到發(fā)送待傳輸數(shù)據(jù)包的數(shù)據(jù)傳輸指令時(shí),第二應(yīng)用處理器20根據(jù)數(shù)據(jù)傳輸指令獲取待傳輸數(shù)據(jù)包。其中,當(dāng)?shù)诙?yīng)用處理器20接收到enodeb101的數(shù)據(jù)請(qǐng)求,或者第二應(yīng)用處理器20需要獲取移動(dòng)終端100中的第一用戶識(shí)別卡13或第二用戶識(shí)別卡14的數(shù)據(jù),或者第二應(yīng)用處理器20有鑒權(quán)需求等時(shí),第二應(yīng)用處理器20就會(huì)觸發(fā)數(shù)據(jù)傳輸指令。具體地,第二應(yīng)用處理器20通過(guò)usb將所獲取的待傳輸數(shù)據(jù)包發(fā)送給移動(dòng)終端100的第一應(yīng)用處理器10。
在本發(fā)明實(shí)施例中,第一臨時(shí)緩沖區(qū)要占用移動(dòng)終端100的內(nèi)存空間,第二臨時(shí)緩沖區(qū)要占用外接設(shè)備200的內(nèi)存空間。如當(dāng)?shù)诙R時(shí)緩沖區(qū)的容量值為512字節(jié),外接設(shè)備200的內(nèi)存空間1024字節(jié)時(shí),第二臨時(shí)緩沖區(qū)的512字節(jié)需要占用外接設(shè)備200內(nèi)存空間中的512字節(jié)。
在本發(fā)明實(shí)施例中,第一臨時(shí)緩沖區(qū)和第二臨時(shí)緩沖區(qū)的容量值等于默認(rèn)容量值與增大值之和,其中,默認(rèn)容量值與增大值之和大于或者等于待傳輸數(shù)據(jù)包的大小。具體地,可在第二應(yīng)用處理器20偵測(cè)到數(shù)據(jù)傳輸指令時(shí),調(diào)用與第二臨時(shí)緩沖區(qū)對(duì)應(yīng)的驅(qū)動(dòng)接口,增大第二臨時(shí)緩沖區(qū)的容量值。需要說(shuō)明的是,由于第二臨時(shí)緩沖區(qū)和第一臨時(shí)緩沖區(qū)對(duì)應(yīng)著同一個(gè)物理地址,因此當(dāng)?shù)诙?yīng)用處理器20增大第二臨時(shí)緩沖區(qū)的容量值時(shí),第一臨時(shí)緩沖區(qū)的容量值也同步增大。在本實(shí)施例中,第一臨時(shí)緩沖區(qū)和第二臨時(shí)緩沖區(qū)的容量值增大后,是固定不變的,不會(huì)再次改變。
移動(dòng)終端100和外接設(shè)備200在數(shù)據(jù)傳輸過(guò)程中所用的第一臨時(shí)緩沖區(qū)和第二臨時(shí)緩沖區(qū)的容量一般都是512個(gè)字節(jié),因此,在本發(fā)明實(shí)施例中,第一臨時(shí)緩沖區(qū)和第二臨時(shí)緩沖區(qū)的默認(rèn)容量值可設(shè)置為512字節(jié)。為了保證移動(dòng)終端100和外接設(shè)備200之間的待傳輸數(shù)據(jù)包可以全部成功傳輸,增大值和默認(rèn)容量值之和應(yīng)大于或者等于移動(dòng)終端100和外接設(shè)備200傳輸?shù)淖畲蟠齻鬏敂?shù)據(jù)包的大小。如當(dāng)最大待傳輸數(shù)據(jù)包的大小為3千字節(jié)時(shí),增大值和默認(rèn)容量值之和應(yīng)大于或者等于3千字節(jié)。
當(dāng)?shù)诙?yīng)用處理器20獲取到待傳輸數(shù)據(jù)包時(shí),第二應(yīng)用處理器20將待傳輸數(shù)據(jù)包緩存至第二臨時(shí)緩沖區(qū)中,以供第一應(yīng)用處理器10從第一臨時(shí)緩沖區(qū)獲取待傳輸數(shù)據(jù)包。當(dāng)?shù)诙?yīng)用處理器20已將待傳輸數(shù)據(jù)包成功寫(xiě)入第二臨時(shí)緩沖區(qū)中時(shí),第一應(yīng)用處理器10即可從第一臨時(shí)緩沖區(qū)檢測(cè)并獲取到待傳輸數(shù)據(jù)包,并將所獲取的待傳輸數(shù)據(jù)包發(fā)送給第一調(diào)制解調(diào)器11(由于第一臨時(shí)緩沖區(qū)和第二臨時(shí)緩沖區(qū)對(duì)應(yīng)著同一個(gè)物理地址,因此,當(dāng)?shù)诙?yīng)用處理器20待傳輸數(shù)據(jù)包寫(xiě)入第二臨時(shí)緩沖區(qū)時(shí),第一應(yīng)用處理器10即可在第一臨時(shí)緩沖區(qū)中檢測(cè)到該待傳輸數(shù)據(jù)包)。
當(dāng)?shù)谝徽{(diào)制解調(diào)器11接收到待傳輸數(shù)據(jù)包時(shí),第一調(diào)制解調(diào)器11根據(jù)待傳輸數(shù)據(jù)包從第一用戶識(shí)別卡13或第二用戶識(shí)別卡14獲取對(duì)應(yīng)的數(shù)據(jù)響應(yīng)待傳輸數(shù)據(jù)包,得到響應(yīng)數(shù)據(jù)包,并將響應(yīng)數(shù)據(jù)包按原路返回給外接設(shè)備200的第二應(yīng)用處理器20。在第一調(diào)制解調(diào)器11根據(jù)待傳輸數(shù)據(jù)包從第一用戶識(shí)別卡13或第二用戶識(shí)別卡14獲取對(duì)應(yīng)的數(shù)據(jù)響應(yīng)該待傳輸數(shù)據(jù)包過(guò)程中,第一調(diào)制解調(diào)器11不會(huì)直接與第一用戶識(shí)別卡13或第二用戶識(shí)別卡14中的文件存儲(chǔ)模塊交互,而是先向第一用戶識(shí)別卡13或第二用戶識(shí)別卡14中的cos(chipoperatingsystem,片內(nèi)操作系統(tǒng))操作系統(tǒng)發(fā)送數(shù)據(jù)獲取請(qǐng)求,然后第一用戶識(shí)別卡13或第二用戶識(shí)別卡14的cos操作系統(tǒng)基于該數(shù)據(jù)獲取請(qǐng)求在文件存儲(chǔ)模塊中獲取數(shù)據(jù),然后將獲取的數(shù)據(jù)再傳輸給第一調(diào)制解調(diào)器11,以實(shí)現(xiàn)待傳輸數(shù)據(jù)包的響應(yīng)。
本實(shí)施例通過(guò)當(dāng)?shù)诙?yīng)用處理器20偵測(cè)到發(fā)送待傳輸數(shù)據(jù)包的數(shù)據(jù)傳輸指令時(shí),第二應(yīng)用處理器20根據(jù)數(shù)據(jù)傳輸指令獲取待傳輸數(shù)據(jù)包;第二應(yīng)用處理器20將待傳輸數(shù)據(jù)包緩存至第二臨時(shí)緩沖區(qū)中,以供第一應(yīng)用處理器10從第一臨時(shí)緩沖區(qū)中獲取待傳輸數(shù)據(jù)包;其中,第一臨時(shí)緩沖區(qū)和第二臨時(shí)緩沖區(qū)的容量值等于默認(rèn)容量值與增大值之和,且默認(rèn)容量值與增大值之和大于或者等于待傳輸數(shù)據(jù)包的大小。通過(guò)增大移動(dòng)終端100和外接設(shè)備200之間用于緩存數(shù)據(jù)的臨時(shí)緩沖區(qū)的容量值,避免了在移動(dòng)終端100和外接設(shè)備200傳輸電信卡數(shù)據(jù)過(guò)程中,由于電信卡對(duì)應(yīng)某些的數(shù)據(jù)包大小大于臨時(shí)緩沖區(qū)的容量值,導(dǎo)致移動(dòng)終端100死機(jī)的情況出現(xiàn)。
進(jìn)一步地,通過(guò)增大移動(dòng)終端100和外接設(shè)備200之間用于數(shù)據(jù)傳輸?shù)呐R時(shí)緩沖區(qū)的默認(rèn)容量值,使待傳輸數(shù)據(jù)包的大小小于或者等于臨時(shí)緩沖區(qū)的容量值,實(shí)現(xiàn)了在外接設(shè)備200和移動(dòng)終端100進(jìn)行數(shù)據(jù)傳輸過(guò)程中,當(dāng)所傳輸?shù)拇齻鬏敂?shù)據(jù)包的大小大于臨時(shí)緩沖區(qū)的默認(rèn)容量值時(shí),不需要拆分待傳輸數(shù)據(jù)包,可直接傳輸一個(gè)完整的待傳輸數(shù)據(jù)包,提高了待傳輸數(shù)據(jù)包傳輸效率,同時(shí),由于不需要拆分待傳輸數(shù)據(jù)包,因此避免了在拆分待傳輸數(shù)據(jù)包后,所拆分的某一待傳輸數(shù)據(jù)包丟失,或者在待傳輸數(shù)據(jù)包合成過(guò)程中,合成失敗的情況出現(xiàn),提高了待傳輸數(shù)據(jù)包傳輸成功率。
進(jìn)一步地,提出本發(fā)明數(shù)據(jù)傳輸方法第二實(shí)施例。
數(shù)據(jù)傳輸方法第二實(shí)施例與數(shù)據(jù)傳輸方法第一實(shí)施例的區(qū)別在于,參照?qǐng)D5,數(shù)據(jù)傳輸方法還包括:
步驟s30,第二應(yīng)用處理器20檢測(cè)待傳輸數(shù)據(jù)包的大小,并判斷待傳輸數(shù)據(jù)包的大小是否大于默認(rèn)容量值。
步驟s40,當(dāng)待傳輸數(shù)據(jù)包的大小大于默認(rèn)容量值時(shí),第二應(yīng)用處理器20計(jì)算待傳輸數(shù)據(jù)包的大小和默認(rèn)容量值之間的差值,根據(jù)差值確定增大值。
當(dāng)?shù)谝挥脩糇R(shí)別卡13和/或第二用戶識(shí)別卡14為電信卡時(shí),外接設(shè)備200和移動(dòng)終端100之間所傳輸?shù)拇齻鬏敂?shù)據(jù)包并不都是大于512字節(jié)的,只是存在少數(shù)幾個(gè)待傳輸數(shù)據(jù)包才是大于512字節(jié)。因此,如果將第一臨時(shí)緩沖區(qū)和第二臨時(shí)緩沖區(qū)的容量值從默認(rèn)容量值增大到某一固定值,在數(shù)據(jù)傳輸過(guò)程中不改變第一臨時(shí)緩沖區(qū)和第二臨時(shí)緩沖區(qū)的容量值,則會(huì)浪費(fèi)第一臨時(shí)緩沖區(qū)和第二臨時(shí)緩沖區(qū)的存儲(chǔ)空間。因此,當(dāng)外接設(shè)備200的第二應(yīng)用處理器20獲取到待傳輸數(shù)據(jù)包時(shí),第二應(yīng)用處理器20檢測(cè)待傳輸數(shù)據(jù)包的大小。
具體地,第二應(yīng)用處理器20解析待傳輸數(shù)據(jù)包,得到待傳輸數(shù)據(jù)包的包頭,從包頭中獲取待傳輸數(shù)據(jù)包的大小。其中,待傳輸數(shù)據(jù)包為tlv格式,tlv格式是ber(basicencodingrules,基本編碼規(guī)則)編碼的一種,全稱(chēng)為type(類(lèi)型),length(長(zhǎng)度),value(值),t字段表示待傳輸數(shù)據(jù)包的類(lèi)型,l字段表示待傳輸數(shù)據(jù)包的長(zhǎng)度,即待傳輸數(shù)據(jù)包的大小,v字段往往用來(lái)存放待傳輸數(shù)據(jù)包的內(nèi)容。在第二應(yīng)用處理器20中,由物理層(物理傳輸介質(zhì))之上的物理驅(qū)動(dòng)層檢測(cè)待傳輸數(shù)據(jù)包的包頭,解析得到待傳輸數(shù)據(jù)包的大小。
需要說(shuō)明的是,待傳輸數(shù)據(jù)包的生成過(guò)程為:在第二應(yīng)用處理器20中,當(dāng)傳輸層獲取到待傳輸數(shù)據(jù)包對(duì)應(yīng)的原始數(shù)據(jù)時(shí),為該原始數(shù)據(jù)添加傳輸層的數(shù)據(jù)包頭,傳輸層的數(shù)據(jù)包頭包括傳輸層數(shù)據(jù)類(lèi)型和數(shù)據(jù)大小,得到初始數(shù)據(jù)包,并將輸出數(shù)據(jù)包傳輸至邏輯復(fù)用層。當(dāng)邏輯復(fù)用層接收到初始數(shù)據(jù)包后,為初始化數(shù)據(jù)包添加邏輯復(fù)用層的數(shù)據(jù)包頭,邏輯復(fù)用層的數(shù)據(jù)包頭包括邏輯復(fù)用層的數(shù)據(jù)類(lèi)型和數(shù)據(jù)大小,得到待傳輸數(shù)據(jù)包,并通過(guò)調(diào)用物理驅(qū)動(dòng)層的發(fā)送接口將待傳輸數(shù)據(jù)包發(fā)送給物理層。可以理解的是,第二應(yīng)用處理器20最終所檢測(cè)到待傳輸數(shù)據(jù)包大小為邏輯復(fù)用層包頭中的數(shù)據(jù)大小。
當(dāng)確定待傳輸數(shù)據(jù)包的大小后,第二應(yīng)用處理器20判斷待傳輸數(shù)據(jù)包的大小是否大于默認(rèn)容量值。當(dāng)待傳輸數(shù)據(jù)包的大小大于默認(rèn)容量值時(shí),第二應(yīng)用處理器20計(jì)算默認(rèn)容量值和待傳輸數(shù)據(jù)包大小之間的差值,并根據(jù)計(jì)算所得的差值確定增大值。具體地,增大值可與計(jì)算所得的差值相等,也可大于計(jì)算所得的差值,如可將增大值的大小設(shè)置為大于該差值一個(gè)字節(jié)。當(dāng)確定增大值后,第二應(yīng)用處理器20根據(jù)增大值增大第二臨時(shí)緩沖區(qū)的容量值,使得第二臨時(shí)緩沖區(qū)的容量值等于增大值與默認(rèn)容量值之和。同時(shí),第一應(yīng)用處理器10調(diào)用與第一臨時(shí)緩沖區(qū)對(duì)應(yīng)的驅(qū)動(dòng)接口,根據(jù)增大值增大第一臨時(shí)緩沖區(qū)的容量值,以使第一臨時(shí)緩沖區(qū)和第二臨時(shí)緩沖區(qū)的容量值同步變化。。
步驟s50,當(dāng)待傳輸數(shù)據(jù)包的大小小于或者等于默認(rèn)容量值時(shí),第二應(yīng)用處理器20將待傳輸數(shù)據(jù)包緩存至默認(rèn)容量值的第二臨時(shí)緩沖區(qū)中,以供第一應(yīng)用處理器10從默認(rèn)容量值的第一臨時(shí)緩沖區(qū)中獲取待傳輸數(shù)據(jù)包。
當(dāng)待傳輸數(shù)據(jù)包的大小小于或者等于默認(rèn)容量值時(shí),第二應(yīng)用處理器20不改變第二臨時(shí)緩沖區(qū)的容量值,直接將待傳輸數(shù)據(jù)包緩存至容量值為默認(rèn)容量值的第二臨時(shí)緩沖區(qū)中,以供第一應(yīng)用處理器10從容量值為默認(rèn)容量值的第一臨時(shí)緩沖區(qū)中獲取待傳輸數(shù)據(jù)包。
本實(shí)施例通過(guò)根據(jù)待傳輸數(shù)據(jù)包的大小動(dòng)態(tài)調(diào)整第一臨時(shí)緩沖區(qū)和第二臨時(shí)緩沖區(qū)的容量值,保證在外接設(shè)備200和移動(dòng)終端100之間傳輸待傳輸數(shù)據(jù)包過(guò)程中,不需要對(duì)待傳輸數(shù)據(jù)包進(jìn)行拆分的額外操作,確保了移動(dòng)終端100和外接設(shè)備200之間數(shù)據(jù)通道透?jìng)鞯谋举|(zhì),避免了數(shù)據(jù)傳輸過(guò)程中二次拆分重組帶來(lái)數(shù)據(jù)損傷,同時(shí)避免直接增大第一臨時(shí)緩沖區(qū)和第二臨時(shí)緩沖區(qū)導(dǎo)致緩存空間浪費(fèi)的問(wèn)題。
進(jìn)一步地,提出本發(fā)明數(shù)據(jù)傳輸方法第三實(shí)施例。
數(shù)據(jù)傳輸方法第三實(shí)施例與數(shù)據(jù)傳輸方法第二實(shí)施例的區(qū)別在于,參照?qǐng)D6,數(shù)據(jù)傳輸方法還包括:
步驟s60,當(dāng)?shù)谝粦?yīng)用處理器10從第一臨時(shí)緩沖區(qū)獲取到待傳輸數(shù)據(jù)包時(shí),第二應(yīng)用處理器20減小第二臨時(shí)緩沖區(qū)的容量值至默認(rèn)容量值。
當(dāng)?shù)谝粦?yīng)用處理器10從容量值等于默認(rèn)容量值和增大值之和的第一臨時(shí)緩沖區(qū)中成功獲取到待傳輸數(shù)據(jù)包時(shí),第二應(yīng)用處理器20調(diào)用與第二臨時(shí)緩沖區(qū)對(duì)應(yīng)的驅(qū)動(dòng)接口,將第二臨時(shí)緩沖區(qū)的容量值減小至默認(rèn)容量值,即將第二臨時(shí)緩沖區(qū)的容量值從等于默認(rèn)容量值與增大值之和減小至默認(rèn)容量值。當(dāng)?shù)诙?yīng)用處理器20減小第二臨時(shí)緩沖區(qū)的容量值至默認(rèn)容量值時(shí),第一應(yīng)用處理器10調(diào)用與第一臨時(shí)緩沖區(qū)對(duì)應(yīng)的驅(qū)動(dòng)接口,將第一臨時(shí)緩沖區(qū)的容量值減小至默認(rèn)容量值。
需要說(shuō)明的是,待傳輸數(shù)據(jù)包存在一個(gè)結(jié)束標(biāo)識(shí),通過(guò)該結(jié)束標(biāo)識(shí)可以確定待傳輸數(shù)據(jù)包是否被成功讀取。當(dāng)?shù)谝慌R時(shí)緩沖區(qū)中待傳輸數(shù)據(jù)包的結(jié)束標(biāo)識(shí)被讀取后,表明第一應(yīng)用處理器10已成功獲取到待傳輸數(shù)據(jù)包。即當(dāng)?shù)谝粦?yīng)用處理器10在第一臨時(shí)緩沖區(qū)中讀取到該結(jié)束標(biāo)識(shí)時(shí),表明第一應(yīng)用處理器10已成功獲取待傳輸數(shù)據(jù)包。由于第一臨時(shí)緩沖區(qū)和第二臨時(shí)緩沖區(qū)的狀態(tài)是同步變化的,因此第二應(yīng)用處理器20可根據(jù)結(jié)束標(biāo)識(shí)被讀取的情況確定第一應(yīng)用處理器10是否成功從第一臨時(shí)緩沖區(qū)中獲取到待傳輸數(shù)據(jù)包,從而決定是否執(zhí)行減小第二臨時(shí)緩沖區(qū)的容量值至默認(rèn)容量值的操作。
本實(shí)施例通過(guò)當(dāng)?shù)谝粦?yīng)用處理器10成功獲取到待傳輸數(shù)據(jù)包時(shí),第二應(yīng)用處理器20將第二臨時(shí)緩沖區(qū)的容量值重新減小至默認(rèn)容量值,以在不浪費(fèi)臨時(shí)緩沖區(qū)緩存空間的基礎(chǔ)上,保證移動(dòng)終端100和外接設(shè)備200在數(shù)據(jù)傳輸過(guò)程中不會(huì)因?yàn)閭鬏數(shù)臄?shù)據(jù)包過(guò)大而導(dǎo)致死機(jī)的問(wèn)題出現(xiàn)。
進(jìn)一步地,提出本發(fā)明數(shù)據(jù)傳輸方法第四實(shí)施例。
數(shù)據(jù)傳輸方法第四實(shí)施例與數(shù)據(jù)傳輸方法第一實(shí)施例的區(qū)別在于,參照?qǐng)D7,數(shù)據(jù)傳輸方法還包括:
步驟s70,當(dāng)?shù)谝粦?yīng)用處理器10從第一臨時(shí)緩沖區(qū)獲取到待傳輸數(shù)據(jù)包時(shí),第二應(yīng)用處理器20刪除第二臨時(shí)緩沖區(qū)中緩存的待傳輸數(shù)據(jù)包。
當(dāng)?shù)谝粦?yīng)用處理器10從第一臨時(shí)緩沖區(qū)中成功獲取到待傳輸數(shù)據(jù)包時(shí),第二應(yīng)用處理器20觸發(fā)刪除指令,根據(jù)刪除指令刪除第二臨時(shí)緩沖區(qū)中的待傳輸數(shù)據(jù)包,以節(jié)省臨時(shí)緩沖區(qū)的緩存空間,保證移動(dòng)終端100和外接設(shè)備200之間數(shù)據(jù)的成功傳輸??梢岳斫獾氖?,當(dāng)?shù)诙?yīng)用處理器20刪除第二臨時(shí)緩沖區(qū)中的待傳輸數(shù)據(jù)包時(shí),第一應(yīng)用處理器10也會(huì)刪除第一臨時(shí)緩沖區(qū)中的待傳輸數(shù)據(jù)包。
需要說(shuō)明的是,在本文中,術(shù)語(yǔ)“包括”、“包含”或者其任何其它變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者系統(tǒng)不僅包括那些要素,而且還包括沒(méi)有明確列出的其它要素,或者是還包括為這種過(guò)程、方法、物品或者系統(tǒng)所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括該要素的過(guò)程、方法、物品或者系統(tǒng)中還存在另外的相同要素。
上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到上述實(shí)施例方法可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)(如rom/ram、磁碟、光盤(pán))中,包括若干指令用以使得一臺(tái)終端設(shè)備(可以是手機(jī),計(jì)算機(jī),服務(wù)器,空調(diào)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例的方法。
以上僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專(zhuān)利范圍,凡是利用本發(fā)明說(shuō)明書(shū)及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其它相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專(zhuān)利保護(hù)范圍內(nèi)。