Interfejs danych CAN. Adresowanie i identyfikacja wiadomości. Rozwiązywanie konfliktów magistrali i priorytet wiadomości

Przechowuj ruble walutowe j.m.

Szukaj

Magistrala CAN. Część 1.

1. Sieć obszaru kontrolera (CAN)

Obszary zastosowania.

Dystrybutorzy elektroniczni, Motoryzacja, Morski, Hydraulika, Przemysł tekstylny, Przemysł przetwórczy, Sprzęt medyczny, Kolej, Automatyka budynków, Elektronika radia lotniczego, Urządzenia, Siły Zbrojne, Magazynowanie, Rolnictwo, Telekomunikacja, Ciężarówki, Maszyny i Pojazdy Budowlane, Automatyka Przemysłowa.

Informacje ogólne

Sieć CAN Controller Area Network to standard magistrali szeregowej opracowany w latach 80. przez firmę Robert Bosch GmbH w celu łączenia elektronicznych jednostek sterujących. CAN został specjalnie zaprojektowany do niezawodnej pracy w hałaśliwym otoczeniu przy użyciu zróżnicowanej linii, takiej jak RS-485. Połączenie może być bardziej odporne na zakłócenia przy użyciu skrętki. Pierwotnie stworzony do zastosowań motoryzacyjnych, ale obecnie jest używany w różnych systemach sterowania, m.in. przemysłowe, działające w hałaśliwym otoczeniu.
Szybkość wymiany danych do 1Mbit/s jest możliwa w sieciach o długości nie większej niż 40m. Obniżenie kursu wymiany pozwala na zwiększenie długości sieci np. 250 Kbit/s przy 250m.
Protokół komunikacyjny CAN jest znormalizowany zgodnie z normą ISO 11898-1 (2003). Norma ta opisuje głównie warstwę komunikacyjną składającą się z podczęści Kontrola logiczna (LLC) i Kontrola dostępu (MAC) oraz niektóre aspekty warstwy fizycznej modelu ISO/OSI. Pozostałe warstwy protokołu pozostawia się do uznania projektanta sieci.

Sieci CAN i ich odmiany

Istnieją różne sieci CAN. Na przykład w samochodach sieci CAN dzielą się na dwie kategorie w oparciu o zasadę transmisji danych przez sieć.
Sieci sterowania systemów komfortu i wygody, z dużą liczbą identyfikatorów informacji, które są przesyłane bez względu na określoną kolejność lub częstotliwość.
Sieci sterowania układem napędowym zarządzają informacjami związanymi z silnikiem i skrzynią biegów. Zawierają mniej informacji, ale informacje są przekazywane w sposób zorganizowany i szybki.

ogólna charakterystyka

Zintegrowana magistrala komunikacji szeregowej do zastosowań w czasie rzeczywistym.
. Sieć działa z szybkością wymiany danych do 1Mbit/s.
. Posiada doskonałe możliwości wykrywania i weryfikacji błędów i usterek.
. Początkowo magistrala CAN była przeznaczona do użytku w samochodach.
. Znajduje zastosowanie w różnych systemach automatyki i systemach sterowania.
. Norma międzynarodowa: ISO 11898

Definicja CAN

CAN to system magistrali szeregowej przystosowany do organizowania sieci inteligentnych urządzeń, a także czujników i elementów wykonawczych w systemie lub podsystemie.

Właściwości CAN

System CAN na magistrali szeregowej z możliwościami wielofunkcyjnymi, wszystkie węzły CAN są w stanie przesyłać dane, a niektóre węzły CAN mogą jednocześnie żądać połączenia z magistralą. Nadajnik przesyła wiadomość do wszystkich węzłów CAN. Każdy węzeł na podstawie otrzymanego identyfikatora określa, czy powinien przetworzyć wiadomość, czy nie. Identyfikator określa również priorytet, jaki ma wiadomość podczas dostępu do magistrali. Prostota określa koszt sprzętu i koszt szkolenia personelu. Układy CAN mogą być stosunkowo łatwe do zaprogramowania. Kursy wprowadzające, biblioteki funkcjonalne, zestawy startowe, różne interfejsy, moduły I/O i narzędzia w szerokiej gamie są prezentowane w otwartej sprzedaży w przystępnych cenach. Od 1989 roku chipy CAN są swobodnie i łatwo podłączane do mikrokontrolerów. Obecnie istnieje około 50 chipów CAN dla mikrokontrolerów ponad 15 producentów.
CAN jest używany w większości europejskich samochodów osobowych, a decyzja producentów ciężarówek i SUV-ów o dalszym stosowaniu CAN zdeterminowała rozwój na ponad 10 lat. W innych obszarach zastosowań, takich jak sektory domowe i przemysłowe, sprzedaż urządzeń CAN rośnie i będzie kontynuowana w przyszłości. Do wiosny 1997 roku zainstalowano już ponad 50 milionów węzłów CAN. Jedną z wyjątkowych cech protokołu CAN jest wysoka niezawodność wymiany danych. Sterownik CAN rejestruje błędy i przetwarza je statystycznie do odpowiednich pomiarów, w wyniku czego węzeł CAN będący źródłem błędu zostanie usunięty z połączenia.
Każda wiadomość CAN może zawierać od 0 do 8 bitów informacji o użytkowniku. Oczywiście możliwe jest przesyłanie dłuższych danych z wykorzystaniem fragmentacji. Maksymalny określony kurs wymiany to 1 Mbit/s. Jest to możliwe przy długości sieci nie większej niż 40m. W przypadku dłuższej komunikacji prędkość transmisji musi zostać zmniejszona. Na dystansie do 500m prędkość wynosi 125Kbit/s, a dla transmisji powyżej 1 km dozwolona jest prędkość 50Kbit/s.

Aplikacje CAN

Sieci CAN mogą być wykorzystywane jako wbudowane systemy komunikacyjne dla mikrokontrolerów, a także jako otwarte systemy komunikacyjne dla inteligentnych urządzeń. System magistrali szeregowej CAN, zaprojektowany do zastosowań motoryzacyjnych, znajdzie szerokie zastosowanie w przemysłowych systemach komunikacyjnych i pod wieloma względami będzie podobny. W obu przypadkach głównymi wymaganiami są: niski koszt, zdolność do funkcjonowania w trudnych warunkach, długa żywotność i łatwość obsługi.
Niektórzy użytkownicy, na przykład w dziedzinie inżynierii medycznej, preferują CAN ze względu na rygorystyczne wymagania bezpieczeństwa, które muszą być spełnione. Podobne warunki, o podwyższonych wymaganiach dotyczących niezawodności i bezpieczeństwa, są nakładane na niektóre inne urządzenia i sprzęt (tj. roboty, systemy podnoszenia i transportu).

Licencja CAN

Protokół CAN został opracowany przez Robert Bosch GmbH i jest chroniony patentami.

Podstawowe standardy CAN

Niektóre z międzynarodowych standardów CAN są wymienione poniżej.
. Standardy CAN:
o ISO 11898-1 - protokół CAN
o ISO 11898-2 — Struktura fizyczna wysokiej prędkości CAN
o ISO 11898-3 — struktura fizyczna zgodna z błędami niskiej prędkości CAN
o ISO 11898-4 — uruchomienie CAN
o ISO 11898-5 — Szybkie urządzenie niskonapięciowe (w trakcie opracowywania).
o ISO 11519-2 zastąpione przez 11898-3.
. ISO 14230 - "Keyword Protocol 2000" - protokół diagnostyczny z wykorzystaniem łącza szeregowego, a nie CAN
. ISO 15765 — Protokół diagnostyczny przez magistralę CAN — słowo kluczowe 2000 na magistrali CAN.
. J1939 — Podstawowy protokół CAN dla ciężarówek i autobusów zdefiniowany przez SAE
. ISO 11783 - J1939 i uzupełnienie dla maszyn rolniczych
. ISO 11992 - definiuje interfejs ciągników i przyczep
. NMEA 2000 — Protokół oparty na J1939 dla statków, zdefiniowany przez NMEA.

Protokół CAN to standard ISO (ISO 11898) do komunikacji szeregowej. Protokół jest przeznaczony do zastosowań motoryzacyjnych. Obecnie systemy CAN są szeroko stosowane i znajdują zastosowanie w automatyce przemysłowej, różnego rodzaju transporcie, maszynach specjalnych i samochodach.

Zalety CAN:

- Dostępność dla konsumenta.
Protokół CAN jest z powodzeniem stosowany od ponad 15 lat, od 1986 roku. W sprzedaży dostępna jest szeroka gama produktów i urządzeń CAN.

- Implementacja protokołu na poziomie sprzętowym
Protokół jest oparty na poziomie sprzętu. Pozwala to połączyć umiejętność rozpoznawania i kontroli błędów z możliwością przesyłania danych z dużymi prędkościami.

-Prymitywna linia transmisyjna
Linia transmisji danych to w większości przypadków skrętka. Ale komunikacja za pośrednictwem protokołu CAN może odbywać się również za pomocą jednego przewodu. W różne okazje możliwe jest wykorzystanie najbardziej odpowiednich kanałów komunikacyjnych, kanału optycznego lub radiowego.

- Doskonała umiejętność wykrywania błędów i awarii oraz lokalizacji usterek.
Zdolność do wykrywania błędów i awarii jest istotną zaletą protokołu CAN. Mechanizm wykrywania błędów zbudowany jest na rozbudowanej zasadzie, a także niezawodnym i rozbudowanym systemie sprawdzania i potwierdzania błędów oraz awarii.
System detekcji uszkodzeń i retransmisja danych odbywa się automatycznie na poziomie sprzętowym.

- System wykrywania i weryfikacji usterek
Wadliwe źródło w systemie jest w stanie zdezorganizować cały system, tj. zajmują wszystkie kanały komunikacji. Protokół CAN ma wbudowaną funkcję, która chroni system przed źródłem usterki. Źródło błędu jest usuwane z odbierania i przesyłania danych przez magistralę CAN.

2. Magistrala CAN

Wstęp

Protokół CAN to standard ISO (ISO 11898) do komunikacji szeregowej. Protokół jest przeznaczony do zastosowań motoryzacyjnych. Obecnie systemy CAN są szeroko stosowane i znajdują zastosowanie w automatyce przemysłowej, różnego rodzaju transporcie, maszynach specjalnych i samochodach.
Standard CAN opisuje parametry sygnału w warstwie fizycznej oraz kolejność transmisji danych, która jest zdefiniowana przez dwa różne typy komunikatów, reguły arbitrażu dostępu do magistrali oraz metodę wykrywania i sprawdzania usterek.

