2024年4月6日发(作者:荀静槐)
什么是PROFIBUS-DP
在有的电厂或化工厂中应用的控制系统是和利时的,和利时控制系统的控制网采用
Profibus-DP,Profibus-DP工业现场总线与自动化系统各个 I/O 模块及智能设备连接通
讯,实时、快速、高效的完成过程或现场通讯任务。而且我们都在使用,所以有必要了解
一下
什么是PROFIBUS-DP。
1. PROFIBUS-DP 是目前欧洲乃至全球应用最广泛的总线系统, 安装简单、 拓
扑结构多样、 易于实现冗余、通信实时可靠、功能比较完善,卓越的性能使得它适用于各
种工业自动化领域。随着 PROFIBUS-DP 控制系统在我国越来越广泛的应用,将原有的不
符合 DP 标准的设备连接到 PROFIBUS-DP 现场总线网络中,就需要开发 DP 通讯转换
接口。因此,进行 DP 通讯转换接口的开发是很有必要的。本文主要讨论采用 SPC3 通
信协议芯片实现 DP 通讯转换接口的硬件和软件。
2. PROFIBUS-DP 现场总线
2.1 PROFIBUS-DP 基本特性
PROFIBUS-DP 用于现场级的高速数据传输,中央控制器(如 PLC/PC)通过串行连
接与分散的现场设备(如 I/O、驱动器和阀门及测量变送器)进行通信。中央控制器(主
站)期的读取从站的输入信息并周期的向从站发送输出信息,除周期性数据传输外,
PROFIBUS-DP 还提供智能化设备所需的非周期通讯以进行组态、诊断和报警处理。
PROFIBUS-DP 具有快速、即插即用、高效低成本等优点。
2.2 PROFIBUS-DP 总线拓扑
PROFIBUS-DP 系统有两种总线拓扑结构:一种是 RS-485,采用屏蔽双绞线,拓扑
结构为总线型,通信速率为 9.6Kbps~12Mbps;另一种是采用光纤,用于电磁兼容性要求
高和长距要求的场合。
2.3 PROFIBUS-DP 总线协议
PROFIBUS-DP 协议根据 ISO7498 国际标准以开放系统互联网络 OSI 参考模型为
基础, 用了参考模型的第 1 层物理层,第 2 层数据链路层和用户自己定义的用户接口
层,第 3 层到第 7 层未使用;这种精简的结构确保了快速、高效的数据传输。物理层定义
了物理传输特性;数据链路层定义了总线存取协议,直接数据链路映像程序 DDLM 提供对
第 2 层的访问;用户接口规定了 PROFIBUS-DP 设备的应用功能, 以及各种类型
的系统和设备的行为特性。PROFIBUS-DP 总线存取协议,主站之间采用令牌传递方
式,主站与从站之间采用主从方式。令牌传递程序保证每个主站在一个确切规定的时间内
得到总线存取权(令牌),在 PROFIBUS 中,令牌传递仅在各主站之间进行。 主站得到
令牌时可与从站通信, 每个主站均可向从站发送或读取信息。 因此, 有 3 种系统配置:
纯主-从系统、纯主-主系统、混合系统。系统中相应地使用令牌传递方式和主-从方式
完成数据通信。
3. PROFIBUS-DP 通讯转换接口的开 发
3.1 硬件设计
在接口电路的设计中主要有两种方法: 一是使用微处理器利用软件来模拟
PROFIBUS 现场总线协议。 此设计的成本很低,但需要充分了解 PROFIBUS-DP 协议和
运行机制,软件编程工作量大,可靠性不易保证,通信速度也受到限制。二是使用
PROFIBUS 专用协议芯片 ASIC。此设计的成本较高,技术指标高,自主性高,只需了解
ASIC 的工作原理。在本次通讯接口的设计中采用的是第二种方法,使用的是 ASIC 结合
微处理器来完成设计。
为使 PROFIBUS-DP 接口实现简单、方便,达到快速提供产品的目的,采用西门子公
司的专用通信协议芯片 SPC3 完成 PROFIBUS-DP 总线的协议。SPC3 集成了完整的
PROFIBUS-DP 协议,能自动检测总线的波特率从 9.6Kbps 到 12Mbps,集成了 1.5KB
的双口 RAM,它本身具有地址锁存和片选功能,上电后自动执行 PROFIBUS-DP 的从站
状态机。SPC3 内部 1.5KB 双口 RAM 地址空间为 00H~5FFH, 以 8 个字节为一个
单元 (段) , 分成 192 段 (0~191)。按功能可分为三个区域:00H~15H 为处理
器参数区,包括工作模式寄存器、从站最小延迟时间寄存器、内部集成看门狗定时器寄存
器、用于中断的寄存器以及状态寄存器等;16H~3FH 为组织参数区, 用于设置 DP 缓冲
区中各个缓冲块(BUF)的指针(首地址)和长度,并且这些设置必须在 SPC3 的离线状
态下完成;40H~5FFH 为 DP 缓冲区,是 DP 数据的缓冲区,包括 3 个输入数据 BUF、
3 个输出数据 BUF、2 个诊断 BUF、2 个辅助 BUF、设置参数 BUF、通信接口配置 BUF
和可读通信接口配置 BUF 等。SPC3 内部集成一个看门狗定时器,操作于三种不同的状
态:波特率监测、波特率控制和 DP 控制。内部的异步串行收发器(UART)实现串并数
据流的相互转换,空闲定时器控制串行总线电缆上的时序微序列器(MS,
microsequencer)控制整个 SPC3 的工作过程。
PROFIBUS-DP 通讯转换接口采用 89C52 微处理器作为中央处理器, DP 接口芯片
采用 SPC3。 89C52负责将现场采集的信号进行处理、 分析和分类, 然后通过SPC3
传送到PROFIBUS-DP总线, 同时监测SPC3,接收 DP 主站送来的指令和数据,并进
行相应的操作。电路结构示意图如图 1 所示。
图 1 电路结构示意图
图 2 PROFIBUS-DP 状态机
89C52 微处理器扩展了 32KB 的数据存储器(RAM),时钟信号是通过 SPC3 分频
得到的,外围电路还包括了带 EEPROM 的看门狗,模数(A/D)转换、数模(D/A)转
换、DI/DO 接口和数码显示电路。其中,EEPROM 主要用于存放从站地址、ID 号等配
置信息;数码显示电路主要用于显示一些从站信息;而模数A/D)转换、数模(D/A)转换、
DI/DO 接口使通讯转换接口能够胜任 AI、AO、DI、DO 等多方面工作。
PROFIBUS-DP 一般采用 RS-485 传输技术,电缆采用屏蔽双绞线,能够较好地改善
电磁兼容性,传输速率为 9.6Kbps~12Mbps。连接采用符合 PROFIBUS-DP 开放标准
的 9 针 D 型插头,在不带中继时,每分段可以连接 32 个站;在使用中继时,可以扩展
到 127 个站,包括中继站。当信号在总线上传输时,若发生阻抗不连续,将形成信号反
射,导致传输信号畸变,因此在传输线的末端,需要加终端电阻来消除这种阻抗不连续,
所加电阻阻值应尽量接近传输线的特性阻抗。为消除来自零线的干扰,在 SPC3 和
RS-485 收发器之间须加光耦隔离,为提高传输速率,应尽量选择高速光耦合 RS-485 收
发器,本设计采用 HCPL7720 高
速光耦和 SN75ALS176 总线收发器。
3.2 软件设计
软件设计是开发 PROFIBUS-DP 通讯转换接口的一个重要环节,也是其难点所在。开
发者必须了解PROFIBUS-DP 协议,熟悉 SPC3 芯片的工作原理和状态机原理,熟知
SPC3 的各种 DP 服务。PROFIBUS-DP 的状态机描述 DP 从站在每种情况下的行为以
保证它符合一致性,SPC3 内部集成了状态机,用户对状态机的控制是很有限的。
PROFIBUS-DP 状态机如图 2 所示。各个椭圆表示不同的状态,带箭头的连线表示状态
间的转换,而连线上的文字表示状态的转换所需满足的条件。在 POWER_ON 状态, 从
站能从二类主站接收 Set_Slave_Address 报文来改变它的地址, 然后从站进入
Wait_Prm 状态,等待参数化,此状态从站还可以接受 Get_Cfg,Slave_ Diag 报文。参
数化完成后,从站进入 Wait_Cfg 状态,等待 Check_Cfg 报文,另外还可以接收
Slave_Diag,Set_Prm ,Get_Cfg报文。如果 Check_Cfg 完成后,从站将进入 Data_Exch
状态,进行数据通信。此时从站还可接收Writing_Outputs,Reading_Inputs,
Gloable_Control,Slave_Diag,Chk_Diag,Get_Cfg 报文,若组态和数据交换不成功,就
会返回到参数化阶段。Wait_Prm 在对从站进行组态时,必须要编写它的 GSD 文
件。GSD 文件是设备数据库文件,描述 PROFIBUS 设备具有的性能特征。GSD 文
件包括三个部分:总体说明(厂商和设备名称、软硬件版本、支持的波特率等)、DP 主设
备相关的规范(如可连接从设备的最多台数或卸载能力) 、 从设备相关的规范 (如 I/O
通道的数量和类型、 诊断测试的规格及 I/O 数据的一致性信息) 。标准化的 GSD 数据
将通信扩大到操作员控制一级, 使用基于 GSD 的组态工具可将不同厂商生产的设备集成
在一个总线系统中,简单,用户界面友好。SPC3 集成了完整的 PROFIBUS-DP 协议,能
独立地处理 PROFIBUS-DP 协议的所有通信任务,从而大大减轻微处理器的负载,保证系
统的通信速度和数据交换的可靠性。微处理器的主要任务是根据 SPC3 产生的中断,对
SPC3 接收到的主站发送的输出数据进行转存,组织需通过 SPC3 发送给主站的数据,并
根据要求组织外部诊断等。PROFIBUS-DP 通信的服务存取点(SAP)由 SPC3 自动建立,
各种报文信息呈现在用户面前的是不同 BUF 的内部数据。用户可以通过此总线接口访问
这些内部数据。主程序流程图如图 3 所示,其中 SPC3 的初始化包括设置 SPC3 允许的
中断,写入从站识别号和地址,
设置 SPC3 方式寄存器,设置诊断缓冲区、参数缓冲区、配置缓冲区、地址缓冲区、
初始长度,并根据以上初始值求出各个缓冲区的指针及辅助缓冲区的指针,根据传输的数
据长度确定输出缓冲区及指针(在赋各缓冲区指针变量值时,指针值是段序号)。中断程序
流程图如图 4 所示,主要用来处理 PRM 报文、CFG 报文和 SSA 报文。
用汇编语言编写的部分初始化程序如下:
MOV DPTR,#R_DIAG_BUF_PTR1 ; 如果 SPC3 离线,初始化 SPC3
MOV A,#D_DIAG_BUF_PTR1
MOVX @DPTR,A; 诊断缓冲区指针
INC DPTR
MOV A,#D_DIAG_BUF_PTR2
MOVX @DPTR,A
MOV DPTR,#R_CFG_BUF_PTR ; 配置缓冲区指针
MOV A,#D_CFG_BUF_PTR
MOVX @DPTR,A
MOV DPTR,#R_READ_CFG_BUF_PTR
2024年4月6日发(作者:荀静槐)
什么是PROFIBUS-DP
在有的电厂或化工厂中应用的控制系统是和利时的,和利时控制系统的控制网采用
Profibus-DP,Profibus-DP工业现场总线与自动化系统各个 I/O 模块及智能设备连接通
讯,实时、快速、高效的完成过程或现场通讯任务。而且我们都在使用,所以有必要了解
一下
什么是PROFIBUS-DP。
1. PROFIBUS-DP 是目前欧洲乃至全球应用最广泛的总线系统, 安装简单、 拓
扑结构多样、 易于实现冗余、通信实时可靠、功能比较完善,卓越的性能使得它适用于各
种工业自动化领域。随着 PROFIBUS-DP 控制系统在我国越来越广泛的应用,将原有的不
符合 DP 标准的设备连接到 PROFIBUS-DP 现场总线网络中,就需要开发 DP 通讯转换
接口。因此,进行 DP 通讯转换接口的开发是很有必要的。本文主要讨论采用 SPC3 通
信协议芯片实现 DP 通讯转换接口的硬件和软件。
2. PROFIBUS-DP 现场总线
2.1 PROFIBUS-DP 基本特性
PROFIBUS-DP 用于现场级的高速数据传输,中央控制器(如 PLC/PC)通过串行连
接与分散的现场设备(如 I/O、驱动器和阀门及测量变送器)进行通信。中央控制器(主
站)期的读取从站的输入信息并周期的向从站发送输出信息,除周期性数据传输外,
PROFIBUS-DP 还提供智能化设备所需的非周期通讯以进行组态、诊断和报警处理。
PROFIBUS-DP 具有快速、即插即用、高效低成本等优点。
2.2 PROFIBUS-DP 总线拓扑
PROFIBUS-DP 系统有两种总线拓扑结构:一种是 RS-485,采用屏蔽双绞线,拓扑
结构为总线型,通信速率为 9.6Kbps~12Mbps;另一种是采用光纤,用于电磁兼容性要求
高和长距要求的场合。
2.3 PROFIBUS-DP 总线协议
PROFIBUS-DP 协议根据 ISO7498 国际标准以开放系统互联网络 OSI 参考模型为
基础, 用了参考模型的第 1 层物理层,第 2 层数据链路层和用户自己定义的用户接口
层,第 3 层到第 7 层未使用;这种精简的结构确保了快速、高效的数据传输。物理层定义
了物理传输特性;数据链路层定义了总线存取协议,直接数据链路映像程序 DDLM 提供对
第 2 层的访问;用户接口规定了 PROFIBUS-DP 设备的应用功能, 以及各种类型
的系统和设备的行为特性。PROFIBUS-DP 总线存取协议,主站之间采用令牌传递方
式,主站与从站之间采用主从方式。令牌传递程序保证每个主站在一个确切规定的时间内
得到总线存取权(令牌),在 PROFIBUS 中,令牌传递仅在各主站之间进行。 主站得到
令牌时可与从站通信, 每个主站均可向从站发送或读取信息。 因此, 有 3 种系统配置:
纯主-从系统、纯主-主系统、混合系统。系统中相应地使用令牌传递方式和主-从方式
完成数据通信。
3. PROFIBUS-DP 通讯转换接口的开 发
3.1 硬件设计
在接口电路的设计中主要有两种方法: 一是使用微处理器利用软件来模拟
PROFIBUS 现场总线协议。 此设计的成本很低,但需要充分了解 PROFIBUS-DP 协议和
运行机制,软件编程工作量大,可靠性不易保证,通信速度也受到限制。二是使用
PROFIBUS 专用协议芯片 ASIC。此设计的成本较高,技术指标高,自主性高,只需了解
ASIC 的工作原理。在本次通讯接口的设计中采用的是第二种方法,使用的是 ASIC 结合
微处理器来完成设计。
为使 PROFIBUS-DP 接口实现简单、方便,达到快速提供产品的目的,采用西门子公
司的专用通信协议芯片 SPC3 完成 PROFIBUS-DP 总线的协议。SPC3 集成了完整的
PROFIBUS-DP 协议,能自动检测总线的波特率从 9.6Kbps 到 12Mbps,集成了 1.5KB
的双口 RAM,它本身具有地址锁存和片选功能,上电后自动执行 PROFIBUS-DP 的从站
状态机。SPC3 内部 1.5KB 双口 RAM 地址空间为 00H~5FFH, 以 8 个字节为一个
单元 (段) , 分成 192 段 (0~191)。按功能可分为三个区域:00H~15H 为处理
器参数区,包括工作模式寄存器、从站最小延迟时间寄存器、内部集成看门狗定时器寄存
器、用于中断的寄存器以及状态寄存器等;16H~3FH 为组织参数区, 用于设置 DP 缓冲
区中各个缓冲块(BUF)的指针(首地址)和长度,并且这些设置必须在 SPC3 的离线状
态下完成;40H~5FFH 为 DP 缓冲区,是 DP 数据的缓冲区,包括 3 个输入数据 BUF、
3 个输出数据 BUF、2 个诊断 BUF、2 个辅助 BUF、设置参数 BUF、通信接口配置 BUF
和可读通信接口配置 BUF 等。SPC3 内部集成一个看门狗定时器,操作于三种不同的状
态:波特率监测、波特率控制和 DP 控制。内部的异步串行收发器(UART)实现串并数
据流的相互转换,空闲定时器控制串行总线电缆上的时序微序列器(MS,
microsequencer)控制整个 SPC3 的工作过程。
PROFIBUS-DP 通讯转换接口采用 89C52 微处理器作为中央处理器, DP 接口芯片
采用 SPC3。 89C52负责将现场采集的信号进行处理、 分析和分类, 然后通过SPC3
传送到PROFIBUS-DP总线, 同时监测SPC3,接收 DP 主站送来的指令和数据,并进
行相应的操作。电路结构示意图如图 1 所示。
图 1 电路结构示意图
图 2 PROFIBUS-DP 状态机
89C52 微处理器扩展了 32KB 的数据存储器(RAM),时钟信号是通过 SPC3 分频
得到的,外围电路还包括了带 EEPROM 的看门狗,模数(A/D)转换、数模(D/A)转
换、DI/DO 接口和数码显示电路。其中,EEPROM 主要用于存放从站地址、ID 号等配
置信息;数码显示电路主要用于显示一些从站信息;而模数A/D)转换、数模(D/A)转换、
DI/DO 接口使通讯转换接口能够胜任 AI、AO、DI、DO 等多方面工作。
PROFIBUS-DP 一般采用 RS-485 传输技术,电缆采用屏蔽双绞线,能够较好地改善
电磁兼容性,传输速率为 9.6Kbps~12Mbps。连接采用符合 PROFIBUS-DP 开放标准
的 9 针 D 型插头,在不带中继时,每分段可以连接 32 个站;在使用中继时,可以扩展
到 127 个站,包括中继站。当信号在总线上传输时,若发生阻抗不连续,将形成信号反
射,导致传输信号畸变,因此在传输线的末端,需要加终端电阻来消除这种阻抗不连续,
所加电阻阻值应尽量接近传输线的特性阻抗。为消除来自零线的干扰,在 SPC3 和
RS-485 收发器之间须加光耦隔离,为提高传输速率,应尽量选择高速光耦合 RS-485 收
发器,本设计采用 HCPL7720 高
速光耦和 SN75ALS176 总线收发器。
3.2 软件设计
软件设计是开发 PROFIBUS-DP 通讯转换接口的一个重要环节,也是其难点所在。开
发者必须了解PROFIBUS-DP 协议,熟悉 SPC3 芯片的工作原理和状态机原理,熟知
SPC3 的各种 DP 服务。PROFIBUS-DP 的状态机描述 DP 从站在每种情况下的行为以
保证它符合一致性,SPC3 内部集成了状态机,用户对状态机的控制是很有限的。
PROFIBUS-DP 状态机如图 2 所示。各个椭圆表示不同的状态,带箭头的连线表示状态
间的转换,而连线上的文字表示状态的转换所需满足的条件。在 POWER_ON 状态, 从
站能从二类主站接收 Set_Slave_Address 报文来改变它的地址, 然后从站进入
Wait_Prm 状态,等待参数化,此状态从站还可以接受 Get_Cfg,Slave_ Diag 报文。参
数化完成后,从站进入 Wait_Cfg 状态,等待 Check_Cfg 报文,另外还可以接收
Slave_Diag,Set_Prm ,Get_Cfg报文。如果 Check_Cfg 完成后,从站将进入 Data_Exch
状态,进行数据通信。此时从站还可接收Writing_Outputs,Reading_Inputs,
Gloable_Control,Slave_Diag,Chk_Diag,Get_Cfg 报文,若组态和数据交换不成功,就
会返回到参数化阶段。Wait_Prm 在对从站进行组态时,必须要编写它的 GSD 文
件。GSD 文件是设备数据库文件,描述 PROFIBUS 设备具有的性能特征。GSD 文
件包括三个部分:总体说明(厂商和设备名称、软硬件版本、支持的波特率等)、DP 主设
备相关的规范(如可连接从设备的最多台数或卸载能力) 、 从设备相关的规范 (如 I/O
通道的数量和类型、 诊断测试的规格及 I/O 数据的一致性信息) 。标准化的 GSD 数据
将通信扩大到操作员控制一级, 使用基于 GSD 的组态工具可将不同厂商生产的设备集成
在一个总线系统中,简单,用户界面友好。SPC3 集成了完整的 PROFIBUS-DP 协议,能
独立地处理 PROFIBUS-DP 协议的所有通信任务,从而大大减轻微处理器的负载,保证系
统的通信速度和数据交换的可靠性。微处理器的主要任务是根据 SPC3 产生的中断,对
SPC3 接收到的主站发送的输出数据进行转存,组织需通过 SPC3 发送给主站的数据,并
根据要求组织外部诊断等。PROFIBUS-DP 通信的服务存取点(SAP)由 SPC3 自动建立,
各种报文信息呈现在用户面前的是不同 BUF 的内部数据。用户可以通过此总线接口访问
这些内部数据。主程序流程图如图 3 所示,其中 SPC3 的初始化包括设置 SPC3 允许的
中断,写入从站识别号和地址,
设置 SPC3 方式寄存器,设置诊断缓冲区、参数缓冲区、配置缓冲区、地址缓冲区、
初始长度,并根据以上初始值求出各个缓冲区的指针及辅助缓冲区的指针,根据传输的数
据长度确定输出缓冲区及指针(在赋各缓冲区指针变量值时,指针值是段序号)。中断程序
流程图如图 4 所示,主要用来处理 PRM 报文、CFG 报文和 SSA 报文。
用汇编语言编写的部分初始化程序如下:
MOV DPTR,#R_DIAG_BUF_PTR1 ; 如果 SPC3 离线,初始化 SPC3
MOV A,#D_DIAG_BUF_PTR1
MOVX @DPTR,A; 诊断缓冲区指针
INC DPTR
MOV A,#D_DIAG_BUF_PTR2
MOVX @DPTR,A
MOV DPTR,#R_CFG_BUF_PTR ; 配置缓冲区指针
MOV A,#D_CFG_BUF_PTR
MOVX @DPTR,A
MOV DPTR,#R_READ_CFG_BUF_PTR