现在的位置: 首页 > 综合 > 正文

最高波特率的瓶颈

2019年03月26日 ⁄ 综合 ⁄ 共 822字 ⁄ 字号 评论关闭


瓶颈在

1.windows驱动的好坏 

2.stm32对usb处理能力 

3.你所用的传输线质量 

4.stm32拿到数据后是否要做耗时的工作 

5.pc主板所用usb芯片的质量 

6.软件组织是否合理 等




虚拟串口里面,不存在波特率的概念,虚拟串口中的波特率只有在用于USB转串口的时候才会用到,设置了虚拟串口的波特率之后,在打开虚拟串口的时候,USB包里面会有一个控制命令,告知电脑设置的波特率是多少,如果你是要做usb转串口的应用,则在这个时候,初始化你的串口比较合适,如果你不是转串口,那么可以直接无视。

另外,WINDOWS平台下的IO读写速度,取决于设备本身的读取速度(即和USB硬件和驱动有关),排除使用了很挫的驱动和硬件的情况下,虚拟串口的速度理论上为USB1.1的速度。

但是,实际使用过程中,IO读写的效率也有很大关系。
i = 100;
while(i--)
{
writefile(file, buf, 1);
}


writefile(file, buf, 100);

这两个在实际使用中的速度,就会差别很大。因此,如果想要获得较大的传输速度,一次性写入IO的内容需要大一些,否则效率低下,速度上不去

楼主可以实测一下,不管是直接写程序还是用串口调试助手,一次性写入不同长度的数据,将会很影响速度。



http://zhidao.baidu.com/link?url=ZK29MzyMJqot09kdtdHzFZdBrwz14YpMe6BZ4TBeDBotCyABbXnoAFhOJivHsrMFrWcS-eyxGP0kmmYhiqPcsq


STM32F4串口的波特率实测【多图】

http://forum.eepw.com.cn/thread/240529/1/

挺有意思的测试,图太多了,自己看吧。

结论就是:波特率是脉冲频率的二倍。一个波形一秒钟发送的次数是多少波特率就是多少。比如波特率是9600时候,测得的脉冲宽度是1/9600=104.2us,波形频率是4.8k。

 


抱歉!评论已关闭.