Protokół CAN

CAN jest zdefiniowany przez ISO 11898-1 i zawiera następujące podstawowe informacje.
. W warstwie fizycznej sygnał jest przesyłany za pomocą skrętki dwużyłowej.
. Reguły arbitrażu służą do kontroli dostępu do magistrali.
. Bloki danych mają mały rozmiar (w większości przypadków 8 bajtów) i są chronione sumą kontrolną.
. Bloki danych nie są adresowalne, zamiast tego każdy blok zawiera wartość liczbową, która określa priorytet transmisji w magistrali i może również zawierać identyfikator zawartości bloku danych.
. złożony schemat obsługi błędów, który powoduje retransmisję danych, które nie są prawidłowo odbierane.
. Skuteczne działanie w celu odizolowania usterek i odłączenia źródła usterki od magistrali.

Protokoły wyższego rzędu (HLP)

Protokół CAN definiuje bezpieczny transfer małych pakietów danych z punktu A do punktu B przy użyciu wspólnej linii komunikacyjnej. Protokół nie zawiera kontroli przepływu, adresowania, nie zapewnia transmisji wiadomości o długości większej niż 8 bitów, nie nawiązuje połączenia itp. Wymienione właściwości są zdefiniowane przez HLP (protokół wyższej warstwy) lub protokół wyższego rzędu. Warunki HLP są wyprowadzone i składają się z siedmiu rzędów modelu OSI.

Cel HLP
. Standaryzacja procedur uruchamiania i ustawienia szybkości transmisji
. Dystrybucja adresowania urządzeń i rodzajów wiadomości.
. Określanie kolejności wiadomości
. zapewnia mechanizm wykrywania błędów na poziomie systemu

Produkty CAN

Istnieją dwa rodzaje produktów CAN, chipy CAN i narzędzia programistyczne CAN.
Na najwyższym poziomie dwie inne odmiany produktów, moduły CAN i narzędzia programistyczne CAN. W handlu dostępna jest szeroka gama podobnych produktów.

CAN patenty

Patenty dotyczące aplikacji CAN mogą być: różnego rodzaju i wskazówki. Oto kilka typów:
. Synchronizacja i implementacja częstotliwości transmisji
. Transmisja dużych bloków danych (protokół CAN wykorzystuje ramki nie dłuższe niż 8 bitów)
Systemy sterowania dystrybucją
Protokół CAN jest produktywną podstawą do tworzenia systemów sterowania dystrybucją. Metoda arbitrażu umożliwia każdemu urządzeniu CAN interakcję z komunikatami dotyczącymi tego urządzenia.
System sterowania dystrybucją można zadeklarować jako system, w którym możliwości procesora są rozdzielone pomiędzy urządzenia systemu, lub odwrotnie, jako system z jednostka centralna oraz lokalne urządzenia I/O.
Podczas opracowywania sieci CAN można używać różnych kompatybilnych urządzeń sprzętowych, które mają niezbędne właściwości i spełniają określone lub obliczone parametry sieci, takie jak częstotliwość procesora, szybkość przesyłania danych itp.

Stosowane protokoły wyższego rzędu (HLP)

Protokół CAN definiuje bezpieczny transfer małych pakietów danych z punktu A do punktu B przy użyciu wspólnej linii komunikacyjnej. Protokół nie zawiera kontroli przepływu, adresowania, nie zapewnia transmisji wiadomości o długości większej niż 8 bitów, nie nawiązuje połączenia itp. Wymienione właściwości są zdefiniowane przez HLP, protokół wyższej warstwy. Uzyskane warunki HLP składają się z siedmiu zamówień

Modele OSI (modele połączeń otwartych systemów)
CanKrólestwo
CANopen/CAL
Sieć urządzeń
J1939
OSEK
Karta charakterystyki

HLP zwykle definiuje
. Uruchom parametry
. Dystrybucja identyfikatora wiadomości na różne urządzenia w systemie
. Interpretowanie zawartości bloków danych
. Status interakcji w systemie

Zawiera SDS, DeviceNet i CAN Kingdom.

I różnice między CAN Kingdom i CANopen. Obecnie istnieje ponad 50 HLP. Korzystanie z HLP jest obowiązkowe, w przeciwnym razie będziesz musiał wymyślić własne HLP.

KRÓLESTWO

CanKingdom jest utrzymywany przez CanKingdom International Pełna specyfikacja dostępna jest na stronie internetowej organizacji.
CanKingdom jest powszechnie określany jako protokół wyższego rzędu CAN (Controller Area Network). W rzeczywistości najbardziej uporządkowany protokół. Moduły w systemie są połączone siecią, w której jeden z modułów jest masterem (King). Na przykład: aby zorganizować system plug & play, moduł główny określa, które urządzenie można dodać iw jakich okolicznościach, tylko określone urządzenia mogą być dodawane. CanKingdom zapewnia prostą jednoznaczną identyfikację urządzeń w systemie, wykorzystując standard identyfikacji EAN/UPC, indywidualny identyfikator urządzenia określa numer seryjny urządzenia.
CanKingdom zapewnia programiście pełen potencjał CAN.
Projektant nie jest ograniczony protokołem multi-master CSMA/AMP i może tworzyć systemy zarządzania wirtualną magistralą wszelkiego rodzaju i topologii. Zapewnia możliwość tworzenia modułów współużytkowanych bez uwzględniania okoliczności, takich jak zależność od HLP i właściwości systemu. Projektant może zdefiniować zastosowanie tylko określonych modułów, łącząc tym samym walory systemu otwartego z zaletami systemu o ograniczonym i bezpiecznym dostępie.

Ponieważ identyfikator w komunikatach CAN nie tylko identyfikuje komunikat, ale także steruje dostępem do magistrali, kluczowe znaczenie ma numeracja komunikatów. Innym ważnym czynnikiem jest tożsamość struktury danych w polu danych, zarówno w module nadawczym, jak i odbiorczym. Wprowadzenie małych proste zasady, czynniki te można w pełni kontrolować, a komunikacja jest zoptymalizowana pod kątem dowolnego systemu. Odbywa się to podczas krótkiej fazy konfiguracji podczas inicjalizacji systemu. Możliwe jest również włączenie urządzeń, które nie przestrzegają zasad CanKingdom w systemie CanKingdom.
Do CanKingdom dołączona jest odpowiednia dokumentacja modułów i systemów.

CAL i CANopen

CAL to skrót od „CAN Application Layer” Order lub warstwa aplikacji CAN, protokół obsługiwany przez CiA. CAL dzieli się na kilka komponentów:
. CMS (CAN-based Message Specification) definiuje protokoły do ​​przesyłania danych między urządzeniami CAN
. NMT (usługa zarządzania siecią) definiuje protokoły uruchamiania i wyłączania, wykrywanie błędów itp.
. DBT (Distributor Service) definiuje protokół dystrybucji identyfikatorów różnych urządzeń w systemie
- Protokół CAL inny niż model OSI (model Open Systems Interconnect (OSI))
- CANopen jest podzbiorem CAL i jest zbudowany jako zestaw profili, które nie są sfinalizowane.
- CAL/CANopen to jeden z obecnych protokołów HLP obsługiwanych przez CiA.
- Specyfikacje CAL i CANopen są w pełni dostępne i obsługiwane przez CiA

Sieć urządzeń

Protokół jest rozwijany przez „Rockwell Automation w dzisiejszych czasach”, zdefiniowany przez ODVA (Open DeviceNet Vendor Association). DeviceNet to jeden z czterech protokołów obsługiwanych przez CiA.

SAE J1939

J 1939 Szybka komunikacja sieciowa klasy C zaprojektowana do obsługi funkcji sterowania w czasie rzeczywistym między kontrolerami, które są fizycznie zlokalizowane w różnych miejscach w pojeździe.
Jl708/Jl587 to poprzedni, rozpowszechniony typ sieci klasy B z możliwością wymiany prostych informacji, w tym danych diagnostycznych, między sterownikami. J1939 posiada wszystkie cechy J1708/J1587.
J1939 używa protokołu CAN, aby umożliwić dowolnemu urządzeniu wysyłanie wiadomości przez sieć, gdy magistrala jest bezczynna. Każda wiadomość będzie zawierała identyfikator określający priorytet wiadomości, informacje o nadawcy danych oraz informacje zawarte w wiadomości. Konfliktów unika się dzięki mechanizmowi arbitrażu, który jest wywoływany po przekazaniu identyfikatora (przy użyciu bezpiecznego schematu arbitrażu). Pozwala to na przesyłanie wiadomości o najwyższym priorytecie z najmniejszym opóźnieniem, dzięki równemu dostępowi do magistrali przez dowolne urządzenie w sieci.
J1939 jest zorganizowany w kilka części w oparciu o model (Open Systems Interconnect (OSI)). Model OSI definiuje siedem porządków komunikacyjnych (warstw), z których każdy reprezentuje inną funkcję. Chociaż istnieje dokument J1939 przypisany do każdej warstwy, nie wszystkie z nich są wyraźnie zdefiniowane w J1939. Inne warstwy pełnią drugorzędne funkcje opisane gdzie indziej. Warstwa fizyczna opisuje interfejs komunikacji elektrycznej (skręcona, ekranowana para przewodów, która może być również określana jako magistrala). Warstwa łącza opisuje protokół lub zarządza strukturą wiadomości, dostęp do magistrali i wykrywanie błędów transmisji. Warstwa aplikacji definiuje konkretne dane zawarte w każdej wiadomości wysyłanej przez sieć.
Kompletny zestaw specyfikacji można kupić w SAE, poniżej znajduje się lista dokumentów
J1939 jest uzupełniony następującymi dokumentami:
J1939 Praktyczne zalecenia poprzez sterowanie transmisją szeregową i sieć komunikacji pojazdu
J1939/11 Porządek fizyczny (warstwa) - 250k bitów/s, ekranowana skrętka
J1939/13 Złącza diagnostyczne
J1939/21 Dane warstwy łącza
J1939/31 Warstwa sieciowa
Warstwa aplikacji J1939/71
Diagnostyka J1939/73
J1939/81 Zarządzanie siecią

OSEK/VDX

