《RS232通信协议书详解.pdf》由会员分享,可在线阅读,更多相关《RS232通信协议书详解.pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、.RS232 通信协议详解 通信协议 所谓通信协议是指通信双方的一种约定.约定包括对数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守.因此,也叫做通信控制规程,或称传输控制规程,它属于 ISOS OSI 七层参考模型中的数据链路层.目前,采用的通信协议有两类:异步协议和同步协议.同步协议又有面向字符和面向比特以及面向字节计数三种.其中,面向字节计数的同步协议主要用于 DEC 公司的网络体系结构中.一、物理接口标准 1.串行通信接口的基本任务 实现数据格式化:因为来自 CPU 的是普通的并行数据,所以,接口电路应具有实现不同串行通信方式下
2、的数据格式化的任务.在异步通信方式下,接口自动生成起止式的帧数据格式.在面向字符的同步方式下,接口要在待传送的数据块前加上同步字符.进行串并转换:串行传送,数据是一位一位串行传送的,而计算机处理数据是并行数据.所以当数据由计算机送至数据发送器时,首先把串行数据转换为并行数才能送入计算机处理.因此串并转换是串行接口电路的重要任务.控制数据传输速率:串行通信接口电路应具有对数据传输速率波特率进行选择和控制的能力.进行错误检测:在发送时接口电路对传送的字符数据自动生成奇偶校验位或其他校验码.在接收时,接口电路检查字符的奇偶校验或其他校验码,确定是否发生传送错误.进行 TTL 与 EIA 电平转换:C
3、PU 和终端均采用 TTL 电平及正逻辑,它们与 EIA 采用的电平及负逻辑不兼容,需在接口电路中进行转换.提供 EIA-RS-232C 接口标准所要求的信号线:远距离通信采用 MODEM 时,需要 9 根信号线;近距离零 MODEM 方式,只需要 3 根信号线.这些信号线由接口电路提供,以便与 MODEM 或终端进行联络与控制.2、串行通信接口电路的组成 为了完成上述串行接口的任务,串行通信接口电路一般由可编程的串行接口芯片、波特率发生器、EIA 与 TTL 电平转换器以及地址译码电路组成.其中,串行接口芯片,随着大规模继承电路技术的发展,通用的同步USRT和异步接口芯片种类越来越多,如下表
4、所示.它们的基本功能是类似的,都能实现上面提出的串行通信接口基本任务的大部分工作,且都是可编程的.才用这些芯片作为串行通信接口电路的核心芯片,会使电路结构比较简单.3.有关串行通信的物理标准 为使计算机、以及其他通信设备互相沟通,现在,已经对串行通信建立了几个一致的概念和标准,这些概念和标准属于三个方面:传输率,电特性,信号名称和接口标准.1、传输率:所谓传输率就是指每秒传输多少位,传输率也常叫波特率.国际上规定了一个标准波特率系列,标准波特率也是最常用的波特率,标准波特率系列为 110、300、600、1200、4800、9600 和 19200.大多数 CRT 终端都能够按 110 到 9
5、600 范围中的任何一种波特率工作.打印机由于机械速度比较慢而使传输波特率受到限制,所以,一般的串行打印机工作在 110 波特率,点针式打印机由于其内部有较大的行缓冲区,所以可以按高达 2400 波特的速度接收打印信息.大多数接口的接收波特率和发送波特率可以分别设置,而且,可以通过编程来指定.2、RS-232-C 标准:RS-232-C 标准对两个方面作了规定,即信号电平标准和控制信号线的定义.RS-232C 采用负逻辑规定逻辑电平,信号电平与通常的 TTL 电平也不兼容,RS-232-C 将-5V-15V 规定为1,+5V+15V 规定为0.图 1 是 TTL 标准和 RS-232-C 标准
6、之间的电平转换.二、软件协议 1.OSI 协议和 TCP/IP 协议 OSI 协议 OSI 七层参考模型不是通讯标准,它只给出一个不会由于技术发展而必须修改的稳定模型,使有关标准和协议能在模型定义的范围内开发和相互配合.一般的通讯协议只符合 OSI 七层模型的某几层,如:EIA-RS-232-C:实现了物理层.IBM 的 SDLC:数据链路层.ANSI 的ADCCP:数据链路层 IBM 的 BSC:数据链路层.应用层的电子邮件协议 SMTP 只负责寄信、POP3 只负责收信.TCP/IP 协议 实现了五层协议.物理层:对应 OSI 的物理层.网络接口层:类似于 OSI 的数据链路层.Inter
7、net 层:OSI 模型在 Internet 网使用前提出,未考虑网间连接.传输层:对应 OSI 的传输层.应用层:对应 OSI 的表示层和应用层.2.串行通信协议 串行通信协议分同步协议和异步协议.异步通信协议的实例起止式异步协议 特点与格式:起止式异步协议的特点是一个字符一个字符传输,并且传送一个字符总是以起始位开始,以停止位结束,字符之间没有固定的时间间隔要求.其格式如图 3 所示.每一个字符的前面都有一位起始位,字符本身有 57 位数据位组成,接着字符后面是一位校验位,最后是一位,或意味半,或二位停止位,停止位后面是不定长度的空闲位.停止位和空闲位都规定为高电平,这样就保证起始位开始处
8、一定有一个下跳沿.从图中可以看出,这种格式是靠起始位和停止位来实现字符的界定或同步的,故称为起始式协议.传送.时,数据的低位在前,高位在后,图 4 表示了传送一个字符 E 的 ASCAII 码的波形 1010001.当把它的最低有效位写到右边时,就是 E 的 ASCII 码 1000101=45H.起止位的作用:起始位实际上是作为联络信号附加进来的,当它变为低电平时,告诉收方传送开始.它的到来,表示下面接着是数据位来了,要准备接收.而停止位标志一个字符的结束,它的出现,表示一个字符传送完毕.这样就为通信双方提供了何时开始收发,何时结束的标志.传送开始前,发收双方把所采用的起止式格式和数据传输速
9、率作统一规定.传送开始后,接收设备不断地检测传输线,看是否有起始位到来.当收到一系列的1之后,检测到一个下跳沿,说明起始位出现,起始位经确认后,就开始接收所规定的数据位和奇偶校验位以及停止位.经过处理将停止位去掉,把数据位拼装成一个并行字节,并且经校验后,无奇偶错才算正确的接收一个字符.一个字符接收完毕,接收设备有继续测试传输线,监视0电平的到来和下一个字符的开始,直到全部数据传送完毕.由上述工作过程可看到,异步通信是按字符传输的,每传输一个字符,就用起始位来通知收方,以此来重新核对收发双方同步.若接收设备和发送设备两者的时钟频率略有偏差,这也不会因偏差的累积而导致错位,加之字符之间的空闲位也
10、为这种偏差提供一种缓冲,所以异步串行通信的可靠性高.但由于要在每个字符的前后加上起始位和停止位这样一些附加位,使得传输效率变低了,只有约 80%.因此,起止协议一般用在数据速率较慢的场合.在高速传送时,一般要采用同步协议.面向字符的同步协议 特点与格式:这种协议的典型代表是 IBM 公司的二进制同步通信协议BSC.它的特点是一次传送由若干个字符组成的数据块,而不是只传送一个字符,并规定了 10 个字符作为这个数据块的开头与结束标志以及整个传输过程的控制信息,它们也叫做通信控制字.由于被传送的数据块是由字符组成,故被称作面向字符的协议.特定字符的定义:由上面的格式可以看出,数据块的前后都加了几个
11、特定字符.SYN 是同步字符synchronous Character,每一帧开始处都有 SYN,加一个 SYN 的称单同步,加两个 SYN 的称双同步设置同步字符是起联络作用,传送数据时,接收端不断检测,一旦出现同步字符,就知道是一帧开始了.接着的 SOH 是序始字符,它表示标题的开始.标题中包括院地址、目的地址和路由指示等信息.STX 是文始字符StartOf Text,它标志着传送的正文开始.数据块就是被传送的正文内容,由多个 字符组成.数据块后面是组终字符 ETB或文终字符 ETXEndOf Text,其中 ETB 用在正文很长、需要分成若干个分数据块、分别在不同帧中发送的场合,这时在
12、每个分数据块后面用文终字符 ETX.一帧的最后是校验码,它对从SOH 开始到ETX字段进行校验,校验方式可以是纵横奇偶校验或 CRC.另外,在面向字符协议中还采用了一些其他通信控制字,它们的名称如下表所示:数据透明的实现:面向字符的同步协议,不象异步起止协议那样,需要在每个字符前后附加起始和停止位,因此,传输效率提高了.同时,由于采用了一些传输控制字,故增强了通信控制能力和校验功能.但也存在一些问题,例如,如何区别数据字符代码和特定字符代码的问题,因为在数据块中完全有可能出现与特定字符代码相同的数据字符,这就会发生误解.比如正文有个与文终字符 ETX 的代码相同的数.据字符,接收端就不会把它当
13、作为普通数据处理,而误认为是正文结束,因而产生差错.因此,协议应具有将特定字符作为普通数据处理的能力,这种能力叫做数据透明.为此,协议中设置了转移字符DLEData LinkEscape.当把一个特定字符看成数据时,在它前面要加一个 DLE,这样接收器收到一个 DLE 就可预知下一个字符是数据字符,而不会把它当作控制字符来处理了.DLE 本身也是特定字符,当它出现在数据块中时,也要在它前面加上另一个 DLE.这种方法叫字符填充.字符填充实现起来相当麻烦,且依赖于字符的编码.正是由于以上的缺点,故又产生了新的面向比特的同步协议.面向比特的同步协议 特点与格式:面向比特的协议中最具有代表性的是 I
14、BM 的同步数据链路控制规程 SDLC的高级数据链路控制规程 HDLC,所有场都是从有效位开始传送.SDLC/HDLC 标志字符:SDLC/HDLC 协议规定,所有信息传输必须以一个标志字符开始,且以同一个字符结束.这个标志字符是 01111110,称标志场F.从开始标志到结束标志之间构成一个完整的信息单位,称为一帧Frame.所有的信息是以帧的形传输的,而标志字符提供了每一帧的边界.接收端可以通过搜索01111110来探知帧的开头和结束,以此建立帧同步.地址场和控制场:在标志场之后,可以有一个地址场 AAddress和一个控制场 CControl.地址场用来规定与之通信的次站的地址.控制场可
15、规定若干个命令.SDLC 规定 A 场和 C 场的宽度为 8 位或 16 位.接收方必须检查每个地址字节的第一位,如果为0,则后面跟着另一个地址字节;若为1,则该字节就是最后一个地址字节.同理,如果控制场第一个字节的第一位为为0,则还有第二个控制场字节,否则就只有一个字节.信息场:跟在控制场之后的是信息场 IInformation.I 场包含有要传送的数据,并不是每一帧都必须有信息场.即数据场可以为 0,当它为 0 时,则这一帧主要是控制命令.帧校验信息:紧跟在信息场之后的是两字节的争校验,帧校验场称为 FCFrameCheck场或称为帧校验序列 FCSFrame check Squence.
16、SDLC/HDLC 均采用 16 位循环冗余校验码 CRCCyclic Redundancy Code.除了标志场和自动插入的0以外,所有的信息都参加 CRC 计算.实际应用时的两个技术问题:0位插入/删除:如上所述,SDLC/HDLC 协议规定以 01111110 为标志字节,但在信息场中也完全有可能有同一种模式的字符,为了把它与标志区分开来,所以采取了0位插入和删除技术.具体作法是发送端在发送所有信息时,只要遇到连续 5 个1,就自动插入一个0,当接收端在.接收数据时如果连续收到 5 个1,就自动将其后的一个0删除是,以恢复信息的原有形式.这种0位的插入和删除过程是由硬件自动完成的.SDL
17、C/HDLC 异常结束:若在发送过程中出现错误,则 SDLC/HDLC 协议常用异常结束Abort字符,或称为失效序列使本帧作废.在 HDLC 规程中,7 个连续的1被作为失效字符,而在 SDLC 中失效字符是 8 个连续的1.当然在试销序列中不使用0位插入/删除技术.LC/HDLC 协议规定,在一帧之内不允许出现数据间隔.在两帧之间,发送器可以连续输出标志字符序列,也可以输出连续的高电平,它被称为空闲信号.数据帧格式和通讯协议最大的区别是:数据帧格式属于数据链路层协议;通讯协议属于应用层协议.按 ISO/OSI 模型观点,串口进行通信过程至少涉及三个层次的协议:物理层协议、数据路层协议和应用层协议.物理层协议:规定串口硬件的通信方式.以异步串行通信为例,物理层协议包括串行接口的的波特率、数据位位数、停止位位数以及奇偶校验方式.数据链路层协议:规定数据帧格式,包括数据帧的起始定义、帧的字节数、帧结束定义.有时,数据帧格式中还包括垂直校验和,如 CRC 校验和等.应用层协议:也称为通信协议,规定双方在通信过程中的交互方式,谁先发起通信,是否对方需要应答、是否需要出错重发等.