WIFI模块的串口指令模式
WIFI模块在串口指令模式下,用户可以将串口的数据发往不同的服务器地址,此模式可以用udp或是tcp client向服务器发送数据。
客户MCU按照下面的格式发送数据包,模块解析完成后,只将n字节的数据发送到目标地址。当有数据返回时,不做解析直接将数据从串口输出。
表8串口指令模式协议表
包头 |
长度 |
功能字 |
备用参数区 |
目标端口 |
目标地址 |
数据 |
和校验 |
2 |
2 (n+m+5) |
1 |
2 |
2 |
m |
n |
1 |
包头:
恒为0x55 0xaa
长度:
功能字开始,到校验之前(不包含校验)的所有字节数的总合。高字节在前
功能字:
Bit0:(UDP:0 ;TCP:1)
Bit1:(短连接:0;长连接:1)
Bit2:(IP:0;域名:1)
Bit7:(精简协议:0;全协议:1)注意:目前只支持精简协议
注:
对于Bit1,若为短连接,那么发送数据后,会断开连接;若为长连接,那么发送数据后,连接将会一直保持,直到重新改变目标地址为止
对于Bit2,代表目标地址为IP还是域名,如果为IP,则目标地址为4字节;如果为域名,则目标地址长度为整个域名字符串的长度(其中目标地址的最后一字节为0x00,也就是字符串的结尾,域名的长度是不定)
对于Bit7,精简协议下,回复帧只包含数据;全协议下,回复帧会有发送失败,等待超时,UDP广播下响应设备IP等帧格式
备用参数区:
第一个字节:如果为短连接,本位置为TCP等待超时时间(1-255),如果发送命令完成后,未收到响应,则等待相应的秒数,若为5,则表示最大等待5s断开连接;如果发送命令后,立即收到返回数据,则立即断开连接;如果为长连接,此处为0x00。
第二个字节:预留
目标端口:
小端格式,低字节在前 ,比如端口23,在这里的顺序为17 00
目标地址:
如果为IP,则为4字节,比如192.168.0.7表示为 07 00 A8 C0 ;如果为域名,那么地址长度不定,以’\0’结尾
数据:
长度可变,最大不超过1000字节
校验:
从功能字开始算起,到校验字节之前,加和校验。
下面是具体的应用举例:
发送数据:55 aa 00 0a 00 00 00 21 00 85 00 A8 C0 01 0f
长度字节00 0a: 长度为n+m+5 ,此处为 10
功能字00: UDP方式
目标ip地址85 00 A8 C0: 192.168.0.133
数据区域00: 长度为1,
校验计算:0x00+0x00+0x00+0x21+0x00+0x85+0x00+0xA8+0xC0+0x01=0x0f