Snelle configuratie van industriële automatiseringsfaciliteiten met behulp van microcontroller debuggers op afstand

Door Bill Giovino

Bijgedragen door De Noord-Amerikaanse redacteurs van DigiKey

In de industriële automatisering wordt steeds meer gebruik gemaakt van single-bordcomputers (SBC's) op basis van microcontrollers voor de besturing van facilitaire werkzaamheden, ten einde de efficiëntie te verhogen en de productiviteit te verbeteren. Vaak zijn de gebruikte SBC's een combinatie van kant-en-klare SBC's met configureerbare firmware, en aangepaste SBC's met aangepaste firmware. Voor nieuwe industriële installaties, of voor bestaande installaties die net een herconfiguratie hebben ondergaan, kan het echter nodig zijn de SBC-firmware te wijzigen om de werking te verbeteren of bugs in de code te herstellen.

In dit artikel wordt ingegaan op de rol van SBC's en waarom debugging op afstand steeds belangrijker wordt in industriële omgevingen. Vervolgens worden remote debuggers en bijbehorende software van MikroElektronika geïntroduceerd en wordt uitgelegd hoe deze op een Wi-Fi-netwerk kunnen worden aangesloten om op afstand Arm®-microcontrollers in de meeste SBC's te debuggen.

SBC's in industriële computers

Moderne industriële automatiseringsinstallaties staan onder druk om de productiviteit te verhogen door een beter procesbeheer door meer precisie. Dit kan onder meer inhouden dat sensors met hoge resolutie worden gebruikt om de besturingsfirmware nauwkeurigere gegevens te verstrekken. Bovendien kunnen actuators zoals motors en solenoïden worden opgewaardeerd tot actuators die in veel fijnere stappen kunnen bewegen.

Zodra deze sensors en actuators met hogere nauwkeurigheid en hogere resolutie zijn geïnstalleerd, moet de besturingsfirmware in de SBC's die deze toestellen beheren, worden aangepast om te kunnen profiteren van de hogere resolutie. Als de firmware-upgrade niet door de huidige SBC kan worden verwerkt, moet een nieuwe SBC worden geïnstalleerd. In beide gevallen zal de nieuwe firmware gewoonlijk op de testbank worden getest en gedebugd alvorens in de industriële installatie te worden geïnstalleerd. Na de eerste tests wordt het nieuwe systeem in gebruik genomen.

Voor complexere processen mag het debuggen en programmeren daar echter niet ophouden. De werking in het systeem kan problemen aan het licht brengen die tijdens deze pre-productietests niet zijn ontdekt, en in veel gevallen is de enige manier om de firmware te optimaliseren het uitvoeren van debugging terwijl de SBC in gebruik is.

Nieuwe industriële automatiseringsinstallaties kunnen met dezelfde problemen te maken krijgen. Dit geldt met name voor krachtige systemen waarbij de regelkringen van de firmware nauwkeurig moeten worden afgesteld om aan de efficiëntie-eisen te voldoen. Ongeacht of de industriële installatie nieuw of gemoderniseerd is, stilstand is duur en moet tot een minimum worden beperkt. Dat betekent dat de SBC's in-system moeten worden gedebugged en geprogrammeerd.

Debuggen van industriële embedded systemen op afstand

Het debuggen van de SBC's die in industriële systemen worden gebruikt, is niet anders dan het debuggen van om het even welk op microcontrollers gebaseerd systeem. Een debugger moet fysiek via een kabel worden verbonden van de debug-poort van de microcontroller met een PC waarop een debug-softwareprogramma draait. Een technicus op de PC onderzoekt en debugt de firmware terwijl deze draait. Dit kan tijdrovend zijn als veel SBC's ter plaatse moeten worden gedebugd, aangezien de technici naar de fysieke locatie van elke SBC moeten reizen. Dit kan moeilijker zijn als sommige SBC's zich in een ruwe omgeving bevinden, of op fysiek afgelegen of ontoegankelijke locaties. Bovendien is het gebruikelijk dat slechts een beperkt aantal technici vertrouwd is met de aangepaste firmware, zodat die technici in korte tijd veel systemen moeten debuggen, wat de procedure ingewikkelder maakt en het proces vertraagt.

De oplossing is het gebruik van debuggers op afstand die fysiek zijn verbonden met de SBC's, maar waarvan de debugging-mogelijkheden worden geleverd door een netwerk-PC die zich elders bevindt. Remote debuggers kunnen worden aangesloten op de microcontroller debug-poort van de SBC terwijl ze via Wi-Fi zijn verbonden met het netwerk van een faciliteit. Een PC op hetzelfde netwerk op een geschikte plaats kan worden gebruikt om toegang te krijgen tot elk van de debuggers op afstand. De technicus heeft dan volledige debug-mogelijkheden op de PC op afstand.

Om deze debug op afstand uit te voeren, kunnen technici gebruik maken van Mikroe's CodeGrip, een familie van debuggers op afstand die via Wi-Fi verbinding kunnen maken met een pc op afstand om het programmeren en debuggen van veel Arm-microcontrollers te ondersteunen. De MIKROE-3460 CodeGrip Wi-Fi debugger kan worden gebruikt op de meeste Arm-microcontrollers met een JTAG-poort (Afbeelding 1). Het ondersteunt ook de Arm seriële draaduitgang (SWO) single-wire debugpoort die te vinden is op de meeste Arm Cortex-M3, Cortex-M4, en Cortex-M7-microcontrollers.

Afbeelding van MikroElektronika MIKROE-3460 CodeGrip debugger op afstandFiguur 1: De MIKROE-3460 CodeGrip debugger op afstand wordt fysiek aangesloten op de debug JTAG- of SWO-poort van een SBC. Het is op afstand toegankelijk via Wi-Fi om de Arm-microcontrollerfirmware te programmeren of te debuggen. (Bron afbeelding: Mikroe)

De Mikroe MIKROE-3460 CodeGrip wordt op de fysieke plaats van de Arm-gebaseerde SBC geplaatst. Het heeft een poort voor verbinding met de JTAG- of SWO-poort die beschikbaar is op de connector van de kaart. Het wordt dan tijdelijk via USB op een laptop aangesloten om de CodeGrip-eenheid aanvankelijk te configureren voor de microcontroller die wordt gedebugd. Voor krachtige systemen heeft de CodeGrip-eenheid een USB-C-connector. Dit is vooral handig in krappe situaties en bespaart tijd en frustratie, want in tegenstelling tot eerdere USB-connectors hebben USB-C-connectors geen boven- of onderoriëntatie.

Op de laptop die op de CodeGrip-eenheid is aangesloten, moet Mikroe's CodeGrip Suite worden uitgevoerd om de CodeGrip-eenheid voor het eerst te kunnen configureren. Het CodeGrip-apparaat geeft zijn status aan met vijf LED's (Afbeelding 2). Hierdoor krijgt een technicus ter plaatse kritieke statusinformatie over de goede werking van de eenheid, zonder dat hij een laptop hoeft aan te sluiten. Wanneer de stroom correct is ingeschakeld, zal de groene stroom-LED oplichten. Tijdens de normale werking van de CodeGrip-eenheid zal de rode actieve LED ook oplichten. Als de groene LED brandt en de rode LED uit is, kan dit wijzen op een slechte of geen verbinding met de JTAG/SWO-poort; belangrijke informatie voor een plaatselijke technicus dat de debug-kabel wellicht opnieuw moet worden geplaatst of vervangen.

Schema van MikroElektronika CodeGrip unit (klik om te vergroten)Afbeelding 2: De CodeGrip-unit biedt kritieke statusinformatie met behulp van vijf LED's die snelle visuele feedback in het veld bieden zonder dat een laptop hoeft te worden aangesloten. (Bron afbeelding: Mikroe)

Zodra de CodeGrip via USB op een laptop is aangesloten, zal de CodeGrip-eenheid een succesvolle verbinding aangeven door de gele USB-LINK LED op het apparaat te laten oplichten. De gebruiker voert vervolgens de CodeGrip Suite uit om de CodeGrip-eenheid via de USB-verbinding te configureren.

CodeGrip configureren

De CodeGrip Suite kan vaak automatisch de Arm microcontroller op de SBC detecteren, maar kan ook handmatig worden geconfigureerd met het kerntype, de grootte van het flash-geheugen en de RAM-configuratie. Niet alle Arm-productfamilies kunnen echter gemakkelijk met dezelfde debugger worden geconfigureerd. Voor de STM32 Arm-familie van STMicroelectronics levert Mikroe de MIKROE-3461 CodeGrip-eenheid. De Kinetis-familie vanNXP Semiconductors wordt ondersteund door de MIKROE-3462 CodeGrip. De werking van de CodeGrip-eenheid en de CodeGrip Suite is voor al deze zaken identiek.

Zodra de CodeGrip Suite is aangesloten en geconfigureerd, kan hij ter plaatse programmeer- en debugbewerkingen uitvoeren. Tijdens elke gegevensoverdracht naar de CodeGrip-eenheid zal de blauwe gegevens-LED knipperen om aan te geven dat er gegevens worden overgedragen tussen de CodeGrip-eenheid en de CodeGrip Suite. Dit geeft aan dat de CodeGrip-eenheid naar behoren werkt en bezig is met het programmeren of debuggen van de SBC.

Voor debugging op afstand kan de CodeGrip-eenheid worden geconfigureerd om via Wi-Fi verbinding te maken met een externe PC waarop ook de CodeGrip Suite wordt uitgevoerd. Om veiligheids- en prestatieredenen moet het Wi-Fi-netwerk dat wordt gebruikt om verbinding te maken met de CodeGrip-eenheden gescheiden zijn van de andere Wi-Fi-netwerken die in de industriële faciliteit worden gebruikt. Het verzenden van een groot .bin- of .hex-bestand naar de CodeGrip-eenheid via Wi-Fi is het equivalent van het downloaden van een groot bestand naar een pc, dus het kan het hele netwerk vertragen. Als een externe PC met succes verbinding maakt met de CodeGrip-eenheid, zal de oranje NET-LINK LED op de CodeGrip-eenheid oplichten, wat aangeeft dat de verbinding geslaagd is. Zodra de CodeGrip-eenheid is geconfigureerd, kan de via USB aangesloten laptop worden losgekoppeld.

De CodeGrip Suite kan het gehele flash-geheugen op de doel-microcontroller lezen, programmeren en wissen. Hij kan ook de inhoud van het flashgeheugen van de microcontroller vergelijken met een bronbestand om na te gaan of de firmware authentiek is en er niet mee is geknoeid. Dit kan ook nuttig zijn tijdens een beveiligingsaudit om de beveiliging van de firmware te controleren zonder naar de fysieke locatie van elke SBC te hoeven reizen.

De CodeGrip Suite kan ook een hardware reset uitvoeren van de doel microcontroller. Dit kan nuttig zijn bij een slecht functionerende SBC of wanneer een inbreuk op de beveiliging wordt vermoed. Normaliter voert een gereset SBC bij het opstarten een ingebouwde zelftest (BIST) uit die veiligheidscontroles omvat, waarbij wordt nagegaan of het apparaat naar behoren werkt en er niet mee is geknoeid.

Een krachtige eigenschap van de Mikroe CodeGrip-eenheid is dat deze de Arm SWO real-time debugpoort ondersteunt. De SWO-pin streamt debug-informatie over de status van de Arm-microcontroller en kan worden gebruikt om, in real time, status- en trace-informatie over de werking van de firmware te verschaffen. Mikroe levert een SWO bibliotheek met functies die de debug mogelijkheden van de CodeGrip Suite kunnen verbeteren (Afbeelding 3). Hierdoor kan de firmware van de microcontroller gemakkelijk op afstand worden bewaakt en gedebugd.

Afbeelding van MikroElektronika CodeGrip Suite kan real-time debug- en traceerinformatie leverenAfbeelding 3: De CodeGrip Suite kan debug- en traceerinformatie in real-time leveren voor een Arm-microcontroller door data uit de SWO-poort te streamen. Debug informatie is kleurgecodeerd voor gemakkelijke referentie. (Bron afbeelding: Mikroe)

SWO-berichten hebben drie berichtcategorieën: info, waarschuwing en fout. CodeGrip kan elk of alle van deze berichtcategorieën weergeven. De weergegeven berichten zijn kleurgecodeerd voor gemakkelijke verwijzing: blauw voor info, geel voor waarschuwing en rood voor fout. Zo kunnen gebruikers snel beslissen wat moet worden bekeken, en ook gemakkelijk prioriteit geven aan foutmeldingen boven waarschuwingen en info.

Conclusie

Het debuggen van SBC's in industriële installaties terwijl zij in het systeem zijn, kan tijdrovend zijn, vooral wanneer veel SBC's moeten worden geprogrammeerd en gedebugged. Bovendien is het niet altijd praktisch om elke afzonderlijke plaats te bezoeken. Zoals aangetoond, bespaart debuggen op afstand via Wi-Fi met apparaten zoals CodeGrip en de bijbehorende software tijd en verbetert het de productiviteit.

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 Bill Giovino

Bill Giovino

Bill Giovino is een ingenieur in elektronica met een BSEE van de Syracuse University. Hij is een van de weinigen die met succes de overstap maakten van ontwerpingenieur naar ingenieur veldtoepassingen en vervolgens naar technologiemarketing.

Meer dan 25 jaar lang heeft Bill met veel toewijding nieuwe technologieën gepromoot ten overstaan van zowel technisch als niet-technisch publiek voor vele bedrijven, waaronder STMicroelectronics, Intel en Maxim Integrated. Toen hij bij STMicroelectronics actief was, hielp Bill bij de doorbraak van de eerste successen van het bedrijf in de sector van microcontrollers. Bij Infineon stond Bill in voor de eerste toepassingen van het microcontrollerontwerp van het bedrijf in de Amerikaanse autosector. Als marketing consultant voor zijn bedrijf CPU Technologies, hielp Bill vele bedrijven om laag presterende producten op te krikken en er een succesverhaal van te maken.

Bill was een van de eersten die het Internet of Things toepaste. Hij plaatste de eerste volledige TCP/IP-stack op een microcontroller. Bill is trouw aan het motto “Verkoop via opvoeding” en wijst op het toenemende belang van duidelijke, goed geschreven mededelingen om producten online te promoten. Hij is moderator van de populaire LinkedIn Semiconductor Sales & Marketing Group en spreekt vlot B2E.

Over deze uitgever

De Noord-Amerikaanse redacteurs van DigiKey