搜索
bottom↓
回复: 11

profibus dp dpv0,dpv1,dpv2的区别

[复制链接]

出0入0汤圆

发表于 2011-2-12 15:00:37 | 显示全部楼层 |阅读模式
dpvo 周期性数据交换  dpv1在v0基础上增加非周期性数据交换, dpv2就是冗余功能

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

 楼主| 发表于 2011-2-12 16:15:17 | 显示全部楼层
dpv1主要可以动态修改通信模式以及实时报警机制

出0入0汤圆

 楼主| 发表于 2011-2-17 09:48:37 | 显示全部楼层
2 从站软件设计
  
  2.1 主程序设计
  从站上电后开始运行主程序,首先初始化微处理器,然后初始化SPC3,其中SPC3 初始化的重点是设置各个寄存器,包括设置从站标识号及地址、设置各个缓冲区等,在下一节中将会描述初始化的具体过程[6]。在初始化完成后,SPC3 会按照从站状态机与主站通信,将主站的输出数据存储在其输出缓冲区中,C8051F023 通过读取主站的输入数据来进行功能选择,准备输入数据。C8051F023 在其内部为各种功能设置了统一的输入/输出缓冲区,C8051F023 把内容转存到SPC3 的输入缓冲区中,即可向主站传送带有各种功能的输入数据。另外,SPC3 还允许用户自己设置某些诊断信息来组织外部诊断。如果主程序在执行过程中有DP 中断发生,系统就进入中断处理程序[7]。主程序流程所示。
  
  2.2 输入/输出接口数据处理
  在与主站通信,经过参数化、组态配置以及诊断之后,从站会依据状态机制进入数据交换状态。在SPC3 中分别定义了各三个输入/输出缓冲区,即DIN_BUF_PTR1/2/3 和DOUT_BUF_PTR1/2/3。这三个缓冲区的长度(R_LEN_DOUT_BUF)在初始化程序中给出。在SPC3 启动后,从站接收及发送的数据都存储在这几个内部缓冲区中。将外部数据写入SPC3 输出缓冲区,SPC3 自主的将这些数据通过总线传输给主站,这就完成了从站发送数据的过程;主站通过总线传来的数据存储在从站的输出缓存区中,将其从缓存区中读出,写到外部的过程就是从站接收数据处理的过程。
  从站接收发送数据处理的关键是得到输入/输出缓冲区的数据。由于输入/输出缓冲区各有3 个长度一样的缓冲区,判断哪个缓冲区可用,并获取可用的输入/输出缓冲区地址指针是获取缓冲区数据的关键。
  输入/输出缓冲区都有3 个状态,分别是U、N、D,在同一时刻3 个缓冲区的状态分别处于这3 个不同状态,其中U 属于用户使用,D 属于SPC3 使用,N 是转换的中间状态。从站的数据交换都是由输入/输出数据在D,N,U 三个缓冲区之间的转换实现的。在输入/输出缓冲区中,D 缓冲区用于存储主站传来的输出数据及从站外部写入的输入数据,数据在D缓冲区与N 缓冲区之间的转换由SPC3 芯片自动完成,微处理器需要处理的只是将外部数据写入当前U 缓冲区以及将数据存储至当前U 缓冲区中[7]。输入/输出数据缓冲区状态改变所示。
  在 处 理 输 出 数 据的接收时, SPC3 芯片自动将数据写入了当前输出指针(USER_OUT_PTR)指向的D 缓冲区中,并最终转移到N 缓冲区。程序所要做的只是在中断产生时,通过交换N、U 两个缓冲区中的数据得到实时输出数据。同样,从站接口向主站发送输出数据时,程序只需要取得当前输入缓冲区的指针(USER_IN_PTR),并将要发送的数据存入。
  在每个数据交换周期处理新的输入/输出数据时,先根据SPC3 内部工作单元中NEW_DOUT/DIN_BUF_CMD 的具体值确定当前U 缓冲区的首地址指针。

出0入0汤圆

 楼主| 发表于 2011-2-17 09:55:11 | 显示全部楼层
用SPC3协议芯片设计PROFIBUS-DP智能从站

引言

    国际电工委员会IEC在2000年1月4日投票通过了现场总线IEC61158国际标准,IEC61158包括了7种现场总线标准,PROFIBUS作为类型3正式加入IEC61158。PROFIRUS协议的结构是以ISO7498国际标准开放式系统互连网络参考模型OSI为基础的。

    PRO FIBUS由二三部分组成:PROFIBUS·FMS、PROFIBus-DP和PROFIBUS—PA。FMS主要用于车间级控制网络,是一种令牌结构和实时多主网络,DP是一种高速的低成本通信连接,用于设备级控制系统与分散式通信;PA是专为过程化而设计的,具有本征安全规范。在这里,主要介绍PROFIBUS-DP(Distributed Process)协议。 PROFIBUS—DP使用了0SI参考模型的第一层、第二层和用户接口,第三层到第七层未定义。PROFIBUS—DP主要应用于传感器和执行器级的高速数据传输.它以DlN 19245的第一部分为基础,主站周期性地读取从站的输入信息并周期地向从站发送输出信息。它的响应时何从几百μ s~几百m s,数据传输速率为9 6 k b p s~12Mbps,传输的数据容量为每个报文多达244字节.传输介质为屏蔽双绞线或光纤等。


