Givar-ID

XID eller Transducer ID™ är ett enhetskommunikationsbusssystem designat av Airmar Technology Corp., USA för att göra det möjligt för ett ekolod att identifiera typen av ultraljudsgivare som är ansluten. Detta gör att ekolodet kan justera för givarens specifika egenskaper såsom frekvens, märkeffekt, strålmönster.

Kommunikation sker över en enda tråd i ett styrenhetsmönster med ekolodet som styrenhet och givaren som enhet. Även om det är elektriskt likt 1-Wire , har dess protokoll ingen möjlighet att räkna upp flera enheter.

Systemet är implementerat av Garmin och Raymarine i några av deras ekolod.

Protokoll

Bussen är designad för att fungera med 5V som logisk 1, 0V som logisk 0 med något skydd mot oavsiktlig anslutning till en båts 12V DC-system. Slaven kan drivas från bussen.

Lågnivåsignalering

Signalering görs med fyra typer av bitprimitiver:

  1. "läs" lite primitivt
  2. "skriv 1" bit primitiv
  3. "skriv 0" bit primitiv
  4. "återställ" lite primitivt

Tidsbegränsningar

Symbol Parameter Min. Typ. Max. Enheter
t CYC Cykeltid 100 - - µS
t RDL Läs klocka låg tid 8 10 12 µS
t PRE ID-buss förladdningstid 2 - - µS
t HI-Z Läs Bit High Impedance Time - - 40 µS
t DR Dags för data redo 20 - 26 µS
t DH Datahållningstid 9 - 11 µS
t W1L Skriv "1" Low Time 17 19 21 µS
t W0L Skriv "0" Low Time 28 30 32 µS
t ÅTERSTÄLL Återställ tid låg 43 - - µS
t ÅTERSTÄLL Återställ Time High 200 - - µS

"återställ" lite primitivt

"reset" bit primitive timing diagram

"reset" avbryter alla kommandon och instruerar givaren att gå in i sitt initiala tillstånd.

"läs" lite primitivt

"read" bit primitive timing diagram

Givarens styrenhet är ansluten till signalledningen via ett dubbelriktat IO-stift med ett svagt pull-up-motstånd. Styrenhetens IO-stift är i högimpedansläge. Efter att ha mottagit "läs"-bitens primitiva, blir den en utgång för att driva bussen lågt efter behov.

"skriv 1" bit primitiv

"write 1" bit primitive timing diagram

"skriv 0" bit primitiv

"write 0" bit primitive timing diagram

Kommandon

Ekolodet kan ge fyra olika kommandon. Bitordning är LSB först.

Kommando Mnemonic Opcode Adress Data Lässtorlek
ÅTERSTÄLLA - - -
READ_VERSION 0xCC - variabel
READ_BYTE 0x33 8-bitars adress 8 bitar
READ_BLOCK 0x99 - variabel
KOLLA STATUSEN - - 1 bit

RESET kommando

RESET utfärdas som lite primitivt enligt beskrivningen ovan.

READ_VERSION kommando

READ_VERSION utfärdas som Opcode 0xCC skriven till slaven.

Efteråt läses en sekvens av byte med den första byten som anger bytelängden för tillgänglig data.

READ_VERSION bör vara det första kommandot efter en RESET.

READ_BYTE kommando

READ_BYTE utfärdas som Opcode 0x33 och en 8-bitars adress skrivs till slaven.

Giltiga adresser är 0..126 inklusive.

Efteråt klockas resultatbyten in.

READ_BLOCK kommando

READ_BLOCK utfärdas som Opcode 0x33.

Efteråt läses en sekvens av byte med den första byten som anger bytelängden för tillgänglig data. De två sista byten är en 16-bitars kontrollsumma (big endian) som använder CRC-16-IBM- algoritmen.

CHECK_STATUS kommando

CHECK_STATUS är identisk med "läs"-bitens primitiva kommando.

Om givarens processor inte kan svara kommer bussen att förbli hög under avläsningen.

Om givarens processor väntar på ett kommando, svarar den på "läs" bitens primitiva kommando genom att dra bussen till låg.