Opis magistrali CAN. Podstawa elementu dla CAN. Zakończenie autobusu

ENG Sieć kontrolna 192Kb Rus CAN 2.0 A Rus CAN 2.0 V Protokoły wysokiego poziomu CAN Opony do systemów pokładowych pojazdów

CAN (Control Area Network) – magistrala szeregowa zapewniająca połączenie w sieć „inteligentnych” urządzeń wejścia/wyjścia, czujników i urządzenia wykonawcze jakiś mechanizm lub nawet przedsiębiorstwo. Charakteryzuje się protokołem zapewniającym możliwość znalezienia kilku urządzeń nadrzędnych na autostradzie, zapewniającym transmisję danych w czasie rzeczywistym i korekcję błędów, wysoką odporność na zakłócenia. System CAN jest wyposażony w dużą liczbę mikroukładów, które zapewniają działanie urządzeń podłączonych do magistrali, które zostały opracowane przez firmę BOSH do użytku w samochodach i są obecnie szeroko stosowane w automatyce przemysłowej. Pinout złącza pokazano na rysunku.

  • Przeznaczony do organizowania wysoce niezawodnych tanich kanałów komunikacyjnych w rozproszonych systemach sterowania. Interfejs jest szeroko stosowany w przemyśle, energetyce i transporcie. Pozwala budować zarówno tanie kanały multipleksowe, jak i szybkie sieci.
  • Szybkość transmisji jest ustawiana programowo i może wynosić do 1 Mb/s. Użytkownik wybiera prędkość na podstawie odległości, liczby abonentów oraz przepustowości łączy transmisyjnych.
Odległość, m 25 50 100 250 500 1000 2500 5000
Szybkość, kb/s 1000 800 500 250 125 50 20 10
  • Maksymalna liczba abonentów podłączonych do ten interfejs faktycznie określa nośność zastosowanych nadajników-odbiorników. Na przykład w przypadku korzystania z nadajnika-odbiornika PHILIPS PCA82C250 wynosi 110.
  • Protokół CAN wykorzystuje oryginalny system adresowania wiadomości. Każda wiadomość jest opatrzona identyfikatorem, który określa miejsce docelowe przesyłanych danych, ale nie adres odbiorcy. Każdy odbiorca może odpowiedzieć zarówno na jeden identyfikator, jak i na kilka. Kilku odbiorców może odpowiedzieć na jeden identyfikator.
  • Protokół CAN posiada zaawansowany system wykrywania i sygnalizacji błędów. Do tych celów wykorzystuje się sterowanie bitowe, bezpośrednie wypełnianie strumienia bitów, sprawdzanie pakietu wiadomości za pomocą wielomianu CRC, kontrolę kształtu pakietu wiadomości, potwierdzanie prawidłowego odbioru pakietu danych. Przedział Hamminga d=6. Całkowite prawdopodobieństwo niewykrytego błędu wynosi 4,7x10 -11 .
  • System arbitrażu protokołu CAN eliminuje utratę informacji i czasu podczas „kolizji” w magistrali.
  • Interfejs wykorzystujący protokół CAN można łatwo dostosować do fizycznego medium transmisyjnego. Może to być sygnał różnicowy, światłowód, po prostu otwarty kolektor itp. Izolacja galwaniczna jest łatwa do wykonania.
  • Podstawa elementu obsługująca CAN jest szeroko dostępna we wzornictwie przemysłowym.

Sieć fieldbus CAN (Controller Area Network) charakteryzuje się wysokimi prędkościami transmisji danych i odpornością na zakłócenia, a także możliwością wykrywania wszelkich występujących błędów. Nic dziwnego, że dzięki temu CAN jest obecnie szeroko stosowany w takich obszarach jak transport drogowy i kolejowy, automatyka przemysłowa, lotnictwo, systemy dostępu i kontroli. Według stowarzyszenia CiA (CAN in Automation, www.can-cia.de) na całym świecie działa obecnie około 300 milionów węzłów CAN. W Niemczech najpopularniejszą magistralą polową jest magistrala CAN. Ten artykuł zawiera ogólny opis i specyfikacje CAN bus i opisuje logikę jej działania. Dodatkowo podano opis wbudowanych modułów CAN, autonomicznych sterowników na przykładzie mikrokontrolerów (MC), transceiverów i dławików Infineon. Rozważane są narzędzia programistyczne dla urządzeń z magistralą CAN.

Charakterystyka protokołu CAN Korzyści z CAN

Ogólnym trendem w automatyzacji jest zastąpienie tradycyjnego scentralizowanego systemu sterowania przez: kontrola rozproszona poprzez umieszczenie inteligentnych czujników i siłowników obok kontrolowanego procesu. Wynika to ze wzrostu liczby przewodów komunikacyjnych, wzrostu liczby połączeń, trudności w diagnozowaniu błędów oraz problemów z niezawodnością. Komunikacja pomiędzy węzłami takiego systemu odbywa się za pomocą magistrali polowej. CAN to system komunikacji dla systemów z wieloma kontrolerami. Przyjrzyjmy się bliżej zaletom CAN i przyczynom, dla których CAN staje się coraz bardziej rozpowszechniony.

Testowany standard. Protokół CAN jest aktywnie wykorzystywany od ponad 20 lat, co jest bardzo ważne w tak konserwatywnych obszarach jak transport kolejowy czy przemysł stoczniowy. CAN został opracowany w 1980 roku przez Roberta Boscha dla przemysłu motoryzacyjnego. Interfejs CAN jest regulowany; międzynarodowe standardy ISO 11898 dla aplikacji o dużej prędkości i ISO 11519-1 dla aplikacji o niskiej prędkości. Określony jest niski koszt dobra wartość cena/wydajność, a także szeroka dostępność sterowników CAN na rynku. O niezawodności decyduje liniowa struktura magistrali i równość jej węzłów, tzw. multimaster (Multi Master Bus), w której każdy węzeł CAN ma dostęp do magistrali. Każda wiadomość może być wysłana do jednego lub więcej węzłów. Wszystkie węzły jednocześnie odczytują te same informacje z magistrali i każdy z nich decyduje, czy przyjąć tę wiadomość, czy ją zignorować. Jednoczesny odbiór jest bardzo ważny dla synchronizacji w systemach sterowania. Uszkodzone węzły są odłączane od centrali.

Wysoka odporność na zakłócenia jest osiągnięta dzięki odrzucaniu różnicowego transceivera w trybie wspólnym, wbudowanym mechanizmom wykrywania błędów (jeden niewykryty błąd na 1000 lat przy 500 kb/s 8-godzinnej codziennej pracy sieci), błędnym ponawianiu wiadomości, odłączaniu uszkodzonych węzłów od komunikacji magistrali i odporności na zakłócenia elektromagnetyczne.

Elastyczność osiąga się poprzez proste łączenie i odłączanie węzłów CAN na magistrali, a całkowita liczba węzłów nie jest ograniczona protokołem niższej warstwy. Informacja adresowa jest zawarta w komunikacie i dostosowana do jej priorytetu, na podstawie którego przeprowadzany jest arbitraż. W trakcie pracy istnieje możliwość zmiany priorytetu przesyłanego komunikatu. Należy również zwrócić uwagę na możliwość zaprogramowania częstotliwości i fazy nadawanego sygnału oraz arbitrażu, co nie niszczy struktury komunikatu w przypadku konfliktów. Na poziomie fizycznym do wyboru są różne rodzaje linii transmisji danych: od taniej skrętki po światłowodową linię komunikacyjną.

Praca w czasie rzeczywistym jest możliwa dzięki mechanizmom sieciowym (multi-master, broadcast, bit-by-bit arbitraż) w połączeniu z wysokimi prędkościami transmisji danych (do 1 Mb/s), szybką reakcją na żądanie transferu i zmienną długością wiadomości od 0 do 8 bajtów.

Aplikacje CAN

CAN to idealne rozwiązanie dla każdej aplikacji, w której mikrokontrolery komunikują się ze sobą oraz ze zdalnym urządzenia peryferyjne. Początkowo CAN był używany w samochodach, aby zapewnić krytyczną czasowo kontrolę i wymianę informacji między silnikiem a skrzynią biegów z gwarantowanym czasem oczekiwania na komunikat i dopuszczeniem każdego z uczestników sieci do pracy z aktualnymi danymi. Wraz z dość drogimi rozwiązaniami o dużej szybkości istnieją opłacalne rozwiązania do łączenia w sieć urządzeń bezwładnościowych, które działają w skali czasu setek mikrosekund (system sterowania drzwiami, podnośnik szyb, sterowanie lusterkami). Jednocześnie potężne wiązki elektryczne zostają zastąpione dwuprzewodową siecią CAN, której węzłami są między innymi światła hamowania i kierunkowskazy.

CAN znalazł szerokie zastosowanie w automatyce przemysłowej, gdzie występuje duża liczba urządzeń sterujących, czujników, mechanizmów, napędów elektrycznych i innych obiektów, które są połączone jednym cyklem technologicznym (systemy ogrzewania i klimatyzacji, pompy, przenośniki, windy, schody ruchome , przenośniki itp.) . Ważną cechą takich systemów jest możliwość diagnozowania i sterowania obiektami zlokalizowanymi na dużym obszarze za pomocą algorytmów adaptacyjnych. W rezultacie uzyskuje się znaczne zmniejszenie zużycia energii, hałasu, zużycia sprzętu. Podobny obraz obserwujemy w kolejowych systemach pokładowych, gdzie decydującą rolę odgrywa wymiana danych pomiędzy podsystemami podczas przyspieszania, hamowania, sterowania drzwiami i diagnostyki.

Warstwa fizyczna

Fizyczna warstwa magistrali CAN to połączenie przewodowe AND pomiędzy wszystkimi podłączonymi do niej urządzeniami. Różnicowe linie sygnałowe nazywają się CAN_H i CAN_L i są statyczne przy napięciu 2,5 V. Log. 1 (bit recesywny) wskazuje stan magistrali, w którym poziom na linii CAN_H jest wyższy niż poziom CAN_L. W dzienniku. 0 (bit dominujący) poziom na linii CAN_H jest niższy niż poziom CAN_L. Przyjęto następującą umowę na stan autobusu: stan pasywny autobusu odpowiada poziomowi dziennika. 1, a aktywny - poziom dziennika. 0. Gdy nie są wysyłane żadne komunikaty na magistrali, jest ona w stanie pasywnym. Transmisja wiadomości zawsze zaczyna się od bitu dominującego. Logika działania magistrali odpowiada „przewodowemu AND”: dominujący bit „0” tłumi bit recesywny „1” (rys. 1).

