專利名稱:通用串行總線傳輸控制方法及主機(jī)設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù),尤其涉及一種通用串行總線傳輸控制方法及主機(jī)設(shè)備。
背景技術(shù):
通用串行總線(Universal Serial Bus,簡(jiǎn)稱為USB)是一個(gè)外部總線標(biāo)準(zhǔn),USB接口技術(shù)直接即插即用和熱插拔功能。目前,USB數(shù)據(jù)傳輸類型主要包括批量傳輸(BulkTransfer)、控制傳輸(Control Transfer)、中斷傳輸(InterruptTransfer)和同步傳輸(Isochronous Transfer)。其中,批量傳輸是一種可靠的單向傳輸,但延遲沒(méi)有保證,它盡量利用可以利用的帶寬來(lái)完成傳輸,適合數(shù)據(jù)量比較大的傳輸。USB主機(jī)設(shè)備(以下簡(jiǎn)稱主機(jī)設(shè)備)與USB設(shè)備相互配合完成USB數(shù)據(jù)的傳輸。主機(jī)設(shè)備主要包括主機(jī)控制驅(qū)動(dòng)、USB內(nèi)核以及客戶端軟件,USB內(nèi)核被中央處理器(Central Processing Unit,簡(jiǎn)稱為CPU)調(diào)度執(zhí)行。主機(jī)控制驅(qū)動(dòng)包括主機(jī)控制器(HostController,簡(jiǎn)稱為HC)和主機(jī)控制器驅(qū)動(dòng)程序(Host Control Driver,簡(jiǎn)稱為HCD)。主機(jī)控制器主要包括硬件收發(fā)單元、微處理器以及寄存器單元。USB內(nèi)核主要負(fù)責(zé)完成基本的USB協(xié)議層功能,會(huì)因?yàn)椴僮飨到y(tǒng)的不同而不同。主機(jī)控制驅(qū)動(dòng)主要在USB內(nèi)核的控制下與USB設(shè)備進(jìn)行數(shù)據(jù)收發(fā)處理。具體的,主機(jī)控制器的硬件收發(fā)單元查詢USB設(shè)備,當(dāng)發(fā)現(xiàn)USB設(shè)備有數(shù)據(jù)需要發(fā)送時(shí),從USB總線上接收USB設(shè)備發(fā)送的數(shù)據(jù);主機(jī)控制器的微處理器通過(guò)對(duì)交易該數(shù)據(jù)的端點(diǎn)對(duì)應(yīng)的傳輸類型進(jìn)行判斷,將屬于不同傳輸類型下的數(shù)據(jù)分別送往主機(jī)控制器的不同的硬件先進(jìn)先出(First In FirstOut,簡(jiǎn)稱為FIFO)緩存器中;當(dāng)主機(jī)控制器的微處理器處理完從USB總線上收到的數(shù)據(jù)后,根據(jù)主機(jī)控制器中的寄存器的設(shè)置,如果使能了中斷寄存器,則置位中斷寄存器產(chǎn)生軟件中斷,觸發(fā)CPU根據(jù)軟件中斷對(duì)接收到的數(shù)據(jù)進(jìn)行處理;否則,僅置位對(duì)應(yīng)的狀態(tài)寄存器,表明接收到數(shù)據(jù);CPU收到軟件中斷后,調(diào)用掛接給該軟件中斷的中斷服務(wù)程序,例如HCD->IRQ ;在中斷服務(wù)程序中,獲取掛接給對(duì)應(yīng)端點(diǎn)的USB請(qǐng)求塊(USB Request Block,簡(jiǎn)稱為URB),再調(diào)用該URB上的回調(diào)(callback)函數(shù),將相應(yīng)FIFO存儲(chǔ)器中的數(shù)據(jù)送至數(shù)據(jù)平面進(jìn)行處理,同時(shí)重新使能對(duì)應(yīng)的URB,以供下次數(shù)據(jù)傳輸使用。在上述接收數(shù)據(jù)過(guò)程中,主機(jī)設(shè)備以軟件中斷方式調(diào)用中斷服務(wù)程序?qū)?shù)據(jù)傳輸至數(shù)據(jù)平面,如果軟件中斷不能被及時(shí)響應(yīng),例如在多任務(wù)操作系統(tǒng)環(huán)境下,同時(shí)存在多個(gè)任務(wù)并發(fā)的現(xiàn)象,CPU可能會(huì)被其他任務(wù)搶占導(dǎo)致軟件中斷不能及時(shí)響應(yīng),使得接收到的數(shù)據(jù)得不到及時(shí)處理,影響對(duì)數(shù)據(jù)的處理效率。
發(fā)明內(nèi)容
本發(fā)明提供一種通用串行總線傳輸控制方法及主機(jī)設(shè)備,用以提高基于USB的數(shù)據(jù)的處理效率。第一方面提供一種通用串行總線USB傳輸控制方法,包括
主機(jī)設(shè)備的中央處理器CPU根據(jù)預(yù)設(shè)的查詢周期,周期性的查詢USB傳輸端點(diǎn)下的USB請(qǐng)求塊URB對(duì)應(yīng)的硬件先進(jìn)先出FIFO存儲(chǔ)器;其中,所述CPU周期性查詢所述USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器的優(yōu)先級(jí)高于所述CPU以軟件中斷方式查詢所述USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器的優(yōu)先級(jí);當(dāng)查詢到所述USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器中有數(shù)據(jù)時(shí),所述CPU將所述USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器中的至少一個(gè)第一數(shù)據(jù)一次性傳輸給所述主機(jī)設(shè)備的應(yīng)用層處理模塊,以供所述應(yīng)用層處理模塊對(duì)所述至少一個(gè)第一數(shù)據(jù)進(jìn)行處理。第二方面提供一種主機(jī)設(shè)備,包括查詢模塊、傳輸模塊和應(yīng)用層處理模塊;所述查詢模塊,用于根據(jù)預(yù)設(shè)的查詢周期,周期性的查詢通用串行總線USB傳輸端點(diǎn)下的USB請(qǐng)求塊URB對(duì)應(yīng)的硬件先進(jìn)先出FIFO存儲(chǔ)器;其中,所述查詢模塊周期性查詢所述USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器的優(yōu)先級(jí)高于所述查詢模塊以軟件中斷方式查詢所述USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器的優(yōu)先級(jí);所述傳輸模塊,用于在所述查詢模塊查詢到所述USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器中有數(shù)據(jù)時(shí),將所述USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器中的至少一個(gè)第一數(shù)據(jù)一次性傳輸給所述主機(jī)設(shè)備的應(yīng)用層處理模塊,以供所述應(yīng)用層處理模塊對(duì)所述至少一個(gè)第一數(shù)據(jù)進(jìn)行處理。本發(fā)明提供的通用串行總線USB傳輸控制方法及主機(jī)設(shè)備,通過(guò)設(shè)置優(yōu)先級(jí)高于軟件中斷的周期性查詢方式,CPU周期性的去查詢USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器,將USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器中的數(shù)據(jù)發(fā)送給主機(jī)設(shè)備的應(yīng)用層處理模塊,由應(yīng)用層處理模塊對(duì)數(shù)據(jù)進(jìn)行處理,這種傳輸控制方式將USB傳輸端點(diǎn)從中斷傳輸方式中剝離出來(lái),改用優(yōu)先級(jí)較高的周期性查詢方式,克服了因軟件中斷方式優(yōu)先級(jí)較低導(dǎo)致CPU被其他任務(wù)搶占,無(wú)法及時(shí)對(duì)接收到的數(shù)據(jù)進(jìn)行處理的問(wèn)題,提高了對(duì)數(shù)據(jù)進(jìn)行處理的效率;另外,由于采用了周期性查詢方式,CPU不用像現(xiàn)有軟件中斷處理方式那樣一次僅處理一個(gè)數(shù)據(jù),CPU可以在一次查詢過(guò)程中將USB傳輸端點(diǎn)下至少一個(gè)數(shù)據(jù)一次性處理完,有利于降低CPU的占用率,進(jìn)一步提高對(duì)數(shù)據(jù)的處理效率。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實(shí)施例提供的一種USB傳輸控制方法的流程圖;圖2為本發(fā)明實(shí)施例提供的另一種USB傳輸控制方法的流程圖;圖3為本發(fā)明實(shí)施例提供的又一種USB傳輸控制方法的流程圖;圖4為本發(fā)明實(shí)施例提供的一種主機(jī)設(shè)備的結(jié)構(gòu)示意圖;圖5為本發(fā)明實(shí)施例提供的另一種主機(jī)設(shè)備的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。圖1為本發(fā)明實(shí)施例提供的一種USB傳輸控制方法的流程圖。如圖1所示,本實(shí)施例的方法包括步驟101、主機(jī)設(shè)備的CPU根據(jù)預(yù)設(shè)的查詢周期,周期性的查詢USB傳輸端點(diǎn)下的USB請(qǐng)求塊(USB Request Block,簡(jiǎn)稱為URB)對(duì)應(yīng)的硬件FIFO存儲(chǔ)器,其中,CPU周期性查詢USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器的優(yōu)先級(jí)高于CPU以軟件中斷方式查詢?cè)揢SB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器的優(yōu)先級(jí)。步驟102、當(dāng)查詢到USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器中有數(shù)據(jù)時(shí),CPU將USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器中的至少一個(gè)第一數(shù)據(jù)一次性傳輸給主機(jī)設(shè)備的應(yīng)用層處理模塊,以供應(yīng)用層處理模塊對(duì)第一數(shù)據(jù)進(jìn)行處理。在本實(shí)施例中,USB傳輸端點(diǎn)主要是指同一類型的傳輸端點(diǎn),例如可以是支持批量傳輸?shù)膫鬏敹它c(diǎn),USB傳輸端點(diǎn)實(shí)際上是一個(gè)傳輸單兀。一個(gè)USB傳輸端點(diǎn)下有多個(gè)URB,每個(gè)URB對(duì)應(yīng)至少一個(gè)硬件FIFO存儲(chǔ)器。則一個(gè)USB傳輸端點(diǎn)可以有多個(gè)硬件FIFO存儲(chǔ)器,每個(gè)硬件FIFO存儲(chǔ)器用于存儲(chǔ)主機(jī)設(shè)備的硬件收發(fā)單元從USB總線上接收到的來(lái)自于USB設(shè)備的數(shù)據(jù)??蛇x的,一個(gè)硬件FIFO存儲(chǔ)器最大可以為一頁(yè)內(nèi)存??紤]到效率的影響,優(yōu)選的,每個(gè)USB傳輸端點(diǎn)下可以有16個(gè)硬件FIFO存儲(chǔ)器,但不限于此。在本實(shí)施例中,為了克服現(xiàn)有技術(shù)中因軟件中斷處理方式的優(yōu)先級(jí)較低導(dǎo)致軟件中斷服務(wù)程序不能被及時(shí)響應(yīng),例如在多任務(wù)操作系統(tǒng)環(huán)境下,同時(shí)存在多個(gè)任務(wù)并發(fā)的現(xiàn)象,CPU可能會(huì)被其他任務(wù)搶占而導(dǎo)致軟件中斷服務(wù)程序不能被及時(shí)響應(yīng),使得接收到的數(shù)據(jù)得不到及時(shí)處理,影響對(duì)數(shù)據(jù)的處理效率的問(wèn)題,通過(guò)預(yù)先設(shè)置優(yōu)先級(jí)較高的周期性查詢方式,該周期性查詢方式的優(yōu)先級(jí)至少高于軟件中斷處理方式的優(yōu)先級(jí),CPU周期性的去查詢USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器,當(dāng)查詢到USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器中有數(shù)據(jù)時(shí),CPU將該USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器中的至少一個(gè)數(shù)據(jù)傳輸至主機(jī)設(shè)備的應(yīng)用層處理模塊,由應(yīng)用層處理模塊對(duì)所述至少一個(gè)數(shù)據(jù)進(jìn)行處理。為便于區(qū)分,將URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器中的數(shù)據(jù)稱為第一數(shù)據(jù)。其中,主機(jī)設(shè)備可以定義一個(gè)高精度的定時(shí)器,使用該定時(shí)器對(duì)查詢周期進(jìn)行計(jì)時(shí),當(dāng)該定時(shí)器計(jì)時(shí)到達(dá)查詢周期對(duì)應(yīng)的定時(shí)時(shí)長(zhǎng)時(shí),定時(shí)器重新對(duì)該定時(shí)時(shí)長(zhǎng)進(jìn)行計(jì)時(shí),而CPU查詢USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器。在本實(shí)施例中,將CPU對(duì)USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器的查詢從中斷傳輸中剝離出來(lái),改用優(yōu)先級(jí)較高的周期性查詢的方式,,克服了因軟件中斷處理方式優(yōu)先級(jí)較低導(dǎo)致CPU被其他任務(wù)搶占,無(wú)法及時(shí)對(duì)接收到的數(shù)據(jù)進(jìn)行處理的問(wèn)題,提高了對(duì)數(shù)據(jù)進(jìn)行處理的效率。進(jìn)一步,由于本實(shí)施例CPU采用的是周期性查詢方式,而不是軟件中斷處理方式,因此CPU可以不再受軟件中斷處理方式的限制一次僅處理一個(gè)數(shù)據(jù),可以同時(shí)對(duì)USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器中的一個(gè)或多個(gè)數(shù)據(jù)進(jìn)行處理,即CPU—次可以將一個(gè)或多個(gè)第一數(shù)據(jù)傳輸至應(yīng)用層處理模塊,由于CPU —次可以將多個(gè)第一數(shù)據(jù)傳輸至主機(jī)設(shè)備的應(yīng)用層處理模塊,減少了 CPU參與處理USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器中數(shù)據(jù)的次數(shù),有利于降低CPU的占用率,進(jìn)一步提高對(duì)數(shù)據(jù)的處理效率。在此說(shuō)明,CPU對(duì)USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器中數(shù)據(jù)進(jìn)行處理的過(guò)程主要是CPU將USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器中數(shù)據(jù)從硬件FIFO存儲(chǔ)器中拷貝到主機(jī)設(shè)備的其他內(nèi)存中的過(guò)程,是一個(gè)搬運(yùn)過(guò)程,實(shí)質(zhì)上并不對(duì)對(duì)這些數(shù)據(jù)做具體的處理。所述其他內(nèi)存主要是指主機(jī)設(shè)備內(nèi)部供應(yīng)用層處理模塊使用的內(nèi)存,是一種軟件內(nèi)存。對(duì)這些數(shù)據(jù)的具體處理是由應(yīng)用層處理模塊負(fù)責(zé)完成的,應(yīng)用層處理模塊對(duì)數(shù)據(jù)的處理會(huì)因?yàn)榫唧w應(yīng)用的不同而不同,本實(shí)施例對(duì)該處理過(guò)程不做限定。其中,硬件FIFO存儲(chǔ)器在應(yīng)用層處理模塊對(duì)該硬件FIFO存儲(chǔ)器中的數(shù)據(jù)進(jìn)行處理的過(guò)程中不能被重新使用,只有在應(yīng)用層處理模塊對(duì)該硬件FIFO存儲(chǔ)器中的數(shù)據(jù)處理完成之后,該硬件FIFO存儲(chǔ)器才可以重新使用。其中,在主機(jī)設(shè)備上有另外的寄存器用于表示該FIFO存儲(chǔ)器中的數(shù)據(jù)是否被應(yīng)用層處理模塊進(jìn)行處理。進(jìn)一步,在現(xiàn)有軟件中斷處理方式中,對(duì)于傳輸數(shù)據(jù)較頻繁的情況,例如USB2.0和USB3. 0協(xié)議,其交易周期為125微秒(us),軟件中斷的調(diào)度頻率達(dá)不到這一要求,這樣就會(huì)出現(xiàn)硬件收上來(lái)的數(shù)據(jù)全部屯在硬件FIFO存儲(chǔ)器中,甚至出現(xiàn)硬件FIFO存儲(chǔ)器溢出導(dǎo)致數(shù)據(jù)丟失的現(xiàn)象。而在本實(shí)施例中,CPU周期性的查詢FIFO存儲(chǔ)器,其優(yōu)先級(jí)較高,且CPU在查詢到FIFO存儲(chǔ)器有數(shù)據(jù)時(shí),可以一次性將所有數(shù)據(jù)傳輸至應(yīng)用層處理模塊,其處理速度和效率都有提高,在很大程度上降低了 FIFO存儲(chǔ)器溢出的概率,降低了數(shù)據(jù)丟失的概率。圖2為本發(fā)明實(shí)施例提供的另一種USB傳輸控制方法的流程圖。如圖2所示,本實(shí)施例的方法包括步驟201、主機(jī)設(shè)備的CPU配置USB傳輸端點(diǎn)對(duì)應(yīng)的查詢方式指示,該查詢方式指示用于指示對(duì)該USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器的查詢方式為周期性查詢,并設(shè)置CPU周期性查詢USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器的優(yōu)先級(jí)高于CPU以軟件中斷方式查詢?cè)揢SB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器的優(yōu)先級(jí)。步驟202、主機(jī)設(shè)備的CPU根據(jù)預(yù)設(shè)的查詢周期,周期性的查詢USB傳輸端點(diǎn)下的USB請(qǐng)求塊URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器。步驟202可參見(jiàn)上述步驟101,在此不再贅述。步驟203、當(dāng)查詢到USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器中有數(shù)據(jù)時(shí),CPU將該USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器中的至少一個(gè)第一數(shù)據(jù)一次性傳輸給主機(jī)設(shè)備的應(yīng)用層處理模塊,以供該應(yīng)用層處理模塊對(duì)至少一個(gè)第一數(shù)據(jù)進(jìn)行處理。步驟203可參見(jiàn)上述步驟102,在此不再贅述。通常,USB設(shè)備會(huì)有多個(gè)同一類型的USB傳輸端點(diǎn)。主機(jī)設(shè)備的CPU完成初始化后,為從USB設(shè)備端掃描到得USB傳輸端點(diǎn)分配硬件FIFO存儲(chǔ)器,并將對(duì)應(yīng)的硬件FIFO存儲(chǔ)器的地址寫入硬件寄存器,這些USB傳輸端點(diǎn)串成一個(gè)單向鏈表。之后,主機(jī)設(shè)備的硬件收發(fā)單元周期性的從該單向鏈表的表頭開(kāi)始掃描一直到該單向鏈表的鏈表尾,以發(fā)現(xiàn)有數(shù)據(jù)需要處理的USB傳輸端點(diǎn),然后觸發(fā)軟件中斷,由主機(jī)設(shè)備的CPU執(zhí)行軟件中斷服務(wù)程序?qū)τ袛?shù)據(jù)需要處理的USB傳輸端點(diǎn)下的數(shù)據(jù)進(jìn)行處理。在這種處理機(jī)制里面,所有的USB傳輸端點(diǎn)的優(yōu)先級(jí)都是一樣的,無(wú)法優(yōu)先處理其中一個(gè)USB傳輸端點(diǎn)的數(shù)據(jù)。針對(duì)上述問(wèn)題,本實(shí)施例通過(guò)設(shè)置周期性查詢方式的優(yōu)先級(jí)高于軟件中斷方式查詢的優(yōu)先級(jí),并通過(guò)配置需要優(yōu)先處理的USB傳輸端點(diǎn)的查詢方式指示,將需要優(yōu)先處理的USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器的查詢方式設(shè)置為周期性查詢,然后針對(duì)該USB傳輸端點(diǎn),CPU采用周期性的查詢方式對(duì)其下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器進(jìn)行查詢,這樣可以有針對(duì)性的提高某些USB傳輸端點(diǎn)的查詢效率,可以實(shí)現(xiàn)對(duì)USB傳輸端點(diǎn)之間的優(yōu)先級(jí)的區(qū)分。對(duì)于沒(méi)有設(shè)置為周期性查詢的USB傳輸端點(diǎn),CPU仍采用現(xiàn)有技術(shù)中的軟件中斷方式進(jìn)行處理,只是硬件收發(fā)單元在周期性掃描單向鏈表的過(guò)程中,會(huì)跳過(guò)設(shè)置為周期性查詢方式的USB傳輸端點(diǎn),而只對(duì)哪些沒(méi)有設(shè)置為周期性查詢方式的USB傳輸端點(diǎn)進(jìn)行掃描。其中,對(duì)于設(shè)置為周期性查詢方式的USB傳輸端點(diǎn),CPU會(huì)根據(jù)預(yù)設(shè)查詢周期,周期性的查詢這些USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器。在此說(shuō)明,從硬件角度來(lái)看,仍然是由全部USB傳輸端點(diǎn)構(gòu)成單向鏈表;從對(duì)USB傳輸端點(diǎn)的處理過(guò)程來(lái)看,在硬件收發(fā)單元掃描該單向鏈表的過(guò)程中,將跳過(guò)預(yù)先設(shè)置為周期性查詢的USB傳輸端點(diǎn),不對(duì)其進(jìn)行掃描。在本實(shí)施例中,通過(guò)將需要進(jìn)行優(yōu)先處理的USB傳輸端點(diǎn)的查詢方式設(shè)置為周期性查詢,而將哪些不需要優(yōu)先處理的USB傳輸端點(diǎn)仍然采用軟件中斷方式,可以實(shí)現(xiàn)對(duì)USB傳輸端點(diǎn)優(yōu)先級(jí)的劃分,實(shí)現(xiàn)對(duì)重要USB傳輸端點(diǎn)和普通USB傳輸端點(diǎn)的隔離,達(dá)到提高重要USB傳輸端點(diǎn)的優(yōu)先級(jí)的目的。圖3為本發(fā)明實(shí)施例提供的又一種USB傳輸控制方法的流程圖。如圖3所示,本實(shí)施例的方法包括步驟301、主機(jī)設(shè)備的CPU根據(jù)預(yù)設(shè)的查詢周期,周期性的查詢USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器,其中,CPU周期性查詢USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器的優(yōu)先級(jí)高于CPU以軟件中斷方式查詢?cè)揢SB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器的優(yōu)先級(jí)。步驟301可參見(jiàn)步驟101,在此不再贅述。步驟302、當(dāng)查詢到USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器中有數(shù)據(jù)時(shí),CPU將USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器中的至少一個(gè)第一數(shù)據(jù)一次性傳輸給主機(jī)設(shè)備的應(yīng)用層處理模塊,以供應(yīng)用層處理模塊對(duì)第一數(shù)據(jù)進(jìn)行處理。步驟302可參見(jiàn)步驟102,在此不再贅述。步驟303、CPU接收應(yīng)用層處理模塊發(fā)送的請(qǐng)求從上述USB傳輸端點(diǎn)發(fā)送數(shù)據(jù)的端點(diǎn)查詢請(qǐng)求。步驟304、CPU根據(jù)該端點(diǎn)查詢請(qǐng)求,判斷該USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器是否掛接在主機(jī)設(shè)備的硬件收發(fā)單元上;如果判斷結(jié)果為是,執(zhí)行步驟305 ;如果判斷結(jié)果為否,則執(zhí)行步驟306。步驟305、CPU直接通過(guò)該USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器發(fā)送第二數(shù)據(jù)到主機(jī)設(shè)備的硬件收發(fā)單元上。步驟306、CPU將該USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器掛接到主機(jī)設(shè)備的硬件收發(fā)單元上,并通過(guò)該USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器發(fā)送第二數(shù)據(jù)到所述硬件收發(fā)單元。在此說(shuō)明,上述步驟301和步驟302描述的是對(duì)接收到的USB設(shè)備發(fā)送的數(shù)據(jù)進(jìn)行傳輸處理的過(guò)程,而步驟303-步驟306描述的是向USB設(shè)備發(fā)送數(shù)據(jù)的處理過(guò)程。這兩個(gè)過(guò)程的先后順序不做限定。根據(jù)USB協(xié)議的特性,USB總線是總線輪詢機(jī)制,只要有USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器掛接在硬件收發(fā)單元上,硬件收發(fā)單元就會(huì)去處理,向?qū)Χ说腢SB設(shè)備發(fā)送請(qǐng)求(TAK0N)包,而USB設(shè)備也會(huì)相應(yīng)的回應(yīng)握手包以響應(yīng)主機(jī)設(shè)備,這是需要占用硬件收發(fā)單元的處理時(shí)間和總線的。但是,在實(shí)際的應(yīng)用中,并不是所有USB傳輸端點(diǎn)都要不停的傳輸數(shù)據(jù),相反,大部分USB傳輸端點(diǎn)通常是偶然才會(huì)有數(shù)據(jù)傳輸,還有一些USB傳輸端點(diǎn)是用來(lái)管理設(shè)備的,這類USB傳輸端點(diǎn)一般也不會(huì)主動(dòng)發(fā)起數(shù)據(jù)傳輸。由此可見(jiàn),現(xiàn)有USB傳輸端點(diǎn)管理方式會(huì)浪費(fèi)硬件收發(fā)單元的資源以及總線資源。其中,USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器掛接在硬件收發(fā)單元上可以簡(jiǎn)單描述為USB傳輸端點(diǎn)下的URB掛接在硬件收發(fā)單元上。為了解決該問(wèn)題,本實(shí)施例給出一種動(dòng)態(tài)管理USB傳輸端點(diǎn)的方法,即只有在USB傳輸端點(diǎn)有傳輸需求時(shí),才將USB傳輸端點(diǎn)下的URB掛接到主機(jī)設(shè)備的硬件收發(fā)單元上。其中,主機(jī)設(shè)備的應(yīng)用層處理模塊在需要通過(guò)USB傳輸端點(diǎn)發(fā)送數(shù)據(jù)時(shí),一般會(huì)向CPU發(fā)送請(qǐng)求通過(guò)USB傳輸端點(diǎn)發(fā)送數(shù)據(jù)的端點(diǎn)查詢請(qǐng)求,基于此,CPU可以根據(jù)應(yīng)用層處理模塊發(fā)送的端點(diǎn)查詢請(qǐng)求,獲知哪個(gè)USB傳輸端點(diǎn)有傳輸需求。CPU根據(jù)該應(yīng)用層處理模塊發(fā)送的端點(diǎn)查詢請(qǐng)求,獲知USB傳輸端點(diǎn)有傳輸需求后,可以判斷USB傳輸端點(diǎn)下的URB是否掛接在主機(jī)設(shè)備的硬件收發(fā)單元上;如果判斷出USB傳輸端點(diǎn)下的URB掛接在主機(jī)設(shè)備的硬件收發(fā)單元上,則直接通過(guò)該USB傳輸端點(diǎn)下的URB發(fā)送第二數(shù)據(jù)到硬件收發(fā)單元;如果判斷出USB傳輸端點(diǎn)下的URB沒(méi)有掛接在主機(jī)設(shè)備的硬件收發(fā)單元上,則先將USB傳輸端點(diǎn)下的URB掛接在主機(jī)設(shè)備的硬件收發(fā)單元上,然后通過(guò)USB傳輸端點(diǎn)下的URB發(fā)送第二數(shù)據(jù)到硬件收發(fā)單元上。之后,硬件收發(fā)單元通過(guò)USB總線將第二數(shù)據(jù)發(fā)送給對(duì)端的USB設(shè)備?;谏鲜觯緦?shí)施例的方法還包括CPU判斷應(yīng)用層處理模塊的本次發(fā)送操作是否結(jié)束,如果判斷結(jié)果為是,則將USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器從硬件收發(fā)單元上摘除,以減輕硬件收發(fā)單元的處理負(fù)擔(dān),減少對(duì)總線資源的占用。其中,將USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器從硬件收發(fā)單元上摘除可以簡(jiǎn)單描述為將USB傳輸端點(diǎn)下的URB從硬件收發(fā)單元上摘除。在此說(shuō)明,在本實(shí)施例中,對(duì)于USB傳輸端點(diǎn)下的URB的掛接和摘除,要做到完全隔離,摘除動(dòng)作要干凈,在硬件收發(fā)單元上不能有殘留,否則會(huì)影響后續(xù)的動(dòng)作。在本實(shí)施例中,通過(guò)動(dòng)態(tài)掛接和摘除USB傳輸端點(diǎn)下的URB,有利于結(jié)余USB傳輸端點(diǎn)在沒(méi)有傳輸需求時(shí)消耗的硬件收發(fā)單元的資源和占用的總線資源,有利于減輕硬件收發(fā)單元的處理負(fù)擔(dān),從整體上提高基于USB的傳輸性能。圖4為本發(fā)明實(shí)施例提供的一種主機(jī)設(shè)備的結(jié)構(gòu)示意圖。如圖4所示,本實(shí)施例的主機(jī)設(shè)備包括查詢模塊41、傳輸模塊42和應(yīng)用層處理模塊43。查詢模塊41,用于根據(jù)預(yù)設(shè)的查詢周期,周期性的查詢USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器;其中,查詢模塊41周期性查詢USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器的優(yōu)先級(jí)高于查詢模塊41以軟件中斷方式查詢USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器的優(yōu)先級(jí)。傳輸模塊42,與查詢模塊41連接,用于在查詢模塊41查詢到USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器中有數(shù)據(jù)時(shí),將USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器中的至少一個(gè)第一數(shù)據(jù)一次性傳輸給主機(jī)設(shè)備的應(yīng)用層處理模塊43,以供應(yīng)用層處理模塊43對(duì)至少一個(gè)第一數(shù)據(jù)進(jìn)行處理。應(yīng)用層處理模塊43,與傳輸模塊42連接,用于對(duì)傳輸模塊42發(fā)送的至少一個(gè)第一數(shù)據(jù)進(jìn)行處理。在一可選實(shí)施方式中,查詢模塊41和傳輸模塊42可以集成在主機(jī)設(shè)備的CPU中實(shí)現(xiàn)。在一可選實(shí)施方式中,如圖5所示,本實(shí)施例的主機(jī)設(shè)備還包括配置模塊44。配置模塊44,與查詢模塊41連接,用于在查詢模塊41查詢USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬 件FIFO存儲(chǔ)器之前,配置該USB傳輸端點(diǎn)對(duì)應(yīng)的查詢方式指示,該查詢方式指示用于指示對(duì)該USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器的查詢方式為周期性查詢。在一可選實(shí)施方式中,如圖5所示,本實(shí)施例的主機(jī)設(shè)備還包括接收模塊45、第一判斷模塊46和發(fā)送處理模塊47。接收模塊45,與應(yīng)用層處理模塊43連接,用于接收應(yīng)用層處理模塊43發(fā)送的請(qǐng)求從USB傳輸端點(diǎn)發(fā)送數(shù)據(jù)的端點(diǎn)查詢請(qǐng)求。第一判斷模塊46,與接收模塊45連接,用于根據(jù)接收模塊45接收的端點(diǎn)查詢請(qǐng)求,判斷USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器是否掛接在主機(jī)設(shè)備的硬件收發(fā)單元48上。本實(shí)施例的主機(jī)設(shè)備還包括硬件收發(fā)單元48,用于通過(guò)USB總線與USB設(shè)備進(jìn)行數(shù)據(jù)收發(fā)。發(fā)送處理模塊47,與第一判斷模塊46連接,用于在第一判斷模塊46的判斷結(jié)果為否時(shí),將USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器掛接到主機(jī)設(shè)備的硬件收發(fā)單元48上,并通過(guò)USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器發(fā)送第二數(shù)據(jù)到該硬件收發(fā)單元48,或者在第一判斷模塊46的判斷結(jié)果為是時(shí),直接通過(guò)USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器發(fā)送第二數(shù)據(jù)到該硬件收發(fā)單元48。發(fā)送處理模塊47與硬件收發(fā)單元48連接。在一可選實(shí)施方式中,如圖5所示,本實(shí)施例的主機(jī)設(shè)備還包括第二判斷模塊49和摘除模塊50。第二判斷模塊49,與應(yīng)用層處理模塊43連接,用于判斷應(yīng)用層處理模塊43的本次發(fā)送操作是否結(jié)束。摘除模塊50,與第二判斷模塊49連接,用于在第二判斷模塊49的判斷結(jié)果為是時(shí),將USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器從硬件收發(fā)單元48上摘除。摘除模塊50與硬件收發(fā)單元48連接??蛇x的,除了查詢模塊41和傳輸模塊42可以集成在主機(jī)設(shè)備的CPU中實(shí)現(xiàn)之外,上述配置模塊44、接收模塊45、第一判斷模塊46、發(fā)送處理模塊47、第二判斷模塊49和摘除模塊50也可以集成在主機(jī)設(shè)備的CPU中實(shí)現(xiàn)。S卩,查詢模塊41、傳輸模塊42、配置模塊44、接收模塊45、第一判斷模塊46、發(fā)送處理模塊47、第二判斷模塊49和摘除模塊50可以集成在王機(jī)設(shè)備的CPU中實(shí)現(xiàn)。本實(shí)施例提供的主機(jī)設(shè)備的各功能模塊可用于執(zhí)行上述圖1-圖3所示USB傳輸控制方法的流程,其具體工作原理不再贅述,詳見(jiàn)方法實(shí)施例的描述。本實(shí)施例提供的主機(jī)設(shè)備,通過(guò)設(shè)置優(yōu)先級(jí)高于軟件中斷的周期性查詢方式,周期性的去查詢USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器,將USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器中的數(shù)據(jù)發(fā)送給主機(jī)設(shè)備的應(yīng)用層處理模塊,由應(yīng)用層處理模塊對(duì)數(shù)據(jù)進(jìn)行處理,這種傳輸控制方式將USB傳輸端點(diǎn)從中斷傳輸方式中剝離出來(lái),改用優(yōu)先級(jí)較高的周期性查詢方式,克服了因軟件中斷方式優(yōu)先級(jí)較低導(dǎo)致CPU被其他任務(wù)搶占,無(wú)法及時(shí)對(duì)接收到的數(shù)據(jù)進(jìn)行處理的問(wèn)題,提高了對(duì)數(shù)據(jù)進(jìn)行處理的效率;另外,由于采用了周期性查詢方式,不用像現(xiàn)有軟件中斷處理方式那樣一次僅處理一個(gè)數(shù)據(jù),可以在一次查詢過(guò)程中將USB傳輸端點(diǎn)下至少一個(gè)數(shù)據(jù)一次性處理完,有利于降低對(duì)主機(jī)設(shè)備的CPU的占用率,進(jìn)一步提高對(duì)數(shù)據(jù)的處理效率。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述各方法實(shí)施例的全部或部分步驟可以通過(guò)程序指令相關(guān)的硬件來(lái)完成。前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。該程序在執(zhí)行時(shí),執(zhí)行包括上述各方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括R0M、RAM、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。最后應(yīng)說(shuō)明的是以上各實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述各實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。
權(quán)利要求
1.一種通用串行總線USB傳輸控制方法,其特征在于,包括主機(jī)設(shè)備的中央處理器CPU根據(jù)預(yù)設(shè)的查詢周期,周期性的查詢USB傳輸端點(diǎn)下的USB 請(qǐng)求塊URB對(duì)應(yīng)的硬件先進(jìn)先出FIFO存儲(chǔ)器;其中,所述CPU周期性查詢所述USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器的優(yōu)先級(jí)高于所述CPU以軟件中斷方式查詢所述USB 傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器的優(yōu)先級(jí);當(dāng)查詢到所述USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器中有數(shù)據(jù)時(shí),所述CPU將所述USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器中的至少一個(gè)第一數(shù)據(jù)一次性傳輸給所述主機(jī)設(shè)備的應(yīng)用層處理模塊,以供所述應(yīng)用層處理模塊對(duì)所述至少一個(gè)第一數(shù)據(jù)進(jìn)行處理。
2.根據(jù)權(quán)利要求1所述的USB傳輸控制方法,其特征在于,所述主機(jī)設(shè)備的中央處理器CPU根據(jù)預(yù)設(shè)的查詢周期,周期性的查詢USB傳輸端點(diǎn)下的USB請(qǐng)求塊URB對(duì)應(yīng)的硬件先進(jìn)先出FIFO存儲(chǔ)器之前,包括所述CPU配置所述USB傳輸端點(diǎn)對(duì)應(yīng)的查詢方式指示,所述查詢方式指示用于指示對(duì)所述USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器的查詢方式為周期性查詢。
3.根據(jù)權(quán)利要求1或2所述的USB傳輸控制方法,其特征在于,還包括所述CPU接收所述應(yīng)用層處理模塊發(fā)送的請(qǐng)求從所述USB傳輸端點(diǎn)發(fā)送數(shù)據(jù)的端點(diǎn)查詢請(qǐng)求;所述CPU根據(jù)所述端點(diǎn)查詢請(qǐng)求,判斷所述USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器是否掛接在所述主機(jī)設(shè)備的硬件收發(fā)單元上;如果判斷結(jié)果為否,所述CPU將所述USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器掛接到所述硬件收發(fā)單元上,并通過(guò)所述USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器發(fā)送第二數(shù)據(jù)到所述硬件收發(fā)單元;如果判斷結(jié)果為是,所述CPU直接通過(guò)所述USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器發(fā)送所述第二數(shù)據(jù)到所述硬件收發(fā)單元。
4.根據(jù)權(quán)利要求3所述的USB傳輸控制方法,其特征在于,還包括所述CPU判斷所述應(yīng)用層處理模塊的本次發(fā)送操作是否結(jié)束;如果判斷結(jié)果為是,所述CPU將所述USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器從所述硬件收發(fā)單元上摘除。
5.—種主機(jī)設(shè)備,其特征在于,包括查詢模塊、傳輸模塊和應(yīng)用層處理模塊;所述查詢模塊,用于根據(jù)預(yù)設(shè)的查詢周期,周期性的查詢通用串行總線USB傳輸端點(diǎn)下的USB請(qǐng)求塊URB對(duì)應(yīng)的硬件先進(jìn)先出FIFO存儲(chǔ)器;其中,所述查詢模塊周期性查詢所述USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器的優(yōu)先級(jí)高于所述查詢模塊以軟件中斷方式查詢所述USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器的優(yōu)先級(jí);所述傳輸模塊,用于在所述查詢模塊查詢到所述USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件 FIFO存儲(chǔ)器中有數(shù)據(jù)時(shí),將所述USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器中的至少一個(gè)第一數(shù)據(jù)一次性傳輸給所述主機(jī)設(shè)備的應(yīng)用層處理模塊,以供所述應(yīng)用層處理模塊對(duì)所述至少一個(gè)第一數(shù)據(jù)進(jìn)行處理。
6.根據(jù)權(quán)利要求5所述的主機(jī)設(shè)備,其特征在于,還包括配置模塊,用于在所述查詢模塊查詢所述USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器之前,配置所述USB傳輸端點(diǎn)對(duì)應(yīng)的查詢方式指示,所述查詢方式指示用于指示對(duì)所述USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器的查詢方式為周期性查詢。
7.根據(jù)權(quán)利要求6所述的主機(jī)設(shè)備,其特征在于,還包括 接收模塊,用于接收所述應(yīng)用層處理模塊發(fā)送的請(qǐng)求從所述USB傳輸端點(diǎn)發(fā)送數(shù)據(jù)的端點(diǎn)查詢請(qǐng)求; 第一判斷模塊,用于根據(jù)所述端點(diǎn)查詢請(qǐng)求,判斷所述USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器是否掛接在所述主機(jī)設(shè)備的硬件收發(fā)單元上; 發(fā)送處理模塊,用于在所述第一判斷模塊的判斷結(jié)果為否時(shí),將所述USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器掛接到所述硬件收發(fā)單元上,并通過(guò)所述USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器發(fā)送第二數(shù)據(jù)到所述硬件收發(fā)單元,或者在所述第一判斷模塊的判斷結(jié)果為是時(shí),直接通過(guò)所述USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器發(fā)送所述第二數(shù)據(jù)到所述硬件收發(fā)單元。
8.根據(jù)權(quán)利要求7所述的主機(jī)設(shè)備,其特征在于,還包括 第二判斷模塊,用于判斷所述應(yīng)用層處理模塊的本次發(fā)送操作是否結(jié)束; 摘除模塊,用于在所述第二判斷模塊的判斷結(jié)果為是時(shí),將所述USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器從所述硬件收發(fā)單元上摘除。
9.根據(jù)權(quán)利要求5-8任一項(xiàng)所述的主機(jī)設(shè)備,其特征在于,所述查詢模塊和所述傳輸模塊集成在所述主機(jī)設(shè)備的中央處理器CPU中實(shí)現(xiàn)。
10.根據(jù)權(quán)利要求8所述的主機(jī)設(shè)備,其特征在于,所述查詢模塊、所述傳輸模塊、所述配置模塊、所述接收模塊、所述第一判斷模塊、所述發(fā)送處理模塊、所述第二判斷模塊和所述拆除模塊集成在所述主機(jī)設(shè)備的CPU中實(shí)現(xiàn)。
全文摘要
本發(fā)明提供一種通用串行總線傳輸控制方法及主機(jī)設(shè)備。方法包括CPU根據(jù)預(yù)設(shè)的查詢周期,周期性的查詢USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器;其中,周期性查詢USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器的優(yōu)先級(jí)高于以軟件中斷方式查詢USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器的優(yōu)先級(jí);當(dāng)查詢到USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器中有數(shù)據(jù)時(shí),CPU將USB傳輸端點(diǎn)下的URB對(duì)應(yīng)的硬件FIFO存儲(chǔ)器中的至少一個(gè)第一數(shù)據(jù)一次性傳輸給應(yīng)用層處理模塊,以供應(yīng)用層處理模塊對(duì)至少一個(gè)第一數(shù)據(jù)進(jìn)行處理。采用本發(fā)明技術(shù)方案可以提高基于USB的數(shù)據(jù)的處理效率。
文檔編號(hào)G06F13/18GK103019975SQ20121047235
公開(kāi)日2013年4月3日 申請(qǐng)日期2012年11月20日 優(yōu)先權(quán)日2012年11月20日
發(fā)明者黃磊 申請(qǐng)人:福建星網(wǎng)銳捷網(wǎng)絡(luò)有限公司