本文主要讨论采用slemens的从站协议芯片开发智能从站的方法.智能从站的框图如图l所示。其中包括微控制器、看门狗及EEPROM、SPC3、光电隔离、驱动器和拨码开关等。

1  SPC3协议专用芯片

    1.1 SPC3主要技术指标

    ◇支持PROFIBUS—DP协议;
    ◇最大数据传输速率12Mbps,可自动检测并调整数 据传输速率;
    ◇与80c32、80X86、80C165、80C166、80C167和HCII、HCl6、HC916系列芯片兼容;
    ◇44引脚的PQFP封装;
    ◇可独立处理PROFIBUS—DP通信协议.
    ◇集成的看门狗(WDT).
    ◇外部时钟接口24MHz或48MHz;
    ◇5V直流供电。

    1.2 SPC3内部结构介绍

    SPC3是用于从站开发的智能逋信芯片.它支持PROFIBUS-DP协议。SPC3内部集成了1.5KB的双口RAM。内部锁存嚣/寄存器位于前21个地址单元。主要包括方式寄存器l、0.中断控制寄存器.状态寄存器以及输入、输出缓冲器和诊断缓冲器各宦的状态寄存器。
    组织参数位于RAM中从1 6H开始的单元。整个缓冲器结构(属于DP—sAPs)就是基于这些参数来写的。此外,普通参数在这些单元设置数据(包括站地址、地址允许改变、用户看门狗值和设备标识号等).状态显示存储在这些单元(通用控制命令等)。

用户缓冲器区域位于从40H开始的单元。其中,方式寄存器O设置PROFlBUS—DP的操作方式,如SYNC、FREEZE等。方式寄存器0必须在离线状态进行赋值,一旦上电,就不能修改。方式寄存器1在上电后可对每个位进行置位和复位。

    SPC3有1 4个中断源.各个中断源没有优先级-而是通过中断屏蔽寄存器和中断响应寄存器来实现中断的。但“新参数数据“中断和“新配置数据”中断可以不用中断响应寄存器响应。中断信号的极性由用户设定。

    诊断分为外部诊断和状态诊断。若是外部诊断,用户必须在从第7字节开始的单元中写入用户数据。若是状态诊断,则只需在第l字节写入00H.而不必填写从第7字节开始的用户数据。

    从站地址号可以是固定的,也可以由主站设置。若设站地址号不能改变,则在初始化阶段,令“Real—No—Add—change=0FFH" "R-SSA BUF-PTR=00H”。

    用户看门狗计数器是l 6位的内部存储器单元, 初始值由R user Wd_Value单元给定。每接收1个数据报文,计数器减l。当减到0000H时,SPC3就进入“等待参数化”状态,DP状态机执行“离开主站”命令。

    另外SPC3内部还集成了1个看门狗计数器.可工作于3种不同的状态 波特率监测、波特率控制和DP控制。SPC3能自动标识总线波特率(9.6kbps~12Mbps)。

1.3 SPC3硬件电路设计

CPU使用AT89S52,采用的是INTEL工作方式,CPU与SPC3的接口电路如图2所示。对AT89S52而言,SPC3相当于它扩展的一个外部RAM。而且,SPC3有内部地址解码电路.所以,AB8~AB10接地。此时DB7~DB0是数据地址复用总线.可以产生低8位的数据和地址,高4位地址由AB0~AB3产生,AB4~AB7产生SPC3的片选信号.只有AB4~AB7同时为0时才选中SPC3。在图2中,SPC3的片选信号是1000H,SPC3的内部RAM位于1000H~l5FFH单元。本从站的开发采用的是汇编语言编程.占用的内存单元少,不需扩展外部RAM。如果使用C语言编程,则必须扩展足够的RAM或者使用带有足够RAM的CPU。  

    从图2中可以看出,RS485总线驱动器一侧与9针D型插鹰相连。另一侧通过光耦与SPC3相连。目前,能满足12M bp s波特率的驱动芯片有sN 6 5AL S1 7 6、SN65ALSI 176、SN75ASLl76、ADMl一485、SN65HVDl 176等,采用光电隔离主要是为了消除来自外界的干扰,能满足12Mbps波特率的光耦有HCPL7 720、HCPL0720HCPL772l、HCPL072l、HCPL7710等。另外要求电源也要采取隔离措施.如加变压器隔离或采用DC—DC模块。
