Paweł MOROZ Politechnika Śląska, Instytut Informatyki pawel.moroz@polsl.pl



Podobne dokumenty
BIBLIOTEKI FUNKCJI KOMUNIKACYJNYCH CAN ANALIZA PORÓWNAWCZA

TEMPERATURE CONTROL SYSTEM BY THE CAN BUS UKŁAD REGULACJI TEMPERATURY POPRZEZ MAGISTRALĘ CAN

Systemy wbudowane - wykład 8. Dla zabicia czasu Notes. I 2 C aka IIC aka TWI. Notes. Notes. Notes. Przemek Błaśkiewicz.

Materiały dodatkowe Krótka charakterystyka protokołu MODBUS

Wykład 3. Interfejsy CAN, USB

Wbudowane układy komunikacyjne cz. 1 Wykład 10

PRZEDSTAWIENIE WYNIKÓW ANALIZY STRUKTURY NAGŁÓWKA RAMKI CAN POD KĄTEM WPŁYWU POSZCZEGÓLNYCH PÓL NA LICZBĘ WSTAWEK BITOWYCH

Problematyka sieci miejscowej LIN

Magistrala LIN

Architektura komputerów. Układy wejścia-wyjścia komputera

Komunikacja w mikrokontrolerach Laboratorium

Podstawy Projektowania Przyrządów Wirtualnych. Wykład 9. Wprowadzenie do standardu magistrali VMEbus. mgr inż. Paweł Kogut

Mikroprocesor Operacje wejścia / wyjścia

Obługa czujników do robota śledzącego linie. Michał Wendland czerwca 2011

