首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
MCU 单片机技术
» 基于CPLD的系统硬件看门狗设计
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
基于CPLD的系统硬件看门狗设计
发短消息
加为好友
我是MT
当前离线
UID
1023166
帖子
6651
精华
0
积分
3328
阅读权限
90
来自
燕山大学
在线时间
230 小时
注册时间
2013-12-19
最后登录
2016-1-5
论坛元老
UID
1023166
性别
男
来自
燕山大学
1
#
打印
字体大小:
t
T
我是MT
发表于 2014-5-5 19:19
|
只看该作者
基于CPLD的系统硬件看门狗设计
硬件
引言
在以单片机、DSP等处理器为核心的数字系统中,看门狗是不可缺少的一部分,特别是在对可靠性要求极高的系统中,如箭上伺服控制器,由于箭体内强弱电交叉使用,或者地面测试环境复杂多变,会产生诸多干扰和辐射。它们的冲击会使CPU在执行指令时的地址码或操作码发生变化,甚至将操作数作为操作码执行,导致程序跑飞。为使系统在规定时间内重新正常工作,一种有效的措施是采用硬件看门狗技术。
本设计的最初思路来源:实现高可靠性数字伺服控制器软、硬件看门狗的双冗余设计要求,目前缺少军品级国产化硬件看门狗器件,在满足系统要求的情况下减少元器件的种类。
1 看门狗技术的实现方式
看门狗实现方式可分为以下两种:
硬件看门狗——采用一个独立于CPU的定时器电路或芯片,如MAX706或TPS3823等,周期性地产生复位脉冲,而CPU必须及时“喂狗”(在复位脉冲发出前对此定时器进行清零处理),否则看门狗发挥作用,复位脉冲会使CPU重启。
软件看门狗——利用CPU内部的定时器中断替代看门狗定时器电路,在中断程序中复位CPU,这同样发挥了看门狗的作用。但由于CPU中断存在优先级、屏蔽以及中断自身故障等原因,都可能导致软件看门狗工作异常。软件看门狗往往采用一些其他软件设计措施提高其可靠性。
2 基于CPLD的硬件看门狗设计
2.1 硬件平台
此设计基于箭上数字伺服控制器,以TI公司的(下面简称为DSP)为控制核心,SM1032则用来实现对A/D、D/A和1553B 总线的片选信号和逻辑控制信号译码,并在此基础上增加了硬件看门狗功能。与其相关的电路连接如图1所示,其中看门狗使能信号EN与DSP_JTAG电路相连,在DSP下载程序或在线仿真时可通过专用的JTAG工装电缆禁止看门狗功能,防止看门狗的误操作。
图1 TMS3320F2812电路连接图
本设计适用于以微控制器与FPGA或CPLD联合使用的数字控制系统中。利用FPGA或CPLD的剩余资源设计看门狗模块,相当于硬件看门狗的一种,其基本功能和特点有:当软件跑飞且主控芯片内部看门狗工作异常时,可为系统进行复位操作;可关闭主控芯片内部的软件看门狗,优化软件代码;可节省专用的看门狗芯片,且在不同时序要求上灵活修改;可根据系统要求增加与主控芯片的握手信号。
2.2DSP上电过程及复位时序分析
DSP 上电初始化时序如图2所示。WDT是喂狗信号输出,在定时器中断或主循环中使其电平周期性取反;RST是上电复位信号。Trst是上电复位信号的脉宽,约为100 ms;Twork是从上电时到首次进入定时器中断程序的时间,约为130 ms。在主程序中首先使WDT输出低电平,则从上电复位完成到WDT变为低电平的时间A为DSP复位后自身的各项配置所占用的时间。在定时器中每次取反 WDT信号,则到WDT第一次变为高电平的时间B为各软件模块及中断初始化所占用的时间。A+B为系统初始化所用的时间,约为30 ms。
图2 DSP上电初始化时序
由此可见,如果系统程序跑飞,则每次复位都要经过A、B两个过程,约30 ms的时间;那么在CPLD软件的看门狗模块中,每次在给出复位信号后都要等待DSP的初始化完成(约30 ms)后再开始对喂狗信号监测并计时。
选择看门狗定时器溢出上限以5 ms为例,从程序跑飞到重新正常运行大约35 ms。设定控制系统给伺服发送控制指令信号的周期是20 ms,伺服机构常态速度10°/s,最大速度是20°/s,20 ms的时间摆动的角度是0.2°和0.4°,该角度是其控制姿态的最小步长,因此35 ms以内的热复位时间最多丢失两条指令,伺服机构在可控范围之内。此外,软件代码还有一定的优化余量,初始化时间和看门狗定时器溢出上限还可进一步减少。
2.3 看门狗设计要考虑的几点问题
① 喂狗方式:可分为电平喂狗和边沿喂狗,本设计采用后者。与电平喂狗相比较,边沿喂狗在状态机的设计中可以减少状态数量,从而节省CPLD资源,且DSP的喂狗也很容易,只要取反WDT电平,就可被认为已喂狗,简化软件代码。
② 定时器溢出上限:根据具体需要灵活设定,这里暂定5 ms。
③ 输出系统复位信号脉宽:这里只要超过DSP所需的512个时钟周期即可,以30 MHz晶振为例,时长约为171 μs。
④ 系统上电初始化时间:系统上电复位后DSP需要一断时间初始化,而这段时间内不能喂狗,所以CPLD不能检测是否有喂狗信号,否则会造成连续的错误复位,使DSP无法正常工作,因此在CPLD代码设计时需要越过初始化阶段再去检测喂狗信号。
⑤ 与主控芯片的握手信号:根据系统任务需求,可增加与主控芯片的握手信号。例如,当主控芯片需要实现总线写程序功能时,对DSP片内的Flash进行写操作,此时不能对DSP进行复位,DSP也无法输出喂狗信号,这就需要在总线写程序之前通过总线与CPLD实现握手与应答,关闭看门狗功能,程序写入完成后系统重新加电即可正常工作。为了简化功能描述,本设计未加入握手设计。
2.4 看门狗状态机的设计
此设计采用Mealy 型状态机,使用Verilog HDL语言编写代码,信号、寄存器说明如下所示:Count,时间计数器;NUM1,定时器溢出上限(5 ms);NUM2,输出复位脉冲宽度(大于171 μs);NUM3,上电复位后等待DSP初始化的时间(30 ms);WDT_flag,3位宽移位寄存器,接收喂狗信号,比较首末位是否相等来判断是否有喂狗信号;SYS_RST,看门狗输出的系统复位信号;WAIT、IDLE、ADDING、ERROR、KEEPING,状态机的5个状态;EN,看门狗功能使能信号,高电平禁止,低电平使能。
图 3为状态转移图。在任意状态时如果EN使能信号被禁止,则状态机进入IDLE状态。在图上不一一标出EN的条件转移曲线。系统上电复位后进入WAIT状态,等待NUM3时间使DSP完成初始化;进入IDLE状态,如使能看门狗功能;进入ADDING状态累加计时,如果在限定时间NUM1内监测到喂狗信号,表明程序运行正常,返回IDLE状态等待下一次喂狗信号,如果超过NUM1未收到喂狗信号,认为程序已经跑飞,进入EEROR状态;EEROR状态中输出复位信号并清零计数器;进入KEEPING状态,使低电平保持一段时间NUM2,这段时间超过DSP所需的复位时间即可;进入WAIT状态,复位后重新等待DSP完成初始化,循环往复。
图3 状态转移图
图4 仿真波形1
3 基于CPLD的硬件看门狗的仿真与验证
3.1 功能仿真
使用Modelsim软件进行功能仿真,可以看出EN信号和WDT(喂狗信号)的变化对SYS_RST输出的影响。编写测试文件对EN使能、禁止,WDT信号喂狗间隔小于、大于定时器溢出上限,以及不喂狗等情况进行仿真。
仿真波形1如图4所示。EN处于使能状态,WDT在限定时间内有边沿变化时,对应的移位寄存器也发生变化,使 WDT_flag[2]!=WDT_flag[0],喂狗成功,不会输出复位信号;在SYS_RST第二个低电平处,对应的WDT超过了限定时间没有变化,故输出复位信号。
仿真波形2如图5所示。由仿真波形可看出,在EN高电平时,不会输出喂狗信号,使能信号测试通过,喂狗信号在EN使能时如不能在限定时间内喂狗,则输出系统复位信号。由仿真波形看出功能得到实现。
3.2 硬件平台验证
图5 仿真波形2
在伺服控制器上对基于CPLD的硬件看门狗功能进行验证。DSP上电初始化完成后,先正常输出喂狗信号一段时间,然后停止输出喂狗信号,通过示波器捕获 CPLD输出的系统复位信号,波形如图6所示,光标1是系统复位信号SYS_RST波形,光标2是DSP输出的喂狗信号WDT波形。从波形图前半段可以看出,WDT正常喂狗时,SYS_RST保持高电平,当WDT保持高电平一段时间后SYS_RST输出低电平,实现系统复位。复位后经过一段时间的初始化过程后,WDT开始正常喂狗。
图6 看门狗实现复位的波形图
通过以上软件的功能仿真和硬件平台上的验证,可以看出,基于FPGA/CPLD的系统外部硬件看门狗的功能得到实现,与预期目标吻合。
结语
在数字伺服控制系统中,利用其中已包含的CPLD或FPGA电路设计硬件看门狗模块,既可以满足系统对硬件看门狗功能的需求,又可以节省专用的看门狗芯片,节省电路板的空间,提高了系统的可靠性,提高了可编程逻辑器件的资源利用率,并且可以针对不同的系统上电、复位等时序要求灵活配置时间参数。经验证,设计达到了看门狗电路的功能要求,能够有效保证软件的可靠性,亦可应用于其他数字控制系统平台。
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议