CN104063223B - 一种fpga实现软件编程器件可控看门狗功能的方法 - Google Patents
一种fpga实现软件编程器件可控看门狗功能的方法 Download PDFInfo
- Publication number
- CN104063223B CN104063223B CN201410298589.8A CN201410298589A CN104063223B CN 104063223 B CN104063223 B CN 104063223B CN 201410298589 A CN201410298589 A CN 201410298589A CN 104063223 B CN104063223 B CN 104063223B
- Authority
- CN
- China
- Prior art keywords
- fpga
- programming device
- software programming
- dog
- initial value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
一种FPGA实现软件编程器件可控看门狗功能的方法,是在FPGA和软件编程器件(DSP/MCU/ARM等)联合工作时,不需额外增加看门狗硬件设计,利用FPGA实现可控看门狗功能。在单板调试时,可以随需要由软件编程器件来打开/关闭看门狗功能;可以根据软件编程器件的数据处理周期长短来修改FPGA的定时时间(通过软件编程器件给FPGA中的看门狗监控计数器写初值);按照本方法实现的FPGA程序可通用化,且参数控制方便(软件编程器件通过修改不同地址上的数据:初值、看门狗总开关信号、写初值开关等)。值得注意的是,当FPGA读取了软件编程器件给FPGA的初值后,即将初值锁定,只写一次初值。
Description
技术领域
本发明涉及一种FPGA实现软件编程器件可控看门狗功能的方法,实现了FPGA对软件编程器件的系统监控,在软件编程器件出现意外状况时可使其重新回复到系统上电状态,属于软硬件结合调试领域。
背景技术
看门狗的作用是软件编程器件在意外状况下(比如程序陷入死循环),使其重新回复到系统上电状态,以保证系统出问题的时候重启一次。设置看门狗是防止软件编程器件死机和提高软件编程器件系统抗干扰性的一种重要途径。看门狗分为硬件看门狗和软件看门狗。
从实现角度上看,专用硬件看门狗是一种软件与片外专用电路相结合的技术,看门狗能否可靠有效地工作,与硬件组成及软件的控制策略都有密切的关系。可编程的专用看门狗定时器,定时时间可通过软件进行选择(200ms,600ms,1.4s)。单时限看门狗硬件电路简单、控制方便,但可靠性差。双时限看门狗以增加硬件投入为代价来提高看门狗工作的可靠性。
软件看门狗是利用软件编程器件片内闲置的定时器/计数器单元作为看门狗,在软件编程器件程序中适当地插入“喂狗”指令,当程序运行出现异常或进入死循环时,利用软件给程序定时器/计数器赋初值,强制性地使程序重新开始运行。软件看门狗的最大特点是无需外加硬件电路,经济性好。缺点:需要占用片内定时器/计数器。
随着微波遥感信号处理系统集成性和复杂性的提高,硬件小型化、软件通用化、标准化的需求日益迫切。随着微波遥感信号处理复杂度的提高,往往需要FPGA和DSP/MCU联合工作来使信号处理系统具有良好的控制和运算能力,使用FPGA来实现可控看门狗功能是一种不错的选择。
发明内容
本发明的技术解决问题是:克服现有技术的不足,提供一种FPGA实现软件编程器件可控看门狗功能的方法,减少了硬件投入,FPGA定时时间可控、是否使用看门狗功能可控、可通用、控制方便。
本发明的技术解决方案是:一种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);
(8)FPGA判断看门狗监控计数器是否计满或者达到预设的固定值,若看门狗监控计数器的计数上限为计数器上限且看门狗监控计数器没有计满,返回步骤(6);若看门狗监控计数器的计数上限为计数器上限且看门狗监控计数器计满,进入步骤(9);若看门狗监控计数器的计数上限为预设的固定值且看门狗监控计数器没有达到预设的固定值,返回步骤(6);若看门狗监控计数器的计数上限为预设的固定值且看门狗监控计数器达到预设的固定值,进入步骤(9);所述预设的固定值小于计数器上限;
(9)FPGA产生给软件编程器件复位的信号,返回步骤(4)。
所述步骤(3)中软件编程器件根据数据处理周期计算看门狗监控计数器初值,具体为:
看门狗监控计数器初值具体由公式:
N1=(t1-t2)/T1
给出,式中,N1为看门狗监控计数器初值,T1为FPGA中的看门狗监控计数器使用的时钟周期,t1为看门狗监控计数器计满的总时间,t1=T1*N,其中,N为看门狗监控计数器的计数器上限值或预设的固定值;t2为看门狗监控计数器的定时时间,t2=t3/0.9,其中,t3为喂狗周期,喂狗周期与软件编程器件的数据处理周期相同。
本发明与现有技术相比的有益效果是:
(1)本发明在FPGA和软件编程器件联合工作时,利用FPGA实现软件编程器件可控看门狗功能,不需额外增加看门狗硬件设计,简化了硬件设计;
(2)本发明在单板调试时,可以随需要由软件编程器件将看门狗总开关信号置位来打开/关闭看门狗功能,调试方便;
(3)本发明可以根据软件编程器件的数据处理周期长短来修改FPGA的定时时间,即通过软件编程器件给FPGA中的看门狗监控计数器写初值的方式完成修改,克服了看门狗芯片固定定时时间容易在软件编程器件的数据处理周期内复位使软件编程器件功能不正确的问题;
(4)本发明可以通过软件编程器件修改不同地址上的数据,程序可以通用化,且参数控制方便。
附图说明
图1为FPGA实现软件编程器件可控看门狗功能的原理图;
图2为FPGA实现软件编程器件可控看门狗功能的流程图。
具体实施方式
下面结合附图对本发明的具体实施方式进行详细地阐述。
本发明提供的一种FPGA实现软件编程器件可控看门狗功能的原理图如图1所示,由图1可知,本发明中软件编程器件的数据线,地址线,片选信号,使能信号与FPGA连接,由软件编程器件通过数据线,地址线,片选信号,使能信号来给不同的地址上写看门狗监控计数器初值、置位看门狗总开关信号以及发送喂狗信号等;FPGA通过读取看门狗总开关信号来判断打开/关闭看门狗使能,读取初值给看门狗监控计数器赋初值来修改FPGA的定时时间,如果超过FPGA的定时时间没有接收到喂狗信号将产生复位信号来复位软件编程器件芯片。
本发明提供的一种FPGA实现软件编程器件可控看门狗功能的方法由软件编程器件控制看门狗使能的打开/关闭和控制看门狗监控计数器的初值大小(即修改FPGA的定时时间)。如果软件编程器件打开了看门狗使能,程序正常运行时,软件编程器件会按一定时间间隔进行“喂狗”,FPGA中的看门狗监控计数器则会赋初值重新开始计数,所以不会影响程序正常运行。如果软件编程器件程序陷入死循环,超过规定的时间没有“喂狗”,则FPGA中的看门狗监控计数器就会溢出或达到预设的固定值,FPGA产生给软件编程器件的复位信号使软件编程器件复位。
如图2所示为本发明流程图,由图2可知,本发明提出的一种FPGA实现软件编程器件可控看门狗功能的方法,实现步骤如下:
(1)FPGA上电复位,令看门狗监控计数器初值为0,进入步骤(2);
(2)判断软件编程器件是否打开了写初值开关,若软件编程器件打开了写初值开关,则进入步骤(3);若软件编程器件没有打开写初值开关,则直接进入步骤(5);
(3)软件编程器件根据数据处理周期计算看门狗监控计数器初值,FPGA读取该初值并将初值锁定,进入步骤(4);所述数据处理周期与喂狗周期相同;
看门狗监控计数器初值具体由公式:
N1=(t1-t2)/T1
给出,式中,N1为看门狗监控计数器初值,T1为FPGA中的看门狗监控计数器使用的时钟周期,t1为看门狗监控计数器计满的总时间,t1=T1*N,其中,N为看门狗监控计数器的计数器上限值或预设的固定值;t2为看门狗监控计数器的定时时间,t2=t3/0.9,其中,t3为喂狗周期,喂狗周期与软件编程器件的数据处理周期相同。
(4)FPGA将从软件编程器件中读取的看门狗监控计数器初值赋给看门狗监控计数器,进入步骤(5);
(5)FPGA判断软件编程器件是否打开了看门狗使能,若软件编程器件没有打开看门狗使能,则直接结束;若软件编程器件打开了看门狗使能,则进入步骤(6);
(6)FPGA中看门狗监控计数器根据FPGA的时钟开始自动计数,进入步骤(7);
(7)FPGA判断是否有软件编程器件发出的喂狗信号,如果有喂狗信号,则利用喂狗周期来修改FPGA中的看门狗监控计数器初值,返回步骤(4);若没有喂狗信号,则进入步骤(8);
(8)FPGA判断看门狗监控计数器是否计满或者达到预设的固定值,若看门狗监控计数器的计数上限为计数器上限且看门狗监控计数器没有计满,返回步骤(6);若看门狗监控计数器的计数上限为计数器上限且看门狗监控计数器计满,进入步骤(9);若看门狗监控计数器的计数上限为预设的固定值且看门狗监控计数器没有达到预设的固定值,返回步骤(6);若看门狗监控计数器的计数上限为预设的固定值且看门狗监控计数器达到预设的固定值,进入步骤(9);所述预设的固定值小于计数器上限;
(9)FPGA产生给软件编程器件复位的信号,然后FPGA返回步骤(4)。
实施例
FPGA实现给DSP的可控看门狗功能。
(1)用本发明方法实现的FPGA程序固定,可通用,可预先固化在FPGA中;
(2)在调试初期,DSP程序不成熟,所以需要关闭看门狗功能;DSP将地址addr"00101001"上的数据赋给看门狗使能开关wdt_en,即将wdt_en置0(0为关闭看门狗使能);
(3)在调试后期,DSP程序成熟,所以需要打开看门狗功能;DSP将地址addr"00101001"上的数据赋给看门狗使能开关wdt_en,即将wdt_en置1(1为打开看门狗使能);DSP在地址addr"00100011"上给FPGA发送系统监测信号(喂狗信号);DSP给FPGA的看门狗监控计数器写初值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置为X"E0",写初值低位),将地址addr"00100100"上的数据赋给初值高位wdt_int_h(即将wdt_int_h置为X"04",写初值高位,写了高位后锁住初值,初值只写一次);
(4)当FPGA每收到DSP发出的系统监测信号(喂狗信号)都将对看门狗监控计数器再次赋锁定初值,重新进行计数(看门狗监控计数器以FPGA时钟的上升沿计数,时钟周期是20ms)。若1.6S FPGA都没有收到DSP发出的喂狗信号,则FPGA中的看门狗监控计数器就会计满。FPGA判断看门狗监控计数器计满,则认为DSP的程序已经跑飞,FPGA将产生给DSP的复位信号(3us的低电平脉冲)来使DSP复位;
(5)DSP复位后,FPGA中的看门狗监控计数器再次赋锁定初值,重新进行计数,继续去监控是否收到DSP发出的系统监测信号(喂狗信号)。
通过后期实际工程的验证,证明了本发明方法经济性好,是否使用看门狗功能可控,FPGA定时时间可控,可通用,控制方便。
本发明说明书中未作详细描述的内容属于本领域专业技术人员的公知技术。
Claims (1)
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);
(8)FPGA判断看门狗监控计数器是否计满或者达到预设的固定值,若看门狗监控计数器的计数上限为计数器上限且看门狗监控计数器没有计满,返回步骤(6);若看门狗监控计数器的计数上限为计数器上限且看门狗监控计数器计满,进入步骤(9);若看门狗监控计数器的计数上限为预设的固定值且看门狗监控计数器没有达到预设的固定值,返回步骤(6);若看门狗监控计数器的计数上限为预设的固定值且看门狗监控计数器达到预设的固定值,进入步骤(9);所述预设的固定值小于计数器上限;
(9)FPGA产生给软件编程器件复位的信号,返回步骤(4);
其中,所述步骤(3)中软件编程器件根据数据处理周期计算看门狗监控计数器初值,具体为:
看门狗监控计数器初值具体由公式:
N1=(t1-t2)/T1
给出,式中,N1为看门狗监控计数器初值,T1为FPGA中的看门狗监控计数器使用的时钟周期,t1为看门狗监控计数器计满的总时间,t1=T*N,其中,N为看门狗监控计数器的计数器上限值或预设的固定值;t2为看门狗监控计数器的定时时间,t2=t3/0.9,其中,t3为喂狗周期,喂狗周期与软件编程器件的数据处理周期相同;
其中,软件编程器件的数据线,地址线,片选信号,使能信号与FPGA连接,由软件编程器件通过数据线,地址线,片选信号,使能信号来给不同的地址上写看门狗监控计数器初值、置位看门狗总开关信号以及发送喂狗信号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410298589.8A CN104063223B (zh) | 2014-06-26 | 2014-06-26 | 一种fpga实现软件编程器件可控看门狗功能的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410298589.8A CN104063223B (zh) | 2014-06-26 | 2014-06-26 | 一种fpga实现软件编程器件可控看门狗功能的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104063223A CN104063223A (zh) | 2014-09-24 |
CN104063223B true CN104063223B (zh) | 2017-11-28 |
Family
ID=51550947
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410298589.8A Active CN104063223B (zh) | 2014-06-26 | 2014-06-26 | 一种fpga实现软件编程器件可控看门狗功能的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104063223B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104268081B (zh) * | 2014-09-25 | 2018-03-16 | 深圳创维数字技术有限公司 | 一种软件运行状态监控方法及装置 |
CN104750567B (zh) * | 2015-03-26 | 2017-11-17 | 南京大全自动化科技有限公司 | 一种基于fpga的看门狗复位方法 |
CN109710441A (zh) * | 2018-12-20 | 2019-05-03 | 北京东土军悦科技有限公司 | 一种软件看门狗、电子设备及计算机存储介质 |
CN110716821B (zh) * | 2019-10-14 | 2023-07-25 | 深圳市凌壹科技有限公司 | 一种看门狗的通信方法及装置 |
CN113886123B (zh) * | 2021-09-30 | 2023-06-30 | 蜂巢能源科技有限公司 | 一种看门狗喂狗方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN201638201U (zh) * | 2009-10-26 | 2010-11-17 | 广东高新兴通信股份有限公司 | 一种应用于嵌入式系统的看门狗设备 |
CN101957790A (zh) * | 2009-11-26 | 2011-01-26 | 上海大学 | 微控制器多源看门狗的实现方法 |
JP2011145208A (ja) * | 2010-01-15 | 2011-07-28 | Hitachi Kokusai Electric Inc | 基板 |
CN103376865A (zh) * | 2012-04-23 | 2013-10-30 | 山东迪生电气股份有限公司 | 智能控制装置的一种复位方法 |
-
2014
- 2014-06-26 CN CN201410298589.8A patent/CN104063223B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN201638201U (zh) * | 2009-10-26 | 2010-11-17 | 广东高新兴通信股份有限公司 | 一种应用于嵌入式系统的看门狗设备 |
CN101957790A (zh) * | 2009-11-26 | 2011-01-26 | 上海大学 | 微控制器多源看门狗的实现方法 |
JP2011145208A (ja) * | 2010-01-15 | 2011-07-28 | Hitachi Kokusai Electric Inc | 基板 |
CN103376865A (zh) * | 2012-04-23 | 2013-10-30 | 山东迪生电气股份有限公司 | 智能控制装置的一种复位方法 |
Non-Patent Citations (1)
Title |
---|
"一种FPGA实现看门狗电路功能的方法";李丙玉;《硅谷》;20101231(第17期);第166页,图1-2 * |
Also Published As
Publication number | Publication date |
---|---|
CN104063223A (zh) | 2014-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104063223B (zh) | 一种fpga实现软件编程器件可控看门狗功能的方法 | |
CN102467477B (zh) | 一种波特率自适应的Modbus中继器和波特率自适应系统及方法 | |
CN101957790B (zh) | 微控制器多源看门狗的实现方法 | |
CN103440216A (zh) | 一种通过i2c从设备调试mcu的芯片及方法 | |
CN105302226A (zh) | 一种基于apb总线的多功能模式定时器电路 | |
EP2847682B1 (en) | Processor device with reset condition trace capabilities | |
EP2847683B1 (en) | Processor device with instruction trace capabilities | |
JP6841828B2 (ja) | 単一回線pmicホスト低レベル制御インターフェース | |
CN105260255A (zh) | 一种多处理器核片上系统的看门狗实现方法 | |
CN106227293A (zh) | 一种系统时钟 | |
CN107305526B (zh) | 一种用于微控制器的调试器 | |
CN102314403B (zh) | 用于mcu作为从器件识别i2c总线信号的装置及方法 | |
CN104079831A (zh) | 一种具有多路闪光同步信号的相机 | |
CN111049718B (zh) | Can总线模拟监控方法 | |
CN205384320U (zh) | 一种光电检测装置 | |
CN102890445B (zh) | 一种多功能定时器 | |
CN104333359B (zh) | 适用于智能手环的微处理系统多条件重启保护电路 | |
CN103064477A (zh) | 一种服务器主板设计方法 | |
CN207359076U (zh) | 一种机器人控制系统及机器人 | |
CN111158339B (zh) | Can总线模拟监控系统 | |
CN108107777A (zh) | 一种脉冲发送方法及系统 | |
CN202600693U (zh) | I2c总线启动与停止电路结构 | |
CN202205245U (zh) | 用于行车记录的看门狗电路 | |
CN107678847B (zh) | 一种数据实时处理系统及其实时处理方法 | |
CN106597912B (zh) | 一种异步定时/计数器之间的协同工作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |