资讯详情

详解串口通信232/485/422,入门必看!

关注星标微信官方账号,直达精彩内容

2cb3b4ebd4b8a2ab3fa3e49c322b6e6f.png

来源:网络素材

串行通信和并行通信可用于计算机与计算机或计算机与终端之间的数据传输。由于串行通信使用线路少,成本低,特别是在远程传输中,避免了多条线路特征的不一致,因此被广泛使用。

串行通信时,要求通信双方使用标准接口,使不同的设备能够轻松连接通信。RS-232-C接口(又称EIA RS-232-C)是目前最常用的一种串行通讯接口。

RS-232-C是美国电子工业协会EIA(Electronic Industry Association)串行物理接口标准的制定。RS是英文推荐标准的缩写,232是标识号,C表示修改次数,代表RS在此之前,最新修改了232(1969)RS232B、RS232A。它是在1970 美国电子工业协会年年由美国电子工业协会组成(EIA)串行通信标准由贝尔系统、调制解调器制造商和计算机终端制造商联合制定。它的全名是数据终端设备(DTE)数据通信设备(DCE)之间串行二进制数据交换接口技术标准”。

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和 -这样的电平是可能的。

由于RS-232C连接器的物理特性没有定义,因此出现了DB-25、DB-15和DB-9各种类型的连接器对引脚有不同的定义。最近,8管脚RJ-尽管它的管脚分配差异很大,但45型连接器变得越来越普遍。EIA/TIA 561标准规定了管脚分配的方法,但由Dave Yost广泛应用于发明Unix计算机上的Yost串联设备配线标准 ("Yost Serial Device Wiring Standard")许多其他设备没有采用上述任何连接标准。下表列出了更多的用途RS-232中的信号和管脚分配:

信号的标是从DTE从设备的角度出发,TD、DTR和RTS信号是由DTE产生的,RD、DSR、CTS、DCD和RI信号是由DCE产生的。

PC 机的RS-232 口为9 芯针插座。一些设备和PC 机连接的RS-232 接口,需要三条接口线,即发送数据TXD接收数据RXD和信号地GND”。

双向接口能够只需要3根线制作是因为RS-所有232信号共享公共接地。非平衡电路RS-232很容易受到两个设备之间基点电压偏移的影响。对于信号的上升和下降,RS-232只有相对较差的控制能力,容易出现串话问题。RS-短距离推荐232(15)m内)间通信。由于不对称电路的关系,RS-接口电缆通常不由双绞线制成。

RS-232-C标准规定的数据传输速率为,25000驱动器允许pF该电容器将限制电容器的通信距离。

例如,采用150pF/m通信电缆时,最大通信距离为15m;如果每米电缆的电容量减小,通信距离可以增加。传输距离短的另一个原因是RS-232属于单端信号传输,存在共地噪声、共模干扰无法抑制等问题,一般用于20年m内部通信。

由RS-232C当码元畸变小于4%时,标准规定传输电缆长度应为50 英尺,事实上,这4%的码元畸变是非常保守的。在实际应用中,约99%的用户-20%的码元畸变范围内工作,因此在实际使用中,最大距离将远远超过50英尺DEC该公司规定允许码元畸变为10%,并获得以下实验结果。其中1 数字电缆为屏蔽电缆,型号为DECP.NO.9107723 有三对双绞线,每对22# AWG 组成,外覆屏蔽网。2 无屏蔽电缆。型号为DECP.NO.9105856-04是22#AWG 四芯电缆。

在RS-232标准中,字符是以一系列位元来一个接一个的传输。最长的编码格式是异步起停asynchronous start-stop格式,它使用一个紧跟7或8的起始位 数据比特,这可能是奇偶位,然后是两个停止位。因此,发送一个字符需要10个比特,一个很好的效果是使所有的传输速率,以10分的速度发送信号。

串行通信需要在软件设置中进行多个设置,最常见的设置包括波特率、奇偶验证和停止位置。波特率是指从一个设备到另一个设备的波特率,即每秒的比特率bits per second (bit/s)。通信两端的设备应设置为相同的波特率,但也可设置为自动检测波特率。

