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

Mosut linux usb

Jun 28, 2015

Download

Documents

cam11505
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Mosut linux usb

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

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

報告者: cam11505

Page 2: Mosut linux usb

前言

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

比較易懂

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

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

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

指正小弟我 ok 的 .

Page 3: Mosut linux usb

大綱

介紹自己

USB 基本概念

USB 進階概念

Linux USB library 演進

個人所知運用分析方式

Page 4: Mosut linux usb

介紹自己介紹自己

本名:戴育凭

目前為圖書館替代役

E-MAIL : [email protected]

Page 5: Mosut linux usb

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)

Page 6: Mosut linux usb

USBUSB 基本概念基本概念

USB Implementers Forum , USB-IF 負責

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

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

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

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

3.0為全雙工

Page 7: Mosut linux usb

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

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

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

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

輸。

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

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

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

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

Page 8: Mosut linux usb

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

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

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

(Configured)

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

Suspend

裝置描述元

配置描述元

介面描述元

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

Page 9: Mosut linux usb

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

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

如 VID PID等。

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

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

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

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

HID型裝置也是在此確定

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

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

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

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

Page 10: Mosut linux usb

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

Windows 裝置列舉取得資料順序

Page 11: Mosut linux usb

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

Linux 裝置列舉取得資料順序

Page 12: Mosut linux usb

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

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

的狀況過 .

Page 13: Mosut linux usb

Linux USB libraryLinux USB library 演進演進

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

Hiddev算是 devfs時期的產物

Page 14: Mosut linux usb
Page 15: Mosut linux usb
Page 16: Mosut linux usb
Page 17: Mosut linux usb
Page 18: Mosut linux usb

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

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

QEMU USB Device Emulation Through USB/IP

Page 19: Mosut linux usb

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 的分享訊息的分享訊息

Page 20: Mosut linux usb

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