Ryż. 1. Logika magistrali CAN

Podczas fizycznej realizacji konkretnego projektu z CAN konieczne jest określenie właściwości magistrali i jej węzłów: gdzie znajdują się urządzenia przetwarzające, jakie mają właściwości, jakie czujniki i aktuatory występują w systemie, czy są inteligentne czy nie, co można powiedzieć o ich fizycznej lokalizacji. W zależności od warunków pracy można zastosować linię jednoprzewodową (w granicach płytka drukowana), linia dwuprzewodowa, skrętka lub linia światłowodowa. Dzięki metodzie różnicowego generowania sygnału linia dwuprzewodowa może znacznie zwiększyć odporność na zakłócenia. W przypadku stosowania napięć różnicowych sieć CAN nadal działa w bardzo hałaśliwym środowisku lub w przypadku przerwania jednej z linii sygnałowych. Nawet przy użyciu prostej skrętki, wejścia różnicowe CAN skutecznie eliminują szumy.

Maksymalna szybkość transmisji danych wynosi 1 Mbit/s przy długości magistrali 40 m i około 40 Kbit/s przy długości magistrali 1000 m.

Arbitraż węzłów magistrali CAN

CAN ma wiele unikalnych cech, które odróżniają go od innych autobusów. W protokole CAN komunikaty są przesyłane wspólną magistralą CAN, natomiast nie ma adresów nadawcy i odbiorcy komunikatu. Każdy węzeł stale „patrzy” na magistralę i wykonuje lokalne filtrowanie odbioru przy użyciu masek bitowych, aby zdecydować, które komunikaty pobrać z magistrali.

W rezultacie węzeł akceptuje i przetwarza tylko te komunikaty, które są dla niego przeznaczone.

Każda wiadomość ma swój własny priorytet, którego wartość jest zawarta w identyfikatorze wiadomości. Dodatkowo identyfikatory służą do wskazania rodzaju wiadomości. Wiadomość o najniższym numerze ID ma najwyższy priorytet; Wiadomość z identyfikatorem całkowicie zerowym ma najwyższy priorytet. Transmisja komunikatu rozpoczyna się od wysłania identyfikatora do magistrali. Jeżeli więcej niż jedna wiadomość wymaga dostępu do magistrali, jako pierwsza zostanie wysłana wiadomość o najwyższym priorytecie, czyli ta z niższym identyfikatorem, niezależnie od innych wiadomości i aktualnego stanu magistrali. Każdy węzeł przed wysłaniem wiadomości sprawdza, czy działa węzeł o wyższym priorytecie. Jeśli tak, to wraca do stanu odbiorcy i próbuje wysłać wiadomość w innym czasie. Ta właściwość ma szczególne znaczenie, gdy jest używana w systemach sterowania w czasie rzeczywistym, ponieważ wartość priorytetu sztywno określa limit czasu.

Jeśli transmisja Węzła A zostanie zawieszona przez Węzeł B wysyłający komunikat o wyższym priorytecie, to po zwolnieniu magistrali zostanie podjęta kolejna próba przesłania komunikatu z Węzła A. Zasada ta nazywa się CSMA/CA: Carrier Sense Multiple Dostęp/unikanie kolizji ( ogólny dostęp z ankietami/unikaniem konfliktów). Ten tryb, w przeciwieństwie do Ethernetu, nie pozwala węzłom sieciowym na rozwiązanie konfliktu, ale natychmiast identyfikuje zwycięzcę i skraca czas wymiany.

Tak więc dzięki arbitrażowi magistrali komunikat o najwyższym priorytecie jest przesyłany jako pierwszy, zapewniając działanie systemu w czasie rzeczywistym i szybki transfer informacji. Podział priorytetów pomiędzy różne typy komunikatów jest ustalany przez dewelopera podczas projektowania sieci.

Format wiadomości

Jeśli nie weźmiemy pod uwagę procedury ponawiania wiadomości odebranej z błędem, istnieją dwa rodzaje komunikacji między węzłami: jeden węzeł przesyła informacje, a drugi odbiera, lub węzeł A prosi węzeł B o dane i otrzymuje odpowiedź.

Ryż. 2. Ramka danych

Do transmisji danych używana jest ramka danych. ramka danych(rys. 2), który zawiera:

  • identyfikator wskazujący rodzaj komunikatu („motor_speed”, „oil_temperature”) oraz priorytet dostępu do magistrali. Pole identyfikatora zawiera różną liczbę bitów w zależności od typu protokołu: standardowy format CAN V2.0A ma identyfikator 11-bitowy, a rozszerzony CAN V2.0B ma identyfikator 29-bitowy;
  • pole danych zawierające odpowiedni komunikat („engine_speed” = 6000 rpm, „oil_temperature” = 110 °C) o długości do ośmiu bajtów;
  • dwa bajty sumy kontrolnej - Cykliczna kontrola nadmiarowa (CRC) wykrywanie i korygowanie błędów transmisji.

Do żądania informacji węzeł CAN wykorzystuje ramkę żądania danych Remote Frame (rys. 3), która zawiera:

  • identyfikator, który określa typ żądanych informacji („prędkość_silnika”, „temperatura_oleju”) i priorytet wiadomości;
  • dwubajtowa suma kontrolna CRC.

Ryż. 3. Ramka żądania danych Zdalna ramka

W tym przypadku po identyfikatorze nie występują dane, a kod długości danych nie jest bezpośrednio powiązany z liczbą bajtów danych. Węzeł, do którego proponuje się przesyłać informacje (czujnik temperatury oleju) przesyła ramkę danych zawierającą wymagane informacje. Zatem, jeśli węzeł A wysyła ramkę żądania z identyfikatorem „temperatura_oleju” do węzła B, wówczas węzeł B odpytuje czujnik temperatury i wysyła do węzła A ramkę danych zawierającą identyfikator „temperatura_oleju” i wymagane informacje.

Dodatkowe informacje zawarte w ramce pozwalają określić format i czas protokołu przesyłania wiadomości oraz rodzaj wiadomości:

  • jaka wiadomość jest wysyłana - żądanie danych lub same dane określają bit żądania zdalnego transferu (RTR dla identyfikatora 11-bitowego i SRR dla identyfikatora 29-bitowego);
  • kod długości danych wskazujący, ile bajtów danych zawiera wiadomość; wszystkie węzły otrzymują ramkę danych, ale te z nich, które nie potrzebują tej informacji, nie przechowują jej;
  • aby zapewnić synchronizację i kontrolę, ramka zawiera pola początku ramki Początek ramki, koniec ramki Koniec ramki i Pole potwierdzenia;
  • wejście w tryb synchronizacji na szynie realizowane jest przez pierwszy bit pola Start of Frame, następnie synchronizacja jest utrzymywana przez front, gdy zmienia się poziom wysyłanych bitów;
  • stosowany jest mechanizm bitstaffing - wstawianie dodatkowego bitu przy kolejnych pięciu kolejnych zerach lub jedynkach.

Wykrywanie błędów

Sygnalizacja błędu następuje poprzez wysłanie ramki Błąd rama. Jest inicjowany przez dowolny węzeł, który wykryje błąd. Kontrolery CAN wykorzystują tę metodę przetwarzanie statystyczne błędy. Każdy węzeł zawiera licznik błędów transmisji i licznik błędów odbioru do przesyłania i odbierania błędów. Jeśli nadajnik lub odbiornik wykryje błąd, odpowiedni licznik jest zwiększany. Gdy wartość licznika przekroczy określony limit, transfer prądu zostanie przerwany. Węzeł wysyła sygnał błędu w postaci ramki błędu, w której ustawia aktywną dominującą flagę błędu o długości 6 bitów. Następnie węzeł, którego transmisja została przerwana, powtarza wiadomość. Niezaufane lub częściowo uszkodzone węzły mogą wysyłać jedynie pasywną flagę błędu recesywnego.

W CAN występuje kilka rodzajów błędów. Spośród nich trzy typy znajdują się na poziomie wiadomości:

  • Błąd CRC - błąd sumy kontrolnej (gdy otrzymana w polu CRC i obliczona suma kontrolna nie zgadzają się).
  • Form Error - błąd formatu ramki, gdy odebrana wiadomość nie jest zgodna z formatem CAN.
  • Acknowledgment Error - błąd potwierdzenia wiadomości, jeśli żaden z węzłów nie potwierdził prawidłowego odbioru wiadomości.

Ponadto istnieją dwa rodzaje błędów na poziomie bitów:

  • Bit Error - wykrycie przez aktywny węzeł rozbieżności między poziomem wysyłanym na magistralę a wartością rzeczywistą w związku z zaimplementowaniem przez węzeł mechanizmu samokontroli.
  • Błąd rzeczy - obecność w polu wiadomości sześciu kolejnych bitów 0 lub 1 (błąd nadziewania bitów).

Dzięki tym mechanizmom wykrywania i korygowania błędów prawdopodobieństwo przeoczenia błędu jest bardzo niskie. Na przykład przy 500 Kb/s, 25% wykorzystaniu magistrali i 2000 godzinach użytkowania rocznie występuje tylko jeden niewykryty błąd w ciągu 1000 lat. Ponadto nie jest możliwe, aby magistrala blokowała pracę całej sieci przez wadliwy węzeł. Takie węzły są wykrywane i odłączane od centrali na magistrali.

Odmiany CAN

Obecnie dostępne różne urządzenia z interfejsem CAN, które oprócz przesyłania danych z jednego punktu do drugiego, pozwalają na realizację synchronizacji procesów i priorytetowej obsługi. Wcześniejsze implementacje sterowników CAN wykorzystują ramki z 11-bitowym identyfikatorem i adresują do 2048 komunikatów oraz są zgodne ze specyfikacją CAN V. 2.0A. Takie kontrolery noszą nazwę Basic CAN i charakteryzują się dużym obciążeniem. procesor(CPU), ponieważ każda przychodząca wiadomość jest przechowywana w pamięci, a CPU decyduje, czy potrzebuje tych wiadomości, czy nie (rys. 4). Podstawowe sterowniki CAN zawierają jeden bufor nadawczy i jeden lub dwa bufory komunikatów odbiorczych. Aby wysłać lub odebrać wiadomość, musisz użyć procesora poprzez przerwania "message_sent" i "message_received". W wyniku sprawdzania każdej przychodzącej wiadomości obciążenie procesora jest bardzo duże, co ogranicza realny kurs wymiany w sieci. Z tego powodu takie kontrolery są używane w sieciach CAN o małej szybkości transmisji i/lub małej liczbie komunikatów.

Ryż. 4. Podstawowa struktura kontrolera CAN

Większość produkowanych obecnie kontrolerów CAN używa rozszerzonych ramek komunikatów z 29-bitowym identyfikatorem, co pozwala na zaadresowanie do 536 milionów komunikatów. Takie kontrolery są zgodne ze specyfikacją CAN V. 2.0B (aktywne) i są nazywane kontrolerami Full-CAN. Zapewniają bufor dla kilku wiadomości, a każda wiadomość ma swoją własną maskę, a filtrowanie odbywa się poprzez dopasowanie identyfikatora do maski.

W przypadku Full-CAN procesor jest maksymalnie odciążany, ponieważ nie przetwarza niepotrzebnych komunikatów (rys. 5). Po odebraniu wiadomości z identyfikatorem pasującym do maski, jest ona przechowywana w specjalnym obszarze dwuportowej pamięci RAM, a procesor zostaje przerwany. Full-CAN ma również specjalny typ wiadomości, który oznacza „Ktokolwiek ma te informacje, wyślij je teraz”. Kontroler Full-CAN automatycznie nasłuchuje wszystkich wiadomości i wysyła żądane informacje.

Ryż. 5. Pełna struktura kontrolera CAN

Do niedawna w przemyśle szeroko stosowano Basic CAN z 11-bitowym identyfikatorem. Protokół ten pozwala na łatwą komunikację między mikrokontrolerami i urządzeniami peryferyjnymi z szybkością transmisji danych do 250 Kbps. Jednak wraz z szybkim spadkiem kosztów sterowników CAN, zastosowanie Full-CAN stało się uzasadnione do komunikacji z wolnymi urządzeniami. Jeśli w zastosowaniach przemysłowych wymagana jest szybka (do 1 Mb/s) wymiana danych, zdecydowanie należy zastosować Full-CAN.

Baza elementów dla CAN

Na najniższym poziomie szyny CAN znajduje się właściwa linia dwuprzewodowa z rezystorami zakończeniowymi. Ponadto, aby zwiększyć odporność na zakłócenia, znajduje się różnicowy nadajnik-odbiornik - nadajnik-odbiornik. Na kolejnym poziomie sterownik z wbudowanym modułem lub samodzielny moduł CAN połączony ze sterownikiem głównym poprzez Port szeregowy. Komunikacja z węzłami CAN wymieniając informacje odbywa się za pośrednictwem linii portów mikrokontrolera. Kontrolery CAN realizują procedurę odbioru i transmisji danych i są połączone z magistralą dwoma sygnałami: RxD do odbioru z magistrali i TxD do transmisji do magistrali. Realizację magistrali CAN z wykorzystaniem mikrokontrolerów Infineon pokazano na rys.1. 6.

Ryż. 6. Implementacja magistrali CAN z wykorzystaniem mikrokontrolerów Infineon

Mikrokontrolery z modułem CAN

Jednym z czynników, który zapewnił popularność CAN jest szeroki wybór i przystępna cena podstawy elementu. różnych producentów- Infineon, Motorola, Microchip, Philips itp.

W tym artykule nacisk położono na bazę elementów Infineon. Decyzja ta jest częściowo oparta na wynikach ankiety przeprowadzonej na stronie internetowej Keil Software (www.keil.com) dla platform mikrokontrolerów 8051/251/C166. Na pytanie, z którego mikrokontrolera z wbudowaną magistralą CAN korzystasz, na próbie 2111 respondentów odpowiedzi zostały rozłożone zgodnie z tabelą. jeden.

Tabela 1. Wyniki ankiety: "Jakiego mikrokontrolera z wbudowaną magistralą CAN używasz?"

Infineon produkuje produkty we wszystkich klasach cena/wydajność. Obecnie dostępne jako kontrolery 8-bitowe C505CA, C515C i 16-bitowe: C161CS, C164CI, C167CR, 167CS (Tabela 2). Najtańszy układ z CAN to C505CA. MK C161CS i C167CS zawierają dwa moduły CAN. Najmocniejszy i najdroższy mikrokontroler TriCore TC1775 zawiera również rekonfigurowalny moduł TwinCAN z dwoma 32-komunikacyjnymi modułami CAN. TriCore to pierwszy 32-bitowy mikrokontroler DSP firmy Infineon zoptymalizowany pod kątem wbudowanych aplikacji czasu rzeczywistego, który zastępuje MCU, DSP i niestandardowy układ ASIC. Wbudowany moduł jest zgodny z aktywną specyfikacją CAN V2.0 B i zawiera pamięć na 15 komunikatów do odbioru/nadawania z własnymi identyfikatorami, statusem i bitami sterującymi. Dodatkowo zawiera rejestry masek do filtrowania wiadomości przychodzących oraz jest wyposażony w dwa bufory odbioru. Wbudowany moduł CAN umożliwia budowanie systemów o różnorodnych zadaniach przy użyciu minimalnej liczby chipów interfejsu zewnętrznego. Podłączenie dowolnego mikrokontrolera Infineon do magistrali CAN odbywa się na tych samych zasadach. Przykład podłączenia C167CR do magistrali CAN pokazano na rys. 7.

Tabela 2. Mikrokontrolery Infineon CAN

Rodzaj Wersja CAN Liczba wiadomości Moduł CAN Rama Notatka
C505CA V2.0B 15 1 x MOŻE MQFP-44 8-bitowy MC
С151С V2.0B 15 1 x MOŻE MQFP-80 8-bitowy MC
C161CS V2.0B 30 2x MOŻE TQFP-128 16-bitowy MC
C164CI V2.0B 15 1 x MOŻE MQFP-80 16-bitowy MC
C167CR V2.0B 15 1 x MOŻE MQFP-144 16-bitowy MC
C167CS V2.0B 30 2x MOŻE MQFP-144 16-bitowy MC
TC1775 V2.0B 32 TwinCAN BGA-329 32-bitowy MC
SAE81C90 V2.0A 16 1 x MOŻE PLCC-44 Samodzielny
SAE81C91 V2.0A 16 1 x MOŻE PLCC-28 Samodzielny
SAK82C900 V2.0B 32 TwinCAN P-DSO-28 Samodzielny

Ponadto kilka słów należy również powiedzieć o Philips MC, jednym z założycieli bazy elementów CAN. Przestarzały samodzielny sterownik CAN Philips PCA82C200 został zastąpiony w pełni kompatybilnym sterownikiem SJA1000, który współpracuje ze standardem CAN V2.0 B. Należy zauważyć, że PCA82C200 obsługuje tylko standard CAN V2.0 A i jest w stanie nadawać a odbieranie tylko standardowego protokołu CAN, to znaczy, gdy odebrana zostanie rozszerzona ramka, generuje błąd i może zniszczyć całą sieć. W SJA1000, dzięki wsparciu standardu PeliCAN (odczyt i zapis liczników błędów, programowanie ich progu ilościowego), możliwości zarządzania CAN są znacznie rozszerzone.

Ryż. 7. Przykład podłączenia MK C167CR do magistrali CAN

W wyniku połączenia SJA1000 z rdzeniem XA pojawił się 16-bitowy MK XAC3 ze zintegrowanym interfejsem CAN. Zgodny z 8051 tryb mikrokontrolera Philips XA umożliwia łatwe przejście z 8-bitowej architektury 8051 na 16-bitową, co jest szczególnie ważne dla ciągłości oprogramowanie. Wśród 8-bitowych MK należy również zwrócić uwagę na Philips P80C592, P8xC591 i 8xCE598.

Motorola oferuje również szeroką gamę mikrokontrolerów ze zintegrowanym modułem CAN, od najtańszych 8-bitowych mikrokontrolerów 68HC05X po 32-bitowy Power PC MPC555 z podwójnym CAN V2.0 B.

Ciąg dalszy nastąpi

Kontroler CAN zawarty w STM32 MK jest w pełni funkcjonalnym węzłem CAN, który spełnia wymagania dla urządzeń aktywnych i pasywnych CAB 2.0A i 2.0B oraz obsługuje transfer danych z prędkością nie większą niż 1 Mb/s. Sterownik CAN wyposażony jest również w dodatkowe funkcje umożliwiające organizację deterministycznej transmisji danych za pomocą specjalnego protokołu transmisji CAN TTCAN w czasie rzeczywistym. Po aktywacji funkcji TTCAN będzie obsługiwana automatyczna retransmisja komunikatów oraz automatyczne wstawianie dwóch dodatkowych bajtów do pakietu CAN ze stałym czasem transmisji komunikatu. Wszystkie te funkcje są potrzebne w systemach sterowania w czasie rzeczywistym za pośrednictwem interfejsu CAN.

Pełna nazwa sterownika CAN to moduł bxCAN, gdzie bx oznacza obsługę modułu dodatkowe funkcje. Normalny moduł CAN wykorzystuje jeden bufor odbioru i transmisji, podczas gdy rozszerzony moduł CAN wykorzystuje wiele buforów odbioru i transmisji. Moduł bxCAN jest hybrydą dwóch architektur modułów CAN. Posiada trzy skrzynki pocztowe do wysyłania wiadomości i dwie skrzynki do odbierania wiadomości. Każda ze skrzynek odbiorczych ma bufor FIFO do przechowywania trzech wiadomości. Ta architektura jest kompromisem pod względem wydajności transferu danych i miejsca na układy scalone IC.


