Co je CAN
Controller Area Network ve zkratce CAN je velmi zdařilá sběrnice pro kterou byla vyvinuta řada komunikačních standardů. Zřejmě nejzdařilejším je vyšší komunikační protokol CANopen definovaný organizací CiA (CAN in Automation) založenou sdružením výrobců a uživatelů CAN sběrnice. Organizace CiA vydala specifikaci CiA DS 301, která byla od verze 4.01 byla přijata jako norma EN 50325-4. Jedná se o široce konfigurovatelný standardní protokol pro vestavné řídicí sítě pro stroje a zařízení. V současné době je využíván v mnoha rozličných odvětvích v průmyslu, v lékařské technice, automobilech, námořních systémech, ve veřejné dopravě, při automatizaci ve stavebnictví.
CANopen
Aplikační vrstva CANopen a komunikační profil dle CiA DS 301 podporuje přímý přístup k parametrům zařízení a přenos jeho časově kritických procesních dat. Síťový management CANopen výrazně zjednodušuje návrh řídících systému, poskytuje síťové služby NMT, časovou synchronizaci procesů SYNC a TIME STAMP, zabezpečení provozu NODE GUARDING, chybová hlášení EMERGENCY, přenos řídících dat PDO (Proces Data Objects) a především poskytuje možnost rozsáhlých servisních nastavení prostřednictvím SDO (Service Data Objects).
Identifikátory protokolu CANopen
Každému komunikačnímu objektu je přiřazen jeden nebo více identifikátorů, které implicitně definují jeho prioritu na sběrnici. Přiřazení identifikátorů jednotlivým komunikačním objektům je jednou ze zásadních otázek při návrhu systému. K usnadnění návrhu jednoduchých sítí definuje protokol CANopen výchozí hodnoty identifikátorů pro všechny povinné objekty. Tyto hodnoty se inicializují v předprovozním stavu sítě, a je-li to nutné, lze je dále dynamicky modifikovat.
Tab.1. Seznam objektů s identifikátory protokolu CANopen
Protokol CANopen definuje všechny komunikačními objekty spolu s nezbytnými informacemi o vlastnostech a funkčních schopnostech jednotlivých zařízení. Komunikační objekty jsou zařazeny v tzv. slovníku objektů (Tab.2. - Object Dictionary) uloženém v zařízení, které je součástí sítě, a sloužícím jako rozhraní mezi samotným zařízením a aplikačním programem.
Každý komunikační objekt je dostupný prostřednictvím SDO (Service Data Objects) pomocí šestnáctibitového indexu, v případě objektů typu polí a záznamů (objektů složených s několika dalších objektů) doplněného osmibitovým subindexem.
Tab.2. Slovník objektů (Object Dictionary)
Node ID
Zařízení pracující podle protokolu CANopen smějí používat jen identifikátory odpovídající komunikačním objektům podporovaným protokolem. Implicitní schéma přiřazení identifikátorů má funkční část, určující prioritu objektu, a část označenou jako Node-ID, která umožňuje rozlišovat mezi dvěma zařízeními plnícími stejnou funkci. Nastavení Node-ID je obvykle provedeno HW přepínačem. Rozsah Node-ID je 1 až 127. V případě nulové hodnoty Node-ID je zpráva adresována všem uzlům (All-Node ID). Identifikátor jednotlivých komunikačních objektů je označen zkratkou COB-ID (Communication Object ID) a pro 11bit CAN identifikátor má následující tvar:
NMT Control Object
Objekt poskytuje prostředky pro řízení stavu podřízených zařízení v CAN síti. Zpráva má díky nulovému identifikátoru nejvyšší prioritu. Zpráva se skládá ze dvou byte z nichž první Byte CS (Command Specifier) obsahuje příkaz a druhý Byte jednoznačnou identifikaci uzlu dle Node-ID.
Stavový model zařízení komunikujících podle protokolu CANopen obsahuje tyto stavy: inicializace (Initialization), předprovozní (Pre-operational), v chodu (Operational) a zastaveno (Stopped).
Tab.3. NMT - Command specifier
Node Guarding Object
Správce sítě periodicky monitoruje přítomnost a stav Slave zařízení zasíláním datových requestu, dotazů podřízeným zařízením s cílem zjistit, zda jsou aktivní.
Podřízené zařízení odpovídá zprávou, která obsahuje informaci o jeho stavu a doplňkový (toggle) bit měnící svoji hodnotu při každém dotazu. Doplňkový bit umožňuje zjistit, zda došlá odpověď je odpovědí na aktuální dotaz.
Z odvráceného pohledu může podřízené zařízení provádět kontrolní činnost Life-guarding řídicího zařízení s využitím pravidelnosti dotazů Node-guarding. Jestliže podřízené zařízení neobdrží tento dotaz do plynutí určené doby, oznámí tuto okolnost nadřazenému aplikačnímu programu, který na ni může zareagovat.
Tab.4. Node Status
Každé zařízení je po zapnutí ve stavu Initialization (signalizován zprávou Boot-up), ze kterého automaticky přechází do stavu Pre-operational. V tomto stavu je již možné přenášet SDO. Jakmile správce sítě přepne vysláním objektu NMT dané zařízení do stavu Operational, může toto začít vysílat zprávy PDO. Ve stavu Stopped není možná jiná komunikace než přenos zpráv typu MNT.
Sync Object
Tato zpráva slouží pro synchronizaci měření a zasílání hodnot vstupních veličin uzlů.
Základní taktování sítě zajišťuje SYNC Object (objekt SYNC), periodicky vysílaný jedním ze zařízení. Perioda vysílání této zprávy je definována ve slovníku objektů (Communication Cycle Period Object) a může být nastavována konfiguračním nástrojem při uvádění zařízení do provozu. Při vysílání objektu SYNC může dojít k jeho zpoždění v důsledku přítomnosti jiných objektů s identifikátory s větší prioritou v síti. Objekt SYNC se skládá z jedné CAN zprávy.
Time Stamp Object
Časová značka (Time Stamp Object) je objekt poskytující zařízením informaci o aktuálním datu a aktuálním čase. Zpráva má délku 6 Byte a obsahuje počet milisekund od půlnoci a počet dnů od 1. ledna 1984. Časové značky jsou vysílány jedním ze zařízení a neodpovídá se na ně.
Emergency Object
Zpráva je zaslána v případě vzniku závažné chyby v zařízení. Díky nízké hodnoty COB-ID má zpráva vysokou prioritu. Informace o chybách je uložena v Error registru (0x1001) . Zpráva obsahuje rezervovanou oblast pro rozšířenou specifikace chyby.
Bitová mapa chybového hlášení z Error registru (0x1001)
Tab.5. Error Register
PDO Object
Zprávy PDO (Proces Data Objects) přenášejí technologická data.Každý PDO musí mít unikátní identifikátor CAN a může být vysílán pouze jediným uzlem sítě, přičemž přijat může být libovolným počtem zařízení. Vyslání zprávy s PDO může být inicializováno vnitřní událostí, vnitřním časovačem, požadavky vznesenými jinými zařízeními v síti nebo přijetím synchronizační zprávy.
SDO Object
Objekty nesoucí servisní data (Service Data Object – SDO) neboli servisní objekty (SDO) umožňují číst a zapisovat jednotlivé položky slovníku objektů (OD). Protokol pro přenos SDO dovoluje přenášet objekty libovolné délky. Je-li objekt delší než čtyři bajty, je rozdělen do několika CAN zpráv zvaných segmenty nebo skupin CAN zpráv zvaných bloky. První bajt prvního segmentu obsahuje bity nezbytné pro komunikaci a ošetření chyb rámce SDO. Následující tři bajty obsahují index a subindex položky slovníku objektů, která je čtena nebo zapisována. Zbývající čtyři bajty jsou k dispozici pro přenos uživatelských dat.
Druhý a další segmenty (zprávy CAN se stejným identifikátorem CAN) obsahují bajt řídící komunikaci, následovaný až sedmi bajty uživatelských dat. Příjemce segmentu nebo bloku segmentů musí jeho příjem signalizovat odpovědí.
USB-CAN Adapter
USB-CAN převodník je zařízení určené zejména pro snadné dynamické ladění CAN aplikací a pro okamžitou a přehlednou diagnostiku CAN linky. Převodník je řízen prostřednictvím sběrnice USB z aplikace USB-CAN adapter, z vlastní uživatelské aplikace vytvořené modifikací aplikace CAN Start ve vývojovém prostředí Delphi nebo nově s použitím Dll knihovny.
Hardwarové řešení převodníku je založeno na obvodu FTDI FT245BM, mikroprocesoru Atmel T89C51CC01 a budiči PCA80C251(High), PCA80C252(Low) nebo L9615(High/Low speed). Integrovaný mikroprocesor s vyrovnávací pamětí výrazně snižuje zatížení operačního systému při zpracování zpráv přijatých z CAN linky a současně umožňuje velmi přesné nezávislé vysílání až 8 paralelních zpráv současně s rozlišením 1ms.
Pro široké použití a význam protokolu CANopen byla jeho podpora nově implementován do aplikace USB-CAN adaptéru (viz. obr.1.). Aplikace poskytuje veškeré nástroje pro řízení jednoho Slave zařízení komunikujícího dle standardu CANopen CiA DS 301. Umožňuje vysílání, příjem a zpracování objektů (zpráv) NMT, Node Guarding, Sync, Time Stamp, Emergency, PDO a SDO. Časování periodických zpráv je volitelné od 10ms do 10s. Konfiguraci signálů zobrazených v panelu PDO object je nutné předem provést prostřednictvím okna Signals database configuration nebo přímo při volbě signálu ke zobrazení.
Aplikace realizuje řízení jednotlivých funkcí objektů pouhým stiskem odpovídajících tlačítek. Mezi velmi propracované objekty lze zařadit PDO object a SDO directory. Snadnou konfiguraci a přímé řízení signálů poskytuje PDO object, kde např. spínání konkrétního výstupu je možné pouhým stiskem tlačítka myši. Snadné nastavení servisních parametrů umožňují funkce SDO directory. Lze snadno pracovat jak s požadovanou oblastí tak i se specifickým typem dat.
david.romanek@ imfsoft.com
DOWNLOAD & Odkazy
- Objednat Adaptér USB-CAN v HW Shopu => 4980 Kč bez DPH
- CAN na HW serveru - CAN - popis struktury
- Příklad aplikace CAN - Aplikování sběrnice CAN
- Adaptér USB/CAN na HW serveru - Adaptér USB-CAN
- USB–CAN adaptor V1.2
- Novinky v USB-CAN V2.0
- Download manuálu k USB-CAN adaptéru - usb_can_cz.pdf (925kB)
- Vše o sběrnici CAN - http://www.can.bosch.com
- Mikrokontroléry ATMEL pro sběrnici CAN -http://www.atmel.com/products/can
- Výrobce součástek pro sběrnici CAN - http://www.motorola.com
- Popis sběrnice CAN a její využití s mikrokontroléry Motorola - http://e-www.motorola.com/files/microcontrollers/doc/data_sheet/ BCANPSV2.pdf