DKK | EUR | USD

Hurtig konfiguration af industrielle automatiseringsanlæg vha. remote debuggere til mikrocontrollere

Af Bill Giovino

Bidraget af Digi-Keys nordamerikanske redaktører

Industrielle automatiseringsanlæg øger brugen af mikrocontroller-baserede SCB'er (single-board computere) til at kontrollere driftsanlæg for at øge effektivitet og forbedre produktivitet. Ofte er de anvendte SBC'er en kombination af almindelige SBC'er med konfigurerbar firmware og tilpassede SBC'er med brugerdefineret firmware. For nye industrielle anlæg eller for eksisterende anlæg, der lige har gennemgået en omkonfigurering, kan det være nødvendigt at ændre SBC-firmwaren for at forbedre operationer eller rette kodefejl.

Denne artikel vil diskutere SBC'ers rolle og hvorfor remote debugging bliver stadig vigtigere i industrielle miljøer. Derefter introduceres remote debuggere og tilhørende software fra MikroElektronika og forklares hvordan de kan forbindes til et Wi-Fi-netværk for remote debugging af Arm® mikrocontrollere i de fleste SBC'er.

SBC'er i industrielle computere

Moderne industrielle automatiseringsanlæg er under pres for at øge produktivitet ved at forbedre processtyring og have større præcision. Dette kan omfatte brug af sensorer med høj opløsning til at levere mere nøjagtige data til kontrolfirmware. Derudover kan aktuatorer såsom motorer og solenoider opgraderes til aktuatorer med meget finere intervaller.

Når disse sensorer og aktuatorer med højere nøjagtighed og højere opløsning er installeret, skal kontrol firmwaren i SBC'erne, der styrer disse enheder, modificeres for at drage fordel af den øgede opløsning. Hvis opgradering af firmware ikke kan håndteres af den aktuelle SBC, skal en ny SBC installeres. I begge tilfælde testes og debugges den nye firmware typisk på bænken, inden den installeres i det industrielle anlæg. Efter indledende test sættes det nye system i drift.

For mere komplekse processer slutter debugging og programmering muligvis ikke der. Drift af anlægget kan afsløre problemer, der ikke blev opdaget under test før produktion, og i mange tilfælde er den eneste måde at optimere firmwaren på ved at udføre debugging, mens SBC'en er i drift.

Nye industrielle automatiseringsanlæg kan stå over for de samme problemer. Dette gælder især for højtydende systemer, hvor firmware kontrol-loops skal finjusteres for at opfylde krav til effektivitet. Uanset om det industrielle anlæg er nyt eller opgraderet, er nedetid dyrt og skal minimeres. Det betyder, at SBC'erne skal debugges og programmeres på anlægget.

Remote debugging af industrielle embedded systemer

Debugging af SBC'er, der bruges i industrielle systemer er ikke anderledes end debugging af ethvert andet mikrocontroller-baseret system. En debugger skal være fysisk forbundet via kabel fra mikrocontrollerens debug-port til en PC, der kører et debug-softwareprogram. En tekniker på PC'en undersøger og debugger derefter firmwaren, mens den kører. Dette kan være tidskrævende, hvis der skal debugges mange SBC'er på anlægget, da teknikerne skal rejse til den fysiske placering af hver SCB. Dette kan være vanskeligere, hvis nogle SBC'er er i barske omgivelser, fysisk fjerntliggende eller utilgængelige steder. Derudover er det typisk, at kun et begrænset antal teknikere er fortrolige med den brugerdefinerede firmware. Dette kræver, at disse teknikere debugger mange systemer på kort tid, hvilket komplicerer procedurerne og forsinker processen.

Løsningen er at bruge remote debugging, der er fysisk forbundet til SBC'erne, men som får debugfunktion leveret af en netværksbaseret PC, der er placeret et andet sted. Remote debuggere kan tilsluttes SBC'ens mikrocontroller debug-port, mens de er tilsluttet anlæggets netværk via Wi-Fi. En PC på det samme netværk kan på en bekvem placering bruges til at få adgang til enhver af de remote debuggere. Teknikeren har derefter fuldstændig debugfunktion på den eksterne PC.

