Szybka konfiguracja obiektów automatyki przemysłowej za pomocą zdalnych debuggerów mikrokontrolerów

Przez: Bill Giovino

Przekazane przez: Północnoamerykańscy redaktorzy DigiKey

W obiektach automatyki przemysłowej, w celu zwiększenia wydajności i poprawy produktywności coraz częściej do sterowania operacjami wykorzystuje się komputery jednopłytkowe oparte na mikrokontrolerach (SBC). Często używane komputery jednopłytkowe (SBC) są połączeniem gotowych komputerów jednopłytkowych z konfigurowalnym oprogramowaniem układowym i niestandardowych komputerów jednopłytkowych z niestandardowym oprogramowaniem układowym. Jednak w przypadku nowych obiektów przemysłowych i już istniejących obiektów poddawanych modernizacji, oprogramowanie układowe komputera jednopłytkowego (SBC) może wymagać modyfikacji w celu usprawnienia działania lub naprawy błędów w kodzie.

W niniejszym artykule omówiona zostanie rola komputerów jednopłytkowych (SBC) oraz przyczyna coraz większego znaczenia zdalnego debugowania w środowiskach przemysłowych. W dalszej kolejności przedstawimy zdalne debuggery i powiązane oprogramowanie firmy MikroElektronika oraz omówimy sposób podłączania ich do sieci Wi-Fi w celu przeprowadzenia zdalnego debugowania mikrokontrolerów ARM® w większości komputerów jednopłytkowych (SBC).

Komputery jednopłytkowe (SBC) w komputerach przemysłowych

Nowoczesne obiekty automatyki przemysłowej są pod presją zwiększania produktywności poprzez lepsze zarządzanie procesami dzięki większej precyzji. Przykładem takiego zwiększenia produktywności może być zastosowanie czujników o wysokiej rozdzielczości w celu dostarczenia do sterującego oprogramowania układowego dokładniejszych danych. Ponadto aktuatory, takie jak silniki i elektromagnesy, można unowocześnić tak, aby podczas pracy krokowej ich przeskoki były znacznie mniejsze.

Po zainstalowaniu czujników i aktuatorów o większej dokładności i rozdzielczości, sterujące oprogramowanie układowe w komputerach jednopłytkowych (SBC) zarządzających tymi urządzeniami musi zostać zmodyfikowane w celu wykorzystania tej zwiększonej rozdzielczości. Jeśli aktualizacja oprogramowania układowego nie może być wykonana przez dotychczas stosowany komputer jednopłytkowy (SBC), należy wymienić go na nowy. Tak, czy owak, nowe oprogramowanie układowe będzie zazwyczaj testowane i debugowane na stole warsztatowym przed zainstalowaniem w obiekcie przemysłowym. Po wstępnych testach następuje uruchomienie nowego systemu.

Jednak w przypadku bardziej złożonych procesów, debugowanie i programowanie może się na tym nie kończyć. Działanie w obrębie systemu może ujawnić problemy, które nie zostały wykryte podczas testów przedprodukcyjnych, a w wielu przypadkach jedynym sposobem optymalizacji oprogramowania układowego jest przeprowadzenie debugowania, gdy komputer jednopłytkowy jest w użyciu.

W nowych obiektach automatyki przemysłowej można napotkać te same problemy. Jest to szczególnie ważne w przypadku systemów o wysokiej wydajności, w których pętle sterowania oprogramowaniem układowym muszą być precyzyjnie skonfigurowane, aby spełnić wymagania wydajnościowe. Niezależnie od tego, czy obiekt przemysłowy jest nowy, czy zmodernizowany, przestoje są kosztowne i należy je zminimalizować. Oznacza to, że komputery jednopłytkowe (SBC) muszą być debugowane i programowane w systemie.

Zdalne debugowanie przemysłowych systemów wbudowanych

Debugowanie komputerów jednopłytkowych stosowanych w systemach przemysłowych nie różni się niczym od debugowania innych systemów opartych na mikrokontrolerach. Debugger wymaga fizycznego połączenia kablowego od portu debugowania mikrokontrolera do komputera z uruchomionym programem debugującym. Następnie technik na komputerze sprawdza i debuguje oprogramowanie układowe w trakcie jego działania. Jeśli debugowanie w miejscu instalacji trzeba przeprowadzić na wielu komputerach jednopłytkowych, może to być czasochłonne, ponieważ technicy muszą podróżować do fizycznej lokalizacji każdego takiego komputera jednopłytkowego. Może to być trudniejsze, jeśli niektóre komputery jednopłytkowe znajdują się w wymagających środowiskach lub w fizycznie odległych lub niedostępnych lokalizacjach. Ponadto niczym niezwykłym jest sytuacja, że niestandardowe oprogramowanie układowe zna ograniczona liczba techników, przez co muszą oni debugować wiele systemów w krótkim czasie, co z kolei komplikuje procedurę i opóźnia cały proces.

