关于串口通信(232、485、422)和常见问题
- 格式:doc
- 大小:115.50 KB
- 文档页数:8
串⼝通信(232、485、422)常见问题及解决对于串⼝,理想的情况下,⼀般只要⼀上电,不需要太多的操作和配置,就可以通信上。
但是现实不会那么美好,总会出现各种各样的问题,这⾥并不对串⼝的编程作讲解,主要是从应⽤的⾓度去讲⼀讲碰到的⼀些问题。
ARM嵌⼊式,提供开发板、主板、核⼼板等ARM硬件产品和解决⽅案。
1、电脑使⽤USB转串⼝可以和设备通信上,换成屏与设备就通信不上了:①有可能电脑USB转串⼝接到设备上,使⽤的是标准串⼝功能,也就是除了RX,TX,GDN外,还使⽤了其它引脚。
⽐如像欧姆龙PLC,三菱PLC,在实际与屏的通信中,就需要接某些引脚短接的情况。
②电脑与控制器或PLC通信时,是扫描波特率参数,⾃适应的,屏通信可能参数没有设备好。
在三菱,基恩⼠等PLC,就存在变化波特率进⾏通信交互的过程。
③也有可能是接线⽅式不对。
因为有些DB9,还需要公头,母头。
如果不注意的话,也会存在把TX接到TX上,把RX接到RX上,这样需要注意的地⽅。
④在这⾥补充⼀下,有时候可能会使⽤⼀些串⼝助⼿发送测试数据与控制器通信,有些串⼝助⼿的奇偶校验是不起作⽤,这个要提醒⼀下。
2、在A家的屏可以和设备通信,换成B家的屏就通信不上了:①⾸先确认⼀下接线是否正确了,RX和TX是否兼容。
②地线是否没有接。
③除了RX,TX,GND,是否还有其它引脚需要短接的。
④通信协议是否⼀致或不完善,波特率是否⼀样。
3、以前不接地线可以通信,换个设备为什么需要接地线了:这个问题和上⼀个有类似的。
因为有些设备使⽤了隔离电源。
以前不接地可以通信,有可能是地线已经在另外⼀个环路已经共地了,实际地线已经接了,所以才可以通信。
可能换了个带隔离电源的,两个设备的地是隔离的,就需要在串⼝上把地线接起来。
这个我是⾃⾝经历过的,有个客户⽼说他的设备通信不上,后来拍个照我给我,他地线没有接,他说以前不接地线可以通信的。
于是我就给他科普了⼀下。
4、⼀个设备是232,另⼀个设备是422,没有转换设备,怎么办(232与422互转的简单⽅法);这个情况我遇到过,客户的设备是422通信的,但是我⼿上并没有422设备,只有232通信可以测试。
RS-232、RS422和RS-485的区别和各自的实现方式一、殊途同归RS-232、RS422和RS-485 均属于UART是通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),仅用两根信号线(Rx 和Tx)就可以完成通信过程;而由于各自使用的电平有所不同,因此由UART转换为RS-232、RS422或RS-485时,需要经过一个SP3232E、SP3485(或则其他转换芯片)。
需要注意的是:RS-232、RS-422、RS-485 它们仅是关于UART 通讯的一个机械和电气接口标准,因此把RS-232、RS-422、RS-485 称为通讯协议,这是很不应该的(顶多是网络协议中的物理层面)。
二、RS-232接口RS-232是美国电子工业协会EIA(Electronic Industry Association)制定的一种串行物理接口标准。
RS-232 一般只使用RXD(2)、TXD(3)、GND(5)三条线;硬件原理首先涉及到了电平的变化,UART使用的芯片自身输出的电压;然后由UART的两条信号线 TX和RX转换为RX-232的 TX和RX;RX-232接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL电平不兼容故需使用电平转换电路方能与TTL电路连接。
传输速率较低,在异步传输时,波特率为20Kbps。
接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。
RS-232接口可以实现点对点的通信方式,但这种方式不能实现联网功能。
于是,为了解决这个问题,一个新的标准RS-485产生了。
三、RS-422和RS485RS-485的数据信号采用差分传输方式,也称作平衡传输,它使用一对双绞线;RS-422 的电气性能与RS-485完全一样。
主要的区别在于:****RS-422 有4 根信号线:两根发送、两根接收。
RS-232、RS-422与RS-485都是串行数据接口标准,RS-232是PC机与通信中应用最广泛的一种串行接口。
RS-232被定义为一种在低速率串行通讯中增加通讯距离的单端标准。
RS-232采取不平衡传输方式,即所谓单端通讯,而RJ45接口通常用于数据传输,最常见的应用为网卡接口。
通讯问题,和交通问题一样,也有高速、低速、拥堵、中断等等各种情况。
如果把串口通讯比做交通,UART比作车站,那么一帧的数据就好比汽车。
汽车跑在路上,要遵守交通规则。
如果是市内,一般限速30、40,而高速公路则可以到120。
而汽车走什么路,限速多少,就要看协议怎么规定了。
常见的串口协议有RS-232、RS-422、RS-485等,他们之间有何细微差别?下面我们就一起来探讨一下。
一、RS232讲解个人计算机上的通讯接口之一,由电子工业协会(Electronic Industries Association,EIA) 所制定的异步传输标准接口。
通常RS-232 接口以9个引脚(DB-9) 或是25个引脚(DB-25) 的型态出现,一般个人计算机上会有两组RS-232 接口,分别称为COM1 和COM2。
RS232电气接口分为DB9和DB25,定义如下图:其实大部分时间不用所有接口都焊接,简化图如下:二、RS422讲解RS-422标准全称是“平衡电压数字接口电路的电气特性”,它定义了接口电路的特性。
实际上还有一根信号地线,共5根线。
由于接收器采用高输入阻抗和发送驱动器比RS232更强的驱动能力,故允许在相同传输线上连接多个接收节点,最多可接10个节点。
一个主设备(Master),其余为从设备(Slave),从设备之间不能通信,所以RS-422支持点对多的双向通信。
接收器输入阻抗为4k,故发端最大负载能力10×4k+100Ω(终接电阻)。
其实大部分时间不用所有接口都焊接,简化图如下:三、RS485讲解RS-485又名TIA-485-A, ANSI/TIA/EIA-485或TIA/EIA-485。
串口通讯—RS232、RS422、RS485详解串行通信接口标准经过使用和发展,目前已经有几种。
RS-232、RS-422与RS-485都是串行数据接口标准,最初都是由电子工业协会(EIA)制订并发布的,RS-232在1962年发布,命名为EIA-232-E,作为工业标准,以保证不同厂家产品之间的兼容。
RS-422由RS-232发展而来,它是为弥补RS-232之不足而提出的。
为改进RS-232通信距离短、速率低的缺点,RS-422定义了一种平衡通信接口,将传输速率提高到10Mb/s,传输距离延长到4000英尺(速率低于100kb/s时),并允许在一条平衡总线上连接最多10个接收器。
RS-422是一种单机发送、多机接收的单向、平衡传输规范,被命名为TIA/EIA-422-A标准。
为扩展应用范围,EIA又于1983年在RS-422基础上制定了RS-485标准,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,后命名为TIA/EIA-485-A标准。
由于EIA提出的建议标准都是以“RS”作为前缀,所以在通讯工业领域,仍然习惯将上述标准以RS作前缀称谓。
RS-232、RS-422与RS-485标准只对接口的电气特性做出规定,而不涉及接插件、电缆或协议,在此基础上用户可以建立自己的高层通信协议。
因此在视频界的应用,许多厂家都建立了一套高层通信协议,或公开或厂家独家使用。
如录像机厂家中的Sony与松下对录像机的RS-422控制协议是有差异的,视频服务器上的控制协议则更多了,如Louth、Odetis协议是公开的,而ProLINK则是基于Profile上的。
在讨论RS-232C接口标准的内容之前,先说明两点:首先,RS-232-C标准最初是远程通信连接数据终端设备DTE(Data Terminal Equipment)与数据通信设备DCE (Data Communication Equipment)而制定的。
一文搞定:详解RS232、RS485、RS422、串口协议(绝对干货)RS232、RS485和RS422基础知识一、RS232基础知识计算机与计算机或计算机与终端之间的数据传送可以采用串行通讯和并行通讯二种方式。
由于串行通讯方式具有使用线路少、成本低,特别是在远程传输时,避免了多条线路特性的不一致而被广泛采用。
在串行通讯时,要求通讯双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通讯。
RS-232-C接口(又称EIA RS-232-C)是目前最常用的一种串行通讯接口。
RS-232-C是美国电子工业协会EIA(Electronic Industry Association)制定的一种串行物理接口标准。
RS是英文“推荐标准”的缩写,232为标识号,C表示修改次数,代表RS232的最新一次修改(1969),在这之前,有RS232B、RS232A。
它是在1970 年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。
它的全名是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”。
1、电气特性EIA-RS-232C对电器特性、逻辑电平和各种信号线功能都作了规定。
在TxD和RxD上:逻辑1(MARK)=-3V~-15V ,逻辑0(SPACE)=+3~+15V 在RTS、CTS、DSR、DTR和DCD等控制线上:信号有效(接通,ON状态,正电压)=+3V~+15V 信号无效(断开,OFF状态,负电压)=-3V~-15V根据设备供电电源的不同,+-5、+-10、+-12和+-15这样的电平都是可能的。
2、连接器的机械特性由于RS-232C并未定义连接器的物理特性,因此,出现了DB-25、DB-15和DB-9各种类型的连接器,其引脚的定义也各不相同。
最近,8管脚的RJ-45型连接器变得越来越普遍,尽管它的管脚分配相差很大。
RS232、RS422、RS485串行通信协议的基础知识,看懂了,受用终身串行通信是PLC网络常用的通信方式,正确选择接口类型和协议标准,对保证通信可靠性具有重要意义。
RS-232接口符合美国电子工业联盟(EIA)制定的串行数据通信的接口标准,原始编号全称是EIA-RS-232(简称232,RS232)。
它被广泛用于计算机串行接口外设连接。
RS-232是现在主流的串行通信接口之一。
下面给大家科普一下RS232、RS422、RS485串行通信与协议的基础知识。
1、RS232RS232是一种标准的串行物理接口,232是标识号。
每个RS232接口都有两个物理连接器(插头),有9芯和25芯插头。
其中九针插头使用较为常见,引脚功能主要是:引脚2代表RXD,引脚3代表TXD,引脚5代表GND。
RS232是半双工通讯方式,由于干扰、导线电阻等原因,通讯距离不远,低速时几十米是可以的,实际应用中一般在15米以内。
串口的引脚定义要分清,详细请看下图:2、RS485RS485最大的通讯距离为1200米,最大传输速率为10M/S。
传输速率与传输距离成反比,最大传输距离只能以100 kb/s的传输速率达到。
如果需要传输更长的距离,则需要增加RS485中继器。
RS485支持多达32个节点。
在低速、短距离、无干扰的场合可以采用普通的双绞线,反之,在高速、长线传输时,则必须采用阻抗匹配(一般为120Ω)的RS485专用电缆(STP-120Ω(for RS485 & CAN)one pair 18 AWG),而在干扰恶劣的环境下还应采用铠装型双绞屏蔽电缆(ASTP-120Ω(for RS485 & CAN) one pair 18 AWG)。
RS485接口不仅可以方便地实现两点之间数据传输,而且可以方便地用于多站之间的互联。
3、RS422和RS485接口标准电气接口电路使用平衡驱动差分接收电路以不同方式接收和发送信号,从而减少干扰。
rs232、rs422与rs485接口标准及应用技术RS232、RS422和RS485是常用的串行通信接口标准,它们在工控领域非常常见。
本文将对RS232、RS422和RS485的接口标准及应用技术进行详细阐述。
一、RS232接口标准及应用技术:RS232是一种传统的串行通信接口标准,最初用于连接计算机和外部设备,它采用了一对差分信号线(TXD和RXD)实现全双工通信。
RS232使用的电平范围是:逻辑“0”为-3V至-15V之间的电压,逻辑“1”为+3V至+15V之间的电压。
RS232接口标准适用于短距离通信,典型的应用包括计算机串口通信、调制解调器、打印机等。
RS232接口的优点是简单易用,缺点是距离短、速率低、抗干扰能力较差。
二、RS422接口标准及应用技术:RS422是一种差分信号传输技术,采用了两对差分信号线(TXD+/-和RXD+/-)实现全双工通信。
RS422使用的电平范围是:逻辑“0”为-6V至-15V之间的电压,逻辑“1”为+6V至+15V之间的电压。
RS422接口标准适用于中距离通信,典型的应用包括长距离数字通信、工控现场总线、远程监控等。
RS422接口的优点是支持多节点通信、抗干扰能力较强,缺点是速率较低。
三、RS485接口标准及应用技术:RS485也是一种差分信号传输技术,采用了半双工通信方式,可以支持多个节点进行通信。
RS485使用的电平范围与RS422相同。
RS485接口标准适用于长距离通信,典型的应用包括监控系统、楼宇自控系统、安防系统等。
它可以支持多个节点串联,最大传输距离可达1200米。
RS485接口的优点是速率比RS422更高、支持多节点通信,缺点是抗干扰能力较差。
RS232、RS422和RS485的选择应根据具体应用场景来决定。
如果通信距离短、速率低,并且抗干扰要求不高,可以选择RS232接口。
如果通信距离中等、需要全双工通信,并且抗干扰能力较强,可以选择RS422接口。
串口通信的基本概念:1,什么是串口?2,什么是RS-232?3,什么是RS-422?4,什么是RS-485?5,什么是握手?1,什么是串口串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal Serial Bus或者USB混淆)。
大多数计算机包含两个基于RS232的串口。
串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。
同时,串口通信协议也可以用于获取远程采集设备的数据。
串口通信的概念非常简单,串口按位(bit)发送和接收字节。
尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。
它很简单并且能够实现远距离通信。
比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。
典型地,串口用于ASCII码字符的传输。
通信使用3根线完成:(1)地线,(2)发送,(3)接收。
由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。
其他线用于握手,但是不是必须的。
串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。
对于两个进行通行的端口,这些参数必须匹配:a,波特率:这是一个衡量通信速度的参数。
它表示每秒钟传送的bit的个数。
例如300波特表示每秒钟发送300个bit。
当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。
这意味着串口通信在数据线上的采样率为4800Hz。
通常电话线的波特率为14400,28800和36600。
波特率可以远远大于这些值,但是波特率和距离成反比。
高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。
b,数据位:这是衡量通信中实际数据位的参数。
当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。
如何设置取决于你想传送的信息。
串口通信(232、485、422)和常见问题这里并不对串口的编程作讲解,主要是从应用的角度去讲一讲。
因为更多的时候,都是产品做好了,比如触摸屏需要和控制器,PLC 通信。
理想的情况下,一般只要一上电,不需要太多的操作和配置,就可以通信上。
什么是串口通信常见的串口通信一般是指异步串行通信。
这里就要说一下同步和异步的区别了。
先讲一下串行通信的概念。
那么,与串行通信相对的是什么呢?与串行通信相对的是并行通信。
数据传输一般都是以字节传输的,一个字节8个位。
拿一个并行通信举例来说,也就是会有8根线,每一根线代表一个位。
一次传输就可以传一个字节,而串口通信,就是传数据只有一根线传输,一次只能传一个位,要传一个字节就需要传8次。
就像小虎队那首歌一样,把你的心,我的心,串一串,再烤一烤。
串口通信就是把数据串在一根线上传输,所以就叫串口吧。
与异步通信相对的就是同步通信了。
同步通信一般是指有一个时钟信号进行数据信号同步。
同步通信对接收方来说就相对简单一些。
因为有时钟信号在,每一个高低电平变化一下,就去取一下数据就行了。
通信速率可以由发送方或者说是主站设备进行控制。
通信速度也相对比串口通信快很多。
但是为什么很多设备,屏和plc,控制器不采用这种方式,都使用串口呢。
那么,在很多设备上,不方便接太多线,比如接8根数据线,也不方便接同步时钟信号(这个后面再说),于是一种异步串行通信就诞生了。
相对来说,异步串口通信,就只需要一根线就可以发送数据了。
在对速率要求不高的情况,使用一根线发送数据是带来大大的方便和实用价值的。
那么问题来了,怎么样才能保证一根线就能发送正常的数据呢。
也就说发送方发送的数据,接收方是怎么知道是什么数据呢。
为了能正常发送数据和接收正确的数据,那异步串口通信就需要满足以下几个条件:也就是双方必要约定一种暗号。
也许当时发送这个通信的小组是这样讨论的。
经理:我要用一根线就能传输数据,你来给我定个标准。
研发:好。
RS-232/422/485特性比较接口种类繁多,从传统的通用外围电路、RS-232、RS-422、RS-485、MODEM 到现在的USB、IEEE 1394、Internet网络等,它们在不同的领域得到了广泛的应用。
数字信号的传输随着距离的增加和信号传输速率的提高,在传输线上的反射、串扰、衰减和共地噪声等影响将引起信号的畸变,从而限制了通信距离。
普通的TTL电路,由于驱动能力差,输入电阻小,灵敏度不高以及抗干扰能力差,因而信号传输的距离短。
借助接口电路,可以进行较长距离的数据传输。
通信接口按电气标准及协议来分包括RS-232、RS-422、RS485、USB等。
RS-232、RS-422、RS-485标准只对接口的电气特性做出规定,不涉及接插件、电缆或协议。
USB是近几年发展起来的新型接口标准,主要应用于高速数据传输领域。
MODEM芯片通常配合串行口实现数字信号与模拟信号之间的相互转换,从而可以利用电话线或电力线进行远程通信。
RS-232串行总线接口目前RS-232是PC机与通信工业中应用最广泛的一种串行接口。
RS-232被定义为一种在低速率串行通信中增加通信距离的单端标准。
RS-232采取不平衡传输方式,即所谓单端通信。
典型的RS-232信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在+5~+15V,负电平在-5~-15V电平。
当无数据传输时,线上为TTL,从开始传送数据到结束,线上电平从TTL电平到RS-232电平再返回TTL电平。
接收器典型的工作电平在+3~+12V与-3~-12V。
RS-232是为点对点(即只用一对收、发设备)通信而设计的,其驱动器负载为3~7kΩ。
由于RS-232发送电平与接收电平的差仅为2V至3V左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为约15米,最高速率为20kb/s。
所以RS-232适合本地设备之间的通信。
有关电气参数参见表1。
第一堂UART通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART,是一种异步收发传输器,是电脑硬件的一部分。
将资料由串行通信与并行通信间作传输转换,作为并行输入成为串行输出的芯片,通常集成于其他通讯接口的连结上RS232RS-232-C接口标准的特点:(1)采用负逻辑,即,逻辑“1”为-15V~-5V,逻辑“0”为+5V~+15V。
(2)采用全双工方式由于RS-232 接口标准出现较早,难免有不足之处,主要有以下四点:(1)接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL 电平不兼容故需使用电平转换电路方能与TTL 电路连接。
(2)传输速率较低,在异步传输时,波特率为20Kbps。
现在由于采用新的UART 芯片16C550 等,波特率达到115.2Kbps。
(3)接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。
(4)传输距离有限,最大传输距离标准值为50 米,实际上也只能用在15米左右。
(5)RS-232 只允许一对一通信,而RS-485接口在总线上是允许连接多达128个收发器。
RS485在要求通信距离为几十米到上千米时,广泛采用RS-485串行总线。
RS-485采用平衡发送和差分接收,因此具有抑制共模干扰的能力。
加上总线收发器具有高灵敏度,能检测低至200mV的电压,故传输信号能在千米以外得到恢复。
RS-485采用半双工工作方式,任何时候只能有一点处于发送状态,因此,发送电路须由使能信号加以控制。
RS-485用于多点互连时非常方便,可以省掉许多信号线。
应用RS-485可以联网构成分布式系统,其允许最多并联32台驱动器和32台接收器。
针对RS-232-C的不足,新标准RS-485具有以下特点:(1)RS-485的电气特性:逻辑“1”以两线间的电压差+2V~+6V表示,逻辑“0”以两线间的电压差-6V~-2V表示。
RS-232、RS-485、RS-422接线的临时的解决方案收藏RS-232、RS-485、RS-422 在现场调试经常遇到多种方式的串口通讯的问题,如RS-232、RS-485、RS-422不同口的通讯连接问题,通常RS-485和RS-422之间转换很方便。
但遇到RS-232口要和RS-422口通讯,现场无其他转换方式,如果再邮寄可能等的时间较长。
现在可以有一种临时的解决方案。
(1).RS-232和RS-422 将RS-422的R+、T+短接,和RS-232的GND相连。
RS-422的R-和RS-232的Txd相连,RS-422的T-和RS-232的Rxd相连即可。
.原理如下:RS-232-C接口的电气特性是电压均为负逻辑关系。
即:逻辑“1”,-5—-15V;逻辑“0”+5—+15V 。
噪声容限为2V。
即要求接收器能识别低至+3V的信号作为逻辑“0”,高到-3V的信号作为逻辑“1”。
RS-485的电气特性:逻辑“1”以两线间的电压差为+(2—6)V表示;逻辑“0”以两线间的电压差为-(2—6)V 表示。
所以当RS-232发送“1”时,Txd和GND的电压差为-3—-15V,在RS-422的R+和R-之间形成逻辑“1”的电平(注:线路电平衰减较小)。
当RS-422发送“1”时,RS-422的T+和T-之间形成逻辑“1”的电平为+(2—6)V ,在RS-232的Txd和GND的之间形成逻辑“1”的电平(注:由于RS-422通讯采用差动电平,线路较长衰减也较小,RS-232接收的电平基本维持在5伏)。
通讯距离可以认为以RS-232为准。
即一般小于50米。
我在宝塔石化临时测试过,达40米后还好的很。
(2).RS-232和RS-485 将RS-485的R+、T+短接,和RS-232的GND相连。
RS-485的R-、T-短接,将RS-232的Rxd、Txd短接,两者相连即可。
由于RS-232为全双工,RS-485为半双工,如要通讯则要在通讯程序中做处理才可,但临时使用(如电度表连在NAS-968D/E,用DEBUG设电度表的地址)。
串口RS232、RS422、RS485通信原理、测试应用、C#软件设计大家都使用过串口进行设备间通信交互,台式计算机中COM1就是RS232接口,机箱后面的接口可以看到一种9个针脚的接口,但最新的笔记本计算机中已经不提供串口了,不过可以通过USB转换成串口。
硬件实物就是我们接触比较多的一种9个针脚的连接器,通过这个硬件要通信就得有接口标准,这样就制定了RS232、RS422、RS485串行通信接口标准,不同的串行通信接口标准是有区别的。
recommended standard简称RS。
串口外观(插座带插针)RS232标准字符是串行的比特流传输的,就是一位接着一位的串行传输,比如0x55是可以按照10101010,即先传1再传0这样传输(大端传输)。
优点是传输线少,配线简单,传送距离较远。
硬件连接上通常只用到了3根引脚,Tx(发送)、Rx(接收)、Gnd(地),设备A的Tx接设备B的Rx, 设备A的Rx接设备B的Tx, 设备A的Gnd接设备B的Gnd,即“你收我发,你发我收,你我共地”。
可以同时收发数据,即“全双工”。
RS485标准即“半双工”,每次只能作发送或者接收,需要两根线Data+、Data-,以一种差分信号进行传输,效率没有RS232高但是传输距离要较远一些,两根线双绞屏蔽效果更好一点。
RS422标准即“全双工“,一般用到4根线,R+、R-、T/R-、T/R+,“接收+对应发送+,接收-对应发送-“,这样记不容易混淆,接线的时候比较有用。
共地线也需连接。
我们常用的编码格式是异步启停格式,数据帧格式如下列表所示。
起始位固定为1个比特,而停止位可以是1、1.5或者2比特,可以自由配置但发送方与接收方要一样点的。
D/P/S硬件准备好了,就是说两个设备之间是通过RS232、RS485或者RS422通信,将对应的线号连接好了,在软件设置中涉及参数包括波特率、奇偶校验、停止位。
其他的参数就不展开介绍了。
终于有人把常用的三种通讯方式:RS485、RS232、RS422讲明白了我们都知道,在一般情况下我们会使用串口进行通讯,但是这种串口只适合连接2个设备之间,因此存在很多不方便之处(比如我们进行一对多的通讯),制约了串行数据的收发,这个时候我们就可能需要用到485通讯协议。
除了RS485以外,常见的还有RS232和RS422。
RS485、RS232、RS422各协议简介RS485:2线式(A、B)、半双工、点对多主从通讯(4线制因只能点对点已经淘汰)RS485采用差分信号负逻辑,同一总线上最多可以挂接32个节点。
缺点就是共模干扰问题和EMI问题。
RS232:3线制(RXD、TXD、GND)、全双工、点对点通讯(因点对点通讯方式而无法联网,导致出现RS485)RS232是异步传输接口,即电脑上的COM口,有9个引脚(DB-9)或者是25个引脚(DB-25)的型态出现。
RS232-C标准规定的数据传输速率为50、75、100、150、300、600、1200、2400、4800、9600、19200、38400波特。
RS422:4线制、全双工、点对多主从通讯(实际上还有一根信号地线,共5根线)RS422标准全称是“平衡电压数字接口电路的电气特性”。
允许在相同传输线上连接多个接受节点,最多可接256个节点。
RS485、RS232、RS422的区别1、通讯距离RS232口最大通讯距离是15米,而RS422/485最大通讯距离是1200米。
2、所连接设备个数RS232只能连接一个设备,而RS485可以连接多个设备。
3、这三种端口的定义RS232是标准接口,为D形9针头,所连接设备的接口的信号定义是一样的。
而RS422/RS485为非标准接口,一般为15针串行接口(也有使用9针接口的),每个设备的引脚定义也不一样。
另外还需要说明的是,RS422和RS485也有区别:RS422为4线制,全双工模式;RS485为两线制,半双工模式。
RS232,RS422,RS485的区别和RS485通讯线缆注意事项1.RS-232-C是美国电子工业协会EIA(Electronic Industry Association)制定的一种串行物理接口标准。
RS是英文“推荐标准”的缩写,232为标识号,C 表示修改次数。
RS-232-C总线标准设有25条信号线,包括一个主通道和一个辅助通道,在多数情况下主要使用主通道,对于一般双工通信,仅需几条信号线就可实现,如一条发送线、一条接收线及一条地线。
RS-232-C标准规定的数据传输速率为每秒50、75、 100、150、300、600、1200、2400、4800、9600、19200波特。
RS-232-C标准规定,驱动器允许有2500pF的电容负载,通信距离将受此电容限制,例如,采用150pF/m的通信电缆时,最大通信距离为15m;若每米电缆的电容量减小,通信距离可以增加。
传输距离短的另一原因是RS-232属单端信号传送,存在共地噪声和不能抑制共模干扰等问题,因此一般用于20m以内的通信。
2.RS-485总线,在要求通信距离为几十米到上千米时,广泛采用RS-485 串行总线标准。
RS-485采用平衡发送和差分接收,因此具有抑制共模干扰的能力。
加上总线收发器具有高灵敏度,能检测低至200mV的电压,故传输信号能在千米以外得到恢复。
RS-485采用半双工工作方式,任何时候只能有一点处于发送状态,因此,发送电路须由使能信号加以控制。
RS-485用于多点互连时非常方便,可以省掉许多信号线。
应用RS-485 可以联网构成分布式系统,其允许最多并联32台驱动器和32台接收器。
3.RS422总线,RS485和RS422电路原理基本相同,都是以差动方式发送和接受,不需要数字地线。
差动工作是同速率条件下传输距离远的根本原因,这正是二者与RS232的根本区别,因为RS232是单端输入输出,双工工作时至少需要数字地线发送线和接受线三条线(异步传输),还可以加其它控制线完成同步等功能。
干货!串口通信常见问题及解决方法一、串口通信简介什么是串口通信?串口,一般指异步串行接口(Serial port),主要用于串行式逐位数据传输。
串口对于处于嵌入式行业的我们来说,是必不可缺的一部分,在刚开始学习单片机时,我们最先学习的通信接口就是USART(Universal Synchronous/AsynchronousReceiver/Transmitter)——通用同/异步串行接收/发送器。
其中最常见的串口通信的时序如下图:于是在串口通信就有了起始位、数据位、校验位、停止位、波特率这几个参数。
另外,串口通信主要分为RS232、RS422、RS485三种通信方式,之前有系统地讲解过,小编这里就不再进行详细地介绍了。
二、串口通信常见问题及解决如上所述,串口作为我们日常开发时的非常重要的一个角色,我们也时常会碰到很多问题,深受各种折磨,接下来我们就来说说平时串口通信中常见的问题以及解决方法。
通常我们调试串口通信碰到问题时,需要用到一个USB转TTL、杜邦线(导线)等工具,首先我们应当保证自己的工具是正常的,可以通过以下方法自测:1、将USB转TTL中的TX、RX使用杜邦线或是跳线帽短接,打开串口调试工具,例如XCOM、SSCOM等,将波特率、停止位、校验位等参数调至即将需要通信的模块的参数,再去随意发送一些数据,通常笔者是更倾向于使用16进制发送和接收,以此来保证数据中间或者结尾出现一些不可使用ASCII值直观看到的数据,例如数据的结尾多了0x00,0x0a等。
若确保自己的工具以及导线没有问题后,即可继续排查通信问题2、发现使用USB转TTL与模块之间明明已经反接了TX、RX,发指令给模块之后却没有任何反应。
解决方法:当碰到如上问题时,应当首先自检工具,再检查是否双方共地,GND提供了一个基准0电平,如果没有共地的话,那极有可能会出问题,其次是检查双方的串口参数是否一致,串口通信是一个易于开发并且速度可调的一个的通信协议,其中我们大部分都会使用UART——通用异步传输接收/发送器,串口异步通信也可称为起止式异步通信,是直接以字符为单位进行传输的,字符之间没有固定的时间要求,每个字符中的每一位以固定的时间传送。
下面先讲串口通信的一些基本概念,术语。
如果对串口通信比较熟悉的,就当复习,如果哪里讲的不到位,欢迎及时指出。
这里并不对串口的编程作讲解,主要是从应用的角度去讲一讲。
因为更多的时候,都是产品做好了,比如触摸屏需要和控制器,PLC通信。
理想的情况下,一般只要一上电,不需要太多的操作和配置,就可以通信上。
文章后半部分罗列了一些相关问题,在解答前还需要先了解一下什么是串口通信,232,485,422等。
什么是串口通信常见的串口通信一般是指异步串行通信。
这里就要说一下同步和异步的区别了。
先讲一下串行通信的概念。
那么,与串行通信相对的是什么呢?与串行通信相对的是并行通信。
数据传输一般都是以字节传输的,一个字节8个位。
拿一个并行通信举例来说,也就是会有8根线,每一根线代表一个位。
一次传输就可以传一个字节,而串口通信,就是传数据只有一根线传输,一次只能传一个位,要传一个字节就需要传8次。
就像小虎队那首歌一样,把你的心,我的心,串一串,再烤一烤。
串口通信就是把数据串在一根线上传输,所以就叫串口吧。
与异步通信相对的就是同步通信了。
同步通信一般是指有一个时钟信号进行数据信号同步。
同步通信对接收方来说就相对简单一些。
因为有时钟信号在,每一个高低电平变化一下,就去取一下数据就行了。
通信速率可以由发送方或者说是主站设备进行控制。
通信速度也相对比串口通信快很多。
但是为什么很多设备,屏和plc,控制器不采用这种方式,都使用串口呢。
那么,在很多设备上,不方便接太多线,比如接8根数据线,也不方便接同步时钟信号(这个后面再说),于是一种异步串行通信就诞生了。
相对来说,异步串口通信,就只需要一根线就可以发送数据了。
在对速率要求不高的情况,使用一根线发送数据是带来大大的方便和实用价值的。
那么问题来了,怎么样才能保证一根线就能发送正常的数据呢。
也就说发送方发送的数据,接收方是怎么知道是什么数据呢。
为了能正常发送数据和接收正确的数据,那异步串口通信就需要满足以下几个条件:也就是双方必要约定一种暗号。
也许当时发送这个通信的小组是这样讨论的。
经理:我要用一根线就能传输数据,你来给我定个标准。
研发:好。
经理:只有一根线,我怎么知道数据什么时候开始呢。
研发:就一根线,默认是高电平,那就有一个起始位吧。
当检测到有低电平的时候,就是开始有一个字节的数据发送了,起始位之后,先是字节的最低位,传送一个字节。
经理:可是,就一根线,过来的数据会不会有干扰,容易出错呀。
研发:行呀,那就在字节数据后再加一个校验位。
可以作奇校验,偶校验,1校验,0校验,无校验。
经理:嗯,很不错。
有起始位就应该有停止位,那我们就再加个停止位在后面吧。
研发:。
经理:传输一串数据,对方要怎么知道数据的拆分呢,怎么按时间或频率去解读数据位,校验位呢。
研发:这样吧,双方约定一个波特率吧,定义一个每个位占用多长的时间,这样双方按这个波特率就可以处理了。
经理:这个比特率呀。
研发:老板,是波特率。
经理:我知道,是比特率嘛。
研发:这个波特率呢,是指1S钟可以传输多个位,也就知道一个位占用多长时间。
这样就解决传输的问题了。
经理:那万一传输过程,数据快太,判断失误停不下来怎么办。
研发:那就把停止位可以调节为1个停止位或者2个停止位。
这样就可以停下来了。
经理:嗯,听着不错。
就这样办吧。
于是,串口通信就这样出来了。
在串口的通信参数上,就有了波特率,数据位,停止位,校验位这几个参数来确保串口通信的正确性和稳定上。
当然,这只是某个方面保证串口通信的正确性和稳定性,不代表设备间通信的正确性和稳定性。
串口通信主要为分232,485,422 通信三种方式。
这三种有什么区别呢。
232:232 通信主要是由RX,TX,GND三根线组成。
RX与TX,TX接RX,GND接GND。
这样还是比较好理解吧。
因为发送和接收分别是由不同的线处理的,也就是能同时发送数据和接收数据,这就是所谓的全双工。
在这里扩展一下,串口通信还有一个功能叫做全功能串口通信,也叫标准串口。
因为在两个设备间进行数据传输,有些设备处理速度比较快,有些数据比较慢。
为了保证数据能正常传输,在RX,TX的基础上,还增加了几个控制引脚,本来好端端就R,T,G,三根线,凑着就凑齐了9个引脚,召唤出了DB9这个东西。
这要怪就怪当时使用电脑的时候,还没有互联网这个概念,但是又想在两台电脑间进行通信。
所以才有这样一个东西。
在后来的设备,很多控制器,人机界面,PLC等使用串口通信中,基本上就不使用标准串口,而是就直接使用RX,TX,GND三根线来通信了。
但是这里为什么要提到这个呢。
因为只是很多设备这样用,也就是还存在少数设备还保留了标准串口的功能。
这就是为什么会遇到明明电脑通信是好的,换成触摸屏通信就不行了。
因为很多触摸屏只使用了RX,TX,GND通信,遇到一些还保留标准串口功能的就比较讨厌了。
485:485是为了解决232通信距离的问题。
原理什么之类的就不多讲了。
反正232通信距离就是不长。
485主要是以一种差分信号进行传输,只需要两根线,+,-两根线,或者也叫A,B两根线。
A,B两根线的差分电平信号就是作为数据信号传输。
那么问题来了,那是不是就没有RX和TX的概念了。
是的,发送和接收就不能分开了。
发送和接收都是靠这两根的来传输,也就是每次只能作发送或者只能作接收,这就是半双工的概念了,这在效率上就比232弱很多了。
就像对讲机一样,经常是某个人讲完之后,都要说一个over,确保当前说完了,等待对方回复。
485就是这样牺牲了232全双工的效率来达到自己传输距离远的代价。
那有没有即保留了232的全双工,又可以像485这样提高传输距离呢,于是,422出来了。
422:422呢,有些标注为485-4。
而485就标注为485-2。
有什么区别呢。
就是为了好记呢。
485-2就是2根线。
485-4就是4根线。
422就是把232的RX分成两根线,RX+,RX-,把TX分成TX+,TX-。
这样就可以同时发送和同时接收了,还可以像485这样,有较远的传输距离。
可是这样一种很有优势的通信方式,为什么用的不多呢。
我个人的答案和理解就是:线太多了。
特别是像我这样懒得接线的人,超过3根线就头晕的。
搞个通信还需要接这么多线,什么TX,RX,正啊负啊。
交换来交换去。
因为在很多设备通信中,基本上是属于一问一答式的,因此,232的全双工通信优势其实也并没有发挥出来。
就像现在打电话,虽然两个人可以同时说话,但是两个人同时说话,叽叽歪歪的,谁知道说什么呀。
特别是一个主站与多个从站通信的时候,485的接线就就方便多了,反正大家就两根线,把+都接一块,把-都接一块。
如果是422作一主多从,接线上还要理半天呢,而且通信异常了也不好解决。
好了,串口通信基本就普及到这里吧。
下面就对刚上提到的问题进行讲一讲。
1、电脑使用USB转串口可以和设备通信上,换成屏与设备就通信不上了?1)有可能电脑USB转串口接到设备上,使用的是标准串口功能,也就是除了RX,TX,GDN外,还使用了其它引脚。
比如像欧姆龙PLC,三菱PLC,在实际与屏的通信中,就需要接某些引脚短接的情况。
2)电脑与控制器或PLC通信时,是扫描波特率参数,自适应的,屏通信可能参数没有设备好。
在三菱,基恩士等PLC,就存在变化波特率进行通信交互的过程。
3)也有可能是接线方式不对。
因为有些DB9,还需要公头,母头。
如果不注意的话,也会存在把TX接到TX上,把RX接到RX上,这样需要注意的地方。
4)在这里补充一下,有时候可能会使用一些串口助手发送测试数据与控制器通信,有些串口助手的奇偶校验是不起作用,这个要提醒一下。
2、这A家的屏可以和设备通信,换成B家的屏就通信不上了?1)首先确认一下接线是否正确了,RX和TX是否兼容。
2)地线是否没有接。
3)除了RX,TX,GND,是否还有其它引脚需要短接的。
4)通信协议是否一致或不完善,波特率是否一样。
3、以前不接地线可以通信,换个设备为什么需要接地线了?这个问题和上一个有类似的。
因为有些设备使用了隔离电源。
以前不接地可以通信,有可能是地线已经在另外一个环路已经共地了,实际地线已经接了,所以才可以通信。
可能换了个带隔离电源的,两个设备的地是隔离的,就需要在串口上把地线接起来。
这个我是自身经历过的,有个客户老说他的设备通信不上,后来拍个照我给我,他地线没有接,他说以前不接地线可以通信的。
于是我就给他科普了一下。
4 、一个设备是232,另一个设备是422,没有转换设备,怎么办?(232与422互转的简单方法)这个情况我遇到过,客户的设备是422通信的,但是我手上并没有422设备,只有232通信可以测试。
因此就需要把422转成232进行通信。
刚才也讲了422和232的接线,因为这两个都是全双工的,接收和发送都是分到的,而422只是以一种差分信号进行传输。
把422的Rx+与232的TX接,422的RX-与232的GND接。
把422的TX+与232的RX接,422的TX-与232的GDN接。
这样,422设备要发送数据的,就可以发送到了232的RX上。
232的TX发数据后,由于TX和GND也形成了差分信号给422,422就可以接收到数据了。
5、用232通信没问题,用485通信没问题,使用232转485之后就通信不稳定? 232和485从通信原理上,最大一个差别是全双工和半双工的区别。
可是应用层发送数据和接收数据才不管底下是全双工还是半双工。
但是485就得管了。
因为既然是半双工,就得严格保证通路上只能有发送或只能有接收的数据,一旦同时有发送和接收,数据就会冲突了。
所以解决的办法就是主站设备,也就是主动命令的一方就需要严格控制好发送数据命令的节奏了。
当然有些232转485的设备做的比较好了,可以优化这个,但是主站还是要控制,比较把通信速率调节慢一些(不是调节波特率)。
6、485单独接每个设备都通信正常,多个从站接一块通信就不稳定?这个是属于485通信的不稳定因素了。
7 、要想实现两个屏或两个主站通过485访问modbus设备,有什么好的办法? 在485通信中,基本上是一主多从。
但是遇到一些客户实际使用中,有客户想用两个屏来访问一个modbus设备的。
目前暂时还没有好的办法。
8、针对串口通信的弱点,在使用上应该要注意哪些地方?说来串口通信的弱点,那就说来话长了。
不过还是长话短说吧。
1)信号干扰的问题建议使用带屏蔽线,接线要严格,比如要接地。
有些485通信上,还考虑接上终端电阻来匹配。
如果是232,尽量不要让线太长。
通信协议上尽量避免长报文的数据通信。
2)波特率匹配的问题因为有些设备的计算的波特率是存在误差的,特别是一些控制器,由于使用的晶振不一样。
因此在一些波特率比如9600波特率就存在误差。
存在误差带来的影响是什么呢。