资讯详情

通信-RS232、RS485、RS422

本内容包括RS232、RS485与RS介绍422接口、优缺点、针脚定义,与相关电路相关的集成介绍,验证串口和波特率的质量,STM32的URAT几个与单片机串口调试的小技巧等。紫色文字是超链接,点击自动跳转到相关博客。不断更新,原创不容易!
目录:
1)RS232传输方式 2)RS422/RS485传输方式 3)消除通信线上的共模和差模干扰
1)两者的实物图片 2)检测电路 3)检测结果 4)MCU与设备通信(通过串口芯片或直接连接)
1)集成简介 2)一般应用电路 3)带隔离的RS485电路
1)电路图 2)无源转换原理 3)RS485接口保护电路
1)PL2303连接电路 2)CH431连接电路
1)实验方法 2)实测两种波特率示波器 3)总结
---------------------------------------------------------------------------------------------------------------------
EIA-422(过去称为RS-422)是一系列的规定采用4线、全双工、差分传输、多点通信的数据传输协议。它采用平衡传输采用单向/非可逆,有使能端或没有使能端的传输线。和RS-485不同的是EIA-422不允许出现多个发送端而只能有多个接受端。硬件构成上EIA-422(RS-422)相当于两组EIA-485(RS-485),即两个半双工的EIA-485(RS-485)构成一个全双工的EIA-422(RS-422)。
RS-422是差模传输,抗干扰能力强,能传1200米,RS232最多传输15米。
-----------------------------------------------------------
1)RS232电平
逻辑1(MARK)=-3V~-15V
逻辑0(SPACE)=+3~+15V
介于-3V~+3V之间的电压无意义,低于-15V或高于+15V的电压也认为无意义。
------------------------------
2)RS485、RS422电平
RS485电平和RS422电平由于两者均采用差分传输(平衡传输)的方式,所以它们的电平方式,一般有A、B两个引脚。
发送端AB间的电压差:
+2V~+6V  逻辑1
-2V~-6V  逻辑0
----------------
接收端AB间的电压差:
大于 +200mV   逻辑1
小于 -200mV   逻辑0
----------------
定义逻辑1为B>A的状态
定义逻辑0为A>B的状态
AB之间的电压差不小于200mV。
-----------------------------------------------------------
RS232可做到双向传输,全双工通讯   最高传输速率20Kbps;
RS422只能做到单向传输,半双工通讯,最高传输速率10Mbps;
RS485双向传输,半双工通讯,最高传输速率10Mbps。
----------------
RS232与RS485同为异步数据传输方式,都是用于数字信号的传输,仅仅是传输的方法不同。以传输一个8位二进制数值“01001000”为例说明。
------------------------------
1)RS232传输方式
由于RS232采用三线制传输分别为TXD、RXD、GND,其中TXD为发送信号,RXD为接收信号。
在RS232中任何一条信号线的电压均为负逻辑关系。即:逻辑“1”,为信号线对GND电压为-5~-15V;逻辑“0”,为信号线对GND电压为 +5~+15V。理论上说,当要发送“01001000”这个数据时,在TXD信号线上应该测量到的波形为:

之所以说是理论上,是因为在异步数据传输时,要增加起始位、校验位、结束位。
------------------------------
2)RS422/RS485传输方式
采用4线差分传输,发送数据线为T+\T-,接收数据线为R+\R-。
在RS422总线中:数据“1”以两线间的电压差为+2V~+6V表示;数据“0”以两线间的电压差为-2~-6V表示。理论上说,当要发送“01001000”这个数据时,在T+/T-直接的差值在信号线上应该测量到的波形为:

也就是说,RS232的数据是TXD与GND之间的电压代表数据,而RS422的数据是T+与T-之间的电压代表数据。差分信号抗干扰性强,所以RS422更加适合于远距离传输。
RS485是RS422的半双工版本,即T+/T-与R+/R-不同时存在,传输线只有两根,当发送信号时切换为T+/T-,当接收信号时,切换为R+\R-。至于传输的方式与RS422一致。
------------------------------
3)消除通讯线上的共模和差模干扰
485通信线由两根双绞的线组成,它是通过两根通信线之间的电压差的方式来传递信号,因此称之为差分电压传输。
差模干扰在两根信号线之间传输,属于对称性干扰。消除差模干扰的方法是在电路中增加一个匹配电阻,并采用双绞线;
共模干扰是在信号线与地之间传输,属于非对称性干扰。消除共模干扰的方法包括:
(1)采用屏蔽双绞线并有效接地;
(2)强电场的地方还要考虑采用镀锌管屏蔽;
(3)布线时远离高压线,更不能将高压电源线和信号线捆在一起走线;
(4)采用线性稳压电源或高品质的开关电源(纹波干扰小于50mV)。
----------------
485总线要采用手拉手结构,而不能采用星形结构。星形结构会产生反射信号,从而影响到485通信。总线到每个终端设备的分支线长度应尽量短,一般不要超出5米。分支线如果没有接终端,会有反射信号,对通讯产生较强的干扰,应将其去掉,最好在RS485设备两头接有120R终端电阻。
采用增加一个RS485分配器。可以有效地将星形连接转换为符合RS485工业标准所规定的连接方式,从而避免产生问题,提高通信可靠性,如图所示。

