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这个两个程序源代码,客户可以参考其中相关部分放入到自己的应用程序中,有需要的客户可以联系英创工程师获得。
成都英创信息技术有限公司
http://www.emtronix.com
原文链接
http://www.emtronix.com/article/article20181114.html