2.8.7.6 ID Check

The ID check automatically searches for user-defined ID patterns at the beginning of the data payload. If none of the defined ID patterns is found, an EOT is triggered. By using this feature, the reception of invalid telegrams can be aborted before they are completely received and transferred to the host controller for a validity check. This can reduce overall system power consumption by shortening the active polling period and increasing the host controller sleep period.

The ID check works only in combination with RXMode (buffered) or PollingMode (buffered). The transceiver compares the ID taken from the received data stream with the predefined IDs in the EEPROM. Up to 18 IDs can be stored and each ID can be up to a maximum length of 4 bytes. The number of IDs to be checked as well as the ID length and position within the data stream is configurable via the EEPROM settings. (For more information, see sEEPromIDctrl eepID.)

The eepID.idEna EEPROM variable enables the ID scan, in general, if its value is different from ‘0’. The bits ID[4:0] define the number of IDs to be used in the system. All values greater than 18 are invalid.

Address

Name

Bit 7

Bit 6

Bit 5

Bit 4

Bit 3

Bit 2

Bit 1

Bit 0

0x0036

idEna

ID[4:0]

The 18 ID settings occupy the EEPROM addresses 0x0037 to 0x0090. A single ID setting consists of a four-byte data field and an associated configuration byte.

Name

Bit 7

Bit 6

Bit 5

Bit 4

Bit 3

Bit 2

Bit 1

Bit 0

data[x][0]

data_byte0[7:0]

data[x][1]

data_byte1[7:0]

data[x][2]

data_byte2[7:0]

data[x][3]

data_byte3[7:0]

config[x]

IDCE

IDBO[1:0]

IDL[1:0]

The data[x][0] – data[x][3] (x = 0 to 17) fields contain the ID for scanning the received telegram. Note that data[x][0] is always used first to get a compare match.

The configuration byte config[x] (x = 0 to 17) enables the stored ID setting via the IDCE bit. If the bit is set to ‘1’, this setting is part of the ID scanning, otherwise it is omitted. The IDBO[1:0] variable defines the start position of the ID within the data stream, as illustrated in the following figure. The length of the current ID can be set by the IDL[1:0] variable.

Figure 2-27. Possible Position of the ID in a Data Stream

The ID check can be activated independently for each service in the eepServices.rxSysSet.IDScan_ENA EEPROM variable.

Address Service0 Name Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
0x00E4 rxSysSet subChanneling _ENA IdScan _ENA IFAmplifier _ENA PathValid AfterSOT_ENA AntennaDamping PathB_DIS AntennaDamping PathA_DIS switching_SDTX switching_SDRX

The ID check is started as soon as seven payload bytes are received or an EOT is received after an SOT. The check of one ID takes approximately 11 µs, which adds up to about 200 µs if all 18 IDs are activated.

If a telegram is received after a successful ID check, the firmware always returns to IDLEMode, even if “Stay in RX after EOT” is activated (rxSetPathx[1].RXTEHx = 1). For more details about the ID check hardware, refer to ID Check.