首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
FPGA/CPLD可编程逻辑
» FPGA单芯片四核二乘二取二的安全系统
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
FPGA单芯片四核二乘二取二的安全系统
发短消息
加为好友
pengpengpang
(pengpengpang)
当前离线
UID
1023229
帖子
6106
精华
0
积分
3055
阅读权限
90
来自
中国
在线时间
156 小时
注册时间
2013-12-20
最后登录
2016-7-3
论坛元老
UID
1023229
来自
中国
1
#
打印
字体大小:
t
T
pengpengpang
发表于 2014-5-26 22:04
|
只看该作者
FPGA单芯片四核二乘二取二的安全系统
计算机系统
,
安全性
,
可靠性
,
成本
,
技术
二乘二取二系统的两套计算机系统各有两个CPU,并且所有结构和配件完全相同。两套系统之间采取双机热备份,大幅提高了系统可靠性,在一些领域得到了广泛应用。基于二乘二取二容错结构的计算机联锁系统在国外已有成熟的应用,如K5B和E132,其良好的可靠性和安全性引起国内业界的广泛关注。 系统可靠性冗余设计是提高系统可靠性的重要方法,但由于冗余会增加系统成本、体积和重量,因此必须合理地选择冗余结构和数量。对价格昂贵、重量大、体积大的冗余部分,更应作合理考虑。由于二乘二取二硬件冗余技术是通过多个相同部件完成同一功能,在提高系统可靠性的同时也存在一些不足:
◆增加了系统的成本、结构、重量和所需空间;
◆在某些情况下硬件技术的应用受到限制;
◆对大型复杂系统均采用硬件冗余技术是不可能的。
以上不足将限制二乘二取二冗余技术的应用,Fusion和coreABC的组合为以上问题提供了良好的解决方案。
1 二乘二取二系统
二乘二取二系统有4个CPU,两个CPU组成一组。每两个CPU的输出经比较器表决输出,两个CPU和一个比较器表决系统组成一个子系统。两个子系统具有完全相同的硬件结构,一个为主单元,一个作为备用单元。开机后两个子系统独立同步工作,系统取工作单元的输出为系统输出。当两个子系统均正常工作时,系统取主单元的输出为系统输出,若备用单元发生故障,系统输出仍为主单元的输出,备用单元进入维修状态。当主单元发生故障时,系统切换至备用单元,此时系统输出为备用单元的输出,主单元进入维修状态;一旦主单元维修完毕,可以正常工作时,则系统切换至主单元,取主单元的输出为系统输出。若主单元和备用单元均无法正常工作,则系统故障,系统无法继续正常工作。除子系统故障时系统自动切换外,系统还具有手动切换的功能。由于两个子系统具有完全相同的结构和进行完全相同的工作,所以手动切换不影响系统的正常工作。导致系统故障的因素有很多,根据不同的应用场合,需要针对不同的故障进行检测和维修。二乘二取二系统的工作示意图如图1所示。
2 系统的具体实现
在设计时,首先要考虑FPGA门电路的数量,以及嵌入4个软核所要占用的门阵列资源。其次,要考虑其他硬件资源,比如时钟、存储器等。综合各方面的考虑,本设计选择Actel的Fusion StartKit数模混合FPGA实现二乘二取二系统。Fusion StartKit数模混合FPGA拥有600万门门阵列,片内集成了Flash存储器、RAM、FIFO和模拟模块;片外提供48 MHz的晶振;支持coreABC软核的嵌入。
2.1 软核的嵌入
coreABC是一种具有高可配置性的软核,占用资源少,特别适于低端应用。它能够挂载可编程高级外围总线(APB),支持APB总线下的外围设备,通过coreAI直接控制ACM块,还可配置8位、16位和32位APB接口。可以通过APB总线控制coreAI核,进行电压、电流采集,以及模数转换。图2给出一种配置方案。coreABC可使用软/硬代码存储方式,本设计采用硬代码存储方式。硬代码存储方式只需占用门阵列资源,而软代码存储方式要占用Flash存储口资源。由于FPGA片内集成了2个Flash存储口,嵌入4个核时Flash存储口资源不足。Actel coreABC的推出对实现可配置的小系统极具意义,它使用很少的系统资源就可搭建起完整的控制单元。
2.2 比较电路的实现
二取二CPU的比较电路采用冗余设计,它主要负责对coreABC软核的总线信号进行比较判决,保证系统正常运行,其电路图如图3所示。比较电路的工作原理为:片外寄存器分别从两个CPU获得总线数据信息,经异或模块OE1=A1+A2,OE2=B1+82进行判断,分别控制数据锁存器输出,并配合时钟信号控制锁存器同步输出;从锁存器输出的数据经或电路处理后形成比较结果,即DATA_OUT=D1+D2。若比较结果确认CPU此次运算一致,则系统正常输出;若比较电路确认CPU运算有误,则重新进行运算。
此外,在对CPU输出数据进行比较的同时,比较电路还对CPU是否正常工作进行故障诊断。诊断正常则反馈CPU正常工作信息,使CPU进行下一周期的工作;诊断为故障则反馈CPU错误信息,此时系统切换,取另一组子系统的输出为系统输出,故障子系统进入维修状态。这样确保了系统的可靠性、安全性。
2.3 系统切换
系统切换是二乘二取二系统首要的功能要求,当工作单元出现故障,或者手动切换时,要求进行系统切换。本设计进行了两组故障检测。
首先,为每个子系统的两个coreABC分别设置两个看门狗定时器,要求两个coreABC向各自的看门狗发送周期自检信号。若看门狗在溢出前收到该信号则CPU正常工作,否则溢出,该CPU判为故障。子系统的两个CPU中,只要有一个出现故障,在备机正常的情况下,系统就进行切换。其次,将CPU输出结果和子系统输出结果进行比较,若相同则系统正常,否则系统故障。若备用单元正常,则系统切换,取备用单元输出为系统输出。
将主单元和备用单元的看门狗溢出信号分别记为WD_PLUSE_1、WD_PLUSE_2,比较器判决信号记为COM_RESULT_1、COM_RESULT_2,手动切换信号记为SWITCH_1、SWITCH_2。只要系统故障或手动切换时,系统进行切换,由此可得切换信号为:
AUTO_RST_1=WD_PLUSE_1 ‖COM_RESULT_1 ‖SWITCH_1
AUTO_RST_2=wD_PLUSE_2 ‖COM_RESULT_2 ‖SWITCH_2
系统切换通过以下语句实现:
SYS_OUT=(AUTO_RST_1&&AUTO_RST_2)?1'bz:((AUTO_RST_1)?COM_OUT_2:COM_OUT_1);
若主机正常工作,则输出取主机的比较输出;若主机故障,在备用单元正常时,则系统切换取备用单元的输出;若主机修复,则切换到主机工作;若两个子系统均故障,则系统故障。实现的流程如图4所示。
对二乘二取二系统结构分析可知,二乘二取二结构同其他冗余方法双模和三模结构相比,系统的安全性可以在较长时间内保持在一个很高的水平。同时二乘二取二结构的系统可靠性和平均寿命等指标均较高,所以是一种综合性能比较好的冗余结构。
结 语
本文选择了合适的开发板资源,提出一种在FPGA中嵌入4个coreABC软核,实现二乘二取二系统的方法。恰当地利用单芯片有限的资源,嵌入4个coreABC软核,遵循二乘二取二系统的工作原理,合理实现二取二总线比较判决、故障检测和二乘系统切换,经综合后烧入,检验系统功能完全正常。
本设计的优势在于单芯片的功耗更小、电路设计更加便捷、系统可靠性和安全性更高、体积小、易维护和易升级换代,符合现阶段我国联锁系统向模块化、智能化、功能多样化方向发展的要求,大大扩展了嵌入式系统应用的广度和深度。嵌入式系统在应用领域发展迅速,随着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
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议