23.03.2017 Views

wilamowski-b-m-irwin-j-d-industrial-communication-systems-2011

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Functional Safety 21-15<br />

implementing the marching bit test [HOE86]. The level of the diagnostic coverage depends on the faults<br />

revealed by the test. Tests with a high level detect faults according to the DC-fault model, others only<br />

detect stuck-at faults [IEC61508].<br />

Tests of the nonvolatile read-only memory rely on safety measures like parity bits, checksums, or<br />

CRCs, whereas diagnostic coverage of the first is low and the last is high. The data stored is split up in<br />

blocks of equal length and each block is safeguarded with a safety measure. During operation, the CRC<br />

or checksum of the block is recalculated and verified with the stored one. In case of equality, the integrity<br />

of data is guaranteed.<br />

The CPU test consists of the test of the registers used (equal to the test of the volatile memory), the<br />

stack test, the flag test, and the test of the CPU’s arithmetic logic unit (ALU):<br />

• Stack test: Testing the stack pointer without manipulation of the program flow is not possible.<br />

Consequently, the stack test is reduced to the verification of a stack overflow, which is the most<br />

common stack fault. Therefore, a defined bit mask is stored at the upper and lower bound of the<br />

stack. It is checked periodically, if the bit mask remains unchanged. In case of a changed bit mask,<br />

it is obvious that a stack overflow occurred resulting in an undefined and unsafe behavior.<br />

• Flag test: Testing the flags is done by setting and resetting the CPU flags and verification of the<br />

results. In addition, the conditional execution of instructions has to be verified.<br />

• Arithmetic logic unit: The test of the ALU should cover all physical paths within the CPU.<br />

Obviously, the problem is that the entire CPU layout is unknown and, more important, too complex<br />

for a comprehensive analysis. In order to address this problem, the instruction set of the<br />

microcontroller is separated into command classes. Command classes are, e.g., the AND and<br />

the MOV command. For every command class, the input values are chosen so that every bit of the<br />

output performs a “1–0” and a “0–1” transition.<br />

All the safety requirements and safety measures result in additional safety-related firmware. In most<br />

cases, it is logically located above ISO/OSI layer 7 of the standard protocol stack. And another consequence<br />

is that mostly a dual channel hardware architecture (see Table 21.4) is required. In other words,<br />

the standard hardware of a node is extended with a safety controller to allow cross-comparison of data.<br />

Acronyms<br />

1oo2<br />

DC<br />

EUC<br />

FIT<br />

FMEA<br />

FTA<br />

GSN<br />

HAZOP<br />

SIL<br />

One out of two<br />

Direct current<br />

Equipment under control<br />

Failure in time<br />

Failure mode and effect analysis<br />

Fault tree analysis<br />

Goal structuring notation<br />

Hazard and operability study<br />

Safety integrity level<br />

References<br />

[BOE04] J. Börcsök. Electronic Safety Systems. Hüthig Verlag, Heidelberg, Germany, 2004, 107 pp.<br />

[DS00-58] Ministry of Defence. HAZOP studies on <strong>systems</strong> containing programmable electronics. U.K.<br />

Defence Standard. Def Stan 00-58. Ministry of Defence, Glasgow, U.K., 2000.<br />

[GIE95] K. Gieck and R. Gieck. Technische Formelsammlung. Gieck Verlag, Germering, Germany, 1995.<br />

[GS-ET26] BG-PRÜFZERT, Fachausschuss Elektrotechnik. GS-ET-26—Bussysteme für die Übertragung<br />

sicherheitsrelevanter Nachrichten. Prüfgrundsätze, Köln, Deutschland, Germany, 2002.<br />

© <strong>2011</strong> by Taylor and Francis Group, LLC

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!