Přeskočit obsah

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.