Zaliczenie Termin zaliczenia: Sala IE 415 Termin poprawkowy: > (informacja na stronie:

Współpraca procesora ColdFire z urządzeniami peryferyjnymi

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Architektura komputerów

MAGISTRALA CAN STRUKTURA RAMKI CAN

Zastosowania mikrokontrolerów w przemyśle

WPROWADZENIE Mikrosterownik mikrokontrolery

Na początku lat dziewięćdziesiątych międzynarodowy przemysł samochodowy stanął przed dwoma problemami dotyczącymi rozwoju samochodów: jak poprawić kom

Wykład 4. Interfejsy USB, FireWire

Model OSI. mgr inż. Krzysztof Szałajko

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

Przesyłania danych przez protokół TCP/IP

Smart home managing by Ethernet micro server. Zarządzanie systemem inteligentnego domu za pomocą mikro serwera Ethernet. 1. Cele

Sieci komputerowe - warstwa fizyczna

Interfejsy. w systemach pomiarowych. Ryszard J. Barczyński, 2016 Materiały dydaktyczne do użytku wewnętrznego

Mikroprocesory i Mikrosterowniki Magistrala szeregowa I2C / TWI Inter-Integrated Circuit Two Wire Interface

asix4 Podręcznik użytkownika SAPIS7 - drajwer protokołu SAPIS7 Podręcznik użytkownika

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja. do ćwiczeń laboratoryjnych z przedmiotu: SYSTEMY CYFROWE 1.

o Instalacja środowiska programistycznego (18) o Blink (18) o Zasilanie (21) o Złącza zasilania (22) o Wejścia analogowe (22) o Złącza cyfrowe (22)

Protokoły sieciowe model ISO-OSI Opracował: Andrzej Nowak

Interfejsy systemów pomiarowych

Technika Mikroprocesorowa

Spis treści. 1 Moduł Modbus TCP 4

Komunikacja w mikrokontrolerach. Magistrala szeregowa I2C / TWI Inter-Integrated Circuit Two Wire Interface

Działanie systemu operacyjnego

Skąd dostać adres? Metody uzyskiwania adresów IP. Statycznie RARP. Część sieciowa. Część hosta

Politechnika Białostocka. Wydział Elektryczny. Katedra Automatyki i Elektroniki. Kod przedmiotu: TS1C

ARCHITEKTURA PROCESORA,

TECHNIKA MIKROPROCESOROWA

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

2.1 Porównanie procesorów

Mikroprocesory i Mikrosterowniki Laboratorium

Praca dyplomowa. Program do monitorowania i diagnostyki działania sieci CAN. Temat pracy: Temat Gdańsk Autor: Łukasz Olejarz

Rozproszony system zbierania danych.

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

1. Cel ćwiczenia. Celem ćwiczenia jest zestawienie połączenia pomiędzy dwoma sterownikami PLC za pomocą protokołu Modbus RTU.

Enkapsulacja RARP DANE TYP PREAMBUŁA SFD ADRES DOCELOWY ADRES ŹRÓDŁOWY TYP SUMA KONTROLNA 2 B 2 B 1 B 1 B 2 B N B N B N B N B Typ: 0x0835 Ramka RARP T

ĆWICZENIE 5. TEMAT: OBSŁUGA PORTU SZEREGOWEGO W PAKIECIE KEILuVISON WYSYŁANIE PORTEM SZEREGOWYM

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Wykład I. Podstawowe pojęcia. Studia Podyplomowe INFORMATYKA Architektura komputerów

Komunikacja w mikrokontrolerach Laboratorium

Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki.

TCP/IP formaty ramek, datagramów, pakietów...

LEKCJA TEMAT: Zasada działania komputera.

Działanie systemu operacyjnego

Rozdział ten zawiera informacje na temat zarządzania Modułem Modbus TCP oraz jego konfiguracji.

Komunikacja z urzadzeniami zewnętrznymi

ARP Address Resolution Protocol (RFC 826)

Warstwy i funkcje modelu ISO/OSI

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Zarządzanie infrastrukturą sieciową Modele funkcjonowania sieci

OPROGRAMOWANIE FIRMWARE INTERFEJSU ETHERNETOWEGO UNIV

Funkcje sterownika CellBOX-UxR ModBUS RTU

UKŁADY MIKROPROGRAMOWALNE

Rok szkolny 2014/15 Sylwester Gieszczyk. Wymagania edukacyjne w technikum. SIECI KOMPUTEROWE kl. 2c

Przemysłowe Sieci Informatyczne. Sieć CAN (Controller Area Network)

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Mikroprocesory i mikrosterowniki Wydział Elektroniki Mikrosystemów i Fotoniki Politechniki Wrocławskiej Ćwiczenie nr 4

OPROGRAMOWANIE PRZEKAŹNIKA MONOSTABILNEGO UNIV

1 Moduł Modbus ASCII/RTU 3

Oprogramowanie przekaźnika monostabilnego UNIV

OPROGRAMOWANIE ODBIORNIKA / NADAJNIKA PODCZERWIENI UNIV

Standard transmisji równoległej LPT Centronics

CompactPCI. PCI Industrial Computers Manufacturers Group (PICMG)

4 Transmisja szeregowa na przykładzie komunikacji dwukierunkowej z komputerem PC, obsługa wyświetlacza LCD.

Struktura i działanie jednostki centralnej

Referencyjny model OSI. 3 listopada 2014 Mirosław Juszczak 37

Politechnika Gdańska. Gdańsk, 2016

OPROGRAMOWANIE STEROWNIKA ROLET UNIV

asix4 Podręcznik użytkownika CAN_AC_PCI - drajwer protokołu CANBUS dla karty CAN_ACx_PCI Podręcznik użytkownika

TECHNIKA MIKROPROCESOROWA

1 Moduł Modbus ASCII/RTU

Działanie systemu operacyjnego

Architektura komputera. Dane i rozkazy przechowywane są w tej samej pamięci umożliwiającej zapis i odczyt

OPROGRAMOWANIE PRZEKAŹNIKA BISTABILNEGO UNIV

MODBUS RTU wersja M1.14 protokół komunikacyjny wyświetlaczy LDN

Pracownia Transmisji Danych, Instytut Fizyki UMK, Toruń. Instrukcja do ćwiczenia nr 10. Transmisja szeregowa sieciami energetycznymi

Sieci Komputerowe Mechanizmy kontroli błędów w sieciach

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy

Protokoły sieciowe - TCP/IP

Szybkobieżne Pojazdy Gąsienicowe (15) nr 1, 2002 UNIWERSALNY ZESTAW POMIAROWY W ZASTOSOWANIACH MOBILNYCH

Sieci komputerowe. Zadania warstwy łącza danych. Ramka Ethernet. Adresacja Ethernet

Logiczny model komputera i działanie procesora. Część 1.

To jeszcze prostsze, MMcc1100!

SEGMENT TCP CZ. II. Suma kontrolna (ang. Checksum) liczona dla danych jak i nagłówka, weryfikowana po stronie odbiorczej

Transkrypt:

Rozdział Biblioteka funkcji komunikacyjnych CAN Paweł MOROZ Politechnika Śląska, Instytut Informatyki pawel.moroz@polsl.pl Streszczenie W rozdziale zaprezentowano bibliotekę funkcji komunikacyjnych CAN, ułatwiającą tworzenie aplikacji. Opisano jej organizację, możliwości modyfikacji i przykłady wykorzystania. Pokrótce przedstawiono zasadę działania samej sieci i układu komunikacyjnego, dla którego ta biblioteka została napisana. 1. Wprowadzenie Controler Area Network (CAN) jest siecią przemysłową o transmisji szeregowej, asynchronicznej, bez węzła sterującego. Można się z nią zetknąć w instalacjach przemysłowych, budynkach użyteczności publicznej, samochodach oraz aparaturze medycznej. Podstawowymi jej zaletami są: wysoka prędkość transmisji, niezawodność, odporność na zakłócenia, a także możliwość tworzenia własnych protokołów wymiany informacji, których częścią będą warstwy protokołu CAN. 2. Protokół CAN Dokument ISO-11898-1, w którym opisano protokół CAN, obejmuje w głównej mierze warstwę łącza danych. Występuje w niej jednak również opis warstwy fizycznej, w tym: fizyczny format sygnałów przesyłanych magistralą, właściwości elektryczne oraz sposób synchronizacji zegarów taktujących nadajnika i odbiorników, niezbędny z powodu braku linii zegarowej. Wspomniany dokument nie zawiera informacji na temat medium transmisyjnego. Rozszerzenia standardu ISO 11898-1, uwzględniające również medium transmisyjne i typy złączy, zostały przygotowane i opublikowane przez CiA [1]. Standard ISO 11898-2 opisuje warstwę fizyczną sieci wykorzystywaną między innymi w pojazdach samochodowych, a 11898-3 w systemach automatyki przemysłowej. Transmisja w łączu odbywa się zależnie od standardu. Stosowana jest transmisja różnicowa, jednak możliwa jest również

2 P. Moroz transmisja po jednej linii danych. Wraz z wyborem rodzaju magistrali narzucone zostają takie parametry, jak jej długość i maksymalna prędkość transmisji. SOF Identifier RTR Control Data CRC ACK EOF 1 bit 11 bit / 29 bit 1 bit 6 bit 0 8 bajtów 16 bit 2 bit 7 bit Rysunek 1 Budowa ramki Rysunek 1 przedstawia budowę ramki, w skład której wchodzą następujące elementy: SOF (ang. Start Of Frame) sygnalizacja rozpoczęcia transmisji Identyfikator niezależny od nadajnika, w pierwszej wersji standardu identyfikator miał długość 11 bitów. Rozwinięcie standardu wprowadziło możliwość wykorzystania identyfikatora 11 (2.0A) lub 29 bitowego (2.0B). RTR (ang. Remote Transmition Request) flaga określająca rodzaj ramki (ramka zdalnego żądania lub ramka danych) Control informacja o ilości bajtów danych Data pole danych CRC (ang. Cyclic Redundancy Checksum) suma kontrolna ACK (ang. Acknowledgment) obszar, w którym sygnalizowane jest odebranie ramki. EOF (ang. End Of Frame) znacznik końca ramki Ze względu na równoprawny dostęp wszystkich węzłów do magistrali podczas transmisji mogą występować kolizje. Dla ich rozstrzygania został zaprojektowany algorytm CSMA/CD/CR (ang. Carrier Sense Multiple Access/Collision Detection/Colision Resolution). Jego zaletą jest to, że wiadomość nadawana przez zwycięzcę algorytmu nie zostaje zniszczona. Wykorzystuje się tu fizyczną cechę łącza tzw. sumę logiczną nadawanych sygnałów. Identyfikator określa priorytet wiadomości, który jest tym wyższy, im niższa jest wartość identyfikatora. Arbitraż w łączu trwa od bitu SOF do bitu RTR. Każdy węzeł nadający wiadomość prowadzi jednocześnie nasłuch i porównuje, czy wartość nadawanego bitu odpowiada stanowi łącza. W razie różnicy pomiędzy bitem nadawanym a odczytanym, węzeł wycofuje się z transmisji. Procedura ta trwa do momentu wyłonienia tylko jednego nadawcy, którym będzie węzeł wysyłający ramkę o najniższym identyfikatorze. 3. Wymagania sprzętowe Biblioteka została napisana dla układu CAN typu MCP2515, który pozwala na wykorzystanie zarówno ramek standardu 2.0 A jak i 2.0 B. Układ ten realizuje sprzętowo niektóre elementy protokołu: obliczanie sumy kontrolnej, weryfikację poprawności ramek, algorytm rozwiązywania kolizji, synchronizację transmisji itd. Użycie zewnętrznego modułu, w przeciwieństwie do procesorów z wbudowanym układem obsługi sieci CAN, daje możliwości wykorzystania zarówno tworzonego programu jak i biblioteki w węzłach o zróżnicowanych zastosowaniach.

Biblioteka funkcji komunikacyjnych CAN... 3 Procesor komunikuje się z układem MCP2515 poprzez magistralę szeregową SPI, złożoną z 4 linii: zegarowej (CLK), danych wysyłanych z procesora (OUTPUT), danych odbieranych z układu MCP2515 (INPUT), wyboru układu (CS). Prędkość transmisji może dochodzić do 10Mbit/s co w porównaniu z maksymalną prędkością magistrali CAN, która wynosi 1Mbit/s, zapewnia wystarczającą przepustowość. Dodatkowo układ MCP2515 umożliwia pracę z wykorzystaniem przerwań[3]. Do nadawania i odbierania ramek wyznaczone są odpowiednio 3 i 2 zestawy buforów oraz rejestrów. Dodatkowo do buforów odbiorczych dołączono rejestry filtrujące, w których definiowane są identyfikatory tych ramek, które mają być w tych buforach zapamiętane. [4] Procesor przy użyciu odpowiednich rozkazów może wykonać operacje na pamięci wewnętrznej układu MCP2515. Zbiór operacji na pamięci nie ogranicza się tylko do prostych operacji odczytu i zapisu wskazanej komórki pamięci, ale umożliwia także zapis lub odczyt całego bufora nadawczego lub jego obszaru danych, modyfikację poszczególnych bitów w komórce. Dostępne są również rozkazy inicjujące wykonanie określonej operacji np. wysyłania ramki ze wskazanego bufora. W każdym systemie CAN musi być układ zamieniający cyfrową postać ramki na odpowiedni przebieg w liniach transmisyjnych. Przykładem takiego układu jest MCP2551, mogący pracować z prędkością do 1 Mbit/s. Jest w pełni kompatybilny z ISO-11898-2. Ze względów elektrycznych występuje ograniczenie na ilość węzłów podłączonych do sieci w tym przypadku może maksymalnie występować do 112 urządzeń. 4. Biblioteka funkcji komunikacyjnych Podczas pisania programów dla mikroprocesorów, nie mamy nigdy do czynienia z tym samym środowiskiem sprzętowym (wykorzystywane są różnego rodzaju procesory oraz układy wejścia-wyjścia). Dlatego, aby biblioteka była użyteczna i funkcjonalna należy ją tak przygotować, aby dostosowanie jej do potrzeb konkretnego programu było proste i łatwe. Zostało to uzyskane poprzez rozbicie samej biblioteki na moduły kolejnych warstw, umieszczając każdą z warstw w osobnym pliku, co przedstawia rysunek 2. Każda warstwa grupuje w sobie zestaw funkcji realizujących określoną funkcjonalność. Np. moduł SPI zawiera funkcje obsługi interfejsu komunikacyjnego między procesorem a kontrolerem CAN. Dostępne są procesory ze sprzętowym sterownikiem SPI m.in. ATMega128. Jeżeli procesor takiego układu nie posiada, możliwa jest zamiana modułu wykorzystującego sprzętowe SPI na moduł, który funkcje interfejsu realizuje w sposób programowy.

4 P. Moroz Rysunek 2 - Schemat biblioteki Przykładem wykorzystania rozdzielenia biblioteki na 3 oddzielne części jest interfejs komunikacyjny pomiędzy procesorem a kontrolerem CAN. Dostępne są procesory z wbudowanym układem obsługi SPI, między innymi ATMega128, w których wykorzystanie układu programowego byłoby niepotrzebne. Gdy procesor nie obsługuje sprzętowo komunikacji po magistrali SPI, możliwe jest podmienienie modułu wykorzystującego sprzętowe SPI na jego programową realizację. Dzięki temu w prosty sposób można przystosować bibliotekę dla innego procesora. Pewne funkcjonalności są zdublowane w bibliotece wykonane jako funkcje i makra. Poprzez taką nadmiarowość użytkownik uzyskuje możliwość optymalizacji programu do swoich potrzeb: wykorzystanie funkcji zmniejsza zajętość pamięci; wykorzystanie makra przyspiesza działanie kodu. Kolejna warstwa zawiera funkcje obsługi układu MCP2515 realizowane bezpośrednio przez kontroler. Umożliwiają one: zapis/odczyt zarówno pojedynczych bajtów jak i bloków danych, modyfikację bitów w rejestrach modułu CAN, ustawienie wartości początkowych modułu CAN, zainicjowanie transmisji zawartości określonego bufora danych, odczyt stanów wybranych bitów rejestrów. Funkcje te są podstawą do tworzenia bardziej złożonych funkcji, umieszczonych w kolejnej warstwie Moduł ExtendedCAN. Funkcje najwyższej (Rysunek 2) warstwy korzystają z trzech zdefiniowanych struktur. Pierwszą z nich jest struktura zawierająca wszystkie informacje o nadawanej lub odbieranej ramce: 4 bajty identyfikatora ramki, 8 bajtów danych zapisanych w tablicy, liczba bajtów danych (odpowiednik pola DLC), znacznik określający typ ramki (0/1 2.0A/2.0B), znacznik określający rodzaj ramki (0/1 - danych/zdalna). Oprócz informacji niezbędnych do wypełnienia ramki dodano pole określające jej priorytet, gdyż w module jest możliwość zdefiniowania kolejności nadawania ramek poprzez dwubitową wartość. Specjalnie przygotowane funkcje dokonują

Biblioteka funkcji komunikacyjnych CAN... 5 przekształcenia danych do tablicy bajtów zdefiniowanej w bibliotece, skąd bezpośrednio można je zapisać do pamięci sterownika CAN. Druga ze struktur przechowuje konfiguracje, których modyfikacja może następować tylko w trybie konfiguracyjnym. W jej skład wchodzą: rejestry ustawiające prędkość transmisji, filtry i maski decydujące o przyjęciu wiadomości, konfiguracja niektórych wyprowadzeń z układu MCP2515. Celem stworzenia tej struktury była chęć przyspieszenia konfiguracji węzła, a zarazem zgrupowanie wszystkich parametrów konfiguracyjnych. Skrócenie czasu konfiguracji węzła uzyskuje się przy założeniu, że modyfikowane są wszystkie rejestry konfiguracyjne, bądź też znacząca ich większość. Uzyskuje się to poprzez redukcję przełączeń układu CAN pomiędzy trybami pracy a trybem konfiguracyjnym. Ostatnia ze struktur służy do czytelnego określenia identyfikatorów, z którymi mają być porównywane identyfikatory odbieranych wiadomości. Na ich podstawie MCP2515 podejmuje decyzje o przyjęciu lub zignorowaniu ramki. Zamianą zawartości struktury na reprezentację wykorzystywaną przez układ zajmują się odpowiednie funkcje. Większość funkcji dokonuje przekształceń danych wejściowych, aby następnie umieścić je bezpośrednio w pamięci układu MCP2515. Wyjątkiem jest funkcja wyznaczająca prędkość transmisji, którą określa się za pomocą tzw. kwantów. Kwantem nazywamy jednostkę czasu wykorzystywaną przez nadajnik sieci CAN, wyznaczaną za pomocą podzielnika (ang. Prescalera) zegara taktującego układ transmisji. Poza elastycznością, biblioteka miała ułatwiać tworzenie czytelnego i samokomentującego się kodu. Pomysłem na uzyskanie takiego efektu było stworzenie nazw funkcji długich, ale za to jednoznacznie wyjaśniających ich zadania danej funkcji (np. void CANTransmit0IntEnableNow(BYTE OnOff) natychmiastowe włączenie przerwania sygnalizującego nadanie wiadomości z bufora 0). Z tego samego powodu w bibliotece umieszczono plik nagłówkowy, w którym zdefiniowano stałe dla adresów poszczególnych rejestrów, numery końcówek, a także maski dla poszczególnych bitów lub ich grup. Nazwy stałych i zmiennych w bibliotece tworzone były wg następujących reguł: _r<nazwa> - adres rejestru o nazwie wykorzystywanej w dokumentacji, _p<nazwa> - pozycja bitu wymienionego w polu nazwa, _n<nazwa> - numer bitu wymienionego w polu nazwa, _m<nazwa grupy> - maska dla grupy bitów, _i<nazwa> - nazwa kodu instrukcji wykonywanego w sterowniku CAN, b<nazwa> - zmienna o rozmiarze 1 bajtu, t<nazwa> - zmienna tymczasowa.

6 P. Moroz 5. Przykłady implementacji Przykład 1 Niżej podano przykład użycia funkcji z modułu BasicCAN. Funkcja ta wypełnia cały bufor nadawczy, odpowiednio przygotowaną ramką (kolejnymi bajtami umieszczonymi w tabeli) BYTE CAN_WriteTx(_iTXB0SIDH, Frame, 12) Ten sam efekt można uzyskać za pomocą pętli. Jednak kod w tej postaci jest znacznie mniej zrozumiały. BYTE i; //rozpoczęcie transmisji przez ustawienie linii CS SPI w stan niski SPI_CS_On; //nadanie SPI_MasterTransiver(_iWRITETX btxcode); for (i = 0;i < 12; i++) SPI_MasterTransiver(pFrame[i]); SPI_CS_Off; return 0; } Czytelność obu rozwiązań poprawia wykorzystanie stałych. Zamiast trudnych do zapamiętania i wykorzystywania adresów rejestrów, pozycji poszczególnych bitów, kodów instrukcji, itd. lepiej wykorzystywać czytelne i łatwe do zapamiętania nazwy, występujące także w dokumentacji (tj. _iwritetx instrukcja zapisania bloku danych do bufora reprezentowana przez bajt 0x40). Przykład 2 wykorzystanie funkcji z modułu ExtendedCAN. CANSendMsgFull(1, Message, Yes) Powyższa funkcja wysyła do MCP2515 wiadomość i natychmiast po zakończeniu zapisywania rozpoczyna transmisję. Aby samodzielnie załadować ramkę należy wykonać następujące operacje SPI_CS_On //rozpoczęcie transmisji po SPI; Wysłanie_Bajtu (0x41); Wysłanie_Bajtu (Bajt_Ramki); Wysłanie_Bajtu (0x08 rozkaz danaj ramkę); SPI_CS_Off //zakończenie transmisji po SPI; 6. Podsumowanie W rozdziale przedstawiona została opracowana biblioteka komunikacyjna sieci CAN. Celem było uzyskanie zbioru funkcji umożliwiających przyspieszenie tworzenia aplikacji z wykorzystaniem sieci CAN, uproszczenie korzystania z protokołu i poprawienie czytelności kodu. W rozdziale zwrócono uwagę na modułową strukturę biblioteki zapewniającą łatwiejsze modyfikowanie wybranych elementów. LITERATURA 1. Kołodziejski J., Kalita W., P. Rz., Kamuda K.: Magistrala CAN. Struktura, właściwości i zastosowania Elektronika 2000

Biblioteka funkcji komunikacyjnych CAN... 7 2. Etschberger K.: Controler Area Network - Basics, Protocols, Chips and Applications. IXXAT Press, Weingarten/Niemcy 2001. 3. Microchip: DataSheet Stand-Alone CAN Controller With SPI Interface MCP2515 www.microchip.com 4. Microchip: DataSheet MCP2551 High-Speed CAN Transciever, www.microchip.com.