OSEK/VDX to wspólny projekt w branży motoryzacyjnej. Stworzony jako standard branżowy dla architektury otwartej dla rozproszonych sterowników pojazdów. System operacyjny czasu rzeczywistego, interfejsy oprogramowania i zadania zarządzania siecią są określone wspólnie. OSEK” (Systemy otwarte i odpowiadające im interfejsy dla elektroniki samochodowej.) Systemy otwarte i interfejsy informacyjne dla elektroniki samochodowej. VDX „Whicule Distributed eXecutive”
Firmy wspólnie zaangażowane w rozwój: Opel, BMW, DaimlerChrysler, IIIT - University of Karlsruhe, PSA, Renault, Bosch, Siemens, Volkswagen.
Oficjalna strona: www.osek-vdx.org

Inteligentny system rozproszony (SDS)

System SDS, oparty na magistrali dla inteligentnych czujników i elementów wykonawczych, z uproszczonym procesem instalacji, zapewnia szeroką gamę opcji sterowania we/wy. Za pomocą jednego 4-żyłowego kabla SDS system może być wyposażony w maksymalnie 126 indywidualnie adresowalnych urządzeń. Dodatkowe informacje i specyfikacje dotyczące karty charakterystyki są dostępne w witrynie dla programistów firmy Honeywell. SDS to jeden z czterech obecnie obsługiwanych przez CiA protokołów.

Charakterystyka porównawcza głównych protokołów HLP
Informacje ogólne

DeviceNet, SDS i CAN Kingdom bazują na protokole komunikacyjnym ISO 11898 CAN i działają zgodnie z wymaganiami specyfikacji CAN. Każdy moduł CAN zgodny z określonym protokołem może być podłączony do magistrali CAN zgodnej z tym samym protokołem. W każdym razie przy łączeniu modułów, które działają na różnych protokołach, w większości przypadków pojawiają się problemy z powodu konfliktu w interpretacji komunikatów na poziomie aplikacji. Królestwo CAN różni się od SDS i DeviceNet w fundamentalny sposób: Królestwo CAN jest konfigurowane jako główny węzeł komunikacyjny („King”) podczas uruchamiania, w przeciwieństwie do SDS i DeviceNet. Taka organizacja pozwala na uproszczenie tworzenia kompleksu systemów czasu rzeczywistego oraz zmniejszenie wymaganej liczby modułów koordynujących specyfikacje, często określanych mianem profili.
SDS skutecznie łączy urządzenia I/O, różne przełączniki i czujniki do PLC, w rzeczywistości jest to połączenie między modułem głównym a zdalnymi urządzeniami I/O.
DeviceNet to system otwarty, w którym wszystkie moduły mają równe prawa do korzystania z magistrali, a kolejność korzystania z magistrali jest określona przez mały zestaw instrukcji. Projektant modułu systemu może delegować uprawnienia kontroli komunikacji do innych modułów, takich jak moduł master w predefiniowanym trybie Master/Slave, ale DeviceNet nie ma możliwości delegowania uprawnień do innych modułów. Charakterystyki SDS korzystających z urządzeń I/O i DeviceNet w trybie Master/Slave są podobne.
Can Kingdom to protokół skoncentrowany na systemach produkcji, połączeń i sterowania i nie obsługuje profili dla urządzeń cyfrowych i analogowych. Główną cechą protokołu jest to, że moduł podłączony do systemu czeka tylko na instrukcje z urządzenia nadrzędnego. Wszystkie priorytety i identyfikatory CAN są własnością i są dostarczane przez mastera. Podczas uruchamiania każdy moduł jest konfigurowany przez urządzenie główne, ustalane są priorytety i identyfikatory obiektów produkcyjnych i zużywających. Urządzenie główne jest urządzeniem głównym, ale tylko w okresie konfiguracji systemu. Hosta nie można osadzić podczas sesji komunikacyjnej między uruchomionymi aplikacjami różnych modułów. Urządzenie główne można usunąć po skonfigurowaniu i weryfikacji kompletności, przy czym każdy moduł przechowuje otrzymane instrukcje w pamięci.


25.10.2012

lub jak to brzmi bardziej znajomo w diagnostyce samochodowej - magistrala CAN

* Co to jest MOŻE?

* Relacja systemów otwartych (Open System Interconnection (OSI))

* Sieć obszarowa kontrolera (CAN)

* GłównyzasadyMOGĄ

* Jak wygląda magistrala CAN na przykładzie samochodów wyprodukowanych w Japonii

Parking na naszych ulicach szybko się odmładza, a jednocześnie musimy opanować i rozwiązywać nowe problemy związane z diagnostyką i naprawą. Coraz częściej w swojej codziennej pracy napotykasz problemy komunikacyjne pomiędzy różnymi systemami pokładowymi pojazdu. Jeżeli kilka lat temu auta przyjeżdżały na diagnostykę z błędami przez magistralę CAN(pierwszy znak w klasyfikacji DTC to U ) byli rzadkimi gośćmi, ale teraz jest to prawie codzienna praktyka. Informacje na ten temat są w zasadzie dostępne i jest ich całkiem sporo, nawet bardzo dużo – co z jednej strony jest dobre, ale z drugiej stanowi pewną trudność w odnalezieniu potrzebnych informacji. W tym artykule chciałbym przede wszystkim przekazać główny pomysł o systemie MOGĄ ( ) dla tych, którzy dopiero zaczynają się z nią zapoznawać i dla tych, którzy chcą to głębiej zrozumieć.


Co się stało
MOGĄ?

Sieć obszaru kontrolera - koncepcja ta weszła do użytku na początku lat 80. w Robert Bosch GmbH opracował standard sieci przemysłowej skupiający się przede wszystkim na łączeniu różnych elementów wykonawczych i czujników w jedną sieć. Jedno z pierwszych wdrożeń w branży motoryzacyjnej zostało przeprowadzone na kilku modelach samochodów. mercedes benz w 1992 roku. Do tego momentu zgodnie z systemem budowane było elektroniczne sterowanie funkcjami wykonawczymi – jedna jednostka sterująca odbierała sygnały elektroniczne z różnych czujników i po ich przetworzeniu wysyłała odpowiednie polecenia do urządzenia wykonawcze(takich jak pompa paliwa, wtryskiwacze, cewki zapłonowe itp.). Wzrost ilości funkcji sterowania samochodem przeniesionych na elektronikę doprowadził do pojawienia się takich dodatkowych systemów jak ABS, SRS, AT, Immobilaser i inne… Połączenie tych funkcji w jednym ECU prowadziłoby do jego nieporęczności i nadmiernej złożoności, ponieważ a także do utraty niezawodności, gdy awaria jednego systemu może doprowadzić do utraty kontroli nad całym pojazdem. Dlatego producenci samochodów obrali ścieżkę rozdzielenia funkcji kontrolnych i rozdzielenia wszystkich systemów na oddzielne bloki. Aby połączyć wszystkie systemy w jedną całość, aby rozwiązać typowe problemy związane z prowadzeniem samochodu, na ratunek przyszedł standard komunikacji. CAN od Robert Bosch GmbH i jest to coraz częściej wykorzystywane w przemyśle motoryzacyjnym. Dziś prawie każdy nowy samochód jest wyposażony w ten system.

W zasadzie wszystko jest proste i jasne, ale jak działa magistrala CAN?A na czym opiera się zasada jego pracy? Oto jeden przykład połączenia elektronicznych jednostek sterujących i urządzeń połączonych w jedną pokładową sieć komunikacyjną samochodu - Ryż. jeden

Tutaj rozważamy tylko bloki połączone w sieci przewodowej, ale w samochodach XXI wieku coraz częściej stosuje się bezprzewodową transmisję informacji. Na przykład system nawigacji, śledzenie lokalizacji samochodu (zabezpieczenie przed kradzieżą), monitorowanie ciśnienia w oponach, zdalna diagnostyka i wiele innych. W niedalekiej przyszłości można się spodziewać, że połączenie wewnętrznych i zewnętrznych przepływów informacji w sieci pokładowej pojazdów wprowadzi jazdę na nowy poziom bezpieczeństwa i komfortu, przede wszystkim w takich obszarach jak wyświetlanie informacji ostrzegawczych o niebezpiecznych sytuacji na drogach, a nawet aktywnego łagodzenia skutków ewentualnych kolizji samochodów, a także bardziej racjonalnego rozmieszczenia potoków ruchu.

Trochę tła - Relacja systemów otwartych (Open System Interconnection (OSI)).


Oczywiste jest, że jeśli dwa lub więcej mikroprocesorów jest połączonych w jednym systemie, to musi być użyty standardowy protokół, który określa sposób przesyłania danych między jednostkami sieciowymi. Najczęstszym przykładem takiego protokołu jest TCP/IP ( Protokół kontroli transmisji / protokół internetowy), który służy do łączenia usług hostingowych w Internecie. poprzednik TCP/IP był protokołem - Open System Interconnection (OSI ). Protokół ten został opracowany w 1982 roku przez Międzynarodowe Biuro Normalizacyjne.Międzynarodowa Organizacja Normalizacyjna(ISO 7498-1:1994(E)). OSI Protokół jest czasami określany jako model „siedmiowarstwowy”, ponieważ składa się z siedmiu niezależnych elementów, które określają wymagania dotyczące wzajemnych połączeń na różnych poziomach interakcji.


Te siedem poziomów to:

1) Warstwa aplikacji (warstwa aplikacji) - ten poziom określa, które aplikacje (programy) mają dostęp do sieci. Przykładami są e-mail, transfer plików, terminale zdalnego dostępu i przeglądarki internetowe.

2) Warstwa prezentacji danych (warstwa prezentacji) — ten poziom definiuje takie rzeczy, jak standardy kompresji i szyfrowania danych.

3) Warstwa transferu danych (Warstwa transportowa) - ten poziom zapewnia standardy przesyłania danych między adresami docelowymi, zapewnia kontrolę błędów i bezpieczeństwo.

4) Warstwa sieciowa (Warstwa sieci) - ta warstwa odpowiada za routing ruchu danych w sieci.


5) Poziom kanałów komunikacji (Warstwa łącza danychr) - ta warstwa zapewnia synchronizację transmisji danych i kontrolę błędów.

6) Poziom kontroli sesji komunikacyjnych (warstwa sesji) — ta warstwa standaryzuje początek i koniec sesji komunikacyjnych między różnymi aplikacjami i blokami sieci.

7) Warstwa fizyczna (warstwa fizyczna) - ten poziom określa standardy Charakterystyka fizyczna urządzenia w sieci, w tym rodzaje połączeń i złączy, charakterystyki elektryczne kabli, poziom napięcia, natężenie prądu itp.

