Can  5


13.5.15. Obsługa interfejsu pomiędzy łączem CAN a procesorem.

Przez cztery rejestry specjalne CANADR, CANDAT,CANCON i CANSTA mamy dostęp do kontrolera CAN-a oraz do logiki DMA. Rejestry CANCON i CANSTA mają różne znaczenie dla zapisu i odczytu.

Tab. 58 Rejestry SFR dla CAN-a.

Bity zarezerwowane (Reserved) są odczytywane jako stan wysoki. R=odczyt; W=zapis, R/W= odczyt/zapis.

ADRES

DOST ĘP

BIT

7

6

5

4

3

2

1

0

CANADR

DBH

R/W

DMA

Reserved

AutoInc

CANA4

CANA3

CANA2

CANA1

CANA0

CANDAT

DAH

R/W

CAND7

CAND6

CAND5

CAND4

CAND3

CAND2

CAND1

CAND0

CANCON

D9H

R

Reserved

Reserved

Reserved

WUI

OI

EI

TI

RI

W

RX0A

RX1A

WUM

SLP

COS

RRB

AT

TR

CANSTA

D8H

R

BS

ES

TS

RS

TCS

TBS

DO

RBS

W

RAMA7

RAMA6

RAMA5

RAMA4

RAMA3

RAMA2

RAMA1

RAMA0

Rejestr SFR CANADR

BIT

SYMBOL

Funkcja

7

DMA

kontrola logiki DMA

6

-

zarezerwowane

5

AutoInc

właczenie/wyłączenie autoinkremantacji adresu

4

CANA4

pięć najmniej znaczących bitów adresu wewnętrznych rejestrów kontrolera CAN-a, do których dostęp odbywa się poprzez CANDAT.

3

CANA3

2

CANA2

1

CANA1

0

CANA0

Rejestr SFR CANDAT

BIT

SYMBOL

Funkcja

7 do 0

CAND7 do CAND0

Rejestr ten stanowi port dla obsługi(zapis, odczyt) wewnętrznych rejestrów kontrolera CAN-a, wybranych poprzez bity CANA4-CANA0 rejestru CANADR

Rejestr SFR CANCON ( odczyt z rejestru)

Odczyt rejestru przerwań (IR) kontrolera CAN-a.

BIT

SYMBOL

Funkcja

7

-

zarezerwowane (stan wysoki)

6

-

5

-

4

WUI

przerwanie przebudzenia

3

OI

przerwanie przepełnienia

2

EI

przerwanie błędu

1

TI

przerwanie nadajnika

0

RI

przerwanie odbiornika

Rejestr SFR CANCON ( zapis do rejestru)

Zapis do rejestru sterującego (CMR) kontrolera CAN-a.

BIT

SYMBOL

Funkcja

7

RX0A

Bity konfigurujące „budzenie” kontrolera CAN

6

RX1A

5

WUM

ustawienie trybu uśpienia

4

SLP

uśpienie

3

COS

czyszczenie statusu błędu przepełnienia

2

RRB

zwolnienie bufor odbiorczy

1

AT

przerwanie bieżącej transmisji.

0

TR

żądanie przesłania komunikatu

Rejestr SFR CANSTA ( odczyt z rejestru)

Odczyt rejestru statusu (SR) kontrolera CAN-a.

BIT

SYMBOL

Funkcja

7

BS

status magistali

6

ES

status błędu

5

TS

status transmisji

4

RS

status odbiornika

3

TCS

status zakonczenia transmisji

2

TBS

status dostępu do bufora nadajnika

1

DO

status przepełnienia

0

RBS

status bufora odbiornika.

Rejestr SFR CANSTA ( zapis do rejestru)

Zapis do CANSTA ustawia adres w wewnętrznej pamięci danych procesora do transmisji poprzez DMA.

BIT

SYMBOL

Funkcja

7 do 0

RAMA7 do RAMA0

ustawienie adresu w wewnętrznej pamięci danych procesora dla późniejszej transmisji poprzez mechanizm DMA.

13.5.16 Automatyczna inkrementacja adresu.

Tryb automatycznej inkremantacji zapewnia szybki zapis i odczyt rejestrów kontrolera CAN-a. Jeśli bit CANADR.5 (AutoInc) jest ustawiony zawartość rejestru CANADR jest automatycznie zwiększana po każdej operacji zapisu lub odczytu poprzez CANDAT. Na przykład aby załadować komunikat do bufora nadajnika możemy zapisać 2AH do CANADR (AutoInc=1; Adres=0AH - początek bufora nadajnika) a następnie wpisywać dane komunikatu bajt po bajcie do CANDAT(nastąpi automatyczna inkrementacja adresu). Zwiększając CANADR poza XX111111B resetujemy bit CANADR.5 (AutoInc) uzyskując CANADR=XX000000B).

13.5.7 Transmisja poprzez DMA

Logika DMA pozwala na transmisje całych komunikatów (do 10 bajtów) pomiędzy wewnętrzna pamięcią RAM a kontrolerem CAN-a w czasie dwóch cykli maszynowych. Transmisja ta odbywa się w tle bez udziału procesora.