Moduł CAN wyposażony jest w trzy skrzynki pocztowe do transmisji wiadomości oraz posiada możliwość automatycznego wstawiania aktualnego czasu do wiadomości za pomocą protokołu TTCAN

Kolejną ważną funkcją kontrolera CAN jest filtrowanie odbieranych wiadomości. Ponieważ CAN jest magistralą rozgłoszeniową, każda przesłana wiadomość jest odbierana przez wszystkie węzły na magistrali. W magistrali CAN o dowolnym rozsądnym stopniu złożoności przesyłana jest dość duża liczba komunikatów. Zadaniem każdego CPU podłączonego do węzła CAN jest odpowiadanie na komunikaty CAN. Tym samym, aby uchronić sterownik CAN przed problemem odbierania niechcianych wiadomości w buforze, konieczne jest ich filtrowanie. Sterownik CAN mikrokontrolerów STM32 posiada 14 banków filtrów, które mogą być wykorzystane do blokowania wszystkich komunikatów CAN, z wyjątkiem wybranych komunikatów lub grup komunikatów.


14 filtrów wiadomości obsługuje dwie konfiguracje, których można użyć do filtrowania poszczególnych wiadomości

Każdy bank filtrów składa się z dwóch 32-bitowych rejestrów i może pracować w jednym z czterech trybów. Metoda podstawowa zapisuje identyfikator komunikatu do każdego rejestru banku filtrów. Po nadejściu wiadomości sprawdzany jest jej identyfikator i na tej podstawie podejmowana jest decyzja o przyjęciu lub odrzuceniu wiadomości. Ten tryb obsługuje dwie konfiguracje. W pierwszej konfiguracji rejestry banku filtrów są 3-bitowe i mogą być użyte do filtrowania 11-bitowych i 29-bitowych pól ID wiadomości, a także bitów RTR i IDE w trybie 16-bitowym.

W drugiej konfiguracji identyfikator wiadomości jest zapisywany w pierwszym 32-bitowym rejestrze, a maska ​​wiadomości jest zapisywana w drugim. Rejestr maski oznacza bity rejestru identyfikatora jako „ważne” lub „nieważne”. Umożliwia to odbieranie grupy wiadomości przy użyciu jednego banku filtrów. Jeśli filtry odbierające przepuszczają wiadomość, wskaźnik do filtra, który określił dopasowanie, zostanie zapisany wraz z nim w buforze odbierającym FIFO. Umożliwi to aplikacji przyspieszenie identyfikacji wiadomości bez konieczności odczytywania i odszyfrowywania identyfikatora serii wiadomości.

Wszystkie sterowniki CAN obsługują dwa tryby pracy: tryb normalny do odbierania i przesyłania pakietów komunikatów oraz tryb inicjalizacji do ustawiania parametrów komunikacji. Jak już wspomniano, MCU STM32 mogą pracować w trybie ekonomicznym SLEEP. W tym trybie synchronizacja modułu bxCAN jest wyłączona, ale dostęp do rejestrów skrzynek pocztowych jest nadal możliwy. Moduł bxCAN ma możliwość wybudzenia po wykryciu aktywności na magistrali CAN. Może być również reaktywowany przez program użytkowy. Podczas pracy w trybie normalnym obsługiwane są dwa dodatkowe tryby podrzędne. Pierwszym podtrybem jest tryb CICHY. W nim kontroler CAN może odbierać komunikaty, ale nie może przesyłać i nie generuje bitu błędu w wysyłaniu i potwierdzaniu komunikatu. Ten tryb jest przeznaczony dla magistral CAN z pasywnym monitorowaniem. Drugim podtrybem jest tryb LOOPBACK. W tym trybie przesyłane wiadomości są natychmiast odbierane w buforze odbiorczym. Jest niezbędny do realizacji funkcji diagnostycznych, a także przydatny w fazie debugowania kodu programu. Oba rozważane tryby można łączyć. Są idealne do wykonywania funkcji autotestu po podłączeniu do szyny pod napięciem.

CAN (Controller Area Network - „obszar objęty siecią sterowników”) to zestaw standardów budowy rozproszonych sieci przemysłowych, który wykorzystuje szeregową transmisję danych w czasie rzeczywistym z bardzo wysokim stopniem niezawodności i bezpieczeństwa. Protokół warstwy łącza modelu OSI zajmuje centralne miejsce w CAN. CAN został pierwotnie opracowany dla przemysłu motoryzacyjnego, ale obecnie jest szybko wprowadzany do dziedziny automatyki przemysłowej. Jest to dobrze przemyślany, nowoczesny i obiecujący protokół sieciowy. Rozwój CAN został zainicjowany przez firmę Bosch w 1983 roku, pierwsze chipy sterowników CAN zostały wydane przez firmy Intel i Philips w 1987 roku, obecnie sterowniki i transceivery CAN produkowane są przez wiele firm, m.in. Analog Devices, Inc., Atmel Corp. Obsada, Dallas Semiconductor, Freescale, Infineon, Inicore Inc., Intel, Linear Technology, Maxim Integrated Products, Melexis, Microchip, National Semiconductor, NXP, OKI, Renesas Technology Corp., STMicroelectronics, Yamar Electronics, Texas Instruments.

W Rosji zainteresowanie CAN znacznie wzrosło w ostatnich latach, jednak w Rosji jest bardzo mało sprzętu sterującego dla CAN, dziesiątki lub setki razy mniej niż w przypadku Modbus lub Profibus. Wśród protokołów warstwy aplikacji do pracy z CAN, CANopen i DeviceNet są najczęściej używane w Rosji.

CAN jest obecnie obsługiwany przez 11 standardów ISO, w tym [ISO - Diagnostyka].

CAN pokrywa dwie warstwy style="color:red"> modelu OSI: fizyczną i kanałową (Tabela 2.7). Standard nie zapewnia żadnego protokołu dla warstwy aplikacji (7.) modelu OSI. Dlatego, aby go wdrożyć, różne firmy opracowały kilka takich protokołów: Mogę otworzyć(organizacje CiA), Karta charakterystyki(Dział Mikroprzełączników Honeywell), MOŻE Królestwo(przez Kwasera), Sieć urządzeń(Allen-Bradley, który stał się europejskim standardem w 2002 r.) i wielu innych [Gribanov - Tretyakov].

CAN charakteryzuje się następującymi głównymi właściwościami:

  • do każdego wiadomość(nie urządzenie) ustaw jego priorytet;
  • gwarantowana przerwa między dwoma aktami wymiany;
  • elastyczność konfiguracji i możliwość aktualizacji systemu;
  • nadawanie wiadomości z synchronizacją czasu;
  • spójność danych na poziomie całego systemu;
  • dopuszczalność kilku urządzeń nadrzędnych w sieci („sieć multi-master”);
  • umiejętność wykrywania błędów i sygnalizowania ich obecności;
  • automatyczna retransmisja wiadomości dostarczonych z błędem, gdy tylko sieć zostanie zwolniona;
  • automatyczne rozróżnianie awarii i awarii z możliwością automatyczne wyłączanie nieudane moduły.

Wady to stosunkowo wysoki koszt urządzeń CAN, brak pojedynczego protokołu warstwy aplikacji, a także nadmierna złożoność i zawiłość protokołów warstwy łącza i aplikacji określonych w standardach organizacji. CAN w automatyzacji(CIA).

2.6.1. Warstwa fizyczna

Gdzie jest czas trwania krawędzi natarcia nadajnika. Podstawowe wymagania dla linii transmisyjnej i jej charakterystyka są zbliżone do RS-485, jednak nadajniki CAN mają: tryb kontroli krawędzi impulsy. Sterowanie odbywa się poprzez ładowanie pojemności bramek tranzystorów wyjściowych ze źródeł prądowych, natomiast wartość prądu ustalana jest przez zewnętrzny rezystor. Wydłużenie czasu narastania zmniejsza wymagania dotyczące dopasowania linii przy niskich częstotliwościach, zwiększa długość odczepów i zmniejsza emisję zakłóceń elektromagnetycznych.

Zaciski masy wszystkich przetworników w sieci muszą być połączone (chyba że interfejsy są izolowane galwanicznie). W tym przypadku różnica potencjałów między zaciskami uziemienia nie powinna przekraczać 2 V. Izolacja galwaniczna jest zalecana dla długości linii powyżej 200 m, ale nie jest to obowiązkowe wymaganie normy.

W przypadku podłączenia elektrycznego urządzeń z interfejsem CAN standard przewiduje dwie opcje. Pierwsza opcja to zastosowanie rozdzielaczy typu T, które składają się z trzech 9-pinowych złączy D-sub umieszczonych w jednej obudowie, których styki o tej samej nazwie są ze sobą połączone. Splittery posiadają jedno złącze z pinami i dwa - z gniazdami.

Druga opcja wymaga dwóch złączy w każdym urządzeniu CAN. Aby podłączyć urządzenie do sieci, kabel jest cięty, a na jego końcach instalowane są pasujące złącza. Urządzenie jest dosłownie włączone w przerwę w linii transmisyjnej. Takie podejście pozwala na zwiększenie liczby urządzeń i zmianę topologii sieci poprzez dodawanie nowych urządzeń i kabli ze złączami na końcach do szczeliny kablowej. Jedno ze złącz musi być z pinami, drugie - z gniazdami. Niedopuszczalne jest podłączanie urządzeń do magistrali bez złącz. Rezystor końcowy musi być umieszczony wewnątrz złącza, które łączy się z końcem kabla. Aby podłączyć moduły do ​​magistrali CAN, należy użyć 9-stykowego złącza D-Sub. Na module zainstalowano złącze z gniazdami, a na kablu połączeniowym z pinami. Pinout złączy pokazano w tabeli. 2.8.

Stosowanie złączy z pinami lub gniazdami określa następująca zasada: podczas wymiany modułów podczas pracy zasilanie powinno pozostać tylko na złączach z gniazdami; pozwala to uniknąć przypadkowych zwarć.

Należy zauważyć, że standard CANopen oparty na CAN zapewnia znacznie większą różnorodność opcji złączy, w tym płaski kabel, RJ-10, RJ45, wtykowe zaciski śrubowe i około dziesięciu innych specjalnych konstrukcji [Okablowanie]. Inne złącza są dozwolone.

