Het Sitara gespecialiseerde subsysteem gebruiken voor communicatie en bewerkingen in de industriële automatisering

Door Stephen Evanczuk

Bijgedragen door De Noord-Amerikaanse redacteurs van DigiKey

Betrouwbare communicatie voor industriële automatisering stelt ontwikkelaars voor unieke uitdagingen. Deze systemen zijn afhankelijk van meerdere communicatieprotocollen om betrouwbare realtime verbindingen tussen de verschillende subsystemen en industriële omgevingen te onderhouden. Binnen die omgeving kunnen conventionele processoren voor algemene toepassingen bij het uitvoeren van toepassingsprogramma's niet altijd aan de eisen voor realtime communicatie voldoen.

Ontwikkelaars hebben behoefte aan een ontwikkelplatform dat zij eenvoudig aan de uiteenlopende eisen van industriële toepassingen kunnen aanpassen.

In dit artikel laten we zien dat ontwikkelaars een kant-en-klare ontwikkelset van Texas Instruments kunnen gebruiken om industriële toepassingen sneller te ontwikkelen. Het hart hiervan wordt gevormd door de Sitara processor van Texas Instruments, die zowel voor de berekeningen geschikt is als voor de speciale communicatie-eisen die industriële toepassingen stellen.

Eisen voor industriële communicatie

Systemen voor Industriële communicatie vormen de belangrijkste randvoorwaarde voor geavanceerde fabricagestrategieën. De eisen aan dergelijke systemen voor wat betreft realtime respons en het betrouwbaar verbinden van groepen sensoren, motoren en actuatoren aan programmeerbare logic controllers (PLC's) en gebruikersinterfaces (HMI's) worden steeds strenger.

In een industriële toepassing kunnen, samen met deze verscheidenheid aan subsystemen, een combinatie van eisen qua prestaties, gespecialiseerde apparatuur en oudere systemen, meerdere netwerktechnologieën en -protocollen moeten worden ondersteund. Hierdoor kan één enkele omgeving mogelijk meerdere veldbus-protocollen moeten ondersteunen zoals Control Area Network (CAN), Modbus en Profibus plus protocollen voor industrieel ethernet als Profinet, EtherCAT en Sercos III.

Elke standaard voor industrieel ethernet voldoet, net als het geval was met veldbus-standaards, een bepaalde set vereisten. Elk protocol biedt de realtime prestaties die in conventioneel ethernet ontbreken, maar die in industriële communicatie nodig zijn. De manier waarop ze aan die vereisten voldoen kan tussen de verschillende standaards voor industrieel ethernet verschillen.

Zo kan binnen Profinet de master controller met alle apparaten op het netwerk communiceren. Deze slave-apparaten wisselen op hun beurt frames uit met de controller, maar communiceren allen acyclisch met elkaar. Dit protocol biedt voor communicatie een standaard transmission control protocol/internet protocol (TCP/IP)-kanaal voor conventionele gegevensuitwisseling die niet in realtime plaats vindt. Voor het in realtime uitwisselen van gegevens ondersteunt het realtime kanaal van Profinet cyclische of acyclische uitwisselingen tussen een controller en de slaves (Afbeelding 1, links).

Schema van de ethernet-protocolstacks voor Profinet (links) en EtherCAT (rechts)Afbeelding 1: Verschillende protocolstacks voor industrieel ethernet voor Profinet (links) en EtherCAT (rechts) bieden weliswaar soortgelijke services zoals conventioneel ethernet, maar verschillen aanzienlijk in hun ondersteuning van realtime communicatie in de hogere protocollen en de services op de onderliggende Media Access Control (MAC) en Data Link Layer (DLL). (Afbeelding: Texas Instruments)

In EtherCAT communiceert de master met de slaves door opdrachten en gegevens voor alle slaves in een frame te stoppen dat van node naar node wordt verzonden. Wanneer het frame een node passeert, leest die de daarvoor bestemde opdrachten en gegevens en voegt de eigen gegevens aan het frame toe, dat dan weer verder gaat. Net als Profinet beschikt EtherCAT over een conventioneel TCP/IP-kanaal voor ethernet-compatibele communicatie en over een realtime-kanaal voor tijdkritische communicatie (Afbeelding 1, rechts).

