关键词:PROFIBUS-DP;通信协议芯片SPC3;接口
Abstract: In view of the communication transform problem in the industry control and the characteristics of the PROFIBUS-DP fieldbus technology, the designing method of hardware and software of PROFIBUS-DP communication transform interface with SPC3 are introduced. Through this transform interface, the conventional instrumentation with RS485 interface can be connected to PROFIBUS-DP, and carry out communication and control functions.
Key words: PROFIBUS-DP;Communication protocol chip SPC3;Interface
1 引言
PROFIBUS-DP是目前欧洲乃至全球应用最广泛的总线系统,安装简单、拓扑结构多样、易于实现冗余、通信实时可靠、功能比较完善,卓越的性能使得它适用于各种工业自动化领域。随着PROFIBUS-DP控制系统在我国越来越广泛的应用,将原有的不符合DP标准的设备连接到PROFIBUS-DP现场总线网络中,就需要开发DP通讯转换接口。因此,进行DP通讯转换接口的开发是很有必要的。本文主要讨论采用SPC3通信协议芯片实现DP通讯转换接口的硬件和软件。
2 PROFIBUS-DP现场总线
2.1 PROFIBUS-DP基本特性
PROFIBUS-DP用于现场级的高速数据传输,中央控制器(如PLC/PC)通过串行连接与分散的现场设备(如I/O、驱动器和阀门及测量变送器)进行通信。中央控制器(主站)周期的读取从站的输入信息并周期的向从站发送输出信息,除周期性数据传输外,PROFIBUS-DP还提供智能化设备所需的非周期通讯以进行组态、诊断和报警处理。PROFIBUS-DP具有快速、即插即用、高效低成本等优点。
2.2 PROFIBUS-DP总线拓扑
PROFIBUS-DP系统有两种总线拓扑结构:一种是RS-485,采用屏蔽双绞线,拓扑结构为总线型,通信速率为9.6Kbps~12Mbps;另一种是采用光纤,用于电磁兼容性要求高和长距离要求的场合。
2.3 PROFIBUS-DP总线协议
PROFIBUS-DP协议根据ISO7498国际标准以开放系统互联网络OSI参考模型为基础,采用了参考模型的第1层物理层,第2层数据链路层和用户自己定义的用户接口层,第3层到第7层未使用;这种精简的结构确保了快速、高效的数据传输。物理层定义了物理传输特性;数据链路层定义了总线存取协议,直接数据链路映像程序DDLM提供对第2层的访问;用户接口规定了PROFIBUS-DP设备的应用功能,以及各种类型的系统和设备的行为特性。
PROFIBUS-DP总线存取协议,主站之间采用令牌传递方式,主站与从站之间采用主从方式。令牌传递程序保证每个主站在一个确切规定的时间内得到总线存取权(令牌),在PROFIBUS中,令牌传递仅在各主站之间进行。主站得到令牌时可与从站通信,每个主站均可向从站发送或读取信息。因此,有3种系统配置:纯主-从系统、纯主-主系统、混合系统。系统中相应地使用令牌传递方式和主-从方式完成数据通信。
3 PROFIBUS-DP通讯转换接口的开发
3.1 硬件设计
在接口电路的设计中主要有两种方法:一是使用微处理器利用软件来模拟PROFIBUS现场总线协议。此设计的成本很低,但需要充分了解PROFIBUS-DP协议和运行机制,软件编程工作量大,可靠性不易保证,通信速度也受到限制。二是使用PROFIBUS专用协议芯片ASIC。此设计的成本较高,技术指标高,自主性高,只需了解ASIC的工作原理。在本次通讯接口的设计中采用的是第二种方法,使用的是ASIC结合微处理器来完成设计。
为使PROFIBUS-DP接口实现简单、方便,达到快速提供产品的目的,采用西门子公司的专用通信协议芯片SPC3完成PROFIBUS-DP总线的协议。SPC3集成了完整的PROFIBUS-DP协议,能自动检测总线的波特率从9.6Kbps到12Mbps,集成了1.5KB的双口RAM,它本身具有地址锁存和片选功能,上电后自动执行PROFIBUS-DP的从站状态机。
SPC3内部1.5KB 双口RAM地址空间为00H~5FFH,以8个字节为一个单元(段),分成192段(0~191)。按功能可分为三个区域:00H~15H为处理器参数区,包括工作模式寄存器、从站最小延迟时间寄存器、内部集成看门狗定时器寄存器、用于中断的寄存器以及状态寄存器等;16H~3FH为组织参数区, 用于设置DP缓冲区中各个缓冲块(BUF)的指针(首地址)和长度,并且这些设置必须在SPC3的离线状态下完成;40H~5FFH为DP缓冲区,是DP数据的缓冲区,包括3个输入数据BUF、3个输出数据BUF、2个诊断BUF、2个辅助BUF、设置参数BUF、通信接口配置BUF和可读通信接口配置BUF等。
SPC3内部集成一个看门狗定时器,操作于三种不同的状态:波特率监测、波特率控制和DP控制。内部的异步串行收发器(UART)实现串并数据流的相互转换,空闲定时器控制串行总线电缆上的时序,微序列器(MS,microsequencer)控制整个SPC3的工作过程。
PROFIBUS-DP通讯转换接口采用89C52微处理器作为中央处理器,DP接口芯片采用SPC3。89C52负责将现场采集的信号进行处理、分析和分类,然后通过SPC3传送到PROFIBUS-DP总线,同时监测SPC3,接收DP主站送来的指令和数据,并进行相应的操作。电路结构示意图如图1所示。
图1 电路结构示意图
图2 PROFIBUS-DP状态机
89C52微处理器扩展了32KB的数据存储器(RAM),时钟信号是通过SPC3分频得到的,外围电路还包括了带EEPROM的看门狗,模数(A/D)转换、数模(D/A)转换、DI/DO接口和数码显示电路。其中,EEPROM主要用于存放从站地址、ID号等配置信息;数码显示电路主要用于显示一些从站信息;而模数(A/D)转换、数模(D/A)转换、DI/DO接口使通讯转换接口能够胜任AI、AO、DI、DO等多方面工作。
PROFIBUS-DP一般采用RS-485传输技术,电缆采用屏蔽双绞线,能够较好地改善电磁兼容性,传输速率为9.6Kbps~12Mbps。连接采用符合PROFIBUS-DP开放标准的9针D型插头,在不带中继时,每分段可以连接32个站;在使用中继时,可以扩展到127个站,包括中继站。当信号在总线上传输时,若发生阻抗不连续,将形成信号反射,导致传输信号畸变,因此在传输线的末端,需要加终端电阻来消除这种阻抗不连续,所加电阻阻值应尽量接近传输线的特性阻抗。为消除来自零线的干扰,在SPC3和RS-485收发器之间须加光耦隔离,为提高传输速率,应尽量选择高速光耦合RS-485收发器,本设计采用HCPL7720高速光耦和SN75ALS176总线收发器。
3.2 软件设计
软件设计是开发PROFIBUS-DP通讯转换接口的一个重要环节,也是其难点所在。开发者必须了解PROFIBUS-DP协议,熟悉SPC3芯片的工作原理和状态机原理,熟知SPC3的各种DP服务。
PROFIBUS-DP的状态机描述DP从站在每种情况下的行为以保证它符合一致性,SPC3内部集成了状态机,用户对状态机的控制是很有限的。PROFIBUS-DP状态机如图2所示。各个椭圆表示不同的状态,带箭头的连线表示状态间的转换,而连线上的文字表示状态的转换所需满足的条件。
在POWER_ON状态,从站能从二类主站接收 Set_Slave_Address报文来改变它的地址,然后从站进入Wait_Prm状态,等待参数化,此状态从站还可以接受Get_Cfg,Slave_ Diag报文。参数化完成后,从站进入Wait_Cfg状态,等待Check_Cfg报文,另外还可以接收Slave_Diag,Set_Prm ,Get_Cfg报文。如果Check_Cfg完成后,从站将进入Data_Exch状态,进行数据通信。此时从站还可接收Writing_Outputs,Reading_Inputs,Gloable_Control,Slave_Diag,Chk_Diag,Get_Cfg报文,若组态和数据交换不成功,就会返回到参数化阶段。Wait_Prm在对从站进行组态时,必须要编写它的GSD文件。GSD文件是设备数据库文件,描述PROFIBUS设备具有的性能特征。GSD文件包括三个部分:总体说明(厂商和设备名称、软硬件版本、支持的波特率等)、DP主设备相关的规范(如可连接从设备的最多台数或卸载能力)、从设备相关的规范(如I/O通道的数量和类型、诊断测试的规格及I/O数据的一致性信息)。标准化的GSD数据将通信扩大到操作员控制一级,使用基于GSD的组态工具可将不同厂商生产的设备集成在一个总线系统中,简单,用户界面友好。
SPC3集成了完整的PROFIBUS-DP协议,能独立地处理PROFIBUS-DP协议的所有通信任务,从而大大减轻微处理器的负载,保证系统的通信速度和数据交换的可靠性。微处理器的主要任务是根据SPC3产生的中断,对SPC3接收到的主站发送的输出数据进行转存,组织需通过SPC3发送给主站的数据,并根据要求组织外部诊断等。PROFIBUS-DP通信的服务存取点(SAP)由SPC3自动建立,各种报文信息呈现在用户面前的是不同BUF的内部数据。用户可以通过此总线接口访问这些内部数据。
主程序流程图如图3所示,其中SPC3的初始化包括设置SPC3允许的中断,写入从站识别号和地址,设置SPC3方式寄存器,设置诊断缓冲区、参数缓冲区、配置缓冲区、地址缓冲区、初始长度,并根据以上初始值求出各个缓冲区的指针及辅助缓冲区的指针,根据传输的数据长度确定输出缓冲区及指针(在赋各缓冲区指针变量值时,指针值是段序号)。中断程序流程图如图4所示,主要用来处理PRM报文、CFG报文和SSA报文。
用汇编语言编写的部分初始化程序如下:
MOV DPTR,#R_DIAG_BUF_PTR1 ; 如果SPC3离线,初始化SPC3
MOV A,#D_DIAG_BUF_PTR1
MOVX @DPTR,A; 诊断缓冲区指针
INC DPTR
MOV A,#D_DIAG_BUF_PTR2
MOVX @DPTR,A
MOV DPTR,#R_CFG_BUF_PTR ; 配置缓冲区指针
MOV A,#D_CFG_BUF_PTR
MOVX @DPTR,A
MOV DPTR,#R_READ_CFG_BUF_PTR
图3 主程序流程图
图4 中断程序流程图
4 结束语
PROFIBUS-DP的协议开放、实时性好,数据传输速度快,系统实现简单,可靠性高,符合现代工业网络发展的趋势,必将在未来一段时间内得到广泛的应用。PROFIBUS-DP通讯转换接口的开发,解决了具有RS-485 接口不同工控设备间的通讯转换问题,提高了工业控制的自动化水平。通过实际运行证明了这种通讯转换接口硬件和软件设计的合理性,能够保证数据传递过程的安全、快速和稳定。使用本文论述的方案,在自主开发的现场设备/仪表上配置PROFIBUS-DP接口,可以很好地满足相关行业的需要,在实际中具有广阔的应用前景。
本文作者创新点:本文针对工业控制中存在的不同设备间难以进行通讯转换的问题,开发了一种PROFIBUS-DP通讯转换接口。通过这种接口,可以将具有RS-485接口的仪器仪表设备很方便的连接到PROFIBUS-DP网络上,实现通讯和控制功能。通过实际运行证明了这种通讯转换接口硬件和软件设计的合理性,能够保证数据传递过程的安全、快速和稳定。从而解决了具有RS-485接口不同工控设备间的通讯转换问题,提高了工业控制的自动化水平。
参考文献
[1] 夏继强,邢春香,现场总线工业控制网络技术[M],北京航空航天大学出版社,2005.
[2] 周晓慧,孟彦京,许德玉,PROFIBUS-DP现场总线通讯转换接口的开发[J],微计算机信息,2005年第21卷第7-1期31-33页.
[3] SIEMENS SPC3 and DPS2 User Description[M], 2002.
[4] PROFIBUS Development kits Manuals,SIEMENS,1998.