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

Usb接口控制模塊和usb設(shè)備的數(shù)據(jù)傳輸控制方法

文檔序號(hào):6382193閱讀:251來(lái)源:國(guó)知局
專利名稱:Usb接口控制模塊和usb設(shè)備的數(shù)據(jù)傳輸控制方法
技術(shù)領(lǐng)域
本發(fā)明涉及通信領(lǐng)域,具體而言,涉及一種USB接口控制模塊和USB設(shè)備的數(shù)據(jù)傳輸控制方法。
背景技術(shù)
USB (Universal Serial Bus,通用串行總線)是一種應(yīng)用在PC領(lǐng)域的新型接口技術(shù)。USB接口技術(shù)經(jīng)過(guò)多年發(fā)展已經(jīng)經(jīng)歷了 USB1. 1,USB2. 0,USB3. O三個(gè)階段,現(xiàn)在最新的USB通信協(xié)議是USB3. O。USB接口具有易于使用、傳輸速率高、成本低、可靠性強(qiáng)、功耗低等優(yōu)點(diǎn),而且支持熱插拔、基于上述特點(diǎn)使得USB接口被廣泛使用,現(xiàn)已成為PC機(jī)上使用最廣泛的接口。USB設(shè)備一般包含USB接口的USB系統(tǒng)芯片,在該芯片的設(shè)計(jì)中,會(huì)將USB通信模塊集成到系統(tǒng)芯片中,因而,需要一個(gè)USB接口控制模塊來(lái)保證整個(gè)芯片能夠?qū)崿F(xiàn)USB通信功能。USB設(shè)備與USB主機(jī)(一般為PC機(jī))進(jìn)行通信時(shí),必須有端口緩存空間用于存儲(chǔ)接收到的數(shù)據(jù)和待發(fā)送的數(shù)據(jù),在現(xiàn)有的USB設(shè)備設(shè)計(jì)中,USB端口緩存空間都是容量固定且地址固定的緩存空間,一般以寄存器或者FIFO的形式作為緩存。如圖1所示,現(xiàn)有技術(shù)的USB接口控制模塊包括寄存器、傳輸控制模塊、控制器和端口緩存,系統(tǒng)芯片通過(guò)配置寄存器來(lái)控制USB接口控制模塊中的控制器,進(jìn)而實(shí)現(xiàn)USB通信,通信時(shí)接收和發(fā)送的數(shù)據(jù)都先存在端口緩存中。由于系統(tǒng)芯片執(zhí)行程序時(shí)的數(shù)據(jù)都是存放在芯片數(shù)據(jù)存儲(chǔ)器中,故系統(tǒng)芯片還要做USB端口緩存和數(shù)據(jù)存儲(chǔ)器之間的數(shù)據(jù)搬移的工作。因而,在進(jìn)行USB傳輸時(shí),當(dāng)傳輸數(shù)據(jù)量較大時(shí),系統(tǒng)芯片需要多次將數(shù)據(jù)從芯片數(shù)據(jù)存儲(chǔ)器轉(zhuǎn)移到USB端口緩存(或是從端口緩存到芯片數(shù)據(jù)存儲(chǔ)器),所以傳輸速度較慢。針對(duì)相關(guān)技術(shù)中當(dāng)傳輸數(shù)據(jù)量較大時(shí),USB設(shè)備傳輸速度較慢的問(wèn)題,目前尚未提出有效的解決方案。

