利用SPC3 开发智能DP 从站源码讲解(连载二)
2、SPC3 管理功能介绍
2.1 SPC3 中断管理
SPC3 提供了几个与中断相关的寄存器,它们分别是:中断请求寄存器(IRR)、中断寄存
器(IR)、中断屏蔽寄存器(IMR)和中断确认寄存器(IAR)。每个寄存器占2 个字节,除了5 个
保留位之外 ,SPC3 共支持包括波特率检测、新参数数据、诊断缓冲区改变在内的11 个中
断。SPC3 只占用一个中断向量号,中断服务程序在响应中断后,需要根据IRR 中的内容来
判断是哪一个事件引发的中断。用户可以在初始化时设置IMR 来对中断事件进行开/关设置。
用户处理完事件后,需要操作IAR 或相应的Cmd 寄存器来来确认相应中断事件。
2.2 SPC3 状态机管理
SPC3 可工作于四种状态:Power_On、WAIT-PRM、WAIT-CFG 和DATA_EXCH。图2
给出的状态机描述了SPC3 工作状态间的关系。状态机主要用来保证从设备在不同条件下行
为的一致性。
在Power_On 状态,从站可认接收来自二类主站的Set_Slave_Add 报文,以改变从站地
址,从站应具有非易失性的存储器来存从站地址。在内部起动后,从站进入WAIT-PRM 状
态,等待Set_Prm 报文。在此状态从站还可以接收Get_Cfg 或Slave_Diag 报文,但拒绝处理
其他报文,不能进行通讯。如果Set_Prm 正确,从站进入WAIT-CFG,等待Check_Cfg 报文。
Check_Cfg 报文规定输入和输出字节数。另外也可以接收Slave_Diag,Get_Cfg 报文。如果
Check_Cfg 正确,从站进入DATA_EXCH 状态,进行数据通讯,在此状态,从站可以接收来
自一类主站的Writing Outputs、Reading Inputs、Global_Control、Slave_Diag、Chk_Diag 和
Get_Cfg 报文。
图示PROFIBUS DP 从站状态机
当从设备发生异常时,如WD 超时,则SPC3 的状态就会改变,以保证系统的安全。开
发人员在软件调试过程中可通过检查SPC3 的状态寄存器来确认其工作状态。
3、PROFIBUS DP 协议介绍
3.1 PROFIBUS DP 协议
PROFIBUS DP 协议中规定了8 种主站-从站功能:读DP 从站诊断信息、传送输入与输
出数据、读DP-从站的输入与输出数据、发送参数数据、检查组态数据、读组态数据、对
DP 从站的控制命令、变更DP 从站的站地址。
在PROFIBUS DP 总线上传送的帧分为四种类型:可变数据字段长度的帧、有数据字段
的固定长度的帧、无数据字段的固定长度的帧和令牌帧。下面给出了有数据字段的固定长度
的帧中发送/请求帧和响应帧的格式。
1.发送/请求帧的格式:
2.回答帧的格式:
其中,SYN 同步时间,最小33 个线空闲位
SD3 开始定界符,值:A2H
DA 目的地址
SA 源地址
FC 帧控制
DATA_UNIT 数据字段,固定长度(L-3)=8 个八位位组
FCS 帧检查顺序
ED 结束定界符,值:16H
L 信息字段长度,固定的八位位组的个数:L=11
图示 有数据字段的固定长度的帧
对于利用SPC3 芯片来开发DP 从设备的开发人员来讲,没有必要考虑如何对从总线接
收到的帧进行校验、解析和处理,也不必考虑如何将响应报文发送到总线上去,这些功能均
由SPC3 完成。需要说明的是,用户程序对协议报文收发的控制能力是很有限的。
SPC3 管理功能介绍
在上面介绍的DP 主站-从站服务中,诊断处理、参数化、检查组态数据和从设备地址设
置四种协议报文是必须了解的。
3.2 诊断处理(Dialog)
当从设备发生异常,可以通过诊断报文来向主站传递相关信息,此信息是从设备主动发
送的。标准的诊断信息有6 个字节,而且用户可以在标准诊断信息之后加入设备相关的诊断
信息,最长可扩展到244 字节。
SPC3 在收到应用程序传过来的诊断数据后,并不是立刻发给主站。而是在当前的服务
响应中置上标记,当主站收到这样的标记后,会在下个轮循周期内读取从站的诊断信息。
3.3 参数化(Parameter)
参数化报文主要是主站用来设置从设备的工作参数。从站的参数化在DP 系统的建立阶
段首先完成,也可在用户数据交换模式中完成。除总线一般参数数据外,DP 从站专用的参
数(如:较高或较低限值)传送到每个DP 从站。这些数据从主站参数集中的用户那里发送,
此参数集缓存在主站中。
标准的参数化信息是7 个字节,根据需要用户最长可扩展到244 个字节。
3.4 检查组态数据(CFG)
此功能允许DP 主站传送组态数据到DP 从站以便检查。它们包括输入输出区域的范围,
也包括关于数据连续性的信息。DP 从站中的用户程序会对接收到的组态数据进行检查,将
结果通知SPC3。
组态数据的内容和长度跟从站中被组态的模块数和设备描述(GSD)文件中描述该模块
的信息内容有关,例如,GSD 文件中有如下模块描述信息:
Module = "2AI*16bit" 0x43,0x41,0x01,0x10,0x02 ;
EndModule
表示这是一个2 通道的16 位精度的模拟量输入模块,是用5 个字节的内容描述的,后
三个字节的含义由开发商自行定义。
3.5 变更DP 从站的地址(SSA)
此功能允许DP 主站(2 类)变更DP 从站的地址。如DP 从站没有存储能力(EEPROM,
FLASH)或如果地址设置是以一个开关来实施的,则此功能以RS 出错报文来拒绝。与此同
时,用此功能发送Ident_Number。如果本地的和被传送的Ident_Number 相对应,那么站地
址将被改变。
附录
以上所讲内容可参见SPC3 用户手册和DP 协议规范。
相关内容可从 www.fieldbuses.com 网站下载。