Ale zadania rozwiązane przez protokół OSI nie w pełni zaspokajał potrzeby elektroniki samochodowej, a w rezultacie inżynierowie Robert Bosch GmbH został opracowany, w rozwoju protokołu OSI , protokół specjalny MOGĄ , który określił standardy dla warstwy fizycznej i łącza danych w modelu OSI w krzemie do komunikacji szeregowej między dwoma lub więcej urządzeniami.

Sieć kontrolera (CAN)

CAN został opracowany przez Robert Bosch GmbH dla przemysłu motoryzacyjnego na początku lat 80. i oficjalnie wydany w 1986 r. Ten rozwój MOŻE od Bosch został przyjęty jako standard ISO (ISO 11898 ), w 1993 przemianowany na CAN2.0A i rozszerzona w 1995 r., aby umożliwić identyfikację większej liczby urządzeń sieciowych w CAN2.0B. Zazwyczaj magistrala CAN łączy moduły (lub węzły) z siecią za pomocą dwóch przewodów, skrętki. Wdraża się wiele firm i nie tylko motoryzacyjnych MOGĄ protokół w ich rozwoju do łączenia różnych urządzeń sterowanych elektronicznie. W nieformalnej klasyfikacji urządzenia powiązane z protokołem MOGĄ i posiadające procesory z serii MPC 5xx, zwany TouCAN moduły; posiadające procesory z serii MPC 55xx nazywane są modułami FlexCAN. MOGĄ jest protokołem szeregowym, multi-sender i multicast, co oznacza, że ​​gdy magistrala jest wolna, każdy węzeł może wysłać wiadomość (multi-sender), a wszystkie węzły mogą odbierać i odpowiadać na wiadomość (multicast). Węzeł, który inicjuje wiadomość nazywany jest nadajnikiem, każdy węzeł, który nie wysyła wiadomości, nazywany jest odbiorcą. Wszystkim wiadomościom przypisywane są priorytety statyczne, węzeł nadawczy pozostaje nadajnikiem do czasu, gdy magistrala stanie się nieaktywna lub do momentu pojawienia się w sieci wiadomości z innego węzła o wyższym priorytecie, proces ten określa priorytet wiadomości i nazywa się arbitrażem. Komunikat magistrali CANmoże zawierać do 8 bajtów danych. Identyfikator wiadomości opisuje zawartość danych i jest używany przez węzły odbiorcze do określenia miejsca docelowego sieci (innymi słowy węzła docelowego, do którego adresowana jest wiadomość). W krótkich sieciach (≤ 40 m) szybkości przesyłania wiadomości mogą dochodzić do 1 Mb/s. Większe odległości w sieci zmniejszają dostępną prędkość transmisji, na przykład do 125 Kbps w sieci o długości do 500m. Szybka sieć CAN ( Wysoka prędkość CAN ) jest uważana za sieć o szybkości transmisji danych większej niż 500 Kb/s.

Podstawowe zasady CAN


Szczegóły specyfikacji MOGĄ protokoły są w pełni opisane w Robert Bosch GmbH , “ Specyfikacja CAN 2.0”, 1991. Zapoznaj się z dokumentem w formacie PDF możliwe na poniższy adreshttp://esd.cs.ucr.edu/webres/can20.pdf . Poniżej podam możliwie najkrótszy opis sposobu przesyłania danych przez CAN, struktury komunikatów CAN oraz obsługi błędów transmisji komunikatów.

Istnieją cztery rodzaje wiadomości CAN lub ramki (ramki): ramka danych ( ramka danych ), usunięta ramka (zdalna ramka ), błędna ramka (Ramka błędu ) i ramka przeciążeniowa (Przeciążenie ramki ).

ramka danych - standardowy komunikat CAN, rozsyła dane z nadajnika do innych węzłów sieci.

zdalna ramka - komunikat nadawany przez nadajnik w celu żądania danych z określonego węzła sieci.

Ramka błędu -może być transmitowany przez dowolny węzeł, który wykryje błąd w sieci.

Przeciążenie ramki - używane jako żądanie zapewnienia dodatkowej przerwy pomiędzy odebranymi danymi ( ramka danych ) lub żądania danych ( ramka zdalna).

Różnice pomiędzy Data Frames dla standardów CAN 2.0A i CAN 2.0B zilustrowano poniżej, - rys.1. 2

Różnica między formatami CAN 2.0 A i CAN 2.0B czy ramka danych dla? CAN2.0B obsługuje zarówno standardowy identyfikator ramki danych - 11 bitów, jak i rozszerzony identyfikator ramki danych - około 29 bitów. Ramki o standardowym i rozszerzonym formacie mogą być łatwo przesyłane pojedynczo na tej samej szynie, a nawet mogą mieć numeryczny równoważny identyfikator.

W tym przypadku wyższy priorytet będzie miała ramka standardowa,- Ryż. 3


Opis ramki danych CAN 2.0A


początek wiadomości (Początek ramki (SOF)

ID ( Identyfikator ) - 11 bitów, unikalny identyfikator, oznacza priorytet.

Żądanie transferu zdalnego () - 1 bit, dominujący w komunikacie i recesywny w żądaniu przesłania komunikatu.

Skryty ) - 2 bity, musi być dominujący.

Długość kodu danych (Kod długości danych (DLC)

Pole danych transferu (pole danychDLC.

Cykliczna kontrola nadmiarowa (CRC)) - 15 bitów.

Separator CRC

Potwierdzenie ( Potwierdź (ACK)

Ogranicznik ACK - 1 bit, musi być recesywny.

Zakończ wiadomość (Koniec ramki (EOF)) - 7 bitów, musi być recesywny, - Ryż. 4


Opis ramki danych CAN 2.0B

początek wiadomości ( Początek ramki (SOF) ) - 1 bit, musi być dominujący.

Identyfikator formatu standardowego i rozszerzonego ( Identyfikator ) - 11 bitów, unikalny identyfikator, odpowiada bazie ID w rozszerzonym formacie.

Identyfikator formatu rozszerzonego (Identyfikator — format rozszerzony ) - 29 bitów, składa się z 11 bitów bazy ID i 18-bitowy rozszerzony ID .

Żądanie transferu zdalnego (Zdalne żądanie transmisji (RTR)) formaty standardowe i rozszerzone - 1 bit, dominujący w komunikacie i recesywny w żądaniu przesłania komunikatu. W standardowym formacie po bicie następuje 11 bitów identyfikatora RTR.

Zastąpienie żądania zdalnego (ZastąpićZdalnyProśba ( SRR) ). Dla formatu rozszerzonego - 1 bit, musi być recesywny. SRR transmitowane w rozszerzonych formatach wiadomości na pozycji bitowej RTR w standardowej wiadomości. W arbitrażu między komunikatami standardowymi i rozszerzonymi, recesywna SRR daje pierwszeństwo komunikatom standardowym.

Pole IDE– dla formatów standardowych i rozszerzonych - 1 bit, musi być recesywny dla formatu rozszerzonego i dominujący dla standardu.

Rezerwa ( Zarezerwowane r0) dla formatu standardowego - 1 bit, musi być dominujący.

Rezerwa ( Zarezerwowane r1, r0) dla formatu rozszerzonego - 2 bity, musi być recesywny.

Długość kodu danych ( Kod długości danych (DLC) ) - 4 bity, liczba bajtów danych (0-8).

Pole danych transferu ( pole danych ) - od 0 do 8 bajtów, rozmiar określamy w polu DLC.

Sprawdź kod nadmiarowości cyklicznej ( Cykliczna kontrola nadmiarowa (CRC) ) ) - 15 bitów.

ogranicznik CRC - 1 bit, musi być recesywny.

Potwierdź (ACK ) ) - 1 bit, nadajnik wysyła recesywnie; odbiorca potwierdza dominację.

Ogranicznik ACK - 1 bit, musi być recesywny.

Zakończ wiadomość ( Koniec ramki (EOF ) ) - 7 bitów, musi być recesywny.

CAN ramka danych

CAN ramka danych składa się z siedmiu pól: Początek ramki ( SOF ), arbitraż, kontrola, dane, round-robin, kontrola nadmiarowa(CRC) , potwierdzenie (ACK ) i koniec ramki (EOF ). Bity wiadomości MOGĄ oznaczony jako „dominujący” (0) lub „recesywny” (1). Pole SOF składa się z jednego dominującego bitu. Wszystkie węzły sieci synchronicznie czekają na polecenie zezwolenia na wiadomość i jednocześnie rozpoczynają transmisję. Schemat arbitrażu określa, który z węzłów próbujących transmitować wiadomości ma najwyższy priorytet i będzie faktycznie sterował magistralą.


Arbitraż

Pole arbitrażowe wiadomości MOGĄ składa się z 11- lub 29-bitowego identyfikatora i bitu transmisji zdalnej ( RTR ). Schemat arbitrażowy CAN nazywa się " kontrola mediów z wielokrotnym dostępem i wykrywaniem kolizji”lub CSMA/CD , co gwarantuje, żenajważniejsza wiadomość o najwyższym priorytecie zostanie najpierw wysłana do całej sieci. Priorytet komunikatu określa wartość liczbowa identyfikatora w polu arbitrażu, pole o najniższej wartości liczbowej ma najwyższy priorytet. Nieniszczący, inteligentny arbitraż rozwiązuje konflikty między konkurującymi nadajnikami. Oznacza to, że autobus może być traktowany jako bramka AND ( I brama ). Jeśli którykolwiek węzeł zapisuje atrybut dominujący (0) w sieci, to każdy węzeł odczytuje bit dominujący, niezależnie od jego przypisania przez węzeł nadawczy. Każdy węzeł nadawczy zawsze odczytuje odpowiedź dla każdego przesyłanego bitu. Jeśli węzeł przesyła recesywny bit żądania, aby wysłać wiadomość i odbierze dominujący bit, aby odczytać wiadomość, natychmiast przestaje transmitować.

Priorytet arbitrażu sieciowego jest zilustrowany poniżej, gdzie trzeci węzeł ma najwyższy priorytet, a pierwszy najniższy,- Ryż. pięć

Bit RTR włączone rozróżnianie wiadomości do wysłania i zdalnych żądań otrzymywania wiadomości. W standardowych wiadomościach do transmisji ( Ramka danych ) bit RTR musi być dominujący, a w zdalnych żądaniach otrzymywania wiadomości ( zdalna ramka ) musi być recesywny.

Pole kontrolne i pole danych w komunikacie (Pola kontrolne i pola danych)

