阅读:6337回复:4
开发usb host 和 usb device 的区别?
之前在公司里写过两个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的朋友,是不是知道还有其他区别呢? |
|
沙发#
发布于:2008-04-06 20:47
没人顶,只能自己顶了
|
|
板凳#
发布于:2008-04-27 13:54
支持,以后还要多向LZ学习
|
|
|
地板#
发布于:2008-05-12 12:47
呵呵,还要多查写资料
|
|
地下室#
发布于:2008-08-01 14:50
呵呵,你对USB的协议还没有吃透,Host比Device复杂不少!因为Device是被动的。
|
|