For at udføre denne remote debugging kan ingeniører bruge Mikroes CodeGrip, der er en familie af remote debuggere, der kan oprette forbindelse via Wi-Fi til en ekstern PC for at understøtte programmering og debugging af de fleste Arm-mikrocontrollere. MIKROE-3460 CodeGrip Wi-Fi-debugger kan bruges på de fleste Arm-mikrocontrollere med en JTAG-port (figur 1). Den understøtter også Arm SWO (Serial Wire Output) single-wire debug port, der findes på de fleste Arm Cortex-M3, Cortex-M4 og Cortex-M7 mikrocontrollere.

Billede af MikroElektronika MIKROE-3460 CodeGrip remote debugger Figur 1: MIKROE-3460 CodeGrip remote debugger er fysisk forbundet til en SBC's debug JTAG- eller SWO-port. Den kan bruges remote via Wi-Fi for at programmere eller debugge Arm-mikrocontroller firmware. (Billedkilde: Mikroe)

Mikroe MIKROE-3460 CodeGrip er placeret på den fysiske placering af den Arm-baserede SBC. Den har en port, der kan forbindes til JTAG- eller SWO-porten, der er tilgængelig på kortstikket. Derefter forbindes den midlertidigt til en laptop via USB for at konfigurere CodeGrip-enheden til den mikrocontroller, der skal debugges. For højtydende systemer har CodeGrip enheden et USB-C stik. USB-C-stik er især nyttigt i trange situationer og sparer tid samt frustration, da USB-C-stik i modsætning til tidligere USB-stik ikke har en top- eller bundretning.

Den laptop, der er tilsluttet CodeGrip-enheden, skal køre Mikroes CodeGrip Suite for at konfigurere CodeGrip-enheden. CodeGrip-enheden angiver status med fem lysdioder (figur 2). Dette giver kritisk statusinformation til en teknikere på stedet, om enheden fungerer korrekt uden at være tilslutte en laptop. Når den er tændt korrekt, lyser den grønne LED. Under normal brug af CodeGrip-enheden lyser den røde aktive LED også. Hvis den grønne LED er tændt, og den røde LED er slukket, kan det indikere en dårlig eller ingen forbindelse til JTAG/SWO-porten; vigtig information til en lokal tekniker om hvorvidt at debugkablet skal genindsættes eller udskiftes.

Diagram over MikroElektronika CodeGrip enhed (klik for at forstørre)Figur 2: CodeGrip-enheden giver kritisk statusinformation ved hjælp af fem lysdioder, der giver hurtig visuel feedback i marken uden at skulle tilslutte en laptop. (Billedkilde: Mikroe)

Når den først er tilsluttet via USB til en laptop, vil CodeGrip-enheden angive en vellykket forbindelse ved at den gule USB-LINK-LED på enheden lyser. Brugeren kører derefter CodeGrip Suite for at konfigurere CodeGrip-enheden over USB-forbindelsen.

Konfiguration af CodeGrip

CodeGrip Suite kan ofte automatisk registrere Arm-mikrocontrolleren på SBC'en, men den kan også konfigureres manuelt med kernetype, flash-hukommelsesstørrelse og RAM-konfiguration. Imidlertid kan ikke alle Arm-produktfamilier konfigureres let vha. den samme debugger. Til STMicroelectronics STM32 Arm-familie, forsyner Mikroe MIKROE-3461 CodeGrip enhed. NXP Semiconductors' Kinetis-familie støttes af MIKROE-3462 CodeGrip. For alle disse er driften af CodeGrip-enheden og CodeGrip Suite identisk.

Når tilsluttet og konfigureret, kan CodeGrip Suite udføre programmering og debugging på stedet. Under enhver dataoverførsel til CodeGrip-enheden vil den blå LED blinke, hvilket indikerer, at data overføres mellem CodeGrip-enheden og CodeGrip Suite. Dette indikerer, at CodeGrip-enheden fungerer korrekt og at den enten programmerer eller debugger SBC'en.