Pole sterujące długością kodu danych ( DLC ) składa się z 6 bitów (z których wykorzystywane są tylko 4 najmniej znaczące bity), wskazują one ilość danych w komunikacie. Ponieważ w jednej wiadomości można przesłać tylko do 8 bajtów danych, pole DLC może przyjmować wartości z zakresu od 000000 do 000111. Dane do przesłania zawarte są tylko w polu danych. Najważniejszy bajt jest przesyłany jako pierwszy ( Najbardziej znaczący bajt (MSB) ) z bajtów danych.

Obsługa błędów

W protokole CAN wdrożono pięć poziomów wykrywania błędów. Na poziomie wiadomości wykonywana jest cykliczna kontrola nadmiarowa ( Cykliczna kontrola nadmiarowa (CRC) ), sprawdzanie wiadomości i obowiązkowe potwierdzanie sprawdzeń ( Potwierdź (ACK) ). Bit kontroli poziomu składa się z monitora i wypełnienia.

Za pomocą kodu wykrywane są cykliczne błędy nadmiarowości CRC 15 bitów, wyliczanych przez nadajnik z treści wiadomości. Każdy odbiorca otrzymujący wiadomość przelicza kod CRC i porównuje ją z przekazaną wartością. Rozbieżność między tymi dwoma obliczeniami powoduje ustawienie flagi ( flaga ) błędy. Komunikaty do sprawdzenia, które ustawią flagę błędu, są takie, gdy odbiornik wykryje nieprawidłowy bit w ograniczniku CRC , ogranicznik ACK , na końcu wiadomości EOF lub w 3-bitowej przestrzeni oddzielającej komunikaty. Ostatecznie każdy węzeł odbiorczy zapisuje bit dominujący w komórce ogranicznika POTWIERDZ , który jest następnie odczytywany przez węzeł, który wysłał wiadomość. A jeśli odbiór wiadomości przez odbiorcę nie zostanie potwierdzony (być może dlatego, że węzeł odbierający przestał działać), to ustawiana jest flaga błędu potwierdzenia ( ACK).

Na poziomie bitowym zauważyliśmy już, że każdy przesłany bit jest ponownie odczytywany przez nadawcę tej wiadomości podczas sprawdzania potwierdzenia odbioru wiadomości wysłanej przez odbiorcę. Jeżeli monitorowana wartość różni się od wartości wysłanej, oznacza to, że wykryto błąd na poziomie bitów. Dodatkowo błędy na poziomie bitów są wykrywane za pomocą „wstawek”: po pięciu kolejnych identycznych bitach, które są przesyłane w komunikacie, następuje „wstawka”, bit o przeciwnej polaryzacji jest wstawiany przez nadajnik do strumienia przesyłanych bitów (" wstaw" bity są wstawiane do wiadomości z pola SOF do pola CRC ). Odbiorcy automatycznie sprawdzają wiadomość pod kątem „wstawek”. Jeżeli którykolwiek z odbierających węzłów sieci wykryje sześć kolejnych identycznych bitów w odebranym komunikacie, wówczas rejestrowany jest błąd (brak „wstawki”). Oprócz wykrywania błędów „wkładki” zapewniają, że w strumieniu bitów znajduje się wystarczająca liczba niezerowych zakończeń ( brak powrotu do zera (NRZ) ), aby zachować synchronizację.

Komunikat o błędzie (ramka błędu CAN)

Jeśli węzeł nadawczy lub odbiorczy wykryje błąd, natychmiast przerwie odbieranie lub przesyłanie bieżącej wiadomości. Komunikat o błędzie, zwany „flagą błędu”, składa się z sześciu bitów dominujących i ogranicznika komunikatu o błędzie składającego się z ośmiu bitów recesywnych. Ponieważ ten ciąg bitów narusza zasadę „wstawek”, wszystkie inne węzły również wysyłają komunikat o błędzie. Po krytycznej liczbie wykrytych błędów węzeł w końcu sam się wyłącza. Niezawodność, zwłaszcza w produkcji i elektronice samochodowej, w której wykorzystywana jest technologia CAN, wymaga, aby sieć była w stanie oddzielić przypadkowe błędy (spowodowane przepięciami, szumami lub innymi tymczasowymi przyczynami) od trwałych, które powodują awarię węzła z powodu wad sprzętu . Dlatego węzły przechowują i śledzą liczbę wykrytych błędów. Węzeł może znajdować się w jednym z trzech trybów, w zależności od liczby naprawionych błędów:

Jeśli liczba popełnionych błędów w każdym buforze nadawania lub odbioru odpowiedniego węzła jest większa od zera i mniejsza niż 128, węzeł jest uważany za „aktywny w błędzie” ( błąd aktywny ), wskazując, że chociaż węzeł pozostaje w pełni funkcjonalny, napotkano co najmniej jeden błąd.

Jeżeli liczba zarejestrowanych błędów wynosi od 128 do 255, to węzeł przechodzi w stan „pasywny z błędami” ("błąd pasywny" ) tryb. W trybie „errored pasywny” węzeł będzie transmitował z mniejszą szybkością, wysyłając 8 recesywnych bitów przed ponownym wysłaniem wiadomości, uznając, że magistrala jest wolna.

Jeżeli liczba zarejestrowanych błędów jest większa niż 255, to węzeł przechodzi w tryb „offline” ( autobus wyłączony ), wyłączając się.

Błąd przy odbiorze dodaje 1 do ogólnej liczby zliczeń błędów, błąd przy transmisji dodaje do łącznej liczby błędów do zliczenia 8. Kolejne komunikaty bez błędów stopniowo zmniejszają liczbę zliczeń błędów o 1, za każdy komunikat wolny od błędów . Jeśli całkowita liczba zgłoszonych błędów wróci do zera, węzeł powróci do normalnego działania. Węzeł w trybie wyłączonym autobus wyłączony może przełączyć się na błąd aktywny po 128 wpisach sieciowych 11 kolejnych recesywnych bitów, które były monitorowane. Wiadomość jest uważana za wolną od błędów, jeśli węzeł nadawczy nie znalazł w niej błędów aż do pola EOF . Uszkodzone wiadomości są wysyłane ponownie, gdy tylko autobus staje się wolny.

Żądanie danych z określonego węzła sieci (The CAN Remote Frame)

Węzeł, który potrzebuje danych z innego węzła sieci, może zażądać przesłania takich danych, wysyłając odpowiednie żądanie danych ( zdalna ramka ). Na przykład mikroprocesor centralnego zamka w Twoim samochodzie musi znać położenie selektora skrzyni biegów z ECU skrzyni biegów (czy jest w pozycji "parkowania"). Struktura żądania danych jest podobna do struktury standardowej wiadomości, tylko bez pola danych ( pole danych ) i recesywnym Bit RTR.

Żądanie dodatkowej pauzy między odebranymi danymi i wolnym miejscem między wiadomościami (przeciążenie ramek i przestrzeń międzyramkowa)

Jeśli którykolwiek węzeł sieci odbiera wiadomości szybciej niż jest w stanie je przetworzyć, zostanie wygenerowane żądanie zapewnienia dodatkowej przerwy między odebranymi danymi ( Przeciążenie ramek ) aby zapewnić dodatkowy czas między otrzymanymi danymi lub żądaniami otrzymania wiadomości ( zdalna ramka ). Podobny do komunikatu o błędzie, Przeciążenie ramki ma dwa pola z bitami: flaga ogranicznik przeciążenia składający się z sześciu bitów dominujących i ogranicznik przeciążenia składający się z ośmiu bitów recesywnych. W przeciwieństwie do komunikatów o błędach, całkowita liczba Ramki przeciążenia nie są obsługiwane.

Przestrzeń między komunikatami składa się z trzech recesywnych bitów, podobnie jak czas bezczynności magistrali między komunikatami lub żądaniami zdalnego transferu. Podczas limitu czasu żaden węzeł nie może zainicjować transmisji (jeśli bit dominujący zostanie wykryty podczas limitu czasu, wtedy Przeciążenie ramki zostanie wygenerowany). Czas bezczynności magistrali trwa do momentu, gdy węzeł ma coś do przesłania, a gdy transmisja się rozpoczyna, pojawienie się na magistrali bitu dominującego sygnalizuje rozpoczęcie transmisji komunikatu.

MOGĄ zapewnia solidne, proste i elastyczne rozwiązanie sieciowe do zastosowań produkcyjnych, motoryzacyjnych i wielu innych.Główna wada protokołu CAN- że opóźnienie wiadomości nie jest pewne (ze względu na istnienie) Ramki błędów, ramki przeciążenia i retransmisje), a wzrost opóźnień prowadzi do wzrostu ruchu w sieci. Ogólnie rzecz biorąc, wykorzystanie magistrali nie powinno przekraczać 30% maksymalnej mocy magistrali i zapewniać, że komunikaty o niskim priorytecie nie będą doświadczać niedopuszczalnych opóźnień. Wykorzystanie autobusu definiuje się jako podzielenie dwóch wielkości -całkowita liczba bitów użytych do transmisji podzielony przez całkowita maksymalna dostępna liczba do transmisji bitów, i jest obliczany w następujący sposób:

Krok 1 – Wybrano jednostkę czasu ≥ najwolniejszy zarejestrowany okresowy komunikat w sieci (zwykle 1 sekunda).

Krok 2 - Wszystkie komunikaty okresowe są określone.

Krok 3 - Do każdego z tych komunikatów o mniej więcej tym samym rozmiarze dodawanych jest 47 bitów narzutu (rozmiar pól danych narzutu to SOF + Arbitraż + RTR + Kontrola + CRC + Potwierdzenie + EOF +

Przestrzeń międzyramkowa = 1 + 11 + 1 + 6 + 16 + 2 + 7 + 3 = 47 bitów).

Krok 4 - Oblicz liczbę bitów używanych w wiadomościach, mnożąc rozmiar wiadomości w bitach przez liczbę transmisji wykonanych w jednostce czasu.

Krok 5 - Suma wszystkich bitów użytych w przesłanych komunikatach w celu oszacowania całkowitego ruchu w sieci. Pomnóż tę wartość przez współczynnik bezpieczeństwa 1,1, aby uzyskać prognozę najgorszego przypadku ruchu sieciowego.

Krok 6 - Na koniec podziel całkowitą liczbę bitów użytych do transmisji przez całkowitą maksymalną dostępną liczbę do transmisji bitów (na przykład 125 Kbps lub 500 Kbps razy jednostka czasu), aby uzyskać szacunkowy procent wykorzystania magistrali, - Ryż. 6


