阅读:1502回复:2
如何为一个市场已有的USB设备编写个性驱动?
我由于特殊的应用需要,想从市场卖一块USB网卡,我不想使用该设备附带的驱动设备建立新的网络连接,而是想生成自己的一个驱动来控制网络收发包。
因为我也不清楚这个USB网卡的硬件构造,所以不能了解具体的驱动细节,我想能不能通过USBhound抓取设备的USB往来数据,然后模拟这些过程,建立自己的USB驱动来控制这个USB网卡 请有经验的大侠给点建议。谢谢 |
|
沙发#
发布于:2009-01-08 09:24
自己回复一个吧。
购买了一个DM9601芯片的USB网卡,用BUSHound抓取了所有的USB往来包,参考了DM9601E的用户手册,对这个USB网卡的初始化和收发包进行了分析,唯一有一点问题的是对于组播的处理 由于原来在windows中要建立一个新建连接,所以上层需要的上送组播MAC是由新建连接提供的,每次组播MAC集合有变化的时候,都重新计算这些MAC的HASH,设置到DM9601的PHY中,不过既然我不想建立新增的网络连接,自然也就没有windows帮我维护组播MAC列表,所以只能暂时不支持组播了。 |
|
板凳#
发布于:2009-01-13 12:49
都搞定了,实现起来实际很简单,在usbbulk的基础上,简单增加厂商专有的URB创建和发送即可。另外要启动一个线程,快速的通过中断传输的方式,得到DM9601的几个寄存器,通过检查状态变化确定报文收发的情况和链路状态的变化
|
|