----------------------------------------------------------------------------------------------------------------------
电路中常用DB9形式连接,管脚定义为2(RXD)、3(TXD)、5(GND),记忆为2R+3T=5G(2G接收3G发送的值为5G)。因此习惯的把RS232接口叫做DB9。
市场上把公头的接插件叫做DR**,母头的叫DB**,比如我们电脑上的串口,在市场上叫做DR9,不是DB9,很多人都误叫做DB9,实际上的DB9是把两个DR9互相连接在一起的接口。一般在教材或者文章中,大家常常把所有的串口设备接口都统一叫做RS232接口。
------------------------------
由于RS232接口标准出现较早,具有以下特点:
接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL电平不兼容故需使用电平转换电路方能与TTL电路连接。
传输速率较低,在异步传输时,波特率为20Kbps。
接口使用一根信号线和一根信号返回线而构成共地的传输形式,容易产生共模干扰,所以抗噪声干扰性弱。
传输距离有限,最大传输距离标准值为50英尺,实际上也只能用在50米左右。
接收数据的发送数据分开,可以同时接收和发送数据,异步全双工传输。
-----------------------------------------------------------
针对RS232接口的不足,于是就不断出现了一些新的接口标准,RS485就是其中之一,它具有以下特点:
RS485的电气特性:逻辑“1”以两线间的电压差为+(2-6) V表示;逻辑“0”以两线间的电压差为-(2-6)V表示。接口信号电平比RS232降低了,就不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便与TTL 电路连接。
RS485的数据最高传输速率为10Mbps。
RS485接口是采用平衡驱动器和差分接收器的组合,抗共模干能力增强,即抗噪声干扰性好。
RS485接口的最大传输距离标准值为4000英尺,实际上可达3000米,另外RS232接口在总线上只允许连接1个收发器,即单站能力。而RS485接口在总线上是允许连接多达128个收发器。即具有多站能力,这样用户可以利用单一的RS485接口方便地建立起设备网络。
RS485接口组成的异步半双工网络,一般只需二根连线(叫AB线),不接地线,所以RS485接口均采用屏蔽双绞线传输。
-----------------------------------------------------------

-----------------------------------------------------------

----------------------------------------------------------------------------------------------------------------------
1)两者实物图片

------------------------------
2)检测电路

------------------------------
3)检测结果
SP3232EEN比SP232EEN通信波特率要高,SP3232EEN可以在115200及以上;SP232EEN在19200及以下。
------------------------------
4)MCU与设备通讯(通过串口芯片或直连)

MCU与DCE通讯可以有两种方式,如下图。

-----------------------------------------------------------
1)集成简介
SP485EEN/SP3485EEN是SOIC封装,SP485EEP/SP3485EEP是PDIP封装。其中SP485EE一般5V电源,SSP3485EE可用在3.3V供电场合。

功能框图

SP485EE引脚定义

SSP3485EE引脚定义
----------------
 RE为低电平时,SSP3485 进入接收器模式。功能真值表如下图所示:

----------------
 DE为高电平时,SP3485进入驱动器模式。功能真值表如下表所示:

------------------------------
2)一般应用电路

上图中,TX、RX引脚均需要上拉电阻,这一点特别重要。
接收:默认没有数据时,TX为高电平,三极管Q1导通,RE为低电平使能,RO收数据有效,RS485为接收态。
发送:发送数据1时,TX为高电平时,三极管导通,DE为低电平,此时收发器处于接收状态,驱动器就变成了高阻态,也就是发送端与A\B断开了,此时A\B之间的电压就取决于A\B的上下拉电阻了,A为高电平、B为低电平,也就成为RS485的逻辑1了。
发送数据0时,TX为低电平,三极管截止,DE为高电平,驱动器使能,此时正好DI接地,也就是低电平,驱动器也就会驱动输出B为1,A为0,也就是所谓的RS485的逻辑0了。
理解自收发的作用,关键是要理解RE和DE的作用,尤其是DE为0时,驱动器与A\B之间就是高阻态,也就是断开状态,而且A\B都要有上下拉电阻。然后就有了逻辑0-1间的切换。所以很巧妙,但这里也有一个很明显的bug,只适用于“半双工”,如果是全双工就不行了,因为TX为1时,接收使能,此时从机如果回复数据就乱了。
----------------
基本原理理解了,除了使用三极管实现,还可以使用施密特触发器,也就是所谓的“非”门来显现,如下图所示:

基本原理与三极管相同,TX为1时,经过施密特触发器进行“非”运算,DE为0,则接收使能,驱动器呈高阻态,此时A\B的电平就是上下拉电阻的电平,也就是逻辑1。TX为0时,DE为1,发送使能,由于DI接地,也就是0,A\B输出也是0。
------------------------------
3)带隔离的RS485电路

