Använd Sitaras specialiserade subsystem för kommunikation och processning inom industriautomation
Bidraget med av DigiKeys nordamerikanska redaktörer
2019-11-21
Att leverera tillförlitlig kommunikation till industriautomationssystem innebär unika utmaningar för utvecklarna. Dessa system förlitar sig på flera kommunikationsprotokoll som är utformade för att hålla tillförlitliga realtidsanslutningar bland de olika subsystem som används i industrimiljöer. I den miljön kan vanliga universalprocessorer vara otillräckliga för att konsekvent uppfylla kommunikationskraven i realtid när de kör applikationsprogramvaran.
Utvecklare behöver en utvecklingsplattform som de enkelt kan anpassa för att uppfylla de olika kraven i industritillämpningar.
Den här artikeln visar hur utvecklare kan använda en färdig utvecklingssats från Texas Instruments för att påskynda utvecklingen av industriella kommunikationslösningar. Kärnan i satsen utgörs av Texas Instruments Sitara-processor som erbjuder den kombination av beräkningsresurser och specialiserade kommunikationsegenskaper som krävs i industritillämpningar.
Krav för industrikommunikation
Som den viktigaste förutsättningen för avancerade tillverkningsstrategier ställs industriella kommunikationssystem inför allt striktare krav på realtidsrespons och tillförlitlighet i att länka grupper av sensorer, motorer och styrdon till programmerbara logikstyrenheter (PLC:er) och människa-maskin-gränssnitt (HMI).
Tillsammans med det här varierande urvalet av subsystem kan en industritillämpning omfattas av en kombination av prestandakrav, specialutrustning och föråldrade system som driver behovet av stöd för flera nätverkstekniker och protokoll. Det innebär att en enda miljö kan behöva stöd för flera fältbussprotokoll som Control Area Network (CAN), Modbus och Profibus samt industriella Ethernet-protokoll som Profinet, EtherCAT, Sercos III och andra.
Som för fältbusstandarderna har varje industriell Ethernet-standard tagits fram för en specifik uppsättning krav. Var och en specificerar den realtidsprestanda som saknas i konventionell Ethernet, men som krävs för industrikommunikation. Hur de realiserar den kapaciteten kan skilja sig betydligt från en industriell Ethernet-standard till en annan.
Till exempel tillåter Profinet att huvudstyrenheten kommunicerar med alla enheter i nätverket. Slavenheter kan i sin tur utbyta ramar med styrenheten, men endast kommunicera med andra enheter ocykliskt. För kommunikation ger det här protokollet en standard TCP/IP-kanal (transmission control protocol/internet protocol) för konventionellt datautbyte i icke-realtid. För datautbyte i realtid ger en Profinet-realtidskanal stöd för cykliska eller ocykliska utbyten mellan en styrenhet och slavenheter (figur 1, vänster).
Figur 1: Olika industriella Ethernet-stackas för Profinet (vänster) och EtherCAT (höger) kan tillhandahålla liknande tjänster som konventionell Ethernet, men skilja sig betydligt i metoden att stödja realtidskommunikation i sina högnivåprotokoll och underliggande MAC- (Media Access Control) och DLL-tjänster (Data Link Layer). (Bildkälla: Texas Instruments)
I EtherCAT kommunicerar mastern med slavenheter genom att inkludera kommandon och data för varje slav i en ram som överförs från nod till nod. När ramen passerar, läset varje slavnod av dess tilldelade kommandon och data och lägger till sin egna data till ramen när den fortsätter. Som Profinet kombinerar EtherCAT en konventionell TCP/IP-kanal för Ethernet-kompatibel kommunikation med en realtidskanal för tidskänslig kommunikation (figur 1, höger).
Trots att olika industriella Ethernet-standarder bygger på mycket varierande mekanismer har de alla förmåga att ge den realtidsprestanda som saknas i konventionellt Ethernet, men som krävs för industrikommunikation. Vid implementeringen av dessa standarder kan dock utvecklarna få problem med balansen mellan prestandabegränsningarna hos ofta förekommande designalternativ och realtidsprestandakraven i sina tillämpningar.
Realtidstillämpningar är beroende av låglatenssvar som levereras inom en specifik tidsperiod efter ett kommando, en inmatning eller andra styrande stimuli. I de cykelbaserade processerna som används i industrisystem säkerställer låglatenssystem att processerna sker så nära början på varje cykel som möjligt. Jitter eller andra faktorer i dessa system kan orsaka oväntade variationer i cykeln och bryta ner systemets förmåga att hantera processer med täta cykler på ett tillförlitligt och konsekvent sätt.
Tidigare var utvecklarna ofta tvungna att konstruera egna maskinvarulösningar för att uppfylla de realtidsutmaningar som förknippas med anslutningsbarhet inom industrin. De flesta lösningar kompliceras av att programvara- och maskinvara som utvecklats för allmänna datorändamål fokuserar på att optimera övergripande prestanda vid körning av tillämpningar istället för att hantera prestandakrav i realtid.
På programvarunivån kräver utvecklare av industritillämpningar låg latens och förutsägbara svarsfunktioner, vilket normalt tillhandahålls med realtids-Linux och, på en mer krävande nivå, med ett realtidsoperativsystem (RTOS). I slutänden bygger latens och förutsägbar prestanda på processorn som används i den underliggande maskinvaruplattformen.
En universalprocessor som Arm® Cortex®-A är idealisk för att köra programvara som utför högnivåuppgifter i eventuella tillämpningar inklusive sådana som krävs för industriautomation. Typiska universalprocessorer använder cache-minneshierarkier på flera nivåer och instruktionspipelines med flera steg för att påskynda behandlingen (figur 2).
Figur 2: I en universalprocessor som Arm Cortex-A använder arkitekturen flera lager av sammankopplingar och resurser för att optimera körning av de olika arbetslaster som förekommer vid körning av tillämpningar. (Bildkälla: Texas Instruments)
För utvecklare inom industrikommunikation gör dessa arkitekturegenskaper det svårare att uppnå de realtidsprestanda som krävs inom industriautomation i allmänhet och i realtids-Ethernet-system i synnerhet. Varje lager av cache, minne och sammankoppling ökar tiden som krävs för att utföra cykelbaserade processer (latens). Eftersom den grad processorn måste uppnå genom dessa lager kan ändras från cykel till cykel, kan svarstiden variera stort.
Tidigare har utvecklare med det här problemet implementerat de tids- och prestandakritiska delarna av sina system med dedikerad maskinvara, FPGA:er (field-programmable gate arrays), eller till och med tillämpningsspecifika integrerade kretsar (ASIC:er). För ett ge stöd till realtids-Ethernet, till exempel, har den här metoden inneburit att implementera MAC- och annan realtidsfunktion i en FPGA eller ASIC.
Även om anpassad maskinvara kan vara en mycket effektiv lösning när det gäller prestanda gör den stora ökningen i kostnad och komplexitet att metoden endast är användbar för tillämpningar där prestandakraven överskuggar alla andra hänsyn. Inom industrikommunikation tillhandahåller Texas Instruments en mer praktisk och kostnadseffektiv lösning genom att dra full nytta av multiprocessorarkitekturen hos sin Sitara-processorfamilj.
Subsystem för industrikommunikation
Sitaraprocessorfamiljen kombinerar en högpresterande Arm Cortex-A-tillämpningsprocessor med en eller flera instanser av PRU-ICSS (Programmable Real-Time Unit and Industrial Communication SubSystem). Medan Cortex-A-processorn kör huvudtillämpningen, ger PRU-ICSS den realtidsbehandlings- och IO-kapacitet som behövs för industriella Ethernet-protokoll och andra reglerfunktioner (figur 3).
Figur 3: Komponenterna i Texas Instruments Sitara-processorfamilj kombinerar en universal-Arm Cortex-A-processor med en specialiserad programmerbar realtidsenhet som är särskilt optimerad för att tillhandahålla den låga latens och förutsägbara prestanda som behövs i realtidstillämpningar. (Bildkälla: Texas Instruments)
Varje Sitara PRU-subsystem (Programmable Real-Time Unit) inkluderar två 200 megahertz (MHz) realtidskärnor (PRU0 och PRU1 som visas i figur 3) som körs med en cykeltid på fem nanosekunder (ns) per instruktion. Kärnorna är utformade med en liten uppsättning instruktioner som behandlas utan instruktionspipeline för att säkerställa förutsägbar körning av encykliga instruktioner. För att minska latensen hos perifera åtgärder har kärnorna tillgång till delade resurser via en dedikerad 32-bitarssammankoppling som förbinder dem direkt med flera kringenheter inklusive de MDIO (Management Data Input/Output) och MII (Media Independent Interface) som krävs för realtids-Ethernet. Dessutom kan varje PRU-kärna anslutas direkt till enhetens externa stift via sin egen uppsättning på 30 ingångar och 32 utgångar (figur 4).
Figur 4: PRU är integrerad i Texas Instruments Sitara-processorer och använder sin direktåtkomst till ingångs- och utgångsstiften samt andra maskinvaruresurser för att minska latensen i industritillämpningar. (Bildkälla: Texas Instruments)
Med den här tätt anslutna arkitekturen i periferin kan realtidskärnor arbeta oberoende och undvika fördröjningar som är förknippade med arbete via de många sammankopplingarna och lagren i ett typiskt generellt processorsystem. Kombinationen av snabb encykelkörning och direkt åtkomst till kringenheter gör att subsystemet kan köra cykelbaserade processer förutsägbart och svara snabbt och förutsägbart på externa händelser. Det innebär att PRU-subsystemet kan utföra IO-åtgärder och nå externa stift mycket effektivare än den medföljande universalprocessorn (figur 5).
Figur 5: Med körning av encykelinstruktioner och direkt åtkomst till enhetsstiften behöver det inbyggda PRU-subsystemet i TI Sitara-processorerna arbeta igenom betydligt färre lager för att läsa eller skriva signaler till enhetsstiften (till höger), vilket ger snabbare periferifunktioner än vad som är möjligt med den medföljande Arm Cortex-A-processorn (till vänster). (Bildkälla: Texas Instruments)
Kombinationen av höghastighets-IO och en cykeltid på 5 ns hos PRU-kärnorna ger den låga latens och förutsägbara prestanda som krävs för industrikommunikation. På en högre nivå erbjuder den här arkitekturen flexibla mekanismer som är utformade för att optimera koordinerad användning av Arm Cortex-A- och PRU-subsystemen för att maximera prestandan i industritillämpningar.
Genom att använda dedikerade och delade resurser efter behov kan de olika kärnorna arbeta med maximala prestanda på egen hand och tillsammans för körning av komplexa realtidsuppgifter. Uppgifter som är lämpade för en enskild kärna kan köras oberoende på den kärnan medan mer krävande realtidsuppgifter kan dela processorbelastningen mellan olika tätt sammankopplade kärnor. PRU-kärnornas förmåga att ge direkt åtkomst till Cortex-A-kärnans resurser hjälper till att säkerställa högprestandakörning av realtidsfunktioner och perifera interaktioner i endera driftläget.
För att optimera resurstilldelningen och hanteringen vid tätkopplad körning erbjuder Sitara-systemarkitekturen koordinationsmekanismer i både maskin- och programvara. På maskinvarunivån finns kommunikationsfunktioner mellan processorerna inklusive maskinvarubaserade mailkorgar och resurslåsregister som hjälper till att säkerställa synkroniseringen av Cortex-A-processorn och PRU-ICSS.
På programvarunivån finns support för Linux multiprocessortjänster som erbjuder en standarddriftmiljö för samordnad uppgiftskörning vid tätkopplad drift. Vid körning samordnar operativsystemkärnan som körs på Arm Cortex-A-kärnan PRU-systemets funktioner med standardtjänster för RemoteProc-kontroll (Remote Process) och rpmsg (Remote Process Messaging) med egna drivrutiner och matchande drivrutiner i den fasta PRU-programvaran. RemoteProc-tjänsterna hanterar den fasta inläsning av PRU-programvaran och efterföljande behandling medan rpmsg-ramverket möjliggör meddelandeutbyte från tillämpningen till PRU med virtio-virtualiseringsgränssnittet (figur 6).
Figur 6: Texas Instruments Sitara-processorer har stöd för en standarduppsättning tjänster för applikationsinteraktion och samordning av Arm Cortex-A-värdprocessorn och PRU-subsystemet. (Bildkälla: Texas Instruments)
Fördelarna med den här arkitekturen blir särskilt tydliga genom dess förmåga att förenkla utvecklingen och förstärka prestandan i industriella anslutningsalternativ från seriella kommunikationsgränssnitt som SPI (Serial Peripheral Interface) till komplexa industriella Ethernet-protokoll. TI Sitara-processorerna kan köra realtids-Ethernet-protokoll som Profinet effektivt genom en kombination av protokollprogramvarustackar som körs på en Cortex-A-processor och realtidstjänster som hanteras med fast PRU-programvara (figur 7).
Figur 7: Genom att samordna programvarukörningen i Arm Cortex-A-värdprocessorn och körningen av fast programvara i PRU-subsystemet kan en Texas Instruments Sitara-processor uppfylla kraven på både allmän processning och realtidshantering i ett industriellt Ethernet-protokoll som Profinet. (Bildkälla: Texas Instruments)
Den här metoden är en enkel lösning som ger stöd för flera protokoll i en enda tillämpning. Utvecklarna behöver bara köra stacken och den fasta programvaran som krävs för varje protokoll parallellt i Sitara-processorn (figur 8).
Figur 8: Körningseffektiviteten för fast programvara hos PRU och programvarukörningsprestandan hos dess Arm Cortex-A-processor gör att en Texas Instruments Sitara-processor kan ge samtidigt stöd för flera gränssnitt och protokoll för industrikommunikation. (Bildkälla: Texas Instruments)
TI erbjuder fullständiga protokollstackar för flera olika seriekommunikationsprotokoll, fältbussprotokoll och realtids-Ethernet-protokoll inklusive EtherCAT, Profinet och Sercos III. Genom att kombinera protokollstackar i samma Sitara-baserade system kan utvecklarna uppfylla de olika anslutningskraven för en typisk PLC eller industriströmställare som t.ex. ska stödja ett industriellt Ethernet som Profinet på värdsidan och en fältbuss som Profibus eller IO-Link på kringutrustningssidan.
Tillgängliga standardpaket för industri-Ethernet tillhandahålls som binära black box-paket, men TI ger utvecklarna ett antal exempel på industriella kommunikationstjänster. För utveckling av tillämpningar finns en familjespecifik sats, TI Processor Software Development Kit (Processor-SDK), som Processor SDK för AM437x Sitara-processorer som erbjuder ett API (application programming interface) för respektive processorfamilj. Genom att erbjuda familjespecifika funktioner ger dessa API:er intuitiva abstraheringar för lågnivååtgärder som GPIO- eller IO-Link-transaktioner (lista 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); ...
Lista 1: Som dessa utdrag visar gör Texas Instruments Processor SDK API för varje Sitara-familj det möjligt för utvecklarna att fokusera på funktionsabstraktioner istället för att behöva bitmanipulering eller registeråtkomst på låg nivå. (Kodkälla: Texas Instruments)
Accelererad utveckling
Utöver koden och verktygen som TI erbjuder för att implementera industriella kommunikationsprotokoll på Sitara-processorer kan utvecklarna påskynda utvecklingen av egen programvara för industrikommunikation med protokoll, drivrutiner och fast PRU-programvara i tilläggspaket från TI och andra protokollstackleverantörer. På liknande vis påskyndar TI TMDSIDK437X Industrial Development Kit (IDK) utvecklingen med en omfattande Sitara-baserad fast maskinvaruplattform för industritillämpningar (figur 9).
Figur 9: Texas Instruments TMDSIDK437X IDK kombinerar en Sitara-processor, minne och en omfattande uppsättning kringenheter, gränssnitt och kommunikationskanaler som ger utvecklarna en plattform där de kan utvärdera industriella kommunikationsprotokoll och snabbt utveckla industriautomationstillämpningar. (Bildkälla: Texas Instruments)
TI TMDSIDK437X IDK-kortet innehåller 1 gigabyte (Gb) DDR3 (double data rate 3) RAM-minne, quad-SPI NOR flash och en TI AM4379 Sitara-processor. AM4379-processorn kombinerar en Arm Cortex-A9-processor med två PRU-subsystem som vart och ett innehåller två PRU-kärnor.
I ett typiskt industriautomationsnätverk kan Sitara AM4379 spela flera roller. Utöver användning i multiprotokollsystem som PLC:er, switchar och gateways används Sitara AM4379-processorrna i utrustning som kräver HMI-stöd tack vare de integrerade grafik- och displaysubsystemen.
Tillsammans med flera kringenheter och kommunikationsportar inkluderar IDK-kortet Ethernet-gränssnittskretsar inklusive Texas Instruments TLK105 10/100 Mbit/s PHY-sändtagare för industriella Ethernet-anslutningar och Microchip Technology KSZ9031RNXIA-TR gigabit (Gbit) sändtagare PHY för konventionella Ethernet-anslutningar.
Det är enkelt att implementera en industriell kommunikationstillämpning med den här satsen, eftersom den endast kräver 24 volts strömförsörjning och en Ethernet-kabelanslutning till utvecklingssystemet.
Den industriella programvarusatsen TI PRU-ICSS innehåller programvarupaket för de industriella kommunikationsprotokoll som nämndes tidigare. Med TI Code Composer Studios integrerade utvecklingsmiljö (IDE) kan utvecklare snabbt läsa in, bygga och köra de provtillämpningar som medföljer paketen som utgångspunkt eller använda dem under produktionsfasen för sina egna tillämpningar.
Genom att använda TI:s programvara och PRU-ICSS Industrial Software-paket kan utvecklarna snabbt implementera sofistikerade industriella automationssystem som en Ethernet-ansluten motorstyrenhet (figur 10).
Figur 10: Kombinationen av Texas Instruments TMDSIDK437X IDK och Texas Instruments programvara är en mycket effektiv utvecklingsplattform för snabb implementering av industrisystem som den EtherCAT-anslutna motorstyrenheten som visas här. (Bildkälla: Texas Instruments)
I motorstyrenhetstillämpningen skulle PRU-subsystemet samla in motorpositionsdata med TMDSIDK437X-kortets analog-till-digitalomvandlargränssnitt (ADC) eller sitt EnDat digitala dubbelriktade kodargränssnitt. Med dessa data kan Arm Cortex-A-processorn köra en FOC-algoritm (Field Oriented Control) för att skapa en ny uppsättning motorstyrparametrar som levereras via en Sitara-pulsbreddsmodulerad (PWM) kanal. Slutligen skulle en TI DRV8313 motordrivrutin på TMDSIDK437X-kortet mata ut de justerade motorparametrarna.
Utvecklarna kan använda TMDSIDK437X IDK-maskinvarukortet med TI-programvara för att snabbt implementera industriella automationstillämpningar som är sammankopplade via olika gränssnitt och kommunikationsprotokoll. I specialiserade tillämpningar fungerar satsen som en omfattande referensdesign som kan hjälpa till att påskynda maskinvaruutvecklingen. Tillsammans med den här hårdvarubasen erbjuder TI Processor SDK och PRU-ICSS Industrial Software-paket en utvecklingsplattform som kan uppfylla kraven i nya tillämpningar som byggs på olika industriella kommunikationsprotokoll.
Slutsats
Bland en växande uppsättning krav är högpresterande körning av industriella kommunikationsprotokoll kritiskt för att förverkliga avancerade industriella automationssystem. Medan universalprocessorer krävs för att köra algoritmer och högnivåprocesser i dessa system behövs specialiserade enheter normalt för att ge den låga latens och förutsägbara prestanda som krävs för att stödja industriella realtidskommunikationsprotokoll för anslutning av fältbuss och industriellt Ethernet.
Som visas ovan erbjuder Texas Instruments Sitara-familj både de allmänna processorer och realtidprocessorer som krävs för att uppfylla dessa skilda krav. Med en Texas Instruments Sitara-baserad industriell utvecklingssats i kombination med förbyggda kommunikationsprotokollstackar, kan utvecklare snabbt distribuera sofistikerade industriautomationstillämpningar med stöd för en bred uppsättning industriella kommunikationsalternativ.
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.


