几种流行的串行通信协议

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

几种流行的串行通信协议
最被人们熟悉的串行通信技术标准是EIA-23二、EIA-422和EIA-485,也确实是以前所称的RS-23二、RS-422和RS-485。

由于EIA提出的建议标准都是以“RS”作为前缀,因此在工业通信领域,仍然适应将上述标准以RS作前缀称呼。

EIA-23二、EIA-422和EIA-485都是串行数据接口标准,最初都是由电子工业协会(EIA)制订并发布的,EIA-232在1962年发布,后来陆续有很多改良版本,其中最经常使用的是EIA-232-C 版。

目前EIA-232是PC机与通信工业中应用最普遍的一种串行接口。

EIA-232被概念为一种在低速度串行通信中增加通信距离的单端标准。

EIA-232采取不平稳传输方式,即所谓单端通信。

标准规定,EIA-232的传送距离要求可达50英尺(约15米),最高速度为20kbps。

由于EIA-232存在传输距离有限等不足,于是EIA-422诞生了。

EIA-422标准全称是“平稳电压数字接口电路的电气特性”,它概念了一种平稳通信接口,将传输速度提高到10Mbps,传输距离延长到4000英尺(约1219米),并许诺在一条平稳总线上连接最多10个接收器。

固然,EIA-422也有缺点: 因为其平稳双绞线的长度与传输速度成反比,因此在100kbps速度之内,传输距离才可能达到最大值,也确实是说,只有在很短的距离下才能取得最高传输速度。

一样在100米长的双绞线上所能取得的最大传输速度仅为1Mbps。

另外有一点必需指出,在EIA-422通信中,只有一个主设备(Master),其余为从设备(Salve),从设备之间不能进行通信,因此EIA-422支持的是点对多点的双向通信。

为扩展应用范围,EIA于1983年在EIA-422基础上制定了EIA-485标准,增加了多点、双向通信能力,即许诺多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突爱惜特性,扩展了总线共模范围,后命名为TIA/EIA-485-A标准。

由于EIA-485是从EIA-422基础上进展而来的,因此EIA-485许多电气规定与EIA-422相仿,如都采纳平稳传输方式、都需要在传输线上接终接电阻、最大传输距离约为1219米、最大传输速度为10Mbps等。

可是,EIA-485能够采纳二线与四线方式,采纳二线制时可实现真正的多点双向通信,而采纳四线连接时,与EIA-422一样只能实现点对多点通信,但它比EIA-422有改良,不管四线仍是二线连接方式总线上可接多达32个设备。

由于EIA-23二、EIA-422与EIA-485标准只对接口的电气特性做出规定,而不涉及接插件、电缆或协议,标准内容规定比较简单,在此标准基础上,用户能够成立自己的高层通信协议。

因此,这些串行通信技术应用很广,如录像机、运算机和许多工业操纵设备上都配备有EIA-232串行通信接口。

几十年不变的串行通信技术近两年被打破了,打破坚冰的技术确实是USB。

USB接口的出此刻工业通信领域的反映很冷淡,但是在IT界的反应却十分强烈。

现在在运算机外联的设备中,愈来愈多的设备开始利用USB接口。

IT新锐-USB
USB是英文 Universal Serial Bus 的缩写,翻译成中文的含义是“通用串行总线”。

从技术上看,USB是一种串行总线系统,它的最大特性是支持即插即用和热插拔功能。

在Windows 2000的操作系统中,任何一款标准的USB设备能够在任何时刻、任何状态下与运算机连接,而且能够马上开始工作。

USB诞生于1994年,是由康柏、IBM、Intel和Microsoft一起推出的,旨在统一外设接口,如打印机、外置Modem、扫描仪、鼠标等的接口,以便于用户进行便利的安装和利用,慢慢取代以往的串口、并口和PS/2接口。

进展至今,USB共有三种标准:1996年发布的USB1.0,1998年发布的USB1.1和方才发布的最新标准USB2.0。

此三种标准最大的不同就在于数据传输速度方面,固然,在其他方面也有不同程度的改良。

就目前的USB2.0而言,其传输速度能够达到480Mbps,最多能够支持127个设备。

目前在IT领域,USB接口可谓春风得意。

人们在市场上能够看到,每一款运算机主板都带有很多于2个USB接口,USB打印机、USB调制解调器、USB鼠标、USB音箱、USB存储器等产品愈来愈多,USB接口已经占据了串行通信技术的垄断地位。

可是,在工业领域,利用USB接口的产品那么甚为少见。

在工业领域,人们更要求产品的靠得住性和稳固性,目前,EIA标准下的串行通信技术完全能够知足人们对工业设备传输的各类性能要求,而且,这些产品价钱超级低廉。

相较之下,USB价钱较高,而且其即插即用的功能在工业通信中没有优势。

