极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 17804|回复: 10

arduino串口自适应问题请教

[复制链接]
发表于 2017-6-12 14:01:25 | 显示全部楼层 |阅读模式
假如有3个波特率(2400、4800、9600)不同的通信设备,数据8N1格式,每一个设备数据长度不定,要求用一个程序实现对3个设备通信数据的读取。怎么判断这3种波特率?
算下来每个字节分别是4.2ms、2ms、1ms,感觉用uno有点捉襟见肘
回复

使用道具 举报

发表于 2017-6-13 11:26:15 | 显示全部楼层
用三个软串口呗
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-13 12:01:13 | 显示全部楼层


现在只有硬件串口可以用,其他IO占完了
回复 支持 反对

使用道具 举报

发表于 2017-6-13 17:23:47 | 显示全部楼层
suoma 发表于 2017-6-13 12:01
现在只有硬件串口可以用,其他IO占完了


切换波特率听着就困难,那就看看别的那些io口可以复用呗,总不能其他的io口一直都忙着吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-13 18:11:19 | 显示全部楼层
275891381 发表于 2017-6-13 17:23
切换波特率听着就困难,那就看看别的那些io口可以复用呗,总不能其他的io口一直都忙着吧

之前在DSP上见过,不知道AVR是否可以实现。其他IO都接了外设,IO在复用功能之间切换,比如arduino 13-11在SPI引脚和数字IO之间切换,我还真没见过,因为我已经连了SD模块了
回复 支持 反对

使用道具 举报

发表于 2017-6-13 18:34:12 | 显示全部楼层
suoma 发表于 2017-6-13 18:11
之前在DSP上见过,不知道AVR是否可以实现。其他IO都接了外设,IO在复用功能之间切换,比如arduino 13-11 ...

要是玩的话可以再弄个arduino专门接收串口,再发给那个主机,要是产品可以选择多引脚的片子,或者弄138之类的译码器,把简单功能的传感器挂到译码器上,要么就是挂个串口扩展芯片例如VK3214可以一转4,子路也可以设置不同的波特率,不过与其这么麻烦,不如换个引脚多的片子了。你可以分析下传感器的io口,看那些可以共用这个还靠谱点
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-13 19:29:43 | 显示全部楼层
275891381 发表于 2017-6-13 18:34
要是玩的话可以再弄个arduino专门接收串口,再发给那个主机,要是产品可以选择多引脚的片子,或者弄138之 ...

好的,目前硬件已经定型了,一个程序要涉及对各种不同通信设备波特率的支持,只有一个串口,通过拨码开关选择波特率,如果能自适应就最好了,所以论坛求助
回复 支持 反对

使用道具 举报

发表于 2017-6-13 21:14:00 | 显示全部楼层
suoma 发表于 2017-6-13 19:29
好的,目前硬件已经定型了,一个程序要涉及对各种不同通信设备波特率的支持,只有一个串口,通过拨码开关 ...

都有拨码开关了,拨码开关的引脚腾出来弄串口就可以了吧
回复 支持 反对

使用道具 举报

发表于 2017-6-13 22:54:22 | 显示全部楼层
软件实现自适应波特率。

软件来做的思路大概就是:

1. 从机先设置UART的接收管脚为输入IO

2. 主机发送0XAA(或0X55)同步字(8-N-0),这样在RX管脚上会出现 0-10101010-1的波形‘

3. 从机捕获10之间的时钟数(或者第一个10到最后一个10的时钟数),把该数转换成UART的波特率值。

4. 从机使能IO口为UART模式.

这样处理的优点是:

1. 能够有效的消除设备器件带来的误差。即使用误差较大的振荡器也同样能实现UART的通信。

2. 能够实现更多的波特率,最大波特率取决于捕获的精度.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-14 18:17:27 | 显示全部楼层
弘毅 发表于 2017-6-13 22:54
软件实现自适应波特率。

软件来做的思路大概就是:

           谢谢指导
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-14 18:20:20 | 显示全部楼层
275891381 发表于 2017-6-13 21:14
都有拨码开关了,拨码开关的引脚腾出来弄串口就可以了吧

其实我就想使用硬串口实现,板子已经成型了,即使用开关引脚通信也没有留接口
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-19 11:36 , Processed in 0.041340 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表