Měřicí a řídicí systémy se sběrnicí CAN


Janda, Petr

Ing., Katedra ATŘ-352, VŠB-TU Ostrava, 17. listopadu 15, Ostrava - Poruba, 708 33,  petr.janda.fs@vsb.cz

1. Abstrakt

Následující článek se zabývá problematikou propojení různých zařízení (např. snímačů, zařízení se sériovým rozhraním apod.) do jednoho řídicího nebo měřicího systému s průmyslovou sběrnicí CAN. Centrálním prvkem jednotlivých stanic jsou jednočipové mikropočítače UCB-PIC-2, které zajišťují obsluhu připojovaného zařízení. Propojení se sběrnici CAN zajišťují řadiče Intel 82527. Navržený systém je typu master/slave. Na sběrnici může být jedna nebo více stanic typu master. Mezi výhody navrhovaného řešení patří jednoduchost, spolehlivost a snadná rozšiřitelnost.

2. CAN (Controller Area Network)

Sběrnice CAN byla původně určena pro použití ve vozidlech, kde se uplatňuje například při řízení motoru, vybavení karoserie, ovládání podvozku atd. Vzhledem ke svým výhodným vlastnostem se stále více používá i v průmyslových aplikacích. CAN je velmi vhodná pro propojení inteligentních snímačů a akčních členů. Typická stanice připojená ke sběrnici CAN se skládá ze tří základních modulů:

  1. Vysílač/přijímač (někdy nazývaný rozhraní pro řadič CAN - CAN controller interface). Úkolem této části je převádět logické hodnoty (většinou TTL) na kódování logických hodnot podle normy pro sběrnici CAN. Vysílač/přijímač se dá sestavit z diskrétních součástek, ale výhodnější je použít integrovaný obvod (např. PCA82C250 fy. Philips).
  2. Řadič CAN, který řídí celou komunikaci. Řadič bývá většinou ve formě samostatného integrovaného obvodu jako například již zmíněný Intel 82527. Vyrábí se i jednočipové mikropočítače s integrovaným řadičem CAN (např. řada ´96 firmy Intel).
  3. Komunikující zařízení může být jednočipový mikropočítač, PLC, PC apod. Toto zařízení řídí celou připojovanou stanici.

Vztah mezi jednotlivými bloky je na obr. 1. Komunikující zařízení předává řadiči CAN pouze data, která chce vyslat. O sestavení a vyslání rámce, potvrzení příjmu atd. se stará řadič CAN a komunikující zařízení není žádným způsobem zatěžováno.

Obr. 1. Blokové schéma stanice připojené ke sběrnici CAN

2.1 Fyzická vrstva CAN

Síť je tvořena dvoudrátovým vedením. Vodiče jsou označeny CAN_H a CAN_L (obr.2). Vysílač může nabývat dvou stavů - aktivního (dominant) a pasivního (recessive). Logické úrovně jsou uvedeny v tab. 1. CAN_H připíná +5 V a CAN_L připíná 0 V. Oba jsou typu otevřený kolektor. To umožňuje využít metodu wired AND - logická úroveň 1 (stav recessive) může být jiným vysílačem změněna na logickou 0 (stav dominant). Této vlastnosti se používá při potvrzování zpráv a detekování priorit rámců.

Sběrnice je typu CSMA/CR (Carrier Sense, Multiple Access, with Collision Resolution). Přenos dat po sběrnici CAN je realizován systémem broadcast. Vysílací stanice vysílá data na sběrnici a všechny řadiče CAN musí potvrdit správnost jejich přijetí. Sběrnice může být typu multi-master nebo master-slave. To záleží pouze na způsobu vyhodnocování přenesených dat, které realizuje program v komunikujícím zařízení.

Obr. 2. Struktura sběrnice CAN
Logická hodnota CAN_H CAN_L Stav
0 +5 V 0 V Dominant
1 pasivní pasivní Recessive

Tab. 1. Logické úrovně na sběrnici CAN

Základní parametry pro sběrnici CAN jsou následující:

Přenosová rychlost

(kb/s)

Maximální délka sběrnice

(m)

1000

500

300

100

50

40

112

200

640

1340

Tab. 2. Přenosové rychlosti sběrnice CAN - High Speed podle ISO-DIS 11898

2.2 Formáty rámců

Norma pro sběrnici CAN rozlišuje tyto druhy rámců:

Délka datového rámce je závislá na počtu přenášených bajtů. Najednou lze přenést maximálně 8 bajtů. Délka standardního rámce pak je 108 bitů.

Při vysílání rámců na sběrnici se využívá dvou základních metod vzniku priority:

Všechny rámce jsou vysílány systémem broadcast. Rámec je přijímán ve všech ostatních řadičích CAN. Zajímavou vlastností CAN je, že během příjmu zprávy se přijímače stávají po určitou dobu aktivní. Každý přijímač, který přijal zprávu bezchybně, vyšle aktivní (dominant) bit v poli ACK vysílaného rámce. Každý přijímač tedy musí odpovědět na každou vyslanou zprávu, a to buď v poli ACK nebo vysláním chybové zprávy.

2.3 Princip komunikace po sběrnici CAN

Pro komunikaci mezi stanicemi se používají výše popsané druhy rámců. Potřebuje-li některá stanice vysílat, předá řadiči CAN vlastní data nebo adresu, kde se data nacházejí, a případně hodnotu identifikátoru. Vlastní rámec je potom vytvořen a odvysílán řadičem. Pokud řadič v průběhu vysílání rozezná, že jiná stanice vysílá zprávu vyšší priority, přejde do přijímacího režimu.

Při příjmu zpráv rozeznávají řadiče správnost přijatých dat. Některé typy řadičů umožňují i přijaté zprávy filtrovat - o přijetí zprávy informují CPU pouze v případě, je-li identifikátor zprávy shodný s identifikátorem nastaveným pro příjem.

Pro sběrnici CAN je definováno několik aplikačních vrstev. Mezi nejznámější patří CANOpen prosazovaná mezinárodní organizací CiA (CAN in Automation), která sdružuje uživatele CAN, DeviceNet firmy Allen-Bradley a SDS (Smart Distributed Systém) firmy Honeywell. Využití těchto aplikačních rozhraní přináší kompatibilitu zařízení od různých výrobců. Tato výhoda se projeví ve větších řídicích nebo měřicích systémech s použitím standardních snímačů a akčních členů, které jsou v nabídce jednotlivých výrobců. Nevýhodou těchto aplikačních vrstev je komplikovanější programové vybavení. Běžný uživatel pak bez hlubokých znalostí jednotlivých norem a programování není schopen na sběrnici připojit vlastní nestandardní zařízení, které nenajde v nabídce výrobců.

Výhodou sběrnice CAN je vysoká spolehlivost. V literatuře se uvádí, že při zprávách dlouhých 90 bitů a četnosti náhodných chyb 10-3 (jedna chyba v jedné zprávě z tisíce) při každodenním osmihodinovém provozu systému s asi 5 až 10 uzly je pravděpodobnost výskytu nedetekované chyby asi jedna chyby za tisíc let.

2.4. Řadič CAN Intel 82527

Jedním z řadičů CAN je obvod Intel 82527. Byl vyvinut firmami Bosch a Intel a je jedním z nejpoužívanějších řadičů pro sběrnici CAN. Jeho základní vlastnosti jsou:

3. Návrh stanice připojitelné ke sběrnici CAN

Blokové schéma typické stanice na sběrnici CAN je uvedeno na obr.1. Komunikující zařízení musí v našem případě umožňovat snadné a rychlé připojení různých zařízení. Vhodným řešením je použití jednočipového mikropočítače UCB-PIC-2. Jako řadič sběrnice CAN je použit výše popsaný obvod 82527 s vysílačem/příjímačem PCA82C250. Vyvinuté programové vybavení pak předpokládá tuto konfiguraci hardware.

