导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→基于WinCE的无线网卡配置方法[emtronixuser]

 *第32230篇: 基于WinCE的无线网卡配置方法

  
楼 主:emtronixuser 2009年10月12日12:39
 基于WinCE的无线网卡配置方法
文章来源:

    随着网络设备的增加,网络的布线显得十分复杂,为了解决这种矛盾,无线网卡应运而生。无线网卡以其无需布线、健康安全、长距离工作等优点得到广泛应用,然而,在嵌入式领域,由于受操作系统的限制,无线网卡被嵌入式系统拒之门外。英创公司经过技术攻关,突破了这一限制,使无线网卡在嵌入式领域得到方便应用。但是,由于WinCE的硬件驱动不像在台式机机上安装硬件驱动那么方便,英创公司只提供支持特定型号——RT2870无线网卡的驱动。 

无线网卡RT2870是USB接口,如图1所示,可以直接插在英创嵌入式主板的USB接口。RT2870也有板卡式产品,可以固定在底板上。RT2870插到嵌入式主板后,灯会一直闪烁,说明RT2870工作正常。英创公司已经把无线网卡的驱动做到了内核,用户使用的时候,只需建立与AP节点的连接,就可以把嵌入式主板接入局域网。下面介绍基于英创嵌入式模块通过无线网卡接入局域网的方法。 


图1 RT2870无线网卡 

EM9000配置网卡IP地址等信息已经在《基于WinCE的无线网卡应用方案》中介绍过,本文主要介绍没有WINCE标准界面的ARM9嵌入式主板(EM9160、EM9260、EM9360等)无线网卡的配置方法。 

英创公司提供了登陆无线AP节点工具——WiFiConfig,其命令格式为: 

WiFiConfig AP节点名 密码 

下面以EM9260为例详细说明: 

把WiFiConfig.exe拷贝到Nandflash下,用telnet工具登录开发板。并运行WiFiConfig,注意,AP节点的名字要区分大小写。连接成功后,运行IPCONFIG命令,可以看到无线网卡的信息。由于无线网卡的ip地址为自动获得,所以,在局域网内,要有DHCP服务器。如果没有DHCP服务器,无线网卡的ip地址为全0,接下来的文章将介绍通过软件设置固定IP的方法,注意,无线网卡的名字为RT2870。 


图二: 使用WiFiConfig命令示例 

如果需要设置静态IP地址等信息,可以通过程序更改配置。为了方便用户使用,我们提供了NetIP.lib库,头文件定义如下。 

/////////////////////////////////////////////////////////////////////////////////////// 
// 功能描述:将IP地址字符串形式转化为DWORD值,在NETWORK_ADPT_INFO中 
//需要代//入IP地址的DWORD值。 
// 输入参数: IPAddressString: IP地址的字符串,如: _T('192.168.201.182') 
// 输出参数:IPAddressvalue: IP地址的DWORD值。 
// 返回值 = TRUE: 操作成功 
// = FALSE: 操作失败 
/////////////////////////////////////////////////////////////////////////////////////// 
BOOL StringToIPAddr(TCHAR *IPAddressString, DWORD *IPAddressvalue); 

/////////////////////////////////////////////////////////////////////////////////////// 
// 功能描述:设置本地网络适配器的相关参数,包括IP、子网掩码、网关等。 
// 输入参数:pAdptInfo: 需要设置的NETWORK_ADPT_INFO结构参数。 
// 返回值 = TRUE: 操作成功 
// = FALSE: 操作失败 
/////////////////////////////////////////////////////////////////////////////////////// 
BOOL SetNetWorkAdapterInfo(LPTSTR szAdapterName, PNETWORK_ADPT_INFO pAdptInfo ); 

根据头文件中的API函数,填充NETWORK_ADPT_INFO结构体后,调用设置函数SetNetWorkAdapterInfo就可以把无线网卡的IP地址设置为静态IP。具体示例如下: 

NETWORK_ADPT_INFO AdptInfo; 
TCHAR AdpName[30]; 
_tcscpy( AdpName, _T( 'RT28701' ) ); //无线网卡名字为RT28701 
AdptInfo.fUseDHCP=false; //不使用DHCP 
AdptInfo.szAdapterName=AdpName; //网卡名字 
StringToIPAddr( _T('192.168.201.193'), &AdptInfo.IPAddr ); //网卡IP地址 
StringToIPAddr(_T('192.168.201.19'), &AdptInfo.Gateway ); //网关 
StringToIPAddr(_T('255.255.255.0'), &AdptInfo.SubnetMask );//子网掩码 
SetNetWorkAdapterInfo( AdpName, &AdptInfo ); //设置生效 

上面示例中,只给出了代码的主要部分,更详细的代码请参考光盘源码。

[]

[]

[]

[


>>>>>>对该主题发表你的看法

本主题贴数1,分页: [第1页]


[上一篇主题]:#define GPFCON (*(volatile unsigned

[下一篇主题]:ARM9工控主板支持断点续传的应用程序FTP远程自动更新方案[原创]