Hoewel verschillende standaards voor industrieel ethernet op duidelijk verschillende mechanismen gebaseerd zijn, ondersteunen ze allemaal realtime communicatie die bij conventioneel ethernet ontbreekt, maar voor industriële communicatie vereist is. Bij de implementatie van deze standaards kunnen ontwikkelaars tegen de beperkingen in prestaties aan lopen van de ontwerp-opties en eisen voor realtime communicatie van hun toepassing.

Realtime toepassingen zijn afhankelijk van responses die met weinig vertraging aankomen en die binnen een consistente periode na de opdracht, invoer of andere stimulus worden afgeleverd. In de cyclische processen uit industriële systemen zorgen systemen met weinig vertraging ervoor dat processen zo snel mogelijk na het begin van elke cyclus worden uitgevoerd. Schommelingen of andere verstoringen in zulke systemen kunnen een onvoorspelbare variatie in de cyclus veroorzaken, waardoor het systeem de processen niet meer betrouwbaar en consistent met hoge cyclussnelheden kan uitvoeren.

Vroeger konden ontwikkelaars niet anders dan hun eigen hardware-oplossingen ontwerpen om aan de eisen van realtimecommunicatie van industriële toepassingen te voldoen. Een complicerende factor van de meeste aanpakken is dat voor algemene toepassingen ontwikkelde hardware en software zich richt op het optimaliseren van de algemene prestaties en niet op de eisen van realtime verwerking.

Op softwareniveau willen ontwikkelaars van industriële toepassingen weinig vertraging hebben, een deterministische respons die doorgaans in realtime Linux aanwezig is en, bij nog strengere eisen, een realtime besturingssysteem (RTOS). De vertraging en de deterministische prestaties zijn uiteindelijk afhankelijk van de in het onderliggende hardwareplatform toegepaste processor.

Een processor voor algemeen gebruik als de Arm® Cortex®-A core is ideaal voor software die op de hogere niveaus van een toepassing wordt uitgevoerd, ook in de industriële automatisering. Typische processoren voor algemeen gebruik gebruiken van meerlaagse caches en meertraps instructie-pipelines om de verwerkingssnelheid op te voeren (Afbeelding 2).

Schema van de Arm Cortex-A met meerdere verbindingslagen en hulpbronnen om de snelheid bij het uitvoeren van allerlei taken te optimaliserenAfbeelding 2: Bij een processor voor algemeen gebruik als de Arm Cortex-A maakt de architectuur gebruik van meerdere verbindingslagen en hulpbronnen om de snelheid van allerlei toepassingstaken te optimaliseren. (Afbeelding: Texas Instruments)

Diezelfde architecturen maken het ontwerpers van industriële communicatie lastig om de realtime prestaties te halen die voor de industriële automatisering in het algemeen en realtime ethernetsystemen in het bijzonder vereist zijn. Elke cache-, geheugen- en verbindingslaag verlengt de (vertragings)tijd voor het uitvoeren van cyclische processen. Omdat de mate waarin de processor deze lagen moet doorlopen van de ene cyclus tot de andere kan verschillen, kan de responstijd dramatisch variëren.

