|This article needs additional citations for verification. (November 2014) (Learn how and when to remove this template message)|
SDI-12 (Serial Digital Interface at 1200 baud) is an asynchronous serial communications protocol for intelligent sensors that monitor environment data. These instruments are typically low-power (12 volts), are used at remote locations, and usually communicate with a data logger or other data acquisition device. The protocol follows a master-slave configuration whereby a data logger (SDI-12 recorder) requests data from the intelligent sensors (SDI-12 sensors), each identified with a unique address.
The first version of SDI-12 was released in 1988. It was designed by a coalition which included the U.S. Geological Survey's Hydrologic Instrumentation Facility (HIF) and a group of private companies.
The SDI-12 Specification is maintained by a non-profit corporation called the SDI-12 Support Group. The most recent upgrade (Version 1.4) was made in May, 2017.
Version 1.4 of SDI-12 defines:
- High volume commands (aHA! for ASCII and aHB! for binary format) which allow up to 999 parameters to be returned from a sensor.
- Metadata Commands (aIM!) which provide meta data information about the measurement, such as the parameter name and units.
Version 1.3 of SDI-12 defines:
- Electrical interface characteristics such as number of conductors, voltage logic levels and transitions, and line impedance.
- Communications protocol such as means of establishing contact with a specific address (sensor), the measurement command set, sensor response behavior, byte frame format and allowed characters.
- Timing requirements such as length of the break condition used to awaken sensors, minimum time between messages and length of time before a sensor enters a low-power state.
The standard provides guidelines on transient protection and does not require the use of a specific connector.
The specification document describes a number of advantages including:
- Interchangeability of sensors without reprogramming of data acquisition devices
- Power is supplied to sensors through the interface
- Ability to implement self-calibration algorithms within the sensor itself and use low-cost EEPROMs for information storage
- Applicability of training in SDI-12 to a variety of sensors and data recorders
The SDI-12 Specification is in the public domain.
Communication occurs over a single data line in half-duplex. The digital addressing system allows an SDI-Recorder to communicate with up to 62 individual sensors. Only the pre-configured sensor matching that address will respond (handshake). Other sensors on the same line will not respond until called and typically stay in "sleep mode" (low power mode), until called.
Electrically the protocol is a three wire digital connection: data, ground and 12 V. The data signal, using 5V logic levels is similar to RS-232 with the same asynchronous byte encoding. The inline data is human readable as the data is transmitted in ASCII.
All SDI-12 communications are transmitted in ASCII at 1200 baud with 7 data bits and an even parity bit. The standard also specifies a communications protocol that allows sensors to remain in a low-power sleep state until awoken by a serial break signal sent by the master. The first character of each command is a unique sensor address that specifies with which sensor the recorder wants to communicate. Other sensors on the SDI-12 bus ignore the command and return to low-power standby mode. The protocol also specifies a retry mechanism to overcome any data corruption. CRCs were introduced to the SDI-12 protocol with release of version 1.3.
The protocol is most commonly supported by hydrographic sensors (level and flow), water quality sensors, meteorological instruments, soil moisture and plant physiology. Less common but also known to be supported are sensors for the measurement of solar radiation, tilt (inclinometers), and other geophysical parameters.