[MCU] RS232主从多机通信的实现

[复制链接]
14812|26
 楼主| 技美电子 发表于 2013-8-15 11:31 | 显示全部楼层 |阅读模式
大家都知道,RS232协议是点对点的通信协议,但在一些特殊的应用中,如一主对多从机的通信,当然可以使用RS485协议,但系统就会变得相对复杂些,能否用RS232实现多机通信呢?本人经过具体项目实施验证,答案是肯定的。下面就此应用总结一下,以供大家参考和验证。
硬件连接图如下:
file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image001.jpg
软件上,协议上给每个从机设定一个ID,当主机向从机发数据帧时,所有从机都可以收到,根据ID是否与自已的一致决定是否对接收的数据进行处理。同理,任何一从机向主机回传数据也是根据接收到的ID进行相应的处理。是不是很简单?呵呵……当然这个方案有一个小小的限制,就是同一时间不可以有两个及以上的从机向主机回传数据。
至于为什么从向主要加个二极管,而主向从不用,请查看下RS232的逻辑电平定义就马上懂了,主要原理是利用了二极管的单向导通性,以避免非工作从机电平影响工作从机的电平。
兄弟们要遇到像这样的应用需要,不妨一起验证一下。
有漏洞的地方欢迎交流、指正!最后祝兄弟们工作顺利!

本帖子中包含更多资源

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

×
ayb_ice 发表于 2013-8-15 11:39 | 显示全部楼层
没有人说不可以吧
lanchong1980 发表于 2013-8-15 11:44 | 显示全部楼层
zhichi xia
joyme 发表于 2013-8-15 13:43 | 显示全部楼层
我也在用1主10从,很正常的用法,没什么不可以的
 楼主| 技美电子 发表于 2013-9-9 18:28 | 显示全部楼层
dqyubsh1 发表于 2013-9-9 19:46 | 显示全部楼层
只要能确保不会有两个及多个从设备同时发送数据就可以实现互连。
杨爱林林 发表于 2013-9-10 12:14 | 显示全部楼层
不同时收发就好了啊
413163297 发表于 2013-11-5 11:17 | 显示全部楼层
我也这么用的,可是一个从机的时候通讯正常,接上第二个从机之后通讯第二个从机通讯正常,可是第一个从机貌似有时候收到主机的信息很慢,因为我的调试程序是主机发送地址号,从机收到判断是否是自己的地址号是的话回传地址号,两个从机都接上的话,第一个从机有时候主机要发好几遍地址号它才回传一个,这是怎么回事啊?
 楼主| 技美电子 发表于 2014-1-18 15:35 | 显示全部楼层
413163297 发表于 2013-11-5 11:17
我也这么用的,可是一个从机的时候通讯正常,接上第二个从机之后通讯第二个从机通讯正常,可是第一个从机貌 ...

会不会是从机地址重复了。:)
原野牧歌 发表于 2014-1-27 23:30 | 显示全部楼层
类似I2C的地址号的,协议自定义……
andy_mqy 发表于 2014-1-28 10:37 | 显示全部楼层
楼主能否解释一下从设备配置二极管
萍水e相逢 发表于 2014-3-31 22:25 | 显示全部楼层
有 主从连接模块

E232H4 4路RS-232高速隔离集线转换器

▶ 实现一个串口设备与4个串口设备主从式通信
▶ 专用工业导轨槽模块
▶ 两端信号保持光电隔离;
▶ 全面容错机制,一路从节点损坏不影响其他节点通信
古董 发表于 2014-12-1 21:51 | 显示全部楼层
做个记号
啦啦啦007 发表于 2015-8-2 16:33 | 显示全部楼层
请问这样的结构可以支持多少个从机啊?我想用stm32实现1个主机12个从机(从机想用stm8),看了很多帖子说法不一,不知道能不能支持这么都从机~~~~第二问题是您都是自己写通信协议的吗?stm32自带的库函数好像一帧最多9个数据位(本来想如果是10位就可以用前面两位来做地址位的)~~~~第三个问题:这个通讯一般速度可以达到多快啊?~~~菜鸟求教,灰常感谢!
panamatw 发表于 2015-8-3 09:07 | 显示全部楼层
核桃炸炸炸 发表于 2017-1-3 18:53 | 显示全部楼层
joyme 发表于 2013-8-15 13:43
我也在用1主10从,很正常的用法,没什么不可以的

请问下,我想用RS232串口来与多个TTL的从机进行通讯,单个和两个都已经成功了,能在PC发送和接受到数据;每个都已设地址,但接到第3个的时候就不能通讯了,求指教! 谢谢
核桃炸炸炸 发表于 2017-1-3 18:54 | 显示全部楼层
杨爱林林 发表于 2013-9-10 12:14
不同时收发就好了啊

请问下,我想用RS232串口来与多个TTL的从机进行通讯,单个和两个都已经成功了,能在PC发送和接受到数据;每个都已设地址,但接到第3个的时候就不能通讯了,求指教! 谢谢
joyme 发表于 2017-1-6 12:06 | 显示全部楼层
RXD有自己加上拉电阻吗?多个接收端的时候需要考虑主机TXD是否驱动能力足够
 楼主| 技美电子 发表于 2017-1-13 11:33 | 显示全部楼层
joyme 发表于 2017-1-6 12:06
RXD有自己加上拉电阻吗?多个接收端的时候需要考虑主机TXD是否驱动能力足够 ...

具体看情况,一般不用
henglin 发表于 2017-1-28 22:01 来自手机 | 显示全部楼层
好东西
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:技美电子——单片机开发,常用DIY电子元件和工具配套:http://lintar.taobao.com

6

主题

264

帖子

2

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