英创信息技术WinCE平台高速WiFi实现方法

描述

ETA6210简介

ETA6210是一款标准mini PCIe尺寸的WiFi通讯模块,模块核心芯片为NXP的iMX6UL和AP6181 WiFi芯片。ETA6210主要是与英创公司WINCE工控主板配套使用,实现高速WiFi通讯,模块支持应用程序WinSock编程。英创工控主板是通过mini PCIe上的USB接口来操作ETA6210模块的。在实际应用中,ETA6210是插在客户底板的mini PCIe插座上使用。开发评估阶段,可插在英创的ESMARC EVB评估底板的mini PCIe插座上使用,也可利用ETA303模块转换成标准USB接口使用。

ETA6210高速WiFi模块

ETA6210本身预装有完整的操作系统,在上电后自动进行WiFi连接。并同时打开2路虚拟串口COM17、COM18与WINCE工控主板进行通信:COM17用AT指令进行参数设置,模块控制等;COM18用于网络数据传输。

ETA6210网络模式与常规WiFi模块略有区别。ETA6210直接连入WiFi网络,同时作为路由器接受嵌入式主板的连接。ETA6210将WiFi网络中的数据直接传给嵌入式主板,所以对于嵌入式主板而言,与直接连入WiFi网络没有区别,只是无法直接调用API函数获得WiFi网络中的IP、掩码、网关,而是需要通过AT指令访问ETA6210获得。

连接到WiFi网络后,可以使用SOCKET编程访问网络。

安装

对英创ESMARC主板,ETA6210可直接插入到英创ESMARC 评估底板上的mini PCIe插座,就可进行操作。连接形式如下图所示:

ESMARC底板 + ESM6802 + ETA6210

对其他主板,则可以通过ETA303模块转接标准USB接口上使用。

ETA6210 + ETA303

英创工控主板将在最新内核中支持ETA6210,用户可以接上主板后直接使用。使用原内核的客户可以联系英创工程师获得ETA6210驱动安装程序。

ETA6210的AT指令简介

ETA6210具有自动管理WiFi连接功能的模块,其内部USB接口可响应WINCE 主控板的访问。在英创的产品中,将USB连接的接口映射为两个串口,一个用于发送AT指令,一个用于支持PPP拨号连接。

ETA6210支持的AT指令格式必须以AT大写作为开头,并加上’ ’作为结束符,如:“AT ”,以下为各个AT指令的响应及相应的参数说明。

指令 描述
AT 测试AT启动
AT+LINK? 查询WiFi连接状态,响应为 +LINK:UP/OFF
AT+IP? 查询WiFi的IP地址,响应为 +IP: string
AT+IP=... 设置WiFi的IP地址,参数为IP地址
AT+GW? 查询WiFi的网关地址,响应为 +GW: string
AT+GW=... 设置WiFi的网关地址,参数为地址
AT+NETMASK? 查询WiFi的子网掩码,响应为 +NETMASK: string
AT+NETMASK= 设置WiFi的子网掩码,参数为地址
AT+SSID? 查询WiFi的SSID,响应为 +SSID:string
AT+SSID=…. 设置WiFi的SSID,参数为SSID string
AT+PSK=…. 设置WiFi的密码,参数为密码 string
AT+CSQ? 查询WiFi的信号强度,响应为 +CSQ:Number
AT+CNT 启动WiFi的连接
AT+DNT 断开WiFi的连接
AT+RST 重启ETA6210模块

 

使用方法

为了方便客户的使用,英创的WINCE工控板卡在系统内部放置了两个工具程序: RASEntry.exe和wt.exe,其中RAREntry.exe用于自动创建基于ETA6210的拨号连接,wt.exe用于对于ETA6210模块进行WiFi的参数配置和基本的测试。这个两个程序的运行可以通过telnet登录连接到英创的WINCE工控板,可以在命令提示行下运行。

以下介绍在ETA6210在英创的WINCE工控板上的使用方法,这里以ESM6802作为WINCE主控板。

网络连接

1、运行RASEntry.exe建立拨号连接,该程序目前设置的缺省状态是建立ETA6210的连接。

嵌入式主板

此时在ESM6802的界面上可以看到建立成功的ETA6210连接。

嵌入式主板

RASEntry.exe一般只需要运行一次。

2、运行wt.exe配置ETA6210 WiFi参数。

