单片机与ch375通信慢(375中断周期1ms)

单片机+ch375并口方式作为host控制USB打印机,单片机采用中断方式监测ch375 INT#脚,每采集到一个中断(USB_INT_SUCCESS),单片机就往375写一组数据(大小不超过64),进而传输给打印机,打印机也可以正确打印,但是打印速度慢,怀疑是单片机与375通信过慢,通过示波器观察到375 INT#脚中断周期为1ms,这个时间相对USB传输来说太长了,请教下这个数值正常吗? 有什么方法可以提高?

如果你测的没错,那么你的通信速度确实不怎么快,你检查下代码看看是否有以下情况:存在更高级的中断打断了CH375的中断状态;中断处理时批量数据的处理放到判断的最前面;数据发送是否存在过长的延时或者重试。



Alicehunter : 

    你好! 感谢你的回复!就你提供的建议:

1.存在更高级的中断打断了CH375的中断状态;  ===》   是有一个更高级的中断打断,现已把375中断优先级提高到最大,中断周期缩小了 大概900us多  

2.中断处理时批量数据的处理放到判断的最前面; ===》 这个不理解是什么意思, 中断处理函数中 是直接发送缓冲区的数据

3.数据发送是否存在过长的延时或者重试。   ===》 数据发送未做延时处理, 这个不是原因


麻烦再看下 是否还有提高空间



第二个就是在中断中把需要发送批量数据端点放在最前面,第一个去处理,这样会节省判断其他端点中断状态的时间;另外我建议你在发送前后通过一个引脚的电平状态判断端点数据发送时间,如果大部分时间都在发送数据等待正确返回,那么你优化也相当有限。


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