Decoding SENT Protocol (SAE J2716) with PicoScope

Decoding SENT Protocol (SAE J2716) with PicoScope

A practical overview of SENT protocol encoding, tick time calculation and data packet decoding

SENT is a point-to-point unidirectional communication standard applied to sensors that convert analogue signals such as mass air flow, throttle position, pressure and temperature into digital signals.

SENT sensors have been utilized by vehicle manufacturers since the mid-2000s, given their advantageous properties, i.e. high-resolution output (12 bit), reduced wiring (2 sensors can be contained in a single sensor), robust design, reliability and digital communication characteristics (welcomed by ECUs).

Using a single cable, SENT sensors independently transmit concise operating parameters (e.g. Mass Air Flow (MAF)) via a series of voltage pulses assembled into single packets at high speed (SENT Fast) whilst simultaneously transmitting several pieces of less critical information (e.g. temperature, sensor characteristics) at slow speed via multiple packets (SENT Slow).

The ECU decodes SENT Fast packets to determine operating parameters (e.g. MAF) whilst reassembling multiple packets of SENT Slow data to determine less critical information (e.g. temperature).

In order to decode the voltage pulses from a SENT sensor to interpretable data, we need to understand the SENT protocol encoding according to the SAE J2716 specification. 

Starting with SENT, SE refers to Single Edge, which are our measure points within a pulse train, whilst NT refers to Nibble Transmission, where a nibble is a 4-bit (half-byte) variable voltage pulse, measured between falling edges, containing 16 possible values for transmission.

Guided by the J2716 specification, we are informed that the time interval between falling edges of consecutive voltage pulses reveals the 4-bit nibble value (0 – 15).

To determine the nibble value, we need to calculate the fundamental unit of time used by the SENT protocol, referred to as tick time.

SENT FAST

Figure 1. point 1 (Calibration pulse) 

Tick time can be calculated by dividing the measured time interval (µs) between the falling edge of the widest pulse (end of previous packet) and the falling edge of the following pulse (start of new packet) by 56. Here we find 168 µs / 56 = 3 µs tick time.

Note: Whilst tick time is typically 3 µs, it can range up to 90 µs; however, the measured time interval of the calibration pulse is always divided by 56. When the tick time is unknown, the measurement procedure above will provide a means to calculate the required value accurately.

Using the chart below, we can now convert the time interval of a voltage pulse (nibble) measured between the falling edges into a nibble value. For example, using a tick time of 3 µs and a measured time interval (nibble time) of 51 µs, we find the number of ticks to be 17 (51 µs / 3 µs), resulting in a binary nibble value of 0101 (Dec 5, Hex 05).

Article content

Figure 1. point 2 (Status & communication nibble pulse)

The Status pulse (4-bit / nibble) contains information surrounding the sensor mode of operation and fault condition (diagnostic information). In addition, further information in the form of a partial message (utilising 2-bits of the 4-bit status pulse) are transmitted over 16 fast packets (short serial message) or 18 fast packets (enhanced serial message) to form a complete message containing a variety of additional information, i.e. manufacturer code, sensor type, protocol version, error codes and linear transfer function characteristic values required to plot the output of the sensor. These completed messages (formed over multiple fast packets) are referred to as SENT Slow and are visible using the Pico SENT Slow decoder.

Figure 1. point 3 (Data nibble pulse)

The data nibble section of the SENT data packet is reserved for the output of the sensor in proportion to the measured parameter, utilizing a variety of configurations dependent upon the sensor type (i.e. 2 x 12-bit, 1 x 14-bit combined with 1 x 8-bit etc.) A maximum of 6 data nibbles can be transmitted in a single SENT packet, whereby the time interval of each data nibble pulse (measured between falling edges) in conjunction with the tick time equates to the nibble value.

The Data column in the decoder table displays each of the 6 data nibbles in hexadecimal format. Given the SENT sensor is a 12-bit + 12-bit Pressure sensor (i.e. 2 pressure sensors in one unit), the 6 data nibbles are divided equally, with the first 3 nibbles representing pressure sensor 1 and the following 3 nibbles representing pressure sensor 2.

If we focus on the highlighted packet 6 in the decoder table, we find 0D 02 0A are the 3 nibbles assigned to pressure sensor 1 and 03 07 03 are assigned to pressure sensor 2.

Using the data nibbles for pressure sensor 1, remove the 0 from each hexadecimal value to derive D2A, which is then converted from hexadecimal to a decimal value of 3,370. This process is then repeated for the remaining 3 data nibbles for sensor 2 (Hex 373, Dec 883).

Note: The decimal values of 3,370 and 883 are displayed in the decoder table under the Ch1 and Ch2 column headers, representing the decimal values of sensor 1 and 2, respectively.

Whilst Ch1 and Ch2 include decoded decimal values, they do not represent parameter units (i.e. bar, gm/sec etc.) as scale, offset and limit values are required (available via SENT Slow). However, you may choose to export the decoder table (.csv format), where graphing columns Ch1 and Ch2 will reveal a change of state (i.e. a change in pressure or Mass Air Flow in relation to an increase in engine speed).

Figure 1. point 4 (Checksum nibble pulse)

The checksum nibble contains a cyclic redundancy check (CRC), which is used for data verification and error detection. Based on the contents of the entire data packet (excluding the Status & communication nibble), the SENT sensor will generate and transmit a 4-bit CRC value, whereby the ECU will apply calculations based on the contents of the received packet to ultimately arrive at an identical value to the transmitted CRC. Should these CRC values fail to compute, an error is detected and managed accordingly.  

Article content

SENT Slow

SENT Slow utilizes a technique whereby 2-bits of data within the Status and communication nibble (Figure 1. point 2) of a SENT Fast packet are reserved for the transmission of either a Short serial message (over 16 SENT Fast packets) or an Enhanced serial message (over 18 SENT Fast packets).

SENT Slow data is reserved for less critical information, such as sensor ID, temperature, linear transfer function characteristics, error codes, protocol version and manufacturer codes, all of which (whilst relevant) are not essential to transmission over the SENT Fast protocol. 

The receiving ECU can reassemble multiple consecutive packets of SENT Fast data to decode the less critical information and utilize it accordingly (SENT Slow).

Figure 2. point 1

The PicoScope 7 SENT Slow decoder has been applied to our capture in conjunction with the SENT Fast decoder, providing a means to visualise both protocols in the graph view and table form.

Figure 2. point 2 (8-bit Message ID & Message ID)

8-bit message IDs are utilized for Enhanced Serial messages, where the PicoScope decoder table lists 2 column headers; the first is Message ID, which provides the 8-bit ID encoding (Message ID 03; packet 1), the second is an 8-bit message ID that includes a description assigned to ID 03 (Channel 1 /2 Sensor type; packet 1).

Whilst not always present, the linear transfer function characteristics of a sensor (which include coordinates X1, Y1 & X2, Y2) are described within the 8-bit message ID column along with their respective hexadecimal and decimal values under the Data & Data Value headers (Refer to Figure 2. point 4) Knowing these coordinate values will enable accurate decoding and plotting of data found in Ch1 and Ch2 columns of the SENT Fast decoder into their respective units (i.e. bar and gm/sec).

For more information on SENT decoding, please visit the Pico Auto forum here https://www.picoauto.com/support/viewtopic.php?t=22061   

Figure 2. point 3 (Enhanced serial message)

The Enhanced serial message column describes the SENT sensor message, where packet 1 indicates our sensor returns pressure values on channels 1 and 2 and supports temperature sensing via supplementary data transfer (SENT Slow).

Note: while a sensor supports supplementary data, it may not deliver the relevant data (i.e. temperature) as this is dependent on OEM requirements.

Figure 2. point 4 (Data & Data value)

The PicoScope decoder table conveniently displays transmitted SENT Slow data in hexadecimal format under the Data column and decimal form under the Data value column.

Note: the first zero from each hexadecimal value (nibble) is discarded before decimal conversion. For example, focusing on packet 4, our Data column indicates 3 nibbles represented in hexadecimal format containing the data 03 00 01, which in turn is translated to Hex 301 and converted to decimal 769 in the Data value column.

A 12-bit data field is utilized with an Enhanced serial message and transmitted over 18 consecutive SENT Fast packets. Referring to packet 1, the transmitted data (00 00 09) will be reassembled by the receiving ECU to define the less critical message content, such as sensor type, temperature and error codes.

Referring to the graph view, we can see how 18 consecutive SENT Fast packets are transmitted simultaneously (between the time rulers) to derive the SENT Slow data (00 00 09).

Figure 2. point 5 (CRC: Cyclic Redundancy Check)

The CRC is used for data verification/error detection and based on the contents of the serial message. The SENT sensor will generate and transmit a 4-bit CRC value for a short serial message or a 6-bit CRC value for an enhanced serial message. The receiving ECU will apply calculations based on the contents of the serial messages to ultimately arrive at an identical value to the transmitted CRC. Should these CRC values fail to compute, an error is detected and managed accordingly.

Article content

The above article serves as an introduction and overview of SENT. To dive deeper, please refer to official publications to broaden your knowledge and improve diagnostic skills. Thank you as ever for taking the time to read these articles and view the associated videos here: 


Written by Steve Smith AAE MIMI , Automotive Applications Specialist, Pico Technology

Roman Franta

Automotive Technical Training, CAN, SENT, Ethernet, Picoscope, data logging.

2mo

Hi Dalibor, there will be much more, next info is coming soon.

Like
Reply
Dalibor Plischke

Zapálený diagnostik, motocyklový nadšenec, zvídavý člověk (všechno ho zajímá)...

2mo

Ahoj Romane, musím říct, že ten nástroj je pecka. Budu si to Pico muset někdy pořídit 😊 👍 Přesně takovou věc jsem si vždycky přál - umět datovou zprávu převést na klasický analogový průběh jako např. signál MAF níže (zdroj https://www.picoauto.com/support/download/file.php?id=32587&sid=06538ec48d32f8f6a9fa27ddc0e3072b&mode=view). Opravdu skvělá práce.

  • No alternative text description for this image
Like
Reply

To view or add a comment, sign in

Others also viewed

Explore content categories