令牌环是所有主站的组织链,按照它们的地址构成逻辑环。在这个环中,令牌(总线存取权)在规定的时间内按照次序(地址的升序)在各主站中依次传递。在总线系统初建时,主站介质存取控制制定总线上的站点分配并建立逻辑环。在总线运行期间,断电或损坏的主站必须从环中删除,新上电的主站必须加入逻辑环。总线存取控制保证令牌按地址升序依次在各主站间传送,各主站的令牌保持时间长短取决于该令牌配置的循环时间。另外,PROFIBUS介质存取控制还可监测传输介质及收发器是否有故障,检查站点地址是否出错(如地址重复)以及令牌错误(如多个令牌或令牌丢失)。下面重点介绍令牌在逻辑环中的传递和逻辑环的维护。3.1 令牌的传递
在逻辑环中的每一个站内都存放着一张LAS表,在LAS表中列出PS、TS、NS。在正常情况下,每一个站都按LAS表进行令牌传递。对于具体某个站而言,令牌一定是从它的PS传来,传到它的NS去,图2中各站的LAS表如表1所示。
当一个站把令牌传递给自己的下一个站后,它还应当监听一个时间片(Slot time),看下一站是否收到令牌。当下一站收到令牌,无论是发送数据还是再向它的下一站传递令牌,都
将在帧的SA段填入监听站的NS。若监听不到则再次向自己的NS发令牌,若连试两次仍
..
TS2PS22NS2 44NSTS4PS4 6NS66PSTS6
PS88NSTS88
结束结束结束结束
站2 LAS表站4 LAS表 站6 LAS表站8 LAS表.. 表1 PROFIBUS的LAS表
收不到SA等于自己NS的帧,则表明自己的下一站NS出了故障。于是此站应向再下一站传递令牌。若找到新的下一站,则令牌绕过故障站继续流动;若失败,则再向下找一站。如果一直没有找到下一站,则表明现有令牌持有站是逻辑环上唯一的站,必须重新建立逻辑环。 3.2 逻辑环的建立
PROFIBUS协议首先人为设定逻辑环中地址最小的主站为环首,环首首先自己给自己发一令牌帧,这一特殊的令牌帧用来通知其它主站要开始建立逻辑环了,然后环首用“Request FDL Status”,按地址增大顺序发给自己的下一站。若下一站用“Not Ready”或者“Passive”应答,则首环把此站地址登记到GAPL表中;若下一站用“Ready for the Logical ring”应答,则环首把此站地址登记到LAS表中,这样逻辑环就建立起来了。 3.3 站的增减
在逻辑环上的站,必须在LAS表上登记增加的新站或者删去退出的站,同时LAS表随着站的增减而变化。在逻辑环上从本站到自己的下站这段地址空间叫GAP,GAP的状态表叫GAPL表,逻辑环上的每个站都要对自己的GAP进行检查,检查和应答的方式同3.2节中的描述,如果主站退出逻辑环,则相应的GAPL表应相应修改。例假若图2中主站4退出逻辑环,则站2的GAPL表变成表2的形式。逻辑环中主站的增减是通过周期性询问GAP后,对LAS以及GAPL表修改实现的。
..
3Passive
4? Passive5
结束 .. 表2 站2的GAPL表 3.4 主从方式的优先级调度[4,5]
在PROFIBUS总线协议中,一旦某主站获得了令牌,它就按主从方式控制和管理全网,并按优先级进行调度。首先进行逻辑环维护,这段时间不计入令牌持有时间。然后处理高优先级任务,最后处理低优先级任务。高优先级服务即使超过了令牌持有时间,也应全部处理完。在处理完高优先级任务后,再根据所剩的令牌持有时间对低优先级任务进行调度。优先级的高低是由主站提出通信要求,用户进行选择的,选择高服务优先级,则该任务为高优先级任务;反之为低优先级任务。这类由主站随机提出的通信任务,采用非周期发送请求方式传输数据。如果通信任务是由用户预先在每个主站中输入一张轮询表(Polling list),该表定义了此主站获得令牌后应轮询的从站及其他主站,并规定此主站与轮询表中各站按周期发送/请求方式传输数据。对于这类任务,PROFIBUS一律按低优先级任务调度,即:当处理完
高优先级任务后,如果剩有令牌持有时间,则安排轮询表规定的任务,按照轮询表规定的顺序,在令牌持有时间内,采用周期发送/请求方式向各站发送数据,并要求立即给予带数据的应答。
4. FDL帧的结构
PROFIBUS协议结构中FDL帧由异步格式的字符组成,字符格式为11位,其中一个起始位,8个数据位,一个偶校验位,一个停止位,其组成结构如下图所示.
.. 0b1b2b3b4b5b6b7b8p1偶停止 起始数据位校验位位 .. FDL帧的组成结构 FDL帧的格式总共有三种:(1)不带数据且长度固定的帧;它包括请求帧、应答帧、简短应答帧。(2)带数据且长度固定的帧;它包括发送/请求帧、响应帧。(3)数据段长度
[6]
可变的帧。本文重点介绍这种帧的结构。它包括三种帧:
...① 发送/请求帧,其结构如下图所示,其中L=4~249bit .
SYNSD2LELErSD2DASAFCDATA-UNITFCSED
L可变.. ...② 响应帧,其结构如下:
SD2LELErSD2DASAFCDATA-UNITFCSED
L可变 ....③ 令牌帧
SYNSD4DASA ..上述帧结构中,SYN为同步字段,只在请求帧和令牌帧前出现,不允许在字符之间出现;SD2为开始界定符,10H;SD4开始界定符,DCH;LE和LEr都表示长度占一个字节,它是DA+SA+FC+DATA-UNIT的字节数的总和;FCS校验段,占一个字节;DA目的站地址,SA源站地址;DA和SA各占一个字节,其格式如下: 21EXT262524232202 ..地址中EXT为扩展位,EXT=0表示不扩展,EXT=1表示地址扩展,扩展形式如下:
.. DATA-UNITEXT=1EXT=1
SADAFCDAESAEFCSED
.当DA的EXT=1时,其扩展地址为DAE;当SA的EXT=1时,其扩展地址为SAE。DAE和SAE的格式如下:
.
21EXTTYP2524232202 ..其中EXT为附加地址扩展标示符;TYP=0时,DAE和SAE中为服务访问点地址SSAP及DSAP;当TYP=1时,DAE和SAE中为带桥的多级总线段地址。当TYP=0时,令牌持有站与其下一站的连接如图3所示。DAE中的DSAP为目的服务访问站地址,SAE中的SSAP为源服务访问站(即令牌持有站)地址,DA中的目的站地址,SA为源站地址组成两级地址,并建立
连接,为数据传输服务。
..
站2站1
DAE(DSAP)SAE(SSAP)
SADA Profibus
DASADAE(DSAP) SAE(SSAP)..
图3 两个主站连接的建立 FC帧控制段,帧控制段是最关键的字段,其格式如下: .. b4b8b7b6b5b2b1b3
FCBFCV功能码 Res帧类型Stn类型 ..其中b8为Res,表示预留位;b7为帧类型,b7=1表示发送/请求帧,b7=0表示响应帧;此时b6b5作Stn类型,即表示站类型及FDL状态,如b6b5=00,表示从站;b6b5=01表示主站未准备好;b6b5=10表示主站准备进入逻辑环;b6b5=11表示该站已是逻辑环上的主站。当b7=1时,b6b5表示FCB与FCV,FCB位为帧计数位,0/1交错。FCV=1表示帧计数位有效。FCB位与FCV位联合使用以防帧丢失或帧重叠。
5 结束语
PROFIBUS是一种用于工厂自动化车间级监控和现场设备层数据通信与控制的现场总线技术,可实现现场设备层到车间级监控的分散式数字控制和现场通信网络,从而实现工厂综合自动化和现场设备智能化。它是一种无知识产权保护的标准,任何用户都可以利用这个标准设计各自的软、硬件解决方案。理论上,PROFIBUS协议在任何微处理器上都可以实现,在微处理器内部或外部安装异步串行通信接口(UART)即可完成。但当数据传输速率超过500K bit/s、或需要使用IEC1158-2传输技术时,则必须使用协议专用芯片[7]
。PROFIBUS现场总线有着无可比拟的优点,如开放性、实时性好,系统简单、成本低、可靠性高等,掌握了这种总线的通信原理,对于更好地利用这种总线技术有着重要的意义。 参考文献
[1] 阳宪惠 现场总线技术及应用[M] 北京:清华大学出版社 ,1999年
[2] 吴秋峰 自动化系统计算机网络[M] 北京:机械工业出版社 ,2001年
[3] 邱公伟 可编程控制器网络通信及应用 [M] 北京:清华大学出版社 ,2000年 [4] IEC SC65,IEC1158-7 Digital data communication for measurement and control-fieldbus for use in industrial control system[J]. IEC 1997
[5] IEC.TC65 Fieldbus standard for use in industrial control system[A], IEC 61158 [C]. [SI.] IEC. TC65, 200
[6] 廖延常 、方彦军 基于PROFIBUS 现场总线的控制系统通信互连研究[J] 电气自动化 2002(3):52 ~55
[7] SIMATIC STEP7 V5.1 Configuring Hardware and Communication Connections Manual