找回密码
 注册
关于网站域名变更的通知
查看: 524|回复: 1
打印 上一主题 下一主题

FPGA单芯片四核二乘二取二的安全系统有哪些限制?该如何解决这些问题?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-4-15 10:16 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
二乘二取二系统的两套计算机系统各有两个CPU,并且所有结构和配件完全相同。两套系统之间采取双机热备份,大幅提高了系统可靠性,在一些领域得到了广泛应用。基于二乘二取二容错结构的计算机联锁系统在国外已有成熟的应用,如K5B和E132,其良好的可靠性和安全性引起国内业界的广泛关注。
  [% Y- b$ C: o, v2 b% H/ E

系统可靠性冗余设计是提高系统可靠性的重要方法,但由于冗余会增加系统成本、体积和重量,因此必须合理地选择冗余结构和数量。对价格昂贵、重量大、体积大的冗余部分,更应作合理考虑。由于二乘二取二硬件冗余技术是通过多个相同部件完成同一功能,在提高系统可靠性的同时也存在一些不足:

◆增加了系统的成本、结构、重量和所需空间;

◆在某些情况下硬件技术的应用受到限制;

◆对大型复杂系统均采用硬件冗余技术是不可能的。

FPGA单芯片四核二乘二取二的安全系统有哪些限制?该如何解决这些问题?

1 二乘二取二系统
& N4 K- ^4 U9 `$ i
& \% V  V( Q: y2 |: H二乘二取二系统有4个CPU,两个CPU组成一组。每两个CPU的输出经比较器表决输出,两个CPU和一个比较器表决系统组成一个子系统。两个子系统具有完全相同的硬件结构,一个为主单元,一个作为备用单元。开机后两个子系统独立同步工作,系统取工作单元的输出为系统输出。当两个子系统均正常工作时,系统取主单元的输出为系统输出,若备用单元发生故障,系统输出仍为主单元的输出,备用单元进入维修状态。当主单元发生故障时,系统切换至备用单元,此时系统输出为备用单元的输出,主单元进入维修状态;一旦主单元维修完毕,可以正常工作时,则系统切换至主单元,取主单元的输出为系统输出。若主单元和备用单元均无法正常工作,则系统故障,系统无法继续正常工作。除子系统故障时系统自动切换外,系统还具有手动切换的功能。由于两个子系统具有完全相同的结构和进行完全相同的工作,所以手动切换不影响系统的正常工作。导致系统故障的因素有很多,根据不同的应用场合,需要针对不同的故障进行检测和维修。二乘二取二系统的工作示意图如图1所示。' J0 ]% o8 V9 a" n0 Q
1 @% s2 ^4 f1 z+ `8 G  g


/ h  r8 W2 Y0 G4 b
- ?$ i' ^/ n& G0 S8 J! f8 S2 系统的具体实现2 g, F. P& R% P" g) J: B

3 V0 L; b- `' R9 C' {在设计时,首先要考虑FPGA门电路的数量,以及嵌入4个软核所要占用的门阵列资源。其次,要考虑其他硬件资源,比如时钟、存储器等。综合各方面的考虑,本设计选择Actel的Fusion StartKit数模混合FPGA实现二乘二取二系统。Fusion StartKit数模混合FPGA拥有600万门门阵列,片内集成了Flash存储器、RAM、FIFO和模拟模块;片外提供48 MHz的晶振;支持coreABC软核的嵌入。3 o6 S6 }4 ~) V6 d$ h% k' B

6 ~. h; R. U: b- j; a# o2.1 软核的嵌入: I4 D6 L7 _4 q! m; _
9 J; G0 f/ A2 J/ f8 C0 f0 ~# ]
coreABC是一种具有高可配置性的软核,占用资源少,特别适于低端应用。它能够挂载可编程高级外围总线(APB),支持APB总线下的外围设备,通过coreAI直接控制ACM块,还可配置8位、16位和32位APB接口。可以通过APB总线控制coreAI核,进行电压、电流采集,以及模数转换。图2给出一种配置方案。coreABC可使用软/硬代码存储方式,本设计采用硬代码存储方式。硬代码存储方式只需占用门阵列资源,而软代码存储方式要占用Flash存储口资源。由于FPGA片内集成了2个Flash存储口,嵌入4个核时Flash存储口资源不足。Actel coreABC的推出对实现可配置的小系统极具意义,它使用很少的系统资源就可搭建起完整的控制单元。
8 A- n) I, Z; R# g( @& P- |3 j% O9 U- M( u) g1 V$ _6 h
  _. ]; M- y! e/ a4 O
5 F, U4 i0 ]; M# u
2.2 比较电路的实现3 ?$ B; t+ m% m, d- ~4 l. O
  Q  h7 W6 k2 g; b7 l
二取二CPU的比较电路采用冗余设计,它主要负责对coreABC软核的总线信号进行比较判决,保证系统正常运行,其电路图如图3所示。比较电路的工作原理为:片外寄存器分别从两个CPU获得总线数据信息,经异或模块OE1=A1ÅA2,OE2=B1ÅB2进行判断,分别控制数据锁存器输出,并配合时钟信号控制锁存器同步输出;从锁存器输出的数据经或电路处理后形成比较结果,即DATA_OUT=D1+D2。若比较结果确认CPU此次运算一致,则系统正常输出;若比较电路确认CPU运算有误,则重新进行运算。; t, d" L& U! _7 k6 v8 |
) Y; [+ V  w" f
2 _) ]3 \& c( V: Q

( G" C, e5 \, U" U" H2 c5 ?" Y8 i此外,在对CPU输出数据进行比较的同时,比较电路还对CPU是否正常工作进行故障诊断。诊断正常则反馈CPU正常工作信息,使CPU进行下一周期的工作;诊断为故障则反馈CPU错误信息,此时系统切换,取另一组子系统的输出为系统输出,故障子系统进入维修状态。这样确保了系统的可靠性、安全性。
6 |$ |1 V) K0 w. v- M% Z, O
( e2 C0 @& G+ W; O5 Z8 J! G2.3 系统切换
# O4 ^- Z* K) K  B+ i! a9 I  l  i0 C- [
系统切换是二乘二取二系统首要的功能要求,当工作单元出现故障,或者手动切换时,要求进行系统切换。本设计进行了两组故障检测。$ O$ f# p5 w* F6 y+ ^6 V# [, Q9 p
* ]$ |) L$ [2 w: r2 N; P4 a% _8 I0 B
首先,为每个子系统的两个coreABC分别设置两个看门狗定时器,要求两个coreABC向各自的看门狗发送周期自检信号。若看门狗在溢出前收到该信号则CPU正常工作,否则溢出,该CPU判为故障。子系统的两个CPU中,只要有一个出现故障,在备机正常的情况下,系统就进行切换。
1 v  i* h$ i$ v. r% D- m3 U9 {4 {( L1 M& G5 I% `# Y; z. H& X. d
其次,将CPU输出结果和子系统输出结果进行比较,若相同则系统正常,否则系统故障。若备用单元正常,则系统切换,取备用单元输出为系统输出。
; T9 X- g; A* d4 Z* b' K/ ^4 P: N: y' R% U& G( l$ h6 f
将主单元和备用单元的看门狗溢出信号分别记为WD_PLUSE_1、WD_PLUSE_2,比较器判决信号记为COM_RESULT_1、COM_RESULT_2,手动切换信号记为SWITCH_1、SWITCH_2。只要系统故障或手动切换时,系统进行切换,由此可得切换信号为:
. L9 m1 v, f+ M/ i$ o
: C: y. o: i/ y  x3 C) }+ n+ U/ R6 oAUTO_RST_1=WD_PLUSE_1‖COM_RESULT_1‖SWITCH_1+ g' u2 C# l0 L. q1 v! |
AUTO_RST_2=WD_PLUSE_2‖COM_RESULT_2‖SWITCH_2
" K% m# H8 _. m9 h4 O. G
) c; _1 _: s5 X: s1 e7 c' u7 r系统切换通过以下语句实现:
" L9 A. h$ |" f- m
+ k6 [) n1 O( r9 j3 e) A: V  [SYS_OUT=(AUTO_RST_1&&AUTO_RST_2)?1bz:((AUTO_RST_1)?COM_OUT_2:COM_OUT_1);& i# i3 I0 }4 \. m

6 M# ^# k9 n$ H. q' S若主机正常工作,则输出取主机的比较输出;若主机故障,在备用单元正常时,则系统切换取备用单元的输出;若主机修复,则切换到主机工作;若两个子系统均故障,则系统故障。实现的流程如图4所示。
! _7 l  ^' \7 Q: o+ h- Q8 {3 M
. Y5 l# ]0 x8 ~$ x" _% X; b& c
; D1 w+ z* {  ^, D+ x
8 U6 p; D8 k5 Z对二乘二取二系统结构分析可知,二乘二取二结构同其他冗余方法双模和三模结构相比,系统的安全性可以在较长时间内保持在一个很高的水平。同时二乘二取二结构的系统可靠性和平均寿命等指标均较高,所以是一种综合性能比较好的冗余结构。
# p( w& q2 E! ~, X0 \( |, p9 g

结语. k) c3 Y7 q6 t! A% O- z$ a
$ _8 A" E0 o  |+ K
本文选择了合适的开发板资源,提出一种在FPGA中嵌入4个coreABC软核,实现二乘二取二系统的方法。恰当地利用单芯片有限的资源,嵌入4个coreABC软核,遵循二乘二取二系统的工作原理,合理实现二取二总线比较判决、故障检测和二乘系统切换,经综合后烧入,检验系统功能完全正常。
7 C& U6 R2 h' P! }9 r7 \
! j- r2 b3 n5 v8 o  e/ v4 j) @本设计的优势在于单芯片的功耗更小、电路设计更加便捷、系统可靠性和安全性更高、体积小、易维护和易升级换代,符合现阶段我国联锁系统向模块化、智能化、功能多样化方向发展的要求,大大扩展了嵌入式系统应用的广度和深度。嵌入式系统在应用领域发展迅速,随着FPGA技术的进步,单芯片内的逻辑门电路数量更多,软核的编写更加成熟。单芯片多软核的二乘二取二系统具有更强的生命力,它的高可靠性和低成本势必带来广阔的应用空间。


( \3 O5 U4 B$ W  D$ H. h

该用户从未签到

2#
发表于 2020-4-15 10:47 | 只看该作者
两个子系统具有完全相同的硬件结构,一个为主单元,一个作为备用单元
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-18 21:59 , Processed in 0.140625 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表