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»