3.1. Jednočipový mikropočítač UCB-PIC-2

Jednočipový mikropočítač UCB-PIC-2 je založen na procesoru PIC 16C57. Obsahuje 16 V/V linek, 2048 B paměti EEPROM a 26 B paměti RAM. Velkou výhodou tohoto mikropočítače je programovací jazyk BASIC, který umožňuje snadné programování. Rychlost provádění instrukcí je asi 4000 příkazů jazyka BASIC za sekundu. Tato rychlost je ve většině případů dostatečná. Nedostatkem tohoto mikropočítače je nepřítomnost přerušovacího systému. Tato nevýhoda se ale určitým způsobem dá kompenzovat vhodným programovým vybavením.

3.2. Připojení řadiče CAN 82527 k UCB-PIC-2

Protože UCB-PIC-2 obsahuje pouze 16 V/V linek, je k propojení s CAN řadičem 82527 využit mód sériového přenosu dat (SPI). Výhodou tohoto propojení je použití pouze sedmi linek. Nevýhodou je nižší přenosová rychlost údajů. Schéma propojení je na obr.3. Připojením obvodu 82527 získáme navíc dva osmibitové V/V porty.

Obr. 3. Připojení mikropočítače UCB-PIC-2 k řadiči CAN 82527 v módu SPI

3.3. Programové vybavení

Blokové schéma programu pro obsluhu připojení řadiče CAN 82527 k UCB-PIC-2 je na obr.4. Tento program je šablona, do které uživatel dopíše části specifické pro obsluhu připojovaného zařízení (snímače, akčního členu apod.) a komunikaci s nadřazeným uzlem. Tyto bloky jsou na obrázku zvýrazněné šedou barvou. Program, jehož blokové schéma je na uvedeném obrázku, zabírá asi 1/4 paměti EEPROM v UCB-PIC-2. Velikost zabírané paměti pro proměnné závisí na počtu najednou přenášených datový bajtů přes sběrnici CAN a pohybuje se od 7 do 14 bajtů.

Obr. 4. Blokové schéma programu pro připojení mikropočítače UCB-PIC-2 na sběrnici CAN.

4. Příklad připojení ultrazvukového snímače ke sběrnici CAN

V následujícím odstavci je popsáno připojení ultrazvukového snímače s analogovým výstupem 0-10 V ke sběrnici CAN. K připojení je použit systém popsaný v minulé kapitole. Dopsáním malých částí do uvedené šablony programů můžeme vytvořit jednoduchý inteligentní senzor.

Základní vlastnosti ultrazvukového snímače s analogovým výstupem UC2000-30GM-UI-V1 firmy Pepperl+Fuchs jsou v tab.3. Výstupní analogový signál je proudový (4-20 mA) nebo napěťový (0-10 V). V našem případě je využit napěťový výstupní signál. Rozsah měřených vzdáleností je nastavitelný.
Verze Vysílač/přijímač s analogovým výstupem.
Pracovní údaje:
Detekční rozsah 200..2000 mm
Referenční objekt (minimální plocha) 100x100 mm
Oblast necitlivosti 0...200 mm
Rozlišení
- v rozsahu do 705 mm 0,172 mm
- v rozsahu nad 705 mm Nastavený rozsah (mm)/4096

Tab.3. Základní parametry ultrazvukového snímače UC2000-30GM-UI-V1

Snímač k mikropočítači UCB-PIC-2 připojíme přes převodník napětí/frekvence AD654 firmy Analog Devices. Celkové blokové schéma snímače ultrazvukového snímače připojeného ke sběrnici CAN je na obr. 5.

Obr. 5. Blokové schéma připojení ultrazvukového snímače ke sběrnici CAN.

