台湾DM&P集团于2007年推出All-in-One Embedded Total Solution高度集成SoC处理器Vortex86SX。该Vortex86SX以中低阶嵌入式及工业应用为主要目标,采用x86兼容运算核心,及单片581颗锡球BGA包装,其0.13 micron制程能让此款SoC体积止于27×27mm。另外,运算速度可达300MHz标准。在基本架构则以32位×86为主体设计,并集成丰富的接口,特别是此SoC内建的容错功能更是成为军工界的一个标准,并以其低成本、易实现和操作简单实用的特点迅速在业界中推广开来。
Vortex86SX内建的容错功能实现非常简单,且功能强大。它主要有以下几大特点:
l Master/Slave主板谐调工作
l 可诊断六种不可预知的系统死机故障
l Master/Slave主板可在1 us(10的负6次方秒)内转换
l 可抑制Slave主板下的ISA总线
l 可编程抑制Slave主板的I/O端口(在BIOS中设置)
l 设计高速串口作Master/Slave主板间的数据传输
l Master/Slave主板各提供4KB SRAM作数据交换与备份
l 支持系统死机计数
由于Vortex86SX内建了容错功能,并在设计CPU之初就已考虑用户使用方便易操作性。我们现就以下几部分介绍容错功能。
1. CMOS设置部分
构建一套容错系统需两块功能相同并嵌有Vortex86SX SoC主板,分别在CMOS中将其容错功能打开,其具体位置在 “Chipset → SouthBridge Configuration→ Redundancy Control Configuration” 下,如下图:
图1
如上图所示,Vortex86SX CPU提供了Dual Port 4KB SRAM空间给用户作数据交换与备份使用,其内存开始地址为000D000;还有提供了COM9作数据传输端口;并在CMOS中有设计可选择设置KB/MS、GPIO、LPT(并口)和串口TRI-State(抑制)状态。
2. 硬件操作部分
准备两片功能相同并嵌有Vortex86SX SoC的主板,根据客户各自要求分别设置其CMOS选项。我们公司的许多工控主板上都有设计一个特殊的接口---容错技术接口,如VSX-6154主板J7接头,其定义分别是Pin1(GND)、Pin2-Pin3(System Fail in/out)、Pin4-Pin5(GPCS0/SYS-GPCS-IN)、Pin6-Pin7(TXD9/RXD9)。如下图,由VSX-6154主板A和B通过PC104总线和“BoR”叠加在一起构成一套容错系统。(我们将VSX主板J7连接线命名为BoR=Bridge of Redundancy)
图2
注意:BoR线缆的接法:VSX主板A J7 “Pin2-Pin3”、 “Pin4-Pin5”、 “Pin6-Pin7”和VSX主板B J7相同的信号线两两交叉互连,GND“Pin1-Pin1”对接,如下图。
图3
当您将两块VSX主板的BoR和ISA Bus连接好后就可以上电工作,这两块VSX主板的电源可以是同一电源,也可以是两个独立的电源。两块VSX主板的M/S关系是由BoR的pin2-pin3根据两块主板上电工作的先后来判定的,先上电工作的VSX主板自动被指定为“Master”,另一块则为“Slave”。
以下是处于“Slave”状态下VSX主板的容错设置:
1.“Slave”主板的ISA Bus被抑制(Tri-state)。(注意:这是为了避免两块VSX主板通过ISA Bus叠加起来发生控制/数据/地址总线冲突)
2.“Slave”主板可通过CMOS设置I/O接口是否被抑制,其位置在“Chipset →South Bridge →Redundancy Control Configuration”。请注意I/O接口是指“UART”、“LPT”、“GPIO”和“KB/MS”,其他的I/O接口(如PCI、USB和LAN)不会抑制。其以上I/O接口是否被抑制主要根据两块VSX主板的I/O(如COM1)是否要连接到同一设备。
3.功能介绍部分
BoR的Pin2-Pin3连接回路称为“Diagnose Circuit”(诊断回路)。它不仅是判定VSX主板M/S关系,还可以侦测6种不可预知的系统故障,如“看门狗0/1”、 “硬件复位”、 “软件控制”、 “手动转换”、 “非法指令”等等。一旦发生其中一种的故障,“Master”主板就会发出信号通知“Slave”主板,然后两块VSX主板在1us内转换Master/Slave关系。
我们公司VSX系列主板都有设计2-Pin 的System-Fail-Switch接头。将此接头短接则将“Master”状态推给对方,即使对方在1us内转换成“Master”状态。
BoR的Pin4-Pin5连接回路是M/S的4KB SRAM内存映射回路,即VSX主板内建“4K dual-port SRAM”占用内存启始地址“Hex D000”。通过GPCS0内存映射“Slave”主板的“4K dual-port SRAM”启始地址“Hex C800”。因此,您可以通过“Memory Mapping”方式移动数据。例如,您可以将数据移动到“Master”主板内建的“4K SRAM”内存区中(基地址:D000:0000),也可以将数据移动到基地址为C800:0000内存区中。当您将数据移动到C800:0000中时,实际上是您将数据移动到了“Slave”主板的“4K SRAM”内存区中,即您可以在“Slave”主板的基地址D000:0000内存区中访问到同一数据。通过VSX主板的这一功能,就可以很容易地做到两块主板间的数据交换和备份。
由于“Slave”主板的ISA Bus是被抑制的。故只有“Master”主板能同时访问(读/写)内建的“4K dual-port SRAM”和通过GPCS解码器访问“Slave”主板的“4K dual-port SRAM”。当然,“Slave”主板也能访问自身内建的“4K dual-port SRAM”。
为了能使用两块主板的“4K dual-port SRAM”,您必须打开“Chipset → SouthBridge Configuration → Redundancy Control Configuration → Dual Port 4KB SRAM”,如图1。
为了使“Master”主板能访问“Slave”主板的“4K dual-port SRAM”,您必须将两块VSX主板的CMOS设置中“Chipset → SouthBridge Configuration → GPCS Configuration”选项“GPCS0 Function”打开,如下图。