1
PROFIBUS 规范—标准部分
第四部分:数据链路层协议规范
PROFIBUS Specification—Normative Parts
Part4: Data Link Layer Protocol Specification
2
第四部分 数据链路层协议规范
目录 页码
1 范围…………………………………………………………………………… 3
2 引用标准……………………………………………………………………… 3
3 概论…………………………………………………………………………… 3
4 介质存取方式和传输协议(数据链路层,FDL)………………………… 3
4.1 传输步骤和 FDL 控制器…………………………… 3
4.1.1. 令牌步骤……………………………………………………………………… 4
4.1.1.1 令牌传递……………………………………………………………………… 4
4.1.1.2 站的增加和拆除……………………………………………………………… 5
4.1.1.3 逻辑令牌环的(重)初始化………………………………………………… 5
4.1.1.4 令牌轮转时间………………………………………………………………… 6
4.1.1.5 报文优先权…………………………………………………………………… 7
4.1.2 非循环的请求或发送/请求模式…………………………………………… 7
4.1.3 循环的发送/请求模式……………………………………………………… 7
4.1.4 请求所有站(活动表)的 FDL 状态……………… 8
4.1.5 FDL 控制器的状态……………………………………… 8
4.1.6 FDL 初始化………………………………………… 12
4.1.7 定时器操作……………………………………………………………………13
4.2 循环和系统反应时间…………………………………………………………17
4.2.1 令牌循环时间…………………………………………………………………17
4.2.2 报文循环时间…………………………………………………………………18
4.2.3 系统反应时间…………………………………………………………………18
4.3 出错控制步骤…………………………………………………………………19
4.4 定时器和计数器………………………………………………………………19
4.5 帧结构…………………………………………………………………………20
4.5.1 帧字符(UART 字符)……………………………………………………… 20
4.5.2 位同步…………………………………………………………………………21
4.6 帧格式…………………………………………………………………………21
4.6.1 无数据字段的固定长度的帧…………………………………………………21
4.6.2 有数据字段的固定长度的帧…………………………………………………22
4.6.3 有可变数据字段长度的帧……………………………………………………23
4.6.4 令牌帧…………………………………………………………………………24
4.7 长度、地址、控制和校验八位位组…………………………………………24
4.7.1 长度八位位组(LE,LEr)……………………………………………………24
4.7.2 地址八位位组(DA/SA)…………………………………………………… 24
4.7.2.1 地址校验………………………………………………………………………26
4.7.2.2 链路服务存取点(LSAP)……………………………………………………26
4.7.3 控制八位位组(FC)…………………………………………………………26
4.7.4 校验八位位组(FCS)……………………………………………………… 30
4.7.5 数据字段(DATA_UNIT)……………………………………………… 31
4.8 传输步骤………………………………………………………………………32
3
1 范围(见第二部分)
2 引用标准(见第二部分)
3 概论(见第二部分)
4 介质存取方式和传输协议(数据链路层,FDL)
PROFIBUS 系统采用由混合介质存取方式实现的控制介质存取:对应于令牌传递原
理的分散方式是以对应于主-从原理的集中方式为基础的。介质存取控制可以被每一个
主站(主动站)使用。从站(被动站)的作用是随时地听从于介质存取,即它们不能独
立地发送,只是在有请求时才发送。
通信总是由获得介质存取权(即令牌)的主站发起。令牌在一个逻辑环中从一个
主站传递给另一个主站。这样,当一个主站可以存取介质时,令牌传递立即终止。令牌
传递控制由每一个主站进行管理,因为每个主站知道它的前者(它前面的站,PS),即
令牌是从它那里接收来的,而且知道它的后继者(下一个站,NS),即令牌将传递给它,
还知道它自己的地址(即本站,TS)。在运行参数第一次初始化后,每个主站确定它的
PS 和 NS 地址,然后根据 4.1.1.2 中描述的算法动态地运转。
如果逻辑环仅由一个主站和若干从站组成,那么这是一个纯主-从系统。
在系统中,将处理以下的出错情况、异常和运行状态:
1)多个令牌
2)丢失令牌
3)在令牌传递中出错
4)重复的站地址
5)发送器/接收器有故障的站
6)在运行期间增加和拆除站
7)主站和从站的任意组合
4.1. 传输步骤和 FDL 控制器
报文的交换以循环方式进行。一个报文循环包括一个主站的主动帧(请求或发送/请求
帧)和相关的主站或从站的应答或回答帧。用户数据可以在主动帧(发送)中和回答帧(回
答)中传输。应答帧不包含任何用户数据(帧的格式见 4.6)。
只有对令牌传输和无应答的数据传输(例,广播报文)才可中断一个完整的报文循环。
在这两种运行方式中都不存在应答。在广播报文中,一个主站(发起方)用全局地址(最高
站地址,所有地址位均为二进制数“1”)同时寻址所有其他的站。
除持有令牌的站(发起方)外,所有的站一般应监听所有的请求。仅当它们被寻址时
才应答或回答。应答或回答应该在一个预定的时间,即时隙时间(Slot time)内到达,否
则如果这不是“第一次请求”的话(见 4.7.3,FCB)发起站将重复此请求。在一个等待周
期,即空闲时间(Idle Time)截止之前,发起方将不发出重试或新的请求(见 4.1.7)。
在预定的重试次数之后,如果应答者不应答或不回答(见 4.1.6),则它被标志为“不
运行的”。如果应答者是“不运行的”,则下一个不成功的请求将不再重试。
传输运行方式规定报文循环的时间顺序。分四种类型:
4
1).令牌处理
2).非循环的请求或发送/请求操作
3).循环的发送/请求操作,轮询
4).站的登记
4.1.1 令牌步骤
4.1.1.1 令牌传递
按站地址的升序用令牌帧将令牌从一个主站传送到另一个主站(见 4.6.4)。有一个站
例外,为了封闭逻辑令牌环,具有最高地址的站要传送令牌给具有最低地址的站(见图 1.)
有令牌传递方向的主站逻辑令牌环
从站
其中,TS:本站;PS:前一个站;NS:下一个站
图 1. 逻辑令牌传递环
令牌接收:
如果一个主站(TS)在主动站表(LAS)中登记为前一个站(PS)的主站所寻址,并从
PS 那里接收到一个令牌帧,则此主站就拥有了令牌并可以执行报文循环。在加电之后,由
处于“Listen_Token”(见 4.1.5)状况下的主站生成 LAS,此后根据令牌帧的接收情况,如
有必要修改和校正 LAS。
如果令牌的发送者未被登记为 PS,则被寻址者将认为是一个错误且不接收此令牌。但
此 PS 的后继的重试被接收并引起令牌的接收,则令牌的接收者将认为现在的逻辑环已修改
了。在它的 LAS 中用一个新的站代替了原先登记的 PS.
令牌传输:
某主站在完成了它的报文循环,包括可能的 GAP 站表(GAPL,见 4.1.1.2)的维护之后,
它就用传递令牌帧的方法传递令牌给它的后继者(NS)。它的收发器功能被同步监视检查(见
4.1.5,“Pass_Token”状态)。
如果在传送令牌帧之后及在时隙时间(见 4.1.7)内同步时间截止后,令牌发送者接收
到一个有效的帧,即无任何错误的合理的帧头,则它认为它的 NS 拥有了令牌并执行报文循
环。如果令牌的发送者接收到一个无效的帧,它认为另一个主站正在传输。在这两种情况下,
它停止令牌传送监视并休眠,即它进入“Active_Idle”状态(见 4.1.5)。
如果令牌发送者在时隙时间内未辨认出任何总线活动,它重复令牌帧并等待另一个时
隙时间。如果在第二个时隙时间它辨认出总线活动,此后它休眠。否则,它重复令牌帧给它
TS<NS<PS PS<TS<NS PS<TS<NS NS<PS<TS
2 4 6 9
1 3 5 7 10
5
的 NS 直到最后一次。如果第二次重试后,它在时隙时间内辨认出总线活动,则它休眠。
如果在第二次重试后,还没有总线活动,则令牌发送者将令牌传送给再下一个主站。
它继续重复这个过程直到它从它的 LAS 中找到一个后继者。如果它不成功,则令牌发送者认
为在逻辑令牌环中它是唯一的一个,并且在无报文循环请求时,它保持此令牌或传输令牌给
它自己。如果它在后面的站登录中又找到一个 NS,则它再试送此令牌。
4.1.1.2 站的增加和撤除
在任何时刻可以在传输介质上连接或撤除主站和从站。在逻辑令牌环中的每一个主站负
责增加新站和撤除现有的站,它们的地址被安置在从本站地址(TS)到下一站(NS)之间的
范围内。这个地址范围称作 GAP,并体现在 GAP(GAPL)中。最高站地址(HSA,见第三部分,
Set/Read Value FDL,变量)和 127 之间的地址范围除外,此范围不属于 GAP。
在由 GAP 更新时间(T
GUD
)给定的时间区段内,为了变更有关主站和从站,逻辑令牌环中
的每一个主站周期性地检查它的地址范围(所有的 GAP 地址)。此任务用“Request FDL
Status”主动帧(见表 3a,b7=1,code-No 9:Format 4.6.1A)检查每次令牌接收的一个
地址来实现。
在接收令牌时,如果仍有传输时间可利用(见 4.1.1.4),那么在所有排列的报文循环
已经被处理后,GAP 维护立即开始。否则在高优先权报文循环被执行后接收下一个或后继的
令牌时,GAP 维护立即开始。在实现时,应留心 GAP 维护和低优先权报文循环不可彼此中断。
按升序检查 GAP 地址,超过 HSA 的 GAP 除外,也就是说,HSA 和地址 0 不能用作主站的
地址。按此情形,在发现 HSA 之后,则检查过程在地址 0 处继续。如果一个站的肯定应答是
“未准备好”或“从站”状态(见表 3a,b7=0,Code-No 0,no SC,和 Fig.18),则它相
应地在 GAPL 中作标记并检查下一个地址。如果一个站的回答是“准备进入逻辑令牌环”状
态,则令牌持有者更改它的 GAP 或 GAPL 并传递令牌给此新的 NS。现在已被纳入逻辑令牌环
的这个站就建立了它的 LAS(主动站表),当它处在“Listen_Token”状态时,它就可以确
定它的 GAP 范围或 GAPL 和它的 NS。
如果一个站的回答是“在逻辑令牌环中的主站”,则当前的令牌持有者不改变它的 GAP,
并传递令牌给 LAS 中的 NS。这样“跳过”(jumped over)的主站自己将从总线上退下休眠,
并因为没有正确的状态报告而进入“Listen_Token”状态。在这种状态下,它产生一个新的
LAS 并保留这种状态直到它被它的前者(PS)传输一个“Request FDL Status”再次寻址为
止。
曾登记在 GAPL 中且对重复的“Request FDL Status”不应答的站被从 GAPL 中除去,
并登记为未使用的站地址。对至今尚未被使用的站地址将不再重复寻址。
4.1.1.3 逻辑令牌环的(重)初始化
初始化是更新 LAS 和 GAPL 的最初的特殊情形。如果一个处在“Listen_Token”状态下
的主站加电(PON)后,遇到超时时间(time_out),即在 T
TO
时间内(见 4.1.7)无总线活
动,它将申请令牌(“Claim_Tiken”状态),获得令牌(“take it”)并开始初始化。