Output Modes

From indie Semiconductor Wiki
Revision as of 09:07, 16 August 2019 by Pelin (talk | contribs)
Jump to navigation Jump to search

Standard Data

The SiRad Evaluation Kit communicates via UART. The UART protocol is (extended) ASCII based and includes standard data (explained in this section), commands and extended data – including raw data output. The standard data communication is used by the Silicon Radar WebGUI. The command frames are only partly used by the Silicon Radar WebGUI. The extended data communication is not supported by the Silicon Radar WebGUI.


Data Blocks and Frame Formats

Once the SiRad Evaluation Kit is plugged in, it begins sending standard data. The standard data is transmitted in blocks of different data frames that are tied together in a single transmission, as highlighted in Figure 2. In the figure, two data blocks are marked red. Each data block ends with ASCII value 32 (‘ ‘, space) as stop marker and can contain multiple data frames of different size. In the example in Figure 2, the data locks contain 5 data frames each. One data frame in the upper block is marked blue. Each data frame starts with ASCII value 33 (‘!’) as start marker and ends with two ASCII command characters (‘CR’ and ‘LF’) as stop marker.

Figure 3 shows the supported standard data frames and Table 1 lists their purpose. The blue parts in Figure 3 indicate start and stop markers and the frame identifier, orange and green parts indicate data parts and grey parts indicate reserved parts that should not be used.

There are several frame types that consist of multiple data values tied together to form a specific data packet, for example, a frame containing detected targets or a frame containing system information. Each frame type is recognized by a unique identifier (a certain letter) following the start marker of the frame, for example, the letter ‘T’ indicates a frame containing target data (the list of detected targets) or ‘I’ indicates a frame containing system information. The frame types are of different size. Please read the following sections about how to interpret the transmitted data in the frames.

FFT and CFAR data

The range frame contains the magnitude output of the FFT and the phase frame contains the argument of the FFT. The CFAR frame contains the output of the CFAR operator that is used to detect targets. The range frame, phase frame and CFAR frame share the same frame format, please see Figure 4. The start and stop markers and frame identifiers are highlighted in blue, data parts in orange and green color.

After the frame’s start marker (1 byte) and identifier ‘R’, ‘P’ or ‘C’ (1 byte) follows a 4 bytes ‘Size’ field, which indicates the number of data points (bytes) in the ‘Data’ field of the frame. There are two reserved fields of 4 bytes size between the ‘Size’ and the ‘Data’ field. The frame ends with the stop markers ‘CR’ + ‘LF’.

Size field
The ‘Size’ field is encoded as a 16 bit unsigned HEX number in 4 transmitted bytes (marked with 4 ‘x’ in Figure 4). The data is recognized as ‘0000’ to ‘FFFF’ characters in the terminal output, and is interpreted as values between 0 and 65535, also see Table 2. For example, ‘Size’ = 0200 is interpreted as 0x0200, which is 512 in decimal range. Please note, that this field is dependent on the chosen FFT size. However, a certain FFT size will lead to a half of the size of the FFT in the ‘Size’ field only. The FFT output is mirrored along the magnitude axis, so both parts are added together before the transmission and the length of the transmitted data is only half of the FFT output.

Data field
The ‘Data’ field contains either the FFT output’s magnitude (distance) data, the argument (phase) data or the CFAR output data, depending on the frame type. The range and CFAR frame ‘Data’ bytes are transmitted as characters (marked with letters ‘c’ in Figure 4). The data is recognized as characters of decimal value 34 to 254 in the terminal output, and is interpreted as values between -140 and +80 dB in 220 steps of 1 dB, also see Table 2. For example, ‘Data’ = ’Z’ is decimal 90 and means -84 dB. The phase frame ‘Data’ bytes are transmitted as characters (marked with letters ‘c’ in Figure 4). The data is recognized as characters of decimal value 34 to 254 in the terminal output, and is interpreted as values between –π to +π in 220 steps, also see Table 2. For example, ‘Data’ = ’Z’ is decimal 90 and means -1.54 rad (which is -88.36°).

