




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目 录 一、总述1、用途2、参考资料及参考标准二、设计步骤1、通讯接口的类型、基本原理和应用2、通讯协议的基本原理及应用3、设计要求三、设计雷区及规避措施一、 总述1、 用途这份通讯设计指导书,涉及到通讯的分类、设计规范以及设计过程中需注意的问题。2、 参考资料家用电器即插即用技术规范的研究modbus通讯协议及编程单片机数据通讯技术 计算机通讯技术指南modbus协议二、 设计步骤通讯是为了实现计算机与计算机或终端设备与计算机之间的信息交互而产生的一种通讯技术。它有以下特点:a 通讯传输和处理离散的数字信号;b 速度高,突发性强。c 传输的可靠性要求高。d 必须事先制定通讯双方遵守的,功能齐全的通讯协议。e 信息传输效率高。在通讯中,通讯接口和通讯协议,是通讯中最重要的两部分。1、 通讯接口的类型、原理和应用1.1 通讯接口的类型rs-232、rs-422与rs-485都是串行数据接口标准,最初都是由电子工业协会(eia)制订并发布的,rs-232在1962年发布,命名为eia-232-e,作为工业标准,以保证不同厂家产品之间的兼容。rs-422由rs-232发展而来,它是为弥补rs-232之不足而提出的。为改进rs-232通信距离短、速率低的缺点,rs-422定义了一种平衡通信接口,将传输速率提高到10mb/s,传输距离延长到4000英尺(速率低于100kb/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上的。 1.1.1 rs-232串行通讯接口目前rs-232是pc机与通信工业中应用最广泛的一种串行接口。rs-232被定义为一种在低速率串行通讯中增加通讯距离的单端标准。rs-232采取不平衡传输方式,即所谓单端通讯 .收、发端的数据信号是相对于信号地。如从dte设备发出的数据在使用db25连接器时是2脚相对7脚(信号地)的电平,典型的rs-232信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在+5+15v,负电平在-5-15v电平。当无数据传输时,线上为ttl,从开始传送数据到结束,线上电平从ttl电平到rs-232电平再返回ttl电平。接收器典型的工作电平在+3+12v与-3-12v。由于发送电平与接收电平的差仅为2v至3v左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为约15米,最高速率为20kb/s。rs-232是为点对点(即只用一对收、发设备)通讯而设计的,其驱动器负载为37k。所以rs-232适合本地设备之间的通讯。由于目前rs-232c在工控领域应用比较普遍,下面将详细介绍一下:rs-232c标准(协议)的全称是eia-rs-232c标准,其中eia(electronic industry association)代表美国电子工业协会,rs(ecommeded standard)代表推荐标准,232是标识号,c代表rs232的最新一次修改(1969),在这之前,有rs232b、rs232a。它规定连接电缆和机械、电气特性、信号功能及传送过程。这里只介绍rs-232-c(简称232,rs232)。 例如,目前在ibm pc机上的com1、com2接口,就是rs-232c接口。1)电气特性 eia-rs-232c对电器特性、逻辑电平和各种信号线功能都作了规定。不带负载时驱动器的输出电平-25v-+25v负载电阻rl的范围37k驱动器输出电阻ro300负载电容(包括线间电容)cl+3v逻辑”1”时,驱动器的输出电平-5(-15v)逻辑”1”时,驱动器的接收电平-3v输出短路电流500ma驱动器转换速率30v/us 图1-1以上规定说明了rs-223c标准对逻辑电平的定义。对于数据(信息码):逻辑“1”(传号)的电平低于-3v,逻辑“0”(空号)的电平高于+3v;对于控制信号;接通状态(on)即信号有效的电平高于+3v,断开状态(off)即信号无效的电平低于-3v,也就是当传输电平的绝对值大于3v时,电路可以有效地检查出来,介于-3+3v之间的电压无意义,低于-15v或高于+15v的电压也认为无意义,因此,实际工作时,应保证电平在(315)v之间。 eia-rs-232c与ttl转换:eia-rs-232c是用正负电压来表示逻辑状态,与ttl以高低电平表示逻辑状态的规定不同。因此,为了能够同计算机接口或终端的ttl器件连接,必须在eia-rs-232c与ttl电路之间进行电平和逻辑关系的变换。实现这种变换的方法可用分立元件,也可用集成电路芯片。目前较为广泛地使用集成电路转换器件,如mc1488、sn75150芯片可完成ttl电平到eia电平的转换,而mc1489、sn75154可实现eia电平到ttl电平的转换。max232芯片可完成ttleia双向电平转换,图1-1显示了1488和1489的内部结构和引脚。mc1488的引脚(2)、(4,5)、(9,10)和(12,13)接ttl输入。引脚3、6、8、11输出端接eia-rs-232c。mc1498的14的1、4、10、13脚接eia输入,而3、6、8、11脚接ttl输出。具体连接方法如图1-2所示。图中的左边是微机串行接口电路中的主芯片uart,它是ttl器件,右边是eia-rs-232c连接器,要求eia高电压。因此,rs-232c所有的输出、输入信号都要分别经过mc1488和mc1498转换器,进行电平转换后才能送到连接器上去或从连接器上送进来。 图1-22)连接器的机械特性: 连接器:由于rs-232c并未定义连接器的物理特性,因此,出现了db-25、db-15和db-9各种类型的连接器,其引脚的定义也各不相同。下面分别介绍两种连接器。 (1)db-25: pc和xt机采用db-25型连接器。db-25连接器定义了25根信号线,分为4组: 异步通信的9个电压信号(含信号地sg)2,3,4,5,6,7,8,20,22 20ma电流环信号 9个(12,13,14,15,16,17,19,23,24) 空6个(9,10,11,18,21,25) 保护地(pe)1个,作为设备接地端(1脚) db-25型连接器的外形及信号线分配如图1-3所示。注意,20ma电流环信号仅ibm pc和ibm pc/xt机提供,至at机及以后,已不支持。 图1-3(2)db-9连接器引脚号信号名称方向信号功能1dcdpc机对方pc收到远程信号2rxdpc机 对方pc接收数据3txdpc机对方pc发送数据4dtrpc机对方pc 准备就绪5gnd-信号地6dsrpc机对方对方准备就绪7rtspc机对方pc请求发送数据8ctspc机对方对方已切换到接收状态(清除发送)9ripc机对方通知pc线路正常在at机及以后,不支持20ma电流环接口,使用db-9连接器,作为提供多功能i/o卡或主板上com1和com2两个串行接口的连接器。它只提供异步通信的9个信号。db-25型连接器的引脚分配与db-25型引脚信号完全不同。因此,若与配接db-25型连接器的dce设备连接,必须使用专门的电缆线。 电缆长度:在通信速率低于20kb/s时,rs-232c所直接连接的最大物理距离为15m(50英尺)。 最大直接传输距离说明:rs-232c标准规定,若不使用modem,在码元畸变小于4%的情况下,dte和dce之间最大传输距离为15m(50英尺)。可见这个最大的距离是在码元畸变小于4%的前提下给出的。为了保证码元畸变小于4%的要求,接口标准在电气特性中规定,驱动器的负载电容应小于2500pf。 3)rs-232c的接口信号 rs-232c规标准接口有25条线,4条数据线、11条控制线、3条定时线、7条备用和未定义线,常用的只有9根,它们是 (1)联络控制信号线: 数据装置准备好(data set ready-dsr)有效时(on)状态,表明modem处于可以使用的状态。 数据终端准备好(data set ready-dtr)有效时(on)状态,表明数据终端可以使用。 这两个信号有时连到电源上,一上电就立即有效。这两个设备状态信号有效,只表示设备本身可用,并不说明通信链路可以开始进行通信了,能否开始进行通信要由下面的控制信号决定。 请求发送(request to send-rts)用来表示dte请求dce发送数据,即当终端要发送数据时,使该信号有效(on状态),向modem请求发送。它用来控制modem是否要进入发送状态。 允许发送(clear to send-cts)用来表示dce准备好接收dte发来的数据,是对请求发送信号rts的响应信号。当modem已准备好接收终端传来的数据,并向前发送时,使该信号有效,通知终端开始沿发送数据线txd发送数据。 这对rts/cts请求应答联络信号是用于半双工modem系统中发送方式和接收方式之间的切换。在全双工系统中作发送方式和接收方式之间的切换。在全双工系统中,因配置双向通道,故不需要rts/cts联络信号,使其变高。 接收线信号检出(received line detection-rlsd)用来表示dce已接通通信链路,告知dte准备接收数据。当本地的modem收到由通信链路另一端(远地)的modem送来的载波信号时,使rlsd信号有效,通知终端准备接收,并且由modem将接收下来的载波信号解调成数字两数据后,沿接收数据线rxd送到终端。此线也叫做数据载波检出(data carrier dectection-dcd)线。 振铃指示(ringing-ri)当modem收到交换台送来的振铃呼叫信号时,使该信号有效(on状态),通知终端,已被呼叫。 (2)数据发送与接收线: 发送数据(transmitted data-txd)通过txd终端将串行数据发送到modem,(dtedce)。 接收数据(received data-rxd)通过rxd线终端接收从modem发来的串行数据,(dcedte)。 (3)地线 有两根线sg、pg信号地和保护地信号线,无方向。 上述控制信号线何时有效,何时无效的顺序表示了接口信号的传送过程。例如,只有当dsr和dtr都处于有效(on)状态时,才能在dte和dce之间进行传送操作。若dte要发送数据,则预先将dtr线置成有效(on)状态,等cts线上收到有效(on)状态的回答后,才能在txd线上发送串行数据。这种顺序的规定对半双工的通信线路特别有用,因为半双工的通信才能确定dce已由接收方向改为发送方向,这时线路才能开始发送。 2个数据信号:发送txd;接收rxd。 1个信号地线:sg。 6个控制信号: dsr数传机(即modem)准备好,data set ready.dtr数据终端(dte,即微机接口电路,如intel8250/8251,16550)准备好,data terminal ready。 rtsdte请求dce发送(request to send)。 ctsdce允许dte发送(clear to send),该信号是对rts信号的回答。 dcd数据载波检出,data carrier detection当本地dce设备(modem)收到对方的dce设备送来的载波信号时,使dcd有效,通知dte准备接收,并且由dce将接收到的载波信号解调为数字信号, 经rxd线送给dte。 ri振铃信号 ringing当dce收到交换机送来的振铃呼叫信号时,使该信号有效,通知dte已被呼叫。 1.1.2 rs-422串行通讯接口 rs-422标准全称是“平衡电压数字接口电路的电气特性”,它定义了接口电路的特性,它采用的是差分传输方式。由于接收器采用高输入阻抗和发送驱动器比rs-232更强的驱动能力,故允许在相同传输线上连接多个接收节点,最多可接10个节点。即一个主设备(master),其余为从设备(salve),从设备之间不能通信,所以rs-422支持点对多的双向通信。接收器输入阻抗为4k,故发端最大负载能力是104k+100(终接电阻)。rs-422四线接口由于采用单独的发送和接收通道,因此不必控制数据方向,各装置之间任何必须的信号交换均可以按软件方式(xon/xoff握手)或硬件方式(一对单独的双绞线).rs-422的最大传输距离为4000英尺(约1219米),最大传输速率为10mb/s。其平衡双绞线的长度与传输速率成反比,在100kb/s速率以下,才可能达到最大传输距离。只有在很短的距离下才能获得最高速率传输。一般100米长的双绞线上所能获得的最大传输速率仅为1mb/s。 rs-422需要一终接电阻,要求其阻值约等于传输电缆的特性阻抗。在矩距离传输时可不需终接电阻,即一般在300米以下不需终接电阻。终接电阻接在传输电缆的最远端。 此种通讯接口在家电设备中并不常用,这里也不再详述。 1.1.3 rs-485通讯接口由于rs-485是从rs-422基础上发展而来的,所以rs-485许多电气规定与rs-422相仿。如都采用平衡传输方式、都需要在传输线上接终接电阻等。rs-485可以采用二线与四线方式,二线制可实现真正的多点双向通信。 而采用四线连接时,与rs-422一样只能实现点对多的通信,即只能有一个(master)设备,其余为从设备,但它比rs-422有改进, 无论四线还是二线连接方式总线上可多接到32个设备。rs-485与rs-422的不同还在于其共模输出电压是不同的,rs-485是-7v至+12v之间,而rs-422在-7v至+7v之间,rs-485接收器最小输入阻抗为12k,rs-422是4k;rs-485满足所有rs-422的规范,所以rs-485的驱动器可以用在rs-422网络中应用.rs-485与rs-422一样,其最大传输距离约为1219米,最大传输速率为10mb/s。平衡双绞线的长度与传输速率成反比,在100kb/s速率以下,才可能使用规定最长的电缆长度。只有在很短的距离下才能获得最高速率传输。一般100米长双绞线最大传输速率仅为1mb/s。rs-485需要2个终接电阻,其阻值要求等于传输电缆的特性阻抗。在近距离传输时可不需终接电阻,即一般在300米以下不需终接电阻。终接电阻接在传输总线的两端。 rs-485的电气特性:逻辑“1”以两线间的电压差为+(26) v表示;逻辑“0”以两线间的电压差为-(26)v表示。接口信号电平比rs-232-c降低了,就不易损坏接口电路的芯片, 且该电平与ttl电平兼容,可方便与ttl 电路连接。 rs-485接口是采用平衡驱动器和差分接收器的组合,抗共模干能力增强,即抗噪声干扰性好.rs-485的数据最高传输速率为10mbps.rs-485接口在总线上是允许连接多达128个收发器。即具有多站能力,这样用户可以利用单一的rs-485接口方便地建立起设备网络。 因rs-485接口具有良好的抗噪声干扰性,长的传输距离和多站能力等上述优点就使其成为首选的串行接口。 因为rs485接口组成的半双工网络,一般只需二根连线,所以rs485接口均采用屏蔽双绞线传输。 rs485接口连接器采用db-9的9芯插头(针),与智能终端rs485接口采用db-9(孔),与键盘连接的键盘接口rs485采用db-9(针)。1.2通讯接口选型1.2.1通讯接口的性能指标规定rs232rs422r485工作方式单端差分差分节点数1收、1发1发10收1发32收最大传输电缆长度50英尺400英尺400英尺最大传输速率20kb/s10mb/s10mb/s最大驱动输出电压+/-25v-0.25v+6v-7v+12v驱动器输出信号电平(负载最小值)负载+/-5v+/-15v+/-2.0v+/-1.5v驱动器输出信号电平(空载最大值)空载+/-25v+/-6v+/-6v驱动器负载阻抗()3k7k10054摆率(最大值)30v/sn/an/a接收器输入电压范围+/-15v-10v+10v-7v+12v接收器输入门限+/-3v+/-200mv+/-200mv接收器输入电阻()3k7k4k(最小)12k驱动器共模电压-3v+3v-1v+3v接收器共模电压-7v+7v-7v+12v1.2.2通讯的接口的选择方法 通讯方式的选择一般要根据通讯距离和传输速率来确定,例如:短距离,低速率的本地设备之间的通讯可以采用rs-232c;速率和距离相对较大时,可以采用rs-485的通讯方式,它在工控领域使用的比较广泛。1.2.3通讯接口的应用说明1.2.3.1 rs-232的应用1)远距离通信 若在双方modem之间采用普通电话交换线进行通信,除了需要28号信号线外还要增加ri(22号)和dtr(20号)两个信号线进行联络,如图1-4所示。 图1-4 dsr、dtr:数传机(dce)准备好、数据终端(dte)准备好,只表示设备本身可用。 首先,通过电话机拔号呼叫对方,电话交换台向对方发出拔号呼叫信号,当对方dce收到该信号后,使ri(振铃信号)有效,通知dte,已被呼叫。当对方“摘机”后,两方建立了通信链路。 若计算机要发送数据至对方,首先通过接口电路(dte)发出rts(请求发送)信号。此时,若dce(modem)允许传送,则向dte回答cts(允许发送)信号。一般可直接将rts/cts接高电平,即只要通信链路已建立,就可传送信号。(rts/cts可只用于半双工系统中作发送方式和接收方式的切换。 当dte获得cts信号后,通过txd线向dce发出串行信号,dce(modem)将这些数字信号调制成模拟信号(又称载波信号),传向对方。 计算机向dte“数据输出寄存器”传送新的数据前,应检查modem状态和数据输出寄存器为空。当对方的dce收到载波信号后,向对方的dte发出dcd信号(数据载波检出),通知其dte准备接收,同时,将载波信号解调为数据信号,从rxd线上送给dte,dte通过串行接收移位寄存器对接收到的位流进行移位,当收到1个字符的全部位流后,把该字符的数据位送到数据输入寄存器,cpu可以从数据输入寄存器读取字符。 2)近距离通信: 当通信距离较近时,可不需要modem,通信双方可以直接连接,这种情况下,只需使用少数几根信号线。最简单的情况,在通信中根本不需要rs-232c的控制联络信号,只需三根线(发送线、接收线、信号地线)便可实现全双工异步串行通信,即是这里要讨论的第一种情况。 无modem时,最大通信距离按如下方式计算: rs-232c标准规定:当误码率小于4%时,要求导线的电容值应小于2500pf。对于普通导线,其电容值约为170pf/m。则允许距离l=2500pf/(170pf/m)=15m 这一距离的计算,是偏于保守的,实际应用中,当使用9600bps,普通双绞屏蔽线时,距离可达3035米。 (1)零modem 的最简连线(3线制) 图1-6是零modem方式的最简单连接(即三线连接),图中的2号线与3号线交叉连接是因为在直连方式时,把通信双方都当作数据终端设备看待,双方都可发也可收。在这种方式下,通信双方的任何一方,只要请求发送rts有效和数据终端准备好dtr有效就能开始发送和接收。 图1-6 rts与cts互联:只要请求发送,立即得到允许 dtr与dsr互联:只要本端准备好,认为本端立即可以接收(dsr、数传机准备好)。 (2)零modem标准连接: 如果想在直接连接时,而又考虑到rs-232c的联络控制信号,则采用零modem方式的标准连接方法,其通信双方信号线安排如下1-2-3-4-5顺序所演示的那样。 无modem的标准联线(7线制)如图所示: 从中可以看出,rs-232c接口标准定义的所有信号线都用到了,并且是按照dte和dce之间信息交换协议的要求进行连接的,只不过是把dte自己发出的信号线送过来,当作对方dce发来的信号,因此,又把这种连接称为双叉环回接口。 双方的握手信号关系如下(注:甲方乙方并未在图中标出): 当甲方的dte准备好,发出dtr信号,该信号直接联至乙方的ri(振铃信号)和dsr(数传机准备好)。即只要甲方准备好,乙方立即产生呼叫(ri)有效,并同时准备好(dsr)。尽管此时乙方并不存在dce(数传机)。 甲方的rts和cts相连,并与乙方的dcd互连。即:一旦甲方请求发送(rts),便立即得到允许(cts),同时,使乙方的dcd有效,即检测到载波信号。 甲方的txd与乙方的rxd相连,一发一收。 1 -7 1-8 1-9 1-10 1-111.2.3.2 rs-485标准总线接口应用rs-485串行总线接口标准以差分平衡方式传输信号,具有很强的抗共膜干扰能力,允许一对双绞线上一个发送器驱动多个负载设备,使用单片机本身本身所提供的简单串行接口,加上总线驱动器,sn75176等,可组成简单的rs-485通讯网络。在由单片机构成的多机通讯系统中,一般采用主从式结构;从机不主动发送数据或命令,一切都有主机控制.因此,在一个多机通讯系统中,只有一台单机作为主机,各台从机之间不能相互通讯,即使有信息交换也必须通过主机转发.在总线的末端接一个匹配电阻,吸收总线上的反射信号,保证信号传输无毛刺.匹配电阻的取值应该与总线的特性阻抗相当,一般为120.当总线上没有信号传输时,总线处于悬浮状态,容易受干扰信号的影响.在总线上差分信号的正端a+与+5v电源间接一个10k的电阻,正端a+与负端b-接一个10k的电阻,形成一个电阻网络.当总线上无信号传输时,正端a+的电平大约3.2v,负端b-的电平大约1.6v,即使有干扰信号,也很难产生串行通讯的起始信号0,从而增加了总线的抗干扰能力.2、 通讯协议的原理及应用所谓通信协议是指通信双方的一种约定。约定包括对数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守。因此,也叫做通信控制规程,或称传输控制规程。目前,在工控领域,采用最多的通讯协议为modbus协议.2.1通讯协议的内容和功能要求2.1.1通讯协议的内容一般来说,通讯协议内容包括三部分:(1) 语法:它规定了通讯双方彼此“如何讲”,也就是确定协议元素的格式,包括数据格式和信号电平等。(2) 语义:规定了通讯双方彼此“讲什么”,即确定协议元素的内容和类型。(3) 定时关系:规定事件执行的顺序,即确定通讯进程中通讯的状态变化,包括速度匹配和时序。2.1.2通讯协议的功能要求通讯协议的主要功能要求如下:(1) 信号的传送与接收。应规定信息传送的格式,接口标准及启动控制,结束控制,超时控制等功能。(2) 差错控制。使构成传输数据的源码组具有一定的逻辑性,接受端根据收到的数据进行相应的检错或纠错处理。(3) 顺序控制。对发送的信息进行编号,以免重复接受或丢失。(4) 透明性。对用户终端所使用的数据无任何约束性的限制,即对用户使用的代码保证编码的独立性与传输的通明性。(5) 链路控制与管理。在全双工,半双工和多点线路等多种线路方式中,确定那个站发送,那个站接收,对多个用户同时呼叫的场合如何对其择优选择控制。(6) 流量控制。要保证发送方与接受方在速率上能够匹配。(7) 路径选择。确定信息报文如何通过多个节点和链路到达目的节点的传送路径和最优的路径选择策略。(8) 对话控制。2.2 modbus通讯协议 2.2.1 modbus 协议简介 此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如果回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。 当在一modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用modbus协议发出。在其它网络上,包含了modbus协议的消息转换为在此网络上使用的帧或包结构。这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。 (1)在modbus网络上转输 标准的modbus口是使用一rs-232c兼容串行接口,它定义了连接口的针脚、电缆、信号位、传输波特率、奇偶校验。控制器能直接或经由modem组网。 控制器通信使用主从技术,即仅一设备(主设备)能初始化传输(查询)。其它设备(从设备)根据主设备查询提供的数据作出相应反应。典型的主设备:主机和可编程仪表。典型的从设备:可编程控制器。 主设备可单独和从设备通信,也能以广播方式和所有从设备通信。如果单独通信,从设备返回一消息作为回应,如果是以广播方式查询的,则不作任何回应。modbus协议建立了主设备查询的格式:设备(或广播)地址、功能代码、所有要发送的数据、一错误检测域。 从设备回应消息也由modbus协议构成,包括确认要行动的域、任何要返回的数据、和一错误检测域。如果在消息接收过程中发生一错误,或从设备不能执行其命令,从设备将建立一错误消息并把它作为回应发送出去。 (2)在其它类型网络上转输 在其它网络上,控制器使用对等技术通信,故任何控制都能初始和其它控制器的通信。这样在单独的通信过程中,控制器既可作为主设备也可作为从设备。提供的多个内部通道可允许同时发生的传输进程。 在消息位,modbus协议仍提供了主从原则,尽管网络通信方法是“对等”。如果一控制器发送一消息,它只是作为主设备,并期望从从设备得到回应。同样,当控制器接收到一消息,它将建立一从设备回应格式并返回给发送的控制器。 (3)查询回应周期 a 查询 查询消息中的功能代码告之被选中的从设备要执行何种功能。数据段包含了从设备要执行功能的任何附加信息。例如功能代码03是要求从设备读保持寄存器并返回它们的内容。数据段必须包含要告之从设备的信息:从何寄存器开始读及要读的寄存器数量。错误检测域为从设备提供了一种验证消息内容是否正确的方法。 b 回应 如果从设备产生一正常的回应,在回应消息中的功能代码是在查询消息中的功能代码的回应。数据段包括了从设备收集的数据:象寄存器值或状态。如果有错误发生,功能代码将被修改以用于指出回应消息是错误的,同时数据段包含了描述此错误信息的代码。错误检测域允许主设备确认消息内容是否可用。 2.2.2 两种传输方式 控制器能设置为两种传输模式(ascii或rtu)中的任何一种在标准的modbus网络通信。用户选择想要的模式,包括串口通信参数(波特率、校验方式等),在配置每个控制器的时候,在一个modbus网络上的所有设备都必须选择相同的传输模式和串口参数。 ascii模式 : 地址 功能代码 数据数量 数据1.数据n lrc高字节 lrc低字节 回车 换行 rtu模式 地址 功能代码 数据数量 数据1 . 数据n crc高字节 crc低字节 所选的ascii或rtu方式仅适用于标准的modbus网络,它定义了在这些网络上连续传输的消息段的每一位,以及决定怎样将信息打包成消息域和如何解码。 在其它网络上(象map和modbus plus)modbus消息被转成与串行传输无关的帧。 (1)ascii模式 当控制器设为在modbus网络上以ascii(美国标准信息交换代码)模式通信,在消息中的每个8bit字节都作为两个ascii字符发送。这种方式的主要优点是字符发送的时间间隔可达到1秒而不产生错误。 代码系统 十六进制,ascii字符0.9,a.f 消息中的每个ascii字符都是一个十六进制字符组成 每个字节的位 1个起始位 7个数据位,最小的有效位先发送 1个奇偶校验位,无校验则无 1个停止位(有校验时),2个bit(无校验时) 错误检测域 lrc(纵向冗长检测) (2)rtu模式 当控制器设为在modbus网络上以rtu(远程终端单元)模式通信,在消息中的每个8bit字节包含两个4bit的十六进制字符。这种方式的主要优点是:在同样的波特率下,可比ascii方式传送更多的数据。 代码系统 8位二进制,十六进制数0.9,a.f 消息中的每个8位域都是一个两个十六进制字符组成 每个字节的位 1个起始位 8个数据位,最小的有效位先发送 1个奇偶校验位,无校验则无 1个停止位(有校验时),2个bit(无校验时) 错误检测域 crc(循环冗长检测) 2.3 modbus消息帧 两种传输模式中(ascii或rtu),传输设备以将modbus消息转为有起点和终点的帧,这就允许接收的设备在消息起始处开始工作,读地址分配信息,判断哪一个设备被选中(广播方式则传给所有设备),判知何时信息已完成。部分的消息也能侦测到并且错误能设置为返回结果。 2.3.1 ascii帧 使用ascii模式,消息以冒号(:)字符(ascii码 3ah)开始,以回车换行符结束(ascii码 0dh,0ah)。 其它域可以使用的传输字符是十六进制的0.9,a.f。网络上的设备不断侦测“:”字符,当有一个冒号接收到时,每个设备都解码下个域(地址域)来判断是否发给自己的。 消息中字符间发送的时间间隔最长不能超过1秒,否则接收的设备将认为传输错误。一个典型消息帧如下所示: 起始位 设备地址 功能代码数据 lrc校验结束符 1个字符 2个字符2个字符n个字符2个字符2个字符图2 ascii消息帧 2.3.2 rtu帧 使用rtu模式,消息发送至少要以3.5个字符时间的停顿间隔开始。在网络波特率下多样的字符时间,这是最容易实现的(如下图的t1-t2-t3-t4所示)。传输的第一个域是设备地址。可以使用的传输字符是十六进制的0.9,a.f。网络设备不断侦测网络总线,包括停顿间隔时间内。当第一个域(地址域)接收到,每个设备都进行解码以判断是否发往自己的。在最后一个传输字符之后,一个至少3.5个字符时间的停顿标定了消息的结束。一个新的消息可在此停顿后开始。 整个消息帧必须作为一连续的流转输。如果在帧完成之前有超过1.5个字符时间的停顿时间,接收设备将刷新不完整的消息并假定下一字节是一个新消息的地址域。同样地,如果一个新消息在小于3.5个字符时间内接着前个消息开始,接收的设备将认为它是前一消息的延续。这将导致一个错误,因为在最后的crc域的值不可能是正确的。一典型的消息帧如下所示: 起始位 设备地址 功能代码 数据 crc校验 结束符 t1-t2-t3-t48bit 8bit n个8bit 16bit t1-t2-t3-t4 图3 rtu消息帧 2.3.3 地址域 消息帧的地址域包含两个字符(ascii)或8bit(rtu)。可能的从设备地址是0.247 (十进制)。单个设备的地址范围是1.247。主设备通过将要联络的从设备的地址放入消息中的地址域来选通从设备。当从设备发送回应消息时,它把自己的地址放入回应的地址域中,以便主设备知道是哪一个设备作出回应。 地址0是用作广播地址,以使所有的从设备都能认识。当modbus协议用于更高水准的网络,广播可能不允许或以其它方式代替。 2.3.4 如何处理功能域 消息帧中的功能代码域包含了两个字符(ascii)或8bits(rtu)。可能的代码范围是十进制的1.255。当然,有些代码是适用于所有控制器,有此是应用于某种控制器,还有些保留以备后用。 当消息从主设备发往从设备时,功能代码域将告之从设备需要执行哪些行为。例如去读取输入的开关状态,读一组寄存器的数据内容,读从设备的诊断状态,允许调入、记录、校验在从设备中的程序等。 当从设备回应时,它使用功能代码域来指示是正常回应(无误)还是有某种错误发生(称作异议回应)。对正常回应,从设备仅回应相应的功能代码。对异议回应,从设备返回一等同于正常代码的代码,但最重要的位置为逻辑1。 例如:一从主设备发往从设备的消息要求读一组保持寄存器,将产生如下功能代码: 0 0 0 0 0 0 1 1 (十六进制03h) 对正常回应,从设备仅回应同样的功能代码。对异议回应,它返回: 1 0 0 0 0 0 1 1 (十六进制83h) 除功能代码因异议错误作了修改外,从设备将一独特的代码放到回应消息的数据域中,这能告诉主设备发生了什么错误。 主设备应用程序得到异议的回应后,典型的处理过程是重发消息,或者诊断发给从设备的消息并报告给操作员。 2.3.5 数据域 数据域是由两个十六进制数集合构成的,范围00.ff。根据网络传输模式,这可以是由一对ascii字符组成或由一rtu字符组成。 从主设备发给从设备消息的数据域包含附加的信息:从设备必须用于进行执行由功能代码所定义的行为。这包括了象不连续的寄存器地址,要处理项的数目,域中实际数据字节数。 例如,如果主设备需要从设备读取一组保持寄存器(功能代码03),数据域指定了起始寄存器以及要读的寄存器数量。如果主设备写一组从设备的寄存器(功能代码10十六进制),数据域则指明了要写的起始寄存器以及要写的寄存器数量,数据域的数据字节数,要写入寄存器的数据。 如果没有错误发生,从从设备返回的数据域包含请求的数据。如果有错误发生,此域包含一异议代码,主设备应用程序可以用来判断采取下一步行动。 在某种消息中数据域可以是不存在的(0长度)。例如,主设备要求从设备回应通信事件记录(功能代码0b十六进制),从设备不需任何附加的信息。 2.3.6 错误检测域 标准的modbus网络有两种错误检测方法。错误检测域的内容视所选的检测方法而定。 ascii 当选用ascii模式作字符帧,错误检测域包含两个ascii字符。这是使用lrc(纵向冗长检测)方法对消息内容计算得出的,不包括开始的冒号符及回车换行符。lrc字符附加在回车换行符前面。 rtu 当选用rtu模式作字符帧,错误检测域包含一16bits值(用两个8位的字符来实现)。错误检测域的内容是通过对消息内容进行循环冗长检测方法得出的。crc域附加在消息的最后,添加时先是低字节然后是高字节。故crc的高位字节是发送消息的最后一个字节。 2.3.7 字符的连续传输 当消息在标准的modbus系列网络传输时,每个字符或字节以如下方式发送(从左到右): 最低有效位.最高有效位 使用ascii字符帧时,位的序列是: 有奇偶校验 启始位 1 2 3 4 5 6 7 奇偶位 停止位 无奇偶校验 启始位 1 2 3 4 5 6 7停止位 停止位 图4. 位顺序(ascii) 使用rtu字符帧时,位的序列是: 有奇偶校验 启始位 1 2 3 4 5 6 7 8 奇偶位停止位 无奇偶校验 启始位 1 2 3 4 5 6 78停止位 停止位 图4. 位顺序(rtu) 2.4 错误检测方法 标准的modbus串行网络采用两种错误检测方法。奇偶校验对每个字符都可用,帧检测(lrc或crc)应用于整个消息。它们都是在消息发送前由主设备产生的,从设备在接收过程中检测每个字符和整个消息帧。 用户要给主设备配置一预先定义的超时时间间隔,这个时间间隔要足够长,以使任何从设备都能作为正常反应。如果从设备测到一传输错误,消息将不会接收,也不会向主设备作出回应。这样超时事件将触发主设备来处理错误。发往不存在的从设备的地址也会产生超时。 2.4.1 奇偶校验 用户可以配置控制器是奇或偶校验,或无校验。这将决定了每个字符中的奇偶校验位是如何设置的。 如果指定了奇或偶校验,“1”的位数将算到每个字符的位数中(ascii模式7个数据位,rtu中8个数据位)。例如rtu字符帧中包含以下8个数据位: 1 1 0 0 0 1 0 1 整个“1”的数目是4个。如果便用了偶校验,帧的奇偶校验位将是0,便得整个“1”的个数仍是4个。如果便用了奇校验,帧的奇偶校验位将是1,便得整个“1”的个数是5个。 如果没有指定奇偶校验位,传输时就没有校验位,也不进行校验检测。代替一附加的停止位填充至要传输的字符帧中。 2.4.2 lrc检测 使用ascii模式,消息包括了一基于lrc方法的错误检测域。lrc域检测了消息域中除开始的冒号及结束的回车换行号外的内容。 lrc域是一个包含一个8位二进制值的字节。lrc值由传输设备来计算并放到消息帧中,接收设备在接收消息的过程中计算lrc,并将它和接收到消息中lrc域中的值比较,如果两值不等,说明有错误。 lrc方法是将消息中的8bit的字节连续累加,丢弃了进位。 2.4.3 crc检测 使用rtu模式,消息包括了一基于crc方法的错误检测域。crc域检测了整个消息的内容。 crc域是两个字节,包含一16位的二进制值。它由传输设备计算后加入到消息中。接收设备重新计算收到消息的crc,并与接收到的crc域中的值比较,如果两值不同,则有误。 crc是先调入一值是全“1”的16位寄存器,然后调用一过程将消息中连续的8位字节各当前寄存器中的值进行处理。仅每个字符中的8bit数据对crc有效,起始位和停止位以及奇偶校验位均无效。 crc产生过程中,每个8位字符都单独和寄存器内容相或(or),结果向最低有效位方向移动,最高有效位以0填充。lsb被提取出来检测,如果lsb为1,寄存器单独和预置的值或一下,如果lsb为0,则不进行。整个过程要重复8次。在最后一位(第8位)完成后,下一个8位字节又单独和寄存器的当前值相或。最终寄存器中的值,是消息中所有的字节都执行之后的crc值。 crc添加到消息中时,低字节先加入,然后高字节。 modbus网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线路连接而成。它可应用于各种数据采集和过程监控。下表1是modbus的功能码定义。 表1 modbus功能码 功能码 名称 作用 01 读取线圈状态 取得一组逻辑线圈的当前状态(on/off) 02 读
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 南阳市宛城区2025届五年级数学第二学期期末复习检测试题含答案
- 江苏省南通市四校联盟2025届高考模拟金典卷数学试题(七)试题含解析
- 洛阳职业技术学院《高等数学AⅡ》2023-2024学年第二学期期末试卷
- 江苏省田家炳中学2025年高三下学期第三次月考试题综合试题含解析
- 松花粉培训课件
- 湛江市大成中学高二上学期第一次月考物理试题
- 2025汽车租赁合同 标准版
- 颅内血管畸形护理查房
- 2025吉林油田物资采购合同
- 2025物业管理公司提供耗材服务的合同模板
- 《马达保护器培训》课件
- 2024年01月广发银行2024年境内直属分行(大连分行)副行长职位选聘笔试历年参考题库附带答案详解
- 消防安全重点单位管理
- 2025年度花岗岩墓碑石材采购合同范本
- 《止血与包扎》课件
- 2025年水稻种植农户互助合作合同3篇
- 第19课《资本主义国家的新变化》说课稿-2023-2024学年高一下学期统编版(2019)必修中外历史纲要下
- 口腔颌面外科基础知识与基本操作
- 2025年福建泉州交通发展集团招聘笔试参考题库含答案解析
- 大数据背景下的高血压诊断与治疗效果研究
- 2024员工三级安全培训考试题含答案(能力提升)
评论
0/150
提交评论