微波EDA网,见证研发工程师的成长!
首页 > 射频和无线通信 > 射频无线通信文库 > 基于PROFIBUS-DP协议模块的智能执行器

基于PROFIBUS-DP协议模块的智能执行器

时间:03-14 来源:互联网 点击:

引言
在众多的工业现场总线中,Profibus总线由于有众多厂商的支持,且产品比较丰富,在制造业自动化、流程工业自动化和楼宇、交通、电力自动化等领域有着广泛的应用。而对于很多不具备Profibus接口的传统设备,要使其接入总线网络、达到自动控制的目的,就必须在该设备和Profibus总线之间做一个协议接口模块。
本文结合对传统电动执行器升级改造的工程实践,介绍了一种基于Profibus-DP的接口模块的具体设计。Profibus-DP作为Profibus现场总线标准的子集,主要用于设备级控制系统与分散式I/0的通信。它具有传输介质简单、安装维护方便、安全性高等优点。RS485传输是最常用的一种传输技术,本设计也采用这种传输方式。整个系统的传输介质为屏蔽双绞线。本文主要讨论采用专用协议芯片VPC3开发从站接口的方案。该方案需要在深入了解VPC3的工作原理及DP状态机原理的基础上进行开发。

1 硬件设计
系统主要包括指令处理部分和接口部分,如图1所示。指令处理部分完成协议转换以及通信处理;接口部分完成模拟到数字的转换、PROFIBUS-DP接口等。下面简单介绍主要模块的功能。


调试(JTAG):M16C/62P通用通信模块的设计提供一个JATG仿真器,它可以用来进行配置或者是编程。
SRAM模块:当编写比较大的程序(如操作系统)时,M16C的内部RAM可能不够用,此时就可以用外接的SRAM(128K×16位)。
拨码开关:拨码开关用于通信地址方案的实施。PROFIBUS-DP支持的站地址为0~126(共127个),同时为了防止寻址过程发生地址的冲突,所以采用一个8位的拨码开关,用后7位进行128位的寻址。阀门控制器作为PROFIBUS-DP通信的从站,必须有不与其他站冲突的地址。PR-OFIBUS-DP从站通信地址的设计方案有两种:一种是由远程的PROFIBUS-DP主站通过特定的数据通信设定或修改从站地址;另一种是禁止PROF-IBUS-DP主站设定和修改从站地址,从站的地址由从站本地设定。本设计采用的是后一种设计方案,通过一个8位的拨码开关手动设定阀门控制器的地址,然后由中央处理器读入并写入VPC3特定的存储位置。
A/D、D/A等模块:PROFIUBS-DP智能从站通信卡采用4~20 mA/1~5 V模拟信号传输方式,对4~20mA的输入信号(阀位反馈信号)进行校准和量程变换后,将其转换为DP总线输入数据,DP总线输出数据经过校准和量程变换后转换为1~5 V的输出信号(控制输出信号)。由于PROFIUBS-DP通信卡在工作过程中共有两个数据需要在DP总线上传输,因此需要两个数据通道,一个用于16位模拟量输入(A/D),另一个用于16位模拟量输出(D/A)。其中模拟与数字电路之间采用PC417进行光耦隔离。
本设计一共有两个时钟:一个是M16的时钟,M16本身有两个时钟(分别为主时钟和副时钟),但是由于VPC3的特殊性使得M16的时钟必须由VPC3提供;另一个是VPC3的时钟,直接由48 MHz的有源晶振提供。其中,M16的时钟是由VPC3对48 MHz的时钟进行1/4分频得到的12 MHz。
总线接口引脚如表1所列,VPC3的数据传输是在RS485模式下进行的。VPC3通过表1中的信号与光耦隔离驱动相连接。


按键复位:其作用是对M16和VPC3进行复位。该电路用于监视M16的核电压,当核电压低于3.3 V时,该电路产生一个低脉冲信号传送到M16的RESE(10)引脚。除了监视的功能以外,还可以通过按键的闭合来产生一个低脉冲的复位信号。

2 软件设计
对VPC3的软件操作主要包括两个部分:VPC3的初始化、主程序和VPC3的中断处理。主程序和中断处理流程分别如图2和图3所示。

VPC3的初始化程序应放在主程序的前面,而中断处理程序完成CPU对VPC3中断输出的响应。VPC3上电复位之后,在正常工作之前必须进行初始化,以配置各个寄存器。中断处理程序用于处理VPC3发生的各种事件,这些事件包括新的参数报文事件、全局控制命令报文事件、进入或退出数据交换状态事件、新的配置报文事件、新的地址设置报文事件、监测到波特率事件和看门狗溢出事件。
数据输入和输出处理(输入、输出相对于主站而言)及用户诊断数据输入可以放在应用程序主循环中。在一个应用循环申,由应用来刷新输入BUF中的数据,保障所有输入数据是最新的更新数据。而VPC3在接收到由PROFI-BUS-DP主站传送的不同输出数据时,会产生输出标志位(同样位于中断请求字单元中),CPU通过在应用循环中轮询该标志位来进行接收主站数据。对于特定应用的诊断信息,需要实时地传递到主站。主应用程序在应用循环中判断是否有可用的诊断BUF存在,当有空闲BUF时应用程序输入诊断信息,并请求更新。对于实时性要求严格的系统,应采用中断方式进行输出数据和诊断数据处理。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top