1M波特率串口(USB转串口)读取数据问题

[复制链接]
查看11 | 回复4 | 2021-1-27 07:17:20 | 显示全部楼层 |阅读模式
给位大大,我用ComPort库,在delphi7下开发一个小的测试软件,用于实时显示串口数据的数据曲线,下位机一40KHz的速率发送两字节的数据,也就是每秒发送80K字节数据,我的上位机读数时,毛刺十分严重,应该是速率太快,缓冲区溢出吧,不知道怎么解决啊
分 -->
回复

使用道具 举报

千问 | 2021-1-27 07:17:20 | 显示全部楼层
不知道你下位机的晶体是多少?到这个速度确实是太快了
另外,你能不能把部分的滤波等算法在下位机做,直接定期提交图形数据即可,如果资源允许的话

回复

使用道具 举报

千问 | 2021-1-27 07:17:20 | 显示全部楼层
下位机100M,数据的话必须要看原始的,因为要分析得到数据确定算法的参数
引用1楼的回复:不知道你下位机的晶体是多少?到这个速度确实是太快了
另外,你能不能把部分的滤波等算法在下位机做,直接定期提交图形数据即可,如果资源允许的话

回复

使用道具 举报

千问 | 2021-1-27 07:17:20 | 显示全部楼层
不知道你数据的初始来源,如果是ADC之类的,建议降低采样率,降低波特率再发。如果毛刺依旧存在就说明是前级的问题,是真实存在的毛刺。那你就该着手解决前级的电路或滤波算法。
如果担心溢出,无论是下位机的各个中继环节还是与上位机的通讯环节,只要有溢出之类的错误都可以通过软件去侦测,发现后即提示。做到这个不难。如果是串口物理干扰导致数据错误,使用奇偶校验或软件校验又可以消除一部分错误。这些都是可以解决的。
回复

使用道具 举报

千问 | 2021-1-27 07:17:20 | 显示全部楼层
数据的初始来源是AD对通信信号的采样,采样的速率是40khz,从下位机的发出的数据监测到没有问题,主要问题应该就是串口缓冲区的覆盖,上位机没能及时处理串口输入的数据吧,毕竟数据量有点大啊,能不能用多个线程去读取串口缓冲区来提高串口串口数据的处理速度呢?
引用3楼的回复:不知道你数据的初始来源,如果是ADC之类的,建议降低采样率,降低波特率再发。如果毛刺依旧存在就说明是前级的问题,是真实存在的毛刺。那你就该着手解决前级的电路或滤波算法。
如果担心溢出,无论是下位机的各个中继环节还是与上位机的通讯环节,只要有溢出之类的错误都可以通过软件去侦测,发现后即提示。做到这个不难。如果是串口物理干扰导致数据错误,使用奇偶校验或软件校验又可以消除一部分错误。这些都是可以……
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行