我用CH395Q做服務(wù)器時(shí),客戶端發(fā)指令過(guò)來(lái),CH395Q自動(dòng)回復(fù)了ACK,如下圖IP地址52是CH395Q,211是電腦,但為什么會(huì)多了幾個(gè)字節(jié),而且是我要發(fā)的數(shù)據(jù)的前幾個(gè)字節(jié),每次都這樣,不知道什么原因,求賜教。
經(jīng)過(guò)搜資料發(fā)現(xiàn),這個(gè)ACK幀是因?yàn)榛貜?fù)的字?jǐn)?shù)不夠46字節(jié),然后自動(dòng)補(bǔ)了6個(gè)字節(jié),也就是Trailer,但這個(gè)Trailer為什么是我將要發(fā)的數(shù)據(jù)的前6個(gè)字節(jié)呢,為什么不是為00呢?這個(gè)能改成默認(rèn)為00的嗎?現(xiàn)在電腦把這6個(gè)字節(jié)識(shí)別成我要發(fā)的數(shù)據(jù)了,導(dǎo)致跟后面要發(fā)的數(shù)據(jù)連在一起識(shí)別而認(rèn)為數(shù)據(jù)錯(cuò)誤了。
經(jīng)過(guò)測(cè)試發(fā)現(xiàn),這個(gè)Trailer數(shù)據(jù)是我上次發(fā)送的數(shù)據(jù)的前6個(gè)字節(jié),而不是后面將要發(fā)送的數(shù)據(jù)的前6個(gè)字節(jié),這是為什么呢?這個(gè)能設(shè)置嗎?
我測(cè)試又發(fā)現(xiàn),如果通信時(shí)間間隔超過(guò)半分鐘左右,Trailer數(shù)據(jù)就會(huì)自動(dòng)變成00,但如果在半分鐘內(nèi)進(jìn)行通信并回復(fù),則會(huì)自動(dòng)把Trailer數(shù)據(jù)填充成上一次發(fā)送的數(shù)據(jù)的前6個(gè)字節(jié)。那是不是有可能做什么操作能把Trailer數(shù)據(jù)變成00呢。
您好,CH395這款芯片暫時(shí)還沒(méi)有對(duì)底層數(shù)據(jù)幀格式修改的命令接口。再請(qǐng)問(wèn)一下,您使用過(guò)程這種應(yīng)答的方式會(huì)對(duì)您的應(yīng)用上產(chǎn)生什么樣的影響了?
回復(fù)5樓:我們這邊測(cè)試跟電腦后臺(tái)通信,后臺(tái)收到這幀trailer數(shù)據(jù)跟我下一幀發(fā)的數(shù)據(jù)連在一起了,因?yàn)閠railer是上次回的數(shù)據(jù)前6個(gè)字節(jié),剛好識(shí)別出幀頭就認(rèn)為是一幀正常數(shù)據(jù),但數(shù)據(jù)長(zhǎng)度和校驗(yàn)都不過(guò),導(dǎo)致識(shí)別錯(cuò)誤把后面那幀正確的數(shù)據(jù)都丟掉了。
數(shù)據(jù)補(bǔ)幀述非固定,目前不支持指定和修改。