新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > USB開發步驟之標準篇

        USB開發步驟之標準篇

        作者: 時間:2012-04-18 來源:網絡 收藏
        $2500就可以獲得一個Vendor ID,其實,每個Vendor ID的零售價格只是$200,不過每個論壇的成員可以在關于的支持方面可以得到許多的好處。(對于俺們中國人來說,去弄一個什么成員是 很浪費錢的)

        USB的設備類型(device class)

        雖然USB設備都會表現USB的一些基本的特征。但是,USB的設備還是可以分成多個不同類型,同類型的設備可以擁有一些共同的行為特征和工作協議,從而使設備的驅動程序的書寫變得簡單一些。下表中就給出一些基本的USB的設備類型分類。

        設備類型(device class) 設備舉例 類型常量(Class constant)
        音頻(audio) 揚聲器 USB_DEVICE_CLASS_AUDIO
        通信 MODEM USB_DECICE_CLASS_COMMUNICATIONS
        HID 鍵盤 鼠標 USB_DEVICE_CLASS_HUMAN INTERFACE
        顯示 監視器 USB_DEVICE_CLASS_MONITOR
        物理回應設備 動力回饋式游戲操縱桿 USB_DEVICE_CLASS_PHYSICAL_INTERFACE
        電源 不間斷電源供應 USB_DEVICE_CLASS_POWER
        打印機 USB_DEVICE_CLASS_PRINTER
        大量的存儲器 硬盤 USB_DEVICE_CLASS_STORAGE
        HUB USB_DEVICE_CLASS_HUB

        USB的基本特性
        每一個設備(device)會有一個或者多個的邏輯連接點在里面,每個連接點叫 endpoint.每個endpoint有四種數據傳送方式:控制(Control)方式傳送;同步(isochronous)方式傳送;中斷 (interrupt)方式傳送;大量(bulk)傳送.但是所有的endpoint0都被用來傳送配置和控制信息。
        在host和設備的endpoint之間的連接叫作管道"pipe",endpoint0叫做缺省(default pipe)。
        對于同樣性質的一組的endpoint的組合叫做接口(interface),如果一個設備包含不止一個的接口就可以稱之為復合設備(composite device)。
        同樣的道理,對于同樣的類型的接口的組合可以稱之為"配置"(configuration)。但是每次只能有一個配置是可用的,而一旦該配置激活,里面的接口和endpoint就都同時可以使用。
        host從設備發過來的描述字(descriptors)中來判斷用的是哪個配置,哪個接口等等,而這些的描述字通常是在endpoint0中傳送。

        Windows USB 驅動程序接口
        系統中的USB的驅動程序完成許多的工作。
        實際上對于一些HID的USB設 備,象鍵盤,鼠標和游戲操縱桿之類的設備可以自動的被系統識別并且支持.而除此之外的設備就需要自己寫一個驅動程序來完成硬件和軟件之間的聯系。在核心模 式(kernel mode)下,驅動程序用IOCTL來組織和操作一些由其他部分發過來的要求和命令。而IOCTL又是通過URB(USB request blocks)來實現數據的傳送的。
        在正式的介紹USB的驅動程序之前,先還是來看看USB的物理和邏輯結構。

        傳輸方式
        在USB的數據傳送的方式下,有四種的傳輸方式:控制(Control)同步 (isochronous)中斷(interrupt)大量(bulk)。如果你是從硬件開始來設計整個的系統,你還要正確選擇傳送的方式,而作為一個驅 動程序的書寫者,就只需要弄清楚他是采用的什么工作方式就行了。
        通常所有的傳送方式下的主動權都在PC邊,也就是host邊。

        控制(Control)方式傳送:控制傳送是雙向傳送,數據量通常較小。USB系統軟 件用來主要進行查詢、配置和給USB設備發送通用的命令。控制傳送方式可以包括8、16、32和64字節的數據,這依賴于設備和傳輸速度。控制傳輸典型地 用在主計算機和USB外設之間的端點(Endpoint)0之間的傳輸,但是指定供應商的控制傳輸可能用到其它的端點。

        同步(isochronous)方式傳送:同步傳 輸提供了確定的帶寬和間隔時間(latency)。它被用于時間嚴格并具有較強容錯性的流數據傳輸,或者用于要求恒定的數據傳送率的即時應用中。例如執行 即時通話的網絡電話應用時,使用同步傳輸模式是很好的選擇。同步數據要求確定的帶寬值和確定的最大傳送次數。對于同步傳送來說,即時的數據傳遞比完美的精 度和數據的完整性更重要一些。

        中斷(interrupt)方式傳送:中斷方式傳輸主要用于定時查詢設備是否有中斷數 據要傳送。設備的端點模式器的結構決定了它的查詢頻率,從1到255ms之間。這種傳輸方式典型的應用在少量的分散的、不可預測數據的傳輸。鍵盤、操縱桿 和鼠標就屬于這一類型。中斷方式傳送是單向的并且對于host來說只有輸入的方式。

        大量(bulk)傳送:主要應用在數據大量傳送傳送和接受數據上,同時又沒有帶寬和間隔時間要求的情況下,要求保證傳輸。打印機和掃描儀屬于這種類型。這種類型的設備適合于傳輸非常慢和大量被延遲的傳輸,可以等到所有其它類型的數據的傳送完成之后再傳送和接收數據。

        USB將其有效的帶寬分成各個不同的



        關鍵詞: USB 開發步驟 標準篇

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 东海县| 宽甸| 婺源县| 贵阳市| 象州县| 漳平市| 鄯善县| 嘉善县| 安宁市| 滦平县| 绍兴市| 安溪县| 大渡口区| 广宗县| 海城市| 屯留县| 邢台县| 库车县| 名山县| 金沙县| 砚山县| 昭平县| 枣阳市| 苏州市| 大庆市| 若羌县| 双峰县| 广灵县| 海口市| 满洲里市| 白朗县| 濉溪县| 双柏县| 开原市| 韶关市| 阿坝县| 蒙自县| 鹿泉市| 黄骅市| 营口市| 商都县|