40楼#
发布于:2007-01-11 15:59
呵呵! 谢谢
|
|
41楼#
发布于:2007-01-14 17:15
usb host主要包括3层:
1)client驱动层(对应MS 驱动,鼠标驱动,或者键盘驱动等等); 2)usbd层主要暴露底层host控制器驱动的接口,这样驱动层可以调用这些接口来进行数据传输;同时当有usb设备插入host时,由此层来负责加载对应的上层client驱动(如鼠标驱动等); 3)host控制器驱动主要有OHCI,UHCI,EHCI等驱动(即负责host控制器相关寄存器操作等)主要按相关规范(OHCI,UHCI,EHCI)负责组织,传送和接收由client驱动层的数据.因此,如果你需要编写host控制器驱动,就仅仅只需要修改第3层;但是,如果你的系统需要支持usb打印机,而你的client层没有该驱动,那么就需要编写打印机的client端驱动,该驱动位于第一层.一般来说,第2层是不需要也没必要修改. |
|
42楼#
发布于:2007-01-19 13:34
500jun老兄,你好,看到你的帖子,感觉对usb的开发明白了不少,但是还有很多疑惑,
说出来请老兄多指点下! 我要做一个PDA,PXA270+windows CE,要使此PDA同时具有UBS Host和USB device功能,也就是说我这个PDA通过usb线与PC机相连时应该能被PC机识别并能从PC上读PDA上的数据,另外我这个PDA还要具有USB Host口,来识别插在它host 口上的设备(鼠标等).首先我不清楚的是,当我的PDA作为device来用时其驱动的开发应该是属于你说的client驱动层吧,这一层是运行在PC机上还是运行在PDA上的呢?还有,你说开发USB Host时只要动第三层,即只要写好host 控制器的驱动就可以了,是这么理解的吗?当我想从我的PDA上通过USB host口来接一个外设时,所接的外设(如USB鼠标等)需要有驱动的,这个驱动应该是运行在我PDA上的吧?我的QQ:99129637,希望能多指导下啊 |
|
43楼#
发布于:2007-01-22 14:37
借鉴一下ms的图:
USB HOST USB device +--------------+ | USB Client | | Driver | +--------------+ /|\ | USBDI Interface \|/ +--------------+ | USBD | | Driver | +--------------+ /|\ | HCD Interface \|/ +--------------+ | HCD (OHCD or| | UHCD) driver| +--------------+ /|\ | HC Interface \|/ +--------------------+ +----------------------------+ | Host controller HW | | USB Device (function) | +--------------------+ +----------------------------+ /|\ /|\ | | +------------------------------------------+ 通常我们所说的usb host,是指我们手中的设备可以接外设, 而usb device在ce中叫usb function. 具体说到你的pda.当pda作为device的时候,pc作为host,pda作为funciton,因此上图右边的部分在pda上,左边部分在pc上;反之,当pda作为host的时候,左边的程序在pda上,右边的程序在外设上! 因此楼上所说的client只是host协议栈中的一部分,跟设备扮演function功能毫无关系.而设备作为funciton设备所扮演的功能(u盘,serial或者rndis)有funtion自己的上层决定.也就是说,host的上层跟funtion上层是不同的上层 |
|
44楼#
发布于:2007-02-01 17:25
谢谢楼上,还想请教个问题:USB Host Controller的驱动是分层的,MDD和PDD层,帮助文档里说MDD层是通过ddsi来调用PDD层的,现在对两层之间的调用及协调工作情况很模糊,具体是怎么个调用方法呢,请多指点!多谢
|
|
45楼#
发布于:2007-02-07 19:48
问PDA上的驱动开发与PC上的驱动开发有什么区别?
|
|
46楼#
发布于:2007-03-01 16:28
thanks!
|
|
47楼#
发布于:2007-03-01 17:14
支持
|
|
|
上一页
下一页