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
USB
最新推荐文章于 2024-11-01 11:06:10 发布