發(fā)明內(nèi)容
本發(fā)明的主要目的在于提供一種USB接口控制模塊和USB設(shè)備的數(shù)據(jù)傳輸控制方法,以解決當(dāng)傳輸數(shù)據(jù)量較大時(shí),USB設(shè)備傳輸速度較慢的問(wèn)題。為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的一個(gè)方面,提供了 一種USB接口控制模塊。根據(jù)本發(fā)明的USB接口控制模塊用于連接主機(jī)與USB系統(tǒng)芯片,USB設(shè)備的端口緩存空間為SRAM,其中,SRAM是USB系統(tǒng)芯片的數(shù)據(jù)存儲(chǔ)器的一部分,USB接口控制模塊包括主控單元和數(shù)據(jù)傳輸單元,其中,數(shù)據(jù)傳輸單元用于讀取SRAM的數(shù)據(jù)至主控單元,主控單元用于將數(shù)據(jù)傳輸單元讀取到的數(shù)據(jù)打包并發(fā)送給主機(jī),以及接收并解析主機(jī)下發(fā)的數(shù)據(jù)包,數(shù)據(jù)傳輸單元還用于將主控單元解析后的數(shù)據(jù)寫入至SRAM。進(jìn)一步地,該USB接口控制模塊還包括地址寄存器,用于存儲(chǔ)SRAM的初始地址;以及地址控制單元,用于讀取地址寄存器中存儲(chǔ)的地址,并在數(shù)據(jù)傳輸單元每讀取或?qū)懭隝Byte數(shù)據(jù)時(shí),將讀取到的地址加I后提供給數(shù)據(jù)傳輸單元,其中,數(shù)據(jù)傳輸單元還用于根據(jù)地址控制單元提供的地址讀取或?qū)懭霐?shù)據(jù)。進(jìn)一步地,主控單元還用于在與主機(jī)完成一次數(shù)據(jù)傳輸后,向地址控制單元提供傳輸結(jié)果信息,其中,傳輸結(jié)果信息包括傳輸成功信息和傳輸失敗信息;地址控制單元還用于在獲取到傳輸失敗信息時(shí),重新讀取地址寄存器中存儲(chǔ)的地址。進(jìn)一步地,主控單元還用于在完成數(shù)據(jù)傳輸之后,向地址控制單元提供傳輸結(jié)果信息之前,接收主機(jī)下發(fā)的傳輸結(jié)果數(shù)據(jù)包,并解析傳輸結(jié)果數(shù)據(jù)包得到傳輸結(jié)果信息。為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的另一方面,提供了一種USB設(shè)備的數(shù)據(jù)傳輸控制方法。根據(jù)本發(fā)明的USB設(shè)備的數(shù)據(jù)傳輸控制方法包括讀取SRAM的數(shù)據(jù);以及將讀取到的數(shù)據(jù)打包并發(fā)送給主機(jī),其中,USB設(shè)備的端口緩存空間為SRAM,SRAM是USB設(shè)備的系統(tǒng)芯片數(shù)據(jù)存儲(chǔ)器的一部分。進(jìn)一步地,在讀取SRAM的數(shù)據(jù)之前,該方法還包括獲取SRAM的初始地址,其中,讀取SRAM的數(shù)據(jù)包括讀取SRAM中第一地址的數(shù)據(jù)得到IByte數(shù)據(jù);將第一地址加I后得到第二地址;以及讀取SRAM中第二地址的數(shù)據(jù)得到IByte數(shù)據(jù),其中,首次讀取SRAM數(shù)據(jù)時(shí)的地址為初始地址。進(jìn)一步地,在讀取到的數(shù)據(jù)打包并發(fā)送給主機(jī),完成一次向主機(jī)的數(shù)據(jù)發(fā)送后,該方法還包括獲取傳輸結(jié)果信息,其中,傳輸結(jié)果信息包括傳輸成功信息和傳輸失敗信息;以及在獲取到傳輸失敗信息時(shí),重新獲取SRAM的初始地址。為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的又一方面,提供了另一種USB設(shè)備的數(shù)據(jù)傳輸控制方法。根據(jù)本發(fā)明的USB設(shè)備的數(shù)據(jù)傳輸控制方法包括接收并解析主機(jī)下發(fā)的數(shù)據(jù)包;以及將解析后的數(shù)據(jù)寫入至SRAM,其中,USB設(shè)備的端口緩存空間為SRAM,其中,SRAM是USB設(shè)備的系統(tǒng)芯片數(shù)據(jù)存儲(chǔ)器的一部分。進(jìn)一步地,在將解析后的數(shù)據(jù)寫入至SRAM之前,該方法還包括獲取SRAM的初始地址,其中,將解析后的數(shù)據(jù)寫入至SRAM包括將解析后的IByte數(shù)據(jù)寫入至SRAM中第一地址;將第一地址加I后得到第二地址;以及將解析后的下IByte數(shù)據(jù)寫入至SRAM中第二地址,其中,解析后的首Byte數(shù)據(jù)寫入至初始地址。進(jìn)一步地,在將解析后的數(shù)據(jù)全部寫入至SRAM,完成一次主機(jī)的數(shù)據(jù)接收后,該方法還包括獲取傳輸結(jié)果信息,其中,傳輸結(jié)果信息包括傳輸成功信息和傳輸失敗信息;以及在獲取到傳輸失敗信息時(shí),重新獲取SRAM的初始地址。通過(guò)本發(fā)明,采用包括以下部分的USB接口控制模塊數(shù)據(jù)傳輸單元用于讀取SRAM的數(shù)據(jù)至主控單元,主控單元用于將數(shù)據(jù)傳輸單元讀取到的數(shù)據(jù)打包并發(fā)送給主機(jī),以及接收并解析主機(jī)下發(fā)的數(shù)據(jù)包,數(shù)據(jù)傳輸單元還用于將主控單元解析后的數(shù)據(jù)寫入至SRAM,其中,SRAM為USB設(shè)備的端口緩存空間,同時(shí),SRAM是USB系統(tǒng)芯片的數(shù)據(jù)存儲(chǔ)器的一部分,通過(guò)將USB系統(tǒng)芯片數(shù)據(jù)存儲(chǔ)器的一部分作為USB設(shè)備的端口緩存空間,從而節(jié)省了數(shù)據(jù)傳輸過(guò)程中系統(tǒng)芯片數(shù)據(jù)存儲(chǔ)器到USB端口緩存的數(shù)據(jù)搬移過(guò)程,解決了傳輸數(shù)據(jù)量較大時(shí),USB設(shè)備傳輸速度較慢的問(wèn)題,進(jìn)而達(dá)到了提高USB設(shè)備傳輸速度的效果。


