abednego1979
驱动牛犊
驱动牛犊
  • 注册日期2004-02-17
  • 最后登录2009-03-27
  • 粉丝1
  • 关注1
  • 积分20分
  • 威望180点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1502回复:2

如何为一个市场已有的USB设备编写个性驱动?

楼主#
更多 发布于:2009-01-03 14:00
我由于特殊的应用需要,想从市场卖一块USB网卡,我不想使用该设备附带的驱动设备建立新的网络连接,而是想生成自己的一个驱动来控制网络收发包。
因为我也不清楚这个USB网卡的硬件构造,所以不能了解具体的驱动细节,我想能不能通过USBhound抓取设备的USB往来数据,然后模拟这些过程,建立自己的USB驱动来控制这个USB网卡

请有经验的大侠给点建议。谢谢
abednego1979
驱动牛犊
驱动牛犊
  • 注册日期2004-02-17
  • 最后登录2009-03-27
  • 粉丝1
  • 关注1
  • 积分20分
  • 威望180点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2009-01-08 09:24
自己回复一个吧。

购买了一个DM9601芯片的USB网卡,用BUSHound抓取了所有的USB往来包,参考了DM9601E的用户手册,对这个USB网卡的初始化和收发包进行了分析,唯一有一点问题的是对于组播的处理

由于原来在windows中要建立一个新建连接,所以上层需要的上送组播MAC是由新建连接提供的,每次组播MAC集合有变化的时候,都重新计算这些MAC的HASH,设置到DM9601的PHY中,不过既然我不想建立新增的网络连接,自然也就没有windows帮我维护组播MAC列表,所以只能暂时不支持组播了。
abednego1979
驱动牛犊
驱动牛犊
  • 注册日期2004-02-17
  • 最后登录2009-03-27
  • 粉丝1
  • 关注1
  • 积分20分
  • 威望180点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2009-01-13 12:49
都搞定了,实现起来实际很简单,在usbbulk的基础上,简单增加厂商专有的URB创建和发送即可。另外要启动一个线程,快速的通过中断传输的方式,得到DM9601的几个寄存器,通过检查状态变化确定报文收发的情况和链路状态的变化
游客

返回顶部