Rozwiązaniem jest użycie zdalnych debuggerów, które są fizycznie podłączone do komputera jednopłytkowego (SBC), ale dają możliwość debugowania przez komputer sieciowy znajdujący się w innym miejscu. Zdalne debuggery można podłączyć do portu debugowania mikrokontrolera komputera jednopłytkowego (SBC) w czasie połączenia z siecią obiektu za pośrednictwem komunikacji Wi-Fi. Znajdujący się w dogodnej lokalizacji komputer połączony z tą samą siecią może służyć do uzyskiwania dostępu do dowolnego ze zdalnych debuggerów. Technik ma wtedy pełne możliwości debugowania na zdalnym komputerze.

Aby wykonać takie zdalne debugowanie, inżynierowie mogą użyć programu CodeGrip firmy Mikroe należącego do grupy zdalnych debuggerów, które mogą łączyć się przez Wi-Fi ze zdalnym komputerem w celu zaprogramowania i zdebugowania wielu mikrokontrolerów ARM. Debugger CodeGrip Wi-Fi MIKROE-3460 może być używany na większości mikrokontrolerów ARM z portem JTAG (ilustracja 1). Obsługuje on również jednoprzewodowy port debugowania ARM (SWO) z wyjściem jednoprzewodowym, który można znaleźć w większości mikrokontrolerów ARM Cortex-M3, Cortex-M4 i Cortex-M7.

Ilustracja przedstawiająca zdalny debugger CodeGrip MIKROE-3460 firmy MikroElektronikaIlustracja 1: zdalny debugger MIKROE-3460 CodeGrip podłącza się fizycznie do portu debugowania JTAG lub SWO. W celu zdalnego zaprogramowania lub zdebugowania oprogramowania układowego mikrokontrolera ARM dostęp do niego można uzyskać zdalnie przez Wi-Fi. (Źródło ilustracji: Mikroe)

Debugger CodeGrip MIKROE-3460 firmy Mikroe jest umieszczany w fizycznej lokalizacji komputera jednopłytkowego opartego na mikrokontrolerze ARM. Na złączu płytki znajduje się port do podłączania do portu JTAG lub SWO. Następnie jest tymczasowo podłączany do laptopa przez USB, aby wstępnie skonfigurować urządzenie CodeGrip pod kątem debugowanego mikrokontrolera. Na potrzeby systemów wysokowydajnych, urządzenie CodeGrip wyposażono w złącze USB-C. Jest to szczególnie przydatne w miejscach z małą przestrzenią roboczą i pozwala oszczędzić sobie czasu i frustracji, ponieważ w przeciwieństwie do poprzednich złączy USB, złącza USB-C są symetryczne w obu osiach.

Aby można było wstępnie skonfigurować urządzenie CodeGrip, na laptopie podłączonym do niego musi być uruchomione oprogramowanie CodeGrip Suite firmy Mikroe. Urządzenie CodeGrip sygnalizuje swój status za pomocą pięciu diod LED (ilustracja 2). Dzięki temu technik na miejscu otrzymuje krytyczne informacje o statusie, pozwalające ustalić, czy urządzenie działa prawidłowo bez konieczności podłączania laptopa. Jeśli zasilanie urządzenia jest poprawne, świeci zielona dioda LED zasilania. Podczas normalnej pracy urządzenia CodeGrip świeci również czerwona dioda LED aktywności. Jeśli zielona dioda świeci, a czerwona nie, może to wskazywać na słabe połączenie z portem JTAG/SWO lub jego brak. Jest to ważna informacja dla technika zakładowego, że kabel debugowania może wymagać ponownego zamontowania lub wymiany.

Schemat urządzenia CodeGrip firmy MikroElektronika (kliknij, aby powiększyć)Ilustracja 2: urządzenie CodeGrip dostarcza krytycznych informacji o statusie za pomocą pięciu diod LED, które zapewniają szybką wizualną informację zwrotną w terenie bez konieczności podłączania laptopa. (Źródło ilustracji: Mikroe)

Po podłączeniu urządzenia CodeGrip przez USB do laptopa, pomyślne połączenie jest sygnalizowane świeceniem żółtej diody LED USB-LINK na urządzeniu. Wówczas użytkownik uruchamia pakiet CodeGrip Suite, aby skonfigurować urządzenie CodeGrip przez USB.

Konfigurowanie urządzenia CodeGrip

Pakiet CodeGrip często może automatycznie wykryć mikrokontroler ARM w komputerze jednopłytkowym (SBC), ale można go również skonfigurować ręcznie, podając typ rdzenia, rozmiar pamięci flash i konfigurację pamięci RAM. Jednak nie wszystkie grupy produktów ARM można łatwo skonfigurować przy użyciu tego samego debuggera. Dla grupy mikrokontrolerów ARM STM32 firmy STMicroelectronics firma Mikroe oferuje urządzenie CodeGrip MIKROE-3461. Urządzenie CodeGrip MIKROE-3462 natomiast służy do obsługi grupy produktów Kinetis firmy NXP Semiconductors. We wszystkich tych przypadkach działanie urządzenia CodeGrip i pakietu CodeGrip jest identyczne.

