PROFIBUS-DP总线I/O设备开发及应用
总线I/O是现场总线远程I/O的简称,是基于现场总线控制系统FCS中的主要设备,PROFIBUS-DP是总线I/O的主流通信协议。总线I/O的主要功能分为输入、输出两部分。输入是采集现场模拟信号(如4~20 mA)和开关量信号(如24 V DC)转换成为数字量并按照通信协议传送到现场总线。输出是将现场总线通信数据转换成模拟输出和开关量输出。PROFIBUS-DP总线I/O设备以从站的形式存在。
PROFIBUS – DP的DP即Decentralized Periphery.它具有高速低成本,用于设备级控制系统与分散式I/O的通信。它与PROFIBUS-PA(Process Automation )、PROFIBUS-FMS (Fieldbus Message Specification )共同组成了PROFIBUS标准。用于现场层的高速数据传送。主站周期地读取从站的输入信息并周期地向从站发送输出信息。总线循环时间必须要比主站(PLC)程序循环时间短。除周期性用户数据传输外,PROFIBUS-DP还提供智能化设备所需的非周期性通信以进行组态。诊断和报警处理。
1 总线I/O设备结构
总线I/O的开发可分为两大部分,一是从站功能单元,该部分是设备的主体;另一部分是通信接口单元。图 1是典型开关量总线I/O的结构图。一个总线I/O设备可能需要多种总线接口,对于设备的开发人员来讲,他们专注于设备功能单元的核心技术,如果让他们从头开发各种通信接口,势必会分散设备开发人员的精力,增加开发成本和开发周期。另外,通信协议的一致性认证也是一个比较费时和麻烦的事情。使用现有的成熟的通信接口模块无疑是解决这一问题的最好选择,它具有设计快捷、成本低廉、安全可靠等优点。
2 XGate-DPS10简介
XGate-DPS10嵌入式从站模块适用于自主开发PROFIBUS-DP从站设备,且不需要掌握PROFIBUS-DP相关理论知识。 XGate-DPS10模块提供一个全隔离PROFIBUS通讯接口,支持高达12Mbps通讯速率,集成增强的ESD保护,可以保护用户设备在网络中可靠工作。用户通过串行UART/SPI接口来访问XGate-DPS10模块,实现高速实时的数据传输。 XGate-DPS10提供中断指示,大大减轻用户MCU负担,有效增强总线的实时性。 XGate-DPS10模块提供有配套的编程示例(C代码)、GSD配置文件、电路实例等开发资料,可以帮助用户快速完成PROFIBUS产品项目。 XGate-DPS10及其接口如图2所示。
XGate-DPS10的主要功能特点如下:
· PROFIBUS-DP 协议,符合EN50170 V2 和IEC61158标准,支持DP-V1;
· 总线传输率自适应,最大传输率12 Mb/s,支持最大244 B I/O;
· 支持用户参数化功能, 提高总线效率,最大用户参数长度238 B;
· 支持最大244 B用户诊断;
· 3.3 V~5 V系统兼容,配套RSM485P隔离收发器使用;
· 可选的串行UART/SPI接口,支持波特率自设置;
· 数据交换CRC检验功能,保证数据安全可靠;
· 提供完整的开发包和应用解决方案;
· 单电源5 V供电,最大工作电流≤75 mA;
· 工作环境温度:-40 ℃~+85 ℃;
· 外形尺寸:DIP24封装,32 mm×20.4 mm×11 mm.
3 硬件设计
工业现场中,总线I/O的另一种应用是作为PLC的I/O扩展,总线I/O显着优点是可以集成第三方产品,使整体PLC的性价比达到最优;另一个优点是I/O的远程布置,可以组成分布式系统。本期及下期将以XGate-DPS10的应用为例设计具有8路开关量输入、8路开关量输出、16位触发计数器的总线I/O设备。
图3是XGate-DPS10的外围连接电路。U3是XGate-DPS10的引脚分配,本例使用UART接口(默认接口),传输率19 200 b/s.如果使用其他传输率或接口需要使用软件配置,此时ISP/CFG引脚电路是必需的,ISP/CFG引脚同时用于在线升级固件;不使用ISP /CFG,则必须上拉到VCC.模块指示灯指示了模块的状态及通信的状况,也可以根据实际情况来设置指示灯。RSM485P是隔离收发器,并提供总线终端电源。总线端ESD保护器件不是必须的,RSM485P提供了增强的ESD保护。如图2所示,引脚TXD/MOSI、RXD/NSS分别连接到MCU的 RXD、TXD,INT连接到MCU的外部中断,注意RXD和TXD的交叉,这与XGate-DPS10与RSM485P的RXD和TXD连接法是不同的。PROFIBUS总线连接器为DB9头,RxD/TxD-P和RxD/TxD-N分别接3、8脚,方向控制信号CNTR-P接4脚。
工业产品中,开关量I/O设备一般都是采用了隔离+驱动电路来实现的。本文旨在介绍如何设计设备通信接口,对功能单元硬件只做了示例性的设计,为方便演示,开关量输入使用8位拨码开关代替,开关量输出使用8位LED灯代替,16位计数器使用MCU内部计数器模拟,如图 4所示。主MCU部分可以使用拨码开关等来获取从站的
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)