2 PROFIBUS—DP的状态机

    根据PROFIBUS—DP协议可知,PROFIBUS—DP的状态机描述DP从站在每种情况下的行为以保证它符合一致性.SPC3内部集成了状态机.用户对状态机的控制是很有限的。PROFIBUS—DP的状态机如图3所示

    在Power_On状态,从站能从2类主站接收Set Slave-Add报文来改变它的地址,然后从站进入Wail_P rm状态,等待参数化.此状态从站还可以接收Get_Cfg和Slave_Dlag报文。参数化完成后.从站进人wait_Cfg状态,等待Chk_Cfg报文.另外还可以接收Slave_Diag、Set_Prm和Get_Cfg报文。如果Chk_Cfg完成后,从站将进入Data_Exch状态.进行数据通信。此时从站还可接收Writing_Outputs、Reading_lnputs、Global_Control、Slave Diag、Chk_Diag和Get_Cfg报文,若组态和数据交换不成功.就会返回到参数化阶段。Wait_Prm在对从站进行组态时,必须要编写它的GSD文件.所谓GSD就是为了将不同的PROFIBUS产品集成在一起而以电子设备数据库文件方式提供的功能函数(如I/O点数、诊断信息、波特率、时间监视等)。只有GSD文件在COMPROFlBUS组态软件下才能对从站组态,否则主站无法识别从站。

对SPC3的软件操作主要包括两个部分:SPC3的初始化和SPC3的中断处理。主程序和中断程序流程图分别如图4和图5所示。

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

4 GSD文件简介

    PRO FlBUS设备具有不同的性能特点,为达到PROFIBUS简单的即插即用配置.PROFIBUS设备的特性均在电子设备数据库文件(GSD)中具体说明。标准化的GSD数据将通信扩大到操作员控制级。使用基于GSD的组态工具可将不同厂商生产的设备集成在同一总线系统中.既简单又是对用户友好的。
4.1 GSD文件的组成
GSD文件可以分为三个部分:
    ◆一般规范 这部分包括生产厂商和设备的名称,硬件和软件的版本状况,支持的波特率一可能的监视时间问隔以及总线插头的信号分配;
    ◆与DP主站有关的规范这部分包括只运用于DP主站的各项参数(如连接从站的最多台数或上装和下装能力)。这一部分对从站没有规定;
    ◆与DP从站有关的规范 这部分包括与从站有关的一切规范(如输入/输出通道的数量和类型、中断测试的规范以及输入/输出数据一致性的信息)。

    4.2 GSD文件格式

    GSD文件是ASCII文件.可以用任何一种ASCII编辑嚣编辑 如计事本、UltraEdit等,也可使用PROFIBus用户组织提供的编辑程序GSDEdit。GSD文件是由若干行组成,每行都用一个关键字开头,包括关键字及参数(无符号数或字符串)两部分。GSD文件中的关键字可以是标准关键字(在PROFIBUS标准中定义)或自定义关键字。标准关键字可以被PROFIBUS的任何组态工具所识别,而自定义 关键字只能被特定的组态工具识别。
     一个GSD文件的例子如下。
#Pr0fibus DP                       ;DP设备的GSD文件均以此关键存在
GSD Revision=1                     ;GSD文件版本
VendorName="Meglev"                ;设备制造商
Model Name="DP Slave"              ;产品名称,产品版本
Revision="Version 01"              ;产品版本号(可选)
RevisionNtmber=01                  ;产品识别号
IdemNumber=0x01                    ;协议类型(表示DP)
ProtocoI Ident=0                   ;站类型(0表示从站)
StationType=0                      ;不支持FMS.纯DP从站
FMS Supp=0                         ;硬件版本
Hardware Realease="HW1.0"          ;软件版本
Soltware Realease="SWl.0"          ;支持9.6kbps波特率
9.6 supp=1                         ;支持19.2kbps波特率
19.2 supp=l                        ;9.6kbps时最大延迟时间
MaxTsdr 9.6=60                     ;19.2kbps时最大延迟时间
MaxTsdrl9.2=60                     ;不提供RTS信号
RepeaterCtrl sig=0                 ;不提供24V电压
24VPins=0                          ;采用的解决方案
Implementation Type="SPC3"         ;不支持锁定模式
FreezeMode Supp=0                  ;不支持同步模式
SyncMode Supp=0                    ;支持自动波特率检测
AutoBaud Supp=l                    ;不支持改变从站地址
Set SlaveAdd Supp=0                ;故障安全模式类型
Fail Safe=0                        ;最大用户参数数据长度(0-237)
MaxUser PrmDataLen=0               ;用户参数长度
Usel prmDataLen=0                  ;最小从站响应循环间隔
Min Slave Imervall=22              ;是否为模块站
Modular Station=l                  ;从站最大模块数
MaxModule=l                        ;最大输入数据长度
MaxInput Len=8                     ;最大输出数据长度
MaxOutput Len=8                    ;最大数据的长度(输入输出之和)
MaxData Len=16                     ;最大诊断数据长度(6~244)Slave
MaxDiagData Len=6                  ;从站类型
Family=3                           ;模块1,输入输出各4字节
M0dule=“Modulel”0x23,0x13;     ;模块2.输入输出各8字节
EndModule
Module="Module2"0x27,0x17;
EndModule

