关于usb ehci控制器下无法识别外接USB HUB设备的疑问?

MyDream_2011 2011-05-20 01:54:17
在这里请教各位大侠,问题如下:
小弟初学USB,最近在调试USB驱动,基本功能都OK了,但发现一个问题:
主机是采用的是OCTEON CN63XX系统处理器,MIPS架构、USB EHCI/OHCI控制器,也就是USB2.0/USB1.1的设备都兼容的。
但是奇怪的是,为什么此时接入外接USB HUB2.0设备(读取其描述符,得到信息的确是USB 2.0 hub)设备却不支持,但接入USB2.0 U盘没问题啊(说明主机EHCI控制器是正常的),就是因为外接HUB不支持,驱动自动切换到OHCI模式下,用OHCI控制器去识别USB HUB 2.0,用OHCI是可以识别。

EHCI识别失败现象描述如下:
根据USB ehci端口状态控制寄存器显示:
当用EHCI控制器去识别的时候,开始已经识别出是高速设备了,根据此寄存器位判定,此时端口使能位被置上(该位为1,就说明是高速设备),而且connect status位也被置上,说明此时确认是有设备接入了,但不知为何,过了一小段时间(大概几十毫秒,有时更短),再次读取此寄存器时,这两个位全部被置为0,此时期间没有什么软件行为。就是因为此时寄存器位被置0,导致后续构造数据包时,导致协议出错,然后驱动切换到OHCI模式下。

这个问题困扰了很久,但还是找不到原因所在,难道是这个外接USB HUB问题?但OHCI可以识别,而且设备放到PC里,也可以正常使用,PC设备管理器里显示的是HUB 2.0的设备。网上查了下,有些说是USB在进行高速握手时失败,导致高速设备转到全速状态运行,如果是这样,应该是硬件问题?跟驱动有关吗?还是说驱动哪里可以改进的?
各位大虾,帮忙下哈,给些建议,谢谢哈!
...全文
1899 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
MyDream_2011 2011-05-20
  • 打赏
  • 举报
回复
自己顶一下!

21,595

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