1 引 言 Profibus技术以其卓越的性能在全世界赢得了广泛的用户群。Profibus技术及其产品已经进入中国,在我国的制造业、流程工业、冶金、电力、交通、水利、食品加工、环保、楼宇和铁路自动化领域都有应用实例。国外先进技术和产品进入中国市场在一定程度上带动了我国仪表技术的发展。我国参与 Profibus总线技术研究开发应用的企业和科研机构有二十多家[3]。研究Profibus总线协议和开发技术,开发Profibus产品,在中国的市场有着较大的发展前途。 Profibus总线标准包括3个方面内容:FMS,DP,PA;适用于不同的应用领域。DP是目前欧洲乃至全球应用最广泛的总线系统;安装简单、拓扑结构多样、易于实现冗余、通信实时可靠、功能比较完善,卓越的性能使得它适用于各种工业自动化领域,DP协议规定了用户数据怎样在总线各站之间进行传递,而DP行规具体说明用户数据的含义,并规定了DP如何在应用领域使用。利用行规,设备操作者和最终用户可以互换不同生产厂商生产的设备,甚至还允许互换不同厂商生产的部件,这大大降低了用户的工程和维护成本。DP从站只使用了DP协议的很小一部分,开发起来十分经济。
2 智能从站通信接口芯片SPC3 Profibus的通信协议比较复杂。从原则上讲,它可以在任何微处理器上由软件实现,只需安装异步串行收发器(UART)。但现在开发人员只要使用专用的通信处理芯片,完全可以将复杂协议撇开。Profibus通信协议芯片已形成广泛系列,使用这些协议芯片使Profibus协议的具体实现简单、方便、省时、省力,还可达到快速提供产品的目的。适合于智能从站的ASIC种类较多,如IAM公司的PBS,Motorola公司的68302、 68360,SIEMENS公司的SPC4、SPC3,VIPA公司的VPC3+、VPM2L等,其中的SPC3通信协议芯片比较有代表性。想利用其它芯片的开发人员可以参考Profibus组织的网站。 SPC3的内部结构示意图见图2—1。SPC3集成了DP协议中的FDL层,可以承担通信部分的微处线接口是个可参数化的同步/异步8位接口,适合于Motorola和Intel的微控制器/处理器。内部集成了1.5K的双口RAM,整个 RAM采用8字节的段结构方式,分成192段,所有需要分配地址的BUF指针,必须指向段的开头。DP通信的服务存取点由SPC3自动建立,各种报文信息呈现在用户面前的是不同BUF的内部数据。用户可以通过总线接口访问SPC3内部RAM。
SPC3内部集成一个看门狗定时器,操作于3种不同的状态:波特率监测,波特率控制和DP控制。内部的UART实现串并数据流的相互转变,SPC3可以自动标识总线的波特率(9.6K~12M)。空闲定时器控制串行总线
电缆上的总线定时。微序列器(MS,Micro Sequencer)控制整个SPC3的工作过程。 在SPC3的内部1.5KRAM中,自己用到了64个字节。这64个字节大多需要用户设定,如中断屏蔽字、硬件模式寄存器0和1、各种BUF长度和指针、标识字等;还有一部分是SPC3的各种状态指示用寄存器,如中断字、输入BUF状态、输出BUF状态、诊断BUF状态等。还有些寄存器在写入时作为工作模式设定寄存器,而读出时作为状态指示用寄存器,如中断请求寄存器。RAM的其它1472 个字节是提供给各种BUF的空间。SPC3具有3个输入BUF,3个输出BUF,2个诊断BUF,2个辅助BUF,1个配置BUF,1个参数BUF和1个地址设置BUF。当SPC3工作前,过程特定的参数(如站地址、标识号、各种控制位等)要输入到特定的寄存器单元之后SPC3才能正常。(具体的过程见 SPC3初始化程序)
3 通信接口的硬件设计 SPC3 可以与各种的微处理器连接使用,如Mo-torola的HC11、HC16及HC916,Intel的51、96系列。总线接口单元形成SPC3到各种微处理器的接口,它是一个有11条地址线的8位数据接口,可以通过配置与上述两种类型的处理器匹配。配置是借助于SPC3的两个输入引脚—— XINT/MOT和MODE进行的。XINT/MOT表示Intel和Motorola芯片类别。MODE表示SPC3的工作模式,包括同步和异步。工作于同步模式时,SPC3的XREADY(请求外部等待)引脚无效。 开发中使用的微处理器是80C196,其与SPC3的接口电路如图3—1。应当注意的是SPC3在使用Intel芯片并工作于同步模式时,内部有自己的地址锁存及解码电路,所以CPU的低8位地址线不经过573锁存器直接与 SPC3连接(低8位地址线与8位数据线分时共用传输线)。而CPU的高8位地址线直接与SPC3的AB0-AB7相连,且必须为00000XXX(X表示0、1信号都行),AB8-AB10必须为低。此时片选信号输入引脚不起作用,应当将其接至高电平。
CPU与SPC3通过SPC3的RAM交换数据,SPC3的双口RAM应在CPU地址空间中统一分配地址。CPU把这片RAM当作自己的外部RAM。CPU采用P3和P4口扩展外部存储器,P3口作为数据和低8位地址线,P4口作为高8位地址线。 SPC3与通信接口的电路示意图见图3—2。SPC3用于串行通信的4个管脚分别为XCTS、RTS、TXD和RXD。XCTS的含义为清除发送,是 SPC3的输入信号,表示允许SPC3发送数据。此信号低电平有效,应一直接低电平。RTS为SPC3的请求发送信号,其最终接到收发器的输出使能端。 RXD和TXD分别为串行接收和发送端口。 为提高系统的抗干扰性,SPC3内部线路必须与物理接口在电气上隔离。输入输出通道上的电气隔离,采用了6N137高速光耦。
电源的电气隔离,采用了DCP0505这种5V到5V的隔离转换电源。 Profibus通信协议保障了通信的高可靠性,但这以硬件和软件设计为基础。在通信接口设计时,必须遵循一定的规范,如信号的隔离,总线接口与收发间避免线路过长,电源的滤波处理,收发器和光耦的限流电阻和负载电阻必须与收发器光耦配合适当等。 采用的高速光耦为6N137,收发器为SN75ALS176,通信速率可达6M波特率,可用于大部分的应用系统。如果用户需要更高的通信速率,可以将光耦换作可达25M波特率的HCPL-7720/7721。
4 通信接口的软件设计 应用程序。程序采用结构化编程思想,以便于以后的功能拓展。SPC3 的初始化程序应放在具体IO应用的前面;SPC3的中断输出作为CPU的中断输入,对于C196来说,采用的是外部中断,中断入口地址为200EH。 在SPC3正常工作之前,必须进行初始化,以配置各个需要的寄存器。初始化程序功能结构见图4—1。
中断处理程序用于完成SPC3发生的各种事件的处理。主要有新的参数报文事件,全局控制命令报文事件,进入或退出数据交换状态事件,新的配置报文事件,新的地址设置报文事件,监测到波特率事件和看门狗溢出事件。 数据输入和输出处理(输入输出相对于主站而言)以及用户诊断数据输入可以放在应用程序循环中。在一个应用循环中,由应用来刷新输入BUF中的数据,保障所有输入数据是最新更新的数据。而SPC3在接收到由Profibus主站传送的不同输出数据时,会产生输出标志位(同样位于中断请求字单元),CPU通过在应用循环中轮询标志位来接收主站数据。相对于特定应用的诊断信息,需要实时传递到主站;主应用程序在应用循环中判断是否有可用的诊断BUF存在,当有空闲BUF时,应用程序输入诊断信息并请求更新。对于实时性要求严格的系统,应采用中断方式进行输出数据和诊断数据处理。
5 结 论 为验证所设计从站的Profibus功能及系统性能,需要确定实验方案并组建实验网络。实验中使用的主站采用SIEMENS的IM180主站模块和 DPMT主站软件。IM180附以主站软件可以实现对从站的状态监控及控制。实验还需要建立自定义从站的GSD文件,目的是为了使用开放的组态工具组态。使用SIEMENS的GSD-EditorV2.1(可以从Profibus用户组织的网站下载http:∥www.profibus.com)建立定制从站的GSD文件,可以减少定制GSD的周期,并能保证文件格式的正确性。 实验中采用的总线波特率为6M,连接器采用SIEMENS提供的接线器和自己设计的连接器。主站与从站可以保持可靠的通信。主站对从站发送的“从站地址设置”命令,从站可以正确的接收并处理,对从站的特别工作模式设定是通过全局命令完成,包括对从站锁定和同步的命令。实验结果表明这些功能都得到较好实现。 不同波特率下所达到的通信距离也是Profibus规范的一个重要指标。本实验中采用屏蔽双绞线验证从站的这一特性。表5—1为实验所达到的指标。
以上实验表明,所设计的从站完全符合Profibus标准。网络的数据传送速率可达6Mbps,且运行稳定,可以满足大多数应用的需求。 开发过程也证明了利用Profibus通信协议进行Profibus产品开发,可以极大地节约时间和人力。 SPC3芯片的使用方法简单,功能相对完善,可以满足智能DP从站的通信接口设计。