首页 理论教育ASIC接口:现场总线应用技术

ASIC接口:现场总线应用技术

【摘要】:下面将要介绍的寄存器规定了ASIC硬件功能和报文处理过程。表6-17 方式寄存器1S和方式寄存器1R(续)2.状态寄存器状态寄存器反映SPC3当前的状态并且为只读,状态寄存器各位的定义见表6-18。中断控制器最多可存储16个中断事件。协议规定SPC3从最高的波特率开始查询。一旦确定正确的波特率,SPC3进入Baud_Control状态,并且监视此波特率。

下面将要介绍的寄存器规定了ASIC硬件功能和报文处理过程。

1.方式寄存器

控制器直接访问或设置的参数与SPC3中的方式寄存器0和方式寄存器1有关。

(1)方式寄存器0

在离线状态下(如合上开关)设置方式寄存器0,当方式寄存器中所有的处理器参数、组织参数被装载后,SPC3才离开离线状态(START SPC3=1,方式寄存器1)。方式寄存器0各位的定义见表6-17。

表6-16 方式寄存器0(地址06H、07H)

978-7-111-55649-7-Chapter06-52.jpg

(续)

978-7-111-55649-7-Chapter06-53.jpg

(2)方式寄存器1(Mode-REG1,可写)

一些控制位必须在操作中改变,这些控制位与方式寄存器1有关,可以单独被设置(Mode_Reg_S),也可以单独被清除(Mode_Reg_R),设置或清除时必须在位地址写入逻辑1。方式寄存器1S(地址08H)和方式寄存器1R(地址09H)各位的定义见表6-17。

表6-17 方式寄存器1S(地址08H)和方式寄存器1R(地址09H)

978-7-111-55649-7-Chapter06-54.jpg

(续)

978-7-111-55649-7-Chapter06-55.jpg

2.状态寄存器

状态寄存器反映SPC3当前的状态并且为只读,状态寄存器各位的定义见表6-18。

表6-18 状态寄存器(只读,地址04H,05H)

978-7-111-55649-7-Chapter06-56.jpg

(续)

978-7-111-55649-7-Chapter06-57.jpg

3.中断控制器

通过中断控制器通知处理器各种中断信息和错误事件。中断控制器最多可存储16个中断事件。中断事件传送到共同的中断输出,中断控制器不提供优先级和中断矢量(与8259不兼容)。

中断控制器包括中断请求寄存器(IRR)、中断屏蔽寄存器(IMR)、中断寄存器(IR)和中断响应寄存器(IAR)。

中断事件存储在IRR中,个别事件通过IMR被屏蔽,IRR中的中断输入与中断屏蔽无关。在IMR没有被屏蔽的中断信号经过网络综合产生X/INT中断。用户调试时可在IRR中设置各种中断。

中断处理器处理过的中断必须通过IAR(New Prm Data,New DDB Prm Data,New Cfg Data除外)清除,在相应位上写入1即可清除。如果前一个已经确认的中断正在等待时,IRR中又接收到一个新的中断请求,则此中断被保留。接着处理器使能屏蔽,则确保IRR中没有以前的输入。出于安全考虑,使能屏蔽之前必须清除IRR中的位。(www.chuimin.cn)

退出中断程序之前,处理器必须在方式寄存器中设置“end of interrupt-signal(EOI)=1”,此跳变使中断线失效,如果另一个中断仍保留着,则至少经过1μs或1~2 ms中断失效时间后,该中断输出将再次激活。中断失效时间可以通过EOI_Timebase位设置,这样可以利用边沿触发的中断输入再次进入中断程序。

中断输出的极性可以通过INT_Pol方式位设置,硬件复位后输出低有效。中断请求寄存器各位的定义见表6-19。

表6-19 中断请求寄存器(可写、可读,地址00H、01H)

978-7-111-55649-7-Chapter06-58.jpg

(续)

978-7-111-55649-7-Chapter06-59.jpg

其他的中断控制寄存器各位的定义见表6-20。

表6-20 IR、IMR、IAR寄存器

978-7-111-55649-7-Chapter06-60.jpg

New_Prm_Data、New_Cfg_Data输入不能通过中断响应寄存器清除,只能通过用户确认后由状态机制来清除(如User_Prm_Data_Okay等)。

4.看门狗定时器

(1)自动确定波特率

SPC3能自动确定波特率。每次复位或在Baud_Control_State_WD溢出后,SPC3自动进入Baud_Search状态。

协议规定SPC3从最高的波特率开始查询。在监控时间内,如果没有接收到SD1、SD2或SD3报文,并且没有错误,SPC3将从下一级波特率开始查询。

一旦确定正确的波特率,SPC3进入Baud_Control状态,并且监视此波特率。监视时间可参数化(WD_Baud_Control_Val)。看门狗的时钟频率是100Hz(10ms),每接收到一个发往本站的无误报文后,看门狗自动复位。如果看门狗时间溢出,SPC3重新进入Baud_Search状态。

(2)波特率监视

在Baud_Control状态下,看门狗不停地监视波特率。每接收到发往本站的正确报文后,看门狗自动复位。监视时间是WD_Baud_Control_Val(用户设置参数)与时间基值(10ms)的乘积。如果监视时间溢出,WD_SM重新回到Baud_Search状态。如果用户执行SPC3的DP协议(在方式寄存器中DP_MODE=1),并接收到一能响应时间监视(WD_On=1)的Set_Param报文后,看门狗工作在DP_Control状态。若WD_On=0,则看门狗一直工作在波特率监视状态。当定时器时间溢出时,PROFIBUS_DP状态机制也不复位。也就是说,从站一直工作在数据交换状态。

(3)响应时间监视

DP_Control状态能响应DP主站的时间监视。设置的时间值是看门狗因数与有效时间基值(1ms或10ms)的乘积。

Twd=(1ms或10ms)×WD_Fact_1×WD_Fact_2

用户可通过参数设置报文(取值可以是1~255)装载两个看门狗(WD_Fact_1和WD_ Fact_2)因数和时间基值。

例外:WD_Fact_1=WD_Fact_2=1不允许,电路不检测这种设置。

监视时间可以是2ms~650s之间的值,取决于看门狗因子,与波特率无关。

如果监视时间溢出,SPC3回到Baud_Control状态,SPC3产生WD_DP_Control_Timeout中断。另外,DP状态机制复位,也就是产生缓存器管理的复位。

如果其他主站接收SPC3,则转入Baud_Control(WD_On=0),或在DP_Control下产生延时(WD_On=1),与响应时间监视使能有关(WD_On=0)。