CH376接收大數(shù)據(jù)時(shí)出現(xiàn)丟數(shù)據(jù)現(xiàn)象,幫忙分析下看[原創(chuàng)]

現(xiàn)在有個(gè)問(wèn)題,就是我的CH376做主機(jī),連接CP2102(USB轉(zhuǎn)串口芯片)。 通過(guò)上位機(jī)串口軟件向CP2102發(fā)數(shù)據(jù),然后數(shù)據(jù)轉(zhuǎn)發(fā)給CH376,再通過(guò)CPU透?jìng)鳌? 現(xiàn)發(fā)現(xiàn)CH376接收CP2102過(guò)來(lái)的稍大數(shù)據(jù)的時(shí)候,比如600多字節(jié)。會(huì)出現(xiàn)丟數(shù)據(jù)的現(xiàn)象,或是丟包現(xiàn)象。丟數(shù)據(jù)一般是丟掉最后一包的最后幾個(gè)字節(jié),丟包一包是丟了中間的一個(gè)包(每包最大64字節(jié)接收) CH376開(kāi)始接收之前的超次寄存器設(shè)置如下: xWriteCH376Cmd (CMD20_SET_RETRY); //設(shè)置重試次數(shù) xWriteCH376Data( 0x25 ); xWriteCH376Data( 0xCA ); //這里為超時(shí)3s 試50次

然后USB接收處理是在外部中斷里面處理; USB數(shù)據(jù)查詢(xún)是通過(guò)定時(shí)器來(lái)查詢(xún),每個(gè)500ms查詢(xún)一次。 請(qǐng)問(wèn)這樣的設(shè)計(jì)思路是否有問(wèn)題?

丟數(shù)據(jù)的概念是 比如一包數(shù)據(jù)是649字節(jié),CH376會(huì)出現(xiàn) 最后幾個(gè)字節(jié)的數(shù)據(jù)沒(méi)接收到現(xiàn)象,有時(shí)候干脆一包。

而且把定時(shí)查詢(xún)USB的時(shí)間縮短,比如縮到50ms查詢(xún)一次,結(jié)果也是出現(xiàn)接收丟包現(xiàn)象。


按照標(biāo)準(zhǔn)的USB協(xié)議來(lái)說(shuō)的話,對(duì)于全速設(shè)備一般是1MS一個(gè)包,一個(gè)包按照你描述符描述的可以是64字節(jié),所以按照你說(shuō)的59MS查詢(xún)一次的話肯定也是會(huì)出現(xiàn)丟數(shù)據(jù)現(xiàn)象的,設(shè)置的定時(shí)時(shí)間應(yīng)該為1MS或者少于1MS。因?yàn)閷?duì)于USB主機(jī)來(lái)說(shuō)不并不知道設(shè)備什么時(shí)候有數(shù)據(jù)來(lái)。所以需要不斷的去發(fā)送IN的令牌包(一般為1MS),如果設(shè)備未有數(shù)據(jù),則IN令牌包返回0X2A(NAK)的中斷狀態(tài)。如果有數(shù)據(jù)則返回0X14(ACK)。


嗯,明白了,查詢(xún)間隔時(shí)間上我再調(diào)試下,應(yīng)該是這個(gè)問(wèn)題


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频