因为工业设备一样连接好以后很少进行重复插拔,USB特性的优越性不能专门好地被表现出来,也就得不到工业界的普遍认可。

因此,在工业领域,EIA标准仍然占据统治地位。

目前,还有一项串行通信技术受到人们的关注,这确实是IEEE 1394,这项技术尽管尚未普及,可是,人们对它的前景十分看好。

以后之星-IEEE 1394
IEEE 1394是一种与平台无关的串行通信协议,标准速度分为100Mbps、200Mbps和400Mbps,是IEEE(电气与电子工程师协会)于1995年正式制定的总线标准。

目前,1394商业联盟正在负责对它进行改良,争取以后将速度提升至800Mbps、1Gbps和1.6Gbps这三个档次。

相较于EIA接口和USB接口,IEEE 1394的速度要高得多,因此,IEEE 1394也称为高速串行总线。

IEEE 1394提供了一种高速的即插即用总线。

接入这条总线,各类外设便再也不需要单独供电,它也支持等时的数据传输,是将运算机和消费类电器连接起来的重要桥梁。

例如,用户能够在运算机上接驳一部数字VCR,把它看成一个一般的外设利用,既可用来播放电影,亦能够录制在运算机上编辑视频流。

除此之外,带有IEEE 1394接口的DV(数字视频)摄影机和数字卫星接收器目前均已上市。

由于速度超级快,因此它是消费类影音(A/V)电器、存储、打印、高分辨率扫描和其他便携设备的理想选择。

从技术上看,IEEE 1394具有很多优势,第一,它是一种纯数字接口,在设备之间进行信息传输的进程中,数字信号不用转换成模拟信号,从而可不能带来信号损失;第二,速度专门快,1Gbps 的数据传输速度能够超级好地传输高品质的多媒体数据,而且设备易于扩展,在一条总线中,
100Mbps、200Mbps和400Mbps的设备能够共存;另外,产品支持热插拔,易于利用,用户能够在开机状态下自由增减IEEE 1394接口的设备,整个总线的通信可不能受到干扰。

或许有人会问,采纳并行方式不是能够达到更高的传输速度吗?例如,包括了8根线芯的一条并行电缆和一条串行电缆相较,前者的速度能够是后者的8倍。

从理论上看的确如此,可是在实际利历时,人们还要考虑其他许多因素。

例如,在并行电缆的多股线芯之间,电子干扰比较厉害; 速度较高的时候,线芯之间的同步也是一个问题; 总线的问题那么加倍复杂。

而各类IEEE 1394可通过菊花链的形式连接成一个网络,固然,由于本钱缘故,它只适合组成一个小网,而且内含的设备都是家用电器和运算机外设之类的东西,不适合组建一个真正的“运算机网络”。

但它在一条总线内能够连接大量设备(最多63个),数据的传输取得极大简化,不仅需要的命令集被精简了,而且只需针对一个地址直接进行读写。

目前支持IEEE 1394的产品有台式运算机、笔记本电脑、高精度扫描仪、数字视频(DV)摄影机、数码音箱(SA2.5)、数码相机等。

串口通信协议
百科名片
串口通信的概念超级简单,串口按位(bit)发送和接收字节。

尽管比按字节(byte)的并行通信慢,可是串口能够在利用一根线发送数据的同时用另一根线接收数据。

目录
什么是串口
串口是运算机上一种超级通用设备通信的协议(不要与Universal SerialBus或USB混淆)。

大多数运算机包括两个基于RS232的串口。

串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有口。

同时,协议也能够用于获取远程搜集设备的数据。