Ta właściwość CAN zapewnia możliwość dostępu do linii poprzez porównanie poziomów logicznych wysyłanych do linii z poziomem, który jest na niej faktycznie ustawiony: jeśli nadajnik wysyła stan recesywny do linii, ale pozostaje on dominujący, to linia jest zajęty. Dostęp jest odbierany przez węzeł sieci, który może zapewnić mu dominujący poziom sygnału. Węzły z poziomem recesywnym opuszczają linię i czekają na kolejne zdarzenie. Ta metoda dostępu jest również ważna w przypadku korzystania ze światłowodu lub Sieć bezprzewodowa- w takich przypadkach obecność światła lub fali elektromagnetycznej zawsze będzie dominować nad ich brakiem.

Wniosek na ryc. 2.20 pozwala ustawić napięcie progowe dla wejścia i poziom napięcia wspólnego w linii, gdy znajduje się ona w stanie recesywnym. Zwykle \u003d 2,5 V. Aby ustawić poziom napięcia w trybie wspólnym na linii, rezystancje zacisków są podzielone na dwa rezystory 60 omów, połączone szeregowo, a zacisk jest podłączony do punktu połączenia. Przy symetrycznym kształcie impulsu i w stosunku do stanu recesywnego poziom zakłóceń promieniowanych zmniejsza się, ponieważ przyrosty prądów w każdym z przewodów skrętki podczas przełączania poziomów logicznych (patrz ryc. 2.21) okazują się równe co do wielkości , ale przeciwnie w znaku, a zatem wzajemnie się kompensują.

Wniosek ma kilka celów. Jeśli jest ustawiony w stan logiczny jeden, transceiver przechodzi w stan uśpienia, w którym pobiera bardzo mało prądu z zasilacza, a wyjście jest ustawione w stan wysokiej rezystancji (recesywny). „Obudź się” może to być sygnał dochodzący do odbiornika z linii transmisyjnej. Podłączenie tego wyjścia do „masy” poprzez rezystancję pozwala ustawić żądany czas trwania frontów impulsów nadajnika. Niektóre transceivery mają dwa tryby: czuwania i uśpienia, które różnią się poziomem pobieranego prądu oraz sposobem przełączenia w tryb aktywny. Tryb niskiego zużycia energii to standard oszczędzania energii akumulatora w zaparkowanym pojeździe.

Ryż. 2.21. Wyjaśnienie pojęć państwa recesywnego i dominującego

Jeżeli sygnał dominuje zbyt długo (powyżej 1 ms), generator impulsów timeout (wskazywany przez kwadracik z impulsem na Rys. 2.20) tymczasowo wyłącza nadajnik, w przeciwnym razie moduł może zostać trwale zablokowany przez warstwę łącza jako uszkodzony .

Standard przewiduje możliwość podłączenia dowolnej ilości urządzeń do sieci CAN, jednak w praktyce jest to ograniczone przez obciążalność nadajników (100...200) czy opóźnienie w repeaterach.

Transceiver CAN posiada generator zegara o częstotliwości 16 MHz ±0,1%. Szerokość jednego bitu jest programowalna od 8 do 25 impulsów zegarowych, zwykle 8 impulsów przy 1 Mb/s i 16 impulsów przy 20 kb/s. Synchronizacja wszystkich węzłów sieci następuje podczas pierwszego cyklu synchronizacji. Przetwarzanie bitowe odbiornika zapewnia programowalne opóźnienie zegara, aby skompensować czas opóźnienia łącza i przesunięcie fazowe spowodowane dryfem zegara.

Istnieją dwa rodzaje synchronizacji: twarda synchronizacja używając bitu startu na początku wiadomości i resynchronizacja podczas transmisji wiadomości. Za pomocą resynchronizacji można dostosować odstęp czasu od rozpoczęcia synchronizacji do momentu, w którym mierzony jest poziom logiczny odbieranego impulsu danych. Interwał strojenia można zmienić na 1...4 cykle.

W celu określenia stanu logicznego magistrali mierzone są poziomy odbieranych sygnałów w odległości 6 cykli generatora zegara od krawędzi natarcia impulsu (bit) z prędkością 1 Mbps oraz w odległości 14 cykli przy prędkość 20 kbps [CAN] (dla porównania wskazujemy, że w standardowym UART próbki pobierane są w połowie impulsu). Liczba odczytów może wynosić 1 lub 3 (ustawiane przez oprogramowanie). CAN wykorzystuje synchroniczny transfer bitów. Zwiększa to przepustowość kanału komunikacyjnego, ale wymaga skomplikowanego procesu synchronizacji.

Omawiana powyżej warstwa łącza CAN jest praktycznie niemożliwa do zastosowania w pakietach SCADA, ponieważ operuje na bitach, ramkach, polach. Do pisania programów użytkowych należy używać pojęć: zmienna, tablica, zdarzenie, klient, serwer, nazwa urządzenia itp.

Rozważ najpopularniejszy standard warstwy aplikacji Mogę otworzyć[Mogę otworzyć]. Aby uprościć stosowanie standardu, wprowadzono kilka koncepcji specyficznych dla CANopen. Cała funkcjonalność warstwy aplikacji podzielona jest na tzw usługi(elementy usług). Aplikacje oprogramowania współdziałają ze sobą, wywołując odpowiednie usługi warstwy aplikacji. Usługi komunikują się ze swoimi usługami równorzędnymi (peer-to-peer) za pośrednictwem sieci CAN przy użyciu określonego protokołu. Ten protokół jest opisany w specyfikacje protokołu usługa.

Pojęcie usługi prymitywny , który jest środkiem (konstrukcją językową), za pomocą którego aplikacja wchodzi w interakcję z warstwą aplikacji. W CANopen istnieją cztery różne prymitywy:

  • zapytanie aplikacje do warstwy aplikacji, publikowane przez aplikację w celu wywołania usługi;
  • wskazanie publikowane przez warstwę aplikacji w aplikacji w celu raportowania zdarzeń wewnętrznych wykrytych przez warstwę aplikacji lub wskazania, że ​​zażądano usługi;
  • odpowiedź, publikowane przez aplikację w warstwie aplikacji w odpowiedzi na wcześniej odebrane wskazanie;
  • potwierdzenie Opublikowana przez aplikację warstwa aplikacji do raportowania wyników wcześniej wystawionego żądania.

Administrator

Konieczność połączenia szeregowego w samochodach

To jest nasz kolejny przetłumaczony artykuł z cyklu poświęconego magistrali CAN, który ujawnia nieco bardziej szczegółowo, jak jest ułożona i działa magistrala CAN. Oryginał angielski.

Wiele samochodów już ma duża liczba elektroniczne systemy sterowania. Rozwój elektroniki samochodowej jest częściowo wynikiem dążenia konsumentów do większego bezpieczeństwa i komfortu, a częściowo rządowych żądań lepszej kontroli emisji i mniejszego zużycia paliwa. Elementy sterujące spełniające te wymagania są już od pewnego czasu stosowane w obszarach sterowania silnikiem, skrzynią biegów i przepustnicą, a także w układach przeciwblokujących (ABS) i kontroli przyspieszenia (ASC).

Złożoność funkcji zaimplementowanych w tych systemach wymaga wymiany danych między nimi. Tradycyjne systemy komunikują się za pomocą dedykowanych linii sygnałowych, ale jest to coraz trudniejsze i bardziej kosztowne, ponieważ funkcje sterowania stają się coraz bardziej złożone. W szczególności w przypadku złożonych systemów sterowania (takich jak Motronic) nie można już zwiększyć liczby połączeń.

Ponadto opracowywanych jest wiele systemów, które realizują funkcje obejmujące więcej niż jedno urządzenie sterujące. Na przykład ASC wymaga współdziałania systemu zarządzania silnikiem i sterowania przepustnicą (wtryskiem), aby zmniejszyć moment obrotowy, gdy koło napędowe się ślizga. Innym przykładem funkcji obejmujących więcej niż jedną jednostkę sterującą jest elektroniczne sterowanie skrzynią biegów, w której łatwość zmiany biegów można poprawić, krótko regulując czas zapłonu.

Jeśli weźmiemy pod uwagę również przyszłe zmiany mające na celu ogólną optymalizację pojazdów, konieczne jest przezwyciężenie ograniczeń, które istnieją ze względu na: urządzenia konwencjonalne kierownictwo. Można to zrobić tylko poprzez połączenie w sieć elementów systemu za pomocą szeregowej magistrali danych. W tym celu Bosch opracował system „Controller Area Network” (CAN), który od tego czasu został znormalizowany na szczeblu międzynarodowym (ISO 11898) i został „odlany w kamieniu (w krzemie)” przez kilku producentów półprzewodników.

Za pomocą CAN stacje peer-to-peer (jednopoziomowe) (sterowniki, czujniki i siłowniki) są połączone za pomocą magistrali szeregowej. Sama magistrala jest zbalansowanym lub asymetrycznym obwodem dwuprzewodowym, który może być ekranowany lub nieekranowany. Fizyczne parametry elektryczne transmisji są również określone w normie ISO 11898. Odpowiednie chipy sterownika magistrali są dostępne u wielu producentów.

Protokół CAN, który odpowiada warstwie łącza danych w modelu referencyjnym ISO/OSI, spełnia wymagania motoryzacyjne dla aktualnych zastosowań pojazdów. W przeciwieństwie do struktur wiązek kablowych, protokół sieciowy wykrywa i koryguje błędy transmisji spowodowane zakłóceniami elektromagnetycznymi. Dodatkowymi zaletami takiej sieci jest łatwość konfiguracji całego systemu oraz możliwość centralnej diagnostyki.

Celem stosowania CAN w pojazdach jest umożliwienie komunikacji dowolnej stacji z dowolną inną bez zbytniego obciążania komputera sterującego.

Korzystanie z sieci CAN w samochodach

Istnieją cztery główne zastosowania komunikacji szeregowej w pojazdach, z których każde ma inne wymagania i cele.

