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.

24-4 Industrial Communication Systems<br />

Moreover, an ARINC 429 transmitter can transmit to a maximum of 20 receivers. While the ARINC<br />

429 data bus provides high determinism, point-to-point wiring has become a major problem in <strong>systems</strong><br />

composed of multiple emitting units.<br />

24.4 Integrated Modular Avionics<br />

The IMA concept has introduced the sharing of execution and <strong>communication</strong> resources. IMA hardware<br />

architecture, as described in the standard ARINC 651 [ARI91], is represented in Figure 24.3.<br />

Execution and <strong>communication</strong> resources are described as standard LRMs that are installed in common<br />

cabinets. Three types of modules have been designed: core modules for application execution, input–<br />

output modules for <strong>communication</strong>s with non-IMA equipment (existing LRUs), and gateway modules<br />

for communicating among cabinets. The ARINC 659 back plane data bus standard has been used for<br />

<strong>communication</strong> between modules hosted in the same cabinet [ARI93]. Communication among cabinets<br />

needs new aircraft data buses such as ARINC 629 [ARI99].<br />

ARINC 653 [ARI97] describes how many avionics sub<strong>systems</strong> can share the execution resources of<br />

an IMA architecture. In an ARINC 653 environment, an avionics subsystem is no longer implemented<br />

on a dedicated CPU or LRU but is viewed as a partition, to which is assigned a time window to execute<br />

its code on a shared core processing module (CPM). Each partition becomes a virtual CPU or LRU.<br />

A robust partitioning concept is introduced to guarantee isolation between sub<strong>systems</strong> running on the<br />

same execution computer. Spatial isolation is guaranteed by protecting the address space of each partition<br />

(for example, by a memory management unit). Temporal isolation is based on the static allocation<br />

of CPU time to each partition. Time partitioning guarantees that each user partition obtains a slice of<br />

time for execution as determined by the integrator as a worst-case execution time (easier to evaluate for<br />

<strong>systems</strong> that have mostly periodic processes). The main objective is to guarantee that an avionic subsystem<br />

running in a given partition will have no effect on other sub<strong>systems</strong> running in other partitions.<br />

Partitions communicate with each other by exchanging messages through <strong>communication</strong> ports. Two<br />

types of <strong>communication</strong> ports can be used: sampling ports (periodic data—only the last value of data<br />

is stored) and queuing ports (all the values of data are stored). A logical channel concept is used to link<br />

communicating ports (multicast scheme—1 emitter and N receivers) independently of the underlying<br />

data bus or network stack. Mechanisms are needed in order to schedule inputs–outputs according to the<br />

needs of each partition (for example, port sizes and depths must be determined on a worst case <strong>communication</strong><br />

basis). In conclusion, the ARINC 653 interface between application software and the run-time<br />

Backplane<br />

Backplane<br />

APEX/C APEX/C APEX/C APEX/C APEX/C APEX/C APEX/C APEX/C<br />

F1<br />

F2<br />

F1<br />

F3<br />

F1<br />

F2<br />

F3<br />

F1<br />

F3<br />

F1<br />

F3<br />

F1<br />

F2<br />

F2<br />

F1<br />

F1<br />

F3<br />

Aircraft data bus<br />

ARINC 429<br />

API<br />

API<br />

Eq F1<br />

Eq F2<br />

F1<br />

F3<br />

ARINC 429<br />

Eq F3<br />

FIGURE 24.3<br />

IMA avionics architecture.<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!