Devices#

Devices are the endpoint of most ONI transactions. They can represent a physical element interfacing with the environment (e.g., an external sensor with a digital communication interface), something programmed within the firmware to emulate this (e.g., a digital logic module on an FPGA) or a purely internal data source (e.g., a controller based digital logic module that generates system status reports). Each device exposes a set of communication channels:

  • It MUST expose a register interface

  • It MAY expose a read stream

  • It MAY expose a write stream

Communication over streams MUST follow a specific sample format, while the register interface must comply with a specific bus communication cycle. Details on each are provided in following sections. Device developers MUST provide a datasheet describing the register map, stream data format, along with general behavior of the device in order to reach ONI-compliance.