您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 现场总线技术-3-Modbus-35P-BD
第3章串行通信接口与Modbus协议3.1串行通信接口串行数据格式数据的串行传输可以是2种类型之一:同步数据传输或异步数据传输。串行数据传输中的二进制代码在一条总线上以数据位为单位按时间顺序逐位传送,接收端按顺序逐位接收,它必须能正确地按位区分才能正确恢复发送端送出的数据。串行通信中的发送者和接收者都需要使用时钟信号,通过时钟决定什么时候发送和读取每一位数据。同步传输和异步传输是串行通信中使用时钟信号的不同方式。3.1串行通信接口在异步数据传输中,数据是一帧一帧传送的,每一帧中包含一个字符代码或一个字节的数据。每一帧数据通常包含4个部分:起始位、数据位、奇偶校验位和停止位。首先是一个起始位“0”,然后是5-8位数据(规定低位bit0在前,高位bit7在后),接下来是奇偶校验位(可省略),最后是1个或多个停止位“1”。3.1串行通信接口在串行通信中,用“波特率”来描述数据的传输速率。所谓波特率,即每秒钟传送的二进制位数,其单位为bps(bitspersecond)。它是衡量串行数据速度快慢的重要指标。国际上规定了一个标准波特率系列:110、300、600、1200、1800、2400、4800、9600、14.4Kbps、19.2Kbps、28.8Kbps、33.6Kbps、56Kbps。例如:9600bps,指每秒传送9600位,包含字符的数位和其它必须的数位,如起始位、停止位和奇偶校验位等。3.1串行通信接口大多数串行接口电路的接收波特率和发送波特率可以分别设置,但接收方的接收波特率必须与发送方的发送波特率相同。通信线上所传输的字符数据(代码)是逐位传送的,1个字符由若干位组成,因此每秒钟所传输的字符数(字符速率)和波特率是两种概念。在串行通信中,所说的传输速率是指波特率,而不是指字符速率,它们两者的关系是:假如在异步串行通信中,传送一个字符,包括12位(其中有一个起始位,8个数据位,2个停止位),其传输速率是1200b/s,每秒所能传送的字符数是1200/(1+8+1+2)=100个。3.1串行通信接口字符编码串行数据由若干个二进制的“0”和“1”的组合来表示,为了使其具有确定的含义,需要对这些“0”和“1”的组合进行约定,这就是所谓的字符编码。目前常用的字符编码有2种:ASCII码和EBCDIC码,其中ASCII码的使用较为普遍。3.1串行通信接口ASCII码ASCII是英文AmericanStandardCodeforInformationInterchange的简写,即美国标准信息交换码。原始的ASCII码由7位二进制数组成,用来表示可打印的字符、格式字符和数据链接或控制字符。目前,大多数计算机都采用这种编码形式。D6d5d4D3d2d1d00000001101020113100410151106111700000NULDLE空格0@P、p00011SOLDC1!1AQaq00102STXDC2”2BRbr00113ETXDC3#3CScs01004EOTDC4$4DTdt01015ENQNAK%5EUeu01106ACKSYN&6FVfv01117BELETB’7GWgw10008BSCAN(8HXhx10019HTEM)9IYiy1010aLFSUB*:JZjz1011bVTESC+;K[k{1100cFFFS,L\l|1101dCRGS_=M]m}1110eSORS.N↑n-1111fSIUS/?O-oDEL3.1串行通信接口串行通信接口标准经过使用和发展,目前已经有几种,但都是在RS-232标准的基础上经过改进而形成的。RS-232C标准是美国EIA(电子工业联合会)与BELL等公司一起开发的1969年公布的通信协议,它适合于数据传输速率在0~20000bps范围内的通信。这个标准对串行通信接口的有关问题,如信号线的功能、电气特性等都作了明确规定。3.1串行通信接口DTE-DCE接口在计算机设备内部处理的数据为并行格式,如果要实现计算机类设备之间的串行通信,需要在数据的发送端将并行数据转换为串行数据,在接收端再将串行数据转换为并行数据,完成这种并行→串行及串行→并行数据转换的器件称为UART(UniversalAsynchronousReceiverTransmitter),即通用异步收发接口。3.1串行通信接口RS-232C的接口标准RS-232C标准(协议)的全称是EIA-RS-232C标准,其中EIA(ElectronicIndustryAssociation)代表美国电子工业协会,RS(RecommendedStandard)代表推荐标准,232是标识号,C代表RS-232的第3次修改(1969),在这之前,有RS-232B、RS-232A。它规定连接电缆和机械、电气特性、信号功能及传送过程。大家熟悉的个人电脑上的COM1、COM2接口,就是RS-232C接口。3.1串行通信接口电气特性EIA-RS-232C对电气特性、逻辑电平和各种信号线的功能都作了规定。值得注意的是RS-232C的数据线采用的是负逻辑。在数据线(TxD和RxD)上:逻辑1(MARK)=-3V~-15V逻辑0(SPACE)=+3~+15V在控制线(RTS、CTS、DSR、DTR和DCD等)上:信号有效(接通,ON状态,正电压)=+3V~+15V信号无效(断开,OFF状态,负电压)=-3V~-15V3.1串行通信接口连接器的功能特性由于RS-232C并未定义连接器的物理特性,因此,出现了DB-25、DB-15和DB-9各种类型的连接器,其引脚的定义也各不相同。目前常用的是DB-9和DB-25。3.1串行通信接口9针串口(DB9)25针串口(DB25)针号功能说明缩写针号功能说明缩写1数据载波检测DCD8数据载波检测DCD2接收数据RXD3接收数据RXD3发送数据TXD2发送数据TXD4数据终端就绪DTR20数据终端就绪DTR5信号地GND7信号地GND6数据装置就绪DSR6数据装置就绪DSR7请求发送RTS4请求发送RTS8清除发送CTS5清除发送CTS9振铃指示DELL22振铃指示DELL3.2Modbus协议ModbusModbus协议最初由Modicon公司在1978年开发出来,1979年末该公司成为施耐德自动化部门的一部分,1980年该协议公开后,成为了事实上的工业标准。现在Modbus已经是工业领域全球最流行的协议。此协议支持传统的RS-232、RS-422、RS-485和以太网接口。许多工业设备,包括PLC、DCS、智能仪表等都在使用Modbus协议作为他们之间的通讯标准。3.2Modbus协议Master-Slaver方式控制器通信使用主—从技术,即仅有一个设备(主设备)能初始化传输(查询)。其它设备(从设备)根据主设备查询提供的数据做出相应反应。典型的主设备:主机和可编程仪表。典型的从设备:可编程控制器。3.2Modbus协议每次通信请求由主站向从站发起。每个从站都有自己的地址编号,数量最多可达247个。主站和从站之间通过多达24种总线命令实现息交换。简单、高效、可靠、和容易实现等优点。从功能上看,它可以被看作一种现场总线。3.2Modbus协议主设备可单独和从设备通信,也能以广播方式和所有从设备通信。如果单独通信,从设备返回一消息作为回应,如果是以广播方式查询的,则不作任何回应。Modbus协议建立了主设备查询的格式:设备(或广播)地址、功能代码、所有要发送的数据、错误检测域3.2Modbus协议查询和回应过程3.2Modbus协议两种传输方式控制器可以设置为两种传输模式(ASCII或RTU)中的任何一种(RTU---85%)。在标准的Modbus网络通信中,用户选择需要的模式,包括串口通信参数(波特率、校验方式等),在配置每个控制器的时候,在Modbus网络上的所有设备都必须选择相同的传输模式和串口参数。3.2Modbus协议:地址功能代码数据数量数据1...数据nLRC高字节LRC低字节回车换行地址功能代码数据数量数据1...数据nCRC高字节CRC低字节3.2Modbus协议ASCII模式代码系统十六进制,ASCII字符0...9,A...F消息中的每个ASCII字符都是一个十六进制字符组成帧格式(每个字节的形式)每个字节包括:1个起始位7个数据位,最小的有效位(LSB)先发送1个奇偶校验位,无校验则无1个停止位(有校验时),2个Bit(无校验时)3.2Modbus协议RTU模式代码系统8位二进制,十六进制数0...9,A...F消息中的每个8位字节都是由两个十六进制字符组成帧格式(每个字节的形式)每个字节包括:1个起始位8个数据位,最小的有效位(LSB)先发送1个奇偶校验位,无校验则无1个停止位(有校验时),2个Bit(无校验时)3.2Modbus协议ASCII消息帧消息以冒号(:)字符(ASCII码3AH)开始,以回车、换行符结束(ASCII码0DH,0AH)。其它域可以使用的传输字符是十六进制的0...9,A...F。网络上的设备不断侦测“:”字符,当有一个冒号接收到时,每个设备都解码下一个域(地址域)来判断是否发给自己的。消息中字符间发送的时间间隔最长不能超过1秒,否则接收的设备将认为传输错误。3.2Modbus协议ASCII消息帧起始位设备地址功能代码数据LRC校验结束符1个字符2个字符2个字符n个字符2个字符2个字符3.2Modbus协议RTU消息帧消息开始:发送至少要以3.5个字符时间的停顿间隔开始。使用8bit十六进制数:0...9,A...F。网络设备不断侦测网络总线,当第一个域(地址域)接收到,每个设备都进行解码以判断是否发往自己的消息。在最后一个传输字符之后,一个至少3.5个字符时间的停顿标定了消息的结束。3.2Modbus协议RTU消息帧起始位设备地址功能代码数据CRC校验结束符T1-T2-T3-T48Bit8Bitn个8Bit16BitT1-T2-T3-T43.2Modbus协议消息的地址域消息帧的地址域包含两个字符(ASCII)或8Bit(RTU)。可能的从设备地址是0...247(十进制)。单个设备的地址范围是1...247。主设备通过将要联络的从设备的地址放入消息中的地址域来选通从设备。当从设备发送回应消息时,它把自己的地址放入回应的地址域中,以便主设备知道是哪一个设备作出回应。地址0是用作广播地址,以使所有的从设备都能认识。3.2Modbus协议字符或字节的连续传输当消息在标准的Modbus系列网络传输时,每个字符或字节以如下方式发送(从左到右):最低有效位...最高有效位3.2Modbus协议启始位1234567奇偶位停止位启始位1234567停止位停止位3.2Modbus协议启始位12345678奇偶位停止位启始位12345678停止位停止位3.2Modbus协议错误(差错)检测方法标准的Modbus串行网络采用两种错误检测方法。奇偶校验对每个字符都可用,帧检测(LRC或CRC)应用于整个消息。它们都是在消息发送前由主设备产生的,从设备在接收过程中检测每个字符和整个消息帧。3.2Modbus协议错误(差错)检测方法---针对消息ASCII模式:LRC---纵向冗长检验RTU模式:CRC---循环冗长检验3.2Modbus协议CRC码的计算步骤为:(1)预置16位寄存器为十六进制数0xFFFF(即全为1),称此寄存器为CRC寄存器;(2)第一个8位数据与16位CRC寄存器的低位相异或,并将结果放于CRC寄存器;(3)将寄存器的内容右移一位(朝低位方向),用0填补最高位,检查最低位;(4)如果最低位为0,重复第3步;如果最低位为1,CRC寄存器则与预置值0xA001相异或;(5)重复步骤3和4,直到右移8次,完成全部8位数据的处理;(6)重复步骤2
本文标题:现场总线技术-3-Modbus-35P-BD
链接地址:https://www.777doc.com/doc-3515728 .html