Protokoły wyzwalane czasowo


Do sterowania siecią w czasie rzeczywistym pożądane byłoby zaimplementowanie protokołu komunikacyjnego, który zapewniałby, że komunikaty są synchronizowane do skrajności, niezależnie od obciążenia magistrali. Przykład takiego protokołu, który kontroluje czasowy poziom komunikacji Dane CAN to „CAN wyzwalany czasowo” lub TTCAN (ISO 11898-4). TTCAN wiadomości mają dwa specjalne typy zwane „oknami czasowymi” ( okna czasowe ): uprzywilejowane okna czasowe ( ekskluzywne okna czasowe ) oraz okna czasowe arbitrażu ( arbitraż okien czasowych). Ekskluzywne okna czasowe dołączone do specjalnych wiadomości, które są przesyłane okresowo. W ten sposób, Ekskluzywne okna czasowe nie rywalizuj o dostęp autobusowy. Arbitraż okien czasowych są używane do wiadomości, które nie mają ścisłych ograniczeń czasowych.

Arbitraż okien czasowych jak zwykłe wiadomości MOGĄ , rywalizować o dostęp do autobusów na podstawie priorytetu w drodze arbitrażu. CAN wyzwalany czasowo protokół, wymaga „węzła głównego” ( węzeł główny ), który okresowo emituje sygnał czasu sieciowego (nazywany czasem globalnym ( czas globalny )) w specjalnym komunikacie informacyjnym. Aby zwiększyć odporność na uszkodzenia, sieć powinna mieć kilka potencjalnych węzłów głównych. Jeżeli węzeł nadrzędny jest wyłączony (nie wykryto żadnej specjalnej wiadomości informacyjnej), inne potencjalne węzły nadrzędne rywalizują o status „węzła głównego” poprzez arbitraż, a węzeł o najwyższym priorytecie staje się nowym „węzłem głównym”. Następnie nowy węzeł główny zaczyna nadawać specjalne komunikaty informacyjne - czas globalny . CAN wyzwalany czasowo protokół nie przekazuje uszkodzonych wiadomości ani nie powoduje ramek błędów.


Dla protokołu TTCAN istnieje konkurencyjny protokół FlexRay , opracowany przez konsorcjum producentów i dostawców samochodów. Komunikat komunikacyjny (ramka) FlexRay składa się z okresowo inicjowanych części „statycznych” i „dynamicznych”. Segment statyczny składa się z tych samych przedziałów czasowych odpowiadających węzłom podłączonym do sieci. Każdy węzeł przesyła swoje komunikaty synchronicznie w zarezerwowanej szczelinie. Segment statyczny wysyła również ramkę „sync”, aby zapewnić zmienną globalną ( podstawa czasu ) dla sieci. w odróżnieniu MOGĄ , nie ma arbitrażu dla autobusu. Fragment dynamiczny jest zasadniczo mechanizmem „odpytywania”, w którym każdy węzeł ma możliwość umieszczenia wyzwolonego zdarzenia lub wiadomości asynchronicznej na magistrali w kolejności priorytetu, przy użyciu mechanizmu synchronizacji „mini-slotów”. Aby poprawić odporność na uszkodzenia, węzły sieciowe korzystające z protokołu FlexRay , można podłączyć do dwóch magistral lub kanałów jednocześnie.

No w zasadzie wszystkie podstawowe informacje o protokole MOGĄ a teraz trochę o jak wygląda MOŻE opona na przykładzie aut wyprodukowanych w Japonii. Od razu zaznaczam, że bez odpowiedniego sprzętu diagnostycznego nie da się zdiagnozować i naprawić usterek. MOGĄ opony są dostępne w bardzo ograniczonym asortymencie. Wszystko sprowadza się do sprawdzenia fizycznej integralności przewodów, sprawdzenia stanu złączy, sprawdzenia rezystancji okablowania i rezystor końcowy , sprawdzanie odpowiedniego poziomu napięcia na CAN niski i CAN wysoki linie. Wykorzystanie sprzętu dealerskiego w diagnostyce ułatwi również jedynie weryfikację i zawęzi krąg rozwiązywania problemów, z bardzo dużą niechęcią, producenci samochodów dopuszczają kontakt z oprogramowanie, jego własność intelektualna. W przypadku problemów na poziomie oprogramowania możliwe jest tylko przeprogramowanie lub wymiana odpowiedniego komputera.

MOŻE przykład opony samochodowe Nissan 2007 - Ryż. 7

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 droższe, 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 przeznaczenie.

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 czynią samochód bardziej komfortowym. 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 terenie komunikacja mobilna 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 zastosowaniach, 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 stosowanie 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”, dzięki któremu 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 (czekaj 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 stacji .

Metoda sprawdzania 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 w ciągu 13 (format standardowy) lub 33 (format rozszerzony) okresów bitowych przy najpóźniej w dowolnym okresie dostępu do opon. 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ą komunikatu okazuje się przydatnym atrybutem systemowym w porównaniu z istniejącymi protokołami CSMA/CD lub tokenem (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 przez stację zapasową stacji centralnej 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 komunikacji), protokół CAN implementuje 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ść transmisji danych przy najniższej możliwej szybkości transmisji danych magistrali w warunkach zajętości magistrali dla wszystkie stacje. 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) komunikatu, 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, lecz 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łu magistrali: każdy transmitujący węzeł monitoruje również poziom magistrali, a tym samym wykrywa różnice między wysłanym a odebranym bitem. 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 bit padding, czyli po pięciu kolejnych równych bitach nadawca wstawia do strumienia bitów bity informacyjne z dodatkową wartością, które są usuwane 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, ze średnim wykorzystaniem przepustowości magistrali wynoszącym 50%, z całkowitym czasem życia 4000 godzin i ze średnią długością wiadomości 80 bitów, całkowita liczba Przesłane wiadomości to 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óry komunikat ma wyższy priorytet na szynie w przypadku kolizji dostępu do szyny z formatami antyaliasingu i tym samym identyfikatorem podstawowym: komunikat standardowy ma zawsze pierwszeństwo przed komunikatem w formacie rozszerzonym.

Kontrolery CAN obsługujące komunikaty w formacie rozszerzonym mogą również wysyłać i odbierać komunikaty w formacie standardowym. Tylko wiadomości w standardowym formacie mogą być przesyłane przez sieć, jeśli sieć używa kontrolerów CAN, które obsługują 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 przy użyciu 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, dla ramek rozszerzonego identyfikatora wysyłany jest bit SRR (zdalne zastępowanie żądań). 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 tworzenia i walidacji 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 różnicowania 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 również 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

Przemysłowa sieć czasu rzeczywistego CAN to sieć ze wspólnym medium transmisji danych. Oznacza to, że wszystkie węzły w sieci jednocześnie odbierają sygnały przesyłane przez magistralę. Nie ma możliwości wysłania wiadomości do żadnego konkretnego węzła. Wszystkie węzły sieci odbierają cały ruch przesyłany przez magistralę. Jednak kontrolery CAN zapewniają sprzętową możliwość filtrowania komunikatów CAN.

Każdy węzeł składa się z dwóch komponentów. Jest to sam kontroler CAN, który zapewnia interakcję z siecią i implementuje protokół oraz mikroprocesor (CPU).

Ryż. 1. Topologia sieci CAN.

Sterowniki CAN są połączone za pomocą magistrali różnicowej, która posiada dwie linie - CAN_H (can-high) i CAN_L (can-low), którymi przesyłane są sygnały. Logiczne zero jest rejestrowane, gdy sygnał na linii CAN_H jest wyższy niż na linii CAN_L. Jednostka logiczna - w przypadku, gdy sygnały CAN_H i CAN_L są takie same (różnią się o mniej niż 0,5 V). Zastosowanie takiego różnicowego schematu transmisji sprawia, że możliwa praca Sieci CAN w bardzo trudnych warunkach środowiskowych. Logiczne zero nazywane jest bitem dominującym, a logiczne jest nazywane bitem recesywnym. Nazwy te odzwierciedlają priorytet logicznej jedynki i zera na magistrali CAN. Z jednoczesną transmisją do dziennika magistrali. zero i jeden, tylko logiczne zero (sygnał dominujący) zostanie zarejestrowane na szynie, a logiczne zostanie stłumione (sygnał recesywny).

Rodzaje wiadomości CAN.

Dane w CAN są przesyłane w krótkich ramkach komunikatów o standardowym formacie. W CAN występują cztery rodzaje komunikatów:

  • ramka danych
  • zdalna ramka
  • Ramka błędu
  • Przeciążenie ramki

ramka danych to najczęściej używany typ wiadomości. Składa się z następujących głównych części:

  • pole arbitrażu określa priorytet wiadomości, gdy dwa lub więcej węzłów jednocześnie próbuje wysłać dane do sieci. Dziedzina arbitrażu składa się z kolei z:
    • dla standardu CAN-2.0A, 11-bitowy identyfikator + 1 bit RTR (retransmisja)
    • dla standardu CAN-2.0B identyfikator 29-bitowy + 1 bit RTR (retransmisja)

    Należy zauważyć, że pole identyfikatora, pomimo swojej nazwy, samo w sobie nie identyfikuje ani węzła w sieci, ani zawartości pola danych. W przypadku ramki danych bit RTR jest zawsze ustawiony na logiczne zero (sygnał dominujący).

  • pole danych zawiera od 0 do 8 bajtów danych
  • pole CRC zawiera 15-bitową sumę kontrolną wiadomości, która służy do wykrywania błędów
  • Gniazdo potwierdzenia (1 bit), każdy kontroler CAN, który poprawnie odebrał komunikat, wysyła do sieci bit potwierdzenia. Węzeł, który wysłał wiadomość, nasłuchuje tego bitu i jeśli potwierdzenie nie zostanie odebrane, powtarza transmisję. W przypadku odebrania szczeliny potwierdzenia, węzeł nadawczy może mieć jedynie pewność, że przynajmniej jeden z węzłów w sieci poprawnie odebrał jego wiadomość.

Ryż. 2. Ramka danych w standardzie CAN 2.0A.

zdalna ramka jest ramką danych bez pola danych iz ustawionym bitem RTR (1 - bity recesywne). Głównym celem ramki Remote jest zainicjowanie przez jeden z węzłów sieci transmisji do sieci danych przez inny węzeł. Ten schemat pozwala zmniejszyć całkowity ruch w sieci. Jednak Remote Frame jest obecnie rzadko używany w praktyce (na przykład Remote Frame nie jest w ogóle używany w DeviceNet).