Po podłączeniu i skonfigurowaniu przy użyciu pakietu CodeGrip Suite można wykonywać operacje programowania i debugowania na miejscu. Podczas przesyłania danych do urządzenia CodeGrip niebieska dioda LED danych będzie migać, sygnalizując, że między urządzeniem CodeGrip a pakietem CodeGrip Suite przesyłane są dane. Oznacza to, że urządzenie CodeGrip działa prawidłowo i programuje lub debuguje komputer jednopłytkowy (SBC).

W celu zdalnego debugowania urządzenie CodeGrip można skonfigurować tak, aby łączyło się przez Wi-Fi ze zdalnym komputerem, na którym jest również uruchomiony pakiet CodeGrip Suite. Ze względów bezpieczeństwa i wydajności sieć Wi-Fi używana do łączenia się z urządzeniami CodeGrip powinna być oddzielona od innych sieci Wi-Fi używanych w obiekcie przemysłowym. Wysyłanie dużego pliku .bin lub .hex do urządzenia CodeGrip przez Wi-Fi jest równoważne z pobraniem dużego pliku na komputer, więc może spowalniać całą sieć. Jeśli zdalny komputer pomyślnie połączy się z urządzeniem CodeGrip, na urządzeniu CodeGrip będzie świecić pomarańczowa dioda LED NET-LINK, sygnalizująca pomyślne połączenie. Po skonfigurowaniu urządzenia CodeGrip laptop podłączony przez USB można odłączyć.

Za pomocą pakietu CodeGrip Suite można odczytywać, programować i kasować całą pamięć flash docelowego mikrokontrolera. Można również porównywać zawartość pamięci flash mikrokontrolera z plikiem źródłowym, aby sprawdzić, czy oprogramowanie układowe jest oryginalne i nie zostało zmanipulowane. Może to być również przydatne podczas audytu bezpieczeństwa, aby zweryfikować bezpieczeństwo oprogramowania układowego bez konieczności podróżowania do fizycznej lokalizacji każdego komputera jednopłytkowego (SBC).

W pakiecie CodeGrip Suite można również wykonywać reset sprzętowy docelowego mikrokontrolera. Może to być przydatne w przypadku nieprawidłowego działania komputera jednopłytkowego lub podejrzenia naruszenia bezpieczeństwa. Zwykle reset komputera jednopłytkowego uruchamia wbudowany autotest (BIST) podczas rozruchu, który obejmuje kontrole bezpieczeństwa, weryfikujące, czy urządzenie działa poprawnie i nie zostało zmanipulowane.

Potężną cechą urządzenia CodeGrip firmy Mikroe jest to, że obsługuje port debugowania czasu rzeczywistego SWO ARM. Wtyk SWO przesyła strumieniowo informacje debugowania o stanie mikrokontrolera ARM i może być używany do dostarczania w czasie rzeczywistym informacji o statusie i śledzeniu działania oprogramowania układowego. Możliwości pakietu CodeGrip w zakresie debugowania można rozszerzyć dzięki funkcjom udostępnianej przez firmę Mikroe biblioteki SWO (ilustracja 3). Pozwala to na łatwe monitorowanie i zdalne debugowanie oprogramowania układowego mikrokontrolera.

Wygląd pakietu CodeGrip Suite firmy MikroElektronika umożliwiającego debugowanie i śledzenie informacji w czasie rzeczywistymIlustracja 3: pakiet CodeGrip pozwala na debugowanie i śledzenie informacji dla mikrokontrolera ARM w czasie rzeczywistym poprzez przesyłanie strumieniowe danych za pośrednictwem portu SWO. Informacje dotyczące debugowania są oznaczone kolorami dla ułatwienia orientacji. (Źródło ilustracji: Mikroe)

Komunikaty SWO mają trzy kategorie: informacje, ostrzeżenia i błędy. Urządzenie CodeGrip może wyświetlać dowolną kategorię komunikatów lub wszystkie z nich. Wyświetlane komunikaty dla łatwiejszej orientacji są oznaczone kolorami: niebieski - informacje, żółty - ostrzeżenia, a czerwony - błędy. Dzięki temu użytkownicy mogą szybko zdecydować, co chcą wyświetlać, a także łatwo nadać wyższy priorytet komunikatom o błędach niż ostrzeżeniom i informacjom.

Podsumowanie

Debugowanie komputerów jednopłytkowych (SBC) w obiektach przemysłowych bez odłączania ich od systemu może być czasochłonne, zwłaszcza jeśli programowania i debugowania wymaga wiele komputerów jednopłytkowych. Co więcej, nie zawsze fizyczna wizyta w danym miejscu jest praktycznie możliwa. Zdalne debugowanie przez Wi-Fi przy użyciu urządzeń takich jak CodeGrip i powiązanego z nimi oprogramowania oszczędza czas, jednocześnie zwiększając produktywność.

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.

Informacje o autorze

Image of Bill Giovino

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.

Informacje o wydawcy

Północnoamerykańscy redaktorzy DigiKey