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

rzsun_10 2012-08-17 02:28:15
给位大大,我用ComPort库,在delphi7下开发一个小的测试软件,用于实时显示串口数据的数据曲线,下位机一40KHz的速率发送两字节的数据,也就是每秒发送80K字节数据,我的上位机读数时,毛刺十分严重,应该是速率太快,缓冲区溢出吧,不知道怎么解决啊
...全文
689 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Simality 2012-08-18
  • 打赏
  • 举报
回复
不知道你数据的初始来源,如果是ADC之类的,建议降低采样率,降低波特率再发。如果毛刺依旧存在就说明是前级的问题,是真实存在的毛刺。那你就该着手解决前级的电路或滤波算法。

如果担心溢出,无论是下位机的各个中继环节还是与上位机的通讯环节,只要有溢出之类的错误都可以通过软件去侦测,发现后即提示。做到这个不难。如果是串口物理干扰导致数据错误,使用奇偶校验或软件校验又可以消除一部分错误。这些都是可以解决的。
rzsun_10 2012-08-18
  • 打赏
  • 举报
回复
数据的初始来源是AD对通信信号的采样,采样的速率是40khz,从下位机的发出的数据监测到没有问题,主要问题应该就是串口缓冲区的覆盖,上位机没能及时处理串口输入的数据吧,毕竟数据量有点大啊,能不能用多个线程去读取串口缓冲区来提高串口串口数据的处理速度呢?
[Quote=引用 3 楼 的回复:]

不知道你数据的初始来源,如果是ADC之类的,建议降低采样率,降低波特率再发。如果毛刺依旧存在就说明是前级的问题,是真实存在的毛刺。那你就该着手解决前级的电路或滤波算法。

如果担心溢出,无论是下位机的各个中继环节还是与上位机的通讯环节,只要有溢出之类的错误都可以通过软件去侦测,发现后即提示。做到这个不难。如果是串口物理干扰导致数据错误,使用奇偶校验或软件校验又可以消除一部分错误。这些都是可以……
[/Quote]
rzsun_10 2012-08-17
  • 打赏
  • 举报
回复
下位机100M,数据的话必须要看原始的,因为要分析得到数据确定算法的参数
[Quote=引用 1 楼 的回复:]

不知道你下位机的晶体是多少?到这个速度确实是太快了

另外,你能不能把部分的滤波等算法在下位机做,直接定期提交图形数据即可,如果资源允许的话
[/Quote]
lbing7 2012-08-17
  • 打赏
  • 举报
回复
不知道你下位机的晶体是多少?到这个速度确实是太快了

另外,你能不能把部分的滤波等算法在下位机做,直接定期提交图形数据即可,如果资源允许的话

27,377

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