阅读:1022回复:6
新手求救,请帮帮忙啊
我是驱动&USB的双重新手 :P前几天导师让我为一个嵌入式操作系统(类似VxWorks)写一个StrongArm(sa1110/sa1111)板子上的USB系统软件(OHCD+USBD),使这个系统能够支持U盘。没办法,只好硬着头皮解了下来。
看了几天文档,对USB有了个大概的认识,可觉得总和实际联系不上 ,越来越晕:( 有个问题: 如果我的目的只是要支持U盘,请问OHCD和USBD中需要实现什么接口,有那些接口不需要实现? 我连USB驱动都没开发过,请各位高手指点我如何着手做这项工作 万分感谢 |
|
沙发#
发布于:2003-07-25 12:53
自己顶自己,高手们随便说说想法也好啊 :(
|
|
板凳#
发布于:2003-07-25 13:50
前几天写了一次,结果没贴上,写的东西都没了,一气之下偶就没有再写,今天想了想还是写一点吧 :D
其实这里做得最多的是设备方和上层应用程序,也有设备驱动,做usb低层驱动的人比较少。 据我所知: usb软硬件之间的分层关系是:应用程序―>设备驱动―>usbd―>hcd―>hc,设备驱动于usbd间的接口就是urb,设备驱动把一个个的请求封装成相应的urb然后传递给usbd,usbd负责对这些urb进行解释并执行部分操作,还有一部分需要通过hcd以及hc才能获得,如从设备方获得数据(前面两句是我自己的理解),而hcd也就是主机控制器驱动就要与硬件打交道了,这个偶也不大懂 偶所知道的就这么多,还望批评指正! |
|
地板#
发布于:2003-08-01 13:00
谢谢,我现在正在看LINUX的HC驱动,希望能从中得到一些启事
你说的urb是不是指spec中说得IRP? 我知道windows和linux都是使用URB在device driver和USBD间进行通讯,请问URB是标准的一部分么? |
|
地下室#
发布于:2003-08-01 13:28
我们的arm+usb已经完毕了
USB系统有三个主要组成部份: •主机控制器驱动(Host Controller Driver) •USB驱动 (USB Driver) •主机软件 (host software) 主机控制器驱动的存在,方便地将各种不同的主机控制器实现映射到USB系统,客户可以不必知道设备到底接在哪个主机控制器上就能同设备进行通信。USB驱动提供了基本的面向客户的主机界面。在HCD与USB之间的接口称为主机控制器驱动接口(Host Controller Driver Interface HCDI)。这层接口不能被客户直接访问,所以也不是由USB具体来完成的。一个典型的HCDI是由支撑各种不同主机控制器的操作系统来定义的 |
|
|
5楼#
发布于:2003-08-01 13:29
USB设备可被划分三层:
•底层是传送和接收数据包的总线接口 •中间层处理总线接口与不同端点之间的数据路由端节点是数据的终结提供处或使用处,它可被看作数据源或数据接收端(Sink) •最上层的功能由串行总线设备提供,比如鼠标,或ISDN接口 |
|
|
6楼#
发布于:2003-08-01 13:32
一个USB系统主要被定义为三个部分:
•USB的互连; •USB的设备; •USB的主机。 USB的互连是指USB设备与主机之间进行连接和通信的操作,主要包括以下几方面: •总线的拓扑结构:USB设备与主机之间的各种连接方式; •内部层次关系:根据性能叠置,USB的任务被分配到系统的每一个层次; •数据流模式:描述了数据在系统中通过USB从产生方到使用方的流动方式; •USB的调度:USB提供了一个共享的连接。对可以使用的连接进行了调度以支持同步数据传输,并且避免的优先级判别的开销。 |
|
|