上位机使用C#开发的测试工具,每间隔固定时间(不妨为50ms或其它)向下位机(STM32F4+CH372,内置固件模式)发送64byte数据,下位机在触发中断接收到数据之后,立即将数据上传给上位机。
使用USB监控软件发现,从上位机给下位机发送数据需要时间较长(基本在10ms-20ms之间),而下位机给上位机上传数据过程时间很短(<2ms),使用示波器在下位机接收中断中测试中断响应时间大约为160ns(从进入中断,到退出中断的时间,不超过180ns)。附上监控软件抓包截图。
请问:
1. 为什么上位机给下位机下传的过程中需要的时间很长,而下位机响应接收中断时间确很短,这其中的时间都去哪儿了?
2. 如何缩短这些时间?
3. 现在上位机接收有一定局限性,即(先给下位机发指令,然后再接收)有没有其它方法,能让上位机接收下位机的时候,能使用触发中断或者事件的方式(类似于,给上位机一个中断,当需要接收的时候触发接收or被动接收)?
谢谢!