SDI-12
SDI-12 is an asynchronous serial communications protocol for intelligent sensors that monitor environment data. These instruments are typically low-power, are used at remote locations, and usually communicate with a data logger or other data acquisition device. The protocol follows a client-server configuration whereby a data logger requests data from the intelligent sensors, each identified with a unique address.
History
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 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 was made in July 2016. The most recent version of the SDI-12 Specification, was released on January 30, 2021.
Versions
Version 1.0 was released in 1988.Version 1.1 was released in 1994. It was a rewriting and clarification of the version 1.0 specification under contract by Michael Jablonski's NR Systems and Campbell Scientific.
Version 1.2 was released in April 1996. It defines:
- Concurrent measurement command
- Address query command
- Change address command
- Continuous measurement command
- Cyclic Redundancy Check for data validation
- 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, 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.
- High volume commands which allow up to 999 parameters to be returned from a sensor.
- Metadata Commands which provide meta data information about the measurement, such as the parameter name and units.
Advantages
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
Drawbacks
- Specific electrical interface
- Baud rate limited to 1200
Details
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. Other sensors on the same line will not respond until called and typically stay in "sleep 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 standard provides guidelines on transient protection and does not require the use of a specific connector.