产品
有人云 — 物联网云平台 零编程,组态拖拽即可实现远程监控。同时支持私有部署,拥有属于自己的软硬件一体化方案
200
+
私有云项目
数据本地化
业务个性化
10
+
万 公有云注册用户
80%公有云功能免费
付费VIP享自定义品牌服务
有人云官网
有人智造 — ODM/EMS 依托自动化、智能化、柔性化、透明化的智能工厂,
提供代研、代料、代工一站式OEM/ODM服务
有人智造官网
有人智能 — 解决方案 打包提供云、管、边、端整体解决方案
从问题诊断、方案设计,到实施落地、系统运维
有人智能官网
新闻资讯
以太网多机与一对一通信的区别是什么
2019-09-02


  以太网多机通讯与一对一通信的最大差异就是,前者需要多传输一个地址码。一对一通信时,主机发送数据后丛集接收,而丛集发送数据是就换成主机接收,无需地址码。但是当一个主机与多个从机通信时,主机发出的信息如何正确的传输到某个从机呢?必须有地址吗?

  针对这个问题,在多计系统中,每一个从机都有其特定的编号(也有人称为地址或者ID)。在传输数据前,各个从机都处于待机接受的状态。当主机指定到某个特定的从机时,该从机才开始接收或发送数据,而这项指定特定地址从机的操作,实际上就是送出地址码。每个从机的串口都会收到主机发出的地址码,然后程序会先判断一下是否与自己的地址相同,若相同则开始启动执行程序。

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

  在从机中,通常以串口中断的方式来对待进来的数据,若把SCON寄存器的SM2位设置成为1时,即允许MCS-51的串行接口进行多从机的地址判断,在这个模式下,从机只在接收地址值(其RB8=1)时才产生中断请求。

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

  单片机的串口是TTL电平的,也就是0-5V,传输距离最远只有5m。如果想要远距离传输,还应将TTL电平转换为RS485电平。MCS-51的多机通信协议未必适合于其他种类的单片机,甚至未必适合于计算机的串口,所以统一RS485多机通信的协议就显得非常有必要。


关注有人微信公众号
了解更多信息