What is Synchronous versus Asynchronous I/O in SimWB?
Question
What is Synchronous versus Asynchronous I/O in SimWB ?
Answer
- Synchronous I/O
- Describes the I/O that takes place inside the simulation loop. The board must generate inputs or accepts outputs at the speed of the simulation. In synchronous I/O the simulation loop drives the I/O and the associated hardware devices and O/S drivers must run deterministically so as not to cause overrun in the simulation loop and leave enough idle time for the user model to run inside the loop.
- In synchronous I/O, inputs are generated at the beginning of the cycle providing for the user models which run next. The models then generate outputs that are processes by the output I/O tasks during the output sub-cycle at the end of the simulation loop.
- Examples of synchronous I/O devices are:
- Analog/digital input/outputs
- Synchro/Resolver
- Relay boards
- Asynchronous I/O
- When a device cannot run at the speed of the simulation loop. It must be processed asynchronously outside of the loop. Asynchronous I/O tasks can receive inputs at any time during the simulation loop on a schedule determined by the device itself. The asynchronous I/O tasks never write to the RTDB directly but update it during the input sub-cycle via a dedicated FIFO and SimWB scheduler sub-process.
- Examples of asynchronous I/O devices are:
- ARINC 429
- AFDX
- Serial ports
- 1553
- NETIO