Vroeger moesten de ontwerpers in zulke gevallen de prestatiegevoelige delen van hun systemen met speciale hardware, field-programmable gate arrays (FPGAs), of zelfs met speciaal voor de toepassing ontwikkelde geïntegreerde schakelingen (ASIC's) implementeren. Voor het ondersteunen van realtime ethernet betekende dit bijvoorbeeld dat de MAC en andere realtime functionaliteit in een FPGA of ASIC moest worden geïmplementeerd.

Hoewel maatwerk hardware een uiterst effectieve oplossing qua prestaties kan bieden, maken de duidelijk hogere kosten en complexiteit van het resulterende ontwerp deze aanpak alleen praktisch voor toepassingen waar alles moet wijken voor de allerhoogste prestaties. Texas Instruments biedt voor industriële communicatie een meer praktische en betaalbare oplossing door de architectuur van de Sitara microprocessorfamilie optimaal te gebruiken.

Subsystemen voor industriële communicatie

De Sitara processorfamilie bevat de snelle Arm Cortex-A processor voor algemene toepassingen en een of meer exemplaren van zijn Programmable Real-Time Unit en Industrial Communication SubSystem (PRU-ICSS). Terwijl de Cortex-A processor de toepassing uitvoert, biedt de PRU-ICSS realtime verwerking en I/O voor protocollen voor industrieel ethernet en andere besturingsfuncties (Afbeelding 3).

Schema van de Sitara processorfamilie van Texas InstrumentsAfbeelding 3: Processoren uit de Sitara familie van Texas Instruments hebben een Arm Cortex-A processor voor algemene toepassingen plus een gespecialiseerd, programmeerbaar realtime deel dat geoptimaliseerd is voor de deterministische prestaties met weinig vertraging zoals in realtime toepassingen vereist. (Afbeelding: Texas Instruments)

Elk subsysteem van de Sitara Programmable Real-Time Unit (PRU) beschikt over twee realtime cores (PRU0 en PRU1, zie Afbeelding 3) die met 200 megahertz (MHz) een cyclustijd per instructie van vijf nanoseconde (ns) hebben. De cores beschikken over een kleine instructieset die zonder instructie-pipeline worden uitgevoerd zodat individuele instructies deterministisch worden uitgevoerd. De cores hebben via een speciale 32-bits verbinding toegang tot gedeelde hulpbronnen om de vertraging van bewerkingen met randapparatuur te verminderen. Hiermee worden ze rechtstreeks met de randapparaten verbonden inclusief Management Data Input/Output (MDIO) en Media Independent Interface (MII) voor realtime ethernet. Bovendien is elke PRU-core direct met de externe pinnen van het apparaat verbonden via een eigen groep van maximaal 30 ingangen en 32 uitgangen (Afbeelding 4).

Schema van de Sitara processoren van Texas InstrumentsAfbeelding 4: De in de Sitara processoren van Texas Instruments geïntegreerde PRU gebruikt de rechtstreekse toegang tot invoer- en uitvoerpinnen plus andere hardware-elementen om de vertraging in industriële toepassingen te verminderen. (Afbeelding: Texas Instruments)

De realtime cores kunnen dankzij deze architectuur van nauw gekoppelde randapparaten onafhankelijk functioneren en vertragingen vermijden zoals die optreden wanneer in een systeem voor algemene verwerking meerdere verbindingen en lagen moeten worden doorlopen. Door de combinatie van snelle monocyclische uitvoering en directe toegang tot randapparaten kan het subsysteem cyclische processen deterministisch uitvoeren en snel en voorspelbaar op externe gebeurtenissen reageren. Het PRU-subsysteem kan daardoor veel sneller I/O-bewerkingen uitvoeren en externe pinnen efficiënter gebruiken dan de processor voor algemeen gebruik op dezelfde chip (Afbeelding 5).

Schema van het in de Sitara processoren van TI ingebouwde Programmable Real-Time Unit (PRU) subsysteemAfbeelding 5: Het in de Sitara processoren van TI ingebouwde Programmable Real-Time Unit (PRU) subsysteem voert nooit meer dan één instructie per keer uit en heeft directe toegang tot de pinnen van het apparaat. Daardoor hoeft het door veel minder lagen heen te lopen om signalen van de pinnen uit te lezen en ernaartoe te schrijven (rechts). Het werken met randapparaten gaat dan ook sneller dan met de bijbehorende Arm Cortex-A processor (links). (Afbeelding: Texas Instruments)

De combinatie van snelle I/O en een cyclustijd van 5 ns in de PRU-cores levert de kleine vertraging en deterministische prestaties op die nodig zijn voor industriële communicatie. Op een hoger niveau biedt deze architectuur flexibele mechanismen om de Arm Cortex-A en het PRU-subsysteem geoptimaliseerd en gecoördineerd te gebruiken voor maximale prestaties in industriële toepassingen.

De verschillende cores gebruiken de hulpbronnen naar behoefte gescheiden en gedeeld en kunnen zo elk voor zich maximale prestaties leveren en samen complexe realtime toepassingen uitvoeren. Individuele cores kunnen de voor hen geschikte taken onafhankelijk uitvoeren, terwijl ze voor veeleisende realtime-taken de verwerking tussen de verschillende nauw gekoppelde cores kunnen delen. Doordat de PRU-cores de hulpbronnen van de Cortex-A core rechtstreeks kunnen benaderen, kunnen de realtime bewerkingen en interactie met de randapparaten in beide bedrijfsmodi met hoge prestaties worden uitgevoerd.

De Sitara systeemarchitectuur biedt zowel in hardware als in software gecoördineerde mechanismen om de toewijzing en het beheer van hulpbronnen te optimaliseren. De communicatiemogelijkheden tussen de processoren, zoals hardware postvakken en lock registers voor de hulpbronnen, zorgen op hardware-niveau mede voor synchronisatie tussen de Cortex-A processor en de PRU-ICSS.

Op software-niveau biedt de ondersteuning van Linux multiprocessing services een standaard omgeving om taken nauw gekoppeld en gecoördineerd uit te voeren. De kernel van het besturingssysteem op de Arm Cortex-A core coördineert op runtime de systeembewerkingen van de PRU via standaard RemoteProc (Remote Process) en rpmsg (Remote Process Messaging) services met zijn eigen drivers en bijpassende drivers in de PRU firmware. RemoteProc services zorgen voor het laden van de PRU firmware en daarop volgende verwerking, terwijl het rpmsg framework het uitwisselen van berichten tussen de toepassing en de PRU verzorgd via de virtio virtualisatie-interface (Afbeelding 6).

Schema van de Sitara processoren van Texas InstrumentsAfbeelding 6: De Sitara processoren van Texas Instruments ondersteunen standaard services voor interactie en coördinatie van toepassingen tussen de Arm Cortex-A host-processor en het PRU-subsysteem. (Afbeelding: Texas Instruments)

De voordelen van deze architectuur komen met name tot hun recht door de mogelijkheid de ontwikkeling te vereenvoudiging en de prestaties te verhogen van de connectiviteit in industriële toepassingen als communicatie-interfaces (zoals Serial Peripheral Interface SPI) tot complexe protocollen voor industrieel ethernet-protocollen. De Sitara processoren van TI kunnen protocollen voor realtime ethernet als Profinet efficiënt uitvoeren door de combinatie van software protocolstacks op de Cortex-A processor en realtime services die in de PRU firmware worden uitgevoerd (Afbeelding 7).

Schema van hoe de Sitara processor van Texas Instruments de eisen van een protocol voor industrieel ethernet kan implementerenAfbeelding 7: Een Sitara processor van Texas Instruments kan door de verwerking van software in de Arm Cortex-A host-processor en van firmware in het PRU-subsysteem zowel aan de eisen voor algemene verwerking als aan die van een realtime protocol voor industrieel ethernet als Profinet voldoen. (Afbeelding: Texas Instruments)

Deze aanpak vormt een eenvoudige oplossing om meerdere protocollen in één toepassing te ondersteunen. Ontwerpers hoeven alleen maar de voor elk protocol benodigde stack en firmware gelijktijdig in de Sitara processor uit te voeren (Afbeelding 8).

Afbeelding van een Sitara processor van Texas Instruments die gelijktijdig interfaces en protocollen voor industriële communicatie ondersteuntAfbeelding 8: De Sitara processor van Texas Instruments kan, door de efficiënte verwerking in de PRU en de prestaties van de software die op de Arm Cortex-A processor draait, gelijktijdig meerdere communicatie-interfaces en protocollen ondersteunen. (Afbeelding: Texas Instruments)

TI levert complete protocolstacks voor verschillende protocollen voor seriële communicatie, veldbus en realtime ethernet ondersteunen, zoals EtherCAT, Profinet en Sercos III. Ontwerpers kunnen op één Sitara-systeem protocolstacks combineren en zo aan de uiteenlopende connectiviteitseisen voor een typische PLC of industriële switch voldoen waarin bijvoorbeeld een protocol voor industrieel ethernet als Profinet naar de host en een veldbus als Profibus of IO-Link naar de randapparatuur moeten worden ondersteund.

Beschikbare standaard implementaties van industrieel ethernet worden als binaire black box geleverd, maar TI geeft ontwikkelaars bovendien enkele voorbeelden van services voor industriële communicatie. Een specifiek voor deze familie processoren ontwikkelde Processor Software Development Kit (Processor-SDK) van TI, als de Processor SDK voor de AM437x Sitara processoren, heeft een application programming interface (API) voor de betreffende familie van processoren. Deze API's bevatten functionaliteit die specifiek voor deze familie is en bieden intuïtieve abstracties voor laag-niveau bewerkingen als GPIO- of IO-Link-transacties (Listing 1).

Copy /* GPIO LED toggling*/ ...
Board_init(boardCfg); GPIO_init(); While(1) { GPIO_write(Board_LED1, GPIO_PIN_VAL_HIGH); Delay(); GPIO_write(Board_LED1, GPIO_PIN_VAL_LOW); Delay(); } /* IO-LINK status */ ...
Board_init(boardCfg); ...
IOLINK_socGetFwCfg(peripheralNum, &iolink_cfg); ...
IOLINK_socSetFwCfg(peripheralNum, &iolink_cfg); ...
IOLINK_init(); ...
iolinkHandle = IOLINK_open(peripheralNum, &iolinkParams); ...
status = IOLINK_control(iolinkHandle, iolinkCmd, &iolinkCmdArg); ... 

Lijst 1: Deze fragmenten laten zien dat de Processor SDK API van Texas Instruments voor elke Sitara familie de ontwikkelaars zich op de functionele abstracties laat concentreren in plaats van tijd verdoen aan het afhandelen van bitbewerkingen of registertoegang op laag niveau. (Code: Texas Instruments)

Sneller ontwikkelen

Ontwikkelaars kunnen, naast de door TI verstrekte code en hulpmiddelen om op Sitara processoren protocollen voor industriële communicatie te implementeren, de ontwikkeling van hun eigen software voor industriële communicatie versnellen door protocollen, drivers en PRU-firmware uit aanvullende pakketten van TI en andere leveranciers van protocolstacks te gebruiken. Evenzo helpt de TMDSIDK437X Industrial Development Kit (IDK) van TI bij de ontwikkeling te versnellen met een uitgebreid hardwareplatform voor industriële toepassingen op basis van de Sitara (Afbeelding 9).

Afbeelding van de TMDSIDK437X IDK van Texas InstrumentsAfbeelding 9: De TMDSIDK437X IDK van Texas Instruments bevat een Sitara processor, geheugen en een uitgebreide set randapparaten, interfaces en communicatiekanalen. Hij biedt ontwikkelaars daarmee een platform voor het evalueren van protocollen voor industriële communicatie en voor het snel ontwikkelen van toepassingen in de industriële automatisering. (Afbeelding: Texas Instruments)

De TMDSIDK437X IDK board van TI bevat 1 gigabyte (Gbyte) double data rate 3 (DDR3) RAM-geheugen (RAM), quad-SPI NOR flash, en een AM4379 Sitara processor van TI. De AM4379 processor bevat een Arm Cortex-A9 processor en twee PRU-subsystemen, elk met twee PRU cores.

De Sitara AM4379 kan in een typisch netwerk voor industriële automatisering meerdere rollen vervullen. Naast gebruik in een multi-protocol systeem zoals bij PLC's, switches en gateways, kunnen Sitara AM4379 processoren door de geïntegreerde grafische en weergave-subsystemen in apparatuur met een HMI worden toegepast.

De IDK board bevat naast poorten voor randapparaten en communicatie ook ethernet-interfacechips zoals de TLK105 10/100 Mbit/s PHY transceiver van Texas Instruments voor verbindingen via industrieel ethernet en de Microchip Technology KSZ9031RNXIA-TR gigabit (Gbit) PHY transceiver voor conventioneel ethernet.

Een toepassing voor industriële communicatie met deze kit is recht-toe-recht-aan te implementeren, waarbij slechts een voeding van 24 volt en een ethernetverbinding met het ontwikkelsysteem nodig zijn.

De PRU-ICSS set voor industriële software van TI bevat softwarepakketten voor de eerder genoemde protocollen voor industriële communicatie. Ontwikkelaars kunnen in de Code Composer Studio geïntegreerde ontwikkelomgeving van TI de met de pakketten meegeleverde voorbeeldtoepassingen snel laden, bouwen en uitvoeren om kennis op te doen of ze in hun eigen toepassingen inbouwen.

Ontwikkelaars kunnen op basis van de TI software en de PRU-ICSS pakketten voor industriële software snel geavanceerde systemen voor industriële automatisering implementeren zoals een via ethernet aangesloten motorcontroller (Afbeelding 10).

Afbeelding van de IDK TMDSIDK437X van Texas Instruments en software van Texas InstrumentsAfbeelding 10: De combinatie van de TMDSIDK437X IDK en software van Texas Instruments levert een bijzonder effectief ontwikkelplatform op voor het snel implementeren van industriële systemen zoals de hier afgebeelde via ethernet aangesloten motorcontroller. (Afbeelding: Texas Instruments)

Het PRU subsysteem verzamelt in de controller voor de motoraandrijving de positiegegevens via de op de TMDSIDK437X board aanwezige analoog-digitaalconverter (ADC) interface of de EnDat digitale bidirectionele encoder-interface. De Arm Cortex-A processor gebruikt deze gegevens om een Field Oriented Control (FOC) algoritme uit te voeren waarmee een nieuwe set parameters voor de motorcontroller wordt gemaakt die vervolgens via een pulsbreedte (PWM) gemoduleerd kanaal in de Sitara wordt verzonden. De op de TMDSIDK437X board aanwezige DRV8313 motoraansturing van TI verzendt tenslotte de aangepaste parameters voor de motor.

Ontwikkelaars kunnen de TMDSIDK437X IDK board met de TI software gebruiken om snel toepassingen in de industriële automatisering te implementeren die via allerlei interfaces en communicatieprotocollen zijn verbonden. De set kan voor maatwerk toepassingen als uitgebreide referentie worden gebruikt om de ontwikkeling van de hardware te versnellen. De TI Processor SDK en het PRU-ICSS pakket voor industriële software bieden, samen met deze hardware, een ontwikkelplatform waarmee aan de eisen van de op verschillende protocollen voor industriële communicatie gebouwde toepassingen kan worden voldaan.

Conclusie

Er worden aan geavanceerde systemen voor industriële automatisering steeds meer eisen gesteld. Uitstekende prestaties bij het uitvoeren van protocollen voor industriële communicatie is daarbij essentieel. Hoewel in deze systemen processoren voor algemeen gebruik nodig zijn voor het uitvoeren van algoritmes en processen op de hogere niveaus, zijn meestal gespecialiseerde apparaten nodig om de realtime protocollen voor industriële communicatie voor veldbus en industrieel ethernet met weinig vertraging en deterministisch te ondersteunen.

We hebben laten zien dat de Sitara familie van Texas Instruments zowel verwerkingseenheden voor algemeen gebruik als voor realtime verwerking bevat die aan deze uiteenlopende eisen kunnen voldoen. Ontwikkelaars kunnen een ontwikkelset voor industriële toepassingen op basis van de Sitara van Texas Instruments gebruiken, samen met een kant-en-klare communicatieprotcolstack, om geavanceerde toepassingen in de industriële automatisering snel te ontwikkelen en een groot aantal opties voor industriële communicatie te ondersteunen.

DigiKey logo

Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.

Achtergrondinformatie over deze auteur

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk heeft meer dan 20 jaar ervaring in het schrijven voor en over de elektronicasector met betrekking tot heel wat onderwerpen, waaronder hardware, software, systemen en toepassingen zoals het IoT. Hij behaalde zijn filosofiediplomain neurowetenschappen over neuronale netwerken en werkte in de ruimtevaartsector op massaal verspreide veilige systemen en algoritmeversnellingsmethoden. Wanneer hij geen artikels over technologie en techniek schrijft, werkt hij aan toepassingen voor “deep learning” voor herkennings- en aanbevelingssystemen.

Over deze uitgever

De Noord-Amerikaanse redacteurs van DigiKey