一、RS485 通信----简介
RS485 是美国电子工业协会Electronic Industries AssociationEIA于1983年发布的串行通信接口标准经通讯工业协会TIA修订后命名为 TIA/EIA-485-A。
RS485 是一种工业控制环境中常用的通讯协议其中RS 是 Recommended Standard 的缩写。
RS485 是 半双工异步 串行通信。
-
支持多节点一般最大支持 32 个节点。
-
传输距离远最远通讯距离可达1200米。
-
抗干扰能力强差分信号传输。
-
连接简单只需要两根信号线A+和B-就可以进行正常的通信。
RS485 通信采用差分信号传输通常情况下只需要两根信号线就可以进行正常的通信。
在差分信号中逻辑0和逻辑1是用两根信号线A+和B-的电压差来表示。
-
逻辑 1两根信号线A+和B-的电压差在 +2V~+6V 之间。
-
逻辑 0两根信号线A+和B-的电压差在 -2V~-6V 之间。
在 RS485 通信网络中通常会使用 485 收发器来转换 TTL 电平和 RS485 电平。
节点中的串口控制器使用 RX 与 TX 信号线连接到 485 收发器上而收发器通过差分线连接到网络总线。
串口控制器与收发器之间一般使用 TTL 信号传输收发器与总线则使用差分信号来传输。
发送数据时串口控制器的 TX 信号经过收发器转换成差分信号传输到总线上。
接收数据时收发器把总线上的差分信号转化成 TTL 信号通过 RX 引脚传输到串口控制器中。
通常在这些节点中只能有一个主机剩下的全为从机。
在总线的起止端分别加了一个 120 欧的匹配电阻。
具体连接图如下所示
二、RS485 通信----电路图SP3485
SP3485 芯片是一款非常经典的+3.3V低功耗半双工RS485收发器数据传输速率高达10Mbps。
单片机串口通信一般是TTL电平如果需要RS485 通信就需要RS485芯片在中间转换一下。
因为RS485通信是半双工通信就是发送数据的时候不能同时接收数据所以我们选择SP3485做RS485收发器。
SP3485 芯片的引脚图如下所示
引脚 | 名称 | 功能 |
---|---|---|
1 | RO | 接收器输出 |
2 | RE | 接收器输出使能低电平-接收使能 |
3 | DE | 驱动器输出使能高电平-发送使能 |
4 | DI | 驱动器输入 |
5 | GND | 接地 |
6 | A | 驱动器输出/接收器输入同相 |
7 | B | 驱动器输出/接收器输入反相 |
8 | VCC | 芯片供电+3.3V |
RS485 电路图如下图所示
RS485 普通收发电路图原理
-
RS485_EN 为高电平逻辑为1发送使能接收禁止。
-
RS485_EN 为低电平逻辑为0发送禁止接收使能
在编写驱动程序时
-
在发送数据前给RS485_EN 置高电平。
-
在发送数据后给RS485_EN 置低电平。
RS485 电路图如下图所示
RS485 自动收发电路比RS485 普通收发电路增加了一个三极管开关电路是由电阻R8、电阻R9 和 NPN三极管Q1 组成。
R9是限流电阻最好选择4.7K也可以选择10K。
R8是上拉电阻可以选择4.7K或者10K。
NPN三极管Q1高电平导通低电平截止。
接收数据
接收数据引脚是 RS485_RX在接收数据过程中RS485_TX引脚一直保持高电平NPN三极管Q1导通RE和DE的引脚是低电平发送禁止接收使能进入接收状态。
发送数据
发送数据引脚是 RS485_TX应该 RS485_TX 发送1AB发送1RS485_TX 发送0AB发送0。
-
当 RS485_TX 发送1时NPN三极管导通RE和DE的引脚是低电平发送禁止接收使能进入接收状态SP3485芯片的AB引脚进入高阻状态因为R4把A拉高R5把B拉低所以AB传输的是1。所以当RS485_TX发送1时AB引脚发送1。
-
当 RS485_TX 发送0时NPN三极管不导通RE和DE的引脚是高电平进入发送状态SP3485芯片会把DI上的电平反应到AB引脚上输出因为DI已经接地所以AB引脚会传输0。所以当RS485_TX发送0时AB引脚发送0。