作者:杨冬梅,陈思宁
详细探讨ProfIbus-DP协议结构、通信机理厦技术特性,并将Profihus-DP技术与嵌入式技术相结合,研制高开放性、实时性和可靠性的Profibus-DP主站。
现场总线是当今自动化领域的热点之一,它的出现标志着工业控制技术领域又一个新时代的开始。在众多的现场总线产品中,作为欧洲首屈一指的开放式现场总线Profibus(Process Fieldbus)已经被全世界所接受,成为国际化的开放式现场总线标准,并和基金会现场总线FF成为现场总线的两大体系,广泛应用于加工制造、过程和建筑自动化领域中。
嵌入式系统以应用为中心,软硬件可裁剪,适用于应用系统对功能,可靠性、成本、体积、功耗有严格要求的场合,其应用遍及工业控制、军事、网络、信息家电、金融等各个领域。
将Profibus-DP技术与嵌入式软硬件相结合将大大提升系统的品质,提高系统的开放性、实时性和可靠性。
1 Profibus-DP协议结构及技术特性
Profibus根据应用特点可分为:Profibus-FMS (Fieldbus Message Specification)、Profibus-DP(Decen-tralized Periphery)和Profibus-PA(Process Automation)三个兼容版本。
Profibus-FMS用于完成车间级通用性通信任务,适用于中等传输速度的监控网络以及太范围复杂的通信系统。Profibus-DP用于实现设备一级的高速数据通信,中央控制器通过高速串行线与分散的现场设备进行通信,是一种高速、低成本的通信系统,适用于分布式控制系统的高速数据传输。
这类系统的构成包括DP 1类主站(DPMl,中央可编程控制器)、DP 2类主站(DPM2,可编程、组态、诊断的设备)和DP从站(进行输入/输出信息采集/发送的设备)。Profibus-PA是Profibus-DP向现场的延伸,它具有本质安全的特性,适用于本质安全要求较高的场合和总线供电的站点。
Profibus协议结构在OSI参考模型上进行了一定的简化,协议结构如图l所示,这种结构保证了快速而有效的数据传输以及系统的低成本性。
Profibus-DP使用了物理层、数据链路层和用户层。物理层规定了线路介质、物理连接的类型和电气特性。Profihus-DP通常采用RS485传输技术,传输介质为屏蔽的双绞铜线电缆,传输速度可达9.6 kbps~12 Mbps。在电磁干扰很大或传输距离很长的情况下,可以使用光纤传输技术。
现场总线数据链路层FDL规定介质访问控制、帧格式、服务内容以及物理层、数据链路层的总线管理服务FMAl/2。介质访问控制(MAC)层描述了Profibus采用的混合访问方式,即主站与主站之间的令牌传递方式,主站与从站之间的主一从方式,主站通过获取令牌获得访问控制权。Profibus规定帧字符由11位组成:开始位O、8位数据、偶校验位和停止位l。FDL层提供4种服务:SDA、SRD、SDN、CsRD。DP总线的传输依靠SDN和SRD这两种FDL服务。FMAl/2的功能主要有强制复位FDL和PHY、设定参数值、读状态、读事件及进行配置等。
用户层包括直接数据链路映像DDLM和用户接口/用户。用户接口详细说明了各种不同Profibus-DP设备的设备行为,DDLM将所有在用户接口中传送的功能都映射到现场总线数据链路层FDL和FMAl/2服务。
2 Profibus-DP通信机理
Profibus-DP的主要日的是在功能强大的主站与若干简单的从站之间进行快速循环的数据交换,因此系统主要完成主一从通信任务,此外Profibus的混合总线访问方式也允许1类主站与2类主站之间的主一主通信。
在Profibus-DP系统中。DPMl与DP从站之间的通信类型主要有:读取从站的诊断信息、参数化设置和组态、循环的用户数据交换。Profibus-DP主一从通信过程,大致可以分为如下几个阶段:主站对从站的第一次诊断,参数化从站,组态配置从站,主站对从站的第二次诊断以及主站与从站之间的循环数据交换。
对于多主站通信系统,DPMl和DPM2之间的通信有:读取有关DP从站的诊断信息,参数的上传和下载,激活总线参数(无需确认),激括与解除激括参数集,选择DPMl的操作模式等。DPM2与从站之间的通信为非循环的,包括读取从站的通信接口配置、输入/输出数据和设置从站地址。
3 Profibus-DP现场总线主站总体设计
Profibus是开放的标准。原则上,该协议可以在任何处理器上实现,在处理器内部或者外部安装异步串行通信接口(UART)即可。基于上述特点,在开发Profibus-DP主站时,主要有以下两种解决方案:
①由微处理器运行完整的协议栈来实现。这种方案完全由软件来实现Profibus协议,开发整个协议栈软件难度很大,大多数开发者一般都向专门的开发商购买。
②由协议ASIC芯片外加其扩展固化程序来实现。这种实现方案是采用最多的一种,由专用的ASIC芯片实现Profibus协议数据链路层的介质访问控制功能;而数据链路层的其他功能则由微处理器运行其扩展固化程序实现。目前可用于这种方案的ASIC芯片主要有3种:Sie-mens公司的ASPC2、M2C公司的IXl和IAM公司的PBM。
在应用此方案实现主站时,可以有两种选择:一是向上述3个公司购买完整的开发平台,包括ASIC芯片、固化程序以及相应的硬件与开发软件;二是只购买ASIC芯片以及必要的软硬件开发工具,固化程序由自己编写实现,此法开发难度大,开发周期长。采用后者实现主站的典型例子是HMS公司,由其开发的Anybus-M主站模块采用了Siemens公司的ASPC2芯片,但扩展固化程序由HMS公司自己编写,组成一个完整的模块后提供给其他开发者。为了缩短开发周期,本主站的设计就是采用HMS公司的Anybus-M主站接口模块,从而减小在组建DP主站时软硬件方面的工作量。
本设计组建的是Profibus-DP单主站系统,An5rbus-M模块在初始化时可以设置为DPMl和DPM2,因此研制的主站除了实现DPMl与DP从站之间的主一从功能(包括读取DP从站的诊断信息、设置从站参数、通信接口配置检查、循环数据交换以及全局控制命令)外,还要实现DPM2与DP从站的主-从功能(包括读取从站的通信接口配置、输入/输出数据,设置从站地址等)。
3.1 硬件设计
Profibus-DP主站硬件电路图如图2所示。系统硬件主要由基于PC/104总线的CPU模块SCM7020B、Anybus-M模块、CPLD逻辑译码电路和复位电路组成。
Anybus-M主站接口模块通过一个DPRAM与外部处理器接口,PC/104通过对此DPRAM的访问来实现主站与从站的数据交换,以及对主站模块的访问控制。通过中断或者BUSY信号线来解决PC/104与Anybus-M主站接口模块同时访问DPRAM的冲突问题。CPLD用于实现地址译码,产生片选信号CS和读/写控制信号。复位电路用于实现PC/104及Anybus-M模块的复位。
3.1.1 Anybus-M主站接口模块
Anybus-M主站接口模块已经实现了必要的网络协议,板上自带微处理器,独立于自动化设备完成通信协议,同时支持DP和DPVl,具有4KB DPRAM,保证了最多1536字节循环输入/输出数据的高速传输。此外,该模块可以集成在工业自动化设备中,实现与工业现场装置的通信,典型的应用包括人机界面、PLC、数控设备、机器人以及智能可视化设备等。
图3为Anybus-M主站模块内部结构简图,分为应用程序接口和现场总线接口两个部分。
①应用程序接口。模块与微处理器的接口为4KBDPRAM。DPRAM根据其应用被划分为以下几个区域:Input/Output Data Area,应用程序向Input区域写入发送给从站的数据,从Output区域读取接收的从站数据;Mailbox Input/Output Area,应用程序通过发送信箱命令指示模块执行某一具体操作(如初始化、读取从站诊断、设置从站地址等),同时从信箱输出区域读取模块的响应;Fieldbus Specific Arc,a,此区域存储主站和从站网络上的信息,如从站组态列表、数据传输列表、从站诊断列表、主站状态表等;Corltrol Register Area,此区域存储模块的版本信息、初始化参数、现场总线类型、事件通知原因等信息;Handshake Registers,用于区域的分配和回收、事件通知、发送/接收信箱命令等。
②现场总线接口。该模块已完成现场总线底层协议而无需应用程序的干预;提供一个RS485接口,通过此接口将模块连接到Profibus-DP网络中。
3.1.2 基于PC/104总线的CPU模块SGM7020B
PC/104作为一种专门为嵌入式控制而定义的工业控制总线,是一种优化的小型堆栈式结构的嵌入式控制系统。它体积小,结构紧凑,可嵌入到对体积和功耗要求都较高的产品中,目前在工业控制领域中应用越来越广泛。
SCMT020B是采用PC/104总线的嵌入式微处理器,它在板集成了10/100Base-T以太网接口和高性能图形处理器;采用x86兼容的64位第六代处理器,最高运行速度可达300 MHz,其内存地址D2000~DFFF(8KB)、C8000~CFFF(32 KB)空闲,可以分配给外部扩展RAM;中断IRQ5、IRQ9、IRQl0可用,可以外接其他中断源。
3.2 软件设计
软件设计是整个主站设计的关键和难点。为了提高整个系统的实时性和可靠性,在PC/104上运行世界上广泛使用的32位实时操作系统VxWorks。软件设计主要完成VxWorks设备驱动程序的编写、网络配置的设定与下载以及Anybus-M主站模块的访问控制。
3. 2.1 VxWorks设备驱动程序的编写
应用程序通过驱动程序与硬件进行数据通信。驱动系统硬件工作是由BSP完成的,BSP中的驱动程序管理特定目标环境中的设备,对其进行控制和初始化。BSP向VxWorks提供与硬件环境的接口,负责完成加电时硬件初始化,为VxWorks访问硬件驱动程序提供支持,将Vx-Works中与硬件相关以及与硬件无关的软件进行集成。
3.2.2 网络配置的设定与下载
网络的组态可以通过Anybus提供的Anybus Net-Tool配置软件来实现,也可以通过信箱命令(mailboxmessage)来实现。
Anybus NetTool配嚣软件基于Windows环境,通过拖放式操作实现对Profibus网络的配置和优化。此外,该工具还具有对I/O数据的监测、修改等在线诊断功能,此独立的配置上具可以作为Windows OCX组件集成在第三方软件中。通过Anybus-M主站模块的ConfigurationInterfacc(RS232串行接口)可以下载配置好的结果。
发送信箱命令方式需要开发人员熟悉Profibus-DP通信协议的具体细节,对网络的整个组态进行配置,设置主站总线参数集、主站用户参数集、从站参数集、组态数据集、输入/输出地址的分配、输入/输出数据格式和从站用户数据单元集等,并在应用程序中通过发送信箱命令将数据库装载到模块中。
3.2.3 Anybus-M主站模块的访问控制
Anybus-M主站模块提供给应用程序一个4 KB/2KB的DPRAM,应用程序通过DPRAM实现对主站模块的访问控制。应用程序分为以下几个部分。
①初始化程序模块:包括硬件初始化和软件初始化。硬件初始化包括DPRAM检查、通过信箱命令进行硬件检查。软件初始化用于设置基本操作参数,如DPRAM input/output长度、操作模式、DPRAM模式(4KB/2 KB)等。
②中断处理程序模块;接收到中断信号时,读取握手寄存器的内容,判断产生中断的原因(如事件通知、信箱通知、模块被初始化、启动中断、区域分配响应等);根据中断原因,转入不同的中断处理程序。
③主程序模块:在主程序中循环调用信箱处理和数据交换程序。信箱处理程序负责发送信箱命令和读取响应信息;数据交换程序负责主站读/写从站数据,以及必要的控制寄存器区域访问。
结语
目前,国外Profibus-DP的研究开展较多,应用非常广泛,但是国内应用多限于对国外产品的系统集成,尤其是针对Profibus-DP主站产品的研究开发甚少,因此开发具有自主知识产权的主站具有重大的意义。
本文在研究ProfIbus-DP现场总线标准、总线协议、嵌入式技术的基础上,提出了高实时性、高可靠性的Profibus-DP主站的实现方案。符合国际标准的Profibus现场总线的推广应用,可以方便地解决计算机监控系统中不同厂家产品的互连问题,对计算机监控系统向“以监控设备为对象分布的、基于异构系统互连的分布式监控系统”方向发展具有重要的推动作用。