• Datové rozhraní CAN. CAN bus není jen pro auta. Úvod do CAN

    CAN Bus - Úvod

    Protokol CAN je norma ISO (ISO 11898) pro sériovou komunikaci. Protokol byl vyvinut s ohledem na použití v transportních aplikacích. Dnes se CAN rozšířil a používá se v systémech automatizace průmyslové výroby a také v dopravě.

    Standard CAN se skládá z fyzické vrstvy a datové vrstvy, která definuje několik různých typů zpráv, pravidla řešení konfliktů přístupu ke sběrnici a ochranu proti chybám.

    protokol CAN

    Protokol CAN je popsán v normě ISO 11898-1 a lze jej shrnout následovně:

    Fyzická vrstva využívá rozdílový přenos dat přes kroucenou dvojlinku;

    K řízení přístupu ke sběrnici se používá nedestruktivní bitové řešení konfliktů;

    Zprávy jsou malé (většinou 8 bajtů dat) a jsou chráněny kontrolním součtem;

    Zprávy nemají explicitní adresy, místo toho každá zpráva obsahuje číselnou hodnotu, která řídí její pořadí na sběrnici a může také sloužit jako identifikátor obsahu zprávy;

    Dobře promyšlené schéma zpracování chyb, které zajišťuje opětovné odeslání zpráv, pokud nebyly správně přijaty;
    jsou k dispozici účinné prostředky pro izolaci poruch a odstranění vadných uzlů ze sběrnice.

    Protokoly vyšší úrovně

    Sám protokol CAN pouze definuje, jak lze malé datové pakety bezpečně přesouvat z bodu A do bodu B prostřednictvím komunikačního média. Jak byste mohli očekávat, neříká nic o tom, jak ovládat tok; přenést velké množství dat, než se vejde do 8bajtové zprávy; ani o adresách uzlů; navázání spojení atd. Tyto body jsou definovány protokolem Higher Layer Protocol (HLP). Termín HLP pochází z modelu OSI a jeho sedmi vrstev.

    Protokoly vyšší úrovně se používají k:

    Standardizace spouštěcí procedury včetně volby datové rychlosti;

    Distribuce adres mezi interagujícími uzly nebo typy zpráv;

    definice označení zpráv;
    zajištění zpracování chyb na systémové úrovni.

    Skupiny uživatelů atd.

    Jedním z nejúčinnějších způsobů, jak zvýšit svou kompetenci CAN, je účastnit se práce v rámci stávajících skupin uživatelů. I když se neplánujete aktivně podílet na práci, uživatelské skupiny mohou být dobrý zdroj informace. Účast na konferencích je dalším dobrým způsobem, jak získat komplexní a přesné informace.

    Produkty CAN

    Na nízké úrovni se zásadně rozlišuje mezi dvěma typy produktů CAN dostupnými na volném trhu – čipy CAN a vývojovými nástroji CAN. Na vyšší úrovni jsou dalšími dvěma typy produktů moduly CAN a nástroje pro návrh CAN. V současné době je na volném trhu k dispozici široká škála těchto produktů.

    CAN patenty

    Patenty související s aplikacemi CAN mohou být různého typu: implementace časování a frekvencí, přenos velkých datových souborů (protokol CAN používá datové rámce dlouhé pouze 8 bajtů) atd.

    Distribuované řídicí systémy

    Protokol CAN je dobrým základem pro vývoj distribuovaných řídicích systémů. Metoda řešení konfliktů používaná CAN zajišťuje, že každý uzel CAN bude interagovat se zprávami, které jsou pro tento uzel relevantní.

    Distribuovaný řídicí systém lze popsat jako systém, jehož výpočetní výkon je rozdělen mezi všechny uzly systému. Opakem je systém s centrální procesorovou jednotkou a lokálními I/O body.

    Zprávy CAN

    Sběrnice CAN je vysílací sběrnice. To znamená, že všechny uzly mohou „naslouchat“ všem přenosům. Neexistuje způsob, jak odeslat zprávu konkrétnímu uzlu, všechny uzly bez výjimky obdrží všechny zprávy. Hardware CAN však poskytuje schopnost místního filtrování, takže každý modul může reagovat pouze na zprávu, která ho zajímá.

    CAN adresování zpráv

    CAN používá relativně krátké zprávy – maximální délka informačního pole je 94 bitů. Zprávy nemají explicitní adresu, lze je nazvat obsahově adresné: obsah zprávy implicitně (implicitně) určuje adresáta.

    Typy zpráv

    Na sběrnici CAN se přenášejí 4 typy zpráv (nebo rámců):

    Datový rámec (Data Frame);

    Vzdálený rám (Remote Frame);

    Chybový rám;

    Přetížení rámu.

    datový rámec

    Stručně: „Ahoj všichni, jsou tam data označená X, doufám, že se vám budou líbit!“
    Datový rámec je nejběžnějším typem zprávy. Obsahuje následující hlavní části (některé detaily jsou pro stručnost vynechány):

    Arbitration Field, které určuje pořadí zprávy, když dva nebo více uzlů soutěží o sběrnici. Arbitrážní pole obsahuje:

    V případě CAN 2.0A 11bitový identifikátor a jeden bit, bit RTR, který je definujícím datovým rámcem.

    V případě CAN 2.0B 29bitový identifikátor (který také obsahuje dva recesivní bity: SRR a IDE) a bit RTR.

    Datové pole, které obsahuje 0 až 8 bajtů dat.

    Pole CRC (CRC Field), obsahující 15bitový kontrolní součet vypočítaný pro většinu částí zprávy. Tento kontrolní součet se používá pro detekci chyb.

    Slot pro potvrzení. Každý řadič CAN schopný správně přijmout zprávu posílá na konci každé zprávy bit potvrzení. Transceiver zkontroluje přítomnost rozpoznávacího bitu a pokud žádný nenalezne, odešle zprávu znovu.

    Poznámka 1: Přítomnost rozpoznávacího bitu na sběrnici neznamená nic jiného, ​​než že každý plánovaný cíl přijal zprávu. Jediné, co je známo, je, že zpráva byla správně přijata jedním nebo více uzly sběrnice.

    Poznámka 2: Identifikátor v poli rozhodčího řízení, navzdory svému názvu, nemusí nutně identifikovat obsah zprávy.

    Datový rámec CAN 2.0B ("standardní CAN").

    Datový rámec CAN 2.0B ("rozšířený CAN").

    Vzdálený rám

    Stručně: "Ahoj všichni, může někdo vytvořit data označená X?"
    Smazaný rámec je velmi podobný datovému rámci, ale má dva důležité rozdíly:

    Je výslovně označen jako vymazaný rámec (bit RTR v rozhodčím poli je recesivní) a

    Chybí datové pole.

    Hlavním úkolem vzdáleného rámce je požádat o přenos správného datového rámce. Jestliže, řekněme, uzel A předává vzdálený rámec s parametrem rozhodčího pole 234, pak by uzel B, pokud je správně inicializován, měl také poslat zpět datový rámec s parametrem rozhodčího pole 234.

    Vzdálené rámce lze použít k implementaci řízení provozu sběrnice požadavek-odpověď. V praxi je ale vzdálený rám málo využívaný. To není tak důležité, protože norma CAN nepředepisuje přesně, jak je zde uvedeno. Většinu řadičů CAN lze naprogramovat tak, aby automaticky reagovaly na vzdálený rámec, nebo aby místo toho upozornily místní procesor.

    Vzdálený rámec má jeden trik: Kód délky dat musí být nastaven na délku očekávané zprávy s odpovědí. V opačném případě nebude řešení konfliktů fungovat.

    Někdy je vyžadováno, aby uzel reagující na vzdálený rámec zahájil svůj přenos, jakmile rozpozná identifikátor, a tak „vyplní“ prázdný vzdálený rámec. Tohle je jiný případ.

    Chyba rámu

    Krátce (společně, nahlas): "Ach, DRAHÁ, ZKUSME JEDNU JEDNU"
    Error Frame je speciální zpráva, která porušuje pravidla rámování zprávy CAN. Odesílá se, když uzel detekuje selhání, a pomáhá ostatním uzlům detekovat selhání – a také pošlou chybové rámce. Vysílač se automaticky pokusí odeslat zprávu znovu. Existuje dobře promyšlené schéma čítače chyb, které zajišťuje, že uzel nemůže narušit komunikaci sběrnice opakovaným odesíláním chybových rámců.

    Chybový rámec obsahuje Error Flag, který se skládá ze 6 bitů stejné hodnoty (čímž porušuje pravidlo naplnění bitů) a Error Delimiter, který se skládá z 8 recesivních bitů. Oddělovač chyb poskytuje určitý prostor, ve kterém mohou ostatní uzly sběrnice posílat své příznaky chyby poté, co samy detekují první příznak chyby.

    Přetížení rámu

    Krátce: "Jsem velmi zaneprázdněn 82526 malý, mohl bys chvilku počkat?"
    Rám přetížení je zde zmíněn pouze pro úplnost. Má velmi podobný formát jako chybový rámec a je přenášen obsazeným uzlem. Rám přetížení se používá zřídka, protože moderní řadiče CAN jsou dostatečně výkonné na to, aby je nepoužívaly. Ve skutečnosti je jediným řadičem, který bude generovat rámce přetížení, nyní zastaralý 82526.

    Standardní a rozšířené CAN

    Zpočátku standard CAN nastavil délku identifikátoru v rozhodčím poli na 11 bitů. Později byl na žádost kupujících standard rozšířen. Nový formát je často označován jako rozšířený CAN (Extended CAN) a umožňuje alespoň 29 bitů v identifikátoru. Vyhrazený bit v řídicím poli se používá k rozlišení mezi dvěma typy rámců.

    Formálně jsou standardy pojmenovány takto −

    2,0A - pouze s 11bitovými identifikátory;
    2.0B je rozšířená verze s 29bitovými nebo 11bitovými identifikátory (lze je kombinovat). Uzel 2.0B může být

    2,0B aktivní schopné vysílat a přijímat rozprostřené rámce, popř

    2.0B pasivní (pasivní), tzn. tiše zahodí přijaté rozšířené snímky (ale viz níže).

    1.x - odkazuje na původní specifikaci a její revize.

    V současné době jsou novější řadiče CAN obvykle typu 2.0B. Řadič typu 1.x nebo 2.0A bude zmatený při přijímání zpráv s 29 arbitrážními bity. Řadič pasivního typu 2.0B je přijme, rozpozná, zda jsou správné, a poté je zahodí; řadič aktivního typu 2.0B bude schopen takové zprávy vysílat i přijímat.

    Ovladače 2.0B a 2.0A (stejně jako 1.x) jsou kompatibilní. Můžete je použít všechny na stejné sběrnici, pokud se řadiče 2.0B zdrží odesílání rozložených snímků.

    Někdy lidé tvrdí, že standardní CAN je „lepší“ než rozšířené CAN, protože v rozšířených CAN zprávách je větší režie. Není tomu tak nutně. Pokud k přenosu dat používáte rozhodovací pole, může rozšířený rámec CAN obsahovat menší režii než standardní rámec CAN.

    Základní CAN (Basic CAN) a plný CAN (Full CAN)

    Pojmy Basic CAN a Full CAN pocházejí z "dětství" CAN. Kdysi dávno existoval řadič Intel 82526 CAN, který poskytoval programátorovi rozhraní ve stylu DPRAM. Pak přišel Philips s 82C200, který používal programovací model orientovaný na FIFO a omezené možnosti filtrování. Pro rozlišení mezi těmito dvěma programovacími modely lidé začali nazývat metodu Intel Full CAN a metodu Philips Basic CAN. Dnes většina regulátorů CAN podporuje oba programovací modely, takže nemá smysl používat termíny Full CAN a Basic CAN – ve skutečnosti mohou tyto termíny způsobit zmatek a je třeba se jim vyhnout.

    Ve skutečnosti může řadič Full CAN komunikovat s řadičem Basic CAN a naopak. Nejsou žádné problémy s kompatibilitou.

    Řešení konfliktů sběrnic a priorita zpráv

    Řešení konfliktu zpráv (proces, kterým dva nebo více řadičů CAN rozhodují o tom, kdo bude sběrnici používat) je velmi důležité při určování skutečné dostupnosti šířky pásma pro přenos dat.

    Jakýkoli řadič CAN může zahájit přenos, když zjistí, že sběrnice je nečinná. To může způsobit, že dva nebo více ovladačů začne vysílat zprávu (téměř) současně. Konflikt se řeší následovně. Vysílací uzly sledují sběrnici během odesílání zprávy. Pokud uzel detekuje dominantní úroveň, zatímco sám vysílá recesivní úroveň, okamžitě se stáhne z procesu řešení konfliktu a stane se příjemcem. Rozlišení kolize se provádí přes celé arbitrážní pole a po odeslání tohoto pole zůstane na sběrnici pouze jeden vysílač. Tento uzel bude pokračovat ve vysílání, pokud se nic nestane. Další potenciální vysílače se pokusí vyslat své zprávy později, až bude sběrnice volná. V procesu řešení konfliktu se neztrácí čas.

    Důležitou podmínkou pro úspěšné vyřešení konfliktu je nemožnost situace, kdy by dva uzly mohly přenášet stejné arbitrážní pole. Existuje jedna výjimka z tohoto pravidla: pokud zpráva neobsahuje žádná data, může tuto zprávu vysílat kterýkoli uzel.

    Vzhledem k tomu, že sběrnice CAN je drátová sběrnice AND a dominantní bit je logická 0, vyhraje řešení konfliktu zpráva s číselně nejnižším rozhodovacím polem.

    Otázka: Co se stane, když se jeden uzel sběrnice pokusí odeslat zprávu?

    Odpověď: Uzel v řešení konfliktu samozřejmě vyhraje a zprávu úspěšně přenese. Ale když přijde čas rozpoznání... žádný uzel nepošle dominantní bit oblasti rozpoznávání, takže vysílač detekuje chybu rozpoznávání, vyšle příznak chyby, zvýší počítadlo chyb přenosu o 8 a začne znovu vysílat. Tento cyklus se bude opakovat 16krát, poté vysílač přejde do pasivního chybového stavu. Podle zvláštního pravidla v algoritmu omezování chyb se hodnota čítače chyb přenosu již nebude zvyšovat, pokud má uzel pasivní chybový stav a chyba je chybou rozpoznání. Proto bude uzel vysílat navždy, dokud někdo zprávu nepozná.

    Adresování a identifikace zpráv

    Opět není nic špatného na tom, že zprávy CAN neobsahují přesné adresy. Každý řadič CAN přijme veškerý provoz sběrnice a pomocí kombinace hardwarových filtrů a softwaru určí, zda má o tuto zprávu „zájem“ či nikoli.

    Protokol CAN ve skutečnosti postrádá koncept adresy zprávy. Místo toho je obsah zprávy definován identifikátorem, který se nachází někde ve zprávě. Zprávy CAN lze nazvat "content-addressed".

    Konkrétní adresa funguje takto: "Toto je zpráva pro uzel X." Zpráva s adresou obsahu může být popsána jako: "Tato zpráva obsahuje data označená X." Rozdíl mezi těmito dvěma pojmy je malý, ale významný.

    Obsah arbitrážního pole slouží podle normy k určení pořadí zprávy na sběrnici. Všechny řadiče CAN budou také používat celé (některé pouze část) pole rozhodčího řízení jako klíč v procesu filtrování hardwaru.

    Norma neříká, že pole rozhodčího řízení musí být nutně použito jako identifikátor zprávy. Toto je však velmi častý případ použití.

    Poznámka k hodnotám identifikátorů

    Řekli jsme, že pro identifikátor je k dispozici 11 (CAN 2.0A) nebo 29 (CAN 2.0B) bitů. Není to tak úplně pravda. Kvůli kompatibilitě s určitým starým řadičem CAN (hádejte kterým?) by identifikátory neměly mít 7 nejvýznamnějších bitů nastavených na logickou jedničku, takže pro 11bitové identifikátory a uživatele 29- bitové identifikátory mohou používat 532676608 různých hodnot.

    Všimněte si, že všechny ostatní řadiče CAN akceptují „nesprávné“ identifikátory, takže identifikátory 2032..2047 lze v moderních systémech CAN používat bez omezení.

    CAN fyzické vrstvy

    sběrnice CAN

    Sběrnice CAN používá kód bez návratu na nulu (NRZ) s vyplněním bitů. Existují dva různé stavy signálu: dominantní (logická 0) a recesivní (logická 1). Odpovídají určitým elektrickým úrovním v závislosti na použité fyzické vrstvě (je jich několik). Moduly jsou zapojeny A do sběrnice: pokud alespoň jeden uzel uvede sběrnici do dominantního stavu, pak je v tomto stavu celá sběrnice bez ohledu na to, kolik uzlů přenáší recesivní stav.

    Různé fyzické úrovně

    Fyzická vrstva definuje elektrické úrovně a schéma signalizace sběrnice, impedanci kabelu atd.

    Existuje několik různých verzí fyzických vrstev: Nejběžnější je ta, kterou definuje standard CAN, součást ISO 11898-2, což je dvouvodičový symetrický signálový obvod. Někdy se mu také říká vysokorychlostní CAN.

    Jiná část téže normy ISO 11898-3 popisuje odlišné dvouvodičové schéma vyváženého signálu pro pomalejší sběrnici. Je odolný vůči poruchám, takže signalizace může pokračovat, i když je jeden z vodičů přerušen, zkratován k zemi nebo je ve stavu Vbat. Někdy se toto schéma nazývá nízkorychlostní CAN.

    SAE J2411 popisuje jednovodičovou (samozřejmě plus zemní) fyzickou vrstvu. Používá se především v automobilech - například GM-LAN.

    Existuje několik proprietárních fyzických vrstev.

    Za starých časů, kdy CAN ovladače neexistovaly, se používaly modifikace RS485.

    Různé fyzické úrovně se zpravidla nemohou vzájemně ovlivňovat. Některé kombinace mohou fungovat (nebo se zdá, že fungují) za dobrých podmínek. Například vysokorychlostní a nízkorychlostní transceivery mohou pouze příležitostně pracovat na stejné sběrnici.

    Drtivá většina čipů transceiveru CAN vyrábí společnost Philips; mezi další výrobce patří Bosch, Infineon, Siliconix a Unitrode.

    Nejběžnějším transceiverem je 82C250, který implementuje fyzickou vrstvu popsanou normou ISO 11898. Vylepšenou verzí je 82C251.

    Běžným nízkorychlostním CAN transceiverem je Philips TJA1054.

    Maximální přenosová rychlost sběrnice

    Maximální rychlost přenosu dat na sběrnici CAN, podle standardu, se rovná 1 Mbps. Některé řadiče CAN však podporují rychlosti nad 1 Mbps a lze je použít ve specializovaných aplikacích.

    Nízkorychlostní CAN (ISO 11898-3, viz výše) pracuje rychlostí až 125 kbps.

    Jednodrátová sběrnice CAN ve standardním režimu může přenášet data rychlostí asi 50 kbps a ve speciálním vysokorychlostním režimu, například pro programování ECU (ECU), asi 100 kbps.

    Minimální rychlost přenosu dat na sběrnici

    Uvědomte si, že některé transceivery vám neumožňují vybrat rychlost pod určitou hodnotu. Například pokud používáte 82C250 nebo 82C251, můžete bez problémů nastavit rychlost na 10 kbps, ale pokud používáte TJA1050, nebudete moci nastavit rychlost pod 50 kbps. Podívejte se na specifikaci.

    Maximální délka kabelu

    Při datové rychlosti 1 Mbps může být maximální délka použitého kabelu cca 40 metrů. To je způsobeno požadavkem schématu řešení konfliktů, že vlnoplocha signálu musí být schopna dosáhnout nejvzdálenějšího uzlu a vrátit se zpět před přečtením bitu. Jinými slovy, délka kabelu je omezena rychlostí světla. Návrhy na zvýšení rychlosti světla byly zvažovány, ale byly zamítnuty kvůli intergalaktickým problémům.

    Další maximální délky kabelů (hodnoty jsou přibližné):

    100 metrů při 500 kbps;

    200 metrů při 250 kbps;

    500 metrů při 125 kbps;
    6 kilometrů při 10 kbps.

    Při použití optočlenů pro galvanické oddělení se maximální délka sběrnice odpovídajícím způsobem zkrátí. Tip: použijte rychlé optočleny a podívejte se na zpoždění signálu v zařízení, nikoli na maximální přenosovou rychlost v datovém listu.

    Ukončení autobusu

    Sběrnice ISO 11898 CAN musí být zakončena terminátorem. Toho je dosaženo instalací 120 ohmového odporu na každý konec sběrnice. Ukončení má dva účely:

    1. Odstraňte odrazy signálu na konci sběrnice.

    2. Ujistěte se, že získává správné úrovně stejnosměrný proud(DC).

    Sběrnice ISO 11898 CAN musí být ukončena bez ohledu na její rychlost. Opakuji: sběrnice ISO 11898 CAN musí být ukončena bez ohledu na její rychlost. Pro laboratorní práci může stačit jeden terminátor. Pokud vaše CAN sběrnice funguje i při absenci terminátorů, máte prostě štěstí.

    Všimněte si toho jiné fyzické úrovně, jako je nízkorychlostní CAN, jednovodičový CAN a další, mohou nebo nemusí vyžadovat zakončení sběrnice. Ale vaše vysokorychlostní CAN sběrnice ISO 11898 bude vždy vyžadovat alespoň jeden terminátor.

    Kabel

    Norma ISO 11898 specifikuje, že charakteristická impedance kabelu by měla být nominálně 120 ohmů, ale je povolen rozsah impedance ohmů.

    Jen málo kabelů na dnešním trhu tyto požadavky splňuje. Existuje velká možnost, že rozsah hodnot odporu bude v budoucnu rozšířen.

    ISO 11898 popisuje kroucenou dvojlinku, stíněnou nebo nestíněnou. Probíhají práce na standardu jednožilového kabelu SAE J2411.

    Myšlenka CAN byla poprvé navržena v polovině 80. let německou společností Robert Bosch, která ji koncipovala jako nákladově efektivní prostředek pro integraci ovladačů umístěných uvnitř automobilu. Tradiční způsob připojení ovladačů rozmístěných po objektu kabelovými svazky se pro tak masový produkt, kterým je automobil, ukázal pro svou technickou náročnost, cenu a hmotnostní parametry jako nevhodný. Bylo požadováno alternativní řešení pro snížení počtu vodičů, proto byl navržen protokol CAN, pro který stačí jakýkoli pár vodičů.

    Cílem bylo vytvořit síťové řešení pro distribuované systémy v reálném čase. Zpočátku se CAN používal v automobilech, ale poté se jeho záběr rozšířil na problémy automatizace procesů.

    CAN poskytuje vysokou úroveň ochrany dat před poškozením i při provozu v obtížných podmínkách (silné rušení) při dosažení dostatečně vysoké rychlosti přenosu dat (až 1 Mbit/s). Důležitou výhodou CAN je také to, že projektant systému může ovlivnit prioritu zpráv tak, aby ty nejdůležitější z nich nečekaly ve frontě na odeslání. Tato vlastnost CAN vám umožňuje budovat sítě, které podporují reálný čas.

    Vysoký stupeň a spolehlivost sítě díky vyvinutým mechanismům pro detekci a opravu chyb, samoizolace vadných uzlů, necitlivost vůči vysokým úrovním elektromagnetického rušení poskytuje síti nejširší rozsah použití.

    Mezi četnými faktory, které zajistily nárůst popularity CAN v posledních letech, je třeba poznamenat rozmanitost základny prvků CAN a její levnost.

    Důležitou roli hraje také schopnost podporovat různé typy fyzických médií pro přenos dat – od levné kroucené dvoulinky až po optické vlákno a rádiový kanál. A řada originálních mechanismů síťové interakce (multi-master, broadcasting, bit-by-bit arbitration) v kombinaci s vysokou rychlostí přenosu dat (až 1 Mbps) přispívá k efektivní implementaci režimu reálného času v distribuovaných řídicí systémy.

    Topologie sítě CAN.

    V jakékoli implementaci CAN - nosič (fyzické médium přenosu dat) je interpretován jako éter, ve kterém ovladače fungují jako přijímače a vysílače. Současně po zahájení přenosu ovladač nepřerušuje poslech vzduchu, zejména sleduje a řídí proces přenosu aktuálních dat, která vysílá. To znamená, že všechny uzly v síti současně přijímají signály přenášené po sběrnici. Není možné odeslat zprávu žádnému konkrétnímu uzlu. Všechny síťové uzly přijímají veškerý provoz přenášený po sběrnici. Řadiče CAN však poskytují hardwarovou schopnost filtrovat zprávy CAN.

    Síť CAN je určena pro komunikaci tzv. uzlů. Každý uzel se skládá ze dvou komponent. Jedná se o samotný řadič CAN, který zajišťuje interakci se sítí a implementuje protokol, a mikroprocesor (CPU).

    Ovladače CAN jsou připojeny pomocí sběrnice, která má alespoň dva vodiče CAN_H a CAN_L, přes které jsou signály přenášeny pomocí specializovaných integrovaných obvodů transceiveru. Integrované obvody transceiveru navíc implementují další servisní funkce:

    • Úprava rychlosti přeběhu vstupního signálu změnou vstupního proudu.
    • Vestavěný proudový omezovací obvod chrání výstupy vysílače před poškozením při případném zkratu vedení CAN_H a CAN_L se silovými obvody a také před krátkodobým zvýšením napětí na těchto vedeních.
    • Vnitřní tepelná ochrana.
    • Režim nízké spotřeby, ve kterém přijímače nadále hlásí stav sběrnice do řadiče, takže když jsou na sběrnici detekovány informační signály, může transceivery uvést do normálního provozu.

    Nejpoužívanější jsou dva typy transceiverů (transceivery):

    • "Vysokorychlostní" transceivery (ISO 11898-2),
    • Transceivery "odolné vůči chybám".

    Transceivery vyrobené v souladu se standardem "High-Speed" (ISO11898-2) jsou nejjednodušší, nejlevnější a umožňují přenášet data rychlostí až 1 Mbps. "Fault-Tolerant" transceivery (necitlivé na poruchy sběrnice) vám umožňují vybudovat vysoce spolehlivou nízkoenergetickou síť s přenosovými rychlostmi dat ne vyššími než 125 kbps.

    Fyzická vrstva kanálu CAN.

    Fyzická vrstva (Physical Layer) protokolu CAN určuje odpor kabelu, úroveň elektrických signálů v síti atd. Existuje několik fyzických vrstev protokolu CAN (ISO 11898, ISO 11519, SAE J2411). V naprosté většině případů se využívá fyzická vrstva CAN definovaná v normě ISO 11898.

    ISO 11898 definuje jako přenosové médium dvouvodičové diferenciální vedení s impedancí (terminátory) 120 ohmů (impedance může kolísat mezi 108 ohmy a 132 ohmy.

    Maximální rychlost sítě CAN dle protokolu je 1 Mbit/s. Při rychlosti 1 Mbit/s je maximální délka kabelu přibližně 40 metrů. Omezení délky kabelu souvisí s konečnou rychlostí šíření signálu a mechanismem arbitráže bit po bitu (při arbitráži musí všechny síťové uzly přijímat aktuální přenosový bit současně, signál musí mít čas se šířit v celém kabelu v jediném síťovém čase.

    Vztah mezi přenosovou rychlostí a maximální délkou kabelu je uveden v tabulce: přenosová rychlost maximální délka sítě 1000 Kbps 40 metrů 500 Kbps 100 metrů 250 Kbps 200 metrů 125 Kbps 500 metrů 10 Kbps 6 kilometrů.

    Konektory pro síť CAN stále NENÍ STANDARDIZOVANÉ. Každý protokol na vysoké úrovni obvykle definuje svůj vlastní typ konektorů pro síť CAN.

    Logická nula je registrována, když je signál na lince CAN_H vyšší než na lince CAN_L.
    Logická jednička - v případě, kdy jsou signály CAN_HI a CAN_LO stejné (liší se méně než 0,5 V).
    Použití takového diferenciálního přenosového schématu umožňuje, aby síť CAN fungovala ve velmi obtížných podmínkách prostředí.
    Logická nula se nazývá dominantní bit a logická jednička se nazývá recesivní bit. Tyto názvy odrážejí prioritu logické jedničky a nuly na sběrnici CAN.

    Se současným přenosem do protokolu sběrnice. nula a jedna, na sběrnici bude registrována pouze logická nula (dominantní signál) a logická jednička bude potlačena (recesivní signál).

    Rozhodování sběrnice CAN.

    Rychlosti sítě CAN (až 1 Mbit/s) je dosaženo díky mechanismu nedestruktivní arbitráže sběrnice porovnáním bitů konkurenčních zpráv. Tito. pokud se stane, že více řadičů začne vysílat současně, tak každý z nich porovná bit, který se chystá poslat na sběrnici, s bitem, který se konkurenční řadič snaží poslat na sběrnici. Pokud jsou hodnoty těchto bitů stejné, oba řadiče se pokusí přenést další bit. A to se děje, dokud se hodnoty přenášených bitů nebudou lišit. Nyní bude řadič, který vysílal logickou nulu (signál s vyšší prioritou), pokračovat ve vysílání a druhý (jiný) řadič přeruší svůj přenos, dokud se sběrnice opět neuvolní. Samozřejmě, pokud je sběrnice aktuálně obsazená, pak řadič nezačne vysílat, dokud nebude volná.

    Tato specifikace CAN je založena na předpokladu, že všechny řadiče CAN přijímají signály ze sběrnice současně. Tito. současně stejný bit přijímají všechny řadiče v síti. Tento stav na jedné straně umožňuje arbitráž bit po bitu a na druhé straně omezuje délku sběrnice CAN. Signál se po sběrnici CAN šíří obrovskou, ale konečnou rychlostí a pro správné fungování CAN potřebuje, aby jej všechny ovladače „slyšely“ téměř současně. Téměř, protože každý řadič přijímá bit během určitého časového období, počítaného ze systémových hodin. Čím vyšší je tedy rychlost přenosu dat, tím kratší je možná délka sběrnice CAN.

    Struktura formátu přenosu dat.

    Data jsou odesílána přes síť CAN jako samostatné rámce ve standardním formátu. Nejdůležitějšími poli jsou pole identifikátoru a samotná data.

    Identifikátor slouží jako jedinečný název pro typ zprávy a určuje, kdo obdrží a jak bude interpretováno datové pole následující za ním. Čemu přesně (aritmeticky) se toto číslo rovná, v obecném případě nezáleží. Takové kontextové adresování má řadu výhod pro sítě malého rozsahu. Poskytuje největší možnou jednoduchost upgradu. Vzhledem k tomu, že decentralizované ovladače nejsou nijak logicky propojeny, přidání nového prvku do systému neovlivní chování všech ostatních.

    Zajímavější je použití identifikátorů jako hlavního nástroje používaného v postupu řešení kolizí. V CAN se priorita zprávy používá jako hlavní kritérium pro analýzu kolizí, aby se rozhodlo, komu dát vysílání. Zahájí-li vysílání více stanic současně a zároveň dojde ke kolizi, dojde k superpozici přenášených identifikátorů. Identifikátory se sekvenčně, bitově, počínaje nejstarším, překrývají na sebe a v jejich „konfrontaci“ vyhrává ten, kdo má nižší aritmetickou hodnotu identifikátoru, a tedy vyšší prioritu. Dominantní "nula" přepíše jedničky a v každém případě se na konci přenosu pole identifikátoru bude rovnat hodnotě vyšší priority. Systém tedy umožňuje na úrovni návrhu (a definice identifikátoru) jakékoli zprávě v systému předurčit její prioritu ve službě.

    Priorita zprávy je tedy určena hodnotou identifikátoru. Čím větší je priorita, tím menší je identifikátor. Ovladač zpravidla umožňuje nastavit pouze tato dvě pole. Zbývající pole slouží k přenosu specifických dat potřebných pro provoz CAN.

    rámové formáty.

    Data v CAN jsou přenášena v rámci krátkých zpráv standardního formátu. V CAN existují čtyři typy zpráv:

    • datový rámec
    • vzdálený rám
    • Chybový rámeček
    • Přetížení rámu

    datový rámec je nejběžněji používaný typ zprávy. Skládá se z následujících hlavních částí: Rozhodčí pole určuje prioritu zprávy v případě, že se dva nebo více uzlů současně pokusí odeslat data do sítě.

    Oblast rozhodčího řízení se střídavě skládá z:

    • pro standard CAN-2.0A, 11bitový identifikátor + 1bitový RTR (opakovaný přenos)
    • pro standard CAN-2.0B, 29bitový identifikátor + 1 bit RTR (opakovaný přenos)

    Je třeba znovu poznamenat, že pole identifikátoru, navzdory svému názvu, samo o sobě neidentifikuje ani uzel v síti, ani obsah datového pole.

    U datového rámce je bit RTR vždy nastaven na logickou nulu (dominantní signál). Datové pole (datové pole) obsahuje od 0 do 8 bajtů dat Pole CRC (pole CRC) obsahuje 15bitový kontrolní součet zprávy, který se používá k detekci chyb Potvrzovací slot (1 bit), každý CAN řadič, který je správně přijat zpráva posílá potvrzovací bit do sítě. Uzel, který zprávu odeslal, na tento bit naslouchá, a pokud potvrzení neobdrží, přenos zopakuje. V případě přijetí potvrzovacího slotu si vysílací uzel může být jistý pouze tím, že alespoň jeden z uzlů v síti správně přijal jeho zprávu.

    vzdálený rám je datový rámec bez datového pole a s nastaveným bitem RTR (1 - recesivní bity). Hlavním účelem vzdáleného rámce je iniciace jednoho z uzlů sítě přenosu do datové sítě jiným uzlem. Toto schéma umožňuje snížit celkový provoz v síti. Remote Frame se však dnes v praxi používá jen zřídka (například Remote Frame se v DeviceNet nepoužívá vůbec).

    Chybový rámeček je zpráva, která jasně porušuje formát zprávy CAN. Přenos takové zprávy způsobí, že všechny síťové uzly zaregistrují chybu formátu rámce CAN a následně automaticky přenesou chybový rámec do sítě. Výsledkem tohoto procesu je automatický retranslace dat do sítě vysílajícím uzlem. Error Frame se skládá z pole Error Flag, které se skládá ze 6 bitů stejné hodnoty (a tím Error frame porušuje kontrolu Bit Stuffing, viz níže) a z pole Error Delimiter, které se skládá z 8 recesivních bitů. Oddělovač chyb umožňuje ostatním síťovým uzlům odeslat do sítě vlastní příznak chyby, když detekují chybový rámec.

    Přetížení rámu- opakuje strukturu a logiku rámce Error s tím rozdílem, že jej využívá přetížený uzel, který v tuto chvíli nedokáže zpracovat příchozí zprávu, a proto žádá o retranslaci dat pomocí rámce Overload. V současné době se rám Overload prakticky nepoužívá.

    Mechanismus zpracování chyb.

    Spolehlivost sítě CAN je také určena mechanismy detekce chyb. Standard CAN definuje následující metody pro detekci chyb v síti CAN:

    • Zkontrolujte monitorování bitů
    • trochu nádivka
    • kontrola rámu
    • ACKznalosti Šek
    • Zkontrolujte CRC

    Zkontrolujte monitorování bitů- každý uzel při přenosu bitů do sítě porovnává hodnotu jím přenášeného bitu s hodnotou bitu, který se objeví na sběrnici. Pokud se tyto hodnoty neshodují, pak uzel vygeneruje Bit Error. Při arbitráži na sběrnici (předávání arbitrážního pole na sběrnici) je samozřejmě tento mechanismus kontroly chyb deaktivován.

    trochu nádivka- když uzel pošle 5 bitů se stejnou hodnotou postupně na sběrnici, přidá šestý bit s opačnou hodnotou. Přijímací uzly tento extra bit odstraní. Pokud uzel detekuje na sběrnici více než 5 po sobě jdoucích bitů se stejnou hodnotou, vygeneruje chybu Stuff Error.

    kontrola rámu- některé části zprávy CAN mají stejný význam ve všech typech zpráv. Tito. Protokol CAN přesně specifikuje, které úrovně napětí a kdy se mají na sběrnici objevit. Pokud dojde k porušení formátu zprávy, uzly vygenerují chybu formuláře.

    ACKkontrola znalostí- každý uzel po přijetí správné zprávy přes síť odešle do sítě dominantní (0) bit. Pokud se tak nestane, pak vysílací uzel zaprotokoluje chybu potvrzení.

    Kontrola CRC- každá CAN zpráva obsahuje součet CRC a každý přijímací uzel vypočítá hodnotu CRC pro každou přijatou zprávu. Pokud se vypočtená hodnota CRC součtu neshoduje s hodnotou CRC v těle zprávy, přijímající uzel vygeneruje chybu CRC.

    Každý uzel sítě CAN se během provozu snaží detekovat jednu z pěti možných chyb. Pokud je detekována chyba, uzel odešle do sítě Error Frame, čímž zničí veškerý aktuální síťový provoz (vysílání a přijímání aktuální zprávy). Všechny ostatní uzly detekují chybový rámec a provedou příslušnou akci (zahodí přijatou zprávu).

    Každý uzel navíc udržuje dva čítače chyb:

    • Počítadlo chyb přenosu(počítadlo chyb přenosu) a
    • Příjem počítadla chyb(počítadlo chyb příjmu).

    Tyto čítače se zvyšují nebo snižují podle několika pravidel. Samotná pravidla pro správu čítačů chyb jsou poměrně složitá, ale scvrkají se na jednoduchý princip, chyba přenosu způsobí zvýšení čítače chyb při přenosu o 8, chyba příjmu zvýší čítač chyb při příjmu o 1, jakýkoli správný přenos / příjem zpráva sníží odpovídající čítač o 1. Tato pravidla vedou k tomu, že čítač chyb vysílání vysílajícího uzlu roste rychleji než čítač chyb příjmu přijímacích uzlů. Toto pravidlo odpovídá předpokladu, že je vysoká pravděpodobnost, že zdrojem chyb je vysílací uzel.

    Každý uzel sítě CAN může být v jednom ze tří stavů. Když se uzel spustí, je ve stavu Error Active. Když alespoň jeden ze dvou čítačů chyb překročí limit 127, uzel přejde do stavu Error Passive. Když hodnota alespoň jednoho ze dvou čítačů překročí limit 255, uzel přejde do stavu Bus Off.

    Uzel ve stavu Error Active odesílá Active Error Flags do sítě, pokud je na sběrnici zjištěna chyba. Active Error Flags se skládá ze 6 dominantních bitů, takže je registrují všechny uzly.

    Uzel ve stavu Passive Error odešle do sítě příznaky Passive Error, když zjistí chybu v síti. Passive Error Flags se skládá ze 6 recesivních bitů, takže si to zbytek síťových uzlů nevšimne a Passive Error Flags vede pouze ke zvýšení čítače chyb uzlu.

    Uzel ve stavu Bus Off neposílá do sítě nic (nejen chybové rámce, ale vůbec žádné).

    Adresování a vysokoúrovňové protokoly

    Síťové služby Robert Bosch specifikace CAN 2.0A/B a mezinárodní norma ISO 11898 však často nestačí k efektivnímu rozvoji sítí CAN. Faktem je, že uvedené dokumenty popisují pouze dvě nejnižší úrovně referenčního (sedmiúrovňového) modelu propojení otevřených systémů OSI/ISO – fyzické a kanálové. Jsou definovány formáty zpráv, procesy přenosu dat o délce až 8 bajtů, mechanismy detekce chyb, některé fyzické parametry média pro přenos dat (pouze v ISO 11898) atd.
    Ale „za scénou“ zůstávají tak důležité momenty ve fázi vývoje, jako je adresování uzlů, distribuce identifikátorů CAN mezi nimi, interpretace obsahu datového rámce, přenos dat delších než 8 bajtů atd.

    V CAN neexistuje explicitní adresování zpráv a uzlů, zprávy nemají explicitní adresování příjemce. Zdroj umístí svůj identifikátor a data na sběrnici a přijímač samostatně na základě úkolů, které mají být řešeny, zpracovává přijatá data z daný zdroj nebo je ignorovat.
    Protokol CAN nikde neurčuje, že jako identifikátor zprávy nebo uzlu má být použito arbitrážní pole (Identification field + RTR). Identifikátory zpráv a adresy uzlů se tedy mohou objevit v libovolném poli zprávy (arbitrážní pole, datové pole nebo obojí).

    Na druhou stranu protokolový standard poskytuje možnost vzdáleného požadavku na data (RTR). Na rozdíl od předchozího popisu přijímač nečeká na potřebná data, ale vyžádá si data od požadovaného uzlu.

    Stejně tak protokol nezakazuje použití rozhodčího pole pro přenos dat.

    Standard CAN nereguluje, jak budou konkrétní aplikace přenášet data specifická pro ně přes síť CAN. Že. je potřeba použít nějaký protokol nejvyšší úrovně. Můžete přijít s vlastním protokolem, který by aplikacím umožnil jednoduše a pohodlně pracovat se sítí CAN, ale stěží se vyplatí vynakládat úsilí na to, pokud již existuje mnoho protokolů na vysoké úrovni založených na technologii CAN. Navíc se jedná o otevřené protokoly, tzn. můžete získat hotové specifikace a dokonce se jich zúčastnit další vývoj systémová data.

    S počátkem masové výroby CAN komponent a širokou distribucí CAN aplikací proto vznikla (a nadále pokračuje řada nezávislých firem a neziskových sdružení v oblasti systémů průmyslové automatizace, dopravy atd.). den) pracovat na vytvoření a standardizaci specifikací protokolu horní vrstvy HLP (Higher Level Protocol) pro sítě CAN.

    Využití rozhodčího pole a datového pole a distribuce adres uzlů, identifikátorů zpráv a priorit v síti je předmětem tzv. protokolů vyšší vrstvy (HLP).

    Název HLP odráží skutečnost, že protokol CAN popisuje pouze dvě spodní vrstvy reference síťový model ISO/OSI a další úrovně jsou popsány protokoly HLP.

    K dnešnímu dni jsou známy více než čtyři desítky CAN HLP. Mezi takovou rozmanitostí CAN HLP jsou nejrozšířenější, zejména v systémech průmyslové automatizace, čtyři podporované sdružením CiA, a to:

    • CAL/ CANopen,
    • může království,
    • DeviceNet a

    CAL/CANopen

    Vývoj a údržba protokolu otevřené aplikační vrstvy pro sítě průmyslové automatizace byl jedním z prioritních cílů pro vytvoření organizace CiA v roce 1992. Základem tohoto protokolu byl HLP vyvinutý společností Philips, načež pracovní skupina CiA zveřejnila v roce 1993 specifikaci CAL CAN Application Level (CiA DS 20x).

    Síťové aplikace CAN založené na aplikační vrstvě CAL v současnosti úspěšně fungují v lékařské elektronice, systémech řízení dopravy, dopravě a průmyslových zařízeních. Přidání CAL (přesněji některé její podmnožiny) o systém profilů (zařízení, rozhraní, aplikace atd.) a specifikace fyzické vrstvy (typy konektorů, pravidla pro kvantování bitů atd.) mělo za následek vznik tzv. „specifičtější“ standard protokolu CANopen . CANopen je v podstatě aplikace na aplikační vrstvě CAL. Původně byl CANopen určen pro řídicí sítě pohyblivých mechanismů v systémech průmyslové automatizace.
    Později však protokol našel uplatnění v lékařství, námořní elektronice, dopravě a systémech automatizace budov. CANopen je založen na dvou úrovních standardu CAN (ISO 11898, Bosch CAN Specification 2.0 A/B). Kromě specifikací fyzické vrstvy ISO 11898 (dvouvodičové diferenciální přenosové médium) má CANopen svá vlastní pravidla bitové kvantizace a definuje tři doporučené typy konektorů. Osazení pinů pro všechny typy konektorů poskytuje možnost napájení transceiverů uzlů s galvanickým oddělením. V síti CANopen je definováno osm stupňů rychlostí přenosu dat: 1 Mbps, 800 kbps, 500, 250, 125, 50, 20 a 10 kbps. Podpora 20 kbps je povinná pro všechny moduly.

    CAN království

    Protokol švédská společnost KVASER-AB (www.kvaser.se) zaujímá zvláštní místo mezi CAN HLP díky originálnímu konceptu networkingu a účinnosti aplikací CAN na něm založených.

    Začátku prací na první verzi (současné třetí) protokolu CAN Kingdom v roce 1990 předcházely mnohaleté zkušenosti v oblasti distribuovaných řídicích systémů. Protokol byl speciálně navržen pro ovládání pohyblivých strojů a mechanismů průmyslové roboty, textilní stroje, mobilní hydraulická zařízení a umožňuje dosáhnout vysoký výkon v reálném čase při splnění přísných bezpečnostních požadavků.

    CAN Kingdom je také základem amerického vojenského standardu CDA 101 a je široce používán ve vojenském vybavení od nafukovacích člunů a zaměřovacích systémů až po nadzvukové stíhačky a rakety. Hlavním cílem vytvoření protokolu bylo poskytnout vývojáři systému maximální volnost při realizaci jeho nápadů při budování sítě a zároveň zachovat možnost používat standardní moduly od výrobců třetích stran. CAN Kingdom není „hotový“ protokol v tom smyslu, jako je tomu například ve vztahu ke standardům jako CANopen nebo DeviceNet. Jde spíše o sadu primitiv metaprotokolů, pomocí kterých můžete „sestavit“ protokol pro konkrétní síť modulů. Tím je dosaženo jedinečné kombinace snadné integrace hotových modulů s vysokou mírou „blízkosti“ původního protokolu. Základním kamenem síťového konceptu CAN Kingdom je princip „Modules Serves the Network“ (MSN Modules Serves the Network), na rozdíl od principu „Network Serves the Users“ (NSM Network Serves the Modules), který je vlastní počítačovým sítím.

    Pro síť CAN Kingdom nejsou žádné doporučené rychlosti přenosu dat. Ale během prvních 200 ms po připojení napájení se uzel musí naladit, aby poslouchal sběrnici rychlostí 125 kbps. Jiné specifikace fyzické vrstvy než ISO 11898 jsou povoleny.

    DeviceNet

    Protokol DeviceNet vyvinutý a publikovaný v roce 1994 Allen-Bradley (www.ab.com) z Rockwell Corporation a následně převedený do sdružení ODVA (Open DeviceNet Vendor Association Inc., www.odva.org), speciálně organizovaného na jeho podporu.

    DeviceNet je levné, jednoduché a efektivní řešení pro připojení různých průmyslových automatizačních zařízení třetích stran do jediného systému: foto senzory, teplotní senzory, startéry, čtečky čárových kódů, prvky HMI klávesnice, zobrazovací panely, spolu s PLC ovládacími prvky, počítače, atd. e. Při vývoji protokolu bylo úkolem kromě snížení nákladů také zjednodušit a sjednotit diagnostiku podobná zařízení. První zařízení, která vyhovují specifikaci DeviceNet, byla uvedena na trh počátkem roku 1995. DeviceNet je také postaven na spodních dvou vrstvách standardu CAN, doplněný o podrobnější specifikace fyzických médií než ostatní HLP.

    Síť DeviceNet má topologii stub bus. Fyzickým přenosovým médiem je 4vodičový kabel (CAN_H, CAN_L, Vcc, Ground) a jsou možné dva typy: silný (vnější průměr 12,2 mm) a tenký (6,9 mm). Byly definovány pouze tři datové rychlosti, 125, 250 a 500 kbps.

    Důležitou vlastností sítě DeviceNet je možnost napájet moduly přímo ze síťového kabelu (24 V, až 8 A na silném kabelu) a také je možné použít více zdrojů na libovolném místě sběrnice. To vše umožňuje stavět offline síť, který nezávisí na dostupnosti nebo kvalitě externího napájení a v případě potřeby vám umožní snadno demontovat a znovu nasadit systém na novém místě.

    Síť DeviceNet umožňuje „horké“ (bez ztráty napájení) připojování a odpojování modulů. Standard DeviceNet dále obsahuje podrobný popis četných typů adaptérů, rozbočovačů (jedno i víceportových), konektorů (Mini, Micro), síťových odbočovačů atd. Při popisu organizace datových typů se síťové chování modulů v DeviceNet, objekt je použit orientovaný model.

    Maximální počet uzlů v síti DeviceNet je 64.

    SDS (Inteligentní distribuovaný systém)

    SDS vyvinutý společností Honeywell Inc. (Micro Switch Division, www.honeywell.sensing.com). Spolu se standardem DeviceNet je SDS dalším levným a kompletním řešením pro síťové řízení inteligentních senzorů a aktuátorů z centrálního ovladače (PLC, počítač) v systémech průmyslové automatizace. Pokud jde o úplnost od specifikací fyzického média až po aplikační vrstvu, se zaměřením na snížení nákladů, standard SDS připomíná DeviceNet. Topologie sběrnice je lineární sběrnice (páteřní nebo hlavní) s krátkými odbočkami.

    Dva základní typ kabeláž:

    • Mini (používá se při montáži síťového kmene) 4žilový kabel s maximální proudovou kapacitou 8 A, 5pinový konektor a
    • Micro (pro připojení fyzická zařízení síť) 4-žilový kabel, 3 A, 4-pinový konektor bez individuální kontakt pro stínění kabelu.

    V síti SDS je povoleno i klasické zapojení pomocí otevřených koncových konektorů. Všechny typy kabeláže a konektorů, stejně jako v síti DeviceNet, zajišťují napájecí napětí uzlů.

    Síť SDS vždy vyžaduje jednoho hlavního správce sítě alespoň během fáze spouštění, aby provedl automatické ladění přenosových rychlostí modulů. Během síťového provozu je povoleno mít na sběrnici několik masterů, ale musí pracovat v rámci svých adresních domén, a když je síť zapnutá, pouze jeden z nich může převzít funkci správce sítě pro automatické ladění rychlost zařízení.

    Síťové rozhraní CAN (Controller Area Network) bylo vyvinuto v roce 1987. (verze 1.0) od společností BOSCH a INTEL k vytváření integrovaných víceprocesorových systémů v reálném čase. Nejnovější specifikace rozhraní 2.0, vyvinutá společností BOSCH v roce 1992, je doplňkem předchozí verze. ISO 11898 (pro vysokorychlostní aplikace) a ISO 11519-2 (pro nízkorychlostní aplikace) jsou registrovány u Mezinárodní organizace pro normalizaci.

    Princip činnosti

    CAN je vysoce integrované síťové rozhraní pro přenos dat rychlostí až 1 Mbps. Zařízení v systému CAN jsou připojena přes sběrnici sestávající ze 3 vodičů (2 signálové a jeden společný) (viz obrázek).

    Datové zprávy přenášené z libovolného uzlu na sběrnici CAN mohou obsahovat 1 až 8 bajtů. Každá zpráva je označena identifikátorem, který je v síti jedinečný (například: "Tope do 240", "Chyba topení", "Násypka načtena" atd.). Při přenosu zprávu přijímají ostatní uzly v síti a každý z nich zkontroluje identifikátor. Pokud se zpráva vztahuje k tomuto uzlu, je zpracována, jinak je ignorována. CAN řadič každého zařízení může zpracovávat několik identifikátorů současně (např. řadiče SIEMENS a INTEL mohou zpracovat až 15). V každém ze zařízení tak můžete snadno uspořádat několik "virtuálních" kanálů pro výměnu informací s různými zařízeními, včetně kanálů pro současný příjem zpráv.

    Rýže. 1. Připojení zařízení přes sběrnici CAN

    Identifikátory

    Identifikátor určuje typ a prioritu zprávy. Nižší číselná hodnota ID odpovídá hodnotě s vyšší prioritou. Zpráva s vyšší prioritou je přenesena před zprávou s nižší prioritou. Po zprávě s vysokou prioritou je odeslána zpráva s nižší prioritou, pokud se během přenosu neobjeví zpráva s vyšší prioritou, je odeslána zpráva s nižší prioritou atd.

    Fyzická sběrnice

    Skládá se z krouceného páru (stíněného nebo nestíněného) a společného vodiče. Plochý pár (kabel typu telefon) také funguje dobře, ale je citlivější na vnější zdroje šumu.

    Vysoká spolehlivost

    Poskytnout doba provozuschopnosti v náročných prostředích podle normy ISO11898 zajišťuje řadič CAN síťový provoz v následujících případech:

    • některý ze 3 vodičů v autobuse je přerušený,
    • jakýkoli vodič je zkratovaný k napájení,
    • jakýkoli vodič je zkratován na společný.

    Při přerušení 2 vodičů lze část funkcí hlavního systému implementovat do každého z podsystémů vytvořených přerušením.

    Flexibilita sítě a snadné rozšíření

    Schéma předávání zpráv přijaté v síti CAN poskytuje skvělé příležitosti pro vytváření, rozšiřování a modernizaci systémů.

    Nová zařízení určená pro příjem dat lze do sítě přidávat bez změny stávajícího softwaru, pokud jejich připojení nepřekročí zatížitelnost a maximální délku sběrnice. Zároveň nové síťová zařízení schopné vyměňovat si informace mezi sebou bez narušení starého systému, pokud byly ve výměnném protokolu použity nové identifikátory.

    V síti CAN je možné současně odesílat zprávy na více zařízení najednou. Tato funkce umožňuje přes něj přenášet hodinové signály.

    Rozhodování sběrnice CAN

    V každém systému se některé parametry mění rychleji než jiné. Například rychlost rotoru motoru se typicky mění za kratší dobu, než je jeho tělesná teplota nebo poloha tlumiče. Rychle se měnící parametry musí být přenášeny častěji, a proto vyžadují vyšší prioritu. Během provozu se také mohou vyskytnout alarmy, které by měly být přenášeny s nejvyšší prioritou (např. přehřátí, rozbitý ovládací elektromagnet, zkrat atd.).

    Uzly sítě CAN jsou ve výměně rovnocenné a každý z nich může mít kdykoli zprávu, která vyžaduje okamžitý přenos. Pravděpodobnost současných požadavků na přenos z různých zařízení není neobvyklá, ale stává se to pravidelně. K vyřešení takového konfliktu je vyžadován mechanismus rychlého řazení zpráv. K tomu využívá systém CAN Nedestruktivní bitová arbitráž.

    Priorita zprávy CAN je určena binární hodnotou jejího identifikátoru.

    Číselná hodnota každého identifikátoru zprávy je přiřazena v počáteční fázi návrhu systému. Identifikátor s nejnižší číselnou hodnotou identifikátoru má nejvyšší prioritu. Přenos logické nuly po sběrnici CAN se provádí aktuální zprávou a stav logické jedničky je určen nepřítomností proudu. V procesu přenosu začne každý ze zdrojů zpráv, které je třeba přenést, vysílat svůj identifikátor a současně jej kontrolovat na lince. Pokud je během vysílání detekována neshoda (tj. nula "navíc"), pak vysílač, který tuto neshodu detekuje, přestane vysílat svůj identifikátor a přepne na příjem. Na sběrnici není žádný spor, protože hodnota bitu logické jedna se ve skutečnosti nepřenáší a v důsledku toho zpráva s nejvyšší prioritou prochází sběrnicí, jako by byla jediná. Při dalším cyklu sběrnice bude odeslána zpráva s nižší prioritou atd. Tím je dosaženo maximální propustnosti sběrnice a minimální latence pro „horké“ zprávy.

    Rýže. 2. Připojení zařízení přes sběrnici CAN

    Detekce chyb

    CAN obsahuje 5-stupňový mechanismus detekce chyb:

    • cyklická kontrola redundance (CRC),
    • ovládání přenášeného bitového pole,
    • ovládání signálu "Potvrzení příjmu",
    • aktuální kontrola logické úrovně bitů,
    • ovládání náplně bitů.

    Kontrola cyklické redundance (CRC)

    Každá přenášená zpráva obsahuje řídicí kód (CRC) vypočítaný vysílačem na základě obsahu přenášené zprávy. Přijímací uzly provedou podobnou operaci, označí zjištěné chyby a nastaví příslušné příznaky.

    Aktuální řízení logické úrovně bitů

    Jakýkoli vysílač automaticky sleduje a porovnává skutečnou logickou úroveň bitů na sběrnici s úrovní, kterou vysílá. Pokud se úrovně neshodují, je označena logická chyba úrovně bitů.

    (Poznámka: Tento mechanismus se také používá v arbitráži sběrnice k určení priority zprávy, ale to přirozeně nevede k chybě.)

    Řízení přenášeného bitového pole

    V rámci CAN zprávy jsou přenášeny předdefinované bitové kombinace, které jsou řízeny při příjmu. Pokud přijímač detekuje neplatný bit v jedné z těchto kombinací, nastaví se příznak chyby formátu.

    Ovládání náplně

    CAN používá techniku ​​výplňového bitu k dalšímu řízení odesílaných zpráv. Po vyslání pěti po sobě jdoucích bitů se stejnou úrovní vysílač automaticky vloží do bitového toku bity opačné hodnoty. Přijímače zpráv tyto bity před zpracováním zprávy automaticky odstraní. Pokud je detekován šestý bit stejné polarity, je označena chyba vyplnění bitu.

    Ovládání signálu "Acknowledgement"

    Každá odeslaná zpráva je potvrzena příjemcem, a pokud ne, pak je nastaven příznak chyby potvrzení.

    Příznak chyby

    Pokud je zjištěna chyba, uzel, který chybu detekoval, přeruší přenos odesláním příznaku chyby. V tomto případě vysílač automaticky znovu inicializuje přenos zprávy, což zabrání chybám všech uzlů a zajistí konzistenci dat v síti.

    S přihlédnutím k činnosti všech kontrolních mechanismů je skutečná hodnota výskytu nezjištěné chyby v systému CAN 10-11 .

    Formát zprávy CAN

    Standardní protokol CAN (verze 2.0A) podporuje formát zpráv s 11bitovými identifikátory (Standard Message).

    Protokol Extended CAN (verze 2.0B) podporuje 11bitové a 29bitové formáty identifikátorů (Extended Message).

    Většina řadičů verze 2.0A pouze vysílá a přijímá zprávy ve standardním formátu, ačkoli některé z nich mohou přijímat pouze zprávy v rozšířeném formátu.

    Kontroléry verze 2.0B mohou odesílat a přijímat zprávy v obou formátech.

    Rozdíly ve formátu

    Ve verzi 2.0B se bitové pole identifikátoru skládá ze dvou částí.

    první díl(tělo identifikátoru) je jedenáct bitů dlouhé pro kompatibilitu s verzí 2.0A, Druhá část- osmnáct bitů (rozšíření identifikátoru), což dává celkovou délku identifikátoru dvacet devět bitů.

    Formáty se liší podle bitů IDE (Identifier Extension) a SRR (Substitute Remote Request) v Arbitration Field.

    Správce

    Potřeba sériového zapojení v automobilech

    Toto je náš další přeložený článek z cyklu věnovaného sběrnici CAN, který trochu podrobněji prozrazuje, jak je sběrnice CAN uspořádána a funguje. Anglický originál.

    Mnoho automobilů má již velké množství elektronických řídicích systémů. Růst automobilové elektroniky je částečně výsledkem touhy spotřebitelů po větší bezpečnosti a pohodlí a částečně vládních požadavků na lepší kontrolu emisí a nižší spotřebu paliva. Ovládací prvky, které splňují tyto požadavky, se již nějakou dobu používají v oblastech ovládání motoru, převodovky a škrticí klapky, jakož i v protiblokovacích brzdových systémech (ABS) a řízení zrychlení (ASC) .

    Složitost funkcí implementovaných v těchto systémech vyžaduje výměnu dat mezi nimi. Tradiční systémy komunikují pomocí vyhrazených signálových linek, ale to je stále obtížnější a dražší, protože řídicí funkce se stávají složitějšími. Zejména v případě komplexních řídicích systémů (jako je Motronic) již nelze zvýšit počet připojení.

    Kromě toho se vyvíjí řada systémů, které implementují funkce pokrývající více než jedno ovládací zařízení. Například ASC vyžaduje interakci systému řízení motoru a ovládání škrticí klapky (vstřikování), aby se snížil točivý moment, když hnací kolo prokluzuje. Dalším příkladem funkcí zahrnujících více než jednu řídicí jednotku je elektronické ovládání převodovky, kde lze snadnost řazení zlepšit krátkým nastavením časování zapalování.

    Pokud uvažujeme i budoucí vývoj směřující k celkové optimalizaci vozidel, pak je nutné překonat omezení, která existují v souvislosti s klasickými ovládacími zařízeními. To lze provést pouze síťovým propojením systémových komponent pomocí sériové datové sběrnice. Bosch pro tento účel vyvinul systém „Controller Area Network“ (CAN), který byl od té doby mezinárodně standardizován (ISO 11898) a byl „odlit do kamene (v křemíku)“ několika výrobci polovodičů.

    Pomocí CAN jsou peer-to-peer (jednoúrovňové) stanice (řadiče, senzory a akční členy) připojeny přes sériovou sběrnici. Samotná sběrnice je symetrický nebo asymetrický dvouvodičový obvod, který může být stíněný nebo nestíněný. Elektrické parametry fyzický přenos je také specifikován v normě ISO 11898. Vhodné čipy ovladače sběrnice jsou k dispozici od široké řady výrobců.

    Protokol CAN, který odpovídá vrstvě datového spojení v referenčním modelu ISO/OSI, splňuje automobilové požadavky pro současné aplikace vozidel. Na rozdíl od struktur kabelového stromu síťový protokol detekuje a opravuje chyby přenosu způsobené elektromagnetickým rušením. Dalšími výhodami takové sítě je snadná konfigurace celého systému a možnost centrální diagnostiky.

    Účelem použití CAN ve vozidlech je umožnit jakékoli stanici komunikovat s kteroukoli jinou, aniž by byl řídicí počítač příliš zatěžován.

    Použití sítě CAN v automobilech

    Existují čtyři hlavní aplikace pro sériovou komunikaci ve vozidlech, z nichž každá má jiné požadavky a účely.

    Síťové ovladače pro synchronizaci motoru, převodovky, podvozku a brzd. Rychlosti přenosu dat se pohybují v rozmezí – typickém pro systémy reálného času – od 200 kbps do 1 Mbps.
    Síťové komponenty obecná elektronika a elektronika podvozku, díky kterým je vůz pohodlnější. Příklady takových multiplexních aplikací jsou ovládání osvětlení, klimatizace a centrálního zamykání a nastavení sedadel a zrcátek. Zde je třeba věnovat zvláštní pozornost nákladům na komponenty a požadavkům na kabeláž. Typická rychlost přenosu dat je kolem 50 kbps.
    V blízké budoucnosti se sériové komunikace uplatní i v oblasti mobilních komunikací pro propojení komponentů, jako jsou autorádia, autotelefony, navigační pomůcky atd., k centrálnímu, ergonomičtějšímu ovládacímu panelu. Funkce definované v projektu Prometheus, jako je komunikace mezi vozidly, budou do značné míry záviset na sériové komunikaci.
    V současné době se CAN používá pro první tři aplikace, ale pro diagnostiku je preferovaným řešením rozhraní podle ISO 9141.

    Průmyslové aplikace sítě CAN

    Porovnání požadavků na sběrnicové systémy vozidel a průmyslové sběrnicové systémy odhaluje pozoruhodné podobnosti: nízká cena, výkon v drsných elektrických prostředích, vysoká schopnost v reálném čase a snadné použití jsou stejně žádoucí v obou sektorech.

    Standardní použití CAN v Mercedes-Benz "S-Class" a přijetí CAN americkými komerčními výrobci automobilů pro rychlý přenos (až 1 Mbit/s) přimělo průmyslové uživatele nastražit uši. CAN si zvolili nejen výrobci mobilních a stacionárních zemědělských a námořních strojů a zařízení, ale také výběr výrobců zdravotnické techniky, textilních strojů, ale i speciální techniky a ovládání výtahů. Systém sériové sběrnice je zvláště vhodný pro síťově propojená "chytrá" I/O zařízení, stejně jako senzory a akční členy v rámci stroje nebo závodu.

    Průmysl textilních strojů je jedním z průkopníků CAN. Jeden výrobce vybavil své tkalcovské stavy modulárními řídicími systémy komunikujícími v reálném čase prostřednictvím sítí CAN již v roce 1990. Mezitím se několik výrobců textilních strojů sloučilo do „CAN Textile Users Group“, která je zase členem mezinárodní skupiny uživatelů a výrobců „CAN in Automation“. Podobné požadavky jsou kladeny na textilní stroje v balicích strojích a na stroje na výrobu a zpracování papíru.

    V USA řada podniků využívá CAN ve výrobních linkách a obráběcích strojích as vnitřní systém pneumatiky pro síťové senzory a akční členy uvnitř linky nebo přímo na stroji. Někteří uživatelé, jako například odvětví lékařského inženýrství, se rozhodli pro CAN, protože měli obzvláště přísné bezpečnostní požadavky. S podobnými problémy se potýkají i další výrobci strojů a zařízení se speciálními požadavky na bezpečnost (např. roboti a dopravní systémy).

    Kromě vysoké spolehlivosti přenosu jsou pro CAN dalším rozhodujícím argumentem nízké náklady na připojení na stanici. V aplikacích, kde je rozhodující cena, je nezbytné, aby čipy CAN byly dostupné od různých výrobců. Kompaktnost ostatních čipů regulátorů je také důležitým hlediskem, například v oblasti rozváděčů nízkého napětí.

    Jak fungují sítě CAN

    Principy výměny dat

    Když jsou data přenášena přes CAN, nejsou adresovány žádné stanice, ale místo toho je obsah zprávy (např. otáčky motoru nebo teplota) identifikován identifikátorem, který je v celé síti jedinečný. Identifikátor určuje nejen obsah, ale také prioritu zprávy. To je důležité pro přidělování sběrnic, když o přístup na sběrnici soutěží více stanic. Pokud CPU dané stanice chce poslat zprávu jedné nebo více stanicím, odešle data a jejich identifikátory na přidělený CAN čip (stav Ready). To je vše, co musí CPU udělat, aby zahájil komunikaci. Zpráva je tvořena a přenášena pomocí čipu CAN. Jakmile CAN čip obdrží přidělení sběrnice (stav "Send Message"), všechny ostatní stanice v CAN síti se stanou příjemci této zprávy (stav "Receive Message"). Každá stanice v síti CAN po správném přijetí zprávy provede akceptační test (test příjmu), aby zjistil, zda se přijatá data vztahují k této stanici (stav "Vybrat"). Pokud jsou data relevantní pro příslušnou stanici, jsou zpracována (stav "Přijato"), jinak jsou ignorována. Vysokého stupně flexibility systému a konfigurace je dosaženo prostřednictvím schématu adresování orientovaného na obsah. Je velmi snadné přidat stanice stávající síť CAN bez provádění jakýchkoli změn v hardwaru nebo softwaru pro stávající stanice za předpokladu, že nové stanice jsou čisté přijímače. Vzhledem k tomu, že komunikační protokol nevyžaduje fyzické cílové adresy pro jednotlivé komponenty, podporuje koncepci modulární elektroniky a také umožňuje vícenásobný příjem (broadcast, multicast) a synchronizaci distribuovaných procesů: měření požadovaná jako informace několika řídicími jednotkami lze přenášet přes síť takovým způsobem, že každý regulátor nemusí mít vlastní senzor.



    1. Přenos vysílání a filtrování vstupu podle uzlů CAN, aby se zjistilo, zda jsou data vhodná pro konkrétní uzel

    Nedestruktivní bitová kontrola:

    Aby mohla být data zpracovávána v reálném čase, musí být přenášena rychle. To vyžaduje nejen fyzické datové spojení s rychlostí až 1 Mbps, ale také rychlé přidělování sběrnice, když chce více stanic posílat zprávy současně.



    2. Princip nedestruktivní bitové verifikace (vyhodnocení, čtení)

    V reálném čase se naléhavost (zařazení do fronty) síťových zpráv může značně lišit: rychle se měnící velikost (např. zatížení motoru) musí být přenášena častěji, a proto s kratším zpožděním než jiná měření (např. teplota motoru), která se mění relativně k pomalu. Priorita, se kterou je zpráva přenášena přes jinou méně naléhavou zprávu, je určena identifikátorem odpovídající zprávy. Priority jsou nastaveny při návrhu systému jako odpovídající binární hodnoty a nelze je dynamicky měnit. Nejvyšší prioritu má identifikátor s nejmenším binárním číslem.

    Konflikty přístupu ke sběrnici se řeší bit po bitu kontrolou každé z účastnických stanic přijímaných identifikátorů sledováním (čtením) úrovně sběrnice bit po bitu. Podle mechanismu „drátovaného a“, kterým dominantní stav (logická 0) přepisuje recesivní stav (logická 1), prohrávají spor o přidělení sběrnice všechny tyto stanice s recesivním vysíláním a dominantním sledováním (čekejte na příjem 0). Všichni "poražení" se automaticky stávají příjemci zprávy s nejvyšší prioritou a nevysílají znovu, dokud není sběrnice opět dostupná.

    Účinnost distribuce pneumatik:

    Efektivita sběrnicového distribučního systému je určena především možným použitím sériové sběrnice pro tento systém. Aby bylo možné posoudit, které sběrnicové systémy jsou vhodné pro jaké aplikace, literatura zahrnuje metodu klasifikace procedur přidělování sběrnic. Obvykle rozlišujeme tyto třídy:

    Distribuce podle pevného harmonogramu. Přidělování se provádí postupně každému účastníkovi na maximální dobu, bez ohledu na to, zda tento účastník sběrnici v daný okamžik potřebuje nebo ne (příklady: přenos tokenu nebo tokenu).
    Přidělování pneumatik podle potřeby. Sběrnice je přiřazena jednomu členovi na základě nevyřízených požadavků na přenos, to znamená, že alokační systém bere v úvahu pouze účastníky ochotné k přenosu (příklady: CSMA, CSMA/CD, kontrolní let, smyčka nebo kontrola bitů). Pro CAN je přidělení sběrnice vyjednáváno výhradně mezi zprávami čekajícími na přenos. To znamená, že postup definovaný CAN je klasifikován jako přidělení na základě potřeby.

    Dalším prostředkem hodnocení účinnosti systémů kontroly (hodnocení) pneumatik je metoda přístupu k autobusu:

    Nedestruktivní autobusový přístup. U metod tohoto typu je sběrnice přiřazena jedné a pouze jedné stanici, a to buď okamžitě, nebo v určitém čase po jednom přístupu na sběrnici (jednou nebo více stanicemi). Tím je zajištěno, že každý přístup ke sběrnici jednou nebo více stanicemi vede k jedinečné alokaci sběrnice (příklady: umístění tokenu, přenos tokenu, smyčkování, kontrola bitů.
    Destruktivní distribuce pneumatik. Současný přístup ke sběrnici více než jednou stanicí má za následek přerušení všech pokusů o přenos, a proto nedochází k úspěšnému přidělení sběrnice. Přidělení sběrnice může vyžadovat více než jeden přístup na sběrnici, počet pokusů před úspěšným přidělením sběrnice je čistě statistická hodnota (příklady: CSMA/CD, Ethernet). Aby bylo možné zpracovat všechny požadavky na přenos sítě CAN při respektování limitů latence při co nejnižší přenosové rychlosti, musí protokol CAN implementovat metodu přidělování sběrnice, která zajistí, že vždy dojde k jednoznačnému přidělení sběrnice, i když existují současné přístupy na sběrnici z různých stanic.

    Metoda kontroly bit po bitu s použitím identifikátoru přenášených zpráv jednoznačně řeší případnou kolizi mezi více stanicemi, které chtějí vysílat, a to nejpozději do 13 (standardní formát) nebo 33 (rozšířený formát) bitové periody pro jakoukoli dobu přístupu k pneumatice. Na rozdíl od kontroly založené na zprávách používané metodou CSMA/CD tato nedestruktivní metoda řešení konfliktů zajišťuje, že šířka pásma sběrnice není využívána bez předávání užitečných informací.

    Dokonce i v situacích, kdy je sběrnice přetížená, se spojení priority přístupu ke sběrnici s obsahem zprávy ukazuje jako užitečný systémový atribut ve srovnání se stávajícími protokoly CSMA / CD nebo token (token): navzdory nedostatečné šířce pásma sběrnice jsou všechny nevyřízené požadavky na přenos zpracovány v pořadí jejich důležitosti pro celý systém (určeno prioritou zprávy).

    Dostupná šířka pásma se efektivně využívá k přenosu užitečných dat, protože „mezery“ v alokaci sběrnice jsou udržovány velmi malé. Pád celého přenosového systému v důsledku přetížení, ke kterému může dojít u protokolu CSMA / CD, není u CAN možný. Tímto způsobem CAN umožňuje implementaci rychlého, provozem definovaného sběrnicového přístupu, který je nedestruktivní díky kontrole bit po bitu na základě použité priority zprávy.

    Nedestruktivní autobusový přístup lze rozdělit na:

    Centralizované řízení přístupu k autobusům a
    Decentralizované řízení přístupu ke sběrnici

    Podle toho, zda jsou kontrolní mechanismy v systému přítomny pouze jednou (centralizované) nebo vícekrát (decentralizované).

    Komunikační systém s přidělenou stanicí (zejména pro centralizované řízení přístupu na sběrnici) musí poskytovat strategii, která se uplatní v případě poruchy hlavní stanice. Tato koncepce má nevýhodu v tom, že implementace strategie zvládání poruch je složitá a nákladná a že může trvat velmi dlouho, než záložní stanice převezme centrální stanici.

    Z těchto důvodů as cílem obejít problém spolehlivosti nadřízené stanice (a tedy celého komunikačního systému) protokol CAN implementuje decentralizované řízení sběrnice. Všechny základní komunikační mechanismy včetně řízení přístupu na sběrnici jsou v systému prováděny vícekrát, protože jen tak lze splnit požadavky na vysokou dostupnost komunikačního systému.

    Obecně lze říci, že CAN implementuje provozem definovaný systém přidělování sběrnic, který umožňuje pomocí nedestruktivního přístupu ke sběrnici s decentralizovaným řízením přístupu poskytovat vysoké užitečná rychlost přenášet data nejnižší možnou přenosovou rychlostí sběrnice za podmínek vytížené sběrnice pro všechny stanice. Efektivitu procedury kontroly sběrnice zvyšuje skutečnost, že sběrnici využívají pouze ty stanice, které čekají na přenos požadavků.

    Tyto požadavky jsou zpracovávány v pořadí podle důležitosti zpráv pro systém jako celek. To je výhodné zejména v případě přetížení. Protože přístup ke sběrnici má prioritu založenou na zprávách, lze v systémech v reálném čase zaručit nízkou individuální latenci.



    3. Rámec zprávy pro standardní formát (CAN specifikace 2.0A)

    Formáty zpráv.

    Protokol CAN podporuje dva formáty rámců (rámců) zprávy, jediným podstatným rozdílem je délka identifikátoru (ID). Ve standardním formátu je délka identifikátoru 11 bitů a v rozšířeném formátu je délka 29 bitů. Rámec zprávy pro přenos na sběrnici obsahuje sedm hlavních polí.

    Zpráva ve standardním formátu začíná počátečním bitem „začátek rámce“, za nímž následuje „ověřovací pole“, které obsahuje identifikátor a bit „RTR“ (požadavek na vzdálený přenos), který udává, zda se jedná o datový rámec nebo rámec požadavku bez libovolné nebo datové bajty (rámec vzdáleného požadavku).

    "Řídicí pole" obsahuje bit rozšíření IDE (identifikátor rozšíření), který označuje standardní formát nebo rozšířený formát, bit je vyhrazen pro budoucí rozšíření a - v posledních 4 bitech - počet datových bajtů datového pole.

    "Datové pole" má délku od 0 do 8 bajtů a za ním následuje pole "CRC", které se používá jako kontrola bezpečnosti rámce k detekci bitových chyb.

    Pole "ACK" obsahuje ACK slot (1 bit) a oddělovač ACK (jeden recesivní bit). Bit v ACK slotu je odeslán jako recesivní bit a přepsán jako dominantní bit těmi přijímači, které v daném okamžiku přijaly data správně (správně) (kladné potvrzení). Správné zprávy jsou příjemci potvrzeny bez ohledu na výsledek akceptačního testu. Konec zprávy je označen „koncem rámce“. "Mezera" je minimální počet bitových period oddělujících po sobě jdoucí zprávy. Pokud některá stanice nemá přístup k další sběrnici, sběrnice zůstane nečinná ("bus idle").

    Detekce a signalizace chyb.

    Na rozdíl od jiných sběrnicových systémů protokol CAN nepoužívá potvrzovací zprávy, ale místo toho signalizuje případné chyby, které se vyskytnou. Pro detekci chyb v protokolu CAN jsou na úrovni zpráv implementovány tři mechanismy:

    Cyklická kontrola redundance (CRC) CRC chrání informace v rámci přidáním redundantních kontrolních bitů na konci přenosu. Na konci přijímače jsou tyto bity přepočítány a porovnány s přijatými bity. Pokud nesouhlasí, došlo k chybě CRC. Frame Check - Tento mechanismus kontroluje strukturu přenášeného rámce kontrolou bitových polí pro pevný formát a velikost rámce. Chyby nalezené během kontrol rámců se označují jako "chyby formátu".
    Chyby ACK. Jak bylo uvedeno výše, přijaté rámce jsou potvrzeny všemi příjemci prostřednictvím „pozitivního potvrzení“. Pokud není přijato žádné potvrzení od odesílatele zprávy (chyba ACK), může to znamenat, že došlo k chybě přenosu, která byla detekována pouze přijímači, že pole ACK bylo poškozeno nebo že neexistují žádní příjemci.

    Protokol CAN také implementuje dva mechanismy detekce chyb na bitové úrovni.

    Sledování. Schopnost vysílače detekovat chyby je založena na monitorování signálu sběrnice: každý uzel, který vysílá, také sleduje úroveň sběrnice, a tak detekuje rozdíly mezi odesílaným a přijímaným bitem. To poskytuje spolehlivou detekci všech globálních a lokálních chyb vysílače.
    Bit Stuffing - Kódování jednotlivých bitů se kontroluje na bitové úrovni. Bitová reprezentace používaná CAN je kódování NRZ (non-return-to-zero), které zaručuje maximální efektivitu při kódování bitů. Synchronizační hrany jsou generovány bitovou výplní, to znamená, že po pěti po sobě jdoucích stejných bitech vloží odesílatel do bitového toku informační bity s hodnotou navíc, které jsou odebírány přijímači. Ověření kódu je omezeno na kontrolu dodržování pravidla výplně. Pokud je pomocí výše uvedených mechanismů detekována jedna nebo více chyb alespoň jednou stanicí (libovolnou stanicí), aktuální přenos je přerušen odesláním „příznaku chyby“. To zabraňuje ostatním stanicím přijímat zprávy a zajišťuje tak konzistenci dat v celé síti.

    Po ukončení přenosu chybové zprávy se odesílatel automaticky pokusí o přenos znovu (automatický požadavek na opakování). Opět se může soutěžit o přidělení autobusů. Opakovaný přenos obvykle začíná během 23bitových period po zjištění chyby; Ve zvláštních případech je doba obnovení systému 31 bitů.

    Popsaný způsob však může být účinný a efektivní v případě, kdy porucha stanice může vést k přerušení všech zpráv (včetně těch správných), což zablokuje sběrnicový systém, pokud nebyla přijata žádná samokontrolní opatření. Protokol CAN tedy poskytuje mechanismus pro oddělení sporadických chyb od trvalých chyb a lokalizaci selhání stanice (omezení chyb). To se provádí statistickým vyhodnocením chybových situací stanice s cílem rozpoznat vlastní závady stanice a případně přejít do režimu provozu, kdy není nepříznivě ovlivněn zbytek sítě CAN. To může zajít tak daleko, že to způsobí, že se stanice sama vypne, aby se zabránilo chybné identifikaci nesprávných zpráv mezi těmi, které byly přerušeny.

    Spolehlivost dat protokolu CAN:

    Zavádění systémů souvisejících s bezpečností ve vozidlech je spojeno s vysokými požadavky na spolehlivost přenosu dat. Cíl je často formulován tak, aby nedocházelo k nebezpečným situacím pro řidiče v důsledku výměny dat během celé životnosti vozidla.

    Tohoto cíle je dosaženo, pokud je spolehlivost dat dostatečně vysoká nebo pravděpodobnost zbytkové chyby dostatečně nízká. V kontextu systémů datových sběrnic se spolehlivost týká schopnosti identifikovat data poškozená chybami přenosu. Pravděpodobnost zbytkové chyby je statistickým měřítkem zhoršení spolehlivosti dat: určuje pravděpodobnost poškození dat a to, že toto poškození zůstane neodhaleno. Pravděpodobnost zbytkové chyby by měla být tak malá, že v průměru žádná poškozená data nezůstanou bez povšimnutí po celou dobu životnosti systému.



    4. Pravděpodobnost zbytkové chyby jako funkce pravděpodobnosti bitové chyby

    Výpočet pravděpodobnosti zbytkové chyby vyžaduje klasifikaci chyb a to, aby byla modelem popsána celá přenosová cesta. Definujeme-li pravděpodobnost zbytkové chyby CAN jako funkci pravděpodobnosti bitové chyby pro délky zpráv od 80 do 90 bitů, pro systémové konfigurace například pěti nebo deseti uzlů a s chybovostí 1/1000 (chyba v jedna zpráva z každého tisíce), pak je maximální pravděpodobnost bitové chyby přibližně 0,02 až přibližně 10^-13. Na základě toho je možné vypočítat maximální počet nedetekovatelných chyb pro danou CAN síť.

    Například pokud síť CAN pracuje s přenosovou rychlostí 1 Mb/s při průměrném využití šířku pásma pneumatik 50 %, s celkovou životností 4000 hodin a s průměrnou délkou zprávy 80 bitů, pak je celkový počet Odeslaných zpráv 9x10^10. Statistický počet nezjištěných chyb přenosu během životnosti je tak menší než řádově 10^-2. Nebo jinak řečeno, při běhu osm hodin denně po 365 dní v roce a chybovosti každých 0,7 s dojde k jedné neodhalené chybě každých tisíc let (statistický průměr).

    Pokročilé zprávy CAN

    Podvýbor SAE Trucks and Buses má standardizované signály a zprávy a také protokoly přenosu dat pro různé rychlosti přenosu dat. Ukázalo se, že tento druh standardizace je snadněji implementovatelný, když je k dispozici delší identifikační pole.

    Na podporu tohoto úsilí byl protokol CAN rozšířen o 29bitový identifikátor. Tento identifikátor se skládá z existujícího 11bitového identifikátoru (base-ID) a 18bitového rozšíření (extension-ID). Protokol CAN tedy umožňuje použití dvou formátů zpráv: StandardCAN (verze 2.0A) a ExtendedCAN (verze 2.0B). Protože tyto dva formáty musí koexistovat na stejné sběrnici, je stanoveno, která zpráva má na sběrnici vyšší prioritu v případě kolize přístupu sběrnice s formáty vyhlazování a se stejným základním identifikátorem: standardní zpráva má vždy přednost před rozšířeným formátem zpráva.

    Řadiče CAN, které podporují zprávy rozšířeného formátu, mohou také odesílat a přijímat zprávy ve standardním formátu. Po síti lze přenášet pouze zprávy ve standardním formátu, pokud jsou v této síti použity řadiče CAN, které podporují pouze standardní formát (verze 2.0A). Zprávy v rozšířeném formátu budou nepochopeny. Existují však řadiče CAN, které podporují pouze standardní formát, ale rozpoznávají zprávy rozšířeného formátu a ignorují je (pasivní verze 2.0B).

    Rozlišení mezi standardním formátem a rozšířeným formátem se provádí pomocí bitu IDE (bit identifikátor rozšíření), který je v případě rámce standardního formátu přenášen jako dominantní. U rámců rozšířeného formátu je to recesivní. Bit RTR je přenášen dominantně nebo recesivně v závislosti na tom, zda jsou přenášena data nebo je od stanice požadována konkrétní zpráva. Namísto bitu RTR ve standardním formátu se pro rozšířené rámce identifikátoru posílá bit SRR (remote request replacement). Bit SRR je vždy vysílán jako recesivní, aby bylo zajištěno, že v případě kontroly má standardní rámec vždy přidělení priority sběrnice rozšířenému rámci, když mají obě zprávy stejný základní identifikátor.

    Na rozdíl od standardního formátu v rozšířeném formátu následuje za bitem IDE 18bitové ID číslo, bit RTR a vyhrazený bit (r1).

    Všechna následující pole jsou shodná se standardem. Korespondence mezi těmito dvěma formáty je zajištěna tím, že řadiče CAN, které podporují rozšířený formát, si mohou vyměňovat data i ve standardním formátu.



    5. Rámec zprávy pro rozšířený formát (Specifikace CAN 2.0A)

    Implementace protokolu CAN

    Komunikace je shodná pro všechny implementace protokolu CAN. Existují však rozdíly v rozsahu, v jakém implementace zpracovává zprávy předávané z mikrokontrolérů, které ji v obvodu následují. Komunikace je shodná pro všechny implementace protokolu CAN. Existují však rozdíly v tom, jak je předávání zpráv implementováno z mikrokontrolérů, které je v obvodu následují.

    CAN kontrolér s mezilehlou vyrovnávací pamětí

    Vyrovnávací CAN řadiče (dříve označované jako základní CAN čipy) implementovaly jako hardware logiku potřebnou k vytvoření a ověření bitového toku podle protokolu. Správu odesílaných a přijímaných datových sad, zejména filtrování příjmu, však provádí pouze CAN kontrolér.

    Regulátory CAN s mezilehlou vyrovnávací pamětí mají zpravidla dvě přijímací a jednu vysílací vyrovnávací paměť. 8bitové registry kódu a masky umožňují omezené filtrování akceptace (8 MSB identifikátoru). Vhodná volba těchto hodnot případu umožňuje čtení skupin identifikátorů nebo v hraničních případech výběr všech identifikátorů. Pokud je pro rozlišení zpráv vyžadováno více než 8 ID-MSB, pak mikrokontrolér následující za CAN kontrolérem v obvodu musí doplnit softwarové filtrování akceptace.

    CAN řadiče s mezilehlou vyrovnávací pamětí mohou snížit velkou zátěž na mikrokontrolér s filtrem příjmu, ale vyžadují pouze malou plochu čipu, a proto mohou být vyrobeny s nižšími náklady. V zásadě mohou přijímat všechny objekty v síti CAN.

    CAN ovladač s objektovým úložištěm.

    Objekty CAN se skládají hlavně ze tří komponent: identifikátoru, kódu délky dat a skutečného užitečného zatížení.

    Řadiče CAN úložiště objektů (dříve nazývané fullCAN) fungují jako řadiče CAN s mezilehlými vyrovnávací paměti, ale také spravují určité objekty. Pokud existuje více požadavků současně, určují například, který objekt by měl být předán jako první. Provádějí také filtrování přijetí na příchozích objektech. Rozhraní k dalšímu mikrokontroléru odpovídá RAM. Data určená k přenosu se zapisují do odpovídající oblasti RAM, přijímaná data jsou čtena z oblasti RAM, resp. Mikrokontrolér potřebuje spravovat pouze několik bitů (například požadavek na přenos).

    CAN kontroléry s objektovým úložištěm jsou navrženy pro maximální zatížení z lokálního mikrokontroléru. Tyto CAN řadiče však vyžadují větší plochu čipu a jsou tedy dražší. Kromě toho mohou spravovat pouze omezený počet čipů (mikrokontrolérů).

    Dnes jsou k dispozici řadiče CAN, které kombinují oba principy implementace. Mají objektové úložiště, z nichž alespoň jeden je navržen jako mezilehlá vyrovnávací paměť. Z tohoto důvodu již nemá smysl rozlišovat mezi basicCAN a fullCAN.

    CAN slave řadiče pro I/O funkce.

    Stejně jako řadiče CAN, které podporují všechny funkce protokolu CAN, existují čipy CAN, které nevyžadují následný mikrokontrolér. Tyto čipy CAN se nazývají SLIO ( sériové připojení I/O). CAN čipy jsou slave a musí být řízeny CAN masterem (centrálním, hlavním mikrokontrolérem v síti).

    Fyzické připojení CAN

    Přenosové rychlosti (až 1 Mbit/s) vyžadují poměrně strmý impuls impulsu, který lze realizovat pouze pomocí napájecích článků. V zásadě je možných několik fyzických spojení. Uživatelé a výrobci skupiny CAN in Automation však doporučují používat schémata ovladačů v souladu s ISO 11898.

    Integrované integrované obvody ovladačů vyhovující normě ISO 11898 jsou k dispozici od několika společností (Bosch, Philips, Siliconix a Texas Instruments). Mezinárodní skupina uživatelů a výrobců (CiA) také definuje několik mechanických spojení (kabel a konektory).



    6. Fyzické připojení CAN podle ISO 11898

    S pozdravem, překlad zajišťuje tým workshopu

    Fieldbus CAN (Controller Area Network) se vyznačuje vysokou rychlostí přenosu dat a odolností proti šumu a také schopností detekovat jakékoli chyby, které se vyskytnou. Není divu, že díky tomu je dnes CAN široce používán v oblastech, jako je silniční a železniční doprava, průmyslová automatizace, letectví, přístupové a řídicí systémy. Podle sdružení CiA (CAN in Automation, www.can-cia.de) je v současnosti celosvětově v provozu asi 300 milionů uzlů CAN. V Německu je sběrnice CAN nejoblíbenější sběrnicí. Tento článek poskytuje obecný popis a technické charakteristiky sběrnice CAN a popisuje logiku její činnosti. Kromě toho je uveden popis vestavěných modulů CAN, autonomních ovladačů na příkladu mikrokontrolérů Infineon (MC), transceiverů a tlumivek. Jsou uvažovány vývojové nástroje pro zařízení se sběrnicí CAN.

    Charakteristika protokolu CAN Výhody protokolu CAN

    Obecným trendem v automatizaci je nahrazování tradičního centralizovaného řídicího systému distribuovaným řízením umístěním inteligentních senzorů a akčních členů vedle řízeného procesu. To je způsobeno nárůstem počtu komunikačních vodičů, nárůstem počtu připojení, obtížností diagnostiky chyb a problémy se spolehlivostí. Komunikace mezi uzly takového systému se provádí pomocí sběrnice pole. CAN je komunikační systém pro systémy s více ovladači. Podívejme se blíže na výhody CAN a důvody, proč se CAN rozšiřuje.

    Testovaný standard. Protokol CAN se aktivně používá již více než 20 let, což je velmi důležité pro tak konzervativní oblasti, jako je železniční doprava nebo stavba lodí. CAN byl vyvinut v roce 1980 Robertem Boschem pro automobilový průmysl. Rozhraní CAN je regulováno mezinárodními normami ISO 11898 pro vysokorychlostní aplikace a ISO 11519-1 pro nízkorychlostní aplikace. Nízká cena je dána dobrým poměrem cena / výkon a také širokou dostupností CAN regulátorů na trhu. Spolehlivost je dána lineární strukturou sběrnice a rovností jejích uzlů, tzv. multimaster (Multi Master Bus), ve kterém má každý uzel CAN přístup ke sběrnici. Libovolná zpráva může být odeslána jednomu nebo více uzlům. Všechny uzly současně čtou stejné informace ze sběrnice a každý z nich se rozhoduje, zda tuto zprávu přijme, nebo ji bude ignorovat. Simultánní příjem je velmi důležitý pro synchronizaci v řídicích systémech. Neúspěšné uzly jsou odpojeny od sběrnicové ústředny.

    Vysoké odolnosti proti šumu je dosaženo díky diferenciálnímu potlačení společného režimu transceiveru, vestavěným mechanismům detekce chyb (jedna nedetekovaná chyba za 1000 let při 8hodinovém denním provozu sítě při 500 Kbps), opakování chybových zpráv, odpojení vadných uzlů od sběrnicové komunikace a odolnost vůči elektromagnetickému rušení.

    Flexibilita je dosažena jednoduchým připojováním a odpojováním uzlů CAN na sběrnici a celkový počet uzlů není omezen protokolem nižší vrstvy. Informace o adrese jsou obsaženy ve zprávě a jsou v souladu s její prioritou, na které se provádí arbitráž. Během provozu je možné změnit prioritu přenášené zprávy. Je třeba také zmínit možnost programování frekvence a fáze přenášeného signálu a arbitráže, která neničí strukturu zprávy v případě konfliktů. Na fyzické úrovni existuje výběr z různých typů datových přenosových linek: od levných kroucených párů až po komunikační linky z optických vláken.

    Provoz v reálném čase umožňují síťové mechanismy (multi-master, broadcast, bit-by-bit arbitration) v kombinaci s vysokou rychlostí přenosu dat (až 1 Mbps), rychlou odezvou na požadavek na přenos a proměnnou délkou zprávy od 0 na 8 bajtů.

    Aplikace CAN

    CAN je ideálním řešením pro jakoukoli aplikaci, kde mikrokontroléry komunikují mezi sebou a na dálku příslušenství. Zpočátku se CAN používal v automobilech k zajištění časově kritického řízení a výměny informací mezi motorem a převodovkou s garantovanou dobou čekání na zprávy a povolením každého z účastníků sítě pracovat s aktuálními daty. Spolu s poměrně drahými vysokorychlostními řešeními existují cenově výhodná řešení pro síťové propojení inerciálních zařízení, která pracují v časovém měřítku stovek mikrosekund (systém ovládání dveří, stahování oken, ovládání zrcátek). Výkonné kabelové svazky jsou zároveň nahrazeny dvouvodičovou sítí CAN, jejíž uzly jsou mimo jiné brzdová světla a směrovky.

    CAN našel široké uplatnění v průmyslové automatizaci, kde se nachází velké množství řídicích zařízení, senzorů, mechanismů, elektrických pohonů a dalších objektů, které jsou propojeny jediným technologickým cyklem (topné a klimatizační systémy, čerpadla, dopravníky, výtahy, eskalátory , dopravníky atd.). Důležitou vlastností takových systémů je schopnost diagnostikovat a ovládat objekty umístěné na velké ploše pomocí adaptivních algoritmů. V důsledku toho je dosaženo výrazného snížení spotřeby energie, hluku, opotřebení zařízení. Podobný obrázek je pozorován u železničních palubních systémů, kde rozhodující roli hraje výměna dat mezi subsystémy při akceleraci, brzdění, ovládání dveří a diagnostice.

    Fyzická vrstva

    Fyzická vrstva sběrnice CAN je drátové spojení AND mezi všemi zařízeními, která jsou k ní připojena. Diferenciální signální vedení se nazývají CAN_H a CAN_L a jsou statické při 2,5 V. Log. 1 (recesivní bit) označuje stav sběrnice, ve kterém je úroveň na lince CAN_H vyšší než úroveň CAN_L. U log. 0 (dominantní bit) úroveň na řádku CAN_H je nižší než úroveň CAN_L. Byla přijata následující dohoda o stavu sběrnice: pasivní stav sběrnice odpovídá úrovni log. 1 a aktivní - úroveň log. 0. Když se na sběrnici neodesílají žádné zprávy, je v pasivním stavu. Přenos zprávy vždy začíná dominantním bitem. Logika provozu sběrnice odpovídá "drátovému AND": dominantní bit "0" potlačuje recesivní bit "1" (obr. 1).

    Rýže. 1. Logika sběrnice CAN

    Při fyzické realizaci konkrétního projektu s CAN je nutné určit vlastnosti sběrnice a jejích uzlů: kde jsou umístěna zpracovatelská zařízení, jaké mají vlastnosti, jaké senzory a akční členy jsou v systému přítomny, zda jsou inteligentní nebo ne, co lze říci o jejich fyzickém umístění. V závislosti na provozních podmínkách jednovodičové vedení (uvnitř desky plošných spojů), dvouvodičové vedení, kroucený pár nebo optická linka. Díky metodě generování diferenciálního signálu může dvouvodičové vedení výrazně zvýšit odolnost proti rušení. Při použití rozdílového napětí síť CAN nadále funguje v extrémně hlučném prostředí nebo pokud dojde k přerušení jednoho ze signálních vedení. I s jednoduchým krouceným párovým kabelem diferenciální vstupy CAN účinně potlačují šum.

    Maximální rychlost přenosu dat je 1 Mbit/s při délce sběrnice 40 ma cca 40 Kbit/s při délce sběrnice 1000 m.

    Arbitráž uzlů sběrnice CAN

    CAN má mnoho jedinečných funkcí, které jej odlišují od ostatních autobusů. V protokolu CAN se zprávy odesílají po společné sběrnici CAN, přičemž zde nejsou žádné adresy odesílatele a příjemce zprávy. Každý uzel neustále „prohlíží“ sběrnici a provádí místní filtrování příjmu pomocí bitových masek a rozhoduje, které zprávy ze sběrnice vytáhne.

    Výsledkem je, že uzel přijímá a zpracovává pouze ty zprávy, které jsou pro něj určeny.

    Každá zpráva má svou prioritu, jejíž hodnota je obsažena v identifikátoru zprávy. Kromě toho se identifikátory používají k označení typu zprávy. Zpráva s nejnižším ID má nejvyšší prioritu; Zpráva s úplným nulovým identifikátorem má nejvyšší prioritu. Přenos zprávy začíná odesláním identifikátoru na sběrnici. Pokud více než jedna zpráva vyžaduje přístup ke sběrnici, bude jako první odeslána zpráva s nejvyšší prioritou, tedy ta s nižší hodnotou ID, bez ohledu na ostatní zprávy a aktuální stav sběrnice. Každý uzel před odesláním zprávy zkontroluje, zda je spuštěn uzel s vyšší prioritou. Pokud ano, vrátí se do stavu příjemce a pokusí se odeslat zprávu v jiném čase. Tato vlastnost je zvláště důležitá při použití v systémech řízení v reálném čase, protože hodnota priority pevně určuje časový limit.

    Pokud je přenos uzlu A pozastaven tím, že uzel B posílá zprávu s vyšší prioritou, pak jakmile se sběrnice uvolní, bude proveden další pokus o přenos zprávy z uzlu A. Tento princip se nazývá CSMA / CA: Carrier Sense Multiple Access / Collision Avoidance (obecný přístup s dotazováním/vyhýbáním se konfliktům). Tento režim na rozdíl od Ethernetu neumožňuje konfliktním uzlům na sběrnici vyřešit věci, ale okamžitě identifikuje vítěze a zkrátí dobu výměny.

    Díky arbitráži sběrnice je tedy zpráva s nejvyšší prioritou přenášena jako první, což zajišťuje provoz systému v reálném čase a rychlý přenos informací. Rozdělení priorit mezi různé typy zpráv nastavuje vývojář při návrhu sítě.

    Formát zprávy

    Pokud nebereme v úvahu postup pro opakování zprávy přijaté s chybou, existují dva typy komunikace mezi uzly: jeden uzel vysílá informace a druhý přijímá, nebo uzel A žádá uzel B o data a přijímá odpověď.

    Rýže. 2. Datový rámec

    K přenosu dat se používá datový rámec. datový rámec(obr. 2), který obsahuje:

    • identifikátor udávající typ zprávy ("motor_speed", "oil_temperature") a prioritu přístupu na sběrnici. Pole identifikátoru obsahuje různý počet bitů v závislosti na typu protokolu: standardní formát CAN V2.0A má 11bitový identifikátor a rozšířený CAN V2.0B má 29bitový identifikátor;
    • datové pole obsahující odpovídající zprávu („motor_speed“ = 6000 ot./min., „olej_teplota“ = 110 °C) o délce až 8 bajtů;
    • dva bajty kontrolního součtu - Kontrola cyklické redundance (CRC) detekovat a opravovat chyby přenosu.

    K vyžádání informací používá uzel CAN rámec požadavku na data vzdáleného rámce (obr. 3), který obsahuje:

    • identifikátor, který určuje typ požadované informace ("motor_speed", "olej_temperature") a prioritu zprávy;
    • dvoubajtový kontrolní součet CRC.

    Rýže. 3. Rámec požadavku na data Vzdálený rámec

    V tomto případě za identifikátorem nenásledují data a kód délky dat přímo nesouvisí s počtem bajtů dat. Uzel, do kterého je navrženo přenášet informace (senzor teploty oleje), přenáší datový rámec obsahující požadované informace. Pokud tedy uzel A odešle rámec požadavku s identifikátorem "teplota oleje" do uzlu B, pak uzel B provede dotaz na teplotní senzor a odešle datový rámec do uzlu A obsahující identifikátor "teplota oleje" a požadované informace.

    Další informace obsažené v rámci vám umožňují určit formát a načasování protokolu přenosu zpráv a typ zprávy:

    • jaká zpráva je odeslána - požadavek na data nebo data sama určují bit požadavku na vzdálený přenos (RTR pro 11bitový identifikátor a SRR pro 29bitový);
    • kód délky dat udávající, kolik bajtů dat zpráva obsahuje; všechny uzly přijímají datový rámec, ale ty z nich, které tyto informace nepotřebují, je neukládají;
    • pro zajištění synchronizace a ovládání obsahuje rámec pole začátku snímku Start of Frame, konec snímku End of Frame a Acknowledgement Field;
    • vstup do synchronizačního režimu na sběrnici se provádí prvním bitem pole Start of Frame, poté je synchronizace udržována frontou, když se mění úroveň odesílaných bitů;
    • používá se mechanismus bitstaffing - vložení dalšího bitu na dalších pět po sobě jdoucích nul nebo jedniček.

    Detekce chyb

    K signalizaci chyby dochází odesláním rámce Chyba rám. Je iniciován jakýmkoliv uzlem, který detekuje chybu. Regulátory CAN používají metodu statistického zpracování chyb. Každý uzel obsahuje čítač chyb přenosu a čítač chyb příjmu pro chyby přenosu a příjmu. Pokud vysílač nebo přijímač zjistí chybu, odpovídající čítač se zvýší. Když hodnota čítače překročí určitou mez, aktuální přenos se přeruší. Uzel vydá chybový signál ve formě Error Frame, kde nastaví aktivní dominantní chybový příznak o délce 6 bitů. Poté uzel, jehož přenos byl přerušen, zprávu zopakuje. Nedůvěryhodným nebo částečně poškozeným uzlům je povoleno vysílat pouze pasivní recesivní chybový příznak.

    V CAN je několik typů chyb. Z toho tři typy jsou na úrovni zprávy:

    • CRC Error - chyba kontrolního součtu (když se přijaté v poli CRC a vypočtený kontrolní součet neshodují).
    • Form Error - chyba formátu rámce, když přijatá zpráva neodpovídá formátu CAN.
    • Chyba potvrzení – chyba potvrzení zprávy, pokud žádný z uzlů nepotvrdil správné přijetí zprávy.

    Kromě toho existují dva typy chyb na bitové úrovni:

    • Bit Error - detekce nesouladu mezi úrovní odeslanou na sběrnici a skutečnou hodnotou aktivním uzlem v důsledku implementace samokontrolního mechanismu uzlem.
    • Stuff Error - přítomnost šesti po sobě jdoucích bitů 0 nebo 1 v poli zprávy (chyba bitstuffingu).

    S těmito mechanismy detekce chyb a jejich oprav je šance, že chybu přehlédnete, extrémně nízká. Například při rychlosti 500 kb/s, 25% využití sběrnice a 2000 hodinách používání za rok je pouze jedna neodhalená chyba za 1000 let. Navíc je nemožné, aby sběrnice zablokovala provoz celé sítě vadným uzlem. Takové uzly jsou detekovány a odpojeny od ústředny na sběrnici.

    Odrůdy CAN

    Momentálně dostupný různá zařízení s rozhraním CAN, které kromě přenosu dat z jednoho bodu do druhého umožňují implementaci synchronizace procesů a prioritní službu. Dřívější implementace řadičů CAN používají rámce s 11bitovým ID a adresou až 2048 zpráv a splňují specifikaci CAN V. 2.0A. Takové ovladače se nazývají Basic CAN a vyznačují se velkou pracovní zátěží. procesor(CPU), protože každá příchozí zpráva je uložena v paměti a CPU rozhoduje, zda tyto zprávy potřebuje nebo ne (obr. 4). Základní řadiče CAN obsahují jednu vyrovnávací paměť pro vysílání a jednu nebo dvě vyrovnávací paměti pro příjem zpráv. Chcete-li odeslat nebo přijmout zprávu, musíte použít CPU prostřednictvím přerušení "message_sent" a "message_received". V důsledku kontroly každé příchozí zprávy je zatížení CPU velmi vysoké, což omezuje reálný směnný kurz v síti. Z tohoto důvodu se takové ovladače používají v sítích CAN s nízkou přenosovou rychlostí a/nebo malým počtem zpráv.

    Rýže. 4. Základní struktura regulátoru CAN

    Většina dnes vyráběných řadičů CAN používá rozšířené rámce zpráv s 29bitovým identifikátorem, což umožňuje adresovat až 536 milionů zpráv. Takové regulátory vyhovují specifikaci CAN V. 2.0B (aktivní) a nazývají se Full-CAN regulátory. Poskytují vyrovnávací paměť pro několik zpráv a každá zpráva má svou vlastní masku a filtrování se provádí přiřazováním identifikátoru k masce.

    V případě Full-CAN je CPU maximálně vytíženo, protože nezpracovává zbytečné zprávy (obr. 5). Když je přijata zpráva s identifikátorem odpovídajícím masce, je uložena ve speciální oblasti dvouportové RAM a CPU je přerušeno. Full-CAN má také speciální typ zprávy, který znamená "Kdo má tyto informace, pošlete je prosím hned." Kontrolér Full-CAN automaticky naslouchá všem zprávám a odesílá požadované informace.

    Rýže. 5. Struktura řadiče Full-CAN

    Až donedávna byl v průmyslu široce používán Basic CAN s 11bitovým identifikátorem. Tento protokol umožňuje jednoduché připojení mezi mikrokontroléry a periferními zařízeními při směnných rychlostech až 250 Kbps. S rychlým snížením nákladů na řadiče CAN se však použití Full-CAN stalo oprávněným pro komunikaci s pomalá zařízení. Pokud je v průmyslových aplikacích vyžadována vysokorychlostní (až 1 Mbps) výměna dat, pak by se rozhodně mělo používat Full-CAN.

    Základna prvku pro CAN

    Na nejnižší úrovni sběrnice CAN je vlastní dvouvodičové vedení se zakončovacími odpory. Dále je pro zvýšení odolnosti proti šumu umístěn diferenciální transceiver - transceiver. Na další úrovni je ovladač s vestavěným modulem nebo samostatný CAN modul připojený k hlavnímu ovladači přes paralelní nebo sériový port. Komunikace s uzly CAN, která si vyměňuje informace, probíhá prostřednictvím portů mikrokontroléru. CAN kontroléry provádějí proceduru příjmu a vysílání dat a jsou připojeny ke sběrnici dvěma signály: RxD pro příjem ze sběrnice a TxD pro vysílání na sběrnici. Implementace sběrnice CAN pomocí mikrokontrolérů Infineon je na Obr. 6.

    Rýže. 6. Implementace sběrnice CAN pomocí mikrokontrolérů Infineon

    Mikrokontroléry s modulem CAN

    Jedním z faktorů popularity CAN je široký výběr a dostupná cena elementová základna různých výrobců - Infineon, Motorola, Microchip, Philips atd.

    V tomto článku je důraz kladen na základnu prvků Infineon. Toto rozhodnutí je částečně založeno na výsledcích průzkumu provedeného na webových stránkách Keil Software (www.keil.com) pro platformy mikrokontrolérů 8051/251/C166. Na otázku, jaký mikrokontrolér s vestavěným CAN používáte, byly podle vzorku 2111 respondentů odpovědi rozděleny podle tabulky. 1.

    Tabulka 1. Výsledky ankety: "Který mikrokontrolér s vestavěným CAN používáte?"

    Infineon vyrábí produkty ve všech cenových/výkonových třídách. V současnosti dostupné jako 8bitové řadiče C505CA, C515C a 16bitové: C161CS, C164CI, C167CR, 167CS (tabulka 2). Nejlevnější čip s CAN je C505CA. MK C161CS a C167CS obsahují dva moduly CAN. Nejvýkonnější a nejdražší mikrokontrolér TriCore TC1775 obsahuje také rekonfigurovatelný TwinCAN modul se dvěma CAN moduly pro 32 zpráv. TriCore je první 32bitový mikrokontrolér Infineon DSP optimalizovaný pro vestavěné aplikace v reálném čase, který nahrazuje MCU, DSP a vlastní ASIC. Vestavěný modul odpovídá specifikaci CAN V2.0 B active a obsahuje paměť pro 15 zpráv pro příjem / vysílání s vlastními identifikátory, stavovými a řídicími bity. Navíc obsahuje maskové registry pro filtrování příchozích zpráv a je vybaven dvěma přijímacími buffery. Vestavěný modul CAN umožňuje budovat systémy s různými úkoly s použitím minimálního počtu čipů externího rozhraní. Připojení libovolného z mikrokontrolérů Infineon na sběrnici CAN se řídí stejnými principy. Příklad připojení C167CR ke sběrnici CAN je na Obr. 7.

    Tabulka 2. Mikrokontroléry Infineon CAN

    Typ Verze CAN Počet zpráv Modul CAN Rám Poznámka
    C505CA V2.0B 15 1 x CAN MQFP-44 8bitový MC
    С151С V2.0B 15 1 x CAN MQFP-80 8bitový MC
    C161CS V2.0B 30 2x CAN TQFP-128 16bitový MC
    C164CI V2.0B 15 1 x CAN MQFP-80 16bitový MC
    C167CR V2.0B 15 1 x CAN MQFP-144 16bitový MC
    C167CS V2.0B 30 2x CAN MQFP-144 16bitový MC
    TC1775 V2.0B 32 TwinCAN BGA-329 32bitový MC
    SAE81C90 V2.0 A 16 1 x CAN PLCC-44 Samostatný
    SAE81C91 V2.0 A 16 1 x CAN PLCC-28 Samostatný
    SAK82C900 V2.0B 32 TwinCAN P-DSO-28 Samostatný

    Kromě toho je třeba říci také několik slov o Philips MC, jednom ze zakladatelů základny prvků CAN. Zastaralý samostatný CAN řadič Philips PCA82C200 byl nahrazen plně kompatibilním řadičem SJA1000, který pracuje se standardem CAN V2.0 B. Je třeba poznamenat, že PCA82C200 podporuje pouze standard CAN V2.0 A a je schopen vysílat a přijímání pouze standardního protokolu CAN, to znamená, že když je přijat rozšířený rámec, generuje chybu a může zničit celou síť. V SJA1000 jsou díky podpoře standardu PeliCAN (čtení a zápis čítačů chyb, programování jejich kvantitativního prahu) výrazně rozšířeny možnosti správy CAN.

    Rýže. 7. Příklad připojení MK C167CR ke sběrnici CAN

    V důsledku spojení SJA1000 s jádrem XA se objevil 16bitový MK XAC3 s ​​integrovaným rozhraním CAN. Režim kompatibilní s 8051 mikrokontroléru Philips XA umožňuje snadnou migraci z 8bitové na 16bitovou architekturu 8051, což je zvláště důležité pro zachování kontinuity softwaru. Mezi 8bitovými MK je třeba poznamenat také Philips P80C592, P8xC591 a 8xCE598.

    Motorola také nabízí širokou škálu mikrokontrolérů s integrovaným CAN modulem, od nejlevnějších 8bitových MCU 68HC05X až po 32bitové Power PC MPC555 s duálním CAN V2.0 B.

    Pokračování příště