基于C167的PROFlBUS-DP智能从站的设计
扫描二维码
随时随地手机看文章
摘要:设计了基于C167的PROFIBUS-DP总线协议的智能从站。依据系统所要实现的功能,提出了使用PRO-FIBUS-DP协议智能接口芯片SPC3和软件的实现方案。以C167与SPC3为核心设计了其软硬件系统,经调试满足了设计要求,目前已在实际工程中得到应用。
关键词:PROFIBUS-DP;智能从站;C167;SPC3
现场总线控制系统已逐渐发展成为继集散控制系统之后的新一代控制系统,在众多的现场总线标准中,过程现场总线(PROFIBUS)标准以其国际化、开放式、不依赖设备生产商的种种优势,成为当前争相研究的对象。
PROFIBUS广泛适用于制造业自动化、流程工业自动化和楼宇、交通电力等领域的自动化,是一种用于工厂自动化车间级监控和现场设备层数据通信与控制的现场总线技术。可实现现场设备层到车间级监控的分散式数字控制和现场通信网络,从而为实现工厂综合自动化和现场设备智能化提供了可行的解决方案。
与其它现场总线系统相比,PROFIBUS的优势在于具有稳定的国际标准EN50170作保证,并经实际应用验证其具有普遍性。目前已应用的领域包括加工制造、过程控制和自动化等。PROFIBUS-DP是开放的,与制造商无关,无知识产权保护的标准。任何人都可以获得这个标准并设计各自的软硬件方案。原则上,PROFIBUS-DP协议在任何微处理机器上都可以实现,在微处理器内部或外部安装串行通信接口即可完成。利用PROFIBUS-DP模型中的服务访问点,通过单片机编程来实现PROFIBUS-DP的状态机制。
PROFIBUS协议结构是根据IS07498国际标准,以开放式系统互联网络(Open System Interconnection-OSI)作为参考模型的。该模型共有7层,文中所探讨的PROFIBUS-DP系统定义了第1,2层和用户接口。使用单片机C167和智能通讯芯片SPC3设计了PROFIBUS-DP智能从站的硬件电路及其控制软件,该系统即将在西北电网与华北电网联网的灵宝背靠背直流工程中投入使用。
1 PROFIBUS-DP系统配置和设备类型
PROFIBUS-DP允许构成单主站或多主站系统。在同一总线上最多可连接126个站点。系统配置的描述包括:站数、站地址、输入/输出地址、输入/输出数据格式、诊断信息格式及所使用的总线参数。每个PROFIBUS-DP系统可包括以下几种不同类型设备:
(1)一级DP主站(DPM1):一级DP主站是中央控制器,它在预定的信息周期内与分散的站(如DP从站)交换信息,典型的DPM1如PLC或PC;
(2)二级DP主站(DPM2):二级DP主站是编程器、组态设备或操作面板,在DP系统组态操作时使用,完成系统操作和监视目的;
(3)DP从站:DP从站是进行输入和输出信息采集和发送的外围设备(I/O设备、驱动器、HMI、阀门等);
(4)单主站系统:在总线系统的运行阶段,只有一个活动主站;
(5)多主站系统:总线上连有多个主站。这些主站与各自从站构成相互独立的子系统。每个子系统包括一个DPM1、指定的若干从站及可能的DPM2设备。
任何一个主站均可读取DP从站的输入/输出映象,但只有一个DP主站允许对DP从站写入数据。
DPM1和相关DP从站之间的用户数据传输是由DPM1按照确定的递归顺序自动进行。在对总线系统进行组态时,用户对DP从站与DPM1的关系作出规定,确定哪些DP从站被纳入信息交换的循环周期,哪些被排斥在外。
DPM1和DP从站间的数据传送分3个阶段:参数设定、组态、数据交换。在参数设定阶段,每个从站将自己的实际组态数据与从DPM1接收到的组态数据进行比较。只有当实际数据与所需的组态数据相匹配时,DP从站才进入用户数据传输阶段。因此,设备类型、数据格式、长度以及输入输出数量必须与实际组态一致。
2 电路主要器件介绍
从站的硬件电路采用西门子C167单片机和智能通讯芯片SPC3。
2.1 C167微控制芯片
C167SR是西门子C16X系列第二代CMOS微处理器。它兼容16位CPU的高性能(高达1 000万条指令每秒),并具有智能外围设备扩展功能。它的主要优点体现在:增强了IO口的应用,提供了附加的内部高速RAM,CAN总线控制器和锁相环PLL等功能;继承了RISC处理器的优点,而克服了CISC处理器在嵌入式应用中的瓶颈;在指令处理上,采用4级指令流水线管道结构;在存储管理上,统一线性地址空间可达16 MB,具有段代码、页数据式管理机制;采用寄存器池,池间的切换时间只要80 ns;16位乘法400 ns,32位除法800 ns,中断响应时间最长400 ns;外部事件控制器PEC服务具有类似DMA的功能,可实现存储器与外设之间的高速数据传输;丰富的在片外设:2 kB RAM、10路A/D、111路I/O、5个定时器/计数器、16个比较/捕获单元、2个串行通信接口、在片的Watchdog等。
CPU的内核是由一个4级流水线指令管道,一个16位的算术逻辑单元以及指示作用的SFR构成。另外还专有做乘法,除法运算的硬件单元,一个位屏蔽器,一个移位器。基于这些硬件保证,大多数C167的指令在20 MHz时钟频率下,只需要1个时钟周期,也就是100 ns就能完成。例如,移位和循环指令通常只要一个时钟周期,而和移位的数目没关系。被优化的乘除法指令使得执行速度快了很多,它分成了2个部分:16×16位的乘法需要5个周期,32/16位的除法需要10个周期。另一个管道优化,即所谓的跳缓存,它将重复的循环跳转指令周期由2个减到1个。CPU可以对位于片上RAM的特殊寄存器进行16位的直接处理。CPU每访问一次寄存器组,其基址由索引指针寄存器指定。寄存器组数目仅仅受限于内部RAM的可用空间。对于简单的参数传递,一组寄存器可能会覆盖其它数据。最高达2 kB的系统堆栈用来存储临时数据。此堆栈也是位于片上RAM,CPU对其通过堆栈指针寄存器进行访问。两个独立的特殊功能寄存器,STKOV以及STKUN,通过比较堆栈内的值来检测被访问的堆栈是否上溢和下溢,其基本功能模块,如图l所示。
2.2 SPC3智能通讯芯片
SPC3是用于从站开发的智能通讯芯片,它支持PROFIBUS-DP协议。SPC3内部集成了1.5 kB的双口RAM,其地址空间为00H~5FFH。以功能区分,可分为3个区域。
内部锁存器/寄存器位于前21个地址。主要包括:方式寄存器1和寄存器O,中断控制寄存器,状态寄存器,以及输入缓冲器、输出缓冲器和诊断缓冲器各自的状态寄存器。从016H~03FH为配置参数区域,各种BUF的指针与长度(包括本站地址、地址允许改变变量、用户看门狗值和设备标识号)在此区域设置。整个缓冲器结构就是基于这些参数写的。用户缓冲器区域位于从40H开始的单元,用来接收来自IO应用和主站的数据。
SPC3有14个中断源,各个中断源没有优先级,而是通过中断屏蔽寄存器和中断响应寄存器实现中断。诊断分为外部诊断和状态诊断,从站地址可以是固定的,也可以由主站设置。用户看门狗计数器是一个16位的内部存储器单元。初始值由“RUserWdValue”单元给定,每接收一个数据报文,计数器减1。当减到0000H时,SPC3进入“等待参数化”状态,DP状态机制执行“离开主站”命令。另外,SPC3内部还集成了一个看门狗计数器,可工作于3种不同的状态:波特率监测、波特率控制和DP控制。SPC3还能自动标识总线波特率,范围为0.009 6~12 MHz。
3 PROFIBUS-DP智能从站设计
3.1 系统设计
从站与主站之间的通信连接示意图,如图2所示。图2描述了主站与从站的连接。可以看出SPC3作为一个重要的媒介连接主站与从站,其数据交换的标准为RS485。
3.2 硬件电路设计
图3为C167与SPC3的接口电路。SPC3通过一块内置1.5 kB双口RAM与CPU接口,它支持多种CPU。SPC3中双口RAM的地址为1000H~15FFH。
SPC3的AB7~AB0管脚为地址总线,DB7~DB0管脚为数据总线,ALE管脚是地址锁存使能,XWR管脚为写信号,XRD管脚为读信号,XINT管脚用于进行中断控制,RESET管脚的功能是接CPU RESET输入,CLK管脚为时钟脉冲输入,所接的时钟频率为48 MHz。SPC3的右侧XCS管脚的作用是进行片选,XTEST0和XTEST1管脚必须接5 V电源,DIVIDER管脚是用来设置CLKOUT的分频系数,AB8~AB10管脚为地址总线,VDD接5 V电源,VSS接地,CLKOUT管脚为分频时钟脉冲输出,XDATAEXCH管脚为PROFIBUS-DP的数据交换状态,XREADY/XDTACK管脚为外部CPU的准备好信号,TXD管脚是串行发送端口,RXD管脚为串行接收端口。
C167的P27~P20管脚为地址总线,P07~P00管脚为数据总线,ALE管脚的功能是地址锁存使能;WR管脚的用途是外部数据存储器写信号,低电平有效;RD管脚的用途是外部数据存储器读信号,低电平有效;INT0管脚为外部中断0,低电平有效;RST管脚的用途是复位,当晶振在运行中,只要复位管脚出现2个机器周期高电平即可复位,内部有扩散电阻连接到VSS,仅需要外接一个电容到VCC即可实现上电复位。
图3中的模块1为光电隔离,模块2为驱动器,SPC3过光电隔离后与总线驱动器相连,具体的连接电路,如图4所示。
图4为PROFIBUS-DP的RS-485传输接口电路。其中,M和2M为不同的电源地,P5,2P5为两组不共地的+5 V电源。74HCl32为施密特与非门。RS485总线驱动器一侧与9针D型插座相连,另一侧通过光耦与SPC3相连。HCPL-0601和HCPL-7721是能够满足12 MB·s-1波特率的光耦,采用光电隔离主要是为了消除来自外界的干扰。
3.3 软件设计
由于SPC3集成了完整的PROFIBUS-DP协议,因此C167不用参与处理PROFIBUS-DP状态机,P89C61X2的主要任务就是根据SPC3产生的中断,对SPC3接受到的主站发出的输出数据转存,组织要通过SPC3发给主站的数据,并根据要求组织外部诊断等。
主程序和中断程序的流程图,分别如图5和图6所示。
主程序中的SPC3初始化包括设置SPC3允许的中断,写入从站识别号和地址,设置SPC3方式寄存器,设置诊断缓冲区、参数缓冲区、配置缓冲区、地址缓冲区和初始长度,并根据以上初始值求出各个缓冲区的指针及辅助缓冲区的指针。根据传输的数据长度,确定输出缓冲区,输入缓冲区和指针。
中断程序主要用来处理PRM报文,CFG报文和SSA报文。
另外,PROFIBUS设备具有不同的性能特点,为达到PROFIBUS简单的即插即用配置,PROFIBUS设备的特性均在电子设备数据库文件(GSD)中具体说明。标准化的GSD数据将通信扩大到操作员控制级,使用基于GSD的组态工具可将不同厂商生产的设备集成在同一总线系统中,简单而且用户界面友好。
4 结束语
PROFIBUS-DP开发器件的选择比较灵活。在对数据传输速度有较高要求的应用场合,必须根据应用需求选择器件,尤其是对处理器、RS485接口器件和收发器芯片更要慎重选择,这是快速数据传输的前提。