上位机发送数据到CH372端,下传时间较长的疑问

上位机使用C#开发的测试工具,每间隔固定时间(不妨为50ms或其它)向下位机(STM32F4+CH372,内置固件模式)发送64byte数据,下位机在触发中断接收到数据之后,立即将数据上传给上位机。


使用USB监控软件发现,从上位机给下位机发送数据需要时间较长(基本在10ms-20ms之间),而下位机给上位机上传数据过程时间很短(<2ms),使用示波器在下位机接收中断中测试中断响应时间大约为160ns(从进入中断,到退出中断的时间,不超过180ns)。附上监控软件抓包截图。


请问:

1. 为什么上位机给下位机下传的过程中需要的时间很长,而下位机响应接收中断时间确很短,这其中的时间都去哪儿了?

2. 如何缩短这些时间?

3. 现在上位机接收有一定局限性,即(先给下位机发指令,然后再接收)有没有其它方法,能让上位机接收下位机的时候,能使用触发中断或者事件的方式(类似于,给上位机一个中断,当需要接收的时候触发接收or被动接收)?

谢谢!



image.png

1、这个USB抓包工具对于时间戳的判定位置不清楚,不好确定是否用了这么长的时间,时间一般都是回复了NAK,372在没有UNLOCK就会回复NAK

2、优化中断函数中判断分支的先后,及时unlock,退出中断

3、所有USB通讯都是主机主动发起的,通常会用一个中断端点来报告是否有数据需要传输


只有登录才能回复,可以选择微信账号登录