一种fpga实现软件编程器件可控看门狗功能的方法

文档序号:6551156阅读:359来源:国知局
一种fpga实现软件编程器件可控看门狗功能的方法
【专利摘要】一种FPGA实现软件编程器件可控看门狗功能的方法,是在FPGA和软件编程器件(DSP/MCU/ARM等)联合工作时,不需额外增加看门狗硬件设计,利用FPGA实现可控看门狗功能。在单板调试时,可以随需要由软件编程器件来打开/关闭看门狗功能;可以根据软件编程器件的数据处理周期长短来修改FPGA的定时时间(通过软件编程器件给FPGA中的看门狗监控计数器写初值);按照本方法实现的FPGA程序可通用化,且参数控制方便(软件编程器件通过修改不同地址上的数据:初值、看门狗总开关信号、写初值开关等)。值得注意的是,当FPGA读取了软件编程器件给FPGA的初值后,即将初值锁定,只写一次初值。
【专利说明】-种FPGA实现软件编程器件可控看门狗功能的方法

【技术领域】
[0001] 本发明涉及一种FPGA实现软件编程器件可控看门狗功能的方法,实现了 FPGA对 软件编程器件的系统监控,在软件编程器件出现意外状况时可使其重新回复到系统上电状 态,属于软硬件结合调试领域。

【背景技术】
[0002] 看门狗的作用是软件编程器件在意外状况下(比如程序陷入死循环),使其重新 回复到系统上电状态,以保证系统出问题的时候重启一次。设置看门狗是防止软件编程器 件死机和提高软件编程器件系统抗干扰性的一种重要途径。看门狗分为硬件看门狗和软件 看门狗。
[0003] 从实现角度上看,专用硬件看门狗是一种软件与片外专用电路相结合的技术,看 门狗能否可靠有效地工作,与硬件组成及软件的控制策略都有密切的关系。可编程的专用 看门狗定时器,定时时间可通过软件进行选择(200ms,600ms,1.4s)。单时限看门狗硬件电 路简单、控制方便,但可靠性差。双时限看门狗以增加硬件投入为代价来提高看门狗工作的 可靠性。
[0004] 软件看门狗是利用软件编程器件片内闲置的定时器/计数器单元作为看门狗,在 软件编程器件程序中适当地插入"喂狗"指令,当程序运行出现异常或进入死循环时,利用 软件给程序定时器/计数器赋初值,强制性地使程序重新开始运行。软件看门狗的最大特 点是无需外加硬件电路,经济性好。缺点:需要占用片内定时器/计数器。
[0005] 随着微波遥感信号处理系统集成性和复杂性的提高,硬件小型化、软件通用化、标 准化的需求日益迫切。随着微波遥感信号处理复杂度的提高,往往需要FPGA和DSP/MCU联 合工作来使信号处理系统具有良好的控制和运算能力,使用FPGA来实现可控看门狗功能 是一种不错的选择。


【发明内容】