Til remote debugging kan CodeGrip-enheden konfigureres til at oprette forbindelse via Wi-Fi til en ekstern PC, der også kører CodeGrip Suite. Af sikkerheds- og præstationsformål bør det Wi-Fi-netværk, der bruges til at oprette forbindelse til CodeGrip-enhederne, være adskilt fra de andre Wi-Fi-netværk, der anvendes i det industrielle anlæg. At sende en stor .bin- eller .hex-fil til CodeGrip-enheden via Wi-Fi svarer til at downloade en stor fil til en PC, så det kan bremse hele netværket. Hvis en ekstern PC med succes opretter forbindelse til CodeGrip-enheden, lyser den orange NET-LINK-LED på CodeGrip-enheden, hvilket indikerer en vellykket forbindelse. Når CodeGrip-enheden er konfigureret, kan den laptop, der er tilsluttet via USB, afbrydes.

CodeGrip Suite kan læse, programmere og slette hele flashhukommelsen på mikrocontrolleren. Den kan også sammenligne indholdet af mikrocontrollerens flashhukommelse med en kildefil for at kontrollere, at firmwaren er autentisk og ikke er blevet manipuleret. Dette kan også være nyttigt under en sikkerhedsrevision, hvor man ønsker at verificere at firmwaren er autentisk, uden at skulle rejse til den fysiske placering af hver SBC.

CodeGrip Suite kan også udføre en hardware-reset af mikrocontrolleren. Dette kan være nyttigt for en SBC, der ikke fungerer, eller hvis der mistænkes et sikkerhedsbrud. Normalt kører en nulstillet SBC en indbygget selvtest (BIST) ved opstart, som inkluderer sikkerhedskontrol, der bekræfter, at enheden fungerer korrekt og ikke er blevet manipuleret.

En kraftfuld funktion i Mikroe CodeGrip-enheden er, at den understøtter Arm SWO-debug-port i realtid. SWO-benet streamer debugoplysninger om Arm-mikrocontrollerens status og kan bruges i realtid til at give status og spore oplysninger om firmwarens drift. Mikroe tilbyder et SWO-bibliotek med funktioner, der kan forbedre debug-funktionerne i CodeGrip Suite (figur 3). Dette kan gøre det enkelt at overvåge og debugge miikrocontroller-firmwaren remote.

Billede af MikroElektronika CodeGrip Suite kan give information om debugging og sporing i realtidFigur 3: CodeGrip Suite kan tilvejebringe debugging og sporingsinformation i realtid på en Arm-mikrocontroller ved at streame data ud af SWO-porten. Debugoplysninger er farvekodede for nem reference. (Billedkilde: Mikroe)

SWO-meddelelser har tre meddelelseskategorier; Info, advarsel og fejl. CodeGrip kan vise en eller alle af disse meddelelseskategorier. Viste meddelelser er farvekodede for nem reference; blå for info, gul for advarsel og rød for fejl. Dette giver brugerne mulighed for hurtigt at beslutte, hvad der skal ske, og nemt prioritere fejlmeddelelser frem for advarsler og info.

Konklusion

Debugging af SBC'er i industrielle anlæg, efter det er i installeret, kan være tidskrævende, især hvis mange SBC'er skal programmeres og debugges. Desuden er det ikke altid praktisk at besøge hvert enkelt anlæg. Som vist kan remote debugging via Wi-Fi vha. enheder som CodeGrip og dets tilknyttede software sparer tid, mens produktiviteten forbedres.

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 Digi-Key Electronics or official policies of Digi-Key Electronics.

Om denne forfatter

Bill Giovino

Bill Giovino is an Electronics Engineer with a BSEE from Syracuse University, and is one of the few people to successfully jump from design engineer, to field applications engineer, to technology marketing.

For over 25 years Bill has enjoyed promoting new technologies in front of technical and non-technical audiences alike for many companies including STMicroelectronics, Intel, and Maxim Integrated. While at STMicroelectronics, Bill helped spearhead the company’s early successes in the microcontroller industry. At Infineon Bill orchestrated the company’s first microcontroller design wins in U.S. automotive. As a marketing consultant for his company CPU Technologies, Bill has helped many companies turn underperforming products into success stories.

Bill was an early adopter of the Internet of Things, including putting the first full TCP/IP stack on a microcontroller. Bill is devoted to the message of “Sales Through Education” and the increasing importance of clear, well written communications in promoting products online. He is moderator of the popular LinkedIn Semiconductor Sales & Marketing Group and speaks B2E fluently.

Om udgiveren

Digi-Keys nordamerikanske redaktører