Kontrolery sieciowe do synchronizacji silnika, skrzyni biegów, podwozia i hamulców. Szybkości transmisji danych mieszczą się w zakresie - typowym dla systemów czasu rzeczywistego - od 200 kbps do 1 Mbps.
Komponenty sieciowe dla elektroniki ogólnej i elektroniki podwozia, które sprawiają, że samochód jest wygodniejszy. Przykładami takich zastosowań multipleksu są sterowanie oświetleniem, klimatyzacja i centralny zamek oraz regulacja foteli i lusterek. Szczególną wagę należy tutaj zwrócić na koszty komponentów i wymagania dotyczące okablowania. Typowa szybkość transmisji danych wynosi około 50 kb/s.
W niedalekiej przyszłości komunikacja szeregowa będzie również wykorzystywana w dziedzinie komunikacji mobilnej do łączenia elementów, takich jak radia samochodowe, telefony samochodowe, pomoce nawigacyjne itp. z centralnym, bardziej ergonomicznym panelem sterowania. Funkcje zdefiniowane w projekcie Prometheus, takie jak komunikacja pojazd-pojazd, będą w dużym stopniu polegać na komunikacji szeregowej.
Obecnie CAN jest używany w pierwszych trzech aplikacjach, ale w przypadku diagnostyki preferowanym rozwiązaniem jest interfejs zgodny z normą ISO 9141.

Zastosowania przemysłowe sieci CAN

Porównanie wymagań dla systemów magistrali pojazdów i przemysłowych systemów magistrali polowych ujawnia uderzające podobieństwa: niski koszt, wydajność w trudnych warunkach elektrycznych, wysoka wydajność w czasie rzeczywistym i łatwość użytkowania są równie pożądane w obu sektorach.

Standardowe użycie CAN w Mercedes-Benz „S-Class” i przyjęcie CAN przez amerykańskich komercyjnych producentów samochodów dla szybki transfer(do 1 Mb/s) sprawiły, że użytkownicy przemysłowi nadstawili uszu. CAN wybrali nie tylko producenci mobilnych i stacjonarnych maszyn i urządzeń rolniczych i okrętowych, ale również wybór producentów sprzętu medycznego, maszyn włókienniczych, a także wyposażenia specjalnego i sterowania windami. System magistrali szeregowej jest szczególnie dobrze przystosowany do sieciowych „inteligentnych” urządzeń I/O, a także czujników i elementów wykonawczych w maszynie lub instalacji.

Przemysł maszyn włókienniczych jest jednym z pionierów CAN. Jeden producent wyposażył swoje krosna w modułowe systemy sterowania komunikujące się w czasie rzeczywistym za pośrednictwem sieci CAN już w 1990 roku. W międzyczasie kilku producentów maszyn tekstylnych połączyło się w „CAN Textile Users Group”, która z kolei jest członkiem międzynarodowej grupy użytkowników i producentów „CAN in Automation”. Podobne wymagania stawiane są maszynom włókienniczym w maszynach pakujących oraz maszynom do produkcji i przetwarzania papieru.

W USA wiele przedsiębiorstw wykorzystuje CAN w liniach produkcyjnych i obrabiarkach jako system wewnętrzny opony do czujników sieciowych i siłowników wewnątrz linii lub bezpośrednio na maszynie. Niektórzy użytkownicy, tacy jak sektor inżynierii medycznej, wybrali CAN, ponieważ mieli szczególnie rygorystyczne wymagania dotyczące bezpieczeństwa. Z podobnymi problemami borykają się inni producenci maszyn i urządzeń z specjalne wymagania w odniesieniu do bezpieczeństwa (np. roboty i systemy transportowe).

Oprócz wysokiej niezawodności transmisji, kolejnym decydującym argumentem przemawiającym za CAN są niskie koszty połączenia na stację. W zastosowaniach, w których cena ma kluczowe znaczenie, ważne jest, aby chipy CAN były dostępne u różnych producentów. Ważną kwestią jest również zwartość innych chipów kontrolera, na przykład w dziedzinie rozdzielnic niskiego napięcia.

Jak działają sieci CAN

Zasady wymiany danych

Gdy dane są przesyłane przez CAN, żadne stacje nie są adresowane, ale zamiast tego treść komunikatu (taka jak prędkość silnika lub temperatura) jest identyfikowana przez identyfikator, który jest unikalny w całej sieci. Identyfikator określa nie tylko treść, ale także priorytet wiadomości. Jest to ważne dla alokacji magistrali, gdy wiele stacji konkuruje o dostęp do magistrali. Jeżeli CPU danej stacji chce wysłać wiadomość do jednej lub więcej stacji, wysyła dane i ich identyfikatory do przypisanego chipa CAN (stan gotowości). To wszystko, co musi zrobić procesor, aby zainicjować komunikację. Wiadomość jest tworzona i przesyłana za pomocą chipa CAN. Gdy tylko układ CAN otrzyma alokację magistrali (stan „Wyślij wiadomość”), wszystkie inne stacje w sieci CAN stają się odbiorcami tej wiadomości (stan „Odbierz wiadomość”). Każda stacja w sieci CAN po poprawnym odebraniu komunikatu wykonuje test odbiorczy (test odbioru) w celu określenia, czy odebrane dane dotyczą tej stacji (stan „Wybierz”). Jeśli dane są istotne dla odpowiedniej stacji, są przetwarzane (stan „Zaakceptowany”), w przeciwnym razie są ignorowane. Wysoki stopień elastyczności systemu i konfiguracji uzyskuje się dzięki schematowi adresowania zorientowanego na zawartość. Bardzo łatwo jest dodać stacje do istniejącej sieci CAN bez wprowadzania jakichkolwiek zmian sprzętowych lub programowych w istniejących stacjach, o ile nowe stacje są czystymi odbiornikami. Ponieważ protokół komunikacyjny nie wymaga fizycznych adresów docelowych dla poszczególnych komponentów, wspiera koncepcję elektroniki modułowej, a także umożliwia wielokrotny odbiór (broadcast, multicast) i synchronizację procesów rozproszonych: pomiary wymagane jako informacje przez kilka sterowników mogą być przesyłane przez sieć w taki sposób, aby każdy sterownik nie musiał mieć własnego czujnika.



1. Transmisja rozgłoszeniowa i filtrowanie danych wejściowych przez węzły CAN w celu określenia, czy dane są odpowiednie dla konkretnego węzła

Nieniszczące sprawdzanie bitowe:

Aby dane mogły być przetwarzane w czasie rzeczywistym, muszą być przesyłane szybko. Wymaga to nie tylko fizycznego łącza danych do 1 Mb/s, ale także szybkiej alokacji magistrali, gdy wiele stacji chce wysyłać wiadomości w tym samym czasie.



2. Zasada nieniszczącej weryfikacji bitowej (ocena, odczyt)

W czasie rzeczywistym pilność (kolejkowanie) komunikatów sieciowych może się znacznie różnić: szybko zmieniający się rozmiar (np. obciążenie silnika) musi być przesyłany częściej, a zatem z krótszymi opóźnieniami niż inne pomiary (np. temperatura silnika), które zmieniają się względnie wolno. Priorytet, z jakim wiadomość jest transmitowana w stosunku do innej mniej pilnej wiadomości, jest określony przez identyfikator odpowiedniej wiadomości. Priorytety są ustalane podczas projektowania systemu jako odpowiadające wartości binarne i nie można ich zmieniać dynamicznie. Identyfikator z najmniejszą liczbą binarną ma najwyższy priorytet.

Konflikty dostępu do magistrali są rozwiązywane przez sprawdzanie bit po bicie każdej z uczestniczących stacji odbieranych identyfikatorów przez obserwację (odczytywanie) poziomu magistrali bit po bicie. Zgodnie z mechanizmem „przewodowym i”, w którym stan dominujący (logiczne 0) nadpisuje stan recesywny (logiczne 1), rywalizacja o alokację magistrali jest tracona przez wszystkie te stacje z transmisją recesywną i nasłuchem dominującym (czekanie na odbiór 0). Wszyscy „przegrani” automatycznie stają się odbiorcami wiadomości o najwyższym priorytecie i nie retransmitują, dopóki autobus nie będzie ponownie dostępny.

Wydajność dystrybucji opon:

Wydajność systemu dystrybucji magistrali zależy przede wszystkim od możliwości wykorzystania magistrali szeregowej dla tego systemu. Aby ocenić, które systemy magistralowe są odpowiednie do jakich zastosowań, literatura zawiera metodę klasyfikacji procedur alokacji magistrali. Zwykle rozróżniamy następujące klasy:

Dystrybucja według ustalonego harmonogramu. Przydział jest dokonywany kolejno dla każdego uczestnika przez maksymalny czas trwania, niezależnie od tego, czy uczestnik ten potrzebuje w danej chwili autobusu, czy nie (przykłady: komórka tokena lub transfer tokena).
Przydział opon w zależności od potrzeb. Autobus jest przypisywany do jednego członka na podstawie zaległych żądań transferu, tj. system alokacji bierze pod uwagę tylko uczestników chętnych do transferu (przykłady: CSMA, CSMA/CD, lot kontrolny, pętla lub kontrola bitów). W przypadku CAN przydział magistrali jest negocjowany wyłącznie między komunikatami oczekującymi na transmisję. Oznacza to, że procedura zdefiniowana przez CAN jest klasyfikowana jako alokacja oparta na potrzebach.

Innym sposobem oceny skuteczności systemów kontroli (oceny) opon jest metoda dostępu do autobusów:

