WIFI模塊的串口指令模式
WIFI模塊在串口指令模式下,用戶可以將串口的數(shù)據(jù)發(fā)往不同的服務器地址,此模式可以用udp或是tcp client向服務器發(fā)送數(shù)據(jù)。
客戶MCU按照下面的格式發(fā)送數(shù)據(jù)包,模塊解析完成后,只將n字節(jié)的數(shù)據(jù)發(fā)送到目標地址。當有數(shù)據(jù)返回時,不做解析直接將數(shù)據(jù)從串口輸出。
表8串口指令模式協(xié)議表
包頭 |
長度 |
功能字 |
備用參數(shù)區(qū) |
目標端口 |
目標地址 |
數(shù)據(jù) |
和校驗 |
2 |
2 (n+m+5) |
1 |
2 |
2 |
m |
n |
1 |
包頭:
恒為0x55 0xaa
長度:
功能字開始,到校驗之前(不包含校驗)的所有字節(jié)數(shù)的總合。高字節(jié)在前
功能字:
Bit0:(UDP:0 ;TCP:1)
Bit1:(短連接:0;長連接:1)
Bit2:(IP:0;域名:1)
Bit7:(精簡協(xié)議:0;全協(xié)議:1)注意:目前只支持精簡協(xié)議
注:
對于Bit1,若為短連接,那么發(fā)送數(shù)據(jù)后,會斷開連接;若為長連接,那么發(fā)送數(shù)據(jù)后,連接將會一直保持,直到重新改變目標地址為止
對于Bit2,代表目標地址為IP還是域名,如果為IP,則目標地址為4字節(jié);如果為域名,則目標地址長度為整個域名字符串的長度(其中目標地址的最后一字節(jié)為0x00,也就是字符串的結(jié)尾,域名的長度是不定)
對于Bit7,精簡協(xié)議下,回復幀只包含數(shù)據(jù);全協(xié)議下,回復幀會有發(fā)送失敗,等待超時,UDP廣播下響應設備IP等幀格式
備用參數(shù)區(qū):
第一個字節(jié):如果為短連接,本位置為TCP等待超時時間(1-255),如果發(fā)送命令完成后,未收到響應,則等待相應的秒數(shù),若為5,則表示最大等待5s斷開連接;如果發(fā)送命令后,立即收到返回數(shù)據(jù),則立即斷開連接;如果為長連接,此處為0x00。
第二個字節(jié):預留
目標端口:
小端格式,低字節(jié)在前 ,比如端口23,在這里的順序為17 00
目標地址:
如果為IP,則為4字節(jié),比如192.168.0.7表示為 07 00 A8 C0 ;如果為域名,那么地址長度不定,以’\0’結(jié)尾
數(shù)據(jù):
長度可變,最大不超過1000字節(jié)
校驗:
從功能字開始算起,到校驗字節(jié)之前,加和校驗。
下面是具體的應用舉例:
發(fā)送數(shù)據(jù):55 aa 00 0a 00 00 00 21 00 85 00 A8 C0 01 0f
長度字節(jié)00 0a: 長度為n+m+5 ,此處為 10
功能字00: UDP方式
目標ip地址85 00 A8 C0: 192.168.0.133
數(shù)據(jù)區(qū)域00: 長度為1,
校驗計算:0x00+0x00+0x00+0x21+0x00+0x85+0x00+0xA8+0xC0+0x01=0x0f