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”,如图:
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个月,如果有时间,我也要继续更新我的博客。