rs232通信协议Word格式文档下载.docx
- 文档编号:7432887
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:14
- 大小:26.30KB
rs232通信协议Word格式文档下载.docx
《rs232通信协议Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《rs232通信协议Word格式文档下载.docx(14页珍藏版)》请在冰点文库上搜索。
(1)实现数据格式化:
因为来自cpu的是普通的并行数据,所以,接口电路应具有实现不同串行通信方式下的数据格式化的任务。
在异步通信方式下,接口自动生成起止式的帧数据格式。
在面向字符的同步方式下,接口要在待传送的数据块前加上同步字符。
(2)进行串-并转换:
串行传送,数据是一位一位串行传送的,而计算机处理数据是并行数据。
所以当数据由计算机送至数据发送器时,首先把串行数据转换为并行数才能送入计算机处理。
因此串并转换是串行接口电路的重要任务。
(3)控制数据传输速率:
串行通信接口电路应具有对数据传输速率——波特率进行选择和控制的能力。
(4)进行错误检测:
在发送时接口电路对传送的字符数据自动生成奇偶校验位或其他校验码。
在接收时,接口电路检查字符的奇偶校验或其他校验码,确定是否发生传送错误。
(5)进行ttl与eia电平转换:
cpu和终端均采用ttl电平及正逻辑,它们与eia采用的电平及负逻辑不兼容,需在接口电路中进行转换。
(6)提供eia-Rs-232c接口标准所要求的信号线:
远距离通信采用modem时,需要9根信号线;
近距离零modem方式,只需要3根信号线。
这些信号线由接口电路提供,以便与modem或终端进行联络与控制。
2、串行通信接口电路的组成
为了完成上述串行接口的任务,串行通信接口电路一般由可编程的串行接口芯片、波特率发生器、eia与ttl电平转换器以及地址译码电路组成。
其中,串行接口芯片,随着大规模继承电路技术的发展,通用的同步(usRt)和异步(uaRt)接口芯片种类越来越多,如下表所示。
它们的基本功能是类似的,都能实现上面提出的串行通信接口基本任务的大部分工作,且都是可编程的。
才用这些芯片作为串行通信接口电路的核心芯片,会使电路结构比较简单。
3.有关串行通信的物理标准
为使计算机、电话以及其他通信设备互相沟通,现在,已经对串行通信建立了几个一致的概念和标准,这些概念和标准属于三个方面:
传输率,电特性,信号名称和接口标准。
1、传输率:
所谓传输率就是指每秒传输多少位,传输率也常叫波特率。
国际上规定了一个标准波特率系列,标准波特率也是最常用的波特率,标准波特率系列为110、300、600、1200、4800、9600和19200。
大多数cRt终端都能够按110到9600范围中的任何一种波特率工作。
打印机由于机械速度比较慢而使传输波特率受到限制,所以,一般的串行打印机工作在110波特率,点针式打印机由于其内部有较大的行缓冲区,所以可以按高达2400波特的速度接收打印信息。
大多数接口的接收波特率和发送波特率可以分别设置,而且,可以通过编程来指定。
2、Rs-232-c标准:
Rs-232-c标准对两个方面作了规定,即信号电平标准和控制信号线的定义。
Rs-232-c采用负逻辑规定逻辑电平,信号电平与通常的ttl电平也不兼容,Rs-232-c将-5V~-15V规定为“1”,+5V~+15V规定为“0”。
图1是ttl标准和Rs-232-c标准之间的电平转换。
图1
二、软件协议
1.osi协议和tcp/ip协议
图2
(1)osi协议
osi七层参考模型不是通讯标准,它只给出一个不会由于技术发展而必须修改的稳定模型,使有关标准和协议能在模型定义的范围内开发和相互配合。
一般的通讯协议只符合osi七层模型的某几层,如:
eia-Rs-232-c:
实现了物理层。
ibm的sdlc(同步数据链路控制规程):
数据链路层。
ansi的adccp(先进数据通讯规程):
数据链路层ibm的bsc(二进制同步通讯协议):
应用层的电子邮件协议smtp只负责寄信、pop3只负责收信。
(2)tcp/ip协议
实现了五层协议。
(1)物理层:
对应osi的物理层。
(2)网络接口层:
类似于osi的数据链路层。
(3)internet层:
osi模型在internet网使用前提出,未考虑网间连接。
(4)传输层:
对应osi的传输层。
(5)应用层:
对应osi的表示层和应用层。
2.串行通信协议
串行通信协议分同步协议和异步协议。
(1)异步通信协议的实例——起止式异步协议
图3
特点与格式:
起止式异步协议的特点是一个字符一个字符传输,并且传送一个字符总是以起始位开始,以停止位结束,字符之间没有固定的时间间隔要求。
其格式如图3所示。
每一个字符的前面都有一位起始位(低电平,逻辑值0),字符本身有5~7位数据位组成,接着字符后面是一位校验位(也可以没有校验位),最后是一位,或意味半,或二位停止位,停止位后面是不定长度的空闲位。
停止位和空闲位都规定为高电平(逻辑值),这样就保证起始位开始处一定有一个下跳沿。
从图中可以看出,这种格式是靠起始位和停止位来实现字符的界定或同步的,故称为起始式协议。
传送时,数据的低位在前,高位在后,图4表示了传送一个字符e的ascaii码的波形1010001。
当把它的最低有效位写到右边时,就是e的ascii码1000101=45h。
图4
起/止位的作用:
起始位实际上是作为联络信号附加进来的,当它变为低电平时,告诉收方传送开始。
它的到来,表示下面接着是数据位来了,要准备接收。
而停止位标志一个字符的结束,它的出现,表示一个字符传送完毕。
这样就为通信双方提供了何时开始收发,何时结束的标志。
传送开始前,发收双方把所采用的起止式格式(包括字符的数据位长度,停止位位数,有无校验位以及是奇校验还是偶校验等)和数据传输速率作统一规定。
传送开始后,接收设备不断地检测传输线,看是否有起始位到来。
当收到一系列的“1”(停止位或空闲位)之后,检测到一个下跳沿,说明起始位出现,起始位经确认后,就开始接收所规定的数据位和奇偶校验位以及停止位。
经过处理将停止位去掉,把数据位拼装成一个并行字节,并且经校验后,无奇偶错才算正确的接收一个字符。
一个字符接收完毕,接收设备有继续测试传输线,监视“0”电平的到来和下一个字符的开始,直到全部数据传送完毕。
由上述工作过程可看到,异步通信是按字符传输的,每传输一个字符,就用起始位来通知收方,以此来重新核对收发双方同步。
若接收设备和发送设备两者的时钟频率略有偏差,这也不会因偏差的累积而导致错位,加之字符之间的空闲位也为这种偏差提供一种缓冲,所以异步串行通信的可靠性高。
但由于要在每个字符的前后加上起始位和停止位这样一些附加位,使得传输效率变低了,只有约80%。
因此,起止协议一般用在数据速率较慢的场合(小于19.2kbit/s)。
在高速传送时,一般要采用同步协议。
(2)面向字符的同步协议
这种协议的典型代表是ibm公司的二进制同步通信协议(bsc)。
它的特点是一次传送由若干个字符组成的数据块,而不是只传送一个字符,并规定了10个字符作为这个数据块的开头与结束标志以及整个传输过程的控制信息,它们也叫做通信控制字。
由于被传送的数据块是由字符组成,故被称作面向字符的协议。
特定字符(控制字符)的定义:
由上面的格式可以看出,数据块的前后都加了几个特定字符。
syn是同步字符(synchronouscharacter),每一帧开始处都有syn,加一个syn的称单同步,加两个syn的称双同步设置同步字符是起联络作用,传送数据时,接收端不断检测,一旦出现同步字符,就知道是一帧开始了。
接着的soh是序始字符(startofheader),它表示标题的开始。
标题中包括院地址、目的地址和路由指示等信息。
stx是文始字符(startoftext),它标志着传送的正文(数据块)开始。
数据块就是被传送的正文内容,由多个字符组成。
数据块后面是组终字符etb(endoftransmissionblock)或文终字符etx(endoftext),其中etb用在正文很长、需要分成若干个分数据块、分别在不同帧中发送的场合,这时在每个分数据块后面用文终字符etx。
一帧的最后是校验码,它对从soh开始到etx(或etb)字段进行校验,校验方式可以是纵横奇偶校验或cRc。
另外,在面向字符协议中还采用了一些其他通信控制字,
数据透明的实现:
面向字符的同步协议,不象异步起止协议那样,需要在每个字符前后附加起始和停止位,因此,传输效率提高了。
同时,由于采用了一些传输控制字,故增强了通信控制能力和校验功能。
但也存在一些问题,例如,如何区别数据字符代码和特定字符代码的问题,因为在数据块中完全有可能出现与特定字符代码相同的数据字符,这就会发生误解。
比如正文有个与文终字符etx的代码相同的数据字符,接收端就不会把它当作为普通数据处理,而误认为是正文结束,因而产生差错。
因此,协议应具有将特定字符作为普通数据处理的能力,这种能力叫做“数据透明”。
为此,协议中设置了转移字符dle(datalinkescape)。
当把一个特定字符看成数据时,在它前面要加一个dle,这样接收器收到一个dle就可预知下一个字符是数据字符,而不会把它当作控制字符来处理了。
dle本身也是特定字符,当它出现在数据块中时,也要在它前面加上另一个dle。
这种方法叫字符填充。
字符填充实现起来相当麻烦,且依赖于字符的编码。
正是由于以上的缺点,故又产生了新的面向比特的同步协议。
(3)面向比特的同步协议
面向比特的协议中最具有代表性的是ibm的同步数据链路控制规程sdlc(synchronousdatalinkcontrol),国际标准化组织iso(internationalstandardorganization)的高级数据链路控制规程hdlc(highleveldatalinkcontrol),美国国家标准协会(americalnationalstandardinstitute)的先进数据通信规程adccp(advanceddatacommunicationcontrolprocedure)。
这些协议的特点是所传输的一帧数据可以是任意位,而且它是靠约定的位组合模式,而不是靠特定字符来标志帧的开始和结束,故称“面向比特”的协议。
这中协议的一般帧格式如图5所示:
图5
帧信息的分段:
由图5可见,sdlc/hdlc的一帧信息包括以下几个场(Filed),所有场都是从有效位开始传送。
(1)sdlc/hdlc标志字符:
sdlc/hdlc协议规定,所有信息传输必须以一个标志字符开始,且以同一个字符结束。
这个标志字符是01111110,称标志场(F)。
从开始标志到结束标志之间构成一个完整的信息单位,称为一帧(Frame)。
所有的信息是以帧的形传输的,而标志字符提供了每一帧的边界。
接收端可以通过搜索“01111110”来探知帧的开头和结束,以此建立帧同步。
(2)地址场和控制场:
在标志场之后,可以有一个地址场a(address)和一个控制场c(control)。
地址场用来规定与之通信的次站的地址。
控制场可规定若干个命令。
sdlc规定a场和c场的宽度为8位或16位。
接收方必须检查每个地址字节的第一位,如果为“0”,则后面跟着另一个地址字节;
若为“1”,则该字节就是最后一个地址字节。
同理,如果控制场第一个字节的第一位为为“0”,则还有第二个控制场字节,否则就只有一个字节。
(3)信息场:
跟在控制场之后的是信息场i(information)。
i场包含有要传送的数据,并不是每一帧都必须有信息场。
即数据场可以为0,当它为0时,则这一帧主要是控制命令。
(4)帧校验信息:
紧跟在信息场之后的是两字节的争校验,帧校验场称为Fc(Framecheck)场或称为帧校验序列F(rs232通信协议)cs(Framechecksquence)。
sdlc/hdlc均采用16位循环冗余校验码cRc(cyclicRedundancycode)。
除了标志场和自动插入的“0”以外,所有的信息都参加cRc计算。
实际应用时的两个技术问题:
(1)“0”位插入/删除:
如上所述,sdlc/hdlc协议规定以01111110为标志字节,但在信息场中也完全有可能有同一种模式的字符,为了把它与标志区分开来,所以采取了“0”位插入和删除技术。
具体作
篇二:
Rs232-Rs458-Rs422通讯协议简介
原文地址:
Rs232、Rs485、Rs422通讯协议简介作者:
黄花有主
一、什么是Rs-232接口?
(1)Rs-232的历史和作用
在串行通讯时,要求通讯双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通讯。
Rs-232-c接口(又称eiaRs-232-c)是目前最常用的一种串行通讯接口。
(“Rs-232-c”中的“-c”只不过表示Rs-232的版本,所以与“Rs-232”简称是一样的)它是在1970年由美国电子工业协会(eia)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。
它的全名是“数据终端设备(dte)和数据通讯设备(dce)之间串行二进制数据交换接口技术标准”该标准规定采用一个25个脚的db-25连接器,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定。
后来ibm的pc机将Rs232简化成了db-9连接器,从而成为事实标准。
而工业控制的Rs-232口一般只使用Rxd、txd、gnd三条线。
(2)Rs-232接口的电气特征
在Rs-232-c中任何一条信号线的电压均为负逻辑关系。
即:
逻辑“1”为-3到-15V;
逻辑“0”为+3到+15V。
Rs-232-c最常用的9条引线的信号内容如下所示
db-9123456789
db-2583220764522
定义dcdRxdtxddtRgnddsRRtdctsRi
(3)Rs-232接口的物理结构
Rs-232-c接口连接器一般使用型号为db-9插头座,通常插头在dce端,插座在dte端。
pc机的Rs-232口为9芯针插座。
一些设备与pc机连接的Rs-232接口,因为不使用对方的传送控制信号,只需要三条接口线,即“发送数据txd”、“接收数据Rxd”和“信号地gnd”。
Rs-232传输线采用屏蔽双绞线。
(4)Rs-232传输电缆长度
由Rs-232-c标准规定在码元畸变小于4%的情况下,传输电缆长度应为50英尺,其实这个4%的码元畸变是很保守的,在实际应用中,约有99%的用户是按码元畸变10%-20%的范围工作的,所以实际使用中最大距离会远超过50英尺,美国dec公司曾规定容许畸变为10%而得出下面实验结果。
其中1号电缆为屏蔽电缆,型号为decp.no.9107723内有三对双绞线,每对有22#awg组成,其外覆以屏蔽线。
2号电缆为不带屏蔽的电缆。
型号为decp.no.9105856-04是22#awg的四芯电缆。
dec公司的实验结果
波特率bps1号电缆传输距离(米)2号电缆传输距离(米)
1101500900
3001500900
120xx00900
2400300150
480030075
96007575
经过许多年来Rs-232器件以及通信技术的改进,Rs-232的通信距离已经大大增加。
Rs-232增强器可以将普通的Rs-232口的通信距离延长到1000米。
二、什么是Rs-485接口?
1、Rs-485的电气特性:
发送端:
逻辑“1”以两线间的电压差+(2至6)V表示;
逻辑“0”以两线间的电压差-(2至6)V表示。
接收端:
a比b高200mV以上即认为是逻辑“1”,a比b低200mV以上即认为是逻辑“0”。
2、Rs-485的数据最高传输速率为10mbps。
但是由于Rs-485常常要与pc机的Rs-232口通信,所以实际上一般最高115.2kbps。
又由于太高的速率会使Rs-485传输距离减小,所以往往为9600bps左右或以下。
3、Rs-485接口是采用平衡驱动器和差分接收器的组合,抗噪声干扰性好。
4、Rs-485接口的最大传输距离标准为1200米(9600bps时),实际上可达3000米,Rs-485接口在总线上是容许连接多达128个收发器、即
Rs-485具有多机通信功能,这样用户可以利用单一的Rs-485接口方便的建立起网络。
因为Rs-485接口组成的半双工网络,一般只需二根信号线,所以Rs-485接口均采用双绞线传输。
Rs-485的国际标准并没有规定Rs-485的接口连接器标准、所以采用接线端子或者db-9、db-25等连接器都可以。
5、采用Rs-485接口时,传输电缆的长度如何考虑?
在使用Rs-485接口时,对于特定的传输线经,从发生器到负载其数据信号传输所容许的最大电缆长度是数据信号速率的函数,这个长度数据主要是受信号失真及噪声等影响所限制。
最大电缆长度与信号速率的关系曲线是使用24awg铜芯双绞电话电缆(线经为0.51mm),线间旁路电容为52.5pF/m,终端负载电阻为100欧时所得出的。
(引自gb11014-89附录a)。
当数据信号速率降低到90kbit/s以下时,假定最大容许的信号损失为6dbV时,则电缆长度被限制在1200m。
实际上,在实用时是完全可以取得比它大的电缆长度。
当使用不同线经的电缆,则取得的最大电缆长度是不相同的。
例如:
当数据信号速率为600kbit/s时,采用24awg电缆,最大电缆长度是200m,若采用
19awg电缆(线经为0.91mm)则电缆长度将可以大于200m;
若采用28awg电缆(线经为0.32mm),则电缆长度只能小于200m。
Rs-485的远距离通信建议采用屏蔽电缆,并且将屏蔽层作为地线。
三、什么是Rs-422接口?
Rs-422的电气性能与Rs-485完全一样。
主要的区别在于:
Rs-422有4根信号线:
两根发送(y、z)、两根接收(a、b)。
由于Rs-422的收与发是分开的所以可以同时收和发(全双工)。
Rs-485有两根数据线:
发送和接收都是a和b。
由于Rs-485的收与发是共用两根线,所以不能同时收和发(半双工)。
四、Rs-485比Rs-232-c接口相比有何特点?
答:
由于Rs-232接口标准出现较早,难免有不足之处,主要有以下四点:
(1)接口的信号电平值较高,易损坏接口电路的芯片,又因为与ttl电平不兼容故需使用电平转换电路方能与ttl电路连接。
(2)传输速率较低,在异步传输时,波特率为20kbps。
现在由于采用了新的uaRt芯片,波特率达到115.2kbps。
(3)接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地
传输容易产生共模干扰,所以抗噪声干扰性弱。
(4)传输距离有限,最大传输距离标准值为50米,实际上也只能用在15米左右。
(5)Rs-232只容许一对一的通信,而Rs-485接口在总线上是容许连接多达128个收发器。
篇三:
[转]串口(9,25针)通信、串口引脚定义与连接
目前较为常用的串口有9针串口(db9)和25针串口(db25),通信距离较近时( 1.db9和db25的常用信号脚说明
2.Rs232c串口通信接线方法(三线制)
首先,串口传输数据只要有接收数据针脚和发送针脚就能实现:
同一个串口的接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连
同一个串口的接收脚和发送脚直接用线相连对9针串口和25针串口,均是2与3直接相连;
两个不同串口(不论是同一台计算机的两个串口或分别是不同计算机的串口)
上面表格是对微机标准串行口而言的,还有许多非标准设备,如接收gps数据或电子罗盘数据,只要记住一个原则:
接收数据针脚(或线)与发送数据针脚(或线)相连,彼些交叉,信号地对应相接,就能百战
百胜。
3.串口调试中要注意的几点:
不同编码机制不能混接,如Rs232c不能直接与Rs422接口相连,市面上专门的各种转换器卖,必须通过转换器才能连接;
线路焊接要牢固,不然程序没问题,却因为接线问题误事;
串口调试时,准备一个好用的调试工具,如串口调试助手、串口精灵等,有事半功倍之效果;
强烈建议不要带电插拨串口,插拨时至少有一端是断电的,否则串口易损坏。
附:
9针脚信号:
1cdcarrierdetect2RxdReceivedata3txdtransmitdata
4dtRdataterminalReady5gndsystemground6dsRdatasetReady7RtsRequesttosend8ctscleartosend9RiRingindicator
dcd、dtR、dsR、Rts及cts等五个状态指示分别代表什么意思?
dcd(datacarrierdetect数据载波检测)dtR(dataterminalReady,数据终端准备好)dsR(datasetReady数据准备好)Rts(Requesttosend请求发送)cts(cleartosend清除发送)
在这五个控制信号中,dtR和Rts是dte设备(数据终端设备,在实际应用中就是路由器)发出的,dsR、cts和dcd是dce设备(数据电路终结设备,在实际中就是各种基带modem)发出的。
这五个控制信号的协商机制如下:
1、在路由器的串口没有配置流控命令的情况下,只要一上电,dtR和Rts就会被置成有效(即只要一加电这两个状态就up,不管串口有没有接电缆),当路由器检测到对端送过来的dsR、cts和dcd三个信号时,串口的物理状态就上报up(任何一个物理信号无效都不会报up,或者说,这三个信号中只要有一个为down,路由器串口的物理状态就处于down的状态)。
另外,如果在路由器的串口上配置了nodetectdsR-dtR命令,dte侧(路由器)就不会检测对端是否送过来dsR和cts信号,只要检测到dcd信号,物理层就报up。
2、如果在路由器的串口上配置了流控命令(具体命令为flowcontrolauto),Rts和cts两个信号就会用于流量控制(路由器串口和基带modem之间的数据发送、接收流控)。
当出现数据处理不及时的情
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- rs232 通信协议