nRF-CAN communicatie protocol
Controller berichten
De communicatie van de controller naar de nRF-CAN module is in twee berichten opgesplitst.
Het eerste bericht, TPDO1, stelt het adres en het kanaal in van de doel 4IO module voor de nRF-CAN module.
Het tweede bericht, TPDO2, bevat de opdracht voor elke uitgang van de doel module.
TPDO1
Dit bericht laat de nRF-CAN module weten waar het TPDO2 bericht naartoe gestuurd moet worden.
Bit posities | Signaal naam | Data bereik | Opmerkingen |
---|---|---|---|
0 t/m 7 | Module modus | 0 - 255 | Gereserveerd, altijd 0 |
8 t/m 15 | Doel adres | 0 - 255 | Adres van de 4IO module (0 - 127) |
16 t/m 19 | Doel kanaal | 0 - 15 | Kanaal van de 4IO module (1 - 7) |
20 t/m 24 | Bericht type | 0 - 15 | Gereserveerd, altijd 0 |
TPDO2
Dit bericht laat de doel 4IO module weten wat elke uitgang moet doen.
De beschikbare commando's zijn:
* 0: Uitgang uit
* 1: Uitgang aan voor onbepaalde tijd.
De uitgang blijft aan totdat de uitgang het commando krijgt om uit te gaan.
* 2: Uitgang aan voor bepaalde tijd.
De duratie wordt bepaald door de waarde die met het commando meegestuurd wordt. Die waarde * 500ms is de tijd dat de uitgang aan blijft.
Bit posities | Signaal naam | Data bereik | Opmerkingen |
---|---|---|---|
0 t/m 3 | Uitgang 1 cmd | 0 - 15 | 0 = uit, 1 = aan voor onbepaalde tijd, 2 = aan voor bepaalde tijd |
4 t/m 15 | Uitgang 1 cmd waarde | 0 - 4095 | Bepaalt tijd dat de uitgang aan blijft. |
16 t/m 19 | Uitgang 2 cmd | 0 - 15 | 0 = uit, 1 = aan voor onbepaalde tijd, 2 = aan voor bepaalde tijd |
20 t/m 31 | Uitgang 2 cmd waarde | 0 - 4095 | Bepaalt tijd dat de uitgang aan blijft. |
32 t/m 35 | Uitgang 3 cmd | 0 - 15 | 0 = uit, 1 = aan voor onbepaalde tijd, 2 = aan voor bepaalde tijd |
36 t/m 47 | Uitgang 3 cmd waarde | 0 - 4095 | Bepaalt tijd dat de uitgang aan blijft. |
48 t/m 51 | Uitgang 4 cmd | 0 - 15 | 0 = uit, 1 = aan voor onbepaalde tijd, 2 = aan voor bepaalde tijd |
52 t/m 63 | Uitgang 4 cmd waarde | 0 - 4095 | Bepaalt tijd dat de uitgang aan blijft. |
nRF-CAN berichten
De communicatie van de nRF-CAN module naar de controller is ook verdeeld over twee berichten.
Het eerste bericht, RPDO1, bevat de huidige status van de nRF-CAN module. Dit bericht wordt elke 100ms verstuurd.
Het tweede bericht, RPDO2, bevat het antwoord van de 4IO module waar een opdracht naar verstuurd is.
RPDO1
(Elke 100ms)
Bit posities | Signaal naam | Data bereik | Opmerkingen |
---|---|---|---|
0 t/m 7 | Module modus | 0 - 255 | Gereserveerd, altijd 0 |
8 t/m 15 | Module status | 0 - 255 | 0 = inactief, 1 = verstuur aanvraag aanwezig, 2 = bezig met versturen, 3 = bericht verstuurd, wacht op antwoord, 4 = antwoord timeout |
16 t/m 23 | Doel adres | 0 - 255 | Adres waarop gecommuniceerd wordt (0 - 127) |
24 t/m 31 | Doel kanaal | 0 - 15 | Kanaal waarop gecommuniceerd wordt (1 - 7) |
32 t/m 35 | Bericht type | 0 - 15 | Gereserveerd, altijd 0 |
RPDO2
Dit bericht bevat de informatie die de 4IO module terugstuurt als antwoord op de opdracht.
Bit posities | Signaal naam | Data bereik | Opmerkingen |
---|---|---|---|
0 t/m 7 | Adres | 0 - 255 | Adres van de 4IO module |
8 t/m 11 | Kanaal | 0 - 15 | Kanaal van de 4IO module |
12 t/m 15 | Bericht type | 0 - 15 | Gereserveerd voor de toekomst. (0 voor nu) |
16 t/m 23 | Signaal sterkte | 0 - 255 | Signaal sterkte tussen de nRF-CAN en de 4IO module |
24 t/m 31 | 4IO module status | 0 - 255 | Status van de 4IO module |
36 t/m 39 | Uitgang 1 status | 0 - 15 | 0 = uit, 1 = aan voor onbepaalde tijd, 2 = aan voor bepaalde tijd |
40 t/m 43 | Uitgang 2 status | 0 - 15 | 0 = uit, 1 = aan voor onbepaalde tijd, 2 = aan voor bepaalde tijd |
44 t/m 47 | Uitgang 3 status | 0 - 15 | 0 = uit, 1 = aan voor onbepaalde tijd, 2 = aan voor bepaalde tijd |
48 t/m 51 | Uitgang 4 status | 0 - 15 | 0 = uit, 1 = aan voor onbepaalde tijd, 2 = aan voor bepaalde tijd |
48 t/m 51 | Ingang 1 status | 0 - 15 | 0 = uit, 1 = aan |
48 t/m 51 | Ingang 2 status | 0 - 15 | 0 = uit, 1 = aan |
48 t/m 51 | Ingang 3 status | 0 - 15 | 0 = uit, 1 = aan |
48 t/m 51 | Ingang 4 status | 0 - 15 | 0 = uit, 1 = aan |
SDO bericht
Bit posities | Naam |
---|---|
0 t/m 7 | SDO Cmd |
8 t/m 23 | index |
24 t/m 31 | sub index |
32 t/m 63 | Waarde |
index tabel
Index | Subindex | Naam | Type | Attr. | Default | Beschrijving | Opmerkingen |
---|---|---|---|---|---|---|---|
0x2000 | 0x00 | EEPROM Magic | UINT32 | RW | 0xAA55AA55 | Afhankelijk van geinstalleerde software versie | Alleen schrijven op lege modules. Als dit fout is, wordt alleen RAM gebruikt en gaat informatie verloren bij herstart |
0x01 | EEPROM Versie | UINT32 | RW | 0 | Afhankelijk van geinstalleerde software versie | Alleen schrijven op lege modules. Als dit fout is, wordt alleen RAM gebruikt en gaat informatie verloren bij herstart | |
0x02 | EEPROM Resets | UINT32 | RW | 0 | Telt aantal EEPROM resets. Dit gebeurt bij onjuiste magic of versie nummer | ||
0x03 | Boot count | UINT32 | RW | 0 | |||
0x04 | Power on reset count | UINT32 | RW | 0 | |||
0x05 | External reset count | UINT32 | RW | 0 | |||
0x06 | Brownout reset count | UINT32 | RW | 0 | |||
0x07 | Watchdog reset count | UINT32 | RW | 0 | |||
0x08 | Nullpointer exception | UINT32 | RW | 0 | |||
0x09 | Invalid switch-case value | UINT32 | RW | 0 | |||
0x0A | Buffer overflow count | UINT32 | RW | 0 | |||
0x0B | Relais1 switch count | UINT32 | RW | 0 | |||
0x0C | Relais2 switch count | UINT32 | RW | 0 | |||
0x0D | Relais3 switch count | UINT32 | RW | 0 | |||
0x0E | Relais4 switch count | UINT32 | RW | 0 |