[0006] 本发明的技术解决问题是:克服现有技术的不足,提供一种FPGA实现软件编程器 件可控看门狗功能的方法,减少了硬件投入,FPGA定时时间可控、是否使用看门狗功能可 控、可通用、控制方便。
[0007] 本发明的技术解决方案是:一种FPGA实现软件编程器件可控看门狗功能的方法, 步骤如下:
[0008] (l)FPGA上电复位,令看门狗监控计数器初值为0,进入步骤(2);
[0009] (2)判断软件编程器件是否打开了写初值开关,若软件编程器件打开了写初值开 关,则进入步骤(3);若软件编程器件没有打开写初值开关,则直接进入步骤(5);
[0010] (3)软件编程器件根据数据处理周期计算看门狗监控计数器初值,FPGA读取该初 值并将初值锁定,进入步骤(4);所述数据处理周期与喂狗周期相同;
[0011] (4) FPGA将从软件编程器件中读取的看门狗监控计数器初值赋给看门狗监控计数 器,进入步骤(5);
[0012] (5)FPGA判断软件编程器件是否打开了看门狗使能,若软件编程器件没有打开看 门狗使能,则直接结束;若软件编程器件打开了看门狗使能,则进入步骤(6);
[0013] (6)FPGA中看门狗监控计数器根据FPGA的时钟开始自动计数,进入步骤(7);
[0014] (7)FPGA判断是否有软件编程器件发出的喂狗信号,如果有喂狗信号,则利用喂狗 周期来修改FPGA中的看门狗监控计数器初值,返回步骤(4);若没有喂狗信号,则进入步骤 ⑶;
[0015] (8)FPGA判断看门狗监控计数器是否计满或者达到预设的固定值,若看门狗监控 计数器的计数上限为计数器上限且看门狗监控计数器没有计满,返回步骤¢);若看门狗 监控计数器的计数上限为计数器上限且看门狗监控计数器计满,进入步骤(9);若看门狗 监控计数器的计数上限为预设的固定值且看门狗监控计数器没有达到预设的固定值,返回 步骤¢);若看门狗监控计数器的计数上限为预设的固定值且看门狗监控计数器达到预设 的固定值,进入步骤(9);所述预设的固定值小于计数器上限;
[0016] (9)FPGA产生给软件编程器件复位的信号,返回步骤(4)。
[0017] 所述步骤(3)中软件编程器件根据数据处理周期计算看门狗监控计数器初值,具 体为:
[0018] 看门狗监控计数器初值具体由公式:
[0019] Ni = (t1-t2)/T1
[0020] 给出,式中,&为看门狗监控计数器初值,?\为FPGA中的看门狗监控计数器使用 的时钟周期,h为看门狗监控计数器计满的总时间= ?\*Ν,其中,N为看门狗监控计数器 的计数器上限值或预设的固定值;t2为看门狗监控计数器的定时时间,t 2 = t3/0. 9,其中, t3为喂狗周期,喂狗周期与软件编程器件的数据处理周期相同。
[0021] 本发明与现有技术相比的有益效果是:
[0022] (1)本发明在FPGA和软件编程器件联合工作时,利用FPGA实现软件编程器件可控 看门狗功能,不需额外增加看门狗硬件设计,简化了硬件设计;
[0023] (2)本发明在单板调试时,可以随需要由软件编程器件将看门狗总开关信号置位 来打开/关闭看门狗功能,调试方便;
[0024] (3)本发明可以根据软件编程器件的数据处理周期长短来修改FPGA的定时时间, 即通过软件编程器件给FPGA中的看门狗监控计数器写初值的方式完成修改,克服了看门 狗芯片固定定时时间容易在软件编程器件的数据处理周期内复位使软件编程器件功能不 正确的问题;
[0025] (4)本发明可以通过软件编程器件修改不同地址上的数据,程序可以通用化,且参 数控制方便。

【专利附图】

【附图说明】
[0026] 图1为FPGA实现软件编程器件可控看门狗功能的原理图;
[0027] 图2为FPGA实现软件编程器件可控看门狗功能的流程图。

