EDA365电子论坛网

标题: 怎么才能才保证没有接收错误,串口波特率为115200 [打印本页]

作者: wushy    时间: 2020-1-7 11:30
标题: 怎么才能才保证没有接收错误,串口波特率为115200
1.上位机跑的是linux,子模块通过串口和上位机通讯,波特率115200.结果发现linux接收有overrun。
3 ]+ ~8 n; N3 |  O* F5 @具体的要求为挂机三天,不能出现overrun。: ]7 w; f* O  O$ l* w5 W9 G

- s7 l* K9 \5 Z( H4 O/ J2.我的看法是,由于linux不是实时操作系统,所以一旦波特率过高,linux是没法保证一定没有overrun。即使上位机的cpu频率很高,也没有用。
3 G! \" p# n6 s+ y- i% ^9 ~只能靠rts和cts这些硬件控制。
, P8 ]. m; m' [. u, x, ?0 a9 ?5 W, Z1 H1 ^
另外我看以前的拨号moden也是用rts和cts,所以我觉得要加硬件流控。
+ _4 R  ^% G7 D这种想法对吗# X5 D* K8 o$ Y7 ^/ H' \% U/ o

作者: ededewa    时间: 2020-1-7 18:00
可以硬件流控制,或者增加buffer,算清楚一个轮询cycle到buffer的时间,以及处理buffer需要的时间,就能理论上算出不会overflow的buffer大小




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2