奇偶校验Parity验证数据的正确性。一般不使用奇偶校验。如果使用,可以做奇偶校验。奇偶校验是通过修改每个字节(或限制字节)来进行的。若不进行奇偶校验,则数据不会改变。在偶像验证中,由于奇偶验证位置将相应地放置在1或0(通常是最高或最低),数据将改变,使所有传输数(包括字符和验证位)中的1数为偶数;在奇怪验证中,所有传输数(包括字符和验证位)中的1数为奇数。奇偶校验可用于接受方检查传输是否有错误——如果某个字节中的1数量有错误,则该字节在传输中必须有错误。如果奇偶验证正确,要么没有错误,要么偶数错误。

每个字节传输后发送停止位,用于帮助接收信号方硬件重同步。

串行通信软件设置D/P/S常规符号表示。8/N/1(很常见)表示8bit数据,没有奇偶校验,1bit停止位。数据位可设置为7、8或9,奇偶校准位可设置为无(N)、奇(O)或者偶(E),数据中的比特性可用于奇偶校准位,因此8/E/1表示共有8位数据位,其中一位用于奇偶校准。停车位可为1、1.5或者2位的(1.5用于波特率60wpm)。

其他设置需要发送握手信号或数据完整性检测。公共组合有RTS/CTS,DTR/DSR或者XON/XOFF(特殊字符插入数据流中,不使用连接器管脚)。

接受方把XON/XOFF这些信号与发送数据的传输方向相反,数据,与发送数据的传输方向相反。XON信号告诉发送方接收方准备接收更多数据,XOFF信号告诉发送者停止发送数据,直到知道接受者再次准备好。XON/XOFF一般不赞成使用,推荐使用RTS/CTS控制流代替它们。

XON/XOFF这是一种在终端之间工作的方法,但必须在两端支持协议,并且在突然启动时可能会混淆。

XON/XOFF三线接口可工作。RTS/CTS最初是设计为电传打字机和调制解调器半双工协作通信的,每次它只能一方调制解调器发送数据。终端必须发送请求发送信号然后等到调制解调器回应清除发送信号。尽管RTS/CTS握手是通过硬件实现的,但它有自己的优势。

多年来RS-232 改进设备和通信技术,RS-232 通信距离大大提高。RS-232 接口标准出现较早,难免有不足之处,主要有以下四点:

(1) 接口信号电平值高,接口电路的芯片容易损坏,因为与TTL 电平不兼容,需要电平转换电路TTL 电路连接。

(2) 在异步传输中,波特率为20Kbps。现在因为采用新的UART 芯片16C550 等等,波特率达到115.2Kbps。

(3) 界面采用信号线和信号返回线形成共同的传输形式, 这种共地传输容易产生共模干扰,因此抗噪声干扰能力较弱。

(4) 最大传输距离标准值为50 米,其实只能用15米左右。

针对RS-人们提出了232串口标准的局限性RS-422,RS-485接口标准。RS-485/422采用平衡发送和差分接收方式实现通信:发送端将串行行TTL电平信号转换成差分信号A、B两缆传输后,将差分信号恢复到接收端TTL电平信号。由于传输线通常采用双绞线,传输差异化,抗共模干扰能力强,总线收发器灵敏度高,可检测低至200mV电压。因此,传输信号可以在公里外恢复。&nbp;

驱动器能输出±7V的共模电压  

接收器的输入电阻RIN≥12kΩ  

输入端的电容≤50pF  在节点数为32个,配置了120Ω的终端电阻的情况下,驱动器至少还能输出电压1.5V(终端电阻的大小与所用双绞线的参数有关)  发送端:逻辑"1"以两线间的电压差为+(2 至6) V 表示;逻辑"0"以两线间的电压差为-(2 至6)V 表示。接收器的输入灵敏度为200mV(即(V+)-(V-)≥0.2V,表示信号"0";(V+)-(V-)≤-0.2V,表示信号"1")

RS-485 的数据最高传输速率为10Mbps,最大的通信距离约为1219M,传输速率与传输距离成反比,在10Kb/S的传输速率下,才可以达到最大的通信距离。

