首页 新闻 工控搜 论坛 厂商论坛 产品 方案 厂商 人才 文摘 下载 展览
中华工控网首页
  P L C | 变频器与传动 | 传感器 | 现场检测仪表 | 工控软件 | 人机界面 | 运动控制
  D C S | 工业以太网 | 现场总线 | 显示调节仪表 | 数据采集 | 数传测控 | 工业安全
  电 源 | 嵌入式系统 | PC based | 机柜箱体壳体 | 低压电器 | 机器视觉
单片机的RS-485/422多机通信方案
收藏本文     查看收藏

                                    武汉波仕电子公司  2011-3

8051单片机的串行通信里可以支持多处理器通信,本文讨论的就是这方面的技巧。不过若连接的对象是PC机时,(9600bps,n,8,1)反而是最常用的通信格式,所以本文介绍的是要实现多个8051单片机与PC机的连接实例,因为PC机身我们身边最常用且最方便取得外部设备,当然你也可以用两块8051单片机做串口通信实验。

 

     8051单片机串行传输模式2和模式3可以做多处理器通信,其中的重点正在SCON寄存器的SM2位和TB8及RB8位上,这几位就决定了多处理器通信的核心。至于波特率的问题,只要发送与接收的双方一致即可。图1 是一个典型的多处理器通信的连接示意图。

     多处理器通信与RS-232的一对一通信的最大的差异就是多了一个地址传输码。一对一通信时,我送数据就轮到你接收,而你送数据时就换成为我接收,完全没有商量的余地。但是多处理器通信时,主CPU发出的信息如何正确地传到某个从CPU呢?针对这个问题,在多处理器系统中每一个从CPU都有其特定的编号(也有人称为ID),在数据传输前面个从CPU都处于待命的状态,当主CPU指定到某个特定的从CPU时,改从CPU才开始接收或发送数据,而这项指定特定从CPU的操作,实际上就是送出地址ID值,每个从CPU上的程序收到地址后,会先判断一下是否叫到要启动,若属实则开始执行启动的所有程序。接下来我们用一步一步说明的方式,详细介绍多处理器通信额程序。

     在多处理器通信中我们一直提到“地址传送”,在串行通信时,我们如何去辨别地址值(Adress)和数据(Data)呢?这正是8051串行模式2和模式3的魅力所在。当8051工作在以上两个模式时,除了数据占8位外,传输时多了一个TB8位,接收时则多了一个RB8位。在多处理器通信时,当TB8=1代表正传输一个地址值,该地址值有8位宽,所以理论上可以连接256个CPU在同一个系统中。TB=0代表正在传输一个数据值,在此串行传输线上,每笔串行数据共有11个位,但其中以第10个位的状态来区分地址或数据,接收端可以依此格式立刻判断出其中的差异来。

   在从CPU上通常以串行中断的方式来对待进来的数据,若把SCON寄存器的SM2位设置成为1时,即允许8051的串行接口做多处理器的地址判断,在这个模式下:

    CPU只在接收地址值(其RB8=1)时才产生中断要求。

    在串行中断的服务程序上,只要由SBUF内读回地址值,再做一个判断是否被调用。若YES时则跳去执行程序设置的操作,若NO时则不做任何操作,随即结束此中断服务程序回主程序,被指定到的从CPU先设置成为SM2,然后开始发送或者接收数据,而其他的从CPU并未启动传输,所以此瞬间仍然是一对一的通信,当主CPU在最初的发送地址阶段却是一对多的通信。图1的连接方式是否可以用RS-232呢?答案是否定的。

    当主CPU传送数据给各从CPU时,如果只有发送其他都是接收的情况下是可以使用RS-232的构架,可是当主CPU欲收数据而其中只有一个从CPU发送时,会造成数据电平冲突,使得主CPU无法由RXD脚上得到正确值。因此,在实际应用上改采用另外一种传输规格RS-422,这种传输方式只有传输的硬件上不同而已,软件上的串行通信程序都无需做任何修改。波仕电子的H485C型号的转换器可以实现单片机TTL电平的串口与RS-422之间的相互转换。RS-422的传输线有4条(T+、T—、R+、R—),其连接方式如图2。注意波仕电子的H485C转换器还具有将PC机的RS-232转换为RS-422/485的功能,所以如果上位机的接口上计算机的RS-232口,也一样可以用H485C。

  

   另外一种常用的多处理器传输的接口上RS-485接口,只要2根线就可以将多个CPU连接在一起,这种做法使得数据共享的可能性大为提高,请看图3的RS-485连线图。波仕电子的H485C型号的转换器还可以实现单片机TTL电平的串口与RS-422之间的相互转换,。当多处理器以RS-422接口连接时,一定有一个主CPU和多个从CPU,若想作从CPU之间的数据传输时,所传输的路径是从CPU到主CPU ,然后由主CPU再送给另外一个从CPU。若采用图3的RS-485构架时,只要传输线空闲,任意两个CPU,无论主从,都可以相互传输数据,完全没有主从之分。若以此构架再做发展时,就形成了现在我们常用的ARCNET或ETHERNET的LAN网络了。

 

   为什么要将8051的串行口抓换为RS-485呢?首先可以方便地实现多机通信。另外通信距离也有TTL的几米延长到了1200米!虽然波仕的H485C也可以将PC机的RS-232口转换为RS-485或者RS-422,但是现在许多新的计算机都已经没有了RS-232串行口,且操作系统都是WINDOWS。那么就需要加USB到RS-485的转换器。由于USB的驱动程序几乎都是WINDOWS版的,所以你只能够在WINDOWS下与从单片机进行通信。波仕的USB1485型号的转换器提供了USB与RS-485或者RS-422的转换。


 

状 态: 离线

公司简介
产品目录
供应信息

公司名称: 武汉波仕电子有限公司
联 系 人: 孙汉华
电  话: 027-87561487
传  真: 027-87561486
地  址: 关东科技工业园
邮  编: 430074
主  页:
 
该厂商相关解决方案:
用HUB实现CAN设备的环形网络通信
隔离RS-485转换器在“两会”投票器上的应用
CAN光纤转换器在宝马生产线上的应用
USB智能共享器无须设置
自带地址编码的RS-485通信
USB接口的光电隔离保护方案及其实现
485A2+应用案例-485多机组网中继转换一体化
波仕卡485A转换器的使用技巧
RS-485的手拉手连接
RS-232/485转换器的复用方案
波仕RS232转RS485串口远距离多机通信-煤矿业应用案例
如何选择USB串口转换器
更多方案...
立即发送询问信息在线联系该解决方案厂商:
用户名: 密码: 免费注册为中华工控网会员
请留下您的有效联系方式,以方便我们及时与您联络

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 不良信息举报
工控网客服热线:0755-86369299
版权所有 中华工控网 Copyright©2022 Gkong.com, All Rights Reserved