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