Tento článek ukazuje, jak lze využít řešení od společnosti Texas Instruments pro průmyslovou komunikaci. Srdcem tohoto řešení jsou procesory Sitara, které přináší dostatečný výpočetní výkon a široké spektrum komunikačních rozhraní, která se v průmyslu používají.
Požadavky na průmyslovou komunikaci
Průmyslové komunikační systémy čelí stále přísnějším požadavkům na funkce v reálném čase. Reakce senzorů, motorů, pohonů a rozhraní člověk-stroj (HMI) musí probíhat v reálném čase.
Další požadavek je na nízkou spotřebu energie a zároveň podporu více sběrnic jako jsou například Control Area Network (CAN), Modbus, Profibus a průmyslové ethernetové protokoly Profinet, EtherCAT, Sercos III a další. Sběrnice Profinet umožňuje hlavní řídicí jednotce komunikovat se všemi zařízeními v síti. Slave zařízení komunikuje s ostatními zařízeními neperiodicky.
Tato sběrnice poskytuje standardní protokol TCP / IP pro běžnou výměnu dat – ne v reálném čase. Pro výměnu dat v reálném čase slouží sběrnice Profinet, která podporuje periodické nebo neperiodické výměny dat mezi řadičem a podřízenými zařízeními (obrázek 1, vlevo).
Obrázek 1: Různé průmyslové ethernetové zásobníky pro Profinet (vlevo) a EtherCAT (vpravo). Výrazně se liší v podpoře komunikace v reálném čase. (Zdroj obrázku: Texas Instruments)
Master jednotka komunikuje se zařízeními typu slave pomocí sběrnice EtherCAT. Příkazy a data pro každý slave jsou obsaženy v rámci, který je přenášen od uzlu k uzlu. Slave si vyčte daný příkaz a příslušná data z rámce a přidá své vlastní údaje, a tak to pokračuje dál. Sběrnice Profinet a EtherCAT obsahuje TCP/IP kanál pro komunikaci v reálném čase pro časově citlivé aplikace (na obrázku 1 vpravo).
Aplikace v reálném čase jsou závislé na nízké latencí odpovědi. Jitter v těchto systémech může způsobit nepředvídatelné problémy a systém se může stát nespolehlivým. Nízkou latenci a deterministické reakce poskytuje Linux a pro náročnější aplikace se používá operační systém RTOS. Výsledná latence a deterministický výkon významně závisí na procesoru v hardwarové platformě. Procesor s jádrem ARM Cortex-A je ideální pro úkoly vyšší úrovně a má víceúrovňovou vyrovnávací paměť pro rychlé zpracování instrukcí (obrázek 2).
Obrázek 2: V procesoru s jádrem ARM Cortex-A je architektura, která používá více vrstev propojení a prostředky k provádění různě složitých algoritmů. (Zdroj obrázku: Texas Instruments)
Každá vrstva vyrovnávací paměti a propojení prodlužuje čas potřebný k provedení daného procesu a následné odpovědi (latence). Počet těchto vrstev, kterými musí projít daný kód se může měnit, doba reakce se může také dramaticky měnit.
V minulosti se pro průmyslové aplikace volil hardware typu FPGA nebo speciální integrované obvody (ASIC). Toto řešení je velmi výkonné, ale rostou náklady na celý systém a složitost výsledného systému se také zvyšuje. Texas Instruments poskytuje praktičtější a cenově efektivnější řešení - plně využívat multiprocesory rodiny Sitara.
Průmyslový komunikační subsystém
Rodina procesorů Sitara obsahuje kombinaci vysoce výkonného aplikačního procesoru ARM Cortex-A s jednou nebo více programovatelnými real-time jednotkami a průmyslového komunikačního subsystému (PRU-ICSS). Cortex-A procesor vykonává hlavní aplikaci, jednotka PRU-ICSS poskytuje real-time zpracování a IO schopnosti potřebné pro průmyslové ethernetové protokoly a dalších kontrolní funkce (obrázek 3).
Obrázek 3: Členové rodiny procesorů Sitara kombinují procesor ARM Cortex-A se speciální programovatelnou real-time jednotkou optimalizovanou k poskytování nízké latence a vysokého výkonu, který je potřebný v real-time aplikacích. (Zdroj obrázku: Texas Instruments)
Každá Sitara Programovatelná Real-Time jednotka (PRU) obsahuje dvě 200 MHz jádra (PRU0 a PRU1, jak je znázorněno na obrázku 3), které pracují s dobou cyklu 5 ns na instrukci. Ke snížení latence periferních operací je použita speciální 32bitová sběrnice, která je přímo propojena s několika periferiemi, včetně managementu dat Input / Output (MDIO) a Media Independent Interface (MII) potřebné pro real-time Ethernet. Každé PRU jádro je vyvedeno přímo k vnějším pinům přes vlastní sadu 30 vstupů a 32 výstupů (obrázek 4).
Obrázek 4: PRU využívá přímý přístup do vstupních a výstupních pinů ke snížení latence. (Zdroj obrázku: Texas Instruments)
Real-time jádra mohou pracovat nezávisle na sobě a vyhnout se tak zpoždění, které vzniká při přechodu mezi jednotlivými vrstvami, jak je běžné v ostatních procesorech. Rychlé provedení single cyklu a přímý přístup k periferiím umožňuje subsystému spouštět procesy deterministicky a rychle. Díky tomu dokáže předvídatelně reagovat na vnější události. V důsledku toho může PRU subsystém provádět I/O operace a dosáhnout na vnější piny mnohem rychleji než běžné procesory (obrázek 5).
Obrázek 5: Díky Single cyklu a přímému přístupu na piny může Programmable Real-Time Unit (PRU) pracovat přes mnohem menší počet vrstev (vpravo na obrázku). Tím poskytuje rychlejší periferní operace, než je možné dosáhnout s běžnými procesory(vlevo na obrázku). (Zdroj obrázku: Texas Instruments)
Tato architektura poskytuje flexibilní využití procesoru ARM Cortex-A a jádra PRU pro využití maximálního výkonu průmyslových aplikací. Jednoduché úkoly se vykonávají na daném jádru nezávisle a náročnější real-time úkoly se mohou sdílet mezi různými propojenými jádry. Architektura systému Sitara poskytuje na hardwarové úrovni komunikační funkce „mailboxes“ a „lock registry“, které pomáhají zajistit synchronizaci procesoru Cortex-A a PRU-ICSS.
Na softwarové úrovni je tu podpora služby Linux multi-processing, která poskytuje standardní operační prostředí pro koordinaci provádění jednotlivých úloh. Jádro operačního systému běží na procesoru ARM Cortex-A, který koordinuje systémové operace PRU systému pomocí služby RemoteProc (Remote Process) a rpmsg (Remote Process Messaging) s vlastními ovladači a ovladači v PRU firmware. RemoteProc se stará o načítání PRU firmware a následné zpracování. Rpmsg framework umožňuje výměnu zpráv z aplikace do PRU pomocí virtio virtualization rozhraní (Obrázek 6).
Obrázek 6: Procesory Texas Instruments Sitara podporují standardní sadu služeb pro interakci aplikací a koordinaci hlavního procesoru ARM Cortex-A a PRU subsystému. (Zdroj obrázku: Texas Instruments)
Výhody této architektury jsou zejména v jednodušším vývoji a zvýšení výkonnosti průmyslových připojení například sběrnice SPI nebo složitých průmyslových ethernetových protokolů. Pomocí procesorů TI Sitara lze efektivně realizovat real-time Ethernet protokoly jako je Profinet pomocí softwarových stacků na procesoru Cortex-A a služby v reálném čase ovládané v PRU subsystému (Obrázek 7).
Obrázek 7: Koordinace vykonávání úkolů v ARM Cortex-A procesoru spolu s firmware v PRU subsystému pomáhají procesorům Sitara splnit požadavky pro real-time průmyslový Ethernet protokol, jako Profinet. (Zdroj obrázku: Texas Instruments)
Tento přístup poskytuje jednoduché řešení pro podporu více protokolů v jediné aplikaci. V procesorech Sitara lze spustit stack a firmware pro daný protokol souběžně. (Obrázek 8).
Obrázek 8: Účinnost běhu firmware PRU a výkonnost software v procesoru ARM Cortex-A umožňuje v procesoru Sitara spouštět stacky pro více průmyslových komunikačních rozhraní a protokolů souběžně. (Zdroj obrázku: Texas Instruments)
TI poskytuje komplexní sadu protokolů pro několik různých sériových komunikačních protokolů a pro protokoly real-time Ethernetu například EtherCAT, Profinet a Sercos III.
Balíčky pro průmyslový Ethernet jsou poskytovány jako black box binární soubory, ale TI poskytuje vývojářům řadu příkladů průmyslových komunikačních služeb. Pro vývoj aplikací poskytuje Software Development Kit (Processor-SDK) jako je například Procesor SDK přímo pro procesory AM437x Sitara, který poskytuje speciální API pro operace na nízké úrovni, jako je GPIO nebo IO-Link transakce (Výpis 1).
Výpis 1: Texas Instruments poskytuje SDK API pro každý procesor rodiny Sitara. Vývojáři se mohou zaměřit na funkcionalitu aplikace místo low-level funkce. (Code zdroj: Texas Instruments)
Urychlení vývoje
Kromě kódu a příslušných nástrojů TI poskytuje add-on balíčky, které obsahují komunikační software pro jednotlivé protokoly, ovladače a PRU firmware. Například TMDSIDK437X Industrial Development Kit (IDK) urychluje vývoj tím, že poskytuje komplexní hardwarovou platformu pro průmyslové aplikace (Obrázek 9).
Obrázek 9: Texas Instruments TMDSIDK437X IDK obsahuje procesor Sitara, paměť, komplexní sadu periferií, rozhraní a komunikační kanály. To vše poskytuje hardwarovou platformu pro průmyslové komunikační protokoly a zrychlí vývoj aplikací pro průmyslovou automatizaci. (Zdroj obrázku: Texas Instruments)
TI TMDSIDK437X IDK deska obsahuje paměťový prostor o velikosti 1 Gbyte ve dvou DDR3 RAM pamětích, quad-SPI NOR Flash paměti procesoru Sitara AM4379. AM4379 obsahuje procesor ARM Cortex-A9 se dvěma PRU subsystémy, z nichž každá obsahuje dvě PRU jádra.
V typické průmyslové automatizaci může Sitara AM4379 hrát více rolí například jako náhrada PLC, switche nebo gateway. Procesory Sitara AM4379 mají integrované grafické jádro, a proto nacházejí uplatnění v koncových zařízení s grafickým rozhraním.
TMDSIDK437X IDK deska obsahuje ethernetové čipy Texas Instruments TLK105 10/100 Mbit / s PHY transceiver pro průmyslové připojení Ethernetu a KSZ9031RNXIA-TR gigabitový transceiveru PHY od Microchip Technology pro standartní připojení Ethernet. Výhoda je, že deska potřebuje jen jedno napětí o velikosti 24 V a Ethernetové kabely.
TI PRU-ICSS Industrial Software set poskytuje softwarové balíčky pro průmyslové komunikační protokoly. Použitím TI Code Composer Studia (IDE) lze rychle načíst, sestavit a spustit ukázkové aplikace dodávané s balíčky nebo ho použít při psaní vlastních aplikací.
Pomocí TI software a PRU-ICSS Industrial softwarových balíčků lze rychle implementovat sofistikované průmyslové automatizační systémy jako je motorový driver ovládaný přes Ethernet (Obrázek 10).
Obrázek 10: Kombinace TMDSIDK437X IDK a Texas Instruments software poskytuje obzvlášť účinnou vývojovou platformu pro průmyslový systém, jako je EtherCAT připojení pro řízení motoru. (Zdroj obrázku: Texas Instruments)
PRU subsystém shromažďuje údaje o poloze motoru použitím karty s ADC převodníkem TMDSIDK437X nebo digitálního obousměrného enkodéru EnDat. Pomocí těchto dat může procesor ARM Cortex-A vykonávat vektorové řízení (Field Oriented Control) a vytvářet řízení motoru pomocí PWM. TI DRV8313 driver motoru, který je součástí desky TMDSIDK437X, obsahuje výkonové prvky pro přímé řízení motoru.
Závěr
Zatímco procesory pro obecné použití jsou vhodné pro algoritmy a procesy na vyšší úrovni, v průmyslových systémech jsou nutná speciální zařízení, které jsou schopny dodat nízkou latenci a deterministický výkon potřebný pro real-time průmyslové komunikační protokoly. Rodina procesorů Sitara od Texas Instruments obsahuje jak procesory pro obecné použití, tak procesory pro aplikace pracující v reálném čase.
Článek vyšel v originále "Use Sitara’s Specialized Subsystem for Industrial Automation Communications and Processing" na webu DigiKey.com, autorem je Stephen Evanczuk.