wt.exe共支持9个命令,可以直接运行wt获取这个9个命令的相关帮助和说明。

嵌入式主板

配置WiFi参数可以通过 “wt -c”来实现,可通过一个文本文件来配置ETA6210 WiFi的SSID和密码,这个文本文件的格式如下:

[WIFI]

SSID="Emtronix.20"

PSK="0987654321"

这部分内容可以独立保存为一个txt文件,也可以增加到英创板卡使用的userinfo.txt文件中,这里是将以上内容保存为一个eta6210.txt的文件,并放置到ESM6802的EDISK目录下。

运行 >wt -c EDISKeta6210.txt

嵌入式主板

将WiFi的SSID和相应的密码设置成功。对于在一个确定的WiFi环境下,该命令只需执行一次即可。

WiFi参数配置成功后,可调用 “wt -l” 来检查WiFi的连接状态,如果处于link up的状态,即可进行后一步的拨号连接了。

嵌入式主板

运行 “wt -i” 、“wt -g” 可以获得WiFi模块的IP地址以及网关地址。

3、拨号连接。

拨号的方式有两种,一种为手动模式,可以用于测试;一种是通过程序来实现。

手动方式可在ESM6802的显示界面上双击ETA6210连接,即可实现WiFi模块的自动连接。

嵌入式主板

程序实现的方式根据所建立的连接名称(ETA6210),直接调用标准的拨号函数RasDial(…)即可,在wt工具程序中,我们提供了拨号功能以及相应的挂断功能。

拨号连接:“wt -d”, 拨号之前建议先检查WiFi的连接状态,WiFi处于UP状态才进行拨号操作。

嵌入式主板

挂断拨号:执行“wt -h”即可挂断当前连接。

嵌入式主板

以下为拨号连接和挂断连接的部分代码:

HRASCONN Dial( )

{

DWORD                     dwRet = 0;

RASDIALPARAMS     RasDialParams;

DWORD                     dwSize;

HRASCONN        hRasConn=0;

dwSize = sizeof(RASDIALPARAMS);

ZeroMemory(&RasDialParams, dwSize);

memset ((char *)&RasDialParams, 0, sizeof(RasDialParams));

RasDialParams.dwSize = sizeof(RasDialParams);

wcscpy(RasDialParams.szEntryName, L"ETA6210");

wcscpy(RasDialParams.szPhoneNumber, L"");

wcscpy(RasDialParams.szUserName, L""); 

wcscpy(RasDialParams.szPassword,L"");

dwRet = RasDial( NULL, NULL, &RasDialParams, NULL, NULL, &hRasConn);

if( dwRet == 0 )

{

wprintf( L"%s RasDial successful, hRasConn = 0x%08X ", RasDialParams.szEntryName, hRasConn);

SavehRasConn( hRasConn );

return hRasConn;

}

else if( hRasConn )

RasHangUp(hRasConn);

return NULL;

}

BOOL HangUpDial( )

{

HRASCONN  hRasConn=0;

hRasConn = ReadhRasConn( );

if( hRasConn )

{

wprintf( L"%s RasHangUp, hRasConn = 0x%08X ", L"ETA6210", hRasConn);

if(hRasConn)

RasHangUp(hRasConn);

DeleteFile(  _T("\hRasconn.bin") );

return TRUE;

}

else

{

wprintf( L"No Ras connection ");

return FALSE;

}

}

网络测试

ETA6210连接成功后,可以运行ipconfig来查看网络参数:

嵌入式主板

这里我们看到ETA6210 WiFi的IP地址为“192.168.1.2”,这个地址ETA6210 WiFi模块内部网络的一个固定IP,并不是真正代表了通过WiFi接入网络的IP地址,对外真正的IP是通过AT指令来获取的。在本文上面介绍中ETA6210 WiFi 连接成功后,获取到的IP地址为:192.168.201.102,网关地址为:192.168.201.20。

嵌入式主板

从上图中可以看到在ENET1、ENET2均断开的情况下,可以通过ping 网关地址来测试该网络的通讯。同时也可以反过来通过telnet登录“192.168.201.102”,显示是连入到ESM6802上的。

嵌入式主板

英创可提供了RASEntry和wt这个两个程序源代码,客户可以参考其中相关部分放入到自己的应用程序中,有需要的客户可以联系英创工程师获得。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分