magistrala can

Transkrypt

magistrala can
MAGISTRALA CAN
PIC18F248
ASEMBLER
www.modernsoft.pl
[email protected]
MAGISTRALA CAN
«MODERNSOFT»
Opracowanie pozwala poznawać magistralę CAN, program napisany w języku
asembler dla procesorów serii PIC18F248.
ZałoŜenia
-odbiór i nadawanie CAN STANDARD/EXTENDED
-nadawanie po wciśnięciu przycisku STANDARD/EXTENDED
-obiór danych i aktywowanie wyjścia ( podaje masę)
-zmiany prędkości magistrali
-załoŜeniem jest, Ŝe sama magistrala CAN jest znana a program z płytką testową stanowi
punkt wyjściowy do praktycznego wykorzystania wiedzy w tym zakresie.
W skład zestawu wchodzi:
1. Płytka z procesorem PIC18F248 lub 18F258( większa pamięć)
2.programator PICKIT2(klon)
3.Program asembler jako projekt do wykorzystania w środowisku MPLAB
4.Przewód USB programatora
5.płyta CD
Opis płytki testowej:
Układ zbudowany w oparciu o procesor PIC18F248, do magistrali CAN dołączany za pośrednictwem układu MCP2551 układ ten dopasowuje poziomy magistrali CAN do poziomów TTL.
Całość zasilana napięciem w przedziale 8-16V z zasilacza stabilizowanego.
Układ stabilizatora 5V zrealizowany na układzie low drop, układ zabezpieczony jest
przed odwrotnym dołączeniem napięcia. Do taktowania procesora uŜyty został kwarc 4MHz,
który po powieleniu przez układ PLL x4 procesora daje sygnał zegarowy 16MHz.
Wszystkie procesory serii 12,16,18 dzielą sygnał zegarowy przez 4 w wyniku czego właściwa
prędkość taktowania procesora w tej konfiguracji daje nam 4MHz.
www.modernsoft.pl
[email protected]
MAGISTRALA CAN
«MODERNSOFT»
Procesor
MAGISTRALA CAN
«MODERNSOFT»
Procesor posiada 28 pinów jest dostępny w wersji DIP oraz wersji SMD, posiada w swej strukturze
zaimplementowany sprzętowy CAN pin23, pin24 piny te łączą się z MCP2551 i w tym układzie
moŜe być dołączony bezpośrednio do magistrali CAN.
Do programowania układu potrzeba 5 punktów programujących są to:
1.VPP MCLR (pin 1)
2.VDD +5V
3.VSS masa
4.PGD -DATA (pin 28)
5.PGC -CLK (pin 27)
Układ posiada pamięć Flash i moŜe być wielokrotnie przeprogramowany.
Porty procesora:
RA – porty wejścia wyjścia
RB - porty wejścia wyjścia
RC - porty wejścia wyjścia
Porty moŜna dowolnie konfigurować jako wejścia lub wyjścia wpisując dane do rejestru TRIS
Wpisanie 0 dla portu ustawia go jako wyjście.
Wpisanie 1 dla portu ustawia go jako wejście.
www.modernsoft.pl
[email protected]
ŚRODOWISKO MPLAB
Projekt został wykonany w darmowym środowisku MPLAB, które moŜna pobrać
ze strony MICROCHIP, większość parametrów zostało ustawionych na etapie tworzenia
projektu dlatego uŜytkownik od razu moŜe przystąpić do analizowania programu, kompilowania i w końcowym etapie zaprogramowania układu PIC18F248.
Środowisko MPLAB dostarcza wielu cennych narzędzi dzięki którym proces tworzenia programu
jest bardzo ułatwiony, jest to np. symulacja działania procesora.
Przedstawiony zostanie proces otwierania projektu oraz kompilowania.
Okno MPLAB:
www.modernsoft.pl
[email protected]
MAGISTRALA CAN
«MODERNSOFT»
OTWIERANIE PROJEKTU
Przegrywamy katalog <Projekt_CAN> z całą zawartością na dysk komputera, otwieramy
program MPLAB i wchodzimy do zakładki <Project> wybieramy <OPEN>
Odnajdujemy katalog Projekt_CAN i wybieramy CAN_BUS
Otwierają się okienka Can.asm, CAN.inc
www.modernsoft.pl
[email protected]
MAGISTRALA CAN
«MODERNSOFT»
Po wczytaniu
projektu:
Teraz moŜna dokonywać edycji programu i po wciśnięciu F10 lub ikony <Build ALL> przekompilować program. Oczywiście jak kaŜdy kompilator wyrzuci na błędy składni wskazując w której
linii znajduje się błąd.
Program MPLAB jest bardzo dobrze opisany odsyłam do literatury polskiej ksiąŜki wydawnictwa
HELION „Mikroprocesory jednoukładowe PIC” autor Stanisław Pietraszek oraz pomocy
w samym środowisku MPALAB.
Program współpracuje z programatorem PICKIT2 który jest dostarczony z pakietem CAN,
jest skonfigurowany na etapie tworzenia projektu, po podłączeniu do USB przy otwartym
MPLAB zostanie wykryty i zainstalowany.
www.modernsoft.pl
[email protected]
MAGISTRALA CAN
«MODERNSOFT»
OPIS PROGRAMU
OPRACOWANIE NIE JEST NAUKĄ PODSTAW
PROGRAMOWANIA
MAGISTRALA CAN
«MODERNSOFT»
Pomocnym narzędziem w procesie tworzenia i testowania własnych
programów będzie tester magistrali CAN.
Opis struktury programu:
Ustawienie bitów konfiguracyjnych
;Konfiguracja procesora
__CONFIG
__CONFIG
__CONFIG
__CONFIG
__CONFIG
__CONFIG
__CONFIG
__CONFIG
__CONFIG
__CONFIG
__CONFIG
_CONFIG1L, _CP_ON_1L
_CONFIG1H, _OSCS_OFF_1H & _HSPLL_OSC_1H
_CONFIG2L, _BOR_OFF_2L & _BORV_45_2L & _PWRT_ON_2L
_CONFIG2H, _WDT_ON_2H & _WDTPS_128_2H
_CONFIG4L, _STVR_ON_4L & _LVP_OFF_4L & _DEBUG_OFF_4L
_CONFIG5L, _CP0_ON_5L & _CP1_ON_5L
_CONFIG5H, _CPD_ON_5H & _CPB_ON_5H
_CONFIG6L, _WRT0_ON_6L & _WRT1_ON_6L
_CONFIG6H, _WRTB_ON_6H & _WRTC_ON_6H
_CONFIG7L, _EBTR0_ON_7L
_CONFIG7H, _EBTRB_ON_7H
Ustawienia te zostają automatycznie włączone i po wczytaniu do programatora
nie trzeba nic ustawiać, konfiguracja zawiera dane na temat rodzaju oscylatora,
zabezpieczenia programu przed odczytem itd.
W tym przypadku układ po zaprogramowaniu jest zabezpieczony przed odczytem.
Układ czasowo licznikowy i przerwania:
Do odmierzania czasu wykorzystany jest Timer0 jako 8 bitowy licznik taktowany przez preskaler o
podziale przez 32, po przepełnieniu timera czyli osiągnięciu wartości 256 generowane jest
przerwanie niskiego priorytetu czyli skok do wartości 0x0018 poniŜej kod w programie
Kod przerwania:
LOW_INT_VECTOR CODE 0x0018
bra
LowInt ; skok do obsługi przerwania
www.modernsoft.pl
[email protected]
INICJALIZACJA TIMER0 I PRZERWAŃ OD TIMER0
Rejestrem konfigurującym TIMER0 jest T0CON
www.modernsoft.pl
[email protected]
MAGISTRALA CAN
«MODERNSOFT»
Kod w programie konfigurujący TIMER0
;Ustawienia Timer0
;Timer0 initialize 8bit,pres /32
movlw b'11000100'
movwf T0CON
Teraz obliczenia:
Taktowanie procesora = 4MHz*4 =16MHz/4 =4MHz
Timer jest taktowany przez (Taktowanie procesora/preskaler)
Czyli: 4MHz/32, taimer jest przepełniany po zliczeniu do 256
Tak więc przerwanie będzie zachodziło (4MHz/32)/256 =488 razy na sekundę czyli
w zaokrągleniu co 2ms.
Tak wygląda procedura czasowa którą moŜna dowolnie zmieniać przez wpis
do rejestru T0CON.
Przerwania odblokowujemy w rejestrze INTCON, przez ustawienie bitu TMR0IE
PRZERWANIE OD TIMER0
Kod w programie:
bsf
INTCON,TMR0IE ;przerwania od TIMER0
www.modernsoft.pl
[email protected]
MAGISTRALA CAN
«MODERNSOFT»
MODUŁ CAN
MAGISTRALA CAN
«MODERNSOFT»
Procesor Pic18F248 posiada zaimplementowany moduł obsługi magistrali CAN .
Układem dopasowującym do magistrali jest układ MCP2551 który jest trasciverem posiada w
swej strukturze zabezpieczenia do 200V oraz zabezpieczenia przed ładunkami
elektrostatycznymi.
Do poprawnej pracy modułu CAN naleŜy ustawić odpowiednie bity konfiguracyjne rejestrów
np. BRGCON1, BRGCON2, BRGCON3, ustawienia filtrów, masek itd.
Program posiada wpisy które umoŜliwiają obsługę CAN STANDARD, EXTENDED ustawiona prędkość
100KBit, którą moŜna zmieniać dokonując wpisów do rejestrów BRGCON, przy wyznaczaniu
prędkości magistrali pomocną będzie zakładka Kalkulator w programie TESTER CAN.
Wszystkie parametry moŜna dowolnie zmieniać przykład wpisu do rejestrów BRGCON dla
prędkości 100KBit.
Kod w programie:
movlw 0x07
movwf BRGCON1
movlw 0x99
movwf BRGCON2
movlw 0x02
movwf BRGCON3
Program posiada ustawienia które pozwalają na odbiór wszystkich znaczników, ale ustawiając
parametry MASK oraz FILTR moŜna wybierać i filtrować znaczniki, dokładnie opisane jest
to w dokumentacji procesora która jest dołączona jako PDF do pakietu.
Obsługa modułu CAN polega na sprawdzaniu flagi która jest ustawiona po prawidłowym odebraniu danych później następuje programowe formowanie danych i tak odebrane dane
moŜna porównywać z danymi na które czekamy, jeśli dane są zgodne to podejmujemy
odpowiednie decyzje np. uaktywnienie wyjścia i zapalenie diody LED
www.modernsoft.pl
[email protected]
MAGISTRALA CAN
«MODERNSOFT»
Sprawdzanie flagi odebrania danych z magistrali CAN
Kod w programie: pętla programu
btfss
RXB0CON,RXFUL; czy flaga ustawiona?
goto
No_can_info
btfsc
STANDARD
call
Obsl_CAN_BUS_EX
btfss
STANDARD
call
Obsl_CAN_BUS
dodatkowo procedura sprawdza format ramki –STANDARD lub EXTENDED
Programowo w pakiecie zrealizowano:
1. obsługa przycisków P1-P4
2. uaktywnianie wyjść po odebraniu danych
3. Obsługa przetwornika AC
Tabela(1) prezentuje generowany znacznik oraz dane po wciśnięciu przycisków
P
P1
P2
P3
P4
ID
0x124
0x344
0x567
0x897
DLC
8
8
3
5
D0
0x11
0x12
0xAB
0xDD
D1
0x22
0x23
0xCD
0xEE
D2
0x33
0x34
0xEF
0xFF
D3
D4
0x44 0x55
0x45 0x56
D5
D6
D7
0x66 0x77 0x88
0x67 0x78 0x89
0xAA 0xBB
Tabela(2) prezentuje odbierany znacznik uaktywniający wyjście na czas 0,5s (zapala się dioda)
Out
OUT1
OUT2
OUT3
OUT4
ID
0x124
0x344
0x567
0x897
DLC
1
2
3
4
www.modernsoft.pl
[email protected]
D0
0x11
0x12
0xAB
0xDD
D1
D2
D3
0x23
0xCD 0xEF
0xEE 0xFF 0xAA
D4
D5
D6
D7
MAGISTRALA CAN
«MODERNSOFT»
Przetwornik A/C
Wejście PORTA.0 przez dzielnik/11
Tabela prezentuje przetwornik AC pomiar do 50V!!!
AC
AC
ID
0x777
DLC
2
D0
Wynik
pomiaru
D1
Wynik
pomiaru
D2
D3
D4
D5
D6
D7
Identyfikator pomiarów to wartość 0x777 DLC-2, DANE D0 i D1
D1-ADRESL przetwornika AC
D0-ADRESH przetwornika AC
Na wejściu zastosowano dzielnik napięcia We /11, rozdzielczość przetwornika 10 bitów, źródłem napięcia
odniesienia jest napięcie zasilania 5V.
Obliczanie napięcia z D0 i D1
ODN =(5/1024)*11
w tym przypadku ODN =0,053
Napięcie = (D0-D1)*ODN
www.modernsoft.pl
[email protected]
Porty WE/WY
Porty procesora zostały zdefiniowane w pliku włączanym Can.inc
MAGISTRALA CAN
«MODERNSOFT»
Zdefiniowane porty obsługi P1, P2, P3, P4
Porty wejścia
#define
P1 PORTC,1
#define
P2 PORTC,0
#define
P3 PORTA,5
#define
P4 PORTA,4
Porty wyjścia
#define
Out_P1 PORTB,7
#define
Out_P2 PORTB,6
#define
Out_P3 PORTB,5
#define
Out_P4 PORTB,4
#define
Led PORTC,2 ; dioda Led
Odpowiednie wpisy są tez w rejestrach TRIS, jak wcześniej wspomniano
www.modernsoft.pl
[email protected]
0-jeśli port jest wyjściem
1-jeśli port jest wejściem
Programowanie modułu
Moduł zbudowany na podstawie Trans CAN-dual, Can BUS 2 jest przyłączany do
magistrali.
Zawiera wszystkie elementy i został przetestowany .
Aby zaprogramować moduł naleŜy podłączyć zasilanie i zgodnie ze specyfikacja podłączyć
programator z gniazdem programowania
Gniazdo programowania:
1.PGD
2.PGC
3.VDD(+)
4.VSS(minus)
5.VPP
Moduł wstępnie został zaprogramowany programem który jest dołączony do pakietu.
www.modernsoft.pl
[email protected]
MAGISTRALA CAN
«MODERNSOFT»

Podobne dokumenty