Ramka błędu jest komunikatem, który wyraźnie narusza format komunikatu CAN. Transmisja takiego komunikatu powoduje, że wszystkie węzły sieci rejestrują błąd formatu ramki CAN, a następnie automatycznie przesyłają ramkę błędu do sieci. Wynikiem tego procesu jest automatyczna retransmisja danych do sieci przez węzeł nadawczy. Ramka błędu składa się z pola Error Flag, które składa się z 6 bitów o tej samej wartości (a zatem ramka Error narusza kontrolę Bit Stuffing, patrz poniżej) oraz pole Error Delimiter, które składa się z 8 recesywnych bitów. Ogranicznik błędów umożliwia innym węzłom sieci wysyłanie własnej flagi błędu do sieci po wykryciu ramki błędu.

Przeciążenie ramki- powtarza strukturę i logikę ramki Error, z tą różnicą, że jest ona wykorzystywana przez przeciążony węzeł, który nie może aktualnie przetworzyć przychodzącego komunikatu, a zatem prosi o retransmisję danych przy użyciu ramki Overload. Obecnie ramka Overload praktycznie nie jest używana.

Kontrola dostępu do medium transmisyjnego (arbitraż bitowy).

Pole arbitrażu ramki CAN jest używane w CAN do rozwiązywania kolizji dostępu do magistrali przy użyciu nieniszczącego arbitrażu. Istota metody nieniszczącego arbitrażu jest następująca. W przypadku, gdy kilka kontrolerów zaczyna jednocześnie wysyłać ramkę CAN do sieci, każdy z nich porównuje bit, który ma zostać wysłany do magistrali, z bitem, który konkurujący kontroler próbuje wysłać do magistrali. Jeśli wartości tych bitów są równe, oba kontrolery przesyłają kolejny bit. I tak się dzieje, dopóki wartości przesyłanych bitów nie będą się różnić. Teraz kontroler, który wysłał logiczne zero (sygnał o wyższym priorytecie) będzie kontynuował transmisję, a drugi (inny) kontroler przerwie transmisję do czasu, gdy magistrala zostanie ponownie zwolniona. Oczywiście, jeśli magistrala jest aktualnie zajęta, to kontroler nie zacznie nadawać, dopóki nie będzie wolny.

Ryż. 3. Arbitraż bitowy na magistrali CAN.

Metody wykrywania błędów.

Protokół CAN definiuje pięć metod wykrywania błędów sieciowych:

  • monitorowanie bitów
  • trochę farszu
  • kontrola ramki
  • POTWIERDZENIE Sprawdzanie potwierdzenia
  • Kontrola CRC

monitorowanie bitów- każdy węzeł podczas przesyłania bitów do sieci porównuje wartość przesyłanego przez siebie bitu z wartością bitu, który pojawia się na magistrali. Jeśli te wartości się nie zgadzają, węzeł generuje błąd bitowy. Oczywiście podczas arbitrażu na magistrali (przekazywanie pola arbitrażu do magistrali) ten mechanizm sprawdzania błędów jest wyłączony.

trochę farszu- gdy węzeł wysyła sekwencyjnie 5 bitów o tej samej wartości do magistrali, dodaje szósty bit o przeciwnej wartości. Węzły odbierające usuwają ten dodatkowy bit. Jeśli węzeł wykryje na magistrali więcej niż 5 kolejnych bitów o tej samej wartości, generuje błąd.

kontrola ramki- niektóre części komunikatu CAN mają to samo znaczenie we wszystkich typach komunikatów. Tych. Protokół CAN dokładnie określa, jakie poziomy napięć i kiedy powinny pojawić się na magistrali. Jeśli format wiadomości zostanie naruszony, węzły generują błąd formularza.

POTWIERDZENIE Sprawdzanie potwierdzenia- każdy węzeł, po odebraniu przez sieć poprawnej wiadomości, wysyła do sieci bit dominujący (0). Jeśli tak się nie stanie, węzeł nadawczy rejestruje błąd potwierdzenia.

Kontrola CRC- każda wiadomość CAN zawiera sumę CRC, a każdy węzeł odbiorczy oblicza wartość CRC dla każdej odebranej wiadomości. Jeżeli obliczona wartość CRC sumy nie jest zgodna z wartością CRC w treści komunikatu, węzeł odbiorczy generuje błąd CRC.

Mechanizm ograniczania błędów.

Każdy węzeł sieci CAN podczas pracy próbuje wykryć jeden z pięciu możliwych błędów. W przypadku wykrycia błędu węzeł wysyła do sieci ramkę błędu, niszcząc w ten sposób cały bieżący ruch sieciowy (przesyłanie i odbieranie bieżącej wiadomości). Wszystkie inne węzły wykrywają ramkę błędu i podejmują odpowiednie działania (odrzucają otrzymaną wiadomość). Ponadto każdy węzeł obsługuje dwa liczniki błędów: licznik błędów transmisji i licznik błędów odbioru. Liczniki te zwiększają się lub zmniejszają zgodnie z kilkoma zasadami. Same zasady zarządzania licznikami błędów są dość złożone, ale sprowadzają się do prostej zasady, błąd transmisji powoduje wzrost licznika błędu transmisji o 8, błąd odbioru zwiększa licznik błędu odbioru o 1, każda poprawna transmisja/odbiór wiadomość zmniejsza odpowiedni licznik o 1. Reguły te prowadzą do tego, że licznik błędów transmisji węzła nadawczego wzrasta szybciej niż licznik błędów odbioru węzłów odbiorczych. Zasada ta odpowiada założeniu, że istnieje duże prawdopodobieństwo, że źródłem błędów jest węzeł nadawczy.

Każdy węzeł sieci CAN może znajdować się w jednym z trzech stanów. Gdy węzeł się uruchamia, znajduje się w stanie Error Active. Gdy co najmniej jeden z dwóch liczników błędów przekroczy limit 127, węzeł przechodzi w stan Error Passive. Gdy wartość przynajmniej jednego z dwóch liczników przekroczy limit 255, węzeł przechodzi w stan Bus Off.

Węzeł w stanie Error Active wysyła do sieci flagi Active Error Flag, jeśli na magistrali zostanie wykryty błąd. Aktywne flagi błędów składają się z 6 dominujących bitów, więc wszystkie węzły je rejestrują. Węzeł w stanie pasywnego błędu wysyła do sieci flagi pasywnego błędu, gdy wykryje błąd w sieci. Pasywne flagi błędów składają się z 6 recesywnych bitów, więc pozostałe węzły sieci tego nie zauważają, a pasywne flagi błędów prowadzą tylko do zwiększenia licznika błędów węzła. Węzeł w stanie Bus Off nie wysyła niczego do sieci (nie tylko ramek błędów, ale wcale).

Adresowanie i protokoły wysokiego poziomu

W CAN nie ma wyraźnego adresowania komunikatów i węzłów. Protokół CAN nigdzie nie określa, że ​​pole arbitrażu (pole identyfikacyjne + RTR) powinno być używane jako identyfikator komunikatu lub węzła. W ten sposób identyfikatory wiadomości i adresy węzłów mogą pojawić się w dowolnym polu wiadomości (polu arbitrażu, polu danych lub obu). Podobnie protokół nie zabrania korzystania z pola arbitrażowego do przesyłania danych.

Wykorzystanie pola arbitrażu i pola danych oraz dystrybucja adresów węzłów, identyfikatorów komunikatów i priorytetów w sieci jest przedmiotem tak zwanych protokołów wyższych warstw (HLP). Nazwa HLP odzwierciedla fakt, że protokół CAN opisuje tylko dwie niższe warstwy referencyjnego modelu sieci ISO/OSI, podczas gdy pozostałe warstwy są opisane przez protokoły HLP.

Ryż. 4. Logiczna struktura protokołu CAN.

Istnieje wiele takich wysokopoziomowych protokołów. Najczęstsze z nich to:

  • Sieć urządzeń
  • CAL/CANopen
  • CanKrólestwo

Warstwa fizyczna protokołu CAN

Warstwa fizyczna (warstwa fizyczna) protokołu CAN określa rezystancję kabla, poziom sygnałów elektrycznych w sieci itp. Istnieje kilka warstw fizycznych protokołu CAN (ISO 11898, ISO 11519, SAE J2411).

W zdecydowanej większości przypadków wykorzystywana jest warstwa fizyczna CAN zdefiniowana w normie ISO 11898. ISO 11898 definiuje dwuprzewodową linię różnicową o impedancji (terminatory) 120 omów jako medium transmisyjne (dopuszczalne są wahania impedancji w zakresie od 108 omów do 132 omów.Warstwa fizyczna CAN jest zaimplementowana w specjalnych układach - transceivery CAN (transceivery), które konwertują zwykłe poziomy sygnału TTL używane przez sterowniki CAN na poziomy sygnałów na magistrali CAN.Najpopularniejszym transceiverem CAN jest Phillips 82C250, który jest w pełni zgodny z normą ISO 11898.

Maksymalna prędkość sieci CAN zgodnie z protokołem wynosi 1 Mbit/s. Przy prędkości 1 Mbit/s maksymalna długość kabla wynosi około 40 metrów. Ograniczenie długości kabla związane jest ze skończoną prędkością światła oraz mechanizmem arbitrażu bit po bicie (podczas arbitrażu wszystkie węzły sieci muszą jednocześnie odbierać aktualny bit transmisji, sygnał musi mieć czas na rozchodzenie się kabel w jednej sieci liczyć czas, stosunek szybkości transmisji do maksymalnej długości kabla przedstawiony w tabeli:

Złącza dla sieci CAN nadal NIE SĄ NORMALIZOWANE. Każdy protokół wysokiego poziomu zwykle definiuje swój własny typ złączy dla sieci CAN.

W tym artykule nie opiszemy całkowicie protokołu CAN, ale zwrócimy uwagę tylko na rzeczy, które musisz wiedzieć i rozumieć, aby używać lub rozwijać urządzenia elektroniczne obsługujące CAN.

Protokół CAN został opracowany dla przemysłu motoryzacyjnego, a następnie stał się standardem w dziedzinie sieci pokładowych dla samochodów, transportu kolejowego itp. CAN umożliwia tworzenie sieci z zaawansowanymi narzędziami kontroli błędów, szybkościami transmisji do 1 Mb/s oraz pakietami zawierającymi nie więcej niż osiem bajtów danych.

Warstwy łącza i fizyczneMOGĄ

W protokole CAN nie ma ścisłej definicji warstwy fizycznej, więc do transmisji wiadomości można wykorzystać np. skrętkę lub światłowód. Zasadniczo CAN implementuje warstwę łącza, tj. wykonuje tworzenie pakietów wiadomości, ograniczając propagację błędów, potwierdzanie i arbitraż. Istnieją oczywiście wspólne standardy na poziomie aplikacji, takie jak CANopen, ale jeśli nie ma potrzeby zapewniania interakcji między urządzeniami różnych producentów, lepiej jest użyć protokołu wewnętrznego.

Struktura hostaMOGĄ

Rozważany węzeł sieci CAN składa się z mikrokontrolera, kontrolera CAN i nadajnika-odbiornika (rysunek 1). Najczęściej używamy mikrokontrolerów z wbudowanym kontrolerem CAN, aby uprościć obwód, ale czasami używany jest samodzielny kontroler CAN z interfejsem SPI (MCP2510). Następnie transceiver podłącza się do skrętki, na końcach której znajdują się rezystory terminujące (terminator) o rezystancji 120 omów.

Rysunek 1 - Węzeł sieci CAN

Aby utworzyć logiczną jedność w skrętce dwużyłowej lub wolnej szynie, do obu przewodów przykładane jest napięcie równe połowie różnicy napięć między 0 lub Vcc. Zero logiczne odpowiada doprowadzeniu napięcia różnicowego do przewodów linii (rysunek 2).




Rysunek 2 - Poziomy logiczne na magistrali CAN

Magistrala CAN umożliwia przesyłanie danych z prędkością 1 Mb/s przy długości kabla nie większej niż 40 m. W literaturze szkoleniowej jest napisane, że zmniejszając prędkość transmisji do 10 kb/s można osiągnąć długość sieci 1,5 km.

pakiet wiadomościMOGĄ

Format wiadomości CAN pokazano na rysunku 3.




Rysunek 3 - Pakiet wiadomości CAN

W rzeczywistości pakiet wiadomości jest tworzony przez kontroler CAN, a oprogramowanie aplikacji ustawia tylko identyfikator wiadomości, długość wiadomości i dostarcza bajty danych, więc nie będziemy w pełni uwzględniać pakietu, ale patrzymy na dane, które zmieniamy podczas pracy magistrala CAN.

Identyfikator wiadomości służy do identyfikacji danych wysyłanych w tym pakiecie. Każda wysłana wiadomość jest odbierana przez wszystkie węzły sieci iw tym przypadku identyfikator pozwala konkretnemu urządzeniu zrozumieć, czy konieczne jest przetworzenie tej wiadomości. Maksymalna długość wiadomości to 8 bajtów, ale można zmniejszyć tę wartość, aby zaoszczędzić przepustowość magistrali CAN. Na przykład poniżej w tekście znajduje się kilka zrzutów ekranu komunikatów CAN z sieci samochodowej.

Arbitraż w autobusieMOGĄ

Bez szczegółów, wiadomość o najmniejszym identyfikatorze jest zawsze przesyłana jako pierwsza przez magistralę CAN.

Ustawianie szybkości transmisji magistraliMOGĄ

Szybkość przesyłania danych w magistrali CAN jest regulowana przez tworzenie przedziałów czasu, a nie, jak w wielu innych protokołach szeregowego przesyłania danych, przez dzielnik szybkości. W większości przypadków używane są prędkości 10Kbps, 20Kbps, 50Kbps, 100Kbps, 125Kbps, 500Kbps, 800Kbps, 1MBaud, a ustawienia tych prędkości zostały już obliczone. Rysunek 4 przedstawia okno wyboru prędkości w PcanView.



Rysunek 4 — Wybór szybkości transmisji w programie PcanView

Jak widać, ustawiając standardową prędkość, ustawienia są dobierane automatycznie, ale zdarzają się sytuacje, w których konieczne jest zastosowanie innej szybkości transmisji danych. Na przykład pokładowa magistrala CAN pojazdu może działać z prędkością 83 Kb/s. W takim przypadku będziesz musiał samodzielnie obliczyć ustawienia lub poszukać specjalistycznego kalkulatora prędkości w Internecie. Aby niezależnie obliczyć prędkość, należy zrozumieć, że do przesłania jednego bitu wiadomości wykorzystuje się kilka kwantów, a interwał transmisji składa się z trzech segmentów (rysunek 5).




Rysunek 5 - Czas transmisji jednego bitu

Pierwszy segment jest zawsze stały i równa się jednemu kwantowi. Następnie są dwa segmenty Tseg1 i Tseg2, a liczba kwantów w każdym segmencie jest zdefiniowana przez użytkownika i może wynosić od 8 do 25. Punkt próbkowania znajduje się między Tseg1 i Tseg2, tj. na końcu pierwszego i na początku drugiego segmentu. Użytkownik może również zdefiniować szerokość skoku synchronizacji (Synchronization Jump Width - SJW) w celu dostosowania przepływności urządzenia odbiorczego, która może mieścić się w zakresie 1 - 4 przedziałów czasowych.

Teraz podajemy wzór na obliczenie prędkości (Przykład obliczenia prędkości dla sterownika CAN SJA1000):

BTR = Pclk/(BRP * (1 + Tseg1 + Tseg2))

BTR - szybkość transmisji danych,

Pclk – częstotliwość pracy sterownika CAN,

BRP - wartość preskalera częstotliwości generatora prędkości transmisji

Tseg1 - pierwszy segment

Tseg2 - Drugi segment

Aby to sprawdzić, weźmy już obliczoną prędkość 125Kbps i spróbujmy ręcznie wprowadzić ustawienia. PClk zajmuje 16 MHz.

BRP = 16 MHz /(125K * (1 + Tseg1 + Tseg2))

Następnie dobieramy bitowy interwał transmisji, który mieści się w zakresie od 8 do 25 przedziałów czasu, tak aby otrzymać całkowitą wartość BRP. W naszym przypadku, jeśli przyjmiemy (1 + Tseg1 + Tseg2) = 16, to BRP będzie równe 30.

SP = ((1 + Tseg1 + Tseg2) * 70)/100

Podstawiamy wartości i otrzymujemy 16 * 0,7 = 11,2, co odpowiada relacji Tseg1 = 10, Tseg2 = 5, tj. 1 + 10 + 5 = 16. Następnie patrzymy, czy Tseg2 >= 5, to SJW = 4, jeśli Tseg2< 5, то SJW = (Tseg2 – 1). В нашем случае SJW = 4.

W sumie, aby uzyskać prędkość 125Kbps należy określić w parametrach BRP = 30, Tseg1 = 10, Tseg2 = 5, SJW = 4.

PS Konfiguracja szybkości transmisji znacznie różni się między starymi modułami USB-CAN (GW-001 i GW-002) ze sterownikiem SJA1000 a nowymi modułami sysWORXX ze sterownikiem AT91SAM7A3. W artykule opisującym pracę z pokładowym CAN samochodu przy prędkości 83kbit/s podano wyliczenie prędkości dla sterownika AT91SAM7A3.


Przykład odbierania i przesyłania danych przezInterfejs CAN

W przykładzie użyjemy adaptera CAN z programem PcanView firmy SYSTEC i połączymy się z CAN wnętrza samochodu pracującym z prędkością 125Kbps. Rozważany przez nas samochód jest wyposażony w fotele elektryczne, dlatego przeanalizujemy dane odpowiedzialne za położenie siedzeń i spróbujemy zmienić położenie oparcia poprzez wymianę pakietu za pomocą komputera.

Na początek na schemacie samochodu znajdujemy najdogodniejsze złącze z liniami CANH i CANL i podłączamy do niego nasz adapter. Jeśli nie można znaleźć złącza i przewodów, możesz podczołgać się do sterownika siedzenia, znaleźć dwa skręcone ze sobą przewody i ostrożnie przeciąć przewody, aby podłączyć adapter. Jeżeli po podłączeniu i skonfigurowaniu adaptera komunikaty nie przychodzą to w pierwszej kolejności spróbuj między sobą zmienić CANH CANL i sprawdź czy zapłon jest włączony.
Następnie uruchom program PcanView, w oknie ustawień, które się otworzy, ustaw Baudrate = 125Kbps i kliknij OK (Rysunek 4). W kolejnym oknie ustaw Message filter = Standard, zakres adresów od 000 do 7FF i kliknij OK (Rysunek 6).



Rysunek 6 — Konfiguracja filtra CAN

Jeśli wszystko zostanie zrobione poprawnie, zobaczymy komunikaty z krzeseł (Rysunek 7) a po naciśnięciu przycisku odchylania oparcia na panelu sterowania zobaczymy kolejny komunikat z adresem 1F4 dochodzący z pilota do fotela (Rysunek 8).



Rysunek 7 — Komunikaty CAN z wózka elektrycznego


Rysunek 8 — Komunikaty CAN z wózka elektrycznego i komunikat z panelu sterowania do fotela

Teraz wiemy, jaki powinien być adres, długość i dane w pakiecie CAN, aby symulować naciśnięcie przycisku w celu zmiany tylnej pozycji. W zakładce Transmisja kliknij NOWY i w oknie, które się otworzy, utwórz kopię pakietu 1F4, tj. ID = 1F4, Długość = 3, Dane = 40 80 00. Okres można pozostawić na 0 ms, wtedy wiadomości będą wysyłane po naciśnięciu spacji (Rysunek 9).



Rysunek 9 - Tworzenie wiadomości CAN

Rysunek 10 przedstawia pole Transmisja okna głównego zawierające wszystkie wiadomości wysyłane do CAN oraz informacje o nich. Po podświetleniu komunikatu i naciśnięciu przycisku spacji pakiet zostanie wysłany do sieci CAN, a fotel przesunie się nieznacznie w żądanym kierunku.



Oczywiste jest, że w tym przypadku nie będzie możliwe osiągnięcie pełnej kontroli nad krzesłem, ponieważ. nie możemy wykluczyć z sieci fabrycznych pakietów zdalnego sterowania, ale ten problem jest dość do rozwiązania.

Wynik

Widzieliśmy, jak przy pewnych wysiłkach i umiejętnościach można tworzyć własne systemy elektroniczne za pomocą zaawansowanego technologicznie protokołu CAN i jak można łączyć, badać i sterować urządzeniami podłączonymi do motoryzacyjny CAN opona.