但是由于RS-485 常常要与PC 机的RS-232口通信,所以实际上一般最高115.2Kbps。又由于太高的速率会使RS-485 传输距离减小,所以往往为9600bps 左右或以下。

RS-485 接口是采用平衡驱动器和差分接收器的组合,抗共模干能力增强,即抗噪声干扰性好。

RS-485总线网络拓扑一般采用终端匹配的总线型结构。即采用一条总线将各个节点串接起来,不支持环形或星型网络。如果需要使用星型结构,就必须使用485中继器或者485集线器才可以。RS-485/422总线一般最大支持32个节点,如果使用特制的485芯片,可以达到128个或者256个节点,最大的可以支持到400个节点。

RS-485 的国际标准并没有规定RS485 的接口连接器标准、所以采用接线端子或者DB-9、DB-25 等连接器都可以。

RS-422 的电气性能与RS-485近似一样。主要的区别在于: 

(1)RS-485 有2 根信号线:发送和接收都是A 和B。由于RS-485 的收与发是共用两根线,所以不能够同时收和发(半双工)。

(2)RS-422 有4 根信号线:两根发送(Y、Z)、两根接收(A、B)。由于RS-422 的收与发是分开的,所以可以同时收和发(全双工)。

(3)支持多机通信的RS-422将Y-A 短接作为RS-485 的A、将RS-422 的Z-B 短接作为RS-485 的B可以这样简单转换为RS-485。

很多人往往都误认为RS-422串行接口是RS-485串行接口的全双工版本,实际上,它们在电器特性上存在着不少差异,共模电压范围和接收器输入电阻不同使得该两个标准适用于不同的应用领域。RS-485串行接口的驱动器可用于RS-422串行接口的应用中,因为RS-485串行接口满足所有的RS-422串行接口性能参数,反之则不能成立。对于RS-485串行接口的驱动器,共模电压的输出范围是-7V和+12V之间;对于RS-422串行接口的驱动器,该项性能指标仅有±7V。

串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal Serial Bus或者USB混淆)。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。同时,串口通信协议也可以用于获取远程采集设备的数据。

串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。

典型地,串口用于ASCII码字符的传输。通信使用3根线完成:(1)地线,(2)发送,(3)接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但是不是必须的。。对于两个进行通行的端口,这些参数必须匹配:

这是一个衡量通信速度的参数。它表示每秒钟传送的bit的个数。例如300波特表示每秒钟发送300个bit。当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。这意味着串口通信在数据线上的采样率为4800Hz。通常电话线的波特率为14400,28800和36600。波特率可以远远大于这些值,但是波特率和距离成反比。高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。

这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。如何设置取决于你想传送的信息。比如,标准的ASCII码是0~127(7位)。扩展的ASCII码是0~255(8位)。如果数据使用简单的文本(标准 ASCII码),那么每个数据包使用7位数据。每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。

用于表示单个包的最后一位。典型的值为1,1.5和2位。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。

在串口通信中一种简单的检错方式。有四种检错方式:偶、奇、高和低。当然没有校验位也是可以的。对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。例如,如果数据是011,那么对于偶校验,校验位为0,保证逻辑高的位数是偶数个。如果是奇校验,校验位位1,这样就有3个逻辑高位。高位和低位不真正的检查数据,简单置位逻辑高或者逻辑低校验。这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步。

RS-232通行方式允许简单连接三线:Tx、Rx和地线。但是对于数据传输,双方必须对数据定时采用使用相同的波特率。尽管这种方法对于大多数应用已经足够,但是对于接收方过载的情况这种使用受到限制。这时需要串口的握手功能。在这一部分,我们讨论三种最常用的RS-232握手形式:

我们讨论的第一种握手是软件握手。通常用在实际数据是控制字符的情况,类似于GPIB使用命令字符串的方式。必须的线仍然是三根:Tx、Rx和地线,因为控制字符在传输线上和普通字符没有区别,函数SetXModem允许用户使能或者禁止用户使用两个控制字符XON和OXFF。这些字符在通信中由接收方发送,使发送方暂停。