-----------------------------------------------------------
由于有的设备是232接口的,有的是485接口的,如果有一台232接口的设备与一台485接口的设备通信,那就需要一个RS232/RS485转换器,把232接口的设备的232信号转换成485信号,然后再与485接口的设备通信。如是两台232接口的设备要进行远距离的通信,那只要加上两个RS232/RS485转换电路就可以了。
市场上所谓的“无源RS232/RS485转换器”采用从计算机串口偷电技术,一般多用于负载少,通信距离短的485总线网络。

而“有源RS232/RS485转换器”在电路原理图与前者差不多,只是电源部分有所改动而己。有源的转换器相互间不共地,比无源的转换器抗干扰性能更好。说明如下。

------------------------------
1)电路图

------------------------------
2)无源转换原理
RS232/RS485转换器主要包括了电源、232电平转换、485电路三部分。本电路的232电平转换电路采用了NIH232或者也可以直接使用MAX232集成电路,485电路采用了MAX485集成电路。为了使用方便,电源部分设计成无源方式,整个电路的供电直接从PC机的RS232接口中的DTR(4脚)和 RTS(7脚)窃取。PC串口每根线可以提供大约9mA的电流,因此两根线提供的电流足够供给这个电路使用了。经实验,本电路只使用其中一条线也能够正常工作。使用本电路需注意PC程序必须使串口的DTR和RTS输出高电平,经过D3稳压后得到VCC,经过实际测试,VCC电压大约在4.7V左右。因此,电路中要说D3起的作用是稳压还不如说是限压功能。
MAX485 是通过两个引脚RE(2脚)和DE(3脚)来控制数据的输入和输出。当RE为低电平时,MAX485数据输入有效;当DE为高电平时,MAX485数据输出有效。在半双工使用中,通常可以将这两个脚直接相连,然后由PC或者单片机输出的高低电平就可以让MAX485在接收和发送状态之间转换了。由于本电路 DTR和RTS都用于了电路供电,因此使用TX线和HIN232的另外一个通道及Q1来控制MAX485的状态切换。平时NIH232的9脚输出高电平,经Q1倒相后,使MAX485的RE和DE为低电平而处于数据接收状态。当PC机发送数据时,NIH232的9脚输出低电平,经Q1倒相后,使 MAX485的RE和DE为高电平而处于数据发送状态。
------------------------------
3)RS485接口保护电路

-----------------------------------------------------------
1)PL2303连接电路

------------------------------ 2)CH431连接电路

----------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------
如果你要调试串口,只有一块板,计算机又不在手边,你可以用函数发生器器当串口发送器来用,如你的波特率是9600,那你把函数发生器频率调到9600/2=4800HZ上输出TTL电平直接到RXD上就行了,如果是RS232接口,你频率不变就选函数发生器双极性(交流输出)就是了,注意电平有峰峰值12VPP就够了,此时你的单片机收到数据必须是55H,你可以用MOV P1,SBUF,在P1上去测电压,这样没显示也可测试串口了。理论依旧:
55H=01010101 串口起始位是0,先发55H最低位,于是一帧就是0(启始)101010101(停止)................0(启始)101010101(停止)......正好是1/2波特率的方波。
----------------------------------------------------------- 你可以这样来做:发送00H 0FFH 55H,如果这三个值都能正确接受,那网络一定能可靠传输了,这就是以点代面的测试方法。 理由:00H 0FFH是最宽的脉冲和电平(代表能量)最大/最小的脉冲,用信号系统话说他们代表是直流,而55H是最窄脉冲,它代表是最高频和能量中间值.既然最低的能过,最大也能过,最宽能过最窄也能过,大能量(抗干扰强)低能量(代表抗干扰弱)中能量也能过,你会相信中间的和不垃圾的过不了吗! ----------------------------------------------------------- 同步头用谁?------7FH,且开始同步时连续发送! 看7FH的发送  0起始11111110---1停止 瞧011111110多对称!当你收到两个0中间夹了连续个1的数据后,只要用连续1的时间除以0的持续时间=7,说明这就是同步头了,且一个标准码元持续时间就是码元0的持续时间,其波特率=1/(0码元持续时间)。
----------------------------------------------------------------------------------------------------------------------
USART中这两个引脚的功能,这两个引脚是USART串行通信最常见和必不可少的两个引脚。但我们在手册中会发现关于USART的其它引脚:USART_CK、USART_RTS、USART_CTS,如下图:

-----------------------------------------------------------

----------------------------------------------------------------------------------------------------------------------

Serial Monitor软件的下载移步“https://download.csdn.net/download/liht_1634/85117979”。

-----------------------------------------------------------

----------------------------------------------------------------------------------------------------------------------

以波特率115200 = 115200 (bit/S)为例说明:

没有校验位,就应该除以 10(起始位1、数据位8、停止位1),得到的是每秒字节数。

波特率115200 = 115200 (bit/S) = 11520 (Byte/S)

再除以 1024,就是每秒 KB 数:波特率115200 = 115200 (bit/S) = 11.25 (KB/S)

有一位奇偶校验位,就应该除以 11(起始位1、数据位8、停止位1、奇偶校验位1),得到的是每秒字节数。

波特率115200 = 115200 (bit/S) = 10.27 (KB/S)

-----------------------------------------------------------

----------------------------------------------------------------------------------------------------------------------

标签: 型公头负载终端连接器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台