上位機(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)接收)?
謝謝!