论文部分内容阅读
近些年来,市场上各种各样的USB设备层出不穷,与此同时,越来越多的用户想让访问远程主机上的USB设备变得像访问本机上的USB设备一样方便,不同主机之间USB设备能够实现无缝共享,由于USB设备类别繁多,而实现USB设备的共享并不像Windows的文件共享那么简单。目前市场上有一些能够实现USB设备共享的方案,比如USB anywhere,USB over Network等等,这些产品都能够实现不同主机之间USB设备的共享,但它们要么需要使用者购买硬件,要么只支持Windows操作系统,而在Linux操作系统下实现USB设备共享的方案并不多,本论文提出一种在Linux下实现USB设备的新方案,而且不需要增加额外的硬件成本。本论文研究和分析了Linux下USB驱动的原理和实现,提出一种USB over IP方法,在驱动层将USB请求封装成IP包传送,在驱动底层实现远端USB设备到本地的透明映射,不局限于特定的设备类别,这样完成和实现了局域网内Linux主机之间的任意USB设备相互共享,并且不需要对原有USB系统结构有任何的改变,无需增加硬件成本,只需安装一个驱动,力求让访问远程主机的USB设备像访问本机上的USB设备一样简单方便,据本人测试,在100M网卡的局域网内传输速度可达到700Kbyte/s以上,基本满足普通需求。本论文的具体工作有:<1>Linux驱动结构与原理的详细分析,结合Linux内核代码具体分析了设备驱动原理,Linux驱动模型,以及sysfs文件系统。<2>Linux系统下的USB驱动结构分析,包括Linux USB主机端驱动和设备端驱动,着重分析USB主机端驱动。<3>USB over IP的实现原理和具体实现方法,由于操作的不管是USB存贮设备还是USB摄像头,其USB命令在驱动层都会被封装成USB请求包(URB),这样我在驱动层将USB请求包(URB)封装成IP包在以太网上传送,实现远端URB到本地的透明映射,实现设备的相互共享。另外还对特定问题,如热插拔,驱动绑定等,进行了详细的分析并提出自己的解决方法。该系统可推广应用于局域网内的Linux服务器,工作站,个人电脑等,方便USB设备使用,提高工作效率。