[MOSUT]
     USB 介面概念和
Linux USB library 等相關運用


     報告者: cam11505
前言

有 Every thing is file,file is every thing 的概念會
比較易懂

Jserv 先生的 '' 尋幽訪勝話系統 -- 以 Linux 探
索軟硬體整合設計 '' 有相關的概念敘述

如有講錯 ( 請多海涵 ) 或是很模糊的地方 , 打斷
指正小弟我 ok 的 .
大綱

介紹自己

USB 基本概念

USB 進階概念

Linux USB library 演進

個人所知運用分析方式
介紹自己

本名:戴育凭

目前為圖書館替代役

E-MAIL : cam11505@gmail.com
USB 基本概念

 通用串列匯流排                Universal Serial Bus ,簡
  稱「 USB 」
   USB 版本      速率稱號                  頻寬        速度

            超高速                           約
USB 3.0     SuperSpeed       5Gbps        500MB/S(5000
                                          Mbit/s)

            高速                            約
USB 2.0     Hi-Speed         480Mbps      60MB/S(60,000K
                                          B/S)

            全速                            約
USB 1.1     Full Speed       12Mbps       1.5MB/S(1,500K
                                          B/S)

USB 1.0     低速               1.5Mbps      187.5KB/S(19200
            Low Speed                     0Bytes/S)
USB 基本概念

 USB   Implementers Forum , USB-IF 負責
    USB 標準制訂。 http://www.usb.org/home
   USB 介面使用 D+ 和 D- 的雙絞線傳輸,

屬於”半雙工”的差動信號並協同工作,

以抵消長導線的電磁干擾。
   3.0 為全雙工
USB 進階概念 - 傳輸模式
控制傳輸( Control )—一般用於短的、簡單的對設備的命令和
狀態反饋,例如用於匯流排控制的 0 號管道。

巨量或「批量」傳輸( Bulk )—使用餘下的頻寬大量地(但是
沒有對於延遲、連續性、頻寬和速度的保證)傳輸數據,例如普通的文件傳
輸。

中斷傳輸( Interrupt )—用於必須保證儘快反應的設備(有限
延遲),例如滑鼠、鍵盤。

等時或「同步」傳輸( Isochronous )—按照有保障的速度
(可能但不必然是儘快地)傳輸,可能有數據丟失,例如實時的音頻、視頻
。
USB 進階概念 - 裝置列舉
裝置最主要經歷 , 動力狀態 (Power)-> 預設狀態
(Default)-> 定址狀態 (Adress)-> 配置
( Configured )

          裝置描述元

          配置描述元

          介面描述元
  IN 端點描述元       OUT 端點描述元


PS: 正統上是有 6 種狀態 , 其餘兩種是 Attached-
Suspend
USB 進階概念 - 描述元
裝置描述元 (Device descriptor): 存放裝置的一般資訊,
如 VID PID 等。

配置描述元 (Configuration descriptor): 描述不同組態
模式,是匯流排供電或是自己供電。

介面描述元 (Interface descriptor): 允許 USB 裝置支援
多種功能的複合式裝置,就是有比較多種的介面描述元。是否是
HID 型裝置也是在此確定

端點描述元 (Endpoint descriptor): 存放裝置的最後端點
說明 IN(device to host) OUT(host to device)

報告描述元 (Report descriptor):HID 類型裝置獨有,用來
定義此裝置傳輸方式和格式。
USB 進階概念 - 裝置列舉




    Windows 裝置列舉取得資料順序
USB 進階概念 - 裝置列舉




     Linux 裝置列舉取得資料順序
USB 進階概念 - 裝置列舉
會提到兩種不同的差異 , 是因為發生讓我很




的狀況過 .
Linux USB library 演進
中間度過 devfs => udev 機制的轉變

Hiddev 算是 devfs 時期的產物
Scott Tsai 在 TOSSUG 的分享訊息
QEMU USB Device Emulation Through USB/IP

https://docs.google.com/present/edit
Scott Tsai 在 TOSSUG 的分享訊息
2. 熟悉   Arduino / AVR 或 8051 硬體實驗的人應該會喜歡:

http://traditionalchineseblog.scottt.tw/2009/02/at90usb-dull-boy.html



3. GregKH 有篇 Writing a Real, Working Linux driver

http://www.kroah.com/linux/talks/ols_2005_driver_tutorial/

http://www.kroah.com/linux/talks/ols_2005_driver_tutorial_example_code.tar.g

是讓沒接觸過 Linux kernel 開發的人寫一個很簡單的 usb 溫度計 driver.

將該隻溫度計用 qemu 模擬出來的 patch:

http://lists.gnu.org/archive/html/qemu-devel/2009-11/msg00505.html
謝謝大家的參與
歡迎提問(問倒不能打臉喔 XD )

Mosut linux usb

  • 1.
    [MOSUT] USB 介面概念和 Linux USB library 等相關運用 報告者: cam11505
  • 2.
    前言 有 Every thingis file,file is every thing 的概念會 比較易懂 Jserv 先生的 '' 尋幽訪勝話系統 -- 以 Linux 探 索軟硬體整合設計 '' 有相關的概念敘述 如有講錯 ( 請多海涵 ) 或是很模糊的地方 , 打斷 指正小弟我 ok 的 .
  • 3.
    大綱 介紹自己 USB 基本概念 USB 進階概念 LinuxUSB library 演進 個人所知運用分析方式
  • 4.
  • 5.
    USB 基本概念  通用串列匯流排 Universal Serial Bus ,簡 稱「 USB 」 USB 版本 速率稱號 頻寬 速度 超高速 約 USB 3.0 SuperSpeed 5Gbps 500MB/S(5000 Mbit/s) 高速 約 USB 2.0 Hi-Speed 480Mbps 60MB/S(60,000K B/S) 全速 約 USB 1.1 Full Speed 12Mbps 1.5MB/S(1,500K B/S) USB 1.0 低速 1.5Mbps 187.5KB/S(19200 Low Speed 0Bytes/S)
  • 6.
    USB 基本概念  USB Implementers Forum , USB-IF 負責 USB 標準制訂。 http://www.usb.org/home  USB 介面使用 D+ 和 D- 的雙絞線傳輸, 屬於”半雙工”的差動信號並協同工作, 以抵消長導線的電磁干擾。  3.0 為全雙工
  • 7.
    USB 進階概念 -傳輸模式 控制傳輸( Control )—一般用於短的、簡單的對設備的命令和 狀態反饋,例如用於匯流排控制的 0 號管道。 巨量或「批量」傳輸( Bulk )—使用餘下的頻寬大量地(但是 沒有對於延遲、連續性、頻寬和速度的保證)傳輸數據,例如普通的文件傳 輸。 中斷傳輸( Interrupt )—用於必須保證儘快反應的設備(有限 延遲),例如滑鼠、鍵盤。 等時或「同步」傳輸( Isochronous )—按照有保障的速度 (可能但不必然是儘快地)傳輸,可能有數據丟失,例如實時的音頻、視頻 。
  • 8.
    USB 進階概念 -裝置列舉 裝置最主要經歷 , 動力狀態 (Power)-> 預設狀態 (Default)-> 定址狀態 (Adress)-> 配置 ( Configured ) 裝置描述元 配置描述元 介面描述元 IN 端點描述元 OUT 端點描述元 PS: 正統上是有 6 種狀態 , 其餘兩種是 Attached- Suspend
  • 9.
    USB 進階概念 -描述元 裝置描述元 (Device descriptor): 存放裝置的一般資訊, 如 VID PID 等。 配置描述元 (Configuration descriptor): 描述不同組態 模式,是匯流排供電或是自己供電。 介面描述元 (Interface descriptor): 允許 USB 裝置支援 多種功能的複合式裝置,就是有比較多種的介面描述元。是否是 HID 型裝置也是在此確定 端點描述元 (Endpoint descriptor): 存放裝置的最後端點 說明 IN(device to host) OUT(host to device) 報告描述元 (Report descriptor):HID 類型裝置獨有,用來 定義此裝置傳輸方式和格式。
  • 10.
    USB 進階概念 -裝置列舉 Windows 裝置列舉取得資料順序
  • 11.
    USB 進階概念 -裝置列舉 Linux 裝置列舉取得資料順序
  • 12.
    USB 進階概念 -裝置列舉 會提到兩種不同的差異 , 是因為發生讓我很 的狀況過 .
  • 13.
    Linux USB library演進 中間度過 devfs => udev 機制的轉變 Hiddev 算是 devfs 時期的產物
  • 18.
    Scott Tsai 在TOSSUG 的分享訊息 QEMU USB Device Emulation Through USB/IP https://docs.google.com/present/edit
  • 19.
    Scott Tsai 在TOSSUG 的分享訊息 2. 熟悉   Arduino / AVR 或 8051 硬體實驗的人應該會喜歡: http://traditionalchineseblog.scottt.tw/2009/02/at90usb-dull-boy.html 3. GregKH 有篇 Writing a Real, Working Linux driver http://www.kroah.com/linux/talks/ols_2005_driver_tutorial/ http://www.kroah.com/linux/talks/ols_2005_driver_tutorial_example_code.tar.g 是讓沒接觸過 Linux kernel 開發的人寫一個很簡單的 usb 溫度計 driver. 將該隻溫度計用 qemu 模擬出來的 patch: http://lists.gnu.org/archive/html/qemu-devel/2009-11/msg00505.html
  • 20.