今天根据一个用户的测试反馈,在Versaloon的CDC代码中增加了流量控制。原理很简单,在缓冲不够的时候,对于PC发送的OUT数据报文返回NAK,缓冲够的时候才接收数据并返回ACK。这个对于CDC的兼容性的帮助很大,也可以使得不需要多大的缓冲,就可以支持任意长度的数据流了。
对比PL2303,一次串口写输入如果大于4096字节的话,会出问题,主要原因就是缓冲区大小不够了,也没有实现流量控制,使得数据包丢失。如果使用了流量控制的话,USB接收缓冲设置为256字节就可以实现任意大小的串口写数据了。
目前经过用户测试,发现可以支持STC的下载。原来听说很多USB转串口是不能支持STC下载的,当然,没有具体研究过原因。
性能方面,在缓冲区大小设置为256字节的时候,921600bps(90KBytes/s)的速度下,实际速度为85.84KByts/s;512字节缓冲下为89.63KBytes/s;1024字节缓冲下为89.714KBytes/s。当串口速度不是那么高的时候,基本上在性能上没有区别。
文章评论(0条评论)
登录后参与讨论