Mateusz Niedziółka – Układ regulacji temperatury poprzez

Transkrypt

Mateusz Niedziółka – Układ regulacji temperatury poprzez
Mateusz Niedziółka – V rok
Koło Naukowe Techniki Cyfrowej
dr inż. Wojciech Mysiński – opiekun naukowy
TEMPERATURE CONTROL SYSTEM BY THE CAN BUS
UKŁAD REGULACJI TEMPERATURY POPRZEZ MAGISTRALĘ CAN
Keywords: network, motorization, automation, bus, protocol, topology.
Słowa kluczowe: sieć, motoryzacja, automatyka, magistrala, protokół, topologia.
The topic of this article is about practical implementation of temperature control system by
the CAN bus. It is a very popular bus also use in spheres like industrial automation, robotics. We
owe its commonness to easy implementation, low costs of production and high protection against
errors.
1. Controller Area Network – wstęp[1]
Jak wiadomo, w systemach rozproszonych ważne jest to by przesyłanie danych odbywało się
jak najszybciej i jak najbardziej niezawodnie. Magistralą, która spełnia w pełni te kryteria jest
właśnie CAN. Szybkość, brak awaryjności, prostota implementacji to tylko, niektóre z jej wielu
zalet.
Rozwój motoryzacji wymusza szybki rozwój techniki, która ma zaspokoić najwyższe
wymagania ze strony przedsiębiorców oraz właścicieli zakładów samochodowych. W latach 80
firma Bosch postanowiła, wynaleźć coś co spełni oczekiwania rynku. Powstała magistrala CAN,
która w swoim pierwowzorze miała być przeznaczona wyłącznie do samochodów. Dzięki tej
gałęzi przemysłu zyskała ona swoją popularność. Później jednak, okazało się, że jest na nią duże
zapotrzebowanie również w dziedzinie automatyki przemysłowej.
1.1. Topologia[6]
Wszystkie urządzenie dołączone są do wspólnych przewodów w postaci szyny. Szyna składa
się z dwóch przewodów: CAN high, CAN low. Przewody przeważnie są w postacie skrętki,
jednak nie jest to wymóg, bez którego magistrala nie będzie działać. Sygnał napięciowy jest
sygnałem różnicowym. Stosuje się ją przeważnie w środowiskach narażonych na dość duże
zakłócenia elektromagnetyczne takie jak sale produkcyjne czy choćby samochody.
Warto tutaj skupić się na istotnej cesze magistrali. Jest to magistrala typu multimaster [1] co
oznacza, że każdy moduł może być jednocześnie nadajnikiem i odbiornikiem. Urządzenia nie
posiadają adresów. Adresowana jest jedynie wiadomość. W zależności jak ustawione są filtry i
maski danego kontrolera CAN w danym module, będzie to decydować, czy odbierze on
wiadomość znajdującą się na magistrali. Jest to tzw. adresowanie zawartością. Z racji tego
rozwiązania nie ma konieczności adresowania poszczególnych węzłów, a co za tym idzie nie ma
problemu z przyłączeniem dodatkowych modułów do sieci, gdyż nie ma potrzeby sprzętowej
modyfikacji całej sieci.
1.2. Standard ISO11898[6]
Z biegiem czasu magistralą CAN zainteresowała się Międzynarodowa Organizacja
Normalizacyjna, po to aby objąć ją normą według standardu ISO/OSI [6]. Jest to podstawa
standaryzacji komunikacji danych. Warto wspomnieć, że organizacja ta w latach
dziewięćdziesiątych rozpoczęła proces ustalania norm dla magistrali pojazdów.
Dla magistrali CAN zostały określone jedynie 3 z 7 warstw:
Warstwa fizyczna:
-dwuprzewodowa skrętka
-rezystory
-sygnał różnicowy
Warstwa łącza danych:
-adresy urządzeń
-sterowanie
-dane
-zabezpieczenia przed błędami
Warstwa aplikacji:
-protokół wymiany informacji
1.3. Budowa ramki danych[1]
Dane wysyłane są w postaci pakietów nazywanych ramkami. Występują ich cztery rodzaje
jednak przedstawię tę, która jest dla nas najistotniejsza a mianowicie ramkę danych, która składa
się z 7 głównych pól.
Pole
początku
ramki
Pole
arbitrażu
Pole
kontrolne
Pole
danych
Pole
CRC
Pole
potwierdzenia
Pole
końcowe
Rys. 1. Ramka danych
W skrócie opiszę najważniejsze pola ramki danych:
Pole początku ramki – pozwala na synchronizację pomiędzy wszystkimi węzłami.
Pole arbitrażu – pole to zawiera 12 bitów. 11 bitów jest przeznaczone na identyfikator natomiast
jeden bit jest to tzw. RTR. Wartość tego bitu decyduje o tym czy wysyłamy ramkę danych czy
zdalną
Pole kontrolne – pole to zawiera 6 bitów. Pierwszy bit IDE, musi być dominujący jeżeli chcemy
przesłać ramkę standardową (recesywny jest w przypadku ramki rozszerzonej).
Pole danych – zawiera to co chcemy przesłać po magistrali.
Pole CRC – pole sumy kontrolnej.
2. Praktyczne zastosowanie magistrali CAN - wstęp
W celu uruchomienia komunikacji poprzez magistralę CAN zaprojektowałem 3 moduły.
Każdy wyposażyłem w mikro-kontroler oraz urządzenia peryferyjne.
Moduł pierwszy posiada wyświetlacz ciekłokrystaliczny, na którym będzie wyświetlana
temperatura aktualnie mierzona, dodatkowo będzie on posiadał możliwość ustawiania temperatury
zadanej za pomocą dwóch przycisków. Te dwie wartości będzie on porównywał ze sobą i dawał
sygnał na magistralę informując o tym czy temperatura aktualnie mierzona nie przekracza
temperatury zadanej przez użytkownika.
Moduł drugi posiada termometr[9] mierzący temperaturę otoczenia oraz potencjometr.
Potencjometr służy do zadania odpowiedniej wartości współczynnika wypełnienia w metodzie
modulacji szerokości impulsów.
Moduł trzeci odpowiada za chłodzenie termometru z modułu drugiego. Posiada on silnik
prądu stałego, który napędza wiatraczek[8]. Włącza się on jeżeli dostanie informację, że
temperatura zadana przez użytkownika jest większa od temperatury aktualnie mierzonej.
2.1. Płytka uniwersalna
Każdy moduł posiada w sobie zaprojektowaną przeze mnie płytkę uniwersalną. Głównymi jej
elementami jest mikrokontroler Atmega32[4] firmy Atmel, kontroler CAN MCP2515[2] firmy
Microchip oraz transceiver MCP2551[3] również firmy Microchip.
Rys. 2. Gotowa płytka pod moduł CAN
W darmowej, ograniczonej wersji programu Eagle, firmy CadSoft[7] zaprojektowałem 3
identyczne płytki w celu minimalizacji kosztów zamówienia. Były one jednak tak uniwersalne, że
mogłem w dużym stopniu modyfikować układ w zależności od własnych potrzeb.
2.2. Protokół wymiany informacji[2][4][5].
W mojej pracy korzystam z dobrodziejstwa firmy Microchip jakim jest kontroler
MCP2515[2]. Aby usprawnić możliwość korzystania z magistrali CAN, kontroler w sposób
sprzętowy realizuje pewne zadania opierając się na warstwie łącza danych. Natomiast niezbędne
jest zdefiniowanie przez użytkownika dodatkowych reguł w celu inicjalizacji wymiany danych po
magistrali.
Urządzenie w sposób sprzętowy realizuje zadania:





kontrolę ramek
arbitraż
opóźnienia czasowe
wykrywanie błędów
filtrowanie wiadomości
Użytkownik natomiast musi zdefiniować:









rodzaj identyfikatora (standardowy bądź rozszerzony)
wartość identyfikatora dla każdej wiadomości
długość pola danych
rodzaj przesyłanej ramki (czy ma być to ramka zdalna czy ramka danych)
prędkość przesyłu danych
wartości masek oraz filtrów
zapis do konkretnych buforów nadawczych
priorytet każdego z buforu nadawczego
odczyt z odpowiednich buforów odbiorczych
Głównym modułem, który wysyła najbardziej znaczące dane jest moduł numer 2. Wysyła on
dwa rodzaje informacji:
1)
2)
temperaturę
wartość współczynnika wypełnienia
Ramka danych, która posiada w sobie wartość współczynnika wypełnienia ma identyfikator
43h. Natomiast ramka danych odpowiadająca za przesyłanie danych o temperaturze posiada
identyfikator 2Fh. Pierwsza informacja jest jedno-bajtowa dlatego uzupełniam pole DLC (z ang.
Data Length Code) w ramce danych o wartość 1. Natomiast w przypadku drugiej wiadomości,
która jest dwu-bajtowa wpisuję wartość 2 do pola DLC.
Moduł numer 1 z wyświetlaczem oraz numer 3 z wiatraczkiem odpowiednio odbierają
informację. W celu odebrania informacji trzeba odpowiednio zdefiniować filtry i maski.
Natomiast pomimo, że moduł numer 1 odbiera informacje o wartości temperatury, wysyła
ponadto informację o identyfikatorze CEh, od której zależy, czy wiatrak znajdujący się na module
numer 3 zostanie uruchomiony.
Powyższy opis części protokołu zrealizowany przeze mnie potwierdza to iż magistrala CAN
jest typu multimaster[1] – dany moduł/węzeł może wysyłać i jednocześnie odbierać informację na
magistrali.
3. Działanie układu.
Moduł nr 2 wysyła informację o bieżącej temperaturze. Moduł nr 1 porównuje wartość
temperatury zadanej przez użytkownika z wartością temperatury otrzymanej. Jeżeli temperatura
mierzona nie przekracza zadanej, moduł nr 1 nie wysyła wiadomości o włączeniu wiatraczka.
Rys. 3. Etap 1 – wysyłanie informacji o temperaturze z modułu drugiego do modułu pierwszego.
W momencie kiedy temperatura zadana zostanie przekroczona moduł nr 1 wysyła
wiadomość na magistralę która włącza wiatrak.
Rys. 4. Etap 2 – włącznie chłodzenia.
Dodatkowo można regulować obroty wiatraczka za pomocą potencjometru znajdującego
się w module nr 2.
Rys. 5. Etap 3 – regulacja obrotów wiatraczka
Rys. 6. Widok wszystkich modułów
Lit erat u ra
[1] Elektronika praktyczna 4/2000
[2] Dokumentacja techniczna kontrolera CAN MCP2515 firmy Microchip dostępna na
http://www.microchip.com/
[3] Dokumentacja techniczna transceivera CAN MCP2551 firmy Microchip dostępna na
http://www.microchip.com/
[4] Dokumentacja techniczna mikrokontrolera Atmega32 firmy Atmel dostępna na
http://www2.atmel.com/
[5] Kurs
programowania
mikro-kontrolerów
AVR
umieszczony
na
http://www.hobby.abxyz.bplaced.net/
[6] http://canbus.pl/
[7] http://www.cadsoftusa.com/
[8] http://www.unitedpro.com/
[9] http://www.maxim-ic.com/
stronie
stronie
stronie
stronie

Podobne dokumenty