请教 usb function client driver

wangtou   2010-2-25 09:05 楼主
1. WinCE上的ActiveSync使用的是哪一个function client driver? webcast上一篇课程说使用的是RNDIS,但是我的开发板上注册表HKLM/drivers/usb/functiondrivers/DefaultClientDriver的值为serial_class。一旦该值改变,则activesync不可使用。这是否说明activesync使用了serial_class?

2. activesync在wince上是否还有另外一个服务程序(exe/dll),因为我发现那几个usb function client driver(RNDIS/serial/storage/ufnprn)内并无同步内容?

3. 我要把开发板上的摄像头采集到的数据通过usb上传到pc(数据率大约20Mb/s),并接收pc通过usb下传的指令,能否利用现成的serialusbfn.dll这个驱动来传输?

谢谢。

回复评论 (14)

学习,帮顶

~~~~~~~~~~~~~~~~~~~
点赞  2010-2-25 09:08
应该就是serial_class了。
帮顶。
点赞  2010-2-25 09:12
1.WinCE上的同步应该用的是Serial_Class。

2.PB的组件中有ActiveSync,定制系统时可以添加进来的。

3.20Mb/s的数据量可能有些大,在ARM11的平台上采用ActiveSync传输都有些困难。
点赞  2010-2-25 09:14
引用: 引用 3 楼 sunrain_hjb 的回复:
1.WinCE上的同步应该用的是Serial_Class。

2.PB的组件中有ActiveSync,定制系统时可以添加进来的。

3.20Mb/s的数据量可能有些大,在ARM11的平台上采用ActiveSync传输都有些困难。


谢谢,如果我不用ActiveSync提供的函数接口,把ActiveSync禁用了,而直接使用Serial_Class驱动(serialusbfn.dll)的COM_IoControl()来传输数据呢?速度会够吗? 我是ARM11 + WinCE6.0
点赞  2010-2-25 09:26
ActiveSync使用的是Serial Class.
这么高的速度Serial的应该是不行,在向CE设备复制文件的时候发现使用Mass Storage要比Serial快很多,EBOOT通过USB下载NK到CE设备也比较快,可以使用类似的协议。
点赞  2010-2-25 10:37
引用: 引用 5 楼 veabol 的回复:
ActiveSync使用的是Serial Class.
这么高的速度Serial的应该是不行,在向CE设备复制文件的时候发现使用Mass Storage要比Serial快很多,EBOOT通过USB下载NK到CE设备也比较快,可以使用类似的协议。


谢谢。我打算仿照serial_class驱动自己写一个,可是在分析这个驱动的结构的时候发现很费解:

PUBLIC\COMMON\OAK\DRIVERS\USBFN\CLASS\SERIAL下仅有 usbfndrv.cpp 和 usbfndrv.h 两个代码文件,而sources文件有如下内容
TARGETDEFNAME=SerialUSBFn
TARGETNAME=$(TARGETDEFNAME)_lib
TARGETTYPE=LIBRARY
SOURCES= \
        USBFnDrv.cpp \
那就是说这个cpp文件会被编译成一个名为SerialUSBFn_lib.lib的文件,而不是serialusbfn.dll


另外,在serialusbfn.def中有 COM_Init COM_Deinit COM_Open COM_Close COM_IOControl等内容,用dependencies查看serialusbfn.dll也确有这些接口。但USBFnDrv.cpp和usbfndrv.h中却并未包含这些接口,这是怎么回事?

难道这个驱动在其它地方还有源代码?


顺便搭车问一个弱智问题,windows搜索时怎么搜索不带后缀名的文件?因为我想在所有的sources文件中搜索serialusbfn关键字,发现搜不出来。
点赞  2010-2-25 10:56
COM_Init之类是在MDD层暴露的.
点赞  2010-2-25 11:36
引用: 引用 6 楼 oncancel 的回复:
引用 5 楼 veabol 的回复:
ActiveSync使用的是Serial Class.
这么高的速度Serial的应该是不行,在向CE设备复制文件的时候发现使用Mass Storage要比Serial快很多,EBOOT通过USB下载NK到CE设备也比较快,可以使用类似的协议。

谢谢。我打算仿照serial_class驱动自己写一个,可是在分析这个驱动的结构的时候发现很费解:

PUBLIC\COMMON\OAK\DRIVERS\USBFN\CLASS\SERIAL下仅有 usbfndrv.cpp 和 usbfndrv.h 两个代码文件,而sources文件有如下内容
TARGETDEFNAME=SerialUSBFn
TARGETNAME=$(TARGETDEFNAME)_lib
TARGETTYPE=LIBRARY
SOURCES= \
        USBFnDrv.cpp \
那就是说这个cpp文件会被编译成一个名为SerialUSBFn_lib.lib的文件,而不是serialusbfn.dll


另外,在serialusbfn.def中有 COM_Init COM_Deinit COM_Open COM_Close COM_IOControl等内容,用dependencies查看serialusbfn.dll也确有这些接口。但USBFnDrv.cpp和usbfndrv.h中却并未包含这些接口,这是怎么回事?

难道这个驱动在其它地方还有源代码?


顺便搭车问一个弱智问题,windows搜索时怎么搜索不带后缀名的文件?因为我想在所有的sources文件中搜索serialusbfn关键字,发现搜不出来。

这里的lib文件是PDD层的代码.
点赞  2010-2-25 11:38
mark............
点赞  2010-2-25 13:51
Ding

mark............
点赞  2010-2-25 17:59
引用: 引用 7 楼 flandy1982 的回复:
COM_Init之类是在MDD层暴露的.


我用 google桌面搜索,没有在任何一个sources文件内发现serialusbfn字段,那这个serialusbfn.dll究竟是怎么编译出来的? 这个MDD在哪个文件夹?谢谢。
点赞  2010-3-1 08:54
WinCE6.0下的目录为C:\WINCE600\PUBLIC\COMMON\OAK\DRIVERS\USBFN\CONTROLLER\MDD。
点赞  2010-3-1 17:07
谢谢各位的帮助,我仿照usbprn驱动重新写了一个,已经可以工作了。
点赞  2010-3-4 17:06
请教如何仿照usbprn写一个自己的驱动,楼主能共享下代码么
最近正在弄wince下usb的文件传输
点赞  2015-1-20 21:14
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复