2 Opis protokołu CAN
Obecnie w automatyce i sterowaniu dostrzega się potrzebę decentralizacji elementów sterowania oraz do tworzenia specjalnych kanałów komunikacyjnych pozwalających zbierać i wysyłać określone informacje. Coraz częściej stosowane są również inteligentne czujnik wysyłające samoczynnie poprzez różne media transmisyjne komunikaty informujące procesor o stanach kontrolowanych obiektów. Tendencje te doprowadziły do opracowania wielu protokołów komunikacyjnych za pośrednictwem jednej lub wielu linii komunikacyjnych takich jak Profibus, P-Net, FIP, LON, Interbus-S (lata 80-te ) które mogły by sprawnie łączyć wszystek elementy rozproszonego systemy. Ciągle istniejący jednak problem występowania zakłóceń transmisji zmusił projektantów do stworzenia niezawodnego protokołu komunikacyjnego odpornego na wszelkiego rodzaju błędy. W ten sposób opracowano CAN, którego podstawowym celem użycia jest to, aby w każdej sytuacji podzespoły systemu mogły współpracować ze sobą nawet w przypadku awarii głównego komputera. CAN (Controller Area Network) stał się zaawansowanym szeregowym protokołem komunikacyjnym który sprawnie i niezawodnie wspomaga sterowanie w czasie rzeczywistym oraz pozwala elastycznie konfigurować sieci z różnymi typami mikroprocesorów. Tworzenie komunikatów CAN i ich kontrola jest wykonywana sprzętowo co jest podstawową przewaga nad wieloma innymi tego typu protokołami wcześniej już istniejącymi.
Rozdział ten omawia idei wymiany komunikatów w protokole, jego zastosowaniu w przemyśle samochodowym i w automatyce, sposobie łączenia sterowników w sieć CAN oraz sprzętowej kontroli błędów. Przedstawione zostaną także ramki komunikatów, wraz z opisem znaczenia poszczególnych grup bitów. Szczegóły implementacji protokołu zostaną omówione w dalszej części pracy w oparciu o wykorzystany przez nas procesor 80C592 który obsługuje omawiany protokół.
2.1 Rozwój interfejsu i jego zastosowani
Typowe aplikacje CAN można spotkać w systemach samochodowych oraz w przemyśle:
zastosowania samochodowe:
transmisja za pomocą rozbudowanej instalacji elektrycznej (<125 kbit/s)
kontrola silnika, skrzyni biegów, gaźnika itp. (do 1 Mbit/s)
automatyczny system hamowania (ang. Automatic Break System- ABS)
automatyczny kontroler przyspieszenia (ang. Acceleration Seed Control- ASC)
system alarmowy
rozwiązania przemysłowe:
sieci polowe
robotyka, sterowanie obrabiarkami numerycznymi
maszyny rolnicze
sterowniki i regulatory wielopakietowe ( moduł centralny + sterowniki)
aparatura medyczna
Protokół CAN powstał dzięki firmie Bosh GmbH która stworzyła go głównie dla celów przemysłu samochodowego, chociaż zastosowania specjalizowanych protokołu do komunikacji w systemach samochodowych nie było przy tym specjalnym odkryciem. Obok CAN istniały już protokoły VAN, J1850, ABUS oraz CCD [?]. Trzeba jednak podkreślić, że żaden z nich nie zyskał takiej popularności jak CAN. Począwszy od roku 1985 efektem współpracy Bosh GmbH z firmą Intel było kilka implementacji tego protokołu w mikroprocesorach 82526 a następnie 82527. Produkcję układów rozpoczęła również firma Philips a za nią także inne [?].
Po raz pierwszy komunikację CAN wykorzystano w nowoczesnych samochodach takich jak Mercedes klasy S, BMW, Porshe, w których złożoność funkcji współbieżnego sterowania wymagała wymiany informacji pomiędzy poszczególnymi kontrolerami. Dla przykładu ASC wymaga powiązania zapłonu silnika i sterowania gaźnikiem, aby zmniejszyć moment obrotowy przy zrywaniu przyczepności co w praktyce daje doskonałe rezultaty. Gwałtowny wzrost produkcji samochodowej, oraz coraz większe unowocześnianie produktów spowodowało, że system CAN zaczęto stosować w coraz mniej ekskluzywnych modelach samochodów, a co za tym idzie tańszych. Masowa produkcja układów obsługujących protokół spowodowała spadek ich cen oraz dalsze upowszechnienie systemu w różnych gałęziach przemysłu. Wykupienie licencji na protokół przez amerykańską firmę Intel oraz fakt, że komunikacja jest przystosowana do pracy w trudnym elektrycznie otoczeniu (układ zapłonowy), sprzętowa kontrola błędów oraz możliwość generowania ramki także w sposób sprzętowy były dodatkowymi atutami.
Szczególnie wysoka odporność na zakłócenia oraz zatwierdzenie standardu CAN przez normy międzynarodowe spowodowało, że zaczął on coraz bardziej być wykorzystywany we wszelkiego rodzaju systemach automatyki. Dosyć wysoka prędkość transmisji do 1Mb/s oraz zasięg do 100 metrów sprawiły, że nadaje się on bardzo dobrze także do sterowania procesami w czasie rzeczywistym.
Obecnie zintegrowane urządzenia sterowania zbudowane są na układach takich jak 80C592, 80C167, 80C196CA. Rys ??? przedstawia sieć CAN w której może istnieć szereg komputerów nadrzędnych rywalizujących o dostęp do wspólnej magistrali. Każde urządzenie CAN jest podłączone za pomocą dwóch wyprowadzeń z układem dopasowania do magistrali zwanego inaczej sterownikiem linii (ang. bus driver). dlatego tez układy te zapewniają także odpowiednie poziomy napięć w zależności od stosowanego napięcia zasilania. Zamieniają także różnicowy sygnał CAN_H i CAN_L na jednokierunkowe sygnały RXCAN i TXCAN oraz dodatkowo oddzielają układ sterowania od magistrali stanowiąc dodatkowe zabezpieczenie np. przed pojawieniem się na procesorze zbyt wysokiego napięcia. Dlatego też najczęściej montowane są na podstawkach w celu ich łatwiejszej i szybszej wymiany w razie uszkodzenia. Do najczęściej stosowanych układów tego typu należy produkt firmy Philips 82C250 (dokładny opis układów 82C250 i 80C592 w rozdziale 3 ).
Magistralę CAN stanowi para kabli przewodu skręcanego w celu dodatkowego eliminowania zakłóceń (tzw. skrętka), przy czym do łączenia sterowników można zarówno użyć przewodu ekranowanego jak i nieekranowanego. Na końcach magistrali powinny być umieszczone rezystory o wartościach 120 , przy czym długość przewodów magistrali nie powinna przekroczyć 100 metrów.
Przykład sieci CAN:
Komunikacja między poszczególnymi kontrolerami jest realizowana przy użyciu szyny CAN. Takie połączenia szeregowe jest polecane w przypadku luźno sprzężonego systemu, gdzie komunikacja nie zachodzi często. W tym przypadku nieelastyczne i drogie specjalne okablowanie nie jest konieczne - system może być modyfikowany w zakresie węzłów sieci bez jego zmiany. Dane pobrane z sieci mogą być odczytane przez kilka sterowników w tym samym czasie. Nie jest konieczne fizyczne adresowanie komunikatu, o tym kto odczytuje komunikat decyduje identyfikator komunikatu. Umożliwia on każdemu węzłowi sieci wykrycie komunikatu i określenie czy ten komunikat jest przeznaczony dla niego.
Parametry charakterystyczne dla protokołu CAN:
struktura multi-master (każde urządzenie może pracować jako master i slave),
zautomatyzowany system formowania komunikatów i sterowania komunikacją,
możliwość podłączenia wielu urządzeń do jednej linii,
gwarantowany czas dostępu dla komunikatów o wysokim priorytecie,
długość pola danych w jednym komunikacie od 0 do 8 bajtów,
duża odporność na zakłócenia i dobrze rozwinięty system obsługi błędów komunikacji,
prędkość transmisji w zależności od aplikacji i odległości pomiędzy urządzeniami do 1 Mb/s.
INTERFEJS
APLIKACJI
CPU
KONTROLER
MAGISTRALI
FIZYCZNY
INTERFEJS
INTERFEJS
APLIKACJI
P8xC552
PCA 82C200
FIZYCZNY
INTERFEJS
INTERFEJS
APLIKACJI
P8xC592
FIZYCZNY
INTERFEJS
Magistrala CAN