uhci ehci ohci及hcdxxx的区别与 usb驱动架构(USB总线分析前奏曲)


摘自:usb协议


  最近在做一个usb总线控制器的驱动,用的是一个韩国厂家的.基本上是CPU bus ->芯片->usb设备.

  因此我做的驱动类似于uhci ehci ohci的驱动.

  完全是个人理解,如果有错,可以私聊.

  uhci ehci ohci以及我做的hcdxxx都属于总线控制器的驱动,就是与cpu总线接口的usb控制器驱动.

EHCI是有Intel等几个厂商研发,兼容OHCI  UHCI 遵循USB2.0规范

OHCI主要为非PC系统上以及带有SiShe ALi芯片组的PC主板上的USB芯片

UHCI大多为Intel和Via主板上的USB控制器芯片UHCI的硬件电路比OHCI简单,成本第,但驱动复杂。但他们都是由USB1.1规格的。

架构基本上是:urb->hcd/ehci->driver->device

urb就是驱动应用层,在这一层创建urb,注册urb回调之类的工作,在这一层用来区分什么设备endpoint.

hcd/ehci这一层,就是add设备,还有操作总线寄存器,实现usb的数据IN/out->data->ACK三步曲,当然数据出错时,会有NAK,或者stall,而不是ACK.这一层不区分端点的类别,比如说bulkin的设备有四个设备,但这一层不做区分.

driver这一层,就是调用回调了,实际上这一层是不存在的,但是由于hcd/echi这一层把接口回调函数注册给下层用了,因此我添加了这一层,方便理解.

在这一层,什么中断调用,主机通过queue来下发数据,都是在这里面实现.

就写到这里吧,以后有时间把usb core分析一下.


作者:张亮校

日期:2013.1.15



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值