新闻中心

EEPW首页 > 电源与新能源 > 设计应用 > 基于SPC3的PROFIBUS现场总线智能从站的设计

基于SPC3的PROFIBUS现场总线智能从站的设计

作者:时间:2005-05-30来源:网络收藏

摘要:介绍了PWM控制电路的基本构成及工作原理,给出了美国Silicon General公司生产的高性能集成PWM控制器SG3524的引脚排列和功能说明,同时给出了其在不间断电源中的应用电路。

关键词:PWM SG3524 控制器

1 概述

PROFIBUS是Process Fieldbus的缩写,是一种国际性的开放式标准,即EN50170欧洲标准。目前世界上许多自动化技术生产厂家都为它们生产的设备提供了PROFIBUS接口。PROFIBUS已经广泛应用于加工制造、过程和楼宇自动化,目前已发展成为一种成熟技术。

PROFIBUS根据应用特点分为PROFIBUS-DP、PROFIBUS-FMS、PROFIBUS-PA三个兼容版本。PROFIBUS协议定向根据ISO7498国际标准以开放系统互联网络OSI为参考模型。PROFIBUS的DP、FMS和PA均使用单一的存取协议,可通过OSI参考模型的第2层实现,包括数据的可靠性以及传输协议和报文的处理。其中PROFIBUS-FMS用于解决车间级通用性通信任务,能提供大量的通信服务,并可完成中等传输速度的循环和非循环通信任务;PROFIBUS-PA则专为过程自动化,它采用标准的本质安全传输技术来实现IEC1158-2中规定的通信规程,适用于对安全性要求较高的场合及由供电的站点;而PROFIBUS-DP在经过优化的高速、廉价的通信连接后,可专用于自动控制系统和设备级分散I/O之间的通信。使用PROFIBUS-DP模块可取代价格昂贵的24V或0~20mA并行信号线,用于分散式控制系统的高速数据传输。PROFIBUS-DP使用ISO/OSI参考模型的第1层、第2层和用户接口,而第3层到第7层未加描述,这种流水线型结构确保了数据传输的快速和有效。它的直接数据链路映像(DDLM,data link mapper)提供有进入第2层的用户接口。该用户接口规定了用户及系统以及不同设备的调用功能,同时说明了各种不同PROFIBUS-DP设备的设备行为,此外,还提供了传输用的RS-485传输技术或光纤。

2 SPC3芯片介绍

PROFIBUS的通信协议比较复杂。原则上讲,只要安装了异步串行收发器(UART),它就可以在任何微处理器上由软件实现。但现在,开发人员却常常使用专用的通信处理芯片来将复杂的协议完全撇开。PROFIBUS通信协议芯片已形成广泛系列。使用这些芯片可使PROFIBUS协议的实现更加简单、方便、省时、省力,从而达到快速提供产品的目的。适合于的ASIC种类较多,其中西门子的SPC3 通信协议芯片比较具有代表性。SPC3的内部结构示意图如图1所示。

SPC3集成了DP协议中的FDL层?它可以承担通信部分的微处理器负载?从而实现DP的通信处理。微处理器操作SPC3 芯片就像操作它的内部RAM一样。SPC3能保障报文的有效性?并可满足整个报文的一致性数据交换。总线接口是个可参数化的同步/异步8位接口,适合于Motorola 和Intel 微控制器/ 处理器。SPC3内部集成了1.5kB的双口RAM,整个RAM 采用8字节的段结构方式,共分成192段,所有需要分配地址的BUF指针必须指向段的开头。DP通信的服务存取点由SPC3自动建立,呈现在用户面前的各种报文信息就是不同BUF的内部数据。用户可以通过总线接口访问SPC3的内部RAM。

SPC3的内部看门狗定时器可工作于3 种不同状态?波特率监测、波特率控制和DP控制状态。内部的UART可实现串并数据流的相互转变。SPC3可自动标识总线的波特率(范围为9.6k~12Mbps) 。空闲定时器用于控制串行总线电缆上的总线定时,微序列器(MS ?Micro Sequencer) 则控制整个SPC3的工作过程。

SPC3内部的1.5kB双口RAM的地址空间从00H到5FFH,以8字节为一个单元,共分成192段,按其功能可分为以下三个区域:

(1)从00H到015H为方式设定和状态指示寄存器区域。其中中断请求寄存器可读可写?写时主要用于调试。必须配置的还有中断屏蔽寄存器、工作模式寄存器0和1、用于波特率控制的看门狗定时寄存器以及最小延迟时间寄存器。用于指示SPC3工作情况的寄存器有中断请求和中断发生寄存器、状态寄存器、输入BUF、输出BUF 和诊断BUF的状态寄存器。