Nieniszczący dostęp do magistrali. W tego typu sposobach magistrala jest przypisywana do jednej i tylko jednej stacji, albo natychmiast, albo w określonym czasie po jednym dostępie do magistrali (przez jedną lub więcej stacji). Gwarantuje to, że każdy dostęp do magistrali przez jedną lub więcej stacji skutkuje unikalnym przydziałem magistrali (przykłady: lokalizacja tokena, transfer tokena, pętla, kontrola bitów.
Niszczycielska dystrybucja opon. Jednoczesny dostęp do szyny przez więcej niż jedną stację skutkuje przerwaniem wszystkich prób transmisji, a zatem nie ma pomyślnej alokacji szyny. Alokacja magistrali może wymagać więcej niż jednego dostępu do magistrali, liczba prób przed udaną alokacją magistrali jest wartością czysto statystyczną (przykłady: CSMA/CD, Ethernet). Aby obsłużyć wszystkie żądania transmisji sieci CAN przy jednoczesnym przestrzeganiu limitów opóźnień przy najniższej możliwej szybkości transmisji danych, protokół CAN musi wdrożyć metodę alokacji magistrali, która zapewnia zawsze jednoznaczną alokację magistrali, nawet jeśli są jednoczesne dostępy do magistrali z różnych stacje.

Metoda kontroli bit po bicie, wykorzystująca identyfikator wiadomości do przesłania, jednoznacznie rozwiązuje wszelkie kolizje między wieloma stacjami, które chcą transmitować, i robi to najpóźniej w ciągu 13 (format standardowy) lub 33 (format rozszerzony) okresy bitowe dla dowolnego okresu dostępu do zmęczenia. W przeciwieństwie do sprawdzania opartego na wiadomościach używanego przez metodę CSMA/CD, ta nieniszcząca metoda rozwiązywania konfliktów zapewnia, że ​​przepustowość magistrali nie jest używana bez przekazywania przydatnych informacji.

Nawet w sytuacjach, gdy magistrala jest przeciążona, powiązanie priorytetu dostępu do magistrali z treścią wiadomości okazuje się przydatnym atrybutem systemowym w porównaniu z istniejącymi protokołami CSMA / CD lub token (token): pomimo niewystarczającej przepustowości magistrali, wszystkie zaległe żądania transferu są przetwarzane w uporządkować ich ważność dla całego systemu (zgodnie z priorytetem wiadomości).

Dostępna przepustowość jest efektywnie wykorzystywana do przesyłania użytecznych danych, ponieważ „luki” w alokacji magistrali są bardzo małe. Upadek całego systemu transmisji na skutek przeciążenia, które może się zdarzyć przy protokole CSMA/CD, nie jest możliwy w przypadku CAN. W ten sposób CAN umożliwia implementację szybkiego, zdefiniowanego przez ruch dostępu do magistrali, który nie jest destrukcyjny dzięki sprawdzaniu bit po bicie na podstawie używanego priorytetu komunikatu.

Nieniszczący dostęp do magistrali można podzielić na:

Scentralizowane zarządzanie dostępem do autobusów i
Zdecentralizowana kontrola dostępu do magistrali

W zależności od tego, czy mechanizmy kontrolne są obecne w systemie tylko raz (scentralizowane) czy więcej niż raz (zdecentralizowane).

System komunikacji z przypisaną stacją (w szczególności w przypadku scentralizowanej kontroli dostępu do magistrali) musi zapewniać strategię, która zadziała w przypadku awarii stacji głównej. Ta koncepcja ma tę wadę, że strategia zarządzania awariami jest złożona i kosztowna we wdrożeniu, a przejęcie stacji centralnej przez stację zapasową może zająć bardzo dużo czasu.

Z tych powodów oraz w celu obejścia problemu niezawodności stacji głównej (a tym samym całego systemu komunikacyjnego), protokół CAN wdraża zdecentralizowane zarządzanie magistralą. Wszystkie podstawowe mechanizmy komunikacji, w tym kontrola dostępu do magistrali, wykonywane są w systemie wielokrotnie, ponieważ tylko w ten sposób można spełnić wymagania wysokiej dostępności systemu komunikacyjnego.

Ogólnie można powiedzieć, że CAN implementuje system alokacji magistrali zdefiniowanej dla ruchu, który pozwala, przy użyciu nieniszczącego dostępu do magistrali ze zdecentralizowaną kontrolą dostępu, zapewnić wysoką użyteczną szybkość przesyłania danych przy najniższej możliwej szybkości przesyłania danych w przypadku zajętości magistrali warunki dla wszystkich stacji. Efektywność procedury sprawdzania magistrali zwiększa fakt, że z magistrali korzystają tylko te stacje, które czekają na przesłanie żądań.

Żądania te są przetwarzane w kolejności ważności wiadomości dla systemu jako całości. Jest to szczególnie korzystne w przypadku przeciążenia. Ponieważ dostęp do magistrali jest priorytetem opartym na wiadomościach, można zagwarantować niskie indywidualne opóźnienie w systemach czasu rzeczywistego.



3. Ramka wiadomości dla standardowego formatu (specyfikacja CAN 2.0A)

Formaty wiadomości.

Protokół CAN obsługuje dwa formaty ramek (ramek) wiadomości, jedyną istotną różnicą jest długość identyfikatora (ID). W formacie standardowym długość identyfikatora wynosi 11 bitów, a w formacie rozszerzonym 29 bitów. Ramka danych do transmisji na magistrali zawiera siedem głównych pól.

Komunikat w standardowym formacie zaczyna się od bitu początkowego „początku ramki”, po którym następuje „pole walidacji”, które zawiera identyfikator i bit „RTR” (żądanie transmisji zdalnej), który wskazuje, czy jest to ramka danych, czy ramka żądania bez dowolne lub bajty danych (ramka żądania zdalnego).

„Pole kontrolne” zawiera bit rozszerzenia IDE (identyfikator rozszerzenia), który wskazuje format standardowy lub format rozszerzony, bit jest zarezerwowany dla przyszłych rozszerzeń oraz - w ostatnich 4 bitach - liczbę bajtów danych w polu danych.

„Pole danych” ma długość od 0 do 8 bajtów i następuje po nim pole „CRC”, które jest używane jako kontrola bezpieczeństwa ramki do wykrywania błędów bitowych.

Pole „ACK” zawiera gniazdo ACK (1 bit) i ogranicznik ACK (jeden bit recesywny). Bit w szczelinie ACK jest wysyłany jako bit recesywny i nadpisywany jako bit dominujący przez te odbiorniki, które odebrały dane poprawnie (poprawnie) w danym momencie (potwierdzenie pozytywne). Poprawne komunikaty są potwierdzane przez odbiorców niezależnie od wyniku testu akceptacyjnego. Koniec wiadomości jest oznaczony jako „koniec ramki”. „Gap” to minimalna liczba okresów bitowych oddzielających kolejne komunikaty. Jeśli jakaś stacja nie ma dostępu do następnej magistrali, magistrala pozostaje w stanie bezczynności („bezczynność magistrali”).

Wykrywanie i sygnalizacja błędów.

W przeciwieństwie do innych systemów magistrali, protokół CAN nie używa komunikatów potwierdzających, ale zamiast tego sygnalizuje wszelkie występujące błędy. W celu wykrycia błędów w protokole CAN na poziomie wiadomości zaimplementowane są trzy mechanizmy:

Cykliczna kontrola nadmiarowa (CRC) CRC chroni informacje w ramce, dodając nadmiarowe bity kontrolne na końcu transmisji. Po stronie odbiornika te bity są ponownie obliczane i sprawdzane z odebranymi bitami. Jeśli się nie zgadzają, wystąpił błąd CRC. Sprawdzanie ramki — ten mechanizm sprawdza strukturę przesyłanej ramki, sprawdzając pola bitów pod kątem stałego formatu i rozmiaru ramki. Błędy znalezione podczas sprawdzania ramek są określane jako „błędy formatu”.
Błędy ACK. Jak wspomniano powyżej, odebrane ramki są potwierdzane przez wszystkich odbiorców poprzez „pozytywne potwierdzenie”. Jeśli nie otrzymano potwierdzenia od nadawcy wiadomości (błąd ACK), może to oznaczać, że wystąpił błąd transmisji, który został wykryty tylko przez odbiorniki, że pole ACK zostało uszkodzone lub że nie ma odbiorników.

Protokół CAN implementuje również dwa mechanizmy wykrywania błędów na poziomie bitów.

Monitorowanie. Zdolność nadajnika do wykrywania błędów opiera się na monitorowaniu sygnałów magistrali: każdy transmitujący węzeł monitoruje również poziom magistrali, a tym samym wykrywa różnice między bitem wysłanym a bitem odebranym. Zapewnia to niezawodne wykrywanie wszystkich globalnych i lokalnych błędów nadajnika.
Bit Stuffing — kodowanie poszczególnych bitów jest sprawdzane na poziomie bitowym. Reprezentacja bitowa używana przez CAN to kodowanie NRZ (bez powrotu do zera), co gwarantuje maksymalną wydajność kodowania bitowego. Krawędzie synchronizacji są generowane przez wypychanie bitów, co oznacza, że ​​po pięciu kolejnych równych bitach nadawca wstawia bity informacji do strumienia bitów z dodatkową wartością, która jest usuwana przez odbiorniki. Weryfikacja kodu ogranicza się do sprawdzenia, czy przestrzegana jest reguła dopełniania. Jeżeli jeden lub więcej błędów zostanie wykrytych przez co najmniej jedną stację (dowolną stację) przy użyciu powyższych mechanizmów, bieżąca transmisja jest przerywana przez wysłanie „flagi błędu”. Zapobiega to odbieraniu komunikatów przez inne stacje, a tym samym zapewnia spójność danych w całej sieci.

Po zakończeniu transmisji błędnej wiadomości nadawca automatycznie ponawia transmisję ( automatyczne żądanie powtórzeń). Znowu może pojawić się konkurencja o przydział autobusów. Zazwyczaj retransmisja rozpoczyna się w ciągu 23-bitowych okresów po wykryciu błędu; W szczególnych przypadkach czas przywracania systemu wynosi 31 bitów.

Jednak opisana metoda może być skuteczna i wydajna w przypadku, gdy awaria stacji może doprowadzić do przerwania wszystkich komunikatów (w tym poprawnych), co blokuje system magistrali, jeśli nie zostały podjęte działania samokontroli. W ten sposób protokół CAN zapewnia mechanizm oddzielania sporadycznych błędów od błędów trwałych oraz lokalizowania awarii stacji (ograniczenie błędów). Odbywa się to poprzez statystyczną ocenę sytuacji błędów stacji w celu rozpoznania własnych defektów stacji i ewentualnie wejścia w tryb działania, w którym nie ma to negatywnego wpływu na pozostałą część sieci CAN. Może to posunąć się tak daleko, że stacja sama się wyłączy, aby zapobiec błędnej identyfikacji nieprawidłowych wiadomości wśród tych, które zostały przerwane.

Wiarygodność danych protokołu CAN:

Wprowadzenie systemów związanych z bezpieczeństwem w pojazdach wiąże się z wysokimi wymaganiami dotyczącymi niezawodności transmisji danych. Cel jest często formułowany w taki sposób, aby uniknąć niebezpiecznych sytuacji dla kierowcy w wyniku wymiany danych przez cały okres eksploatacji pojazdu.

Cel ten można osiągnąć, jeśli wiarygodność danych jest wystarczająco wysoka lub prawdopodobieństwo błędu resztowego jest wystarczająco niskie. W kontekście systemów szyn danych niezawodność odnosi się do umiejętności identyfikacji danych uszkodzonych przez błędy transmisji. Prawdopodobieństwo błędu resztkowego jest statystyczną miarą pogorszenia wiarygodności danych: określa prawdopodobieństwo uszkodzenia danych i to, że uszkodzenie to pozostanie niewykryte. Prawdopodobieństwo błędu szczątkowego powinno być tak małe, że średnio żadne uszkodzone dane nie pozostaną niezauważone przez cały okres eksploatacji systemu.



4. Prawdopodobieństwo błędu resztkowego jako funkcja prawdopodobieństwa błędu bitowego

Obliczenie prawdopodobieństwa błędu resztkowego wymaga klasyfikacji błędów oraz opisania przez model całej ścieżki transmisji. Jeśli zdefiniujemy prawdopodobieństwo błędu resztkowego CAN jako funkcję prawdopodobieństwa błędu bitowego dla wiadomości o długości od 80 do 90 bitów, dla konfiguracji systemu, powiedzmy, pięciu lub dziesięciu węzłów i ze stopą błędu 1/1000 (błąd w jedna wiadomość na tysiąc), wtedy maksymalne prawdopodobieństwo błędu bitowego wynosi około 0,02 do około 10^-13. Na tej podstawie można obliczyć maksymalną liczbę niewykrywalnych błędów dla danej sieci CAN.

Na przykład, jeśli sieć CAN działa z szybkością transmisji danych 1 Mb/s, przy średnim wykorzystaniu przepustowość łącza opon 50%, przy całkowitym okresie użytkowania 4000 godzin i średniej długości wiadomości 80 bitów, całkowita liczba przesłanych wiadomości wynosi 9x10^10. Statystyczna liczba niewykrytych błędów transmisji w czasie życia jest więc mniejsza niż rzędu 10^-2. Innymi słowy, przy czasie pracy wynoszącym osiem godzin dziennie przez 365 dni w roku i wskaźniku błędów co 0,7 s, jeden niewykryty błąd pojawia się co tysiąc lat (średnia statystyczna).

Zaawansowane komunikaty CAN

Podkomisja SAE Trucks and Buses dysponuje ustandaryzowanymi sygnałami i komunikatami oraz protokołami przesyłania danych dla różnych szybkości transmisji danych. Stało się jasne, że ten rodzaj standaryzacji jest łatwiejszy do wdrożenia, gdy dostępne jest dłuższe pole identyfikacyjne.

Aby wesprzeć te wysiłki, protokół CAN został rozszerzony o wprowadzenie 29-bitowego identyfikatora. Ten identyfikator składa się z istniejącego 11-bitowego identyfikatora (base-ID) i 18-bitowego rozszerzenia (extension-ID). Tak więc protokół CAN pozwala na użycie dwóch formatów wiadomości: StandardCAN (wersja 2.0A) i ExtendedCAN (wersja 2.0B). Ponieważ oba formaty muszą współistnieć na tej samej szynie, ustala się, która wiadomość ma wyższy priorytet na szynie w przypadku kolizji dostępu do szyny z formatami antyaliasingu i tym samym identyfikatorem podstawowym: standardowa wiadomość zawsze ma pierwszeństwo przed formatem rozszerzonym wiadomość.

Kontrolery CAN obsługujące komunikaty w formacie rozszerzonym mogą również wysyłać i odbierać komunikaty w formacie standardowym. Tylko komunikaty w standardowym formacie mogą być przesyłane przez sieć, jeśli w tej sieci używane są sterowniki CAN obsługujące tylko standardowy format (wersja 2.0A). Wiadomości w rozszerzonym formacie będą źle zrozumiane. Istnieją jednak kontrolery CAN, które obsługują tylko format standardowy, ale rozpoznają komunikaty w formacie rozszerzonym i ignorują je (wersja 2.0B pasywna).

Rozróżnienie pomiędzy formatem standardowym a formatem rozszerzonym jest dokonywane za pomocą bitu IDE (bit rozszerzenia identyfikatora), który jest przesyłany jako dominujący w przypadku ramki formatu standardowego. W przypadku ramek o rozszerzonym formacie jest to recesywne. Bit RTR jest przesyłany dominująco lub recesywnie w zależności od tego, czy dane są przesyłane, czy też żądana jest konkretna wiadomość od stacji. Zamiast bitu RTR w standardowym formacie, bit SRR (zdalne zastępowanie żądania) jest wysyłany dla ramek rozszerzonego identyfikatora. Bit SRR jest zawsze przesyłany jako recesywny, aby zapewnić, że w przypadku sprawdzenia standardowa ramka zawsze ma przydział priorytetu magistrali do rozszerzonej ramki, gdy oba komunikaty mają ten sam identyfikator bazowy.

W przeciwieństwie do formatu standardowego, w formacie rozszerzonym po bicie IDE następuje 18-bitowy numer identyfikacyjny, bit RTR i bit zarezerwowany (r1).

Wszystkie poniższe pola są identyczne ze standardem. Zgodność obu formatów zapewnia fakt, że kontrolery CAN obsługujące format rozszerzony mogą również wymieniać dane w formacie standardowym.



5. Ramka wiadomości dla rozszerzonego formatu (specyfikacja CAN 2.0A)

Implementacje protokołu CAN

Komunikacja jest identyczna dla wszystkich implementacji protokołu CAN. Istnieją jednak różnice w zakresie, w jakim implementacja obsługuje komunikaty przekazywane z mikrokontrolerów, które podążają za nią w obwodzie. Komunikacja jest identyczna dla wszystkich implementacji protokołu CAN. Istnieją jednak różnice w sposobie implementacji przekazywania komunikatów z mikrokontrolerów, które podążają za nim w obwodzie.

Sterownik CAN z buforem pośrednim

Kontrolery buforowe CAN (wcześniej nazywane chipami basicCAN) zaimplementowały jako sprzęt logikę potrzebną do utworzenia i weryfikacji strumienia bitów zgodnie z protokołem. Jednak administracja wysyłanymi i odbieranymi zestawami danych, w szczególności filtrowanie odbioru, jest realizowana wyłącznie przez kontroler CAN.

Z reguły sterowniki CAN z buforem pośrednim mają dwa bufory odbiorcze i jeden nadawczy. 8-bitowe rejestry kodu i maski pozwalają na ograniczone filtrowanie akceptacji (8 MSB identyfikatora). Odpowiedni dobór wartości tych przypadków pozwala na odczytanie grup identyfikatorów lub, w przypadkach granicznych, zaznaczenie wszystkich identyfikatorów. Jeżeli do rozróżniania komunikatów potrzeba więcej niż 8 ID-MSB, to mikrokontroler podążający za kontrolerem CAN w obwodzie musi uzupełnić programowe filtrowanie akceptacji.

Sterowniki CAN z buforem pośrednim mogą odciążyć mikrokontroler z filtrem odbiorczym, ale wymagają tylko małej powierzchni matrycy i dlatego mogą być produkowane po niższych kosztach. W zasadzie mogą odbierać wszystkie obiekty w sieci CAN.

Kontroler CAN z pamięcią obiektów.

Obiekty CAN składają się głównie z trzech elementów: identyfikatora, kodu długości danych i rzeczywistego ładunku.

Kontrolery CAN pamięci obiektowej (wcześniej nazywane fullCAN) działają jak kontrolery CAN z buforami pośrednimi, ale także zarządzają niektórymi obiektami. W przypadku wielu jednoczesnych żądań określają na przykład, który obiekt powinien zostać przekazany jako pierwszy. Wykonują również filtrowanie akceptacji na przychodzących obiektach. Interfejs do kolejnego mikrokontrolera odpowiada pamięci RAM. Dane do przesłania są zapisywane w odpowiednim obszarze RAM, odebrane dane są odczytywane odpowiednio z obszaru RAM. Mikrokontroler musi zarządzać tylko kilkoma bitami (na przykład żądaniem transferu).

Sterowniki CAN z obiektową pamięcią masową są przystosowane do maksymalnego obciążenia z lokalnego mikrokontrolera. Jednak te kontrolery CAN wymagają większej powierzchni chipa i dlatego są droższe. Oprócz tego mogą administrować tylko ograniczoną liczbą chipów (mikrokontrolerów).

Obecnie dostępne są sterowniki CAN, które łączą obie zasady implementacji. Posiadają obiektową pamięć masową, z których przynajmniej jedna została zaprojektowana jako bufor pośredni. Z tego powodu nie ma już sensu rozróżnianie basicCAN i fullCAN.

Sterowniki podrzędne CAN dla funkcji I/O.

Podobnie jak kontrolery CAN obsługujące wszystkie funkcje protokołu CAN, istnieją chipy CAN, które nie wymagają kolejnego mikrokontrolera. Te chipy CAN noszą nazwę SLIO (Serial I/O Connection). Układy CAN są podrzędne i muszą być sterowane przez CAN master (centralny, główny mikrokontroler w sieci).

Fizyczne połączenie CAN

Szybkość transmisji danych (do 1 Mbit/s) wymaga dość stromego nachylenia impulsu, które można zrealizować tylko przy użyciu ogniw zasilających. W zasadzie możliwych jest kilka połączeń fizycznych. Jednak użytkownicy i producenci grupy CAN in Automation zalecają stosowanie schematów sterowników zgodnych z ISO 11898.

Wbudowane układy scalone sterowników zgodne z normą ISO 11898 są dostępne w kilku firmach (Bosch, Philips, Siliconix i Texas Instruments). Międzynarodowa Grupa Użytkowników i Producentów (CiA) definiuje również kilka połączeń mechanicznych (kabel i złącza).



6. Fizyczne połączenie CAN zgodnie z ISO 11898

Z poważaniem, tłumaczenie zapewnia zespół warsztatowy