Target Information

The target list contains the targets recognized by the CFAR operator. A target is detected whenever the magnitude of the FFT exceeds the CFAR operator’s threshold. The local maximum of that area is marked as a target. The target list’s frame format is shown in Figure 5.

The target list frame begins with the start marker (1 byte) and the identifier ‘T’ (1 byte) followed by the ‘Format’ field (1 byte), which indicates the unit format of the values in the ‘Distance’ field, and a ‘Gain’ value (1 byte) for the measurement. Then follows the target List with the target information, which is repeated 16 times (for 16 targets) and consists of a ‘Target #’ number (1 byte), the ‘Distance’ to the target (4 bytes), the ‘Magnitude’ or the signal strength of the target (1 byte), the argument or ‘Phase’ information of the target (4 bytes), and a reserved field (4 byte). The frame ends with the stop markers ‘CR’ + ‘LF’.

Format field
The ‘Format’ field is encoded as an unsigned HEX digit in 1 transmitted byte (marked with an ‘x’ in Figure 5). The data is recognized as a ‘0’ to ‘F’ character in the terminal output, and is interpreted as a value between 0 and 15, also see Table 3. For example, ‘Format’ = 5 is interpreted as 0x5, which is 5 in decimal range. Please see Table 4 for the meaning of the values in the ‘Format’ field.

Gain field
The ‘Gain’ field is transmitted as a character (marked with a ‘c’ in Figure 5). The data is recognized as a character of decimal value 34 to 254 in the terminal output, and is interpreted as a value between -140 and +80 dB in 220 steps of 1 dB, also see Table 3. For example, ‘Gain’ = ’Z’ is decimal 90 and means -84 dB. There are currently four fixed gain settings available that depend on the hardware version, see Table 5.

Target list
The target information is repeated 16 times in the target list. All 16 target information blocks are sent, regardless whether the target blocks are filled with detected targets or not. Empty target information blocks of the list are filled with zeros. Each target information block consists of the ‘Target #’, ‘Distance’, ‘Magnitude’, and ‘Phase’ fields.

Target field
The ‘Target #’ number field is encoded as an unsigned HEX digit in 1 transmitted byte (marked with an ‘x’ in Figure 5). The data is recognized as a ‘0’ to ‘F’ character in the terminal output, and is interpreted as a value between 0 and 15, also see Table 6. For example, ‘Target #’ = F is interpreted as 0xF, which is 15 in decimal range.

Distance field
The ‘Distance’ field is encoded as a 16 bit unsigned HEX number in 4 transmitted bytes (marked with ‘x’ in Figure 5). The data is recognized as ‘0000’ to ‘FFFF’ characters in the terminal output, and is interpreted as values between 0 and 65535, also see Table 6. For example, ‘Distance’ = 0200 is interpreted as 0x0200, which is 512 in decimal range. The unit of the distance is determined by the value in the ‘Format’ field.

Magnitude field
The ‘Magnitude’ field is transmitted as a character (marked with a ‘c’ in Figure 5). The data is recognized as a character of decimal value 34 to 254 in the terminal output, and is interpreted as a value between -140 and +80 dB in 220 steps of 1 dB, also see Table 6. For example, ‘Magnitude’ = ’Z’ is decimal 90 and means -84 dB.

Phase field
The ‘Phase’ field is encoded as a 16 bit unsigned HEX number in 4 transmitted bytes (marked with ‘x’ in Figure 5). The data is recognized as ‘0000’ to ‘FFFF’ characters in the terminal output, and is interpreted as values between -32768…+32767, also see Table 6.


Status Information

The status update frame in Figure 6 is a feedback of the current accuracy, range, ramp time, and ramp bandwidth and also returns the time since the last measurement.