串口通信的概念超级简单,串口按位(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位的,标准的值是五、7和8位。

如何设置取决于你想传送的信息。

比如,标准的ASCII码是0~127(7位)。

扩展的ASCII码是0~255(8位)。

若是数据利用简单的文本(标准ASCII码),那么每一个数据包利用7位数据。

每一个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。

由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情形。

c,停止位:用于表示单个包的最后一名。

典型的值为1,1.5和2位。

由于数据是在传输线上按时的,而且每一个设备有其自己的时钟,极可能在通信中两台设备间显现了小小的不同步。

因此停止位不单单是表示传输的终止,而且提供运算机校正的机遇。

适用于停止位的位数越多,不同时钟同步的容忍程度越大,可是数据传输率同时也越慢。

d,奇偶校验位:在串口通信中一种简单的检错方式。

有四种检错方式:偶、奇、高和低。

固然没有校验位也是能够的。

关于偶和奇校验的情形,串口会设置校验位(数据位后面的一名),用一个值确保传输的数据有偶个或奇个逻辑高位。

例如,若是数据是011,那么关于偶校验,校验位为0,保证逻辑高的位数是偶数个。

若是是奇校验,校验位位1,如此就有3个逻辑高位。

高位和低位不真正的检查数据,简单置位逻辑高或逻辑低校验。

如此使得接收设备能够明白一个位的状态,有机遇判定是不是有噪声干扰了通信或是不是传输和接收数据是不是不同步。

什么是RS-232
RS-232(ANSI/EIA-232标准)是IBM-PC及其兼容机上的串行连接标准。

可用于许多用途,比如连接鼠标、打印机或Modem,同时也能够接工业仪器仪表。

用于驱动和连线的改良,实际应用中RS-232的传输长度或速度常常超过标准的值。

RS-232只限于PC串口和设备间点对点的通信。

RS-232串口通信最远距离是50英尺。

DB-9针连接头
-------------
\ 1 2 3 4 5 /
\ 6 7 8 9 /
-------
从运算机连出的线的截面。

RS-232针脚的功能:
数据:
TXD(pin 3):串口数据输出(Transmit Data)
RXD(pin 2):串口数据输入(Receive Data)
握手:
RTS(pin 7):发送数据请求(Request to Send)
CTS(pin 8):清除发送(Clear to Send)
DSR(pin 6):数据发送就绪(Data Send Ready)
DCD(pin 1):数据载波检测(Data Carrier Detect)
DTR(pin 4):数据终端就绪(Data Terminal Ready)
地线:
GND(pin 5):地线
其他
RI(pin 9):铃声指示什么是RS-422
RS-422(EIA RS-422-AStandard)是Apple的Macintosh运算机的串口连接标准。

RS-422利用差分信号,RS-232利用非平稳参考地的信号。

差分传输利用两根线发送和接收信号,对照RS-232,它能更好的抗噪声和有更远的传输距离。

在工业环境中更好的抗噪性和更远的传输距离是一个专门大的优势。

什么是RS-485
(EIA-485标准)是RS-422的改良,因为它增加了设备的个数,从10个增加到32个,同时概念了在最大设备个数情形下的电气特性,以保证足够的信号电压。

有了多个设备的能力,你能够利用一个单个RS-422口成立设备网络。

超卓抗噪和多设备能力,在工业应用中成立连向PC机的散布式设备网络、其他数据搜集操纵器、HMI或其他操作时,串行连接会选择RS-485。

RS-485是RS-422的超集,因此所有的RS-422设备能够被RS-485操纵。

RS-485能够用超过4000英尺的线进行串行通行。

DB-9 引脚连接
-------------
\ 1 2 3 4 5 /
\ 6 7 8 9 /
-------
从运算机连出的线的截面。

RS-485的引脚的功能
数据:1(DATA-) 2(DATA+)
地线:5
什么是握手
RS-232通行方式许诺简单连接三线:Tx、Rx和地线。

可是关于数据传输,两边必需对数据按时采纳利用相同的波特率。

尽管这种方式关于大多数应用已经足够,可是关于接收方过载的情形这种利用受到限制。

这时需要串口的握手功能。

在这一部份,咱们讨论三种最经常使用的RS-232握手形式:握手、硬件握手和Xmodem。

a,软件握手:咱们讨论的第一种握手是软件握手。

通经常使用在实际数据是操纵字符的情形,类似于GPIB利用命令字符串的方式。

必需的线仍然是三根:Tx,Rx和地线,因为操纵字符在传输线上和一般字符没有区别,函数SetXModem许诺用户利用或禁止用户利用两个操纵字符XON和XOFF。

这些字符在通信中由接收方发送,使发送方暂停。

例如:假设发送方以高波特率发送数据。

在传输中,接收方发觉由于CPU忙于其他工作,输入buffer已经满了。

为了临时停止传输,接收方发送XOFF,典型的值是十进制19,即十六进制13,直到输入buffer空了。

一旦接收方预备好接收,它发送XON,典型的值是十进制17,即十六进制11,继续通信。

输入buffer半满时,LabWindows发送XOFF。

另外,若是XOFF传输被打断,LabWindows会在buffer达到75%和90%时发送XOFF。

显然,发送方必需遵循此守那么以保证传输继续。

b,硬件握手:第二种是利用硬件线握手。

和Tx和Rx线一样,RTS/CTS和DTR/DSR一路工作,一个作为输出,另一个作为输入。

第一组线是RTS(Request to Send)和CTS(Clear toSend)。

当接收方预备好接收数据,它置高RTS线表示它预备好了,若是发送方也就绪,它置高CTS,表示它即将发送数据。

另一组线是DTR(DataTerminal Ready)和DSR(Data SetReady)。

这些现要紧用于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。

c,XModem握手:最后讨论的握手叫做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情形下必然不要利用,因为XModem发送方发出包的数量极可能增加到XON/OFF操纵字符的值,从而致使通信故障。

相关文档
最新文档