WinCE系统 USB RNDIS实现

作者:ARM-WinCE

好久不写博客了,这段时间实在太忙,和美国人,印度人一起做项目,时差是个大问题,沟通也占用了很多时间,发邮件,开电话会议成了家常便饭。不管怎样,我在博客的道路上也走了快2年了,我会继续坚持写下去,在我有时间的时候。不多废话了,今天说说RNDIS。

RNDIS是指Remote NDIS,基于USB实现RNDIS实际上就是TCP/IP over USB,就是在USB设备上跑TCP/IP,让USB设备看上去像一块网卡。

同样,在WinCE中实现USB RNDIS功能,首先具备以下条件:

1. 支持USB Client并且USB驱动已经OK

2. PC上面安装Active Sync软件,该软件用于支持RNDIS驱动。

补充一下,我在这里不谈USB驱动,假设USB驱动已经存在,这里谈到的USB RNDIS的实现是指USB Client设备上面运行RNDIS。下面介绍一下具体步骤:

1. 选择USB Client RNDIS组件

在定制WinCE的时候,在Catalog Items View中选择”Device Drivers”->”USB Function”->”USB Function Clients”->”RNDIS Clients”,如图:

WinCE系统 USB RNDIS实现

2. 更改USB Client的注册表配置

具体的不想详细说明了,相信看一下就知道了,如下:

[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers]

"DefaultClientDriver"="RNDIS"

[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\RNDIS]

"UseActiveSyncIds"=dword:1

"Dll"="rndisfn.dll"

"FriendlyName"="Rndis"

"idVendor"=dword:0162

"Manufacturer"="Honeywell"

"idProduct"=dword:0001

"Product"="Honeywell RNDIS"

"bcdDevice"=dword:0

[HKEY_LOCAL_MACHINE\Comm\RndisFn1\Parms\TcpIp]

"DefaultGateway"=""

"UseZeroBroadcast"=dword:0

"IpAddress"="192.168.0.86"

"Subnetmask"="255.255.255.0"

"EnableDHCP"=dword:0

3. 重新编译WinCE

完成了上面的配置以后,重新编译WinCE,然后下载到板子上面运行。

4. 建立RNDIS连接

WinCE运行以后,用USB线将PC和板子相连接,这个时候应该可以看到在PC上面识别出新的网卡设备,同时在板子上面也会出现一个网卡设备。分别在PC上和板子上面为新的网卡设置IP地址和子网掩码,保证在同一个网段就可以。然后可以彼此ping一下,只要是通的,就应该没问题了。

这里只是介绍了大致的思路。下周去Florida工作1-2个月,如果有时间,我也要继续更新我的博客。

你可能感兴趣的:(工作,WinCE)