imjacob
驱动牛犊
驱动牛犊
  • 注册日期2006-09-29
  • 最后登录2010-03-15
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望109点
  • 贡献值0点
  • 好评度88点
  • 原创分0分
  • 专家分0分
阅读:6337回复:4

开发usb host 和 usb device 的区别?

楼主#
更多 发布于:2008-04-06 14:30
之前在公司里写过两个usb devie芯片 的固件代码,现在要做usb host的代码,当然是嵌入式的。

找到一点EHCI 和OHCI的代码,和我之前写的device代码相差挺多,host和devie相差那么大吗?然后我看了一些资料协议,感觉两者的区别不时很大阿。
下面据我所理解的,然后按照usb从低到高三层上各谈一下区别。

在usb接口层上,我的感觉是host 控制器一般会集成root hub,device 肯定是不含有这个东西的。然后host控制器high speed一般兼容EHCI,full speed一般兼容OHCI。device则可以做的相对灵活。

在usb设备抽象层上,host 包含了device所有的东西,但增加了HOST 和hub两章,这个在usb2.0的白皮书上看出来。也就是说,像域,包,事务,传输这些概念都是一样的,只是host做了原来pc完成的事,成了事务的发起者。device还是做原来那些事。

在usb功能层上,比较难讲。以打印机为例。只有 usb device 的打印机只要实现printer这个设备类就可以了。但是如果是usb host的打印机,要实现把u 盘插在打印机上的功能的话,需要完成mass storage,printer,hub这些设备驱动程序。

现在按照我的理解,我觉得host 和device的区别也就是这点,各位开发过host 和devie的朋友,是不是知道还有其他区别呢?
imjacob
驱动牛犊
驱动牛犊
  • 注册日期2006-09-29
  • 最后登录2010-03-15
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望109点
  • 贡献值0点
  • 好评度88点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-04-06 20:47
没人顶,只能自己顶了
jyarmy
驱动牛犊
驱动牛犊
  • 注册日期2003-06-20
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分52分
  • 威望8点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-04-27 13:54
支持,以后还要多向LZ学习
You should know the trueth ,it makes you free!
wang397102
驱动牛犊
驱动牛犊
  • 注册日期2007-12-01
  • 最后登录2009-08-21
  • 粉丝1
  • 关注0
  • 积分302分
  • 威望51点
  • 贡献值0点
  • 好评度30点
  • 原创分0分
  • 专家分0分
地板#
发布于:2008-05-12 12:47
呵呵,还要多查写资料
Silitex
驱动中牛
驱动中牛
  • 注册日期2008-08-01
  • 最后登录2014-11-06
  • 粉丝6
  • 关注0
  • 积分317分
  • 威望770点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2008-08-01 14:50
呵呵,你对USB的协议还没有吃透,Host比Device复杂不少!因为Device是被动的。
游客

返回顶部