USB

USB是主從結構的
所有的USB傳輸,都是從USB主機這方發起,USB設備沒有“主動”通知USB主機的能力。
例子:USB鼠標滑動一下立刻產生數據,但是它沒有能力通知PC機來讀數據,只能被動地等侍PC機來讀。


USB的傳輸類型:
1.控制傳輸:可靠,時間有保證,比如:USB設備的識別過程
2.批量傳輸:可靠,時間沒有保證,比如:U盤
3.中斷傳輸:可靠,實時,比如:USB鼠標
4.實時傳輸:不可靠,實時,比如:USB攝像頭


USB傳輸的對象:端點(endpoint)
1.我們說“讀U盤”、“寫U盤”,可以細化爲:把數據寫到U盤的端點1,從U盤的端點2裏讀出數據
2除了端點0外,每一個端點只支持一個方向的數據傳輸
3.端點0用於控制傳輸,既能輸出也能輸入


每一個端點只有一個傳輸類型,一個傳輸方向


術語裏,程序裏說的輸入(IN)、輸出(OUT) 都是基於USB主機的立場說的。
    比如鼠標的數據是從鼠標傳到PC機,對應的端點稱爲“輸入端點”

-------------------------------------------------------------------------------------------
USB 內核配置
cd /work/system/linux-2.6.22.6/
make menuconfig
進入內核菜單:
Device driver
HID Device
<>USB HUman Interface Device (full HID) support    (按N去除)

-----------------------------------------
make uImage


cp arch/arm/boot/uImage  /work/nfs_root/uImage_nohid


-------------------------------------------


重啓開發板, 進入串口
按空進入uboot菜單
按q 退出
通過網絡下載內核:nfs   30000000 192.168.1.19:/work/nfs_root/uImage_nohid
啓動內核:bootm 30000000                 (如果開發板ip不對,設置IP,       set addrip 192.168.1.17               處於同一個網段)


掛接網絡文件系統: mount    -t    nfs    -o    nolock,vers=2       192.168.1.19:/work/nfs_root/first_fs            /mnt
cd /mnt
ls           (列出網絡文件下的驅動文件)
裝載驅動:insmod usbmouse_as_key.ko


---------------------------------------------


在開發板上接入鼠標


測試:
ls /dev/event*


----------------------
cat /dev/tty1

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章