【具体实施方式】
[0028] 下面结合附图对本发明的【具体实施方式】进行详细地阐述。
[0029] 本发明提供的一种FPGA实现软件编程器件可控看门狗功能的原理图如图1所示, 由图1可知,本发明中软件编程器件的数据线,地址线,片选信号,使能信号与FPGA连接,由 软件编程器件通过数据线,地址线,片选信号,使能信号来给不同的地址上写看门狗监控计 数器初值、置位看门狗总开关信号以及发送喂狗信号等;FPGA通过读取看门狗总开关信号 来判断打开/关闭看门狗使能,读取初值给看门狗监控计数器赋初值来修改FPGA的定时时 间,如果超过FPGA的定时时间没有接收到喂狗信号将产生复位信号来复位软件编程器件 心/T 〇
[0030] 本发明提供的一种FPGA实现软件编程器件可控看门狗功能的方法由软件编程器 件控制看门狗使能的打开/关闭和控制看门狗监控计数器的初值大小(即修改FPGA的定 时时间)。如果软件编程器件打开了看门狗使能,程序正常运行时,软件编程器件会按一定 时间间隔进行"喂狗",FPGA中的看门狗监控计数器则会赋初值重新开始计数,所以不会影 响程序正常运行。如果软件编程器件程序陷入死循环,超过规定的时间没有"喂狗",则FPGA 中的看门狗监控计数器就会溢出或达到预设的固定值,FPGA产生给软件编程器件的复位信 号使软件编程器件复位。
[0031] 如图2所示为本发明流程图,由图2可知,本发明提出的一种FPGA实现软件编程 器件可控看门狗功能的方法,实现步骤如下:
[0032] (l)FPGA上电复位,令看门狗监控计数器初值为0,进入步骤(2);
[0033] (2)判断软件编程器件是否打开了写初值开关,若软件编程器件打开了写初值开 关,则进入步骤(3);若软件编程器件没有打开写初值开关,则直接进入步骤(5);
[0034] (3)软件编程器件根据数据处理周期计算看门狗监控计数器初值,FPGA读取该初 值并将初值锁定,进入步骤(4);所述数据处理周期与喂狗周期相同;
[0035] 看门狗监控计数器初值具体由公式:
[0036] N! = (t「t2) /?\
[0037] 给出,式中,&为看门狗监控计数器初值,?\为FPGA中的看门狗监控计数器使用 的时钟周期,h为看门狗监控计数器计满的总时间= ?\*Ν,其中,N为看门狗监控计数器 的计数器上限值或预设的固定值;t2为看门狗监控计数器的定时时间,t 2 = t3/0. 9,其中, t3为喂狗周期,喂狗周期与软件编程器件的数据处理周期相同。
[0038] (4) FPGA将从软件编程器件中读取的看门狗监控计数器初值赋给看门狗监控计数 器,进入步骤(5);
[0039] (5)FPGA判断软件编程器件是否打开了看门狗使能,若软件编程器件没有打开看 门狗使能,则直接结束;若软件编程器件打开了看门狗使能,则进入步骤(6);
[0040] (6)FPGA中看门狗监控计数器根据FPGA的时钟开始自动计数,进入步骤(7);
[0041] (7)FPGA判断是否有软件编程器件发出的喂狗信号,如果有喂狗信号,则利用喂狗 周期来修改FPGA中的看门狗监控计数器初值,返回步骤(4);若没有喂狗信号,则进入步骤 ⑶;
[0042] (8)FPGA判断看门狗监控计数器是否计满或者达到预设的固定值,若看门狗监控 计数器的计数上限为计数器上限且看门狗监控计数器没有计满,返回步骤¢);若看门狗 监控计数器的计数上限为计数器上限且看门狗监控计数器计满,进入步骤(9);若看门狗 监控计数器的计数上限为预设的固定值且看门狗监控计数器没有达到预设的固定值,返回 步骤(6);若看门狗监控计数器的计数上限为预设的固定值且看门狗监控计数器达到预设 的固定值,进入步骤(9);所述预设的固定值小于计数器上限;
[0043] (9) FPGA产生给软件编程器件复位的信号,然后FPGA返回步骤(4)。
[0044] 实施例
[0045] FPGA实现给DSP的可控看门狗功能。
[0046] (1)用本发明方法实现的FPGA程序固定,可通用,可预先固化在FPGA中;
[0047] (2)在调试初期,DSP程序不成熟,所以需要关闭看门狗功能;DSP将地址 addr〃00101001〃上的数据赋给看门狗使能开关wdt_en,即将wdt_en置0 (0为关闭看门狗 使能);
[0048] (3)在调试后期,DSP程序成熟,所以需要打开看门狗功能;DSP将地址 addr〃00101001〃上的数据赋给看门狗使能开关wdt_en,即将wdt_en置1 (1为打开看门狗 使能);〇3?在地址&(1(11'〃00100011〃上给??64发送系统监测信号(喂狗信号) ;05?给??6八 的看门狗监控计数器写初值X〃4E0〃(因为DSP的数据处理周期为1. 44S,DSP发出的喂狗 信号周期也是1. 44S,故可设置FPGA中的看门狗监控计数器的定时时间为1. 6S(1. 44S/0. 9 =1.6S) ;FPGA中的看门狗监控计数器使用的时钟周期是20ms,看门狗监控计数器计满为 2048,即总时间为2048*20ms = 40960ms ;看门狗监控计数器的定时时间为1. 6S,所以DSP 需要给FPGA的看门狗监控计数器写初值(40960ms-16000ms)/20ms = 1248 = X〃4E0〃),DSP 先将地址addr〃00100110〃上的数据赋给写初值开关wdt_wp (即将wdt_wp置1,打开写初 值开关),然后DSP将地址addr〃00100101〃上的数据赋给初值低位wdt_int_l (即将wdt_ int_l置为Χ〃Ε0〃,写初值低位),将地址addr〃00100100〃上的数据赋给初值高位wdt_int_ h (即将wdt_int_h置为X〃04〃,写初值高位,写了高位后锁住初值,初值只写一次);
[0049] (4)当FPGA每收到DSP发出的系统监测信号(喂狗信号)都将对看门狗监控计数 器再次赋锁定初值,重新进行计数(看门狗监控计数器以FPGA时钟的上升沿计数,时钟周 期是20ms)。若1. 6S FPGA都没有收到DSP发出的喂狗信号,则FPGA中的看门狗监控计数 器就会计满。FPGA判断看门狗监控计数器计满,则认为DSP的程序已经跑飞,FPGA将产生 给DSP的复位信号(3us的低电平脉冲)来使DSP复位;
[0050] (5)DSP复位后,FPGA中的看门狗监控计数器再次赋锁定初值,重新进行计数,继 续去监控是否收到DSP发出的系统监测信号(喂狗信号)。
[0051] 通过后期实际工程的验证,证明了本发明方法经济性好,是否使用看门狗功能可 控,FPGA定时时间可控,可通用,控制方便。
[0052] 本发明说明书中未作详细描述的内容属于本领域专业技术人员的公知技术。
【权利要求】
1. 一种FPGA实现软件编程器件可控看门狗功能的方法,其特征在于步骤如下: (1) FPGA上电复位,令看门狗监控计数器初值为0,进入步骤(2); (2) 判断软件编程器件是否打开了写初值开关,若软件编程器件打开了写初值开关,则 进入步骤(3);若软件编程器件没有打开写初值开关,则直接进入步骤(5); (3) 软件编程器件根据数据处理周期计算看门狗监控计数器初值,FPGA读取该初值并 将初值锁定,进入步骤(4);所述数据处理周期与喂狗周期相同; (4) FPGA将从软件编程器件中读取的看门狗监控计数器初值赋给看门狗监控计数器, 进入步骤(5); (5) FPGA判断软件编程器件是否打开了看门狗使能,若软件编程器件没有打开看门狗 使能,则直接结束;若软件编程器件打开了看门狗使能,则进入步骤(6); (6) FPGA中看门狗监控计数器根据FPGA的时钟开始自动计数,进入步骤(7); (7) FPGA判断是否有软件编程器件发出的喂狗信号,如果有喂狗信号,则利用喂狗周 期来修改FPGA中的看门狗监控计数器初值,返回步骤(4);若没有喂狗信号,则进入步骤 ⑶; (8) FPGA判断看门狗监控计数器是否计满或者达到预设的固定值,若看门狗监控计数 器的计数上限为计数器上限且看门狗监控计数器没有计满,返回步骤¢);若看门狗监控 计数器的计数上限为计数器上限且看门狗监控计数器计满,进入步骤(9);若看门狗监控 计数器的计数上限为预设的固定值且看门狗监控计数器没有达到预设的固定值,返回步骤 (6);若看门狗监控计数器的计数上限为预设的固定值且看门狗监控计数器达到预设的固 定值,进入步骤(9);所述预设的固定值小于计数器上限; (9) FPGA产生给软件编程器件复位的信号,返回步骤(4)。
2. 根据权利要求1所述的一种FPGA实现软件编程器件可控看门狗功能的方法,其特征 在于:所述步骤(3)中软件编程器件根据数据处理周期计算看门狗监控计数器初值,具体 为: 看门狗监控计数器初值具体由公式: Ni = (t1~t2)/T1 给出,式中,K为看门狗监控计数器初值,?\为FPGA中的看门狗监控计数器使用的时 钟周期为看门狗监控计数器计满的总时间= ?\*Ν,其中,N为看门狗监控计数器的计 数器上限值或预设的固定值;t2为看门狗监控计数器的定时时间,t 2 = t3/0. 9,其中,t3为 喂狗周期,喂狗周期与软件编程器件的数据处理周期相同。
【文档编号】G06F9/44GK104063223SQ201410298589
【公开日】2014年9月24日 申请日期:2014年6月26日 优先权日:2014年6月26日
【发明者】孙娟, 李彬 申请人:西安空间无线电技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1