原创 USB转串口(CDC)中的流量控制

2009-10-30 20:07 5826 3 3 分类: MCU/ 嵌入式
今天根据一个用户的测试反馈,在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。当串口速度不是那么高的时候,基本上在性能上没有区别。
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
3
关闭 站长推荐上一条 /3 下一条