TWI436218B - 於非通用序列匯流排裝置建立虛擬通用序列匯流排介面之方法及其裝置 - Google Patents
於非通用序列匯流排裝置建立虛擬通用序列匯流排介面之方法及其裝置 Download PDFInfo
- Publication number
- TWI436218B TWI436218B TW100111479A TW100111479A TWI436218B TW I436218 B TWI436218 B TW I436218B TW 100111479 A TW100111479 A TW 100111479A TW 100111479 A TW100111479 A TW 100111479A TW I436218 B TWI436218 B TW I436218B
- Authority
- TW
- Taiwan
- Prior art keywords
- sequence bus
- universal sequence
- universal
- interface
- bus
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
Description
本發明係關於通用序列匯流排(Universal Serial Bus,USB)介面,特別係關於虛擬通用序列匯流排介面。
通用序列匯流排係一種連接周邊裝置至一主機控制器(例如電腦)的傳輸介面,其可支援如鍵盤、滑鼠、數位相機、印表機和硬碟等周邊裝置。據此,通用序列匯流排傳輸介面已成為大多數周邊裝置的標準傳輸介面。隨著無線通訊的成熟,通用序列匯流排也支援如藍芽(Bluetooth)無線通訊之硬體裝置。
目前市面上絕大多數的藍芽無線裝置均是透過通用序列匯流排介面以連接至電腦,且藍芽通訊標準中亦定義了通用序列匯流排傳送層(USB Transport Layer)。藍芽無線裝置的製造商即可根據該藍芽通訊標準發展對應的藍芽無線通訊協定的簡介堆疊(Profile Stack)。然而,對於非使用通用序列匯流排介面的藍芽無線裝置而言,例如以高速周邊元件互連介面(Peripheral Component Interconnect Express,PCIe)作為傳輸介面的藍芽無線裝置為例,由於作業系統廠商並未提供其他介面的相關軟體以供使用(例如微軟僅提供通用序列匯流排介面的簡介堆疊),藍芽無線裝置的製造商需在藍芽無線通訊協定的簡介堆疊中另行定義高速周邊元件互連介面傳送層。
然而,對於習慣使用作業系統廠商所提供之各種通用
序列匯流排介面之藍芽無線通訊應用軟體的開發者而言,這會使開發過程更為複雜。據此,業界所需要的是一種可於非通用序列匯流排裝置建立虛擬通用序列匯流排介面之方法,其可使硬體端之該裝置使用非通用序列匯流排之介面,而在其他層級之驅動程式則使用通用序列匯流排作為傳輸介面。
本發明揭示一種於非通用序列匯流排裝置建立虛擬通用序列匯流排介面之方法,包含下列步驟:建立和一非通用序列匯流排裝置溝通之一非通用序列匯流排介面;產生一虛擬通用序列匯流排之實體裝置元件以提供至一通用序列匯流排傳送層驅動程式;建立和該通用序列匯流排傳送層驅動程式溝通之一虛擬通用序列匯流排介面;根據該虛擬通用序列匯流排介面過濾該通用序列匯流排傳送層驅動程式所發送之指令;以及根據該非通用序列匯流排介面過濾該非通用序列匯流排裝置所回傳之資料。
本發明揭示一種非通用序列匯流排裝置,其包含一驅動程式,其中該驅動程式可執行以進行下列步驟:建立和一非通用序列匯流排裝置溝通之一非通用序列匯流排介面;產生一虛擬通用序列匯流排之實體裝置元件以提供至一通用序列匯流排傳送層驅動程式;建立和該通用序列匯流排傳送層驅動程式溝通之一虛擬通用序列匯流排介面;根據該虛擬通用序列匯流排介面過濾該通用序列匯流排傳送層驅動程式所發送之指令;以及根據該非通用序列匯流排
介面過濾該非通用序列匯流排裝置所回傳之資料。
上文已經概略地敍述本發明之技術特徵,俾使下文之詳細描述得以獲得較佳瞭解。構成本發明之申請專利範圍標的之其它技術特徵將描述於下文。本發明所屬技術領域中具有通常知識者應可瞭解,下文揭示之概念與特定實施例可作為基礎而相當輕易地予以修改或設計其它結構或製程而實現與本發明相同之目的。本發明所屬技術領域中具有通常知識者亦應可瞭解,這類等效的建構並無法脫離後附之申請專利範圍所提出之本發明的精神和範圍。
本發明在此所探討的方向為一種於非通用序列匯流排裝置建立虛擬通用序列匯流排介面之方法及其裝置。為了能徹底地瞭解本發明,將在下列的描述中提出詳盡的步驟及組成。顯然地,本發明的施行並未限定於本發明技術領域之技藝者所熟習的特殊細節。另一方面,眾所周知的組成或步驟並未描述於細節中,以避免造成本發明不必要之限制。本發明的較佳實施例會詳細描述如下,然而除了這些詳細描述之外,本發明還可以廣泛地施行在其他的實施例中,且本發明的範圍不受限定,其以之後的專利範圍為準。
本發明之實施例之非通用序列匯流排裝置係以高速周邊元件互連介面作為傳輸介面的藍芽無線裝置為例。然而,本發明之非通用序列匯流排裝置之範圍不限於藍芽無線裝置,亦不限於以高速周邊元件互連介面作為傳輸介面,
而應及於任何涵蓋於本發明之精神之裝置。
圖1顯示本發明之一實施例之一非通用序列匯流排裝置連接至一主機控制器之系統示意圖。如圖1所示,一以高速周邊元件互連介面作為傳輸介面的藍芽無線裝置,其具有一控制器程式101和一驅動程式102,並透過一高速周邊元件互連介面硬體排線103連接至一主機控制器。該主機控制器具有一通用序列匯流排傳送層驅動程式104和各種更高層級之驅動程式105。該驅動程式102可執行以建立一高速周邊元件互連介面150和一虛擬之通用序列匯流排介面160。該等更高層級之驅動程式105係經由該通用序列匯流排傳送層驅動程式104透過該虛擬之通用序列匯流排介面160和該驅動程式102溝通。該驅動程式102透過該高速周邊元件互連介面150經由該高速周邊元件互連介面硬體排線103和該控制器程式101溝通。
如圖1所示,該驅動程式102係於執行時建立一高速周邊元件互連介面150和一虛擬之通用序列匯流排介面160。具體而言,該驅動程式102係產生一虛擬通用序列匯流排之實體裝置元件(Physical Device Object,PDO)以提供至該通用序列匯流排傳送層驅動程式104。該通用序列匯流排傳送層驅動程式104即可載入該虛擬通用序列匯流排之實體裝置元件之身分(ID),亦即一虛擬之通用序列匯流排裝置。對該通用序列匯流排傳送層驅動程式而言,其等同於透過該虛擬之通用序列匯流排介面160和該虛擬之通用序列匯流排裝置溝通。
圖2顯示本發明之一實施例之於非通用序列匯流排裝置建立虛擬通用序列匯流排介面之方法之流程圖。在步驟201,建立和一非通用序列匯流排裝置溝通之一非通用序列匯流排介面,並進入步驟202。在步驟202,產生一虛擬通用序列匯流排之實體裝置元件以提供至一通用序列匯流排傳送層驅動程式,並進入步驟203。在步驟203,建立和該通用序列匯流排傳送層驅動程式溝通之一虛擬通用序列匯流排介面,並進入步驟204。在步驟204,根據該虛擬通用序列匯流排介面過濾該通用序列匯流排傳送層驅動程式所發送之指令,以及根據該非通用序列匯流排介面過濾該非通用序列匯流排裝置所回傳之資料。
如圖1和圖2所示,圖1之驅動程式102即可執行以實現圖2所示之方法。複參圖1,該驅動程式102係產生一虛擬通用序列匯流排之實體裝置元件以產生一虛擬之通用序列匯流排裝置。對該通用序列匯流排傳送層驅動程式104所傳遞之指令而言,該虛擬之通用序列匯流排裝置支援所有通用序列匯流排之功能及執行所有該通用序列匯流排傳送層驅動程式104所傳遞之指令。實際上,該驅動程式102即透過該虛擬通用序列匯流排介面160過濾該通用序列匯流排傳送層驅動程式104所發送之指令,例如該通用序列匯流排之初始化設定和通用序列匯流排層級之相關指令,並將該藍芽無線裝置之實體層相關指令傳送至該藍芽無線裝置。較佳地,該驅動程式102即逕自執行該通用序列匯流排之初始化設定和通用序列匯流排層級之相關指令。
以下例示該虛擬通用序列匯流排介面過濾該通用序列匯流排傳送層所發送之指令之動作。圖3顯示圖2之步驟204之一細部流程圖。在步驟301,該虛擬之通用序列匯流排介面160接收來自該通用序列匯流排傳送層驅動程式104之指令,並進入步驟302。在步驟302,檢查該指令是否為定時性之指令。若該指令為定時性之指令,則進入步驟303,否則進入步驟304。在步驟303,將該指令儲存於一佇列,並進入步驟304。在步驟304,將該指令傳遞至該高速周邊元件互連介面150。
如圖3所示,該驅動程式102支援所有通用序列匯流排之相關功能,包含定時發送指令之功能。據此,該虛擬之通用序列匯流排介面160係將定時性之指令,例如語音相關資料之指令以定時方式傳送至該該高速周邊元件互連介面150。
類似於圖3之方法,該高速周邊元件互連介面150亦會過濾該藍芽無線裝置所回傳之資料。圖4顯示圖2之步驟204之另一細部流程圖。在步驟401,該高速周邊元件互連介面150接收來自該藍芽無線裝置所回傳之資料,並進入步驟402。在步驟402,檢查該資料是否為通用序列匯流排之相關資料。若該資料為通用序列匯流排之相關資料,則進入步驟403,否則進入步驟404。在步驟403,將該資料傳送至該通用序列匯流排傳送層驅動程式。在步驟404,放棄該資料。
如圖4所示,該高速周邊元件互連介面150係將通用序
列匯流排層級之資料回傳至該通用序列匯流排傳送層驅動程式,而放棄非屬通用序列匯流排層級之資料。
綜上所述,本發明之於非通用序列匯流排裝置建立虛擬通用序列匯流排介面之方法及其裝置係利用一驅動程式產生一虛擬通用序列匯流排之實體裝置元件,使該通用序列匯流排傳送層驅動程式操作以和一虛擬之通用序列匯流排裝置溝通。據此,即可達到建立虛擬通用序列匯流排介面之目的。
本發明之技術內容及技術特點已揭示如上,然而熟悉本項技術之人士仍可能基於本發明之教示及揭示而作種種不背離本發明精神之替換及修飾。因此,本發明之保護範圍應不限於實施例所揭示者,而應包括各種不背離本發明之替換及修飾,並為以下之申請專利範圍所涵蓋。
101‧‧‧控制器程式
102‧‧‧驅動程式
103‧‧‧高速周邊元件互連介面硬體排線
104‧‧‧通用序列匯流排傳送層驅動程式
105‧‧‧驅動程式
150‧‧‧高速周邊元件互連介面
160‧‧‧虛擬通用序列匯流排介面
201~204‧‧‧步驟
301~304‧‧‧步驟
401~404‧‧‧步驟
圖1顯示本發明之一實施例之一非通用序列匯流排裝置連接至一主機控制器之系統示意圖;圖2顯示本發明之一實施例之於非通用序列匯流排裝置建立虛擬通用序列匯流排介面之流程圖;圖3顯示本發明之一實施例之於非通用序列匯流排裝置建立虛擬通用序列匯流排介面之另一流程圖;以及圖4顯示本發明之一實施例之於非通用序列匯流排裝置建立虛擬通用序列匯流排介面之再一流程圖。
201~204‧‧‧步驟
Claims (13)
- 一種於非通用序列匯流排裝置建立虛擬通用序列匯流排介面之方法,包含下列步驟:建立和一非通用序列匯流排裝置溝通之一非通用序列匯流排介面;產生一虛擬通用序列匯流排之實體裝置元件以提供至一通用序列匯流排傳送層驅動程式;建立和該通用序列匯流排傳送層驅動程式溝通之一虛擬通用序列匯流排介面;根據該虛擬通用序列匯流排介面過濾該通用序列匯流排傳送層驅動程式所發送之指令;以及根據該非通用序列匯流排介面過濾該非通用序列匯流排裝置所回傳之資料。
- 根據請求項1之方法,其中該虛擬通用序列匯流排介面係過濾掉初始動作相關指令和通用序列匯流排層級相關指令,並傳送該非通用序列匯流排裝置之實體層相關指令至該非通用序列匯流排裝置。
- 根據請求項1之方法,其中該虛擬通用序列匯流排介面係將非定時之指令直接傳送至該非通用序列匯流排裝置,並儲存定時之指令於一佇列以定時傳送至該非通用序列匯流排裝置。
- 根據請求項1之方法,其中該非通用序列匯流排介面係將通用序列匯流排之相關指令傳送至該通用序列匯流排傳送層驅動程式。
- 根據請求項1之方法,其中該非通用序列匯流排介面為高速周邊元件互連介面。
- 根據請求項1之方法,其中該非通用序列匯流排裝置為一藍芽裝置。
- 一種非通用序列匯流排裝置,具有一驅動程式,其中該驅動程式執行下列步驟:建立和該非通用序列匯流排裝置溝通之一非通用序列匯流排介面;產生一虛擬通用序列匯流排之實體裝置元件以提供至一通用序列匯流排傳送層驅動程式;建立和該通用序列匯流排傳送層驅動程式溝通之一虛擬通用序列匯流排介面;根據該虛擬通用序列匯流排介面過濾該通用序列匯流排傳送層驅動程式所發送之指令;以及根據該非通用序列匯流排介面過濾該非通用序列匯流排裝置所回傳之資料。
- 根據請求項7之非通用序列匯流排裝置,其中該驅動程式執行以進行下列步驟:執行該通用序列匯流排之初始化設定;以及執行通用序列匯流排層級之相關指令。
- 根據請求項7之非通用序列匯流排裝置,其中該虛擬通用序列匯流排介面係過濾掉初始動作相關指令和通用序列匯流排層級相關指令,並傳送該非通用序列匯流排裝置之實體層相關指令至該非通用序列匯流排裝置。
- 根據請求項7之非通用序列匯流排裝置,其中該虛擬通用序列匯流排介面係將非定時之指令直接傳送至該非通用序列匯流排裝置,並儲存定時之指令於一佇列以定時傳送至該非通用序列匯流排裝置。
- 根據請求項7之非通用序列匯流排裝置,其中該非通用序列匯流排介面係將通用序列匯流排之相關指令傳送至該通用序列匯流排傳送層驅動程式。
- 根據請求項7之非通用序列匯流排裝置,其中該非通用序列匯流排介面為高速周邊元件互連介面。
- 根據請求項7之非通用序列匯流排裝置,其中該非通用序列匯流排裝置為一藍芽裝置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW100111479A TWI436218B (zh) | 2011-04-01 | 2011-04-01 | 於非通用序列匯流排裝置建立虛擬通用序列匯流排介面之方法及其裝置 |
US13/228,128 US8549206B2 (en) | 2011-04-01 | 2011-09-08 | Method of establishing virtual USB interface for non-USB apparatus and the non-USB apparatus thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW100111479A TWI436218B (zh) | 2011-04-01 | 2011-04-01 | 於非通用序列匯流排裝置建立虛擬通用序列匯流排介面之方法及其裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201241636A TW201241636A (en) | 2012-10-16 |
TWI436218B true TWI436218B (zh) | 2014-05-01 |
Family
ID=46928826
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW100111479A TWI436218B (zh) | 2011-04-01 | 2011-04-01 | 於非通用序列匯流排裝置建立虛擬通用序列匯流排介面之方法及其裝置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8549206B2 (zh) |
TW (1) | TWI436218B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6282434B2 (ja) * | 2012-10-22 | 2018-02-21 | キヤノンイメージングシステムズ株式会社 | デバイス制御装置、その制御方法、及びデバイス制御システム |
JP6025547B2 (ja) * | 2012-12-21 | 2016-11-16 | キヤノンイメージングシステムズ株式会社 | 情報処理装置、デバイス制御装置、およびその制御方法、並びにデバイス制御システム |
WO2021066799A1 (en) | 2019-09-30 | 2021-04-08 | Hewlett-Packard Development Company, L.P. | Usb port capability assignment |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7051149B2 (en) * | 2002-08-29 | 2006-05-23 | Lite-On Technology Corporation | Method for transceiving non-USB device by an adapter and apparatus using the same |
JP2004118746A (ja) * | 2002-09-27 | 2004-04-15 | Toshiba Corp | 電子機器および記憶装置の起動制御方法 |
US7629963B1 (en) * | 2003-12-22 | 2009-12-08 | Cypress Semiconductor Corporation | Method and apparatus for binding peripheral devices to a computer |
US7458075B2 (en) * | 2004-03-31 | 2008-11-25 | Intel Corporation | Virtual USB port system and method |
US20070005867A1 (en) * | 2005-06-30 | 2007-01-04 | Nimrod Diamant | Virtual peripheral device interface and protocol for use in peripheral device redirection communication |
US7433990B2 (en) * | 2006-01-24 | 2008-10-07 | Standard Microsystems Corporation | Transferring system information via universal serial bus (USB) |
US8006023B1 (en) * | 2008-05-15 | 2011-08-23 | Marvell International Ltd. | Driver based wireless USB |
US8447910B1 (en) * | 2010-11-30 | 2013-05-21 | Qualcomm Incorporated | Systems and methods for implementing bluetooth over a virtual USB connection |
-
2011
- 2011-04-01 TW TW100111479A patent/TWI436218B/zh active
- 2011-09-08 US US13/228,128 patent/US8549206B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
TW201241636A (en) | 2012-10-16 |
US8549206B2 (en) | 2013-10-01 |
US20120254473A1 (en) | 2012-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8719483B2 (en) | Multi-root PCI express switch, boot method thereof, and multi-root PCI manager program | |
US8443126B2 (en) | Hot plug process in a distributed interconnect bus | |
JP2014515885A5 (zh) | ||
CN103874984B (zh) | 可虚拟化以及前向兼容硬件‑软件接口 | |
TWI556174B (zh) | 虛擬功能分配系統、方法及其管理主機 | |
US20180367504A1 (en) | System, Apparatus And Method For Tunneling And/Or Multiplexing Via A Multi-Drop Interconnect | |
GB2460331B (en) | Providing a peripheral component interconnect (PCI) - compatible transaction level protocol for a system on a chip (SoC) | |
JP2011146060A5 (zh) | ||
TWI436218B (zh) | 於非通用序列匯流排裝置建立虛擬通用序列匯流排介面之方法及其裝置 | |
JP2010520528A5 (zh) | ||
US8271707B2 (en) | Method and system for PCI hybrid function | |
WO2018218954A1 (zh) | 一种验证平台和验证方法、计算机存储介质 | |
JP2017516212A5 (zh) | ||
US20180095918A1 (en) | Universal serial bus emulation layer | |
JP2010039913A5 (zh) | ||
JP7568003B2 (ja) | 情報処理装置、および、データ転送方法 | |
JP5913211B2 (ja) | インタフェース装置、及び情報処理装置 | |
CN101299208A (zh) | 双模通用串行总线设备及其控制方法 | |
KR100775210B1 (ko) | 범용 시리얼 버스 통신 장치 프로그램 업데이트 방법 | |
CN102331941B (zh) | 一种龙芯主板硬盘切换管理的方法 | |
JP2007334772A5 (zh) | ||
JP2018124777A5 (zh) | ||
JP2017531871A (ja) | Usbストリームを通したサイドチャネルアクセス | |
CN107066360A (zh) | 一种信息传输方法及服务器 | |
JP2015138503A (ja) | Ssハブ及びusb3.0ハブ並びに情報処理機器 |