例如:假设发送方以高波特率发送数据。在传输中,接收方发现由于CPU忙于其他工作,输入buffer已经满了。为了暂时停止传输,接收方发送XOFF,典型的值是十进制19,即十六进制13,直到输入buffer空了。一旦接收方准备好接收,它发送XON,典型的值是十进制17,即十六进制11,继续通信。输入buffer半满时,LabWindows发送XOFF。此外,如果XOFF传输被打断,LabWindows会在buffer达到75%和90%时发送XOFF。显然,发送方必须遵循此守则以保证传输继续。

第二种是使用硬件线握手。和Tx和Rx线一样,RTS/CTS和DTR/DSR一起工作,一个作为输出,另一个作为输入。第一组线是RTS (Request to Send)和CTS(Clear to Send)。当接收方准备好接收数据,它置高RTS线表示它准备好了,如果发送方也就绪,它置高CTS,表示它即将发送数据。另一组线是DTR(Data Terminal Ready)和DSR(Data Set Ready)。这些现主要用于Modem通信。使得串口和Modem通信他们的状态。例如:当Modem已经准备好接收来自PC的数据,它置高DTR线,表示和电话线的连接已经建立。读取DSR线置高,PC机开始发送数据。一个简单的规则是DTR/DSR用于表示系统通信就绪,而RTS/CTS用于单个数据包的传输。

在LabWindows,函数SetCTSMode使能或者禁止使用硬件握手。如果CTS模式使能,LabWindows使用如下规则:当PC发送数据:RS-232库必须检测CTS线高后才能发送数据。当PC接收数据:如果端口打开,且输入队列有空接收数据,库函数置高RTS和DTR。如果输入队列90%满,库函数置低RTS,但使DTR维持高电平。如果端口队列近乎空了,库函数置高RTS,但使DRT维持高电平。如果端口关闭,库函数置低RTS和DTR。

最后讨论的握手叫做XModem文件传输协议。这个协议在Modem通信中非常通用。尽管它通常使用在Modem通信中,XModem协议能够直接在其他遵循这个协议的设备通信中使用。在LabWindows中,实际的XModem应用对用户隐藏了。只要PC和其他设备使用XModem协议,在文件传输中就使用LabWindows的XModem函数。函数是XModemConfig,XModemSend和XModemReceive。

XModem使用介于如下参数的协议:start_of_data、end_of_data、neg_ack、wait_delay、 start_delay、max_tries、packet_size。这些参数需要通信双方认定,标准的XModem有一个标准的定义:然而,可以通过 XModemConfig函数修改,以满足具体需要。这些参数的使用方法由接收方发送的字符neg_ack确定。这通知发送方其准备接收数据。它开始尝试发送,有一个超时参数start_delay;当超时的尝试超过max_ties次数,或者收到接收方发送的start_of_data,发送方停止尝试。如果从发送方收到start_of_data,接收方将读取后继信息数据包。包中含有包的数目、包数目的补码作为错误校验、packet_size字节大小的实际数据包,和进一步错误检查的求和校验值。在读取数据后,接收方会调用wait_delay,然后想发送方发送响应。如果发送方没有收到响应,它会重新发送数据包,直到收到响应或者超过重发次数的最大值max_tries。如果一直没有收到响应,发送方通知用户传输数据失败。由于数据必须以pack_size个字节按包发送,当最后一个数据包发送时,如果数据不够放满一个数据包,后面会填充ASCII码NULL(0)字节。这导致接收的数据比原数据多。在XModem情况下一定不要使用XON/XOFF,因为XModem发送方发出包的数目很可能增加到XON/OFF控制字符的值,从而导致通信故障。

版权声明:本文来源网络,免费传达知识,版权归原作者所有。如涉及作品版权问题,请联系我进行删除。

关注我的微信公众号,回复“加群”按规则加入技术交流群。
点击“阅读原文”查看更多分享,欢迎点分享、收藏、点赞、在看。

标签: 判断电阻大小内接外接线缆端子连接器线缆连接器的接地结构连接器地线端子定位结构端子环形连接器16c热过载继电器

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

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