構(gòu)成本申請(qǐng)的一部分的附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,本發(fā)明的示意性實(shí)施例及其說(shuō)明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中圖1是根據(jù)相關(guān)技術(shù)的USB接口控制模塊的原理框圖;圖2是根據(jù)本發(fā)明第一實(shí)施例的USB接口控制模塊的原理框圖;圖3是根據(jù)本發(fā)明第二實(shí)施例的USB接口控制模塊的原理框圖;圖4是根據(jù)本發(fā)明第三實(shí)施例的USB接口控制模塊的原理框圖;圖5是根據(jù)本發(fā)明第一實(shí)施例的USB設(shè)備的數(shù)據(jù)傳輸控制方法的流程圖;以及圖6是根據(jù)本發(fā)明第二實(shí)施例的USB設(shè)備的數(shù)據(jù)傳輸控制方法的流程圖。
具體實(shí)施例方式需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。下面將參考附圖并結(jié)合實(shí)施例來(lái)詳細(xì)說(shuō)明本發(fā)明。首先介紹本具體實(shí)施方式
提供的USB接口控制模塊的實(shí)施例。圖2是根據(jù)本發(fā)明第一實(shí)施例的USB接口控制模塊的原理框圖,如圖2,該USB接口控制模塊用于連接主機(jī)與USB系統(tǒng)芯片,其中,USB設(shè)備的端口緩存空間為靜態(tài)隨機(jī)存儲(chǔ)器(Static Random Access Memory, SRAM),該SRAM是USB系統(tǒng)芯片的數(shù)據(jù)存儲(chǔ)器的一部分,USB接口控制模塊包括主控單元和數(shù)據(jù)傳輸單元。在USB設(shè)備與主機(jī)的數(shù)據(jù)傳輸中,主控單元首先接收并解析主機(jī)下發(fā)的數(shù)據(jù)包,得到數(shù)據(jù)傳輸方向信息。當(dāng)傳輸方向?yàn)閁SB設(shè)備至主機(jī)時(shí),數(shù)據(jù)傳輸單元讀取SRAM的數(shù)據(jù)至主控單元,也即讀取USB設(shè)備的端口緩存空間的數(shù)據(jù)至主控單元,主控單元將讀取到的數(shù)據(jù)打包并發(fā)送給主機(jī),完成USB設(shè)備至主機(jī)的數(shù)據(jù)傳輸。在此過(guò)程中,讀取端口緩存空間時(shí)無(wú)需先將數(shù)據(jù)由系統(tǒng)芯片數(shù)據(jù)存儲(chǔ)器至緩存,而是直接可讀取到緩存內(nèi)容,節(jié)省了 USB端口緩存和數(shù)據(jù)存儲(chǔ)器之間的數(shù)據(jù)搬移,提高了 USB設(shè)備至主機(jī)的數(shù)據(jù)傳輸速度。當(dāng)傳輸方向?yàn)橹鳈C(jī)至USB設(shè)備時(shí),主控單元將主機(jī)下發(fā)的數(shù)據(jù)接收并解析,數(shù)據(jù)傳輸單元將解析后的數(shù)據(jù)寫入至USB設(shè)備的端口緩存空間,也即直接寫入至SRAM完成主機(jī)至USB設(shè)備的數(shù)據(jù)傳輸。在此過(guò)程中,將接收到的數(shù)據(jù)直接寫入至系統(tǒng)芯片的數(shù)據(jù)存儲(chǔ)器,系統(tǒng)芯片的CPU在訪問(wèn)數(shù)據(jù)時(shí)無(wú)需先將數(shù)據(jù)由緩存移至數(shù)據(jù)存儲(chǔ)器,節(jié)省了 USB端口緩存和數(shù)據(jù)存儲(chǔ)器之間的數(shù)據(jù)搬移,提高了主機(jī)至USB設(shè)備的數(shù)據(jù)傳輸速度。在該實(shí)施例中,將系統(tǒng)芯片數(shù)據(jù)存儲(chǔ)器的一部分配置為USB端口緩存空間,在進(jìn)行數(shù)據(jù)的讀寫時(shí)直接對(duì)數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫,從而避免了系統(tǒng)芯片在端口緩存和數(shù)據(jù)存儲(chǔ)器之間搬移數(shù)據(jù)的過(guò)程,提高了 USB設(shè)備的數(shù)據(jù)傳輸速度。進(jìn)一步地,當(dāng)用戶設(shè)計(jì)不同的USB設(shè)備固件時(shí),可以通過(guò)配置寄存器的值來(lái)靈活設(shè)置各個(gè)端口緩存的實(shí)際空間大小和地址,從而使得USB端口緩存得到了更加高效、更加靈活的應(yīng)用。圖3是根據(jù)本發(fā)明第二實(shí)施例的USB接口控制模塊的原理框圖,如圖3所示,該USB接口控制模塊用于連接主機(jī)與USB系統(tǒng)芯片,其中,USB設(shè)備的端口緩存空間為SRAM,該SRAM是USB系統(tǒng)芯片的數(shù)據(jù)存儲(chǔ)器的一部分,USB接口控制模塊包括主控單元、數(shù)據(jù)傳輸單元、地址寄存器和地址控制單元。
在USB設(shè)備與主機(jī)的數(shù)據(jù)傳輸中,主控單元首先接收并解析主機(jī)下發(fā)的數(shù)據(jù)包,得到數(shù)據(jù)傳輸方向信息。當(dāng)傳輸方向?yàn)閁SB設(shè)備至主機(jī)時(shí),數(shù)據(jù)傳輸單元讀取SRAM的數(shù)據(jù)至主控單元,主控單元將讀取到的數(shù)據(jù)打包并發(fā)送給主機(jī),完成USB設(shè)備至主機(jī)的數(shù)據(jù)傳輸。其中,數(shù)據(jù)傳輸單元在讀取SRAM中的數(shù)據(jù)時(shí),讀取地址由地址控制單元提供。地址控制單元在數(shù)據(jù)傳輸單元讀取開始時(shí),首先讀取地址寄存器中存儲(chǔ)的SRAM的初始地址N,并將初始地址N提供給數(shù)據(jù)傳輸單元,數(shù)據(jù)傳輸單元讀取SRAM中初始地址N對(duì)應(yīng)位置的IByte數(shù)據(jù),在數(shù)據(jù)傳輸單元讀取IByte數(shù)據(jù)后,地址控制單元將讀取到的初始地址N加I后提供給數(shù)據(jù)傳輸單元,數(shù)據(jù)傳輸單元讀取SRAM中地址N+1對(duì)應(yīng)位置的IByte數(shù)據(jù),在數(shù)據(jù)傳輸單元讀取2Byte數(shù)據(jù)后,地址控制單元將讀取到的初始地址N加2后提供給數(shù)據(jù)傳輸單元,數(shù)據(jù)傳輸單元讀取SRAM中地址N+2對(duì)應(yīng)位置的IByte數(shù)據(jù),以此類推,直至將要傳輸至主機(jī)的數(shù)據(jù)讀取完畢。當(dāng)傳輸方向?yàn)橹鳈C(jī)至USB設(shè)備時(shí),主控單元將主機(jī)下發(fā)的數(shù)據(jù)接收并解析,數(shù)據(jù)傳輸單元將解析后的數(shù)據(jù)寫入至USB設(shè)備的端口緩存空間。其中,數(shù)據(jù)傳輸單元在將數(shù)據(jù)寫入SRAM中時(shí),寫入地址由地址控制單元提供。地址控制單元在數(shù)據(jù)傳輸單元寫入開始時(shí),首先讀取地址寄存器中存儲(chǔ)的SRAM的初始地址N,并將初始地址N提供給數(shù)據(jù)傳輸單元,數(shù)據(jù)傳輸單元將IByte數(shù)據(jù)寫入SRAM中初始地址N對(duì)應(yīng)位置,在數(shù)據(jù)傳輸單元寫入IByte數(shù)據(jù)后,地址控制單元將讀取到的初始地址N加I后提供給數(shù)據(jù)傳輸單元,數(shù)據(jù)傳輸單元將IByte數(shù)據(jù)寫入SRAM中地址N+1對(duì)應(yīng)位置,在數(shù)據(jù)傳輸單元寫入2Byte數(shù)據(jù)后,地址控制單元將讀取到的初始地址N加2后提供給數(shù)據(jù)傳輸單元,數(shù)據(jù)傳輸單元將IByte數(shù)據(jù)寫入SRAM中地址N+2對(duì)應(yīng)位置,以此類推,直至將要接收到的數(shù)據(jù)寫入完畢。在USB設(shè)備將數(shù)據(jù)上傳至主機(jī)、完成一次數(shù)據(jù)傳輸之后,主機(jī)下發(fā)傳輸結(jié)果數(shù)據(jù)包,主控單元解析傳輸結(jié)果數(shù)據(jù)包得到傳輸結(jié)果信息,其中,傳輸結(jié)果信息包括傳輸成功信息和傳輸失敗信息,在解析之后,主控單元將傳輸結(jié)果信息提供給地址控制單元,如果獲取到傳輸失敗信息,地址控制單元重新讀取地址寄存器中存儲(chǔ)的地址,并將重新的地址提供給數(shù)據(jù)傳輸單元,以使數(shù)據(jù)傳輸單元重新作該次數(shù)據(jù)的傳輸。在該實(shí)施例中,通過(guò)設(shè)置地址寄存器存儲(chǔ)SRAM的初始地址,從而用戶在設(shè)置各個(gè)端口緩存的實(shí)際空間大小和地址時(shí),只需配置地址寄存器即可;通過(guò)地址控制單元向數(shù)據(jù)傳輸單元提供數(shù)據(jù)傳輸?shù)牡刂?,隨傳輸數(shù)據(jù)量變化自動(dòng)改變地址,從而能夠正確、快速地保證對(duì)SRAM的數(shù)據(jù)讀寫;在一次數(shù)據(jù)傳輸之后,根據(jù)主機(jī)下發(fā)的信息進(jìn)行傳輸結(jié)果的檢測(cè),在傳輸失敗時(shí)重新進(jìn)行傳輸,提高了 USB數(shù)據(jù)傳輸?shù)耐暾院蜏?zhǔn)確性。圖4是根據(jù)本發(fā)明第三實(shí)施例的USB接口控制模塊的原理框圖,如圖4所示,該USB接口控制模塊設(shè)有數(shù)據(jù)傳輸控制模塊(也即數(shù)據(jù)傳輸單元),將系統(tǒng)芯片數(shù)據(jù)存儲(chǔ)器的一部分配置為USB端口緩存空間,采用SRAM作為USB端口緩存空間,SRAM是芯片數(shù)據(jù)存儲(chǔ)器的一部分,通過(guò)配置該USB接口控制模塊的寄存器能夠靈活設(shè)置分配給USB端口緩存空間的初始地址和容量。USB接口控制模塊包括USB設(shè)備控制器(UDC,也即主控單元)、數(shù)據(jù)傳輸控制模塊(也即數(shù)據(jù)傳輸單元)、緩存地址控制器(也即地址控制單元)、數(shù)據(jù)載入控制模塊、時(shí)鐘同步控制模塊、SFRffB總線接口。其中,UDC是USB接口控制模塊中的主要模塊,在USB傳輸中,UDC模塊負(fù)責(zé)按照USB協(xié)議分析接收到的USB數(shù)據(jù)包以及對(duì)發(fā)送的數(shù)據(jù)進(jìn)行打包。UDC分析后的信息包括一些協(xié)議信息,例如數(shù)據(jù)傳輸方向,數(shù)據(jù)傳輸是否成功等,還包括要傳輸?shù)臄?shù)據(jù)正文,也即協(xié)議中數(shù)據(jù)包中的數(shù)據(jù),這些信息UDC都會(huì)以硬件信號(hào)形式傳遞給USB接口控制模塊中的其他相關(guān)模塊。數(shù)據(jù)傳輸控制模塊負(fù)責(zé)UDC和SRAM之間的數(shù)據(jù)傳輸,即將UDC收到的數(shù)據(jù)寫到SRAM中或?qū)RAM中的數(shù)據(jù)讀出來(lái)傳遞給UDC。UDC會(huì)提供數(shù)據(jù)方向的信號(hào),若方向?yàn)镮N,則數(shù)據(jù)傳輸控制模塊讀SRAM,若為0UT,則進(jìn)行寫SRAM操作,讀寫SRAM時(shí)的地址由緩存地址控制器提供。SRAM為每個(gè)byte的數(shù)據(jù)提供一個(gè)地址,當(dāng)USB接口控制模塊的數(shù)據(jù)傳輸控制模塊對(duì)SRAM進(jìn)行操作時(shí),按照byte進(jìn)行數(shù)據(jù)傳輸,故每傳輸IByte應(yīng)將欲操作的SRAM的地址加I,緩存地址控制器進(jìn)行地址運(yùn)算,并將計(jì)算出的地址提供給數(shù)據(jù)傳輸控制模塊。緩存地址控制寄存器從USB接口控制模塊的初始地址寄存器中讀取SRAM地址初值,然后每傳輸一個(gè)Byte將地址加1,再提供給數(shù)據(jù)傳輸控制器。當(dāng)一次傳輸結(jié)束時(shí),UDC模塊會(huì)提供一個(gè)傳輸是否成功的信號(hào),若該信號(hào)提示該傳輸失敗時(shí),意味著數(shù)據(jù)傳輸有錯(cuò)誤,需要重新傳輸一次,這時(shí)緩存地址控制器會(huì)將提供給數(shù)據(jù)傳輸控制器的地址恢復(fù)到初始值。由于在進(jìn)行USB傳輸之前,UDC模塊需要預(yù)先進(jìn)行一些初始化配置,則通過(guò)數(shù)據(jù)載入控制模塊在USB接口控制模塊復(fù)位時(shí)初始化UDC中的配置信息。同步控制模塊負(fù)責(zé)整個(gè)USB接口控制模塊工作過(guò)程中所需要的時(shí)鐘信號(hào),使得跨時(shí)鐘信號(hào)同步。片內(nèi)SFRWB總線用于系統(tǒng)芯片對(duì)USB接口控制模塊中寄存器的讀寫操作。采用該實(shí)施例的USB接口控制模塊完成USB設(shè)備與主機(jī)的數(shù)據(jù)傳輸時(shí),系統(tǒng)芯片這一端數(shù)據(jù)的具體流向是這樣的IN傳輸時(shí),數(shù)據(jù)從芯片SRAM傳遞到UDC模塊,UDC模塊在將數(shù)據(jù)打包,發(fā)送給主機(jī)。OUT傳輸時(shí),數(shù)據(jù)由主機(jī)到達(dá)UDC模塊,UDC模塊分析之后,將需要存儲(chǔ)的數(shù)據(jù)傳遞給SRAM,具體傳輸過(guò)程如下1、進(jìn)行OUT傳輸時(shí),數(shù)據(jù)傳輸控制模塊將由UDC處得到的數(shù)據(jù)寫入到SRAM中,SRAM地址由緩存地址控制器提供,緩存地址控制器以初始地址寄存器中的初始地址為基本值,每傳輸一個(gè)Byte,地址值加一。2、進(jìn)行IN傳輸時(shí),數(shù)據(jù)傳輸控制模塊讀取SRAM的數(shù)據(jù),并將其傳遞給UDC模塊,SRAM地址由SRAM地址控制器提供,SRAM地址控制器以初始地址寄存器中的初始地址為基本值,每傳輸一個(gè)Byte,地址值加一。采用該實(shí)施例提供的USB接口控制模塊,由于USB端口緩存空間可配置,為系統(tǒng)芯片實(shí)際應(yīng)用提供了極大方便,同時(shí)由于USB的緩存空間可以直接配置到芯片的內(nèi)存控件中,故芯片固件運(yùn)行時(shí)減少了將數(shù)據(jù)從USB緩存空間搬移的內(nèi)存空間的過(guò)程,使得USB傳輸速度得到提高。其次介紹本具體實(shí)施方式
提供的USB設(shè)備的數(shù)據(jù)傳輸控制方法的實(shí)施例。圖5是根據(jù)本發(fā)明第一實(shí)施例的USB設(shè)備的數(shù)據(jù)傳輸控制方法的流程圖,該實(shí)施例中的USB設(shè)備的端口緩存空間為SRAM,其中,SRAM是USB設(shè)備的系統(tǒng)芯片數(shù)據(jù)存儲(chǔ)器的一部分,如圖5所示,該方法包括如下的步驟S102至步驟S116。
步驟S102 :接收主機(jī)下發(fā)的數(shù)據(jù)包,獲取數(shù)據(jù)傳輸方向信息,當(dāng)數(shù)據(jù)傳輸方向?yàn)閁SB設(shè)備至主機(jī)時(shí),執(zhí)行步驟S104。步驟S104 :獲取SRAM的初始地址。步驟S106 :讀取SRAM中初始地址對(duì)應(yīng)位置的數(shù)據(jù)得到IByte數(shù)據(jù)。步驟S108 :每讀取IByte數(shù)據(jù)后,將初始地址加I后計(jì)算新地址。步驟SllO :讀取SRAM中新地址對(duì)應(yīng)位置的數(shù)據(jù)得到IByte數(shù)據(jù)。步驟S112 :判斷數(shù)據(jù)是否讀取完畢,其中,當(dāng)數(shù)據(jù)未讀取完畢時(shí),返回步驟S108,否則執(zhí)行步驟S114。步驟S114 :將讀取到的數(shù)據(jù)打包后發(fā)送給主機(jī)。步驟S116 :接收主機(jī)下發(fā)的數(shù)據(jù)傳輸?shù)膫鬏斀Y(jié)果信息,其中,傳輸結(jié)果信息包括傳輸成功信息和傳輸失敗信息,當(dāng)傳輸結(jié)果信息為傳輸成功信息時(shí),傳輸結(jié)束,當(dāng)傳輸結(jié)果信息為傳輸失敗信息時(shí),返回步驟S104。在該實(shí)施例中,讀取端口緩存空間時(shí)無(wú)需先將數(shù)據(jù)由系統(tǒng)芯片數(shù)據(jù)存儲(chǔ)器至緩存,而是直接可讀取到緩存內(nèi)容,節(jié)省了 USB端口緩存和數(shù)據(jù)存儲(chǔ)器之間的數(shù)據(jù)搬移,提高了 USB設(shè)備至主機(jī)的數(shù)據(jù)傳輸速度。進(jìn)一步地,在讀取過(guò)程中自動(dòng)計(jì)算讀取地址,并根據(jù)計(jì)算出的新地址自動(dòng)讀取數(shù)據(jù),從而能夠正確、快速地保證對(duì)SRAM的數(shù)據(jù)讀取。進(jìn)一步地,在一次數(shù)據(jù)傳輸之后,根據(jù)主機(jī)下發(fā)的信息進(jìn)行傳輸結(jié)果的檢測(cè),在傳輸失敗時(shí)重新進(jìn)行傳輸,提高了 USB數(shù)據(jù)傳輸?shù)耐暾院蜏?zhǔn)確性。圖6是根據(jù)本發(fā)明第二實(shí)施例的USB設(shè)備的數(shù)據(jù)傳輸控制方法的流程圖,該實(shí)施例中的USB設(shè)備的端口緩存空間為SRAM,其中,SRAM是USB設(shè)備的系統(tǒng)芯片數(shù)據(jù)存儲(chǔ)器的一部分,如圖6所示,該方法包括如下的步驟S202至步驟S214。步驟S202 :接收主機(jī)下發(fā)的數(shù)據(jù)包,獲取數(shù)據(jù)傳輸方向信息,當(dāng)數(shù)據(jù)傳輸方向?yàn)橹鳈C(jī)至USB設(shè)備時(shí),執(zhí)行步驟S204。步驟S204 :獲取SRAM的初始地址。步驟S206 :將主機(jī)下發(fā)的數(shù)據(jù)中的IByte數(shù)據(jù)寫入SRAM中初始地址對(duì)應(yīng)位置。步驟S208 :每寫入IByte數(shù)據(jù)后,將初始地址加I后計(jì)算新地址。步驟S210 :將主機(jī)下發(fā)的數(shù)據(jù)中的IByte數(shù)據(jù)寫入SRAM中新地址對(duì)應(yīng)位置。步驟S212 :判斷數(shù)據(jù)是否寫入完畢,其中,當(dāng)數(shù)據(jù)未寫入完畢時(shí),返回步驟S208,否則執(zhí)行步驟S214。步驟S214:接收主機(jī)下發(fā)的數(shù)據(jù)傳輸?shù)膫鬏斀Y(jié)果信息,其中,傳輸結(jié)果信息包括傳輸成功信息和傳輸失敗信息,當(dāng)傳輸結(jié)果信息為傳輸成功信息時(shí),傳輸結(jié)束,當(dāng)傳輸結(jié)果信息為傳輸失敗信息時(shí),返回步驟S204。在該實(shí)施例中,將接收到的數(shù)據(jù)直接寫入至系統(tǒng)芯片的數(shù)據(jù)存儲(chǔ)器,系統(tǒng)芯片的CPU在訪問(wèn)數(shù)據(jù)時(shí)無(wú)需先將數(shù)據(jù)由緩存移至數(shù)據(jù)存儲(chǔ)器,節(jié)省了 USB端口緩存和數(shù)據(jù)存儲(chǔ)器之間的數(shù)據(jù)搬移,提高了主機(jī)至USB設(shè)備的數(shù)據(jù)傳輸速度。進(jìn)一步地,在寫入過(guò)程中自動(dòng)計(jì)算讀取地址,并根據(jù)計(jì)算出的新地址自動(dòng)寫入數(shù)據(jù),從而能夠正確、快速地保證對(duì)SRAM的數(shù)據(jù)寫入。進(jìn)一步地,在一次數(shù)據(jù)傳輸之后,根據(jù)主機(jī)下發(fā)的信息進(jìn)行傳輸結(jié)果的檢測(cè),在傳輸失敗時(shí)重新進(jìn)行傳輸,提高了 USB數(shù)據(jù)傳輸?shù)耐暾院蜏?zhǔn)確性。從以上的描述中,可以看出,本發(fā)明實(shí)現(xiàn)了如下技術(shù)效果通過(guò)將USB系統(tǒng)芯片數(shù)據(jù)存儲(chǔ)器的一部分作為USB設(shè)備的端口緩存空間,從而節(jié)省了數(shù)據(jù)傳輸過(guò)程中系統(tǒng)芯片數(shù)據(jù)存儲(chǔ)器到USB端口緩存的數(shù)據(jù)搬移過(guò)程,提高了 USB設(shè)備的傳輸速度。以上僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種USB接口控制模塊,用于連接主機(jī)與USB系統(tǒng)芯片,其特征在于,所述USB設(shè)備的端口緩存空間為SRAM,其中,所述SRAM是所述USB系統(tǒng)芯片的數(shù)據(jù)存儲(chǔ)器的一部分,所述USB接口控制模塊包括主控單元和數(shù)據(jù)傳輸單元,其中, 所述數(shù)據(jù)傳輸單元用于讀取所述SRAM的數(shù)據(jù)至所述主控單元, 所述主控單元用于將所述數(shù)據(jù)傳輸單元讀取到的數(shù)據(jù)打包并發(fā)送給所述主機(jī),以及接收并解析所述主機(jī)下發(fā)的數(shù)據(jù)包, 所述數(shù)據(jù)傳輸單元還用于將所述主控單元解析后的數(shù)據(jù)寫入至所述SRAM。
2.根據(jù)權(quán)利要求1所述的USB接口控制模塊,其特征在于,還包括 地址寄存器,用于存儲(chǔ)所述SRAM的初始地址;以及 地址控制單元,用于讀取所述地址寄存器中存儲(chǔ)的地址,并在所述數(shù)據(jù)傳輸單元每讀取或?qū)懭隝Byte數(shù)據(jù)時(shí),將讀取到的地址加I后提供給所述數(shù)據(jù)傳輸單元, 其中,所述數(shù)據(jù)傳輸單元還用于根據(jù)所述地址控制單元提供的地址讀取或?qū)懭霐?shù)據(jù)。
3.根據(jù)權(quán)利要求2所述的USB接口控制模塊,其特征在于, 所述主控單元還用于在與所述主機(jī)完成一次數(shù)據(jù)傳輸后,向所述地址控制單元提供傳輸結(jié)果信息,其中,所述傳輸結(jié)果信息包括傳輸成功信息和傳輸失敗信息; 所述地址控制單元還用于在獲取到所述傳輸失敗信息時(shí),重新讀取所述地址寄存器中存儲(chǔ)的地址。
4.根據(jù)權(quán)利要求3所述的USB接口控制模塊,其特征在于,所述主控單元還用于在完成所述數(shù)據(jù)傳輸之后,向所述地址控制單元提供傳輸結(jié)果信息之前,接收所述主機(jī)下發(fā)的傳輸結(jié)果數(shù)據(jù)包,并解析所述傳輸結(jié)果數(shù)據(jù)包得到所述傳輸結(jié)果信息。
5.—種USB設(shè)備的數(shù)據(jù)傳輸控制方法,其特征在于,所述USB設(shè)備的端口緩存空間為SRAM,其中,所述SRAM是所述USB設(shè)備的系統(tǒng)芯片數(shù)據(jù)存儲(chǔ)器的一部分,所述方法包括 讀取所述SRAM的數(shù)據(jù);以及 將讀取到的數(shù)據(jù)打包并發(fā)送給主機(jī)。
6.根據(jù)權(quán)利要求5所述的控制方法,其特征在于, 在讀取所述SRAM的數(shù)據(jù)之前,所述方法還包括獲取所述SRAM的初始地址, 其中,讀取所述SRAM的數(shù)據(jù)包括讀取所述SRAM中第一地址的數(shù)據(jù)得到IByte數(shù)據(jù);將所述第一地址加I后得到第二地址;以及讀取所述SRAM中第二地址的數(shù)據(jù)得到IByte數(shù)據(jù),其中,首次讀取所述SRAM數(shù)據(jù)時(shí)的地址為所述初始地址。
7.根據(jù)權(quán)利要求6所述的控制方法,其特征在于,在讀取到的數(shù)據(jù)打包并發(fā)送給主機(jī),完成一次向所述主機(jī)的數(shù)據(jù)發(fā)送后,所述方法還包括 獲取傳輸結(jié)果信息,其中,所述傳輸結(jié)果信息包括傳輸成功信息和傳輸失敗信息;以及 在獲取到所述傳輸失敗信息時(shí),重新獲取所述SRAM的初始地址。
8.—種USB設(shè)備的數(shù)據(jù)傳輸控制方法,其特征在于,所述USB設(shè)備的端口緩存空間為SRAM,其中,所述SRAM是所述USB設(shè)備的系統(tǒng)芯片數(shù)據(jù)存儲(chǔ)器的一部分,所述方法包括 接收并解析主機(jī)下發(fā)的數(shù)據(jù)包;以及 將解析后的數(shù)據(jù)寫入至所述SRAM。
9.根據(jù)權(quán)利要求8所述的控制方法,其特征在于, 在將解析后的數(shù)據(jù)寫入至所述SRAM之前,所述方法還包括獲取所述SRAM的初始地址, 其中,將解析后的數(shù)據(jù)寫入至所述SRAM包括將解析后的IByte數(shù)據(jù)寫入至所述SRAM中第一地址;將所述第一地址加I后得到第二地址;以及將解析后的下IByte數(shù)據(jù)寫入至所述SRAM中第二地址,其中,解析后的首Byte數(shù)據(jù)寫入至所述初始地址。
10.根據(jù)權(quán)利要9所述的控制方法,其特征在于,在將解析后的數(shù)據(jù)全部寫入至所述SRAM,完成一次所述主機(jī)的數(shù)據(jù)接收后,所述方法還包括 獲取傳輸結(jié)果信息,其中,所述傳輸結(jié)果信息包括傳輸成功信息和傳輸失敗信息;以及 在獲取到所述傳輸失敗信息時(shí),重新獲取所述SRAM的初始地址。
全文摘要
本發(fā)明公開了一種USB接口控制模塊和USB設(shè)備的數(shù)據(jù)傳輸控制方法。該根據(jù)USB接口控制模塊用于連接主機(jī)與USB系統(tǒng)芯片,USB設(shè)備的端口緩存空間為SRAM,其中,SRAM是USB系統(tǒng)芯片的數(shù)據(jù)存儲(chǔ)器的一部分,USB接口控制模塊包括主控單元和數(shù)據(jù)傳輸單元,其中,數(shù)據(jù)傳輸單元用于讀取SRAM的數(shù)據(jù)至主控單元,主控單元用于將數(shù)據(jù)傳輸單元讀取到的數(shù)據(jù)打包并發(fā)送給主機(jī),以及接收并解析主機(jī)下發(fā)的數(shù)據(jù)包,數(shù)據(jù)傳輸單元還用于將主控單元解析后的數(shù)據(jù)寫入至SRAM。通過(guò)本發(fā)明,USB系統(tǒng)芯片的CPU可直接訪問(wèn)USB設(shè)備的端口緩存空間,節(jié)省了芯片數(shù)據(jù)存儲(chǔ)器到USB端口緩存的數(shù)據(jù)搬移過(guò)程,提高了USB數(shù)據(jù)的傳輸速度。
文檔編號(hào)G06F13/40GK103019983SQ20121048371
公開日2013年4月3日 申請(qǐng)日期2012年11月23日 優(yōu)先權(quán)日2012年11月23日
發(fā)明者張文婧, 張賀, 田磊 申請(qǐng)人:北京宏思電子技術(shù)有限責(zé)任公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
阿克陶县| 武宣县| 永胜县| 玛沁县| 霞浦县| 双牌县| 德阳市| 成武县| 宣武区| 富宁县| 古丈县| 汽车| 枣阳市| 右玉县| 潮安县| 高碑店市| 海伦市| 抚州市| 新建县| 延津县| 瑞安市| 阜宁县| 巫溪县| 南溪县| 青州市| 宁河县| 澎湖县| 大足县| 萝北县| 阳朔县| 南京市| 江安县| 城固县| 昌邑市| 龙口市| 尉氏县| 崇仁县| 和林格尔县| 响水县| 靖西县| 温州市|