The status update frame begins with the start marker (1 byte) and the identifier ‘U’ (1 byte) followed by the ‘Format’ field (1 byte), which indicates the unit format of the values in the ‘Max. Range’ field, and a ‘Gain’ value (1 byte) for the last measurement. Then follows the ‘Accuracy’ field (4 byte) currently configured settings, the ‘Max Range’ field (4 bytes) with the maximum detectable range with the current settings, the currently used ‘Ramp time’ (4 byte), the ‘Bandwidth’ field (4 bytes), and the time passed since the last measurement in the ‘Time diff.’ field (4 byte). The frame ends with the stop markers ‘CR’ + ‘LF’.

Format field
The ‘Format’ field is encoded as an unsigned HEX digit in 1 transmitted byte (marked with an ‘x’ in Figure 6). The data is recognized as a ‘0’ to ‘F’ character in the terminal output, and is interpreted as a value between 0 and 15, also see Table 7. For example, ‘Format’ = 5 is interpreted as 0x5, which is 5 in decimal range. Please see Table 4 for the meaning of the values in the ‘Format’ field.

Gain field
The ‘Gain’ field is transmitted as a character (marked with a ‘c’ in Figure 6). The data is recognized as a character of decimal value 34 to 254 in the terminal output, and is interpreted as a value between -140 and +80 dB in 220 steps of 1 dB, also see Table 7. For example, ‘Gain’ = ’Z’ is decimal 90 and means -84 dB. There are currently four fixed gain settings available that depend on the hardware version, see Table 5.

Accuracy field
The ‘Accuracy’ field is encoded as a 16 bit unsigned HEX number in 4 transmitted bytes (marked with ‘x’ in Figure 6). The data is recognized as ‘0000’ to ‘FFFF’ characters in the terminal output, and are interpreted as values between 0 to 65535, which are translated to an accuracy of 0 to 6553.5 mm with 0.1 mm resolution, also see Table 7. For example, ‘Accuracy’ = 0200 is interpreted as 0x0200, which is 512 in decimal range and translates to an accuracy of 51.2 mm.

Max. Range field
The ‘Max. Range’ field is encoded as a 16 bit unsigned HEX number in 4 transmitted bytes (marked with ‘x’ in Figure 6). The data is recognized as ‘0000’ to ‘FFFF’ characters in the terminal output, and are interpreted as values between 0 and 65535 in the chosen distance unit, also see Table 8. For example, ‘Max. Range’ = 0200 is interpreted as 0x0200, which is 512 in decimal range. The unit of the distance is determined by the value in the ‘Format’ field. Ramp time field The ‘Ramp time’ field is encoded as a 16 bit unsigned HEX number in 4 transmitted bytes (marked with ‘x’ in Figure 6). The data is recognized as ‘0000’ to ‘FFFF’ characters in the terminal output, and are interpreted as values between 0 to 65535 in us, also see Table 8 For example, ‘Ramp time’ = 0200 is interpreted as 0x0200, which is 512 in decimal range. Bandwidth field The ‘Bandwidth’ field is encoded as a 16 bit unsigned HEX number in 4 transmitted bytes (marked with ‘x’ in Figure 6). The data is recognized as ‘0000’ to ‘FFFF’ characters in the terminal output, and are interpreted as values between 0 and 65535 in MHz, also see Table 8. For example, ‘Bandwidth’ = 0200 is interpreted as 0x0200, which is 512 in decimal range.

Configuration scripts

The evaluation kit supports several output modes to allows the processing of the radar data on a PC. This can be useful for scientific purposes or for doing a processing with a higher number of FFT points to increase the resolution of the resulting target data. We provide configurations that can be send to the evaluation kit via UART, for example, using a terminal program.

The scripts support the following output modes:

  • ADC raw data output (digitized IF output of our radar front ends)
  • windowed ADC data output (windowed ADC raw data)
  • FFT data output (magnitude and phase)
  • complex FFT data output

Download

You can download the configuration files in our Customer Download Area (you have to register at our site).

How to

You will be required to open a UART communication to the kit using a terminal program that can send files. Realterm is a good choice.