Jste zde

Co je CANopen a jak na něj

O sběrnici CAN se již na stránkách HW serveru psalo vícekrát, ale aplikační vrstva CANopen naší pozornosti zatím unikala. Nyní si proto popíšeme nejen tento protokol, ale také možnosti jeho využití ve spojení s USB-CAN adaptérem, který nyní nově CANopen podporuje.

Co je CAN

USB/CAN adapterController 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.

 Identifikátory protokolu CANopen
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.

 Slovník objektů (Object Dictionary)
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:

11bit CAN identifikátor11bit CAN identifikátor 

NMT Control Object

NMT Control ObjectObjekt 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).

 NMT - Command specifier
Tab.3. NMT - Command specifier

Node Guarding Object

Node Guarding ObjectSprá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.

Node Guarding ObjectZ 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.

 Node Status
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ů.

Sync Object 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ě.

Time Stamb Object

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. 

 Emergency object

Bitová mapa chybového hlášení z Error registru (0x1001)

 Error Register
Tab.5. Error Register

PDO Object

PDO ObjectZprá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

SDO ObjectObjekty 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.

SDO objectDruhý 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 AdaptorUSB-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.

Zapojení konektoru Cannost USB/CAN adaptéruPro š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í.

 

 Záložka CANopen aplikace USB-CAN adapter
Obr 1. Záložka CANopen aplikace USB-CAN adapter

Tlačítka pro obsluhu aplikace USB/CAN Adaptéru

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.

Ing. David Románek
david.romanek@ imfsoft.com

DOWNLOAD & Odkazy

Hodnocení článku: