Jak wspomniałem w poprzednim temacie magistrala Controller Area Network (CAN) opracowana przez
niemiecką firmę BOSCH na potrzeby komunikacji w przemyśle samochodowym
(ABS, sterowanie silnikiem), jest standardem multipleksowanej magistrali szeregowej. Jej
niezaprzeczalne cechy użytkowe sprawiły, że z pozycji magistrali przeznaczonej do
pojazdów przeszła do technologii popularnej w przemyśle i określonej przez
międzynarodowy standard ISO 11 898.
W ostatnich latach wprowadzono do stosowania
również standard wojskowy MIL CAN.
Szeroki zakres zastosowań obejmuje między innymi:
------------ zastosowania w technice cywilnej:
- inteligentne budynki,
- przemysł lotniczy,
- przemysł samochodowy - samochody osobowe i ciężarowe,
- ciężki sprzęt budowlany,
- pojazdy specjalne (np. wozy strażackie),
- przemysłowe układy automatyki i sterowania;
------------ zastosowania w technice wojskowej:
- transportery opancerzone - kołowe i gąsienicowe,
- stacje radiolokacyjne – morskie i lądowe,
- mosty przewoźne,
- symulatory,
- inne;
------------- inne zastosowania:
- sworznie pomiarowe,
- czujniki i przetworniki pomiarowe,
- sterowniki plc,
- pulpity i konsole operatorskie,
- konwertery.
Z w/w jest kilka którymi zajmuje się na co dzień, ale zakres tego zastosowania
jest nieco poza możliwościami tego tematu więc skupmy się na podstawach
Jak więc wiemy z poprzedniego tematu Podstawą standardu pracy magistrali CAN
jest siedmiowarstwowy model odniesienia ISO/OSI. W przypadku systemów
komunikacji m/in w magistrali pojazdów warstwy 3..6 są puste, i tylko warstwy 1,2 i 7
są wyspecyfikowane szczegółowo.
Czym więc są te owe warstwy ?? no cóż prawie jak w torcie
ciasto/masa/ciasto/masa/
no dobra obiecałem że się poznęcam nad wami wiec jazda
----- Warstwa 1
Jest to warstwa fizyczna , w tej warstwie znajduje się specyfikacja medium transmisji
danych oraz złączy, poziomów przesyłania oraz elementów nadawczo-odbiorczych.
Wiąże się ona bezpośrednio z dwoma standardami CAN:
ISO11529-2 - mała szybkość
ISO11898 - duża szybkość
----- Warstwa 2
To warstwa łącza danych. Tu określa się sposób dostępu do medium przesyłania danych
w odniesieniu do faktu gdy jakaś cześć systemu chce nadawać, oraz tworzony jest komunikat
(adres, sterowanie, dane i zabezpieczenie przed błędami CRC) oraz ustalany jest protokół
przesyłania danych. Warstwa 2 była modyfikowana i dziś są 2 jej wersje CAN2.0A i CAN2.0B
O właściwościach obu będziemy mówić później
Przez ostatnie lata opracowano 3 obszerne gałęzie CAN dla róznych aplikacji, są to:
CANopen, DeviceNET i SDS (Smart Distributed System). Specyfikacje ich są zbyt obszerne jak na
tak małą prezentację w tym poście że pozwolę sobie jedynie na podsumowanie
a więc w skrócie ze są one kompatybilne z Warstwami 1 i 2
Dla chcących zgłębić temat i poszerzenie wiedzy o w/w gałęziach proponuję odwiedzenie
strony :
http://www.can-cia.deJak więc zauważyliście w WF jest zawarta cała specyfikacja topologi sieciowej dla magistrali CAN
i dołączania do niej kolejnych stacji. Termin topologia sieci - jednoznacznie mówi nam o fizycznej
konstrukcji systemu komunikacyjnego i odpowiada na nasuwające się wam pytania.
Czyli gdybyście chcieli mnie teraz zapytać -- Jak stacje/elementy są podłączone do magistrali CAN??
odpowiedzią jednoznaczną z mojej strony było by stwierdzenie : TOPOLOGIA SIECI !
No ale jak na nieopierzonych newbie przystało wcale nie musicie wiedzieć co ja mam na myśli mówiąc
TS
więc już pędzę wyjaśnić i radzę dobrze to zapamiętać gdyż TS odnosi się nie tylko do CAN ale i
wielu innych magistral, ale to stanie się jasne już za chwilę:
Wiec CAN jak już wiecie wykorzystuje topologię sieci (czasem nazywaną topologią magistrali) co oznacza że wszystkie bez wyjątków urządzenia i elementy są połączone z pojedynczą skrętką
pary przewodów mogącej mieć ekran lub nie zakończoną na obu końcach odpowiednią rezystancją
terminującą co widzicie poniżej:
Taka organizacja zapewnia, że każda stacja/element może komunikować się z każdym innym
w sieci bez żadnych ograniczeń.
Jak widzicie wyżej układ transceiwera R/TX sieci CAN jest połączony z medium przez 2 sygnały
CAN-H (Can High) i CAN-L (CAn Low), uwzględniąc wymagane zabezpieczenie przed błędami,
w rzeczywistym przesyle danych zastosowano różnicowe sygnały napięciowe, oznacza to tyle,
że różnica napięcia między obydwoma liniami czyli CAN-H i CAN-L jest skwantowana.
W standardzie ISO11898 wyspecyfikowane są dwa różne zakresy napięć różnicowych, służących
do reprezentacji danych, a więc :
- recesywny i dominujący
(cokolwiek to znaczy no nie
)
Jest jednak ku temu ważna przyczyna, mianowicie zwykła logika 0 i 1 tu nie jest stosowana.
teraz nie będę pisał dlaczego i po co, ale zauważcie że :
( to jest ważne radzę czytać uważnie bo później będzie tylko coraz dziwniej i trudniej)
- gdy napięcie różnicowe pomiędzy CAN-H i CAN-L wynosi 0,5V - to status linii jest -- RECESYWNY,
- zaś gdy napięcie różnicowe wynosi 0,9V - to mamy status magistrali -- DOMINUJĄCY
Poziom nominalny magistrali jest wyznaczany w odniesieniu poszczególnych LINI do MASY LOKALNEJ
co widać poniżej:
Oczywiście w praktyce nie jest tak fajnie i poziomy te maja swoje tolerancje
Napięcie różnicowe
może nawet osiągać maksymalny dopuszczalny poziom widoczny w ostatnim wierszu tabelki
Specyfikacja CAN-L w ISO11519-2 jest nieco inna, ale jako że ISO11898 może być zastosowane dla
małych i dużych prędkości obecnie stosuje się tylko tą specyfikację.
Użytkownik nie musi się w tym przypadku zajmować tak prozaicznymi zajęciami jak konstrukcja łącz
TRX, ponieważ wielu producentów oferuje gotowe układy , które zostały zoptymalizowane
w szczególności kładąc nacisk na eliminacje zakłóceń elektromagnetycznych (EMC), ale też
przeciążeń termicznych występujących w przypadku zwarcia linii CAN-L i H, oraz wyjściowego
standardu poziomów sygnałów dla magistrali CAN. Odpada więc wszystko co jest niezbędne
do zestawienia łącza CAN i dołączenia go do magistrali. Jedyne czym musimy się zająć to
upewnić dla jakiego standardu CAN układ został zbudowany. JA preferuję ISO11898.
Powinniście na tym etapie wiedzieć tez że w praktyce używa się również innych sposobów
różnicowego przesyłu danych, które też mogą być użyte do przesyłania sygnałów CAN,
Np ..... i tu was zaskoczę ....
RS485
Co zdziwieni ?? .... w takim razie widać ile jeszcze przed wami tajemnic do odkrycia
Ostatecznie na tym etapie są jeszcze 2 sprawy których nie sposób lekceważyć, a dotyczą one
- maksymalnej długości i związanej z tym szybkości magistrali
oraz
- ilości możliwych do dołączenia na magistrali stacji bądź elementów
Zasadniczo dyktuje nam te zagadnienia tylko i wyłącznie zastosowane medium, wspomniałem już we wprowadzeniu jak to wygląda w tabelce , ale teraz nieco rozszerzymy wiadomości i przypomnimy sobie:)
Widzicie tu korelacje między szybkością przesyłu , a długością i terminatorami na końcach magistrali.
Z doświadczeń wynika że najlepszym medium jest skrętka pary przewodów o przekroju 0.34 do 0.6
mm2, z terminatorami o rezystancji 127om, przy czym rezystywność przewodów nie powinna być
większa niż 60mOm/m, warunek ten jest spełniony gdy przekrój poprzeczny przewodu jest większy niż
0,30mm2.
Przy dołączaniu stacji bezpośrednio do magistrali CAN długość przewodów linii doprowadzających nie
powinna być dłuższa niż 2m jeśli szybkość ma wynosić 250kb/s, natomiast nie więcej niż 30cm jeśli
chcecie uzyskać większe szybkości. I tu mała uwaga !!!
Długość "CAŁKOWITA" wszystkich linii doprowadzających nie powinna być większa niż 30m.
Na razie starczy ... ale pojawi się tu ciąg dalszy zanim przystąpimy do praktycznego używania.
...
Uffff ...
-- dodano 17 cze 2012, o 13:50 --Myślę że wprowadzenie i zgrubne opisy standardów oraz podstawy budowy CAN
mamy za sobą i że wieczorkiem zajmiemy się już zagadnieniami przesyłania danych oraz budową ramki
, a potem zbudujemy nasz interfejs CAN ...