CH32V307 USB HS模式 BULK傳輸 幾個(gè)小時(shí)內(nèi)數(shù)據(jù)有丟失

使用 Ch32v307RCT6模塊 的ADC進(jìn)行電壓采樣, 使用HS模式的USB接口傳輸采樣的數(shù)據(jù)給PC,? 需求是: 實(shí)時(shí)傳輸, 不能丟失數(shù)據(jù), PC端需要每一個(gè)采樣值.


PC端 使用BULK傳輸 讀取數(shù)據(jù), 30ms傳輸一次, 一次傳輸?shù)臄?shù)據(jù)量是25k字節(jié), 這些數(shù)據(jù)封裝成一個(gè)數(shù)據(jù)包, 有固定的頭, 帶有遞增的ID, 對(duì)數(shù)據(jù)也加了CRC校驗(yàn), 通過(guò)USB分包傳輸.

現(xiàn)象: 幾個(gè)小時(shí)內(nèi) 必定有幾幀丟失


這可能是什么原因呢??


網(wǎng)上關(guān)于BULK傳輸, "Bulk 傳輸是一種不可靠的傳輸方式,數(shù)據(jù)包的傳輸可能會(huì)出現(xiàn)錯(cuò)誤或丟失。因此,在進(jìn)行 Bulk 傳輸時(shí),需要在應(yīng)用程序中實(shí)現(xiàn)重傳機(jī)制,以確保數(shù)據(jù)的可靠傳輸。"

不是很確定, 是否是這個(gè)原因? 請(qǐng)幫忙 分析下問(wèn)題, 多謝~

f296e5d22518350a4f45f0643ae4fdf.png

你好,bulk傳輸是可靠的,有校驗(yàn)和重傳,可以用bushound或硬件抓包工具,查看實(shí)際上傳的數(shù)據(jù)。下位機(jī)軟件要用端點(diǎn)的busy標(biāo)志位判斷上次數(shù)據(jù)是否發(fā)送完成,防止把上次數(shù)據(jù)覆蓋。如果有變量在中斷和主函數(shù)中都用到,參考CDC例程中的做法,需要在主函數(shù)中操作變量前,關(guān)閉中斷,賦值完再打開(kāi)中斷。


使用了?CherryUSB/cherryusb_wch: CherryUSB Demo for WCH (github.com)?這個(gè)庫(kù).

busy的標(biāo)志位是有的, 同時(shí)也加上了超時(shí)處理,

一次完整的數(shù)據(jù)傳輸是:

主循環(huán), 等到ADC Half中斷完成后, 開(kāi)始通過(guò)USB發(fā)送ADC的Half數(shù)據(jù),


先傳輸28個(gè)字節(jié)的Header包, 2毫秒超時(shí), 再傳輸25k字節(jié), 20毫秒超時(shí).


超過(guò)最大包長(zhǎng)度會(huì)自動(dòng)分包, 分包是在USB 中斷處理函數(shù)中.


時(shí)間方面, 一次完整數(shù)據(jù)通過(guò)USB傳輸, 需要約1.2ms, ADC采樣的中斷觸發(fā)周期約30ms, PC端解析約 0.4~1.2ms, 時(shí)間上也都很寬松

抓包的話, 估計(jì)太復(fù)雜了, 數(shù)據(jù)量比較大


已搞定, 買(mǎi)了USB協(xié)議分析儀后, 發(fā)現(xiàn)數(shù)據(jù)沒(méi)有丟失, 問(wèn)題是 我底層代碼傳輸?shù)膯?wèn)題. CH32V307確實(shí)可以!

想請(qǐng)教下, PC上 Host端 使用libusb循環(huán) 接收 20*1024字節(jié)數(shù)據(jù),?那么Device端 是否必須 一次Transfer傳輸完 20*1024個(gè)字節(jié)的數(shù)據(jù)? 如果進(jìn)行2次Transfer, 1次Transfer是 2*1024個(gè)字節(jié), 另1次Transfer是18*1024個(gè)字節(jié), 這樣PC端 若不額外處理, 是不是就會(huì)出問(wèn)題?


沒(méi)有寫(xiě)過(guò)USB的上位機(jī)軟件,正常來(lái)說(shuō),電腦下發(fā)IN包,設(shè)備回復(fù)數(shù)據(jù)或是NAK,bulk每包最大512字節(jié)。電腦接受20K數(shù)據(jù)的過(guò)程中,可以有NAK的包,也就是說(shuō)可以間斷。MCU角度并沒(méi)有問(wèn)題,電腦角度,可能需要注意API的超時(shí)時(shí)間。


請(qǐng)問(wèn)一下這個(gè)問(wèn)題你們解決了嗎?最后找到是什么問(wèn)題了嗎?


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

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