请教一个单片机串口如何接收多路串口输入?

[复制链接]
6392|24
 楼主| jason_77chen 发表于 2015-11-2 15:43 | 显示全部楼层 |阅读模式
大家好,如题,一个单片机的串口做为接收,另有6个左右的设备串口输入, 请问用什么方式可以实现?便宜的方式,谢谢

网上有说什么:多路选择器,什么RS485总线,我想请教一下没有什么简单的方式
wh6ic 发表于 2015-11-2 15:59 | 显示全部楼层
挂一个串口转多路串口芯片,比如1拖5的国腾GM8125。
jjjyufan 发表于 2015-11-2 17:28 | 显示全部楼层
把你的232芯片换485芯片 然后软件做轮询 叫号 通讯
 楼主| jason_77chen 发表于 2015-11-4 07:59 | 显示全部楼层
本帖最后由 jason_77chen 于 2015-11-4 08:05 编辑
jjjyufan 发表于 2015-11-2 17:28
把你的232芯片换485芯片 然后软件做轮询 叫号 通讯

我的没有外接232,就是一些MCU与MCU的串口通信
 楼主| jason_77chen 发表于 2015-11-4 08:01 | 显示全部楼层
本帖最后由 jason_77chen 于 2015-11-4 08:04 编辑
wh6ic 发表于 2015-11-2 15:59
挂一个串口转多路串口芯片,比如1拖5的国腾GM8125。

这个说**是我想要的意思,谢谢
哇,好贵哦,20来块啊,
gx_huang 发表于 2015-11-4 08:35 | 显示全部楼层
如果只是MCU和MCU近距离的通信,如果6个MCU的TXD可以配置为OC输出,那6个MCU的TXD直接接主MCU的RXD,6个MCU的RXD接主CPU的TXD。软件查询通信,避免同时通信冲突就可以了,类似RS485的方式。

评论

正解  发表于 2015-11-10 08:44
ningling_21 发表于 2015-11-4 08:43 | 显示全部楼层
jason_77chen 发表于 2015-11-4 07:59
我的没有外接232,就是一些MCU与MCU的串口通信

6个二极管实现
handlike 发表于 2015-11-4 08:45 | 显示全部楼层
10米以内的距离直接RS232多机通信没有问题,二、三十个连接通信只要波特率不太高都不是问题.
 楼主| jason_77chen 发表于 2015-11-4 10:56 | 显示全部楼层
gx_huang 发表于 2015-11-4 08:35
如果只是MCU和MCU近距离的通信,如果6个MCU的TXD可以配置为OC输出,那6个MCU的TXD直接接主MCU的RXD,6个MCU ...

那好好去想一想,谢谢
 楼主| jason_77chen 发表于 2015-11-4 10:57 | 显示全部楼层

6个二极管? :Q,没想通怎么个实现方式 
 楼主| jason_77chen 发表于 2015-11-4 10:58 | 显示全部楼层
handlike 发表于 2015-11-4 08:45
10米以内的距离直接RS232多机通信没有问题,二、三十个连接通信只要波特率不太高都不是问题. ...

谢谢这位兄台,我不用RS232
ningling_21 发表于 2015-11-4 11:35 | 显示全部楼层
jason_77chen 发表于 2015-11-4 10:57
6个二极管? ,没想通怎么个实现方式 



供参考

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

评论

还要上拉电阻,二极管阳极这边。  发表于 2015-11-10 08:30
对的,有一款产品我就是这么干的。这是N年前的事了,关键是协议要整好。  发表于 2015-11-10 08:29
 楼主| jason_77chen 发表于 2015-11-5 10:30 | 显示全部楼层

谢谢
弱弱的问一下:发送 与 接收? 是否写错边了,如没错,那数据发送不过来吧,如TXD1 发过的数据不是被二极管给阻扯了,这个做法,看是可以同时发送,到时候具体操作一下,但如果主MCU要接收多个串口发送过来的数据,估计得分时接收了,
ningling_21 发表于 2015-11-5 10:33 | 显示全部楼层
jason_77chen 发表于 2015-11-5 10:30
谢谢
弱弱的问一下:发送 与 接收? 是否写错边了,如没错,那数据发送不过来吧,如TXD1 发过的 ...

没错,但必须保证发送端不能同时发送
 楼主| jason_77chen 发表于 2015-11-5 10:42 | 显示全部楼层
本帖最后由 jason_77chen 于 2015-11-5 10:49 编辑
ningling_21 发表于 2015-11-5 10:33
没错,但必须保证发送端不能同时发送

二极管都反向了,读不到状态值啊:Q
ningling_21 发表于 2015-11-5 11:03 | 显示全部楼层
jason_77chen 发表于 2015-11-5 10:42
二极管都反向了,读不到状态值啊

你先用一发一收 试试看
gx_huang 发表于 2015-11-5 11:04 | 显示全部楼层
jason_77chen 发表于 2015-11-5 10:42
二极管都反向了,读不到状态值啊

那是你太菜了,二极管是实现线与的功能,RXD端需要上拉的呀。
如果TXD有OC输出,二极管都省了。

评论

TXD无法选择OC的吧。应都是PP输出的。  发表于 2015-11-10 08:32
yhn1973 发表于 2015-11-5 11:38 | 显示全部楼层
距离近直接连,管脚配置成开漏加上拉电阻输出就可以了
 楼主| jason_77chen 发表于 2015-11-10 08:20 | 显示全部楼层
gx_huang 发表于 2015-11-5 11:04
那是你太菜了,二极管是实现线与的功能,RXD端需要上拉的呀。
如果TXD有OC输出,二极管都省了。 ...

多谢!确实要学的东西还很多,还得努力
datouyuan 发表于 2015-11-11 09:38 | 显示全部楼层
gx_huang 发表于 2015-11-5 11:04
那是你太菜了,二极管是实现线与的功能,RXD端需要上拉的呀。
如果TXD有OC输出,二极管都省了。 ...

绝大部分51mcu的TXD都是准双向(相当于OC输出加上拉电阻),所以二极管是不需要的.

我所见的mcu中,只有新塘的contex,只要把引脚配置成TXD功能,就自动把这个脚配置成推挽(尽管你配置成OC也没用),这种芯片多机通讯要加二极管隔离.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

18

主题

155

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部