Popis komunikace
Nastavení rychlosti komunikace CAN¶
Naleznete jej ve skupině registrů s názvem Common
Registr | Popis |
C-CAN_Baudrate | Zaregistrujte se pro zadání rychlosti komunikace CAN v kilobaudech (20,50,100,125,250,500,800,1000). Pro přijetí rychlosti musí být registr C-CAN_Settings 0. Bod vzorkování je pevně stanoven na 75% |
C-CAN_Settings | Registr pro podrobnější nastavení sběrnice CAN. Pokud je zadána nenulová hodnota, přepíše se registr C-CAN_Baudrate vypočítanou rychlostí. Byte 0: TS1 Byte 1: TS2 Byte 2: SJ Byte 3: Dělitel frekvence, základní frekvence je 16MHz. |
Příklad nastavení rychlosti na 500 kbaud:
Parametr | Hodnota |
---|---|
SJ | 2 |
TS1 | 2 |
SJ | 4 |
Dělitel frekvence | 11 |
C-CAN_Settings | 0x0202040b |
Příjem a odesílání zpráv¶
Nastavení pro příjem a odesílání zpráv prostřednictvím komunikace CAN. Naleznete je ve skupině registrů UserProg.
CAN status¶
Registr | Popis |
CAN_Status | bit 0: data odeslána, připravena na další. bit 1 - bit8: nová data ve vyrovnávací paměti 1-8. |
Posílání zpráv¶
Registr | Popis |
CAN_Transmit_ID | Zprávy CAN ID |
CAN_Transmit_Len | délka zprávy v bajtech |
CAN_Transmit_Data_Lo | Odesílá dolních 32 bitů zprávy |
CAN_Transmit_Data_Hi | Odesílá horních 32 bitů zprávy |
CAN_Transmit_Control | bit 1: odešle zprávu bit 2: odešle požadavek RTR (žádost o vzdálený přenos) Poté musí být nastavena na 0 |
Chcete-li zprávu odeslat, napište 1
do registru CAN_Transmit_Control
.
Před odesláním další zprávy je nutné do tohoto registru napsat 0
a počkat na zpracování systémem.
Poté je možné odeslat další zprávu.
Příjem zpráv¶
Registr | Popis |
CAN_Receive_Control | Kontrolní registr příjmu. |
CAN_Recieve_Buffx_ID | Příjem ID pro vyrovnávací paměť x (x = 1 - 8). |
CAN_Receive_Buffx_Len | Počet bytů v přijaté zprávě. |
CAN_Receive_Buffx_Data_Lo | Přijímá spodních 32 bitů zprávy |
CAN_Receive_Buffx_Data_Hi | Přijímá horních 32 bitů zprávy |
K dispozici je 8 vyrovnávacích pamětí pro příjem zpráv.
Ne všechny zprávy z CAN jsou přijímány, ale pouze ty, na které jsou nastaveny vyrovnávací paměti.
CAN_Recieve_Buff0_ID
(nebo jiná zvolená vyrovnávací paměť) je nastavena na požadované ID.
Do této vyrovnávací paměti se nahraje zpráva s odpovídajícím ID.
Následně zápis 0x1000
do registru CAN_Receive_Control
resetuje příjem zpráv a přijme změny CAN_Receive_Buffx_ID
.
Poté, co systém zprávu zpracuje, musí být hodnota registru CAN_Receive_Control
nastavena na 0
.
Po přijetí zprávy se bit pro konkrétní vyrovnávací paměť nastaví v registru CAN_Status
.
Pro potvrzení přijetí zprávy je v registru AN_Recieve Control
nastaven odpovídající bit vyrovnávací paměti (stejný bit jako v CAN_Status
).
Po zpracování systémem musí být registry znovu resetovány.
Poznámka
Standardizovaný protokol CAN pro TGZ je ve vývoji.