结语

    PROFIBUS.DP现场总线已成为我国机械部的行业标准.受到越来越多科研机构和厂家的重视t本文从开发的角度.详细阐述了PROFIBUS—DP现场总线的软硬件设计方法。相信能给读者起到抛砖引玉的作用。我们开发的带有PROFIBUS-DP总线接口的设备,能满足互操作性以及实耐性通信的要求,已在许多行业得到成功应用。

出0入0汤圆

 楼主| 发表于 2011-2-18 09:07:28 | 显示全部楼层
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等。

出0入0汤圆

 楼主| 发表于 2011-2-18 09:08:37 | 显示全部楼层
SPC3内部集成一个看门狗定时器,操作于三种不同的状态:波特率监测、波特率控制和DP控制。内部的异步串行收发器(UART)实现串并数据流的相互转换,空闲定时器控制串行总线电缆上的时序,微序列器(MS,microsequencer)控制整个SPC3的工作过程。

出0入0汤圆

 楼主| 发表于 2011-2-18 09:14:03 | 显示全部楼层

(原文件名:PROFIBUS-DP状态机.JPG)


    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文件。


    SPC3集成了完整的PROFIBUS-DP协议,能独立地处理PROFIBUS-DP协议的所有通信任务,从而大大减轻微处理器的负载,保证系统的通信速度和数据交换的可靠性。微处理器的主要任务是根据SPC3产生的中断,对SPC3接收到的主站发送的输出数据进行转存,组织需通过SPC3发送给主站的数据,并根据要求组织外部诊断等。PROFIBUS-DP通信的服务存取点(SAP)由SPC3自动建立,各种报文信息呈现在
用户面前的是不同BUF的内部数据。用户可以通过此总线接口访问这些内部数据。

出0入0汤圆

 楼主| 发表于 2011-2-18 09:20:36 | 显示全部楼层

(原文件名:图3 主程序流程图.JPG)


(原文件名:图4 中断程序流程图.JPG)


    SPC3集成了完整的PROFIBUS-DP协议,能独立地处理PROFIBUS-DP协议的所有通信任务,从而大大减轻微处理器的负载,保证系统的通信速度和数据交换的可靠性。微处理器的主要任务是根据SPC3产生的中断,对SPC3接收到的主站发送的输出数据进行转存,组织需通过SPC3发送给主站的数据,并根据要求组织外部诊断等。PROFIBUS-DP通信的服务存取点(SAP)由SPC3自动建立,各种报文信息呈现在
用户面前的是不同BUF的内部数据。用户可以通过此总线接口访问这些内部数据。

    主程序流程图如图3所示,其中SPC3的初始化包括设置SPC3允许的中断,写入从站识别号和地址,设置SPC3方式寄存器,设置诊断缓冲区、参数缓冲区、配置缓冲区、地址缓冲区、初始长度,并根据以上初始值求出各个缓冲区的指针及辅助缓冲区的指针,根据传输的数据长度确定输出缓冲区及指针(在赋各缓冲区指针变量值时,指针值是段序号)。中断程序流程图如图4所示,主要用来处理PRM报文、CFG报文和SSA报文。

出0入0汤圆

 楼主| 发表于 2011-2-18 09:24:21 | 显示全部楼层
profibus dp 从站开发分为 dpv0,dpv1,dpv2 三部分,其中dpv0可以根据西门子公司提供的固态源码(4个文件)开发。

   dpv1 需要购买西门子公司的软件包进行开发。


    力争今年开发出dpv0。 加油,加油。

出0入0汤圆

发表于 2011-6-10 15:46:38 | 显示全部楼层
讲的太理性了,要是上一个简明的图就好了,看明白点的,没有玩过profibus_dp快要玩了

出0入0汤圆

发表于 2011-8-20 16:57:05 | 显示全部楼层
呵呵。。。没玩到这么深奥过

出0入0汤圆

发表于 2011-9-9 10:43:51 | 显示全部楼层
ding
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-16 16:23

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表