搜索
bottom↓
回复: 22

RS232多机通信这样连接可靠吗?距离较近,但发现从机发送,主机收不到。

[复制链接]

出0入0汤圆

发表于 2008-9-3 09:17:13 | 显示全部楼层 |阅读模式

(原文件名:Image00000.jpg)


在上图中,MCU的TXD  RXD 初始化为DDRX=0  PORTX=0   在外面上拉了4.7k电阻,发现的问题是:主机同时控制多台从机能正常通信,
但当其中一台从机向主机发送数据时(这时全部从机都上电),主机不能收到,若把其它从机关电,相当于是一对一的,则可以

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2008-9-3 09:20:51 | 显示全部楼层
你的主机接收设置有问题,这种电路我试过,从机接收后不要有反应就好

出0入22汤圆

发表于 2008-9-3 09:21:29 | 显示全部楼层
两个从鸡输出串口要冲突的,必须隔离开来。

出0入0汤圆

 楼主| 发表于 2008-9-3 09:23:59 | 显示全部楼层
楼上,主机接收设置有问题及从机接收后不要有应就好,,,能说清楚点吗?
另外我还这样试过,不要MAX232, 全部直连,则不出现如上所说情况

出0入0汤圆

 楼主| 发表于 2008-9-3 09:25:57 | 显示全部楼层
谢谢:zxq6 小马哈
直接加个二极管隔离行吗?如下图(从机不发送时,MCU的TXD端为外上拉1,经MAX232后为-15V,所以另一从机发送时,不会有冲突),或者是如何隔离较好,请指教


(原文件名:Image00001.jpg)

出0入0汤圆

 楼主| 发表于 2008-9-3 09:47:44 | 显示全部楼层
改了一下,如上图

出0入22汤圆

发表于 2008-9-3 09:52:04 | 显示全部楼层
二极管隔离可能不行,因为232通信空闲的时候好像是高电平的。

你说全部直连不会出现问题,那你就可以尝试全部直连啊,为什么还要加232转换一次呢?

出0入0汤圆

 楼主| 发表于 2008-9-3 09:59:02 | 显示全部楼层
不加MAX232  通信距离会不会受影响?  另外,我还要和PC通信,所以要加MAX232

出0入22汤圆

发表于 2008-9-3 10:01:33 | 显示全部楼层
如果要距离,建议还是485.

出0入0汤圆

 楼主| 发表于 2008-9-3 10:07:01 | 显示全部楼层
用示波器测了一下,空闲时MAX232 TX输出 -8.6v    正常通信时是-6.9v---7.68v

出0入0汤圆

发表于 2008-9-3 11:22:49 | 显示全部楼层
佩服楼主的探索精神。
话又说回来,探索是必要的,但基础知识更重要。RS232是一个用了数十年的标准,电平定义,导线,接头,连接距离,连接方式等都是有标准的,要使连接可靠工作,你自己改的电路必需要符合起电气要求,否则就不稳定。

首先,RS232是电压驱动,逻辑定义为:+3V-+15V为逻辑0,-3V-+3V为未定义,-15V--3V为逻辑1,所有芯片或电路都应该遵循这个标准,否则就不叫RS232。
其次,RS232是设计成“点对点”连接的,即一个驱动器只能驱动一个接收器,如果要在一根线上接超过1个驱动器,就不能“简单连接”,必需想办法“隔离”驱动器之间的影响——RS232驱动器本身并没有这个机制。

(4楼的电路在从机输出-主机接收端接一个下拉电阻应该是可以工作的,但应该不能接太多从机)

出0入0汤圆

发表于 2008-9-3 12:26:33 | 显示全部楼层
这样的通信不可靠,最好别用.建议用485吧,不比232差.

出0入0汤圆

发表于 2008-9-3 12:46:47 | 显示全部楼层
4楼的电路可能用,我有成功应用的实例。注意多机通信分地址帧和数据帧。

出0入0汤圆

发表于 2011-11-29 22:58:33 | 显示全部楼层
我是计算机主机,2个单片机从机,为什么从机能接收到数据却不能返回数据呢?
主机:笔记本+USB转232模块  
从机:2个SMT32F103RBT6,电平转换芯片:SP3232,地址分别是X和Y。  
通信方式,主机发送一个,从机根据地址回答一个。9600波特率,设置都完全一样。同一个程序都烧到2个从机中。  
连接关系:一个串口线分成2股,分别接2从机。  
症状:关闭其中一个从机,另外一个从机通信正常。2个都打开,则都无返回数据。  
PC发数据##XQP$$,其中头帧##,尾帧$$,X表示地址,显示2从机都接收到数据,但是地址是X的也不返回数据。  
软件部分:不管是哪个从机都会完整的接收数据##XQP$$(在接受处理程序中,在##与$$设置灯闪,2从机都闪),但要求接受到自己的地址才处理,不是自己的什么都不做。  
有个奇怪的问题:STM32一个用MAX3232,一个用SP3232,则同开机时候给SP3232发数据,完全正常有返回数据,但是MAX3232无数据返回,全部换成SP3232则都无返回数据。(因为网上说MAX3232很多不好用才都换成SP3232的,还是不行)。

出0入0汤圆

发表于 2011-11-29 23:00:43 | 显示全部楼层
谁有232多机通信成功实现的案例啊?给分享一下经验。QQ:6488904.在下感激不尽。

出0入0汤圆

发表于 2012-8-4 13:29:56 | 显示全部楼层
我现在在做串口直接三个单片机通信,也是能正常收到地址,但从机返回这个地址供主机确认,则主机接收不正确。
主机发送  SBUF=2;

从机可以接收到数据,aa=SBUF;
但用if(aa==2)
     {
           SBUF=2;  //返回供主机确认,则这句不能执行
     }

出0入0汤圆

发表于 2012-8-4 13:44:08 | 显示全部楼层
波特率不一样~

出0入0汤圆

发表于 2012-8-4 14:01:05 | 显示全部楼层
波特率都是这样的:

void  main(void)
{
    IP=0x00;
        TMOD = 0x21; /*定时器1工作方式2;定时器0工作方式0*/
        SCON = 0xf0; /*串口工作方式3,接收允许,接收地址*/
        PCON = 0x00; /*波特率 不 加倍*/
        TH1 = 0xFD; /*波特率 9600*/
        TL1 = 0xFD;
        TR1 = 1;/*定时器1开*/
        PS = 1; /*串口中断优先级 高*/
//        SM2=1;
        EA = 1; /*开总中断*/
        ES = 1; /*开串口中断*/
   while(1)
   {
          CHOSE_key();
          send_buf();
   }
}

出0入0汤圆

发表于 2013-3-4 12:50:53 | 显示全部楼层
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN

出0入0汤圆

发表于 2014-8-7 21:52:18 | 显示全部楼层
自己没做出来就别说不行,其实方法是人想出来的,既然一个可以通讯,2个为什么就不行呢?肯定是可以的,串一个二极管,然后上拉,记住主机某一个时刻只能和其中一个从机通讯,别无他法,只能用这种通讯模式了!

出0入0汤圆

发表于 2014-8-8 21:49:14 来自手机 | 显示全部楼层
努力学习中

出0入0汤圆

发表于 2015-10-19 11:01:05 | 显示全部楼层
avr_appli 发表于 2008-9-3 09:25
谢谢:zxq6 小马哈
直接加个二极管隔离行吗?如下图(从机不发送时,MCU的TXD端为外上拉1,经MAX232后为-15 ...

哥们,你这个图能用吗?我也想做个类似的东西

出0入0汤圆

发表于 2020-9-29 10:17:15 | 显示全部楼层
验证过,确实可用!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-24 04:36

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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