Transmisja DMA jest wykonywana po wcześniejszym wpisaniu adresu pamięci RAM (00H do FFH) do CANSTA i ustawieniu adresu bufora TX lub RX w rejestrze CANADR i równocześnie bitu CANADR.7 (DMA). Adres w pamięci RAM określa pierwszy bajt, który będzie transmitowany. Ustawienie bitu DMA powoduje automatyczne oszacowanie długości pola danych i dokonanie transmisji; dla transmisji TX-DMA długość pola danych jest wymagana pod adresem `RAM adres +1'

W przypadku transmisji TX-DMA wartość 8AH (adres 10) ma być zapisana w CANADR. Cały komunikat składający się z 2-bajtowego deskryptora i pola danych ( 0 do 8 bajtów) jest transmitowany do bufora TX począwszy od komórki pamięci `RAM adres'

Transmisja RX-DMA jest bardziej uniwersalna. Przez zapis zmiennej z przedziału 94H (adres 20) do 9DH (adres 29) do CANADR cały lub część komunikatu zaczynając od ustawionego adresu jest transmitowany do wewnętrznej pamięci danych. Pozwala to np. transfer tylko pola danych.

Po udanej transmisji poprzez DMA bit DMA jest resetowany.

Podczas transmisji poprzez DMA procesor może wykonywać następne instrukcje. Jednakże dostęp do rejestrów CANADR, CANDAT,CANCON czy CANSTA jest zabroniony. Po ustawieniu bitu DMA każde przerwanie jest zablokowane aż do końca transmisji.

Podczas stanu resetu (bit Reset Request jest ustawiony) transfer poprzez DMA jest niemożliwy.

13.5.18 Taktowanie magistrali i synchronizacja

Blok kontrolujący taktowanie magistrali (BTL - Bus Timing Logic) monitoruje linie magistrali poprzez wewnętrzny komparator i wykonuje następujące funkcje:

Konfigurację BTL wykonuje się podczas inicjalizacji kontrolera CAN-a poprzez trzy rejestry:

13.5.19 Taktowanie bitów

Czas trwania bitu jest liczbą cykli zegara systemowego. Czas trwania jednego bitu jest rezultatem dodania programowo ustawialnych odcinków czasu TSEG1 i TSEG2 i odcinka SYNCSEG.

13..5.19.1 Odcinek Synchronizacji (SYNCSEG)

Przychodzące zbocze bitu jest oczekiwane podczas tego stanu; ten stan odpowiada jednemu cyklowi zegara systemowego (1x tSCL)

13..5.19.2 Odcinek czasu 1 (TSEG1)

Ten odcinek czasu wyznacza umiejscowienie punktu próbkowania wewnątrz bitu. Ten punkt jest końcem TSEG1. TSEG1 jest ustawiany programowo ustawiana na 1 do 16 cykli zegara.

Właściwe ustawienie punktu próbkowania jest bardzo ważne dla poprawnego przebiegu transmisji. Musimy brać pod uwagę:

13..5.19.3 Odcinek czasu 2 (TSEG2)

Ten odcinek zapewnia:

TSEG2 jest ustawiane programowo na od 1 do 8 cykli zegara systemowego

13..5.19.4 Szerokość skoku synchronizacji (SJW)

SJW definiuje maksymalną liczbę cykli zegarowych (tSCL) o które czas trwania bitu może być zwiększony lub zmniejszony podczas resynchronizacji.

SJW jest ustawiane programowo na od 1 do 4 cykli zegarowych.

13..5.19.5 Opóźnienie czasu propagacji (tprop)

Opóźnienie czasu propagacji wynosi:

tprop =2 x (fizyczne opóźnienie magistrali + opóźnienie komparatora wejściowego + opóźnienie sterownika wyjściowego)

tprop jest zaokrąglane do najbliższej wielokrotności tSCL.

13..5.19.5 Ograniczenia czasu bitu

Ograniczenia konfiguracji czasu bitu są podstawą wewnętrznych procesów. Są to:

Efektem trybu trzech próbkowań (SAM=HIGH) mamy wprowadzonie opóźnienia o jeden cykl zegara na magistrali. Mósimy zmodyfikować restrykcje:

13..5.20 Synchronizacja

Synchronizacja jest wykonywana przez stan maszynowy w którym porównujemy przychodzące zbocze z aktualnym czasem bitu i dostosowujemy czas bitu przez twardą synchronizacje lub resynchronizację.

Ten typ synchronizacji zdarza się tylko na początku komunikatu.

Kontroler CAN-a synchronizuje się pierwszym zboczem recessive-to-dominant komunikatu (będącym czołowym zboczem bitu Start-Of-Frame komunikatu)

Resynchronizacja zdarza się podczas transmisji strumienia bitów komunikatu,aby zrekompesować :

Rezultatem resynchronizacji może być zwiększenie tSEG2 maksymalnie o tSJW lub zmniejszenie tSEG2 maksymalnie o tSJW :

Błąd fazy (e) zbocza jest określany poprzez pozycję zbocza w stosunku do SYNCSEG.

Wartość ta jest definiowana:

Efektem resynchronizacji jest:

13.5.20.1 Reguły synchronizacji

Reguły synchronizacji są następujące:

????????



Wyszukiwarka

Podobne podstrony:
, , , , , 5
5
Can Can1
5
5
5
5
5
Magistrala CAN i zamrożone ramki, Diagnostyka dokumety
can could
5
5
113 45
str4 5
rw Rynek walutowy wyk 5
str4 5
5
5
NA140PL Projektowanie CAN

więcej podobnych podstron