FCC průmyslové systémy
+420 472 774 173
info@fccps.cz
Praha
Ústí nad Labem
Ostrava
Bratislava
PO - PÁ
8:00 - 16:00
E-shop
Banner rubrika 1
Jakou technologii SSD zvolit
Stabilní výkon SSD v nestabilních situacích napájení
Antimikrobiální ošetření Active Key inovace
Definice rozšířené teploty pro průmyslové paměti.
Synchronizace času - profesionální audio/video broadcasting
Kontrola barevného odstínu světlovodičů automobilového reflektoru
ATOP - průmyslové ethernetové switche, routery
CAN - stručný úvod
CAN FD - stručný úvod
Strojové učení strojového vidění
Pásma LTE/UMTS/EDGE/GSM používaná v České republice
PC Nexcom zlepšuje svážení odpadků
Průvodce výběrem vhodné gateway
Měřicí stanice pro záznam dat z průtokoměrů a měřičů hladin na modelu vodního díla
Teaming - redundantní Ethernet pod Windows
Kontrola sestavy čerpadla pro automobilový motor
Ochrana proti přepětí v kontextu průmyslové elektroniky - svodiče a galvanická izolace
Mobilní data v proudu času
Elektrická (smart) dálnice
Zajímavý výzkum na katedře měření ČVUT FEL
Stroj pro kontrolu kulových čepů
Příklady 3G a 4G modemů
Kontrolní zařízení pro kovové třmeny
Vizualizace výrobních dat, On-line reporting stavu výroby
Vizualizace výrobních dat, On-line zásobování Machinery a Assembly
Řídicí terminály pro biologické laboratoře
Londýnské metro je na špici ve získávání energie pro využití ve stanicích
Kontrola správného postupu ruční montáže chladiče klimatizační jednotky
Strojové vidění hlídá kvalitu v lakovně plechu
Kontrola plastového výlisku
PCI Express - mýty a fakta
Identifikace a kontrola přítomnosti krytu automobilového reflektoru ve stříkací lince
Stanice pro kontrolu sestavy konektoru
Kontrola 50 000 dílů za směnu
Antény pro WiFi - 1. část
Antény pro WiFi - 2. část
Základní přehled o technologii WiFi
Dodávané a podporované operační systémy pro PC

CAN - stručný úvod


"Historie" CANu

Dostupnost levných a výkonných mikroelektronických součástek umožnila automobilovému průmyslu zavést autonomní electronické řídící jednotky (ECU) pro různé funkční oblasti, jako je zapalování, ovládání převodovky nebo ABS.

Brzy bylo jasné, že pro další rozvoj funkčnosti, a potažmo značné zlepšení jízdního chování, bude zapotřebí synchronizace různých procesů, dosud distribuovaných mezi různé řídící jednotky. Bylo třeba zajistit řízenou výměnu dat mezi jednotkami.

Zavádění digitální komunikace do automobilového odvětví bylo rovněž motivováno rostoucím počtem komponent šasi a "elektroniky pro pohodlí posádky", které bylo třeba propojit. Patří sem např. klimatizace, nastavení polohy sedadel a zrcátek, elektrické ovládání oken, alarmové jednotky proti odcizení, centrální zamykání, osvětlení atd.

Cílem systémů digitální komunikace v automobilu je především omezit množství / délku kabeláže a odstranit tradiční "bolavá místa" jako je průchod kabelového zvazku z vnitřku karosérie do předních dveří.

V kontextu zvlášť vysokých požadavků na bezpečnost datového přenosu, v prostředí plném elektromagnetického rušení, bylo třeba vyvinout vhodnou koncepci digitální komunikace.

Toto byl výchozí bod ve vývoji sběrnice Controller Area Network (CAN), který započal ve firmě Bosch v roce 1983.

Od té doby se CAN rozšířil do četných dalších oblastí. Vedle běžných automobilů je používán také v následujících odvětvích:

  • Užitková vozidla (např. popelářské a požárnické vozy) Hromadná doprava (železnice, vlaky, tramvaje, autobusy) Zemědělství a lesní hospodářství (traktory apod.) Vojenské použití
  • Letecká a námořní doprava
  • Vybavení budov (výtahy)
  • Stavební technika (jeřáby, bagry apod.) Průmyslové pohony a obecně MaR --pozn.překl.

Topologie sběrnice, počet uzlů ("účastníků")

CANovské sběrnice jsou typicky uspořádány jako symetrické vedení, opatřené dvěma zakončovacími odpory o hodnotě 120 Ohmů (na každém konci jeden, viz obr.). Jsou povoleny odbočky o omezené délce a možná je také hvězdicová topologie, např. právě v automobilním použití. Počet účastníků není omezen protokolem, ale kvalitou provedení jednotlivých účastnických uzlů.

Pozn.překl.: fyzická vrstva CANu je oproti jiným symetrickým vedením zvláštní v tom, že budič "tahá silou jenom jedním směrem" a nemá třetí stav. Resp. má jenom jeden stav aktivní a jeden stav s vysokou impedancí. Aktivní stav, zde zvaný "dominantní", znamená, že budič tahá CAN-HI k +napájení a CAN-LO k -napájení. Naopak ve stavu "recesivním" má budič vysokou impedanci, a pouze díky terminátorům (které fungují zároveň jako pull-down odpor) konverguje tento stav k 0 V diferenciálně mezi vodiči v páru. Takto vypadá konkrétně fyzická vrstva dle ISO 11898-2. (Existuje ještě fyzická vrstva dle ISO 11898-3, která se v detailech liší.) Dále platí, že dominantní stav odpovídá log.0, recesivní stav odpovídá log.1. Čili funguje to trochu jako I2C (otevřený kolektor proti pull-up rezistoru). Toto "jednočinné" zapojení budičů umožňuje finty s implicitním logickým OR mezi uzly navzájem v rámci protokolu (využívají se pro všelijaký handshaking).

Pokud je třeba CANovou sběrnici prodloužit, přijdou k užitku CANové repeatery. Používají se, pokud je třeba provázat dva nebo více segmentů sběrnice CAN, vytvořit hvězdicovou či stromovou topologii, nebo připojit dlouhé odbočné vedení. Je také možno segmenty sběrnice navzájem galvanicky oddělit izolačním repeaterem.

Pozn.překl.: prostý CANový repeater musí věrně přenášet ACK a další bitwise "handshaking s otevřeným kolektorem". Podrobnosti budou vysvětleny níže. Jedině v tom případě může zůstat zachována "celistvost CANové signalizace na fyzické vrstvě" napříč sítí pospojovanou pomocí repeaterů. A z toho také plyne, že není v moci prostého repeateru, prodloužit sběrnici nad fyzikální meze dané délkou bitu a rychlostí šíření. Existují také CAN bridge, které provádějí "store and forward" (případně relay nad jinou technologií) a tudíž nejsou transparentní pro základní CANový handshaking, nefunguje okamžitá signalizace chyb, v přenosu přibyde dodatečná latence. Mají své použití, ale je třeba s jejich vlastnostmi počítat při integraci hardwaru a softwaru.

CAN-Technology-Line-Structure

Telegramy sběrnice CAN

Komunikace na sběrnici CAN probíhá pomocí "telegramů", které nesou řídící a datové bity. "Standardní" konfiguraci takového telegramu se říká "rámec".

  • Datový rámec: slouží k přenosu dat od odesilatele k příjemci, z iniciativy zdroje dat (odesilatele)
  • Rámec vzdáleného vyžádání (RTR): tímto rámcem může účastník sběrnice (budoucí příjemce) požádat o odeslání určitých dat zdrojem dat (budoucím odesilatelem)
  • Chybový rámec: signalizuje všem účastníkům sběrnice detekovanou chybu přenosu
  • Signalizace přetížení: "rámcem přetížení" (overload frame) může CANový řadič dát najevo sběrnici své přetížení. V dnešní době není tento rámec implementován, protože průchodnost řadičů je dostatečná.

Výměna zpráv dle principu producent-konzument

V protikladu k "uzlově orientované" komunikaci, kde si zprávy navzájem vyměňují dva koncové účastnické uzly, komunikace na CANu je založena na principu "producent-konzument". Zprávu odeslanou účastníkem-producentem dostanou všichni ostatní účastníci (konzumenti). Z toho důvodu nejsou zprávy opatřeny adresou příjemce, ale unikátním "identifikátorem zprávy". Odesílání zpráv všem účastníkům na sběrnici se také nazývá "broadcasting".

CAN-Technology-FormatObrázek: 11-bitový identifikátor (standardní formát, CAN 2.0A)

  • SOF: Start of Frame = 1 dominantní bit
  • RTR: Remote Transmission Request = pokud je nastaven RTR bit, jedná se o telegram "vzdáleného vyžádání"
  • IDE: rozšíření identifikátoru (1 bit)
  • r0: rezervovaný bit
  • DLC: Data Length Code - 4 bity = počet bajtů v datové oblasti zprávy. Přípustných je 0..8 bajtů, hodnoty 9..15 nejsou podporovány.

Identifikátor zprávy druhově označuje obsah zprávy, nikoli cílový uzel. V měřícím systému například mohou být přiřazeny různé identifikátory jednotlivým proměnným jako je teplota, napětí nebo tlak. Několik proměnných nicméně může také cestovat zprávou pohromadě pod společným identifikátorem, pokud se vejdou = pokud jimi alokované počty bajtů v součtu nepřekročí délku oblasti zprávy pro užitečná data (8B).

Naslouchající uzly na sběrnici se podle identifikátoru přijaté zprávy rozhodují, zda je zpráva pro ně relevantní či nikoli (tzn. přijaté zprávy na vstupu filtrují).

Standardní formát CANového identifikátoru je 11-bitový, v tom případě lze rozlišit 2048 různých zpráv. Toto číslo dostačuje pro většinu úloh. K dispozici je ovšem také 29-bitový formát identifikátoru (Advanced Format, CAN 2.0 B) který umožňuje až 512 milionů různých zpráv - což se hodí v některých konkrétních nasazeních, např. na nákladních vozidlech dle SAE J1939.

Formát rámců

Začátek zprávy (viz obr.) je ohlášen úvodním dominantním bitem. Následuje 11-bitový identifikátor a následuje RTR bit, jenž rozlišuje mezi "užitečnou" zprávou a "vzdáleným požadavkem na odeslání".

"Vzdáleným požadavkem" (RTR) si kterýkoli uzel na sběrnici může vyžádat odeslání konkrétní zprávy (proměnné) příslušným jiným uzlem.

"Řídící pole" (Control Field = IDE + r0 + DLC) specifikuje formát identifikátoru (standardní/rozšířený) a počet následujících užitečných datových bajtů.

"Datové pole" (užitečná data) v CANové zprávě může mít délku 0 až 8 bajtů.

Následuje 15-bitový CRC segment, který umožňuje přijímači ověřit bezchybný přenos přijaté zprávy.

ACKnowledgement bit slouží k potvrzení přenosu: potvrzení směrem od příjemců k odesilateli. Alespoň jeden příjemce musí v tomto bitu budit dominantní napěťovou hladinu. Přesněji řečeno, dominantní ACK bit mají poslat všichni příjemci, kteří zprávu bezchybně přijali.

Pole End of Frame (konec rámce) nakonec uzavírá zcela bezchybný přenos CANového rámce.

CAN-Technology-Data-FrameObrázek: Formát standardního CAN rámce

  • Začátek rámce (SOF - Start of Frame) = jeden dominantní bit
  • Pole "Arbitration" se skládá z identifikátoru (11 bitů nebo 29 + 2 bity) a RTR bitu (požadavek na vzdálené odeslání). Slovo "arbitration" znamená doslova "vyjednávání, dohadování, rozsouzení" a není použito náhodou - níže bude vysvětleno speciální chování CANových uzlů v průběhu odesílání identifikátoru.
  • Pole "Control" (CTRL) tzn. "řízení" = 6 Bitů:
  • Identifier Extension (IDE) = 1 bit
  • rezervovaný 1 bit
  • Data Length Code (DLC) tzn. délka dat = 4 bity (počet bajtů užitečných dat, 0 až 8 bajtů, DLC = 9 až 15 není podporováno)
  • Datové pole (DATA) = 0 až 8 Bajtů (po osmi bitech)
  • Kontrolní součet (CRC - Cyclic Redundancy Check) = 15 bitů zakončeno recesivním bitem "oddělovač CRC"
  • Pole "potvrzení" (ACK - Acknowledgement) = 2 bity: vlastní ACK slot následovaný recesivním "oddělovačem ACKu"
  • Konec rámce (EOF - End of Frame) = 7 bitů (všechny recesivní)
  • Pauza (IFS - Intermission Frame Space) = nejméně 3 bity. Minimální rozestup mezi dvěma CAN rámci.

Přenos zpráv spouštěný událostmi, s podporou multi-master provozu

Každý účastník (uzel) na sběrnici CAN může začít vysílat zprávu jakmile je sběrnice volná. Může se stát, že začne vysílat více uzlů současně. Specialitou CANu je nezdržující mechanismus "rozhodnutí priority" ("arbitration"), který zajišťuje, že pouze jeden uzel svou zprávu skutečně odvysílá.

Kterýkoli uzel může odvysílat zprávu z vlastní iniciativy - je tak umožněn přímý přenos dat mezi účastníky navzájem. Konkrétní uzel vyšle data pouze, pokud má proč ("na základě události"). Ve srovnání s cyklickými přenosy je toto uspořádání obecně méně náročné na kapacitu sběrnice (bitrate)

resp. vystačí si s nižší zátěží sběrnice.

Bezeztrátové dohadování bit po bitu

"Dohadování" (arbitration) umožňuje na sběrnici CAN hladký a bezchybný přenos. V průběhu "dohadovací fáze" (arbitration phase) se určí, která ze simultánně započatých zpráv má nejvyšší prioritu. Pouze uzel, který vysílá tuto vítěznou zprávu, smí pokračovat v odvysílání zbytku zprávy, který následuje po "arbitration phase". Nejvyšší prioritu má zpráva s nejnižším identifikátorem.

"Dohadovací fáze" se skládá z indentifikátoru a RTR bitu. V jejím průběhu všechny uzly na sběrnici, včetně vysílajících, sledují úroveň signálu na sběrnici. Pokud konkrétní vysílající uzel vysílá bit recesivní, ovšem na sběrnici zároveň detekuje bit dominantní, přeruší odesílání své zprávy a přepne budič do naslouchajícího stavu ("příjem"). Zpráva je v každém případě odvysílána, ovšem odvysílá ji pouze uzel, který "vyhrál dohadování". Mechanismus dohadování priority v průběhu vysílání "adresy" lze v tomto smyslu označit za "bezeztrátový".

Pozn.překl.: Zopakujme, že dominantní úroveň odpovídá log.0. Pak to celé začne dávat smysl -dominantní logické nuly "vyhrají vhazování", tedy vyhraje nejnižší ID.

CAN-Technology-ArbitrationObrázek: princip "bezeztrátového dohadování po jednotlivých bitech"

Uzly 1, 2 a 3 započnou dohadování ve stejném okamžiku. V čase (2) uzel č.2 zjistí, že sběrnice nemá očekávanou recesivní úroveň (kterou sám vysílá) a jde dobrovolně z kola ven. V čase (3) vzdává uzel č.1. V čase (4) = po skončení dohadování pokračuje ve vysílání pouze vítězný uzel č.3 (odešle zbytek své zprávy).

Pozn.překl.: možná Vám vrtá hlavou, "jak to, že se dva (a více) vysílající uzly tak pěkně sejdou, když ani nemají explicitní společné hodiny". 1.) No ony se sejdou obvykle tím způsobem, že se sběrnice z nějakého důvodu přetíží, takže zprávy ve výstupních frontách jednotlivých uzlů nějakou dobu čekají, až se sběrnice uvolní. Takže několik uzlů číhá, až aktuální frame skončí (+ povinná pauza) a v tu chvíli se do toho pustí všichni hezky naráz. Vnitřní lokální hodiny (xtal) mají natolik shodné, že se během těch pár bitů nestihnou významně rozejít. Předpokládejme, že vnitřní časová základna CAN řadiče umožňuje automaticky zasynchronizovat takt posuvných registrů (jmenovitým baudem) na hrany bitů rámce, který vysílá někdo jiný. Takže 2.) pokud by se stalo, že si nějaký uzel vzpomene "o fous pozdě", tzn. prostě mu přijde z "lokálního hostitele" další zpráva: nezapomeňte, že neaktivní transceiver neustále naslouchá, takže když mu v interním bufferu přistane nová zpráva k odeslání "pár vteřin po dvanácté", tak linkový přijímač už stihl nahodit interní příznak "sběrnice je busy" (přijímač je také zasynchronizovaný na probíhající "cizí" zprávu), řadič vůbec nezačne vysílat SOF a odchozí zpráva si hezky počká ve frontě. A dále viz bod 1.)

Pozn.překl.: termín "bezeztrátový" (lossless) v kontextu řešení kolizí na sdíleném médiu je poměrně neobvyklý. Pravda je, že v kontextu technologií jako CSMA-CD (collision detection) nebo TDMA (collision avoidance) je naopak nečekaná a nezvyklá vůbec možnost, vyřešit kolize bez dodatečného zdržení. Ten mechanismus není bezkolizní, on se kolizi nevyhýbá, on ji rovnou vyřeší v průběhu jejího trvání. "Collision detection and simultaneous in-place resolution" :-)

Komunikace se zohledněním priorit

Shora popsaný dohadovací proces garantuje, že zpráva s nejvyšší prioritou je odeslána vždy jako první, jakmile se sběrnice uvolní.

Princip komunikace se zohledněním priorit umožňuje efektivní využití šířky pásma na sběrnici. Umožňuje využít sběrnici na 100% zprávami o nižší prioritě a zároveň garantovat prioritním zprávám přednostní doručení bez významného zdržení. Např. při bitové rychlosti 1 Mbps bude mít nejprioritnější zpráva maximální latenci 130 bitů=mikrosekund. Na druhou stranu je třeba při návrhu komunikačního schématu dávat pozor, aby nehrozilo trvalé zahlcení sběrnice zprávami s vysokou prioritou. V konkrétních implementacích CAN uzlů bývá možnost, omezit periodicitu odesílání zpráv s konkrétním identifikátorem - standardní CANopen tomuto parametru říká "inhibit time" = minimální pauza mezi dvěma zprávami s tímtéž ID.

Bitová rychlost vs. délka sběrnice

Princip bitwise dohadování (a ACKování) na CANu znamená, že je třeba porovnat lokální úroveň každého jednotlivého bitu na každém jednotlivém uzlu - a uzly jsou rozmístěny podél celé délky sběrnice. Porovnání jednotlivého bitu se logicky musí stihnout v rámci délky jednoho bitu v čase -napříč celou sběrnicí.

A protože přenosové zpoždění na komunikačním vedení je přímo úměrné délce vedení, technicky nutná minimální doba trvání jednoho bitu roste s délkou vedení (sběrnice). Maximální přípustná délka sběrnice je určena prakticky pouze rychlostí šíření signálu na sběrnicovém médiu: při rychlosti 1 Mbit/s například vychází maximální délka sběrnice na 40 m, při 80 kbit/s je to 1000 m.

CAN-Technology-Data-RateObrázek: závislost maximální bitové rychlosti na délce sběrnice

Čárkovaná čára znázorňuje níže uvedenou rovnici pro bitové rychlosti pod 400 kbps a délky sběrnice nad 100 m. Zelená plocha ukazuje použitelné kombinace bitové rychlosti a délky sběrnice. Nejsou brány v úvahu spínací časy budičů a další omezující parametry.

Mezi délkou sběrnice a maximální bitovou rychlostí tedy platí nepřímá úměra. Pro sběrnice delší než 100 m lze použít následující rovnici:

baud [Mbps] * délka [m] = 60

Detekce chyb a izolace poruchy

Jednou ze základních vlastností CANu je schopnost detekovat chyby přenosu. Díky tomu je CAN schopen dostát vysokým nárokům na komunikaci řídících jednotek ve vozidlech.

Kvalitní detekce chyb je zajištěna kombinací několika opatření. Asi nejúčinnějším z nich je sledování úrovní vlastních odesílaných bitů vysílajícím uzlem ("bit monitoring"). Už na této úrovni jsou detekovány všechny "globálně účinné" chyby. Navíc každý naslouchající uzel (příjemce) taktéž kontroluje každou přijatou zprávu podle CRC segmentu a pevně umístěných částí fomátu rámce. Tímto způsobem jsou s vysokou mírou jistoty detekovány také chyby s pouze lokálním účinkem. A ještě navíc, kromě uvedené detekce chyb přenosu, obsahuje CAN také mechanismus pro detekci a odpojení vadných uzlů. Tím je zajištěno, že vadné uzly na sběrnici neznemožní přenos zpráv ustavičným vyrušováním.

Signalizace chyb

Na rozdíl od komunikačních koncepcí orientovaných na účastníka, CAN, jakožto protokol orientovaný na zprávu, uplatňuje svébytný princip signalizace chyb, kde všechny uzly kontrolují integritu všech zpráv na sběrnici.

Jakmile odesílající nebo přijímající uzel detekuje chybu, signalizuje ji všem ostatním uzlům odvysíláním chybové zprávy (Error Frame). Touto zprávou je (jinak neplatná) sekvence šesti bitů o shodné polaritě, obvykle dominantní. Všechny uzly chybovou zprávu detekují a zahodí již přijatou část původně přenášené "užitečné" zprávy.

Tímto způsobem je zajištěna jednotná množina dat pro všechny účastnické uzly na sběrnici.

Jakmile odesílající uzel odeslal nebo přijal chybovou zprávu, okamžitě se pokusí původní užitečnou zprávu odeslat znovu = začne "se dohadovat" znova od začátku.

Tento mechanismus signalizace chyb garantuje, že výměna zpráv je bezchybná a konzistentní pro všechny účastníky na sběrnici.

A protože je chyba signalizována okamžitě po detekci, jsou také garantovány velmi krátké časy pro zotavení se z chyby. Tento mechanismus signalizace chyb vykazuje také příjemně nízkou dodatečnou "režii" (zátěž na sběrnici), protože hlášení o chybě obere sběrnici o čas jenom v případě, že k chybě skutečně došlo - srovnejte s přenosovými mechanismy, které zpětně potvrzují úspěšné doručení samostatným režijním rámcem.

Protokoly vyšších vrstev

Výše popsaný CAN protokol, standardizovaný normou ISO 11898, odpovídá vrstvám 1-2 OSI modelu. Pro realizaci sítí jsou ale zapotřebí další funkce.

Pro nasazení v embedded zařízeních a průmyslové automatizaci jsou k dispozici dvě oblíbené sady protokolů: CANopen a DeviceNet.

CANopen se rozšířil v "embedded" oblasti, DeviceNet je naopak populární v průmyslové automatizaci díky rodné firmě Rockwell Automation. V nákladních a užitkových vozech je také populární norma SAE J1939.

odkazy:

https://en.wikipedia.org/wiki/CAN_bus 

http://www.ti.com/lit/an/sloa101b/sloa101b.pdf 

Link na originál text: https://www.ixxat.com/technologies/all4can/can-technology

Eshop
Youtube
Magazín
Kalalog
Kalalog
FCC průmyslové systémy


Již 20 let na českém trhu

FCC průmyslové systémy je technicko – obchodní společností, zastupující významné výrobce v oblasti průmyslové automatizace a telekomunikační techniky. V oblasti průmyslové automatizace zahrnuje naše nabídka spektrum sahající od senzorových systémů přes průmyslové sběrnice a průmyslové komunikace po průmyslové výpočetní, řídicí a dispečerské systémy na bázi specializovaných PC. Naší významnou specializací jsou systémy pro strojové vidění využívané v oblasti výrobní automatizace a kontroly kvality. Spolupracujeme s nejvýznamnějšími světovými dodavateli průmyslové výpočetní techniky a komunikací z Evropy a Asie a disponujeme i vlastním vývojovým a konstrukčním zázemím včetně vývoje softwaru.

up