摘要:给出了用PROFIBUS—DP HUB来改变现场总线拓扑结构的设计方案,并对数据转发方法进行比较。描述了DP协议传输的格式,重点介绍并分析了两种帧结束检测方法及其优劣,最后通过八通道DP HUB的实例来说明了整个设计的实现过程。
关键字:拓扑结构;帧结构;帧结束判定;波特率检测
0 引言
PROFIBUS是一种国际化、开放式、不依赖于设备生产商的现场总线标准。PROFIBUS的传送速度在9.6kbaud~12Mbaud范围内,而且,当总线系统启动时,所有连接到总线上的装置都被设成相同的速度。PROFIBUS的最大优点是其具有稳定的国际标准EN50170作保证,故其稳定、可靠、故障率低,且经实际应用验证具有普遍性。因此,研究PROFIBUS具有重要的意义。
目前工业现场应用中的PROFIBUS—DP大部分是线性总线结构,该结构上一个点出现问题将导致整个DP网络通讯故障,数据无法传输,且难以定位故障点;另外,采用该总线结构,在现场设备分布比较分散时,会对布线造成困难,很容易超出DP协议规定的通信距离。而星型或树形拓扑结构则可以有效地解决此类问题,但DP协议并不支持这两种拓扑结构。为此,本文提出利用DPHUB来改变DP网络拓扑结构,从而解决了DP总线在实际应用中的缺陷。
1 PROFIBUS—DP协议
众所周知,国际ISO标准组织的0SI网络通信模型是国际上通用的标准框架,PROFIBUS—DP使用了其中的第1、2层(即物理层、数据链路层)和一个用户的应用接口,而对通用模型上的第3~6层没有加以定义描述,这种精简结构的好处是数据传输快速和效率高。用户的应用接口又称为直接数据链路映像程序,它规定了可调用的应用功能,可使第三方应用程序得到直接调用。图1所示是PROFIBUS—DP协议层的定义。
2 PROFIBUS—DP的传输
PROFIBUS—DP总线上的一个主站控制着多个从站,主站与每一个从站都建立一条逻辑链路;主站发出命令,从站给出响应;从站可以连
续发送多个帧,直到无信息发送、达到发送数量或被主站停止为止。数据链路中的帧传输过程分为数据链路建立、帧传输和链路释放三个阶段。一般情况下,DP协议中的FDL层报文帧结构仅有5种类型。
其中,SDl是无数据域,只用作查询总线上的激活站点,其格式如下:
SD2是带有固定8字节数据域,格式如下:
SD3的数据域长度可变,常用于SRD(发送数据,且要求回复数据)服务,格式为:
SD4是令牌帧,格式如下:
SC为短应答,格式为:
在PROFIBUS—DP协议中,RS485和光纤通常使用UART编码格式,而在UART编码中,每个字符由一个UART结构的11位构成,具体如下:
其中,Start=0;Parity=偶校验位;Stop=1
为了保证数据的准确传输,必须知道起始位和结束位。判断起始和结束的条件是要知道DP的传输速率。
3 DP数据转发方式比较
DP HUB的数据转换方式大体可分为两种,即不检验帧结束转发和检验帧结束转发。
3.1 不检验帧结束转发
不检验帧结束转发是当一路485检测到信号线上有低电平信号时(DP协议定义信号线上闲时为高电平),由FPGA将其余七路485设置成发送状态,而把一路进来的低电平脉冲信号转发给其余七路。低电平脉冲结束后,FPGA再将其余七路恢复成接收状态,以等待下一个低脉冲的到来。
该方法的优点是实现简单,缺点是当HUB的主站给从站发送数据时,其余路端如果进来低电平干扰且恰好遇到主站485接收的是高电平信号,则系统就会误认为主站发送数据结束而将其变为从站。然后将有低电平干扰的从站变为主站,将低电平干扰当作正常数据向其他从站转发。
3.2 检验帧结束转发
检验帧结束式转发即一路485检测到信号到来时,由FPGA将其余七路485设置成发送状态,并按位将其转发。它采用一定方法判断帧的结束位,并当判断这个帧结束时,由FPGA将七路485重新设置成接收状态,以等待下一个帧的到来。
该方式的优点是数据传输准确率高,但是也存在着系统资源占用较多的缺点。事实上,考虑到DP通信的安全性和可靠性,还是先检测波特率后按位传输较好。下文将介绍DP—HUB是如何基于判断帧结束这种方法来实现数据转发的。
作者:王 鑫 来源:国外电子元器件