上位機(jī)發(fā)送數(shù)據(jù)到CH372端,下傳時(shí)間較長的疑問

上位機(jī)使用C#開發(fā)的測試工具,每間隔固定時(shí)間(不妨為50ms或其它)向下位機(jī)(STM32F4+CH372,內(nèi)置固件模式)發(fā)送64byte數(shù)據(jù),下位機(jī)在觸發(fā)中斷接收到數(shù)據(jù)之后,立即將數(shù)據(jù)上傳給上位機(jī)。


使用USB監(jiān)控軟件發(fā)現(xiàn),從上位機(jī)給下位機(jī)發(fā)送數(shù)據(jù)需要時(shí)間較長(基本在10ms-20ms之間),而下位機(jī)給上位機(jī)上傳數(shù)據(jù)過程時(shí)間很短(<2ms),使用示波器在下位機(jī)接收中斷中測試中斷響應(yīng)時(shí)間大約為160ns(從進(jìn)入中斷,到退出中斷的時(shí)間,不超過180ns)。附上監(jiān)控軟件抓包截圖。


請問:

1. 為什么上位機(jī)給下位機(jī)下傳的過程中需要的時(shí)間很長,而下位機(jī)響應(yīng)接收中斷時(shí)間確很短,這其中的時(shí)間都去哪兒了?

2.?如何縮短這些時(shí)間?

3.?現(xiàn)在上位機(jī)接收有一定局限性,即(先給下位機(jī)發(fā)指令,然后再接收)有沒有其它方法,能讓上位機(jī)接收下位機(jī)的時(shí)候,能使用觸發(fā)中斷或者事件的方式(類似于,給上位機(jī)一個(gè)中斷,當(dāng)需要接收的時(shí)候觸發(fā)接收or被動(dòng)接收)?

謝謝!



image.png

1、這個(gè)USB抓包工具對于時(shí)間戳的判定位置不清楚,不好確定是否用了這么長的時(shí)間,時(shí)間一般都是回復(fù)了NAK,372在沒有UNLOCK就會(huì)回復(fù)NAK

2、優(yōu)化中斷函數(shù)中判斷分支的先后,及時(shí)unlock,退出中斷

3、所有USB通訊都是主機(jī)主動(dòng)發(fā)起的,通常會(huì)用一個(gè)中斷端點(diǎn)來報(bào)告是否有數(shù)據(jù)需要傳輸


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

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