Programové vybavení vychází z výše uvedené šablony. Jeho hlavním úkolem je převádět analogový signál na vzdálenost v desetinách milimetru. Tato vzdálenost je po každém výpočtu uložena do objektu pro rámec v CAN řadiči. Nadřazená stanice (master) pak může naměřenou hodnotu získat bez nutnosti přenosu dat z UCB-PIC-2. Tím se komunikace podstatně zrychluje a rychlost přenosu závisí pouze na přenosové rychlosti sítě. Další rozšíření možností programového vybavení záleží na potřebách uživatele. Pro ultrazvukový snímač to může být rozsah měřené vzdálenosti, při jehož překročení snímač automaticky vyšle upozornění, nastavení parametrů pro přepočet vzdálenosti apod.

Důležitým bodem při návrhu řídicího nebo měřicího systému je navržení vhodného systému pro číslování připojených stanic. Tato čísla jsou určená k adresaci rámců. Zapisují se do položky identifier v rámcích CAN. Jedno z možných řešení je uvedeno v tabulce 4. Stanice s vyšší prioritou vysílání zpráv by měly mít menší číslo přijímacího uzlu. Pak budou její rámce odvysílány dříve než rámce stanic s vyšším číslem.
ID bit 10 98 7 65 4 32 1 0
Význam Číslo přijímacího uzlu Povel:

0 - data

1-13 remote frame

15 - odpověď na data

Tab. 4. Příklad významu identifikátoru ve sběrnici CAN.

5. Závěr

Cílem práce bylo vytvořit jednoduchý systém pro propojování navzájem nekompatibilních zařízení přes sběrnici CAN. Výsledný řídicí nebo měřicí systém vyniká snadnou rozšiřitelností, vysokou rychlostí a spolehlivosti přenosu dat a nízkou cenou sběrnice CAN. Jako řídicí jednotky jednotlivých uzlů jsou pro svoji jednoduchost programování použity jednočipové mikropočítače UCB-PIC-2. Vhodně navržené programové vybavení a řešení sítě eliminuje nevýhodu menší rychlosti provádění programu v tomto mikropočítači vybaveném programovacím jazykem BASIC. Navržená šablona programu umožňuje sestavit příslušný program pro UCB-PIC-2 i méně zkušeným programátorům. Přenosovou rychlost a způsob číslování jednotlivých stanic si může uživatel zvolit sám nebo použít navržený systém.

V článku je uveden příklad připojení ultrazvukového snímače s analogovým výstupem na sběrnici CAN pomocí uvedeného jednočipového mikropočítače a řadiče CAN Intel 82527. Programové vybavení bylo vyvinuto pomocí uvedené šablony.

6. Literatura

ANALOG DEVICES, 1998. Low Cost Monolithic Voltage-to-Frequency Converter [online]. [Place of publication unknown] : Analog Devices, 1998 [cited 1997-12-6]. Available from Internet: <URL: http://www.analog.com/index.html>.

INTEL, 1995. 82527 Serial Communications Controller Controller Area Network Protocol. [online]. [Place of publication unknown] : Intel, 1995 [cited 1997-12-6]. Available from Internet: <URL: http://www.intel.com>.

INTEL, 1996a. 82527 Serial Communications Controller Architectural Overview [online]. [Place of publication unknown] : Intel, 1996 [cited 1997-12-6]. Available from Internet: <URL: http://www.intel.com>.

INTEL, 1996b. 82527 Specification Update [online]. [Place of publication unknown] : Intel, 1996 [cited 1997-12-6]. Available from Internet: <URL: http://www.intel.com>

NETUKA, J., 1994. UCB/PIC - mikropočítač pro okamžité použití. Amatérské rádio A 43, 1994, č. 10, s. 14-17.

NETUKA, J., 1996. UCB/PIC-2 - mikropočítač splněných přání. Praktická elektronika Amatérské rádio, řada 1, 1996, č. 3, s. 23-25.

PHILIPS, 1997. PCA82C250 CAN controller interface [online]. [Place of publication unknown] : Philips, 1997 [cited 1997-12-6]. Available from Internet: <URL: http://www.philips.com>.