(2)从016H到03FH为配置参数区域。各种BUF的指针与长度(包括本站地址、地址允许改变变量、用户看门狗值和设备标识号)均在此区域设置。这些BUF包括三个输入BUF、三个输出BUF、两个诊断BUF、两个辅助BUF、一个配置BUF、一个参数BUF 和一个地址设置BUF。这里的输入输出是相对于主站而言。需注意各个BUF的指针定义,此处的指针指的是段序号。由于各个BUF 的长度必须是8字节的整数倍?即各BUF的起始地址能被8整除?所以可以用段序号?0~191?标识出具体的BUF 起始地址?例如参数BUF的起始地址3E0H可以用指针7CH 表示。这种方法不仅可节约存储空间?而且简洁明了。

(3)从040H到5FFH的1472字节为用户区域,可用于接收来自I/O应用和主站的数据。这些BUF的配置(包括BUF的长度和初始地址)必须在SPC3的“离线(offline) ”状态下完成。用户可以采用中断或者轮循方式通过I/O与SPC3交互数据。

3 SPC3与AT89C51的接口

SPC3有8根数据线和11根地址线,其中低8位地址线与数据线复用,可以接80C32 、80C166、80C165、HC11、HC16、HC196等单片机,SPC3本身具有地址锁存功能?不需另加锁存器,自身可以产生片选信号。芯片配置是借助SPC3的两个输入引脚XINT/MOT和MODE 进行的。XINT/MOT表示Intel和Motorola等芯片类别。MODE表示SPC3的工作模式,其中包括同步和异步。当其工作在同步模式时,SPC3的XREADY(请求外部等待)引脚无效。

本设计中使用的单片机是AT89C51,其与SPC3的接口电路如图2所示。应当注意的是,当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采用P0和P2口扩展外部存储器?P0口作为数据线和低8位地址线?P2口作为高8位地址线。

SPC3 用于进行串行通信的4个管脚分别为XCTS、RTS、TXD和RXD。XCTS的含义为清除发送?是SPC3的输入信号?表示允许SPC3发送数据。此信号为低电平有效?且应一直维持低电平。RTS为SPC3 的请求发送信号?通常接到收发器的输出使能端。RXD 和TXD分别为串行接收和发送端口。

为提高系统的抗干扰性?SPC3内部线路必须与物理接口在电气上隔离。输入输出通道上的电气隔离采用的是6N137高速光耦。电源的电气隔离则采用DCP0505,这是一种5V到5V的隔离转换电源。PROFIBUS通信协议可保障通信的高可靠性?但应以硬件和软件设计为基础。在通信接口设计时?必须遵循一定的规范?如信号的隔离、总线接口与收发间应避免线路过长、电源的滤波处理、收发器和光耦的限流电阻及负载电阻必须与收发器光耦配合适当等。本设计选用6N137的高速光耦,SN75ALS176的收发器,通信速率可达6Mbps,可用于大部分应用系统。如果用户需要更高的通信速率,可以将光耦换成可达25M波特率的HCPL-7720/7721。SPC3与收发器的连接图见图3所示。

4 软件实现

在进行软件设计时,首先要对SPC3内部RAM的000H~03DH进行初始化。在为指针变量赋值时要注意:指针是段序号,且应能被8整除。SPC3不允许地址溢出。也就是说,如果用户读写超过了存储范围,就要减掉400H,从而访问一个新地址。这样可节省存储空间,但禁止覆 过程参数。如果由于缓冲器初始化错误而使微处理器溢出?也要执行同样的过程。初始化时?进行第一次数据配置的数据格式如下?

17H=8字节输入,无连续性?

27H=8字节输出,无连续性。

该数据格式定义了输入和输出数据的长度。而诊断则分为状态诊断和外部诊断,其中状态诊断由SPC3自动执行?无需用户考虑。用户只需编写外部诊断程序即可。

因为SPC3集成了完整的DP协议,所以在与主站通信时,AT89C51不用参与处理DP 状态机。它主要负责存储和处理主站送来的数据?以及组织送往主站的数据。从站的程序流程图如图4 所示,其中的SPC3初始化包括设置SPC3允许的中断、写入从站识别号和地址、设置SPC3方式寄存器、设置诊断缓冲区、参数缓冲区、配置缓冲区、地址缓冲区和初始长度,并根据以上初始值求出各个缓冲区的指针及辅助缓冲区的指针。然后根据传输的数据长度确定输出缓冲区、输入缓冲区及指针。中断程序则主要用来处理PRM报文、CFG报文、SSA报文等。

5 结束语

本文主要从研发的角度介绍了PROFIBUS-DP 从站通信接口的硬件和软件设计。其中硬件基本上属于标准线路?只是由于速度的要求?对有些芯片要求较高。如果用户对通信速度没有过高的要求?完全可以选用较普通的芯片。而软件则是开发DP接口的难点?应在深入了解SPC3芯片机理及PROFIBUS-DP状态机的基础上进行开发。



评论


相关推荐

技术专区

关闭