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