许继电气股份有限公司发电自动化系统部总7页第1页Modbus规约的使用及报文解析一、通讯的接口方式串行通讯简单认识串行通讯的基本概念:与外界的信息交换称为通讯。基本的通讯方式有并行通讯和串行通讯两种。一条信息的各位数据被同时传送的通讯方式称为并行通讯。并行通讯的特点是:各数据位同时传送,传送速度快、效率高,但有多少数据位就需多少根数据线,因此传送成本高,且只适用于近距离(相距数米)的通讯。一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯。串行通讯的特点是:数据位传送,传按位顺序进行,最少只需一根传输线即可完成,成本低但送速度慢。串行通讯的距离可以从几米到几千米。根据信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工三种。信息只能单向传送为单工;信息能双向传送但不能同时双向传送称为半双工;信息能够同时双向传送则称为全双工。串行通讯又分为异步通讯和同步通讯两种方式。在单片机中,主要使用异步通讯方式。MCS_51单片机有一个全双工串行口。全双工的串行通讯只需要一根输出线和一根输入线。数据的输出又称发送数据(TXD),数据的输入又称接收数据(RXD)。串行通讯中主要有两个技术问题,一个是数据传送、另一个是数据转换。数据传送主要解决传送中的标准、格式及工作方式等问题。数据转换是指数据的串并行转换。具体说,在发送端,要把并行数据转换为串行数据;而在接收端,却要把接收到的串行数据转换为并行数据。常见的计算机接口:1.并行接口目前,计算机中的并行接口主要作为打印机端口,是25针D形接头。所谓“并行”,是指8位数据同时通过并行线进行传送,这样数据传送速度大大提高,但并行传送的线路长度受到限制,因为长度增加,干扰就会增加,容易出错。现在有五种常见的并口:4位、8位、半8位、EPP和ECP,大多数PC机配有4位或8位的并口。EPP口(增强并行口):由Intel等公司开发,允许8位双向数据传送,可以连接各种非打印机设备,如扫描仪、LAN适配器、磁盘驱动器和CDROM驱动器等。ECP口(扩展并行口):由Microsoft、HP公司开发,能支持命令周期、数据周期和多个逻辑设备寻址,在多任务环境下可以使用DMA(直接存储器访问)。2.串行接口计算机的另一种标准接口是串行口,现在的PC机一般有两个串行口COM1和COM2。串行口不同于并行口之处在于它的数据和控制信息是一位接一位串行地传送下去。这样,虽然速度会慢一些,但传送距离较并行口更长,因此长距离的通信应使用串行口。通常使用的是9针D形连接器单工、半双工和全双工的定义如果在通信过程的任意时刻,信息只能由一方A传到另一方B,则称为单工。如果在任意时刻,信息既可由A传到B,又能由B传A,但只能由一个方向上的传输存在,称为半双工传输。如果在任意时刻,线路上存在A到B和B到A的双向信号传输,则称为全双工。电话线就是二线全双工信道。由于采用了回波抵消技术,双向的传输信号不致混淆不清。许继电气股份有限公司发电自动化系统部总7页第2页双工信道有时也将收、发信道分开,采用分离的线路或频带传输相反方向的信号,如回线传输。------------------------A---------BA----------BA---------B--------单工半双工全双工我们在串行通讯处理中,常常看到RTS/CTS和XON/XOFF这两个选项,这就是两个流控制的选项,目前流控制主要应用于调制解调器的数据通讯中,但对普通RS232编程,了解一点这方面的知识是有好处的。那么,流控制在串行通讯中有何作用,在编制串行通讯程序怎样应用呢?1.流控制在串行通讯中的作用这里讲到的“流”,当然指的是数据流。数据在两个串口之间传输时,常常会出现丢失数据的现象,或者两台计算机的处理速度不同,如台式机与单片机之间的通讯,接收端数据缓冲区已满,则此时继续发送来的数据就会丢失。现在我们在网络上通过MODEM进行数据传输,这个问题就尤为突出。流控制能解决这个问题,当接收端数据处理不过来时,就发出“不再接收”的信号,发送端就停止发送,直到收到“可以继续发送”的信号再发送数据。因此流控制可以控制数据传输的进程,防止数据的丢失。PC机中常用的两种流控制是硬件流控制(包括RTS/CTS、DTR/CTS等)和软件流控制XON/XOFF(继续/停止),下面分别说明。2.硬件流控制硬件流控制常用的有RTS/CTS流控制和DTR/DSR(数据终端就绪/数据设置就绪)流控制。硬件流控制必须将相应的电缆线连上,用RTS/CTS(请求发送/清除发送)流控制时,应将通讯两端的RTS、CTS线对应相连,数据终端设备(如计算机)使用RTS来起始调制解调器或其它数据通讯设备的数据流,而数据通讯设备(如调制解调器)则用CTS来起动和暂停来自计算机的数据流。这种硬件握手方式的过程为:我们在编程时根据接收端缓冲区大小设置一个高位标志(可为缓冲区大小的75%)和一个低位标志(可为缓冲区大小的25%),当缓冲区内数据量达到高位时,我们在接收端将CTS线置低电平(送逻辑0),当发送端的程序检测到CTS为低后,就停止发送数据,直到接收端缓冲区的数据量低于低位而将CTS置高电平。RTS则用来标明接收设备有没有准备好接收数据。常用的流控制还有DTR/DSR(数据终端就绪/数据设置就绪)。3.软件流控制由于电缆线的限制,我们在普通的控制通讯中一般不用硬件流控制,而用软件流控制。一般通过XON/XOFF来实现软件流控制。常用方法是:当接收端的输入缓冲区内数据量超过设定的高位时,就向数据发送端发出XOFF字符(十进制的19或Control-S,设备编程说明书应该有详细阐述),发送端收到XOFF字符后就立即停止发送数据;当接收端的输入缓冲区内数据量低于设定的低位时,就向数据发送端发出XON字符(十进制的17或Control-Q),发送端收到XON字符后就立即开始发送数据。一般可以从设备配套源程序中找到发送的是什么字符。应该注意,若传输的是二进制数据,标志字符也有可能在数据流中出现而引起误操作,这是软件流控制的缺陷,而硬件流控制不会有这个问题。常用的接口方式有三种:分别是RS-232、RS-422与RS-485。RS-232、RS-422与RS-485都是串行数据接口标准,由电子工业协会(EIA)制订并发许继电气股份有限公司发电自动化系统部总7页第3页布的,RS-232在1962年发布,命名为EIA-232-E,作为工业标准,以保证不同厂家产品之间的兼容。RS-422由RS-232发展而来,它是为弥补RS-232之不足而提出的。为改进RS-232通信距离短、速率低的缺点,RS-422定义了一种平衡通信接口,将传输速率提高到10Mb/s,传输距离延长到4000英尺(约1219米,最大传输速率为10Mb/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-485需要2个终接电阻,其阻值要求等于传输电缆的特性阻抗。在矩距离传输时可不需终接电阻,即一般在300米以下不需终接电阻。终接电阻接在传输总线的两端。RS-422需要一终接电阻,要求其阻值约等于传输电缆的特性阻抗。在矩距离传输时可不需终接电阻,即一般在300米以下不需终接电阻。终接电阻接在传输电缆的最远端。RS-485是否与“半双工”等同?答案是否定的,RS-485接口可连接成半双工和全双工两种通信方式,根据使用的芯片不同而有所区别,半双工通信芯片有SN75176,SN751276,SN75LBC184,MAX485,MAX1478,MAX3082,MAX1483,全双工通信的有:SN75179,SN75180,MAX488—491,MAX1482等。二、通讯协议协议就是对计算机之间连接的信息格式、能被收/发双方接受的传送信息内容的一组定义。协议有“多层”结构,高层协议如IPX或TCP/IP负责点到点传送信息包,较低层协议如Optimation公司的OptiLogic协议提供专门的信息和命令允许系统操作。1)、RS-232-CRS-232-C是OSI基本参考模型物理层部分的规格,它决定了连接器形状等物理特性、以0和1表示的电气特性及表示信号意义的逻辑特性。2)、RS-449RS-449是1977年由EIA发表的标准,它规定了DTE和DCE之间的机械特性和电气特性。RS-449是想取代RS-232-C而开发的标准,但是几乎所有的数据通信设备厂家仍然采用原来的标准,所以RS-232-C仍然是最受欢迎的接口而被广泛采用。3)、V.35V.35是通用终端接口的规定,其实V.35是对60-108kHz群带宽线路进行48Kbps同步数据传输的调制解调器的规定,其中一部分内容记述了终端接口的规定。V.35对机械特性即对连接器的形状并未规定。但由于48Dbps-64Kbps的美国Bell规格调制解调器的普及,34引脚的ISO2593被广泛采用。模拟传输用的音频调制解调器的电气条件使用V.28(不平衡电流环互连电路),而宽频带调制解调器则使用平衡电流环电路。4)、X.21许继电气股份有限公司发电自动化系统部总7页第4页X.21是对公用数据网中的同步式终端(DTE)与线路终端(DCE)间接口的规定。主要是对两个功能进行了规定:其一是与其他接口一样,对电气特性、连接器形状、相互连接电路的功能特性等的物理层进行了规定;其二是为控制网络交换功能的网控制步骤,定义了网络层的功能。在专用线连接时只使用物理层功能,而在线路交换数据网中,则使用物理层和网络层的两个功能。X.21接口用的连接器引脚也只用15引脚电气特性分别参照V系列接口电气条件的V.10和V.11。数字网的同步都是从属于网络主时钟的从属同步。5)、HDLC(高级数据链路控制规程)HDLC是可靠性高,高速传输的控制规程。其特点如下:可进行任意位组合的传输;可不等待接收端的应答,连续传输数据;错误控制严密;适合于计算机间的通信。HDLC相当于OSI基本参照模型的数据链路层部分的标准方式的一种。HDLC的适用领域很广,近代协议的数据链路层大部分都是基于HDLC的。6)、SDLC(同步数据链路控制)是IBM公司制定的协议,并成为SNA的数据链路控制层协议。实际上也包含于HDLC中。7)、FDDI(光纤分布式数据接口)FDDI的传输速度为100Mbps,传输媒体为光纤,是令牌控制的LAN。FDDI的物理传输时钟速度是125MHz,但实际速度只有100Mbps。可实际连接的工作站数最多有500个,但推荐使用100个以下。FDDI的连接形态基本上有两种:一种是用一次环路和二次环路的两个环构成的环形结构;另一种是以集线器为中心构成树状结构。工作站间的距离用光纤为2KM,用双绞线则为100M。但对单模光纤制定了节点间的距离可以延长到超过2KM以上的标准。FDDI有三种接口:DAS(双配件站);SAS(单配件站);集线器(Concentrater)。通常仅使用一次环路,二次环路作为预备用系统处于备用状态。8)、TCP/IP(传输控制协议/Internet协议)也称为因特网