国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種可動(dòng)態(tài)配置的usb端口復(fù)用方法、系統(tǒng)和裝置的制作方法

      文檔序號:6581349閱讀:203來源:國知局

      專利名稱::一種可動(dòng)態(tài)配置的usb端口復(fù)用方法、系統(tǒng)和裝置的制作方法
      技術(shù)領(lǐng)域
      :本發(fā)明涉及通信系統(tǒng)
      技術(shù)領(lǐng)域
      ,更具體地,涉及一種可動(dòng)態(tài)配置的USB端口復(fù)用方法、系統(tǒng)和裝置。
      背景技術(shù)
      :隨著通訊
      技術(shù)領(lǐng)域
      新需求、新應(yīng)用日益增多,移動(dòng)終端(如手機(jī)和數(shù)據(jù)卡)作為移動(dòng)通信設(shè)備,承載的功能和應(yīng)用也越來越多。通過USB口把移動(dòng)終端接到PC(PersonalComputer)機(jī)上,其與PC機(jī)可能同時(shí)有多種通信,例如通過網(wǎng)絡(luò)下載音樂視頻到PC機(jī)上,在PC機(jī)和具有U盤功能的移動(dòng)終端之間進(jìn)行數(shù)據(jù)傳輸,語音數(shù)據(jù)的雙向傳輸,PC下發(fā)給移動(dòng)終端的命令設(shè)置信息和其他一些特殊應(yīng)用通信等。對于上述多種應(yīng)用通信,最好是各自都有獨(dú)立的端口進(jìn)行通信,然而實(shí)際上物理端點(diǎn)不可能有那么多,也沒必要那么多,硬件也不可能隨意跟著軟件應(yīng)用頻繁變動(dòng)。因此,有人提出多端口復(fù)用的概念,即在一個(gè)物理端點(diǎn)上虛擬出多個(gè)邏輯端口,每個(gè)邏輯端口供一個(gè)應(yīng)用使用。但是,這種方案把所有的應(yīng)用通信數(shù)據(jù)都集中到一個(gè)物理端點(diǎn)進(jìn)行傳輸,失去了USB端點(diǎn)本身具有的多種傳輸方式、多種傳輸速率的靈活配置方式,同時(shí)也沒有考慮為避免其他應(yīng)用干擾,有些關(guān)鍵通信數(shù)據(jù)必須放在獨(dú)立通道進(jìn)行傳輸。另外,有些應(yīng)用只在開啟時(shí)才進(jìn)行通訊,沒有必要自始至終都建立通道,浪費(fèi)軟硬件資源。
      發(fā)明內(nèi)容本發(fā)明所要解決的技術(shù)問題是克服現(xiàn)有技術(shù)中存在的USB端點(diǎn)復(fù)用死板缺少靈活性、不區(qū)分各種數(shù)據(jù)傳輸?shù)奶攸c(diǎn)而統(tǒng)一處理、不能運(yùn)行中動(dòng)態(tài)配置的技術(shù)缺陷。為解決上述技術(shù)問題本發(fā)明采用的技術(shù)方案是提供一種可動(dòng)態(tài)配置的USB端口復(fù)用方法,包括USB物理端點(diǎn)管理模塊把USB物理端點(diǎn)初始化為不同傳輸方式、不同傳輸速率的端點(diǎn);USB端點(diǎn)復(fù)用模塊根據(jù)物理端點(diǎn)配置啟用不同的發(fā)送/接收線程;上層邏輯端口模塊提供上層應(yīng)用操作USB底層的接口,對數(shù)據(jù)進(jìn)行處理。進(jìn)一步地,上述方法還包括所述上層邏輯端口包括寫接口和讀接口,所述寫接口把下行數(shù)據(jù)發(fā)往邏輯端口發(fā)送隊(duì)列,等待發(fā)送線程的處理;所述讀接口則直接從對應(yīng)邏輯端口接收隊(duì)列中讀取數(shù)據(jù)提供給上層應(yīng)用。進(jìn)一步地,上述方法還包括所述USB物理端點(diǎn)管理模塊初始化時(shí)為每個(gè)端點(diǎn)指定接收/發(fā)送中斷處理函數(shù),接收端點(diǎn)在接收中斷處理函數(shù)中把數(shù)據(jù)發(fā)往指定的隊(duì)列中,發(fā)送端點(diǎn)發(fā)送完指定數(shù)據(jù)后就觸發(fā)發(fā)送中斷處理函數(shù)。進(jìn)一步地,上述方法還包括如果所述端點(diǎn)是單應(yīng)用端點(diǎn),上行數(shù)據(jù)直接發(fā)往對應(yīng)邏輯端口隊(duì)列,下行數(shù)據(jù)直接通過對應(yīng)物理端點(diǎn)進(jìn)行發(fā)送。進(jìn)一步地,上述方法還包括如果所述端點(diǎn)是復(fù)用端點(diǎn),上行數(shù)據(jù)在接收中斷處理函數(shù)中發(fā)往對應(yīng)的物理端點(diǎn)接收隊(duì)列中,在接收線程中讀取該隊(duì)列數(shù)據(jù),進(jìn)行解析楨數(shù)據(jù),發(fā)往該楨所標(biāo)志的邏輯端口接收隊(duì)列;下行數(shù)據(jù)保存在邏輯端口發(fā)送隊(duì)列中,發(fā)送函數(shù)可以根據(jù)邏輯端口的優(yōu)先級讀取對應(yīng)邏輯端口的下行數(shù)據(jù)隊(duì)列,進(jìn)行編碼、組楨發(fā)往對應(yīng)的物理端點(diǎn)。進(jìn)一步地,上述方法還包括所述上層邏輯端口模塊封裝了各個(gè)邏輯端口底層是否復(fù)用的差異性,每個(gè)邏輯端口對上層應(yīng)用一樣的接口。本發(fā)明還提供一種可動(dòng)態(tài)配置的USB端口復(fù)用系統(tǒng),包括計(jì)算機(jī)主機(jī)、移動(dòng)終端和連接計(jì)算機(jī)主機(jī)與移動(dòng)終端的USB端口;所述計(jì)算機(jī)主機(jī)包括PC側(cè)軟件;所述移動(dòng)終端包括相互通信的端點(diǎn)復(fù)用層和上層應(yīng)用層;所述移動(dòng)終端與PC側(cè)軟件進(jìn)行通訊,所述端點(diǎn)復(fù)用層負(fù)責(zé)管理USB設(shè)備,并對上層應(yīng)用提供足夠多的通信接口。進(jìn)一步地,上述系統(tǒng)還包括所述端點(diǎn)復(fù)用層把USB物理端點(diǎn)初始化為不同傳輸方式、不同傳輸速率的端點(diǎn);并根據(jù)物理端點(diǎn)配置啟用不同的發(fā)送/接收線程;提供上層應(yīng)用操作USB底層的接口,對數(shù)據(jù)進(jìn)行處理。本發(fā)明還提供一種可動(dòng)態(tài)配置的USB端口復(fù)用裝置,包括USB物理端點(diǎn)管理模塊、USB端點(diǎn)復(fù)用模塊和上層邏輯端口模塊;其中USB物理端點(diǎn)管理模塊把USB物理端點(diǎn)初始化為不同傳輸方式、不同傳輸速率的端點(diǎn);USB端點(diǎn)復(fù)用模塊根據(jù)物理端點(diǎn)配置啟用不同的發(fā)送/接收線程;上層邏輯端口模塊提供上層應(yīng)用操作USB的底層接口,對數(shù)據(jù)進(jìn)行處理。進(jìn)一步地,上述裝置還包括所述上層邏輯端口包括寫接口和讀接口,所述寫接口把下行數(shù)據(jù)發(fā)往邏輯端口發(fā)送隊(duì)列,等待發(fā)送線程的處理;所述讀接口則直接從對應(yīng)邏輯端口接收隊(duì)列中讀取數(shù)據(jù)提供給上層應(yīng)用。進(jìn)一步地,上述裝置還包括所述邏輯端口是雙向通道,所述物理端點(diǎn)是單向通道,一個(gè)邏輯端口映射兩個(gè)物理端口,用一個(gè)數(shù)組記錄所述映射信息,數(shù)組長度為邏輯端口的個(gè)數(shù),當(dāng)應(yīng)用增加,定義更大長度的數(shù)組并使之映射到某個(gè)合適的物理端點(diǎn),即可增加邏輯端口的數(shù)量供新的應(yīng)用使用。進(jìn)一步地,上述裝置還包括當(dāng)要配置某個(gè)物理端點(diǎn)時(shí),先查詢端點(diǎn)配置表,統(tǒng)計(jì)有多少邏輯端口映射到該端點(diǎn),如果沒有邏輯端口映射到該端點(diǎn),則不必初始化該端點(diǎn);如果只有一個(gè)邏輯端口映射到該端點(diǎn),則屬于一個(gè)邏輯端口獨(dú)享一個(gè)物理端點(diǎn)的傳統(tǒng)方式;此時(shí)給該物理端點(diǎn)初始化時(shí),所指定的接收中斷處理函數(shù)中直接把接收到的數(shù)據(jù)發(fā)送到對應(yīng)邏輯端口接收隊(duì)列中,所創(chuàng)建的發(fā)送線程也只負(fù)責(zé)將指定邏輯端口發(fā)送隊(duì)列中的數(shù)據(jù)發(fā)送到對應(yīng)物理端點(diǎn)中;如果有多于一個(gè)的邏輯端口映射到該端點(diǎn),則需要將該端點(diǎn)初始化為端口復(fù)用模式,即所指定的接收中斷處理函數(shù)接收到的數(shù)據(jù)需經(jīng)過接收線程分楨,解碼后分發(fā)到對應(yīng)的邏輯端口接收隊(duì)列中;而發(fā)送線程則需查詢對應(yīng)幾個(gè)邏輯端口的發(fā)送隊(duì)列,一旦檢測到數(shù)據(jù)就開始編碼,組楨發(fā)送到該物理端點(diǎn)。綜上,采用本發(fā)明所述的方法、系統(tǒng)和裝置,可以實(shí)現(xiàn)普通端點(diǎn)和復(fù)用端點(diǎn)的多個(gè)實(shí)例并存,不同傳輸方式的端點(diǎn)并存,動(dòng)態(tài)配置而不影響上層應(yīng)用的特點(diǎn),提高了數(shù)據(jù)傳輸?shù)撵`活性。圖1是本發(fā)明實(shí)施例可動(dòng)態(tài)配置的USB端口復(fù)用系統(tǒng)示意圖2是本發(fā)明實(shí)施例可動(dòng)態(tài)配置的USB端口復(fù)用裝置示意圖;圖3是本發(fā)明實(shí)施例可動(dòng)態(tài)配置的USB端口復(fù)用裝置在數(shù)據(jù)卡中的應(yīng)用示意圖;圖4是本實(shí)施例中USB物理端點(diǎn)配置流程圖;圖5是本發(fā)明實(shí)施例USB物理端點(diǎn)的可配置項(xiàng)示意圖;圖6是本發(fā)明實(shí)施例中單應(yīng)用端點(diǎn)數(shù)據(jù)流示意圖;圖7是本發(fā)明實(shí)施例中復(fù)用端點(diǎn)數(shù)據(jù)流示意圖。具體實(shí)施例方式下面結(jié)合附圖對本發(fā)明的技術(shù)方案的具體實(shí)施作進(jìn)一步的詳細(xì)描述圖1是本發(fā)明可動(dòng)態(tài)配置的USB端口復(fù)用系統(tǒng)實(shí)施例示意圖。該系統(tǒng)包括計(jì)算機(jī)主機(jī)、移動(dòng)終端和連接計(jì)算機(jī)主機(jī)與移動(dòng)終端的USB端口。所述計(jì)算機(jī)主機(jī)包括PC側(cè)軟件。所述移動(dòng)終端包括相互通信的端點(diǎn)復(fù)用層和上層應(yīng)用層。所述移動(dòng)終端與PC側(cè)軟件進(jìn)行通訊,所述端點(diǎn)復(fù)用層負(fù)責(zé)管理USB設(shè)備,并對上層應(yīng)用提供足夠多的通訊接口。如圖2所示,其是本發(fā)明可動(dòng)態(tài)配置的USB端口復(fù)用裝置實(shí)施例示意圖,所述端口復(fù)用裝置包括USB物理端點(diǎn)管理模塊、USB端點(diǎn)復(fù)用模塊和上層邏輯端口模塊。USB物理端點(diǎn)管理模塊負(fù)責(zé)USB端點(diǎn)的配置和初始化。根據(jù)設(shè)計(jì)方案該模塊可以把USB物理端點(diǎn)初始化為不同傳輸方式、不同傳輸速率的端點(diǎn),并可以指定接收/發(fā)送中斷處理函數(shù)。接收端點(diǎn)在接收中斷處理函數(shù)中把數(shù)據(jù)發(fā)往指定的隊(duì)列中,發(fā)送端點(diǎn)發(fā)送完指定數(shù)據(jù)后就觸發(fā)發(fā)送中斷處理函數(shù)。USB端點(diǎn)復(fù)用模塊根據(jù)物理端點(diǎn)配置啟用不同的發(fā)送/接收線程,完成相應(yīng)的功能。如果是單應(yīng)用端點(diǎn),上行數(shù)據(jù)就直接發(fā)往對應(yīng)邏輯端口隊(duì)列,下行數(shù)據(jù)就直接通過對應(yīng)物理端點(diǎn)進(jìn)行發(fā)送。如果是復(fù)用端點(diǎn),上行數(shù)據(jù)在接收中斷處理函數(shù)中發(fā)往對應(yīng)的物理端點(diǎn)接收隊(duì)列中,在接收線程中讀取該隊(duì)列數(shù)據(jù),進(jìn)行解析楨數(shù)據(jù),發(fā)往該楨所標(biāo)志的邏輯端口接收隊(duì)列;下行數(shù)據(jù)則存在幾個(gè)邏輯端口發(fā)送隊(duì)列中,發(fā)送函數(shù)可以根據(jù)邏輯端口的優(yōu)先級讀取對應(yīng)邏輯端口的下行數(shù)據(jù)隊(duì)列,進(jìn)行編碼、組楨發(fā)往對應(yīng)的物理端點(diǎn)。上層邏輯端口模塊該模塊提供上層應(yīng)用操作USB底層的接口,封裝了各個(gè)邏輯端口底層是否復(fù)用的差異性。每個(gè)邏輯端口,不管底層如何實(shí)現(xiàn),對上層應(yīng)用都是一樣的接口。該模塊寫接口把下行數(shù)據(jù)發(fā)往邏輯端口發(fā)送隊(duì)列,等待發(fā)送線程的處理;讀接口則直接從對應(yīng)邏輯端口接收隊(duì)列中讀取數(shù)據(jù)提供給上層應(yīng)用。如圖3所示,是本發(fā)明可動(dòng)態(tài)配置的USB端口復(fù)用裝置在數(shù)據(jù)卡中的應(yīng)用示意圖。可以看出所述復(fù)用裝置對下依賴USB硬件資源工作,向上對應(yīng)用和PC側(cè)通訊負(fù)責(zé),將應(yīng)用層下發(fā)的數(shù)據(jù)編碼然后正確地傳輸給USB設(shè)備,并把USB接收的數(shù)據(jù)解碼發(fā)送到正確的應(yīng)用。端點(diǎn)配置表反映了邏輯端口和物理端點(diǎn)的映射關(guān)系,每個(gè)邏輯端口是雙向的通道,而物理端點(diǎn)則是單向通道,因此一個(gè)邏輯端口對應(yīng)兩個(gè)物理端口,技術(shù)人員可以根據(jù)實(shí)際情況自由映射。而這些映射信息對上層應(yīng)用是透明的,但封裝了底層實(shí)現(xiàn)細(xì)節(jié)。在該實(shí)施例中可以用一個(gè)數(shù)組記錄這些映射信息,數(shù)組長度為邏輯端口的個(gè)數(shù)。當(dāng)應(yīng)用增加,只需定義更大長度的數(shù)組并使之映射到某個(gè)合適的物理端點(diǎn),即可增加邏輯端口的數(shù)量供新的應(yīng)用使用。物理端點(diǎn)的選擇可以根據(jù)數(shù)據(jù)傳輸方式和優(yōu)先級進(jìn)行選擇,體現(xiàn)了本發(fā)明的靈活性。當(dāng)要配置某個(gè)物理端點(diǎn)I時(shí),先查詢端點(diǎn)配置表,統(tǒng)計(jì)有多少邏輯端口映射到該端點(diǎn)。如果沒有邏輯端口映射到該端點(diǎn),則不必初始化該端點(diǎn)。如果只有一個(gè)邏輯端口映射到該端點(diǎn),則屬于一個(gè)邏輯端口獨(dú)享一個(gè)物理端點(diǎn)的傳統(tǒng)方式。此時(shí)給該物理端點(diǎn)初始化時(shí),所指定的接收中斷處理函數(shù)中直接把接收到的數(shù)據(jù)發(fā)送到對應(yīng)邏輯端口接收隊(duì)列中,所創(chuàng)建的發(fā)送線程也只負(fù)責(zé)將指定邏輯端口發(fā)送隊(duì)列中的數(shù)據(jù)發(fā)送到對應(yīng)物理端點(diǎn)中。如果有多于一個(gè)的邏輯端口映射到該端點(diǎn),則需要將該端點(diǎn)初始化為端口復(fù)用模式,即所指定的接收中斷處理函數(shù)接收到的數(shù)據(jù)需經(jīng)過接收線程分楨,解碼后分發(fā)到對應(yīng)的邏輯端口接收隊(duì)列中;而發(fā)送線程則需查詢對應(yīng)幾個(gè)邏輯端口的發(fā)送隊(duì)列,一旦檢測到數(shù)據(jù)就開始編碼,組楨發(fā)送到該物理端點(diǎn)。重復(fù)上述步驟,直至完成所有物理端點(diǎn)即完成了端點(diǎn)配置。當(dāng)應(yīng)用增加,需要添加通訊接口時(shí),可以修改端點(diǎn)配置表后,重新進(jìn)行上述配置過程。<table>tableseeoriginaldocumentpage7</column></row><table>表l端點(diǎn)配置表如圖4所示,是本實(shí)施例中USB物理端點(diǎn)配置流程圖。下面詳細(xì)介紹物理端點(diǎn)配置的實(shí)現(xiàn)流程,其包括以下步驟步驟401在配置開始時(shí)清除之前配置所分配的資源;步驟402準(zhǔn)備配置物理端點(diǎn)I;步驟403讀取端點(diǎn)配置表,統(tǒng)計(jì)其對應(yīng)的邏輯端口數(shù);步驟404判斷對應(yīng)邏輯端口數(shù)是否為O,如果是O則轉(zhuǎn)入步驟408,如果不是0則轉(zhuǎn)入步驟405;步驟405判斷對應(yīng)邏輯端口數(shù)是否為l,如果是1則轉(zhuǎn)入步驟409,如果不是1則轉(zhuǎn)入步驟406;步驟406用復(fù)用端點(diǎn)配置初始化該端點(diǎn);步驟407創(chuàng)建該端點(diǎn)的相關(guān)隊(duì)列資源和接受/發(fā)送線程;步驟408判斷是否已遍歷所有端點(diǎn);如果是,則轉(zhuǎn)入步驟410,如果否,則轉(zhuǎn)入步驟402;步驟409用非復(fù)用端點(diǎn)配置初始化該端點(diǎn);步驟410配置結(jié)束。如圖5所示,是本發(fā)明實(shí)施例USB物理端點(diǎn)的可配置項(xiàng)。其包括接收中斷、接收線程、發(fā)送中斷、發(fā)送線程和端點(diǎn)選項(xiàng)。為配置一個(gè)物理端點(diǎn)的參數(shù),即各個(gè)物理端點(diǎn)不同的地方,發(fā)送/接收中斷處理函數(shù)是物理端點(diǎn)初始化時(shí)必須指定的,它們在單應(yīng)用端點(diǎn)和復(fù)合端點(diǎn)上可以統(tǒng)一,即這兩個(gè)函數(shù)可以在不同配置中實(shí)現(xiàn)重用。因?yàn)榘l(fā)送中斷處理函數(shù)僅僅相當(dāng)于一個(gè)消息,通知發(fā)送完成,而接收中斷處理函數(shù)則僅僅把USB數(shù)據(jù)讀出來發(fā)往一個(gè)指定的隊(duì)列,在不同端點(diǎn)之間僅僅是隊(duì)列不同而已。發(fā)送線程和接收線程則體現(xiàn)了單應(yīng)用端點(diǎn)和復(fù)合端點(diǎn)之間的差異性和不同配置之間的差異性。因此,要添加一個(gè)新的配置時(shí),只需實(shí)現(xiàn)一個(gè)新的發(fā)送/接收線程并把它作為新配置的元素即可,整個(gè)框架不需作出修改。因?yàn)閱螒?yīng)用端點(diǎn)直接把USB數(shù)據(jù)發(fā)送到邏輯端口的接收隊(duì)列,不用任何處理,因此不需要接收線程。端點(diǎn)選項(xiàng)則體現(xiàn)USB端點(diǎn)本身具有的一些選項(xiàng),如傳輸方式(中斷、控制、同步或批傳送方式)、傳輸方向、是否支持DMA等。如圖6所示,對單應(yīng)用端點(diǎn)數(shù)據(jù)流作詳細(xì)描述如下A:數(shù)據(jù)接收當(dāng)接收端點(diǎn)接收到數(shù)據(jù),產(chǎn)生接收中斷,在中斷中讀取USB數(shù)據(jù)后直接發(fā)往該端點(diǎn)所對應(yīng)的邏輯端口接收隊(duì)列。即端點(diǎn)和邏輯端口之間的橋梁就是邏輯端口的接收隊(duì)列,這樣USB和上層應(yīng)用之間有了隊(duì)列緩沖,一方面保證了接收中斷處理的簡潔性,又確保上層應(yīng)用可以隨時(shí)查詢到來數(shù)據(jù)。更為重要的是,保持了單應(yīng)用端點(diǎn)和復(fù)用端點(diǎn)接收中斷函數(shù)的統(tǒng)一,僅僅是目標(biāo)隊(duì)列不一樣。B:數(shù)據(jù)發(fā)送發(fā)送線程一直監(jiān)測該物理端點(diǎn)對應(yīng)的邏輯端口發(fā)送隊(duì)列,一旦有數(shù)據(jù)到來,就把數(shù)據(jù)發(fā)送到該物理端點(diǎn)。沒有數(shù)據(jù)時(shí),線程被隊(duì)列阻塞掉,不影響CPU資源。如圖7所示,對復(fù)用端點(diǎn)數(shù)據(jù)流作詳細(xì)描述如下Al:數(shù)據(jù)接收當(dāng)USB數(shù)據(jù)到來時(shí),接收端點(diǎn)產(chǎn)生接收中斷。中斷中把數(shù)據(jù)發(fā)往RXQueue(端點(diǎn)接收隊(duì)列),此隊(duì)列是復(fù)用端點(diǎn)和接收線程之間的橋梁。接收線程不斷檢測RXQueue,一旦有數(shù)據(jù)則進(jìn)行數(shù)據(jù)的分楨,解碼后發(fā)送到該楨標(biāo)示的邏輯端口接收隊(duì)列。具體編碼/解碼協(xié)議可參考文檔《3GPPTS27.010》。如果沒有數(shù)據(jù)到來,則線程被隊(duì)列阻塞掉,不影響CPU資源。上層應(yīng)用則隨時(shí)查詢其對應(yīng)的邏輯端口,讀取數(shù)據(jù),保證了該模塊對上層接口的統(tǒng)一性。Bl:數(shù)據(jù)發(fā)送當(dāng)上層各個(gè)應(yīng)用把要發(fā)送的數(shù)據(jù)寫入邏輯端口后,首先進(jìn)入各個(gè)邏輯端口的發(fā)送隊(duì)列中。應(yīng)用無需等待數(shù)據(jù)真正發(fā)送即可返回,這樣,邏輯端口的發(fā)送隊(duì)列實(shí)際上擔(dān)負(fù)了上層應(yīng)用和USB之間的一個(gè)緩沖區(qū),中間媒介,不會(huì)使兩者之間產(chǎn)生相互等待或過多干擾。發(fā)送線程時(shí)刻監(jiān)測著其對應(yīng)幾個(gè)邏輯端口的發(fā)送隊(duì)列,一旦發(fā)現(xiàn)有數(shù)據(jù)到來,就進(jìn)行讀取、編碼、組楨并發(fā)送到它的物理端點(diǎn)。具體編碼/解碼協(xié)議可參考文檔《3GPPTS27.010》。同一個(gè)物理端點(diǎn)對應(yīng)的邏輯端口也可以劃分優(yōu)先級,優(yōu)先級較高的邏輯端口可以優(yōu)先發(fā)送。這一優(yōu)先級策略完全體現(xiàn)在發(fā)送線程中,可以把不同優(yōu)先級策略、不同傳輸方式(如中斷方式、DMA方式,它們對硬件的操作不同)的發(fā)送線程作為不同配置方案的元素,這樣,可以根據(jù)不同應(yīng)用的數(shù)據(jù)傳輸特點(diǎn)把它們安排在不同的物理端點(diǎn)上。真正實(shí)現(xiàn)靈活分配,按需分配。本實(shí)施例中可以用一信號量標(biāo)示該物理端點(diǎn)對應(yīng)各個(gè)邏輯端點(diǎn)發(fā)送隊(duì)列的數(shù)據(jù)情況,一旦來數(shù)據(jù)則釋放該信號量,發(fā)送線程則監(jiān)測該信號量是否有數(shù)據(jù)到來。沒有數(shù)據(jù)時(shí),則阻塞發(fā)送線程,以節(jié)約寶貴的CPU資源。發(fā)送中斷處理函數(shù)完全可以與單應(yīng)用物理端點(diǎn)的發(fā)送中斷處理函數(shù)一致,因?yàn)閷τ赨SB來數(shù)它不區(qū)分?jǐn)?shù)據(jù)的格式,僅僅作為一段數(shù)據(jù)流而已。因此,接受/發(fā)送中斷處理函數(shù)在不同的配置中可以重復(fù)使用。采用本發(fā)明所述方法、裝置和系統(tǒng),與現(xiàn)有技術(shù)相比,可以實(shí)現(xiàn)普通端點(diǎn)和復(fù)用端點(diǎn)的多個(gè)實(shí)例并存,不同傳輸方式的端點(diǎn)并存,動(dòng)態(tài)配置而不影響上層應(yīng)用的特點(diǎn),提高了數(shù)據(jù)傳輸?shù)撵`活性。當(dāng)然,本發(fā)明還可有多種實(shí)施方式,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的更改或變化,但凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進(jìn),均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。權(quán)利要求一種可動(dòng)態(tài)配置的USB端口復(fù)用方法,包括USB物理端點(diǎn)管理模塊把USB物理端點(diǎn)初始化為不同傳輸方式、不同傳輸速率的端點(diǎn);USB端點(diǎn)復(fù)用模塊根據(jù)物理端點(diǎn)配置啟用不同的發(fā)送/接收線程;上層邏輯端口模塊提供上層應(yīng)用操作USB底層的接口,對數(shù)據(jù)進(jìn)行處理。2.如權(quán)利要求l所述的方法,其特征在于所述上層邏輯端口包括寫接口和讀接口,所述寫接口把下行數(shù)據(jù)發(fā)往邏輯端口發(fā)送隊(duì)列,等待發(fā)送線程的處理;所述讀接口則直接從對應(yīng)邏輯端口接收隊(duì)列中讀取數(shù)據(jù)提供給上層應(yīng)用。3.如權(quán)利要求1所述的方法,其特征在于所述USB物理端點(diǎn)管理模塊指定接收/發(fā)送中斷處理函數(shù),接收端點(diǎn)在接收中斷處理函數(shù)中把數(shù)據(jù)發(fā)往指定的隊(duì)列中,發(fā)送端點(diǎn)發(fā)送完指定數(shù)據(jù)后就觸發(fā)發(fā)送中斷處理函數(shù)。4.如權(quán)利要求l所述的方法,其特征在于如果所述端點(diǎn)是單應(yīng)用端點(diǎn),上行數(shù)據(jù)直接發(fā)往對應(yīng)邏輯端口隊(duì)列,下行數(shù)據(jù)直接通過對應(yīng)物理端點(diǎn)進(jìn)行發(fā)送。5.如權(quán)利要求1所述的方法,其特征在于如果所述端點(diǎn)是復(fù)用端點(diǎn),上行數(shù)據(jù)在接收中斷處理函數(shù)中發(fā)往對應(yīng)的物理端點(diǎn)接收隊(duì)列中,在接收線程中讀取該隊(duì)列數(shù)據(jù),進(jìn)行解析楨數(shù)據(jù),發(fā)往該楨所標(biāo)志的邏輯端口接收隊(duì)列;下行數(shù)據(jù)保存在邏輯端口發(fā)送隊(duì)列中,發(fā)送函數(shù)可以根據(jù)邏輯端口的優(yōu)先級讀取對應(yīng)邏輯端口的下行數(shù)據(jù)隊(duì)列,進(jìn)行編碼、組楨發(fā)往對應(yīng)的物理端點(diǎn)。6.如權(quán)利要求1所述的方法,其特征在于所述上層邏輯端口模塊封裝了各個(gè)邏輯端口底層是否復(fù)用的差異性,每個(gè)邏輯端口對上層應(yīng)用是一樣的接口。7.—種可動(dòng)態(tài)配置的USB端口復(fù)用系統(tǒng),包括包括計(jì)算機(jī)主機(jī)、移動(dòng)終端和連接計(jì)算機(jī)主機(jī)與移動(dòng)終端的USB端口;所述計(jì)算機(jī)主機(jī)包括PC側(cè)軟件;所述移動(dòng)終端包括相互通信的端點(diǎn)復(fù)用層和上層應(yīng)用層;所述移動(dòng)終端與PC側(cè)軟件進(jìn)行通訊,所述端點(diǎn)復(fù)用層負(fù)責(zé)管理USB設(shè)備,并對上層應(yīng)用提供足夠多的通訊接口。8.如權(quán)利要求7所述的系統(tǒng),其特征在于所述端點(diǎn)復(fù)用層把USB物理端點(diǎn)初始化為不同傳輸方式、不同傳輸速率的端點(diǎn);并根據(jù)物理端點(diǎn)配置啟用不同的發(fā)送/接收線程;提供上層應(yīng)用操作USB的底層接口,對數(shù)據(jù)進(jìn)行處理。9.一種可動(dòng)態(tài)配置的USB端口復(fù)用裝置,包括USB物理端點(diǎn)管理模塊、USB端點(diǎn)復(fù)用模塊和上層邏輯端口模塊;其中USB物理端點(diǎn)管理模塊把USB物理端點(diǎn)初始化為不同傳輸方式、不同傳輸速率的端點(diǎn);USB端點(diǎn)復(fù)用模塊根據(jù)物理端點(diǎn)配置啟用不同的發(fā)送/接收線程;上層邏輯端口模塊提供上層應(yīng)用操作USB的底層接口,對數(shù)據(jù)進(jìn)行處理。10.如權(quán)利要求9所述的裝置,其特征在于所述上層邏輯端口包括寫接口和讀接口,所述寫接口把下行數(shù)據(jù)發(fā)往邏輯端口發(fā)送隊(duì)列,等待發(fā)送線程的處理;所述讀接口則直接從對應(yīng)邏輯端口接收隊(duì)列中讀取數(shù)據(jù)提供給上層應(yīng)用。11.如權(quán)利要求9所述的裝置,其特征在于所述邏輯端口是雙向通道,所述物理端點(diǎn)是單向通道,一個(gè)邏輯端口映射兩個(gè)物理端口,用一個(gè)數(shù)組記錄所述映射信息,數(shù)組長度為邏輯端口的個(gè)數(shù),當(dāng)應(yīng)用增加,定義更大長度的數(shù)組并使之映射到某個(gè)合適的物理端點(diǎn),即可增加邏輯端口的數(shù)量供新的應(yīng)用使用。12.如權(quán)利要求9所述的裝置,其特征在于當(dāng)要配置某個(gè)物理端點(diǎn)時(shí),先查詢端點(diǎn)配置表,統(tǒng)計(jì)有多少邏輯端口映射到該端點(diǎn),如果沒有邏輯端口映射到該端點(diǎn),則不必初始化該端點(diǎn);如果只有一個(gè)邏輯端口映射到該端點(diǎn),則屬于一個(gè)邏輯端口獨(dú)享一個(gè)物理端點(diǎn)的傳統(tǒng)方式;此時(shí)給該物理端點(diǎn)初始化時(shí),所指定的接收中斷處理函數(shù)中直接把接收到的數(shù)據(jù)發(fā)送到對應(yīng)邏輯端口接收隊(duì)列中,所創(chuàng)建的發(fā)送線程也只負(fù)責(zé)將指定邏輯端口發(fā)送隊(duì)列中的數(shù)據(jù)發(fā)送到對應(yīng)物理端點(diǎn)中;如果有多于一個(gè)的邏輯端口映射到該端點(diǎn),則需要將該端點(diǎn)初始化為端口復(fù)用模式,即所指定的接收中斷處理函數(shù)接收到的數(shù)據(jù)需經(jīng)過接收線程分楨,解碼后分發(fā)到對應(yīng)的邏輯端口接收隊(duì)列中;而發(fā)送線程則需查詢對應(yīng)幾個(gè)邏輯端口的發(fā)送隊(duì)列,一旦檢測到數(shù)據(jù)就開始編碼,組楨發(fā)送到該物理端點(diǎn)。全文摘要本發(fā)明涉及一種可動(dòng)態(tài)配置USB端口復(fù)用的方法、系統(tǒng)和裝置,采用本發(fā)明可以實(shí)現(xiàn)普通端點(diǎn)和復(fù)用端點(diǎn)的多個(gè)實(shí)例并存,不同傳輸方式的端點(diǎn)并存,動(dòng)態(tài)配置而不影響上層應(yīng)用的特點(diǎn),提高了數(shù)據(jù)傳輸?shù)撵`活性??朔F(xiàn)有技術(shù)中存在的USB端點(diǎn)復(fù)用死板缺少靈活性、不區(qū)分各種傳輸數(shù)據(jù)的特點(diǎn)而統(tǒng)一處理、不能運(yùn)行中動(dòng)態(tài)配置的技術(shù)缺陷。文檔編號G06F13/42GK101710313SQ20091018950公開日2010年5月19日申請日期2009年11月23日優(yōu)先權(quán)日2009年11月23日發(fā)明者劉永超申請人:中興通訊股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
      1