USRC322wifi模块软件设计手册.docx
《USRC322wifi模块软件设计手册.docx》由会员分享,可在线阅读,更多相关《USRC322wifi模块软件设计手册.docx(69页珍藏版)》请在冰豆网上搜索。
USRC322wifi模块软件设计手册
USR-C322wifi模块--软件设计手册V2.4
1.产品概述
1.1.产品简介
USR-C322是有人WiFi模块C32系列的一款高性能模块。
该模块是为实现嵌入式系统的无线网络通讯的应用而设计的一款低功耗802.11b/g/n模块。
通过该模块,客户可以将物理设备连接到WiFi网络上,从而实现物联网的控制与管理。
该模块硬件上集成了MAC、基频芯片、射频收发单元、以及功率放大器;采用TI公司的CC3200芯片方案,内核为工业级ARMCortex-M4内核,运行频率达80MHz;内置超低功耗运行机制,可以有效实现模块的低功耗运行;支持WiFi协议以及TCP/IP协议,用户仅需简单配置,即可实现UART设备的联网功能。
尺寸较小,易于焊装在客户产品的硬件单板电路上。
且模块可选择内置或外置天线的应用,方便客户多重选择。
模块的具体尺寸为:
18.22*26.65*2.80mmSMT封装
模块的基本功能描述如下:
●可工作在AP模式等待其他WiFi设备接入通信,也可工作在STA模式下,接入无线路由器实现通信。
●具有Socket通信链接,支持TCP/UDP透传、HTTPD、WEBSocket、SSLClient通信,TCP/UDP透传模式下可以设置为TCPServer、TCPClient、UDPServer、UDPClient通信。
●模块支持UART透传,可使用AT命令任意切换。
有人物联网技术有限公司推出客户支持中心(),客户在模块使用过程中,遇到技术问题可以在支持中心提交问题工单,我们会对您的问题给予及时解答。
1.2.产品特点
•支持WiFi@2.4GHz802.11b/g/n无线标准
•基于ARMCortex-M4内核运行频率80MHz
•支持WEP、WPA/WPA2安全模式
•支持AP/STA工作模式
•支持Simplelink/usrlink快速联网配置
•支持网页自定义功能
•完全集成的串口转无线TCP/UDP传输功能,串口速率高达3Mbit/s
•可以实现双串口三Socket通信
•支持PC116字节密钥透传加密
•支持HTTPDClient功能
•支持网页转串口功能
•支持SSLClient通信
•局域网搜索和无线参数设置功能
•支持TCP/UDPClient注册包机制,支持用户自定义注册包
•支持类RFC2217自动波特率适配功能
•支持485收发控制
•支持有人透传云功能
•支持简单AT+指令集配置
•3.3V单电源供电
•超低功耗模式,支持深度休眠
•可选择内置天线,外置天线(IPEX连接器)
•超小尺寸:
18.22*26.65*2.80mmSMT封装
•CE/FCC认证,符合RoHS标准
1.3.模块基本参数
表1模块技术参数
分类
参数
取值
无线参数
标准认证
FCC/CE/ROHS
无线标准
802.11b/g/n
发射功率
17.0dBm@1DSSS
17.25dBm@11CCK
13.5dBm@54OFDM
接收灵敏度
–94.7dBm@1DSSS
–87.0dBm@11CCK
–73.0dBm@54OFDM
天线
外置:
I-PEX连接器
内置:
板载天线
硬件参数
数据接口
UART
工作电压
3.0V~3.6V
工作电流
(以下均为3.3V下)
持续发送:
~75mA
正常模式(sta):
平均:
~18mA,峰值:
200mA
在网最低(sta,低功耗模式3):
3.5mA
待机(低功耗模式4):
最低25uA
工作温度
-40℃-85℃
存储温度
-40℃-125℃
尺寸
18.22*26.65*2.80mm
外部接口
SMT表贴
软件参数
无线网络类型
AP/STA
安全机制
WEP/WPA-PSK/WPA2-PSK
加密类型
TKIP,AES,TKIP/AES
网络协议
IPv4,TCP/UDP
用户配置
AT+指令集
Web页面
1.4.硬件描述
下图是USR-C322的引脚对应图:
图1USR-C322引脚图
详细的引脚定义说明请参照本模块的《硬件设计手册》。
2.
产品功能
本章介绍一下USR-C322所具有的功能,下图是模块的功能的整体框图,可以帮助您对产品有一个总体的认识。
2.1.无线组网方式
无线模块有两种WiFi工作模式:
STA、AP,可以为用户提供十分灵活的组网方式和网络拓扑方法。
<名词说明>
AP:
即无线接入点,是一个无线网络的中心节点。
通常使用的无线路由器就是一个AP,其它无线终端可以通过AP相互连接。
STA:
即无线站点,是一个无线网络的终端。
如笔记本电脑、PDA等。
2.1.1.模块作为STA方式
模块作为STA是一种最常用的组网方式,由一个路由器AP和许多STA组成,如下图。
其特点是AP处于中心地位,STA之间的相互通信都通过AP转发完成。
图2STA方式组网
2.1.2.模块作为AP方式
模块作为AP模式,可以达到手机/PAD/电脑在无需任何配置的情况下,快速接入模块进行数据传递。
另外,还可以登陆模块的内置网页进行参数设置。
图3AP模式组网
<注意>:
模块在AP模式下,最多只能支持接入1个STA设备。
2.1.3.加密方式
加密是对消息数据加扰,保证数据的安全传输,增加通信的安全性。
支持多种无线网络加密方式,包括:
ØWEP
ØWPA-PSK/TKIP
ØWPA-PSK/AES
ØWPA2-PSK/TKIP
ØWPA2-PSK/AES
2.2.工作模式
模块共有二种工作模式:
Socket通信模式、命令模式。
•Socket通信模式
在该模式下,模块实现UART与网络之间的数据传输,可以设置模块工作在透传、HttpdClient,Websocket、SSLClient通信模式,实现通用串口设备与网络设备之间的数据传递。
•命令模式
在该模式下,用户可通过AT命令对模块进行UART及网络参数查询与设置。
当使用AT+ENTM退出命令模式时,默认回到Socket通信模式。
2.2.1.Socket通信模式
USR-C322模块集成了多种通信模式包括:
TCP/UDP透传模式、HttpdClient模式,SSLClient模式,WEBSocket模式。
2.2.2.UART成帧机制:
模块在接收UART过来的数据时,会不断的检查相邻2个字节的间隔时间。
如果间隔时间大于设定的打包时间(默认20ms,可通过AT+UARTTE设置),则认为一帧结束,否则一直接收数据,在命令模式下大于1K字节则丢弃接收的数据,在透传模式下大于1K字节则打包发送。
打包流程如下图:
n即为打包间隔,单位ms。
图4成帧机制
2.2.3.命令模式
在命令模式下,模块不再进行透传工作,此时UART口用于接收AT命令,用户可以通过UART口发送AT命令给模块,用于查询和设置模块的UART、网络等相关参数。
只要有一个UART口进入AT命令模式,则另外一个UART口也处于AT命令模式下。
2.3.Socket通信
3.3.1UART0Socket通信
模块串口0对应有Socket透传、HttpdClient、Websocket通信。
1)透传模式
串口0在透传模式下对应有两个Socket连接,向模块UART接口写入的数据,模块会自动向Socket发送。
模块通过Socket接收的数据,都通过UART接口发送出来。
SockA可以选择为:
◆TCPServer
◆TCPClient
◆UDPServer
◆UDPClient
SockB可以选择为
◆TCPClient
◆UDPServer
◆UDPClient
设定方法请参照AT指令中的AT+SOCKA指令进行设置或者通过网页设置。
SockATCPServer模式下可支持最多达到3个TCPClient的TCP链路连接,当接入了3个Client,第4个Client接入时会自动断开第1个Client连接。
在多TCP链路连接方式下,从TCP传输的数据会被逐个转发到UART接口上。
从UART接口上过来的数据会被复制成多份,在每个TCP链接转发一份。
具体数据流程图所示:
当Socket设置成UDPServer时,如果串口先收到数据,模块会将数据发送到已设置的IP、端口(AT+SOCKA设置),如果UDPServer收到数据,模块会记住数据的发送源地址,以后串口收到数据后,模块会向该地址转发数据。
在UDPClient模式下,模块只向已设置的IP、端口发送数据,并且只接收已设定IP、端口地址的数据(AT+SOCKA设置),其他地址发送来得数据不转发到UART口。
可以添加注册包数据,注册包有MAC、ID、用户自定义(32字节),在TCPClient模式下注册包可以设置为连接时第一次发送或者在每个数据包前添加,在UDPClient模式下注册包数据会在每包数据前添加。
在透传模式下可以开启PC1加密功能。
模块串口接收到数据后对数据进行PC1加密,然后上传到Socket端,Socket端接收到数据后,模块对数据进行PC1解密,然后将数据透传到串口。
开启PC1加密功能会增大网络数据延迟时间,为减少数据传输错误,请增大发送数据包之间的时间间隔。
PC1加密算法请参考“USR-C322透传PC1加密使用说明”。
下载地址:
2)HttpdClient模式
HttpdClient模式是将串口数据包打包成http协议数据包,支持POST,GET模式,UART0、UART1都支持该模式,具体打包如下:
POST模式:
POST“用户设置的url”HTTP/1.1
Connection:
close
User_Agent:
Mozilla/4.0
Content-Length:
“用户串口数据包长度”
“用户自定义数据包头(htp_head)”
Host:
“用户设置的服务器地址”:
“用户设置的服务器端口”
“用户串口接收的数据包”
GET模式:
GET“用户串口数据包”HTTP/1.1
Connection:
close
User_Agent:
Mozilla/4.0
“用户自定义数据包头(htp_head)”
Host:
“用户设置的服务器地址”:
“用户设置的服务器端口”
相关AT指令设置:
Ø用户POST/GET模式设置:
AT+HTPTP
Ø用户设置的url:
AT+HTPURL
Ø用户自定义数据包头(htp_head):
AT+HTPHEAD
Ø用户设置的服务器地址、端口:
AT+HTPSV
3)WEBSocket通信
支持websocket透传,模块作为webserver,端口8000。
只支持WebsocketASCII码透传。
最多支持4个client连接,当连接数超过4个后,模块自动关闭最先建立的socket连接。
网页源码是公开的,用户可以自己修改网页实现自己的特殊网页需要,升级自定义网页请参考网页自定义功能描述。
只有UART0支持此模式。
注:
WEBSocket使用方法请参考官网资料“USR-C322WEBSocket通信说明V1.0”。
下载地址:
3.3.2UART1Socket通信
模块串口1对应有Socket透传、HttpdClient、SSLClient通信。
1)透传模式
UART1透传模式支持TCPClient、UDPServer、UDPClient。
使用方式同UART0。
2)HttpdClient模式
方式同UART0。
3)SSLClient通信
SSLSocket通信是对SOCKET通信的拓展,支持TCPClient模式。
在socket通信的基础上添加了一层安全性保护,提供了更高的安全性,包括身份验证、数据加密以及完整性验证。
其中身份验证用于数字证书的发放和应用。
数据加密可以防止消息传递过程中被别人监听而造成的损失,即使第三方监听到传递的消息,但是由于没有正确的密钥,其仍然无法得到正确的消息。
完整性验证以防止消息在传递过程中被别人修改。
加密类型支持:
◆SSLV3
◆TLSV1
◆TLSV1_1
◆TLSV1_2
◆SSLv3_TLSV1_2
◆DLSV1
加密算法支持:
◆SSL_RSA_WITH_RC4_128_SHA
◆SSL_RSA_WITH_RC4_128_MD5
◆TLS_RSA_WITH_AES_256_CBC_SHA
◆TLS_DHE_RSA_WITH_AES_256_CBC_SHA
◆TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
◆TLS_ECDHE_RSA_WITH_RC4_128_SHA
◆SECURE_DEFAULT
支持加密证书设置。
只有UART1支持此模式。
SSL使用方法请参考官网资料“USR-C322高级功能说明及工具”。
2.4.局域网内搜索
模块支持局域网内搜索功能,即当模块接入无线路由器,用户可以通过往某一固定端口发送UDP广播的方式,获取模块当前的IP地址,以实现设备搜索和通信。
搜索的端口和关键字可通过AT+SEARCH命令来设置,默认:
48899,。
搜索工具操作过程:
1.在局域网内的另外一台设备上,通过UDP广播(广播地址:
xx.xx.xx.255,端口:
48899)发送一个口令,默认口令为:
"",最长可设置20字节。
2.模块收到口令后,如果口令正确,模块进入配置模式,向该地址(单播,源端口)发送本地IP地址、MAC地址、模块名称、版本号。
(IP,MAC,MID,ver如192.168.1.1,D8B04CFC0000,USR-C322,1.1.10)。
模块进入配置模式后如果30秒内没有收到设置命令,模块会退出配置模式,用户需要重新发送搜索命令字,进入配置模式。
3.用户可以通过向该端口发送网络AT命令进行设置和读取模块工作状态,AT指令格式同串口AT指令。
注:
搜索工具与模块必须在同一个局域网内,如果多个STA连在一个路由器上,运行搜索工具的电脑也连在那个路由器上。
这个搜索工具就可以把所有的STA都搜到。
2.5.自定义网页功能
USR-C322模块支持用户自定义网页功能。
用户可以修改网页内容添加用户logo,或者添加自己的网页。
具体实现方法请参考“USR-C322自定义网页功能说明”。
资料下载地址:
2.6.TCP/UDPClient注册包机制
当模块工作在TCPClient或者UDPClient模式时,用户可以开启注册包机制,以实现服务器对数据来源的区分,实现对不同设备的数据监控。
注册包分为MAC、ID、USR(用户自定义)、CLOUD(透传云功能)四种,MAC为6字节,ID为0-65535,ID值可设(AT+REGID),用户自定义注册包最长32字符(AT+REGUSR),CLOUD透传云功能需要设置用户名和密码(AT+REGCLOUD)。
注册包ID主要用于本公司的D2D软件,D2D软件使用说明书下载地址:
注册包开启与关闭通过AT+REGENA来实现。
注册包实现机制如下:
•TCPClient:
注册包有三种机制:
1只发送一次注册包,当模块连接到TCPServer时,模块将向TCPServer发送MAC(6个字节)或ID(4字节)信息或用户自定义注册包,Server可通过MAC、ID、自定义注册包来区分不同的设备。
2每一包数据都有注册信息,TCPClient链接到服务器后,串口接收的每一包数据前增加MAC、ID或自定义注册包,来区分设备。
ID、MAC、自定义注册包的选择,可通过AT+REGENA来设置。
3在透传云功能下,注册包发送次数无需设置。
UDPClient:
模块在发送每个UDP数据包时,会在每个数据包的包头增加MAC、ID、自定义注册包信息,然后发送。
串口0与串口1在透传模式下,有2套不同的注册包参数。
相关的at指令设置:
AT+REGENA=ID/MAC/USR/CLOUD/OFF,设置注册包方式;
AT+REGID=1-65535,设置注册包ID值;
AT+REGUSR=用户自定义,设置用户自定义注册包,最长32字节;
AT+REGCLOUD=name,password,设置有人透传云用户名与密码;
2.7.快速联网协议(usrlink)
模块工作在AP模式下时,会开启一个用于接收快速联网协议命令的UDP端口,端口号为48899(与局域网搜索端口相同,可设置)。
手机可与模块WiFi网络直连,通过UDP协议下的指令,查询SSID信息列表和设置路由器SSID及密码。
设置完成后,模块会自动重启,连接至设定的路由器,此时工作在STA模式。
协议格式说明:
查询指令
序号
名称
字节数
说明
1
包头
1
固定值0xFF
2
长度
2
长度之后(不包括长度),校验字之前(不包括校验字)的所有字节数。
3
命令字
1
命令类型,0x01为查询指令
4
校验字
1
包头之后(不包括包头),校验字之前(不包括校验字)的所有字节的累加和。
查询回复指令
序号
名称
字节数
说明
1
包头
1
固定值0xFF
2
长度
2
长度之后(不包括长度),校验字之前(不包括校验字)的所有字节数。
3
命令字
1
命令类型,查询指令对应的回复指令为0x81
4
AP个数
1
当前搜索到的AP的个数
5
SSID1
不定长
路由器1的SSID。
6
结束符
1
路由器1的SSID结束符,固定值0x00。
7
信号强度1
1
路由器1网络的信号强度,范围0~100,对应的实际值为0%~100%。
8
结束符
2
信号强度1的结束符,0x0D,0x0A。
…
…
…
………
M
SSIDn
不定长
路由器n的SSID。
M+1
结束符
1
路由器n的SSID结束符,固定值0x00
M+2
信号强度n
1
路由器n网络的信号强度,范围0~100,对应的实际值为0%~100%。
M+3
结束符
2
信号强度n的结束符,0x0D,0x0A。
M+4
校验字
1
包头之后(不包括包头),校验字之前(不包括校验字)的所有字节的累加和。
例子:
手机发送给模块(十六进制数):
FF00010102
模块返回给手机(十六进制数):
FF00148102544553543100400D0A
544553543200370D0A1F
解释:
手机向模块发送查询指令,查询路由器相关信息。
模块返回给手机的信息是:
有2个路由器,路由器1的SSID为“TEST1”,信号强度为64%;路由器2的SSID为“TEST2”,信号强度为55%。
注:
模块回复的路由器信息是根据信号强度排序过的。
设置指令
序号
名称
字节数
说明
1
包头
1
固定值0xFF
2
长度
2
长度之后(不包括长度),校验字之前(不包括校验字)的所有字节数。
3
命令字
1
命令类型,0x02为设置指令。
4
保留字
1
默认为0x00
5
SSID
不定长
路由器的SSID。
6
分隔符
2
SSID结束符,固定值0x0D,0x0A。
7
密码
不定长
路由器的密码。
8
校验字
1
包头之后(不包括包头),校验字之前(不包括校验字)的所有字节的累加和。
设置回复指令
序号
名称
字节数
说明
1
包头
1
固定值0xFF
2
长度
2
长度之后(不包括长度),校验字之前(不包括校验字)的所有字节数。
3
命令字
1
命令类型,0x82为设置指令对应的回复指令。
4
校验值
1
SSID的校验结果,如果可以查到此SSID对应的网络值为0x01,如果查不到,值为0x00。
5
校验值
1
密码的校验结果,如果密码的格式正确值为0x01,如果不正确,值为0x00。
6
校验字
1
包头之后(不包括包头),校验字之前(不包括校验字)的所有字节的累加和。
例子:
手机发送给模块(十六进制数):
FF000F020054455354310D0A313233343536CE
模块返回给手机(十六进制数):
FF000382010187
解释:
手机向模块发送设置指令,设置SSID为“TEST1”,密码为“123456”。
模块返回给手机的信息是:
存在SSID为“TEST1”的网络,密码格式正确。
2.8.Simplelink智能配置
Simplelink功能主要实现模块智能联网,即快速连接到AP。
模块工作在STA或AP模式下,拉低Reload引脚0-3秒,则模块进入Simplelink配置,此时Ready引脚输出0.5Hz的高低电平。
此时手持设备连接到模块所要连接的AP,打开APP软件,输入密码,点击“start”。
模块成功连接到AP后会自动重启。
APP使用说明及下载地址:
注意:
此时使用AT+WSTA查询模块所连接的AP信息时,密码显示SAFE,密码不可见。
2.9.类RFC2217自动波特率功能
2.9.1.类RFC2217功能描述
RFC2217是一个通过以太网即时修改设备串口参数的一个标准协议,本设备支持一个类似RFC2217的协议,不是标准RFC2217,实现同样的功能,但是协议更简单。
发送本协议命令给设备后,如果符合要求则执行设置串口参数动作,不返回任何内容,如果校验出错或者协议不对,则会当成普通的数据包通过串口转发。
TCPClient,TCPServer,UDPClient,UDPServer,这几种模式均支持本功能。
本命令所作的修改立即生效,不需要重启,当次有效,不会保存,断电丢失。
2.9.2.RFC2217协议说明
协议长度为8个字节,具体协议内容如下,举例的数值为HEX格式:
名称
包头
波特率
位数参数
和校验
位数(bytes)
3
3
1
1
说明
三个字节减少误判
三个字节表示一个波特率值,高位在前
不同的bit来表示不同的含义,见附表
前面四位的和校验,忽略进位
举例
(1152