mosut linux usb

20
[MOSUT] [MOSUT] USB USB 介面概念和 介面概念和 Linux USB library Linux USB library 等相關運用 等相關運用 報告者: cam11505

Upload: cam11505

Post on 28-Jun-2015

658 views

Category:

Documents


7 download

TRANSCRIPT

[MOSUT][MOSUT]USBUSB 介面概念和介面概念和

Linux USB libraryLinux USB library 等相關運用等相關運用

報告者: cam11505

前言

有 Every thing is file,file is every thing 的概念會

比較易懂

Jserv 先生的 '' 尋幽訪勝話系統 -- 以 Linux 探

索軟硬體整合設計 '' 有相關的概念敘述

如有講錯 ( 請多海涵 ) 或是很模糊的地方 , 打斷

指正小弟我 ok 的 .

大綱

介紹自己

USB 基本概念

USB 進階概念

Linux USB library 演進

個人所知運用分析方式

介紹自己介紹自己

本名:戴育凭

目前為圖書館替代役

E-MAIL : [email protected]

USBUSB 基本概念基本概念

通用串列匯流排 Universal Serial Bus ,簡

稱「 USB 」USB 版本 速率稱號 頻寬 速度

USB 3.0 超高速SuperSpeed 5Gbps

約500MB/S(5000 Mbit/s)

USB 2.0 高速Hi-Speed 480Mbps

約60MB/S(60,000KB/S)

USB 1.1 全速Full Speed 12Mbps

約1.5MB/S(1,500KB/S)

USB 1.0 低速Low Speed 1.5Mbps 187.5KB/S(19200

0Bytes/S)

USBUSB 基本概念基本概念

USB Implementers Forum , USB-IF 負責

USB 標準制訂。 http://www.usb.org/home

USB 介面使用 D+ 和 D- 的雙絞線傳輸,

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

以抵消長導線的電磁干擾。

3.0為全雙工

USBUSB 進階概念進階概念 -- 傳輸模式傳輸模式控制傳輸(Control )—一般用於短的、簡單的對設備的命令和

狀態反饋,例如用於匯流排控制的0號管道。

巨量或「批量」傳輸( Bulk)—使用餘下的頻寬大量地(但是

沒有對於延遲、連續性、頻寬和速度的保證)傳輸數據,例如普通的文件傳

輸。

中斷傳輸(Interrupt )—用於必須保證儘快反應的設備(有限

延遲),例如滑鼠、鍵盤。

等時或「同步」傳輸( Isochronous)—按照有保障的速度

(可能但不必然是儘快地)傳輸,可能有數據丟失,例如實時的音頻、視頻

USBUSB 進階概念進階概念 -- 裝置列舉裝置列舉

裝置最主要經歷,動力狀態 (Power)->預設狀態

(Default)->定址狀態 (Adress)->配置

(Configured)

PS:正統上是有 6種狀態 ,其餘兩種是 Attached-

Suspend

裝置描述元

配置描述元

介面描述元

IN 端點描述元 OUT 端點描述元

USBUSB 進階概念進階概念 -- 描述元描述元

裝置描述元 (Device descriptor): 存放裝置的一般資訊,

如 VID PID等。

配置描述元 (Configuration descriptor):描述不同組態

模式,是匯流排供電或是自己供電。

介面描述元 (Interface descriptor): 允許 USB裝置支援

多種功能的複合式裝置,就是有比較多種的介面描述元。是否是

HID型裝置也是在此確定

端點描述元 (Endpoint descriptor): 存放裝置的最後端點

說明 IN(device to host) OUT(host to device)

報告描述元 (Report descriptor):HID類型裝置獨有,用來

定義此裝置傳輸方式和格式。

USBUSB 進階概念進階概念 -- 裝置列舉裝置列舉

Windows 裝置列舉取得資料順序

USBUSB 進階概念進階概念 -- 裝置列舉裝置列舉

Linux 裝置列舉取得資料順序

USBUSB 進階概念進階概念 -- 裝置列舉裝置列舉

會提到兩種不同的差異 , 是因為發生讓我很

的狀況過 .

Linux USB libraryLinux USB library 演進演進

中間度過devfs => udev 機制的轉變

Hiddev算是 devfs時期的產物

Scott Tsai Scott Tsai 在在 TOSSUG TOSSUG 的分享訊息的分享訊息

https://docs.google.com/present/edit?id=0AfyUzRCVcjs3YWg4aHQ5amZmZmRrXzMyN2ZxdGo4M2N4

QEMU USB Device Emulation Through USB/IP

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.gz

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

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

http://lists.gnu.org/archive/html/qemu-devel/2009-11/msg00505.html

Scott Tsai Scott Tsai 在在 TOSSUG TOSSUG 的分享訊息的分享訊息

謝謝大家的參與歡迎提問(問倒不能打臉喔 XD )