TWI436218B - 於非通用序列匯流排裝置建立虛擬通用序列匯流排介面之方法及其裝置 - Google Patents

於非通用序列匯流排裝置建立虛擬通用序列匯流排介面之方法及其裝置 Download PDF

Info

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
Application number
TW100111479A
Other languages
English (en)
Other versions
TW201241636A (en
Inventor
Hao Sheng Hsu
Chiung Hsun Hsu
Jih Chun Tsai
Original Assignee
Ralink Technology Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ralink Technology Corp filed Critical Ralink Technology Corp
Priority to TW100111479A priority Critical patent/TWI436218B/zh
Priority to US13/228,128 priority patent/US8549206B2/en
Publication of TW201241636A publication Critical patent/TW201241636A/zh
Application granted granted Critical
Publication of TWI436218B publication Critical patent/TWI436218B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information 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. 一種於非通用序列匯流排裝置建立虛擬通用序列匯流排介面之方法,包含下列步驟:建立和一非通用序列匯流排裝置溝通之一非通用序列匯流排介面;產生一虛擬通用序列匯流排之實體裝置元件以提供至一通用序列匯流排傳送層驅動程式;建立和該通用序列匯流排傳送層驅動程式溝通之一虛擬通用序列匯流排介面;根據該虛擬通用序列匯流排介面過濾該通用序列匯流排傳送層驅動程式所發送之指令;以及根據該非通用序列匯流排介面過濾該非通用序列匯流排裝置所回傳之資料。
  2. 根據請求項1之方法,其中該虛擬通用序列匯流排介面係過濾掉初始動作相關指令和通用序列匯流排層級相關指令,並傳送該非通用序列匯流排裝置之實體層相關指令至該非通用序列匯流排裝置。
  3. 根據請求項1之方法,其中該虛擬通用序列匯流排介面係將非定時之指令直接傳送至該非通用序列匯流排裝置,並儲存定時之指令於一佇列以定時傳送至該非通用序列匯流排裝置。
  4. 根據請求項1之方法,其中該非通用序列匯流排介面係將通用序列匯流排之相關指令傳送至該通用序列匯流排傳送層驅動程式。
  5. 根據請求項1之方法,其中該非通用序列匯流排介面為高速周邊元件互連介面。
  6. 根據請求項1之方法,其中該非通用序列匯流排裝置為一藍芽裝置。
  7. 一種非通用序列匯流排裝置,具有一驅動程式,其中該驅動程式執行下列步驟:建立和該非通用序列匯流排裝置溝通之一非通用序列匯流排介面;產生一虛擬通用序列匯流排之實體裝置元件以提供至一通用序列匯流排傳送層驅動程式;建立和該通用序列匯流排傳送層驅動程式溝通之一虛擬通用序列匯流排介面;根據該虛擬通用序列匯流排介面過濾該通用序列匯流排傳送層驅動程式所發送之指令;以及根據該非通用序列匯流排介面過濾該非通用序列匯流排裝置所回傳之資料。
  8. 根據請求項7之非通用序列匯流排裝置,其中該驅動程式執行以進行下列步驟:執行該通用序列匯流排之初始化設定;以及執行通用序列匯流排層級之相關指令。
  9. 根據請求項7之非通用序列匯流排裝置,其中該虛擬通用序列匯流排介面係過濾掉初始動作相關指令和通用序列匯流排層級相關指令,並傳送該非通用序列匯流排裝置之實體層相關指令至該非通用序列匯流排裝置。
  10. 根據請求項7之非通用序列匯流排裝置,其中該虛擬通用序列匯流排介面係將非定時之指令直接傳送至該非通用序列匯流排裝置,並儲存定時之指令於一佇列以定時傳送至該非通用序列匯流排裝置。
  11. 根據請求項7之非通用序列匯流排裝置,其中該非通用序列匯流排介面係將通用序列匯流排之相關指令傳送至該通用序列匯流排傳送層驅動程式。
  12. 根據請求項7之非通用序列匯流排裝置,其中該非通用序列匯流排介面為高速周邊元件互連介面。
  13. 根據請求項7之非通用序列匯流排裝置,其中該非通用序列匯流排裝置為一藍芽裝置。
TW100111479A 2011-04-01 2011-04-01 於非通用序列匯流排裝置建立虛擬通用序列匯流排介面之方法及其裝置 TWI436218B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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ハブ並びに情報処理機器