首页|傲世皇朝注册|平台
首页|傲世皇朝注册|平台
全站搜索
 
 
新闻详情
 
当前位置
首页,宗盛娱乐平台,首页
作者:管理员    发布于:2023-10-27 21:31    文字:【】【】【
       

  首页,宗盛娱乐平台,首页RS-485是差分传输,如果用单片机控制RS-485接口的设备,需要用到收发器,这一点和CAN总线是类似的,如下是一个MCU控制一个RS-485的图示。

  当驱动器使能引脚DE为逻辑高时,差分输出A和B遵循数据输入D处的逻辑状态。D处的逻辑高导致A转为高,B转为低。在这种情况下,定义为VOD=VA-VB的差分输出电压为正。当D为低时,输出状态反转,B变高,A变低,VOD为负。

  当接收器使能引脚RE逻辑低时,接收器被激活。当定义为VID=VA–VB的差分输入电压为正且高于正输入阈值VIT+时,接收机输出R变高。当VID为负且低于负输入阈值VIT-,接收机输出R变低。如果VID在VIT+和VIT-之间,则输出不确定。

  上面讲到的RS-485收发器的工作原理,下面简单描述RS-485的数据链路。

  主机的GPIO会控制RS-485收发器的DE管脚,设置发送模式,从UART TXD线收发器的数据(D或DI)线发送一个字节,收发器将在A和B线上将单端UART位流转换为差分位流,数据离开收发器后,主机立即将收发器的模式切换为接收模式。

  从机和主机是类似的,从机控制RS-485收发器的/RE管脚,设置为接收模式,接收主机发送的比特流,将其转换为单端信号,通过从机的UART RXD线接收,当从机准备好响应时,它按主机原来的方式进行发送,而主机变为接收。

  RS-232和RS-485之间可以转换,一个方法是RS-232转换成TTL,再由TTL转换为RS-485,当然也有芯片支持将RS-232直接转换成RS-485,网上有很多模块。

  RS232接口是一种用于近距离(最大30-60米)、慢速度、点对点通讯的通讯协议,在RS232中一个信号只用到一条信号线,采取与地电压参考的方式,因而在长距离传输后,发送端和接收端地电压有出入,容易造成通讯出错或速度降低。

  RS485/422接口采用不同的方式:每个信号都采用双绞线(两根信号线)传送,两条线间的电压差用于表示数字信号。例如把双绞线中的一根标为 A(正),另一根标为B(负),当A为正电压(通常为+5V),B为负电压时(通常为0),表示信号“1”;反之,A为负电压,B为正电压时表示信号 “0”。RS485/422允许通讯距离可达到1200米,采用合适的电路可达到2.5MB/s的传输速率。RS422与RS485采用相同的通讯协议,但有所不同:它采用两根双绞线,数据可以同时双向传递(全双工)。 而RS485则采用一根双绞线,输入输出信号不能同时进行(半双工),RS485可用于多点通讯,一条信号线上可连接多个设备,它通常采用主/从结构。

  )图7在RS422(全双工)通信中,因信号的输入和输出分开,所以需要两根双绞线来传送输入和输出信号,标为A、B、Y、Z(A为输入信号的正极,B为输入信 号的负极,Y为输出信号的正极,Z为输出信号的负极)。发送信号时,由TXD输出的TTL电平信号经RS422转换器后,从发送器(Y和Z)输出RS485/RS422 信号;接收信号时,RS485/RS422信号经接收器(A和B)接收后,RS422转换器将信号转换为TTL电平信号,传给串口的RXD。

  以上图片只是贴出了一半的接线图,这里给出一张多机通讯的RS485接线原理图(半双工)

  DM485的输出端最多可以连接256个RS485接口,其典型接法如图3(半双工)和图4(全双工)所示。在最远的两个终端上,输入和输出端之间各需接 上一个120欧姆的电阻。在RS485/RS422的接口连接时,甲接口的输出端接乙接口的输入端,双绞线的正极接正极,负极接负极;甲接口的输入端接乙 接口的输出端,双绞线的正极接正极,负极接负极。

  1、在长距离传输中,一定要使用用双绞线、多终端传输时,距离最远的两个终端上,输入和输出端之间一定连接120欧姆的电阻。

  补充:我不知道为什么那么多的资料都没有说明RS485通信发送和接收数据时的细节,都只说2根线就能发送和接收数据?注意:485芯片有个控制端,控制端高电平时候为接收数据,低电平时候为发送数据。而我们在实际项目开发的时候,在使用RS485通信时,如果自己的电路并没有设计成RS485硬件自收发切换的电路,则需要自己控制485的收发使能引脚。即发送数据时,需要拉低485芯片控制端的IO口;相反接收数据时,需要拉高控制端的IO口。需要自己控制收发的485芯片原理图:

  控制策略:UART_CON为低电平,485处于接收状态;UART_CON为高电平,485处于发送状态。通过切换UART_CON的电平来达到485收发状态的切换。

  接收:默认没有数据时,在接收数据的过程中,TXD引脚是一直保持高电平的,三极管导通,RE低电平使能,485芯片处于接收状态,然后485芯片的RO引脚(也就是接RXD的引脚)就会反应AB传输过来的数据。

  发送:发送数据时,TX会先有一个下拉的电平(起始位-由高向低),表示开始发送数据,此时三极管截止,DE为高电平发送使能。当发送数据“0”时,由于DI接口相当于接地,此时数据“0”就会传输到AB扣,A-B

  注意:这里面有个疑惑,发送数据“1”,三极管RE低电平有效,应该是接收使能,为什么芯片是高阻态呢?这是因为UART发送数据是有一定格式的,TX和RX数据均以“位”为最小单位进行传输,在发送数据之前,UART之间要约定好数据传输速率,即波特率,数据传输格式(数据位,校验,停止),平时数据线状态),当发送数据时,TX由“1”变为“0”维持1位的时间,这样接收方检测到开始位后,再等待1.5位时间就开始一位一位的进行数据传输了,也就是说,已经确定好发送状态,电路发送“1”时RE虽然有效,但是由于它处于发送阶段,芯片也不会收,即芯片处于高阻状态。

  虽说RS-485没有标准的数据协议格式,但和CAN总线在很多地方是有相似的,比如A&B和CANH&CANL都是差分信号,通信都需要收发器,都需要120欧姆的匹配电阻等等。

  图151)使能信号RE和DE可采用一个GPIO控制,节省资源,GPIO25输出高电平,RE=DE=0V,进入接收模式;GPIO25输出低电平,RE=DE=3.3V,进入发送模式。

  2)有一些电路中会在A上加上拉,B上加下拉电阻,主要原因是:RS-485总线在idle状态,电平是不固定的,即电平在-200mV~+200mV之间,收发器可能输出高也可能输出低,UART在空闲时需要保持高电平的,如果此时收发器输出一个低电平,对UART来说是一个start bit,会导致通信异常。

相关推荐
  • 星游娱乐-安全吗
  • 首页,宗盛娱乐平台,首页
  • 花都娱乐-手机网址
  • 主页@盛博娱乐@主页
  • 红彩娱乐主管-首选首页
  • 首页_天九注册_首页平台
  • 首页“百世娱乐注册
  • 首页〈红彩娱乐〉首页
  • 首页「聚星注册_首页
  • 鼎汇-鼎汇平台-「联盟认证注册」
  • 脚注信息
    友情链接: