新闻中心

EEPW首页 > 电源与新能源 > 设计应用 > 基于FPGA的PROFIBUS-DP集线器设计

基于FPGA的PROFIBUS-DP集线器设计

作者: 时间:2010-06-30 来源:网络 收藏


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协议定义信号线上闲时为高电平),由将其余七路485设置成发送状态,而把一路进来的低电平脉冲信号转发给其余七路。低电平脉冲结束后,再将其余七路恢复成接收状态,以等待下一个低脉冲的到来。
该方法的优点是实现简单,缺点是当HUB的主站给从站发送数据时,其余路端如果进来低电平干扰且恰好遇到主站485接收的是高电平信号,则系统就会误认为主站发送数据结束而将其变为从站。然后将有低电平干扰的从站变为主站,将低电平干扰当作正常数据向其他从站转发。
3.2 检验帧结束转发
检验帧结束式转发即一路485检测到信号到来时,由将其余七路485设置成发送状态,并按位将其转发。它采用一定方法判断帧的结束位,并当判断这个帧结束时,由FPGA将七路485重新设置成接收状态,以等待下一个帧的到来。
该方式的优点是数据传输准确率高,但是也存在着系统资源占用较多的缺点。事实上,考虑到DP通信的安全性和可靠性,还是先检测波特率后按位传输较好。下文将介绍DP―HUB是如何判断帧结束这种方法来实现数据转发的。

4 帧结束检测
帧结束的检测理论上可以分为码元宽度检测法和穷举法判断波特率两种方法。
4.1 码元宽度检测法
本方法检测的基本思想是找出13个脉冲中长度最小的位宽,该位宽即为码元宽度,因为UART编码和传输的方式使得在一个字节包括11
个编码位加上其前后2位共13个位,其中一定有1位码元存在。这个码元的宽度可用nT表示,其中T为时钟周期,n为时钟周期的个数。然后可以检验数据的高电平持续长度,如果这个数据有一段高电平的长度大于16nT,则认为该帧结束。这样的依据是:一个帧的最短长度为一个字节,一个字节是由11个码元组成。通常为了保证结束判断准确而需要多取几位,这里将其定为16个码元。同时由于DP协议中规定报文帧中间的各个字符没有空闲静止状态,而且数据通信上要有33个码元的空闲时间来做为同步表示(SYN)。这样,取16个码元长度既能判断出帧的结束,而又不会把下一次通信中的高电平信号误认为是上一个帧的结束。
这种方法的优点是算法简单,不需要解析帧的结构。缺点是检测码元的时钟频率要求较高(为了准确的测量码元的宽度),因而功耗较大。



评论


相关推荐

技术专区

关闭