PLN | EUR | USD

Łatwe i efektywne dodawanie ekonomicznych węzłów podrzędnych do punktów końcowych IIoT z wykorzystaniem ekspanderów portów

Przez: Bill Giovino

Przekazane przez: Północnoamerykańscy redaktorzy Digi-Key

W zastosowaniach przemysłowego internetu rzeczy (IIoT) punkty końcowe IIoT rozwijają się nie tylko pod względem funkcji, ale również poprzez fizyczne poszerzenie obszaru sterowania wokół mikrokontrolera hosta w punkcie końcowym. Kilka wtyków wejścia-wyjścia mikrokontrolera hosta punktu końcowego IIoT może zostać wykorzystanych, aby dotrzeć do tych oddalonych lokalizacji, jednak wraz ze wzrostem odległości linie wejścia-wyjścia są bardziej narażone na zakłócenia elektromagnetyczne (EMI), co obniża niezawodność. Pomimo że istnieje możliwość wykorzystania innego mikrokontrolera w charakterze węzła podrzędnego dla mikrokontrolera hosta punktu końcowego IIoT, może to niepotrzebnie zwiększać złożoność, gdy dane są wykorzystywane tylko dla prostych cyfrowych sygnałów wejścia-wyjścia.

Zamiast wydłużania linii wejścia-wyjścia w celu zwiększenia zasięgu sterowania, deweloperzy mogą zastosować ekspandery portów, będące ekonomicznymi węzłami podrzędnymi dla punktu końcowego IIoT.

Artykuł omawia rolę ekspanderów portów przed wprowadzeniem dwóch ekspanderów portów firmy Maxim Integrated. Ekspandery te z łatwością współpracują z mikrokontrolerem hosta za pośrednictwem interfejsów szeregowych, które znacznie poszerzają funkcjonalność cyfrowych wejść-wyjść węzła IIoT. Dzieje się to z zachowaniem konwencjonalnych funkcji wejść-wyjść ogólnego przeznaczenia (GPIO), takich jak generowanie przebiegów z modulacją szerokości impulsu (PWM) oraz wykrywanie przerwań.

Dlaczego ekspandery portów są potrzebne w sieci IIoT

Jednym z pierwszych zadań podczas planowania sieci IIoT jest określenie liczby punktów końcowych. Każde urządzenie, które musi synchronizować swoją pracę z innymi elementami obiektu wymaga co najmniej jednego punktu końcowego. Dobrym przykładem może być linia montażowa w fabryce. Każde stanowisko musi być zsynchronizowane z postępem całej linii montażowej, aby odpowiednie procedury montażu zostały wykonane w odpowiednim momencie.

Punkt końcowy IIoT w fabrycznej linii montażowej może jednak nie obsługiwać jednej fizycznej lokalizacji, ale posiadać porty GPIO mikrokontrolera hosta podłączone kilkumetrowymi kablami, tworząc konfigurację gwiazdową, w której mikrokontroler pełni rolę koncentratora. Zakończenie każdego punktu w układzie gwiazdowym może mieć poziom skomplikowania wystarczający do działania jako węzeł podrzędny głównego punktu końcowego IIoT, jednak niewystarczająco wysoki do skonfigurowania w charakterze odrębnego punktu końcowego z własnym połączeniem sieciowym. Węzeł podrzędny może być sterowany przez własny mikrokontroler, jednak w przypadku prostych wejść-wyjść ogólnego przeznaczenia (GPIO) może to niepotrzebnie zwiększać koszta i poziom złożoności.

Praktycznym przykładem może być punkt końcowy IIoT sterujący silnikami przy użyciu sygnałów PWM. Jeżeli silniki oddalone są od siebie o kilka metrów, do każdego z nich trzeba wysyłać wiele sygnałów PWM, co zwiększa zakłócenia elektromagnetyczne (EMI) w otoczeniu. Do przesyłania sygnałów PWM można użyć kabla ekranowanego, jednak zwiększa to koszty systemu i nie eliminuje błędów spowodowanych przesłuchami ani opóźnieniami fazowymi spowodowanymi odległością. Zamiast tego można użyć takiej magistrali szeregowej, jak I2C lub SPI, aby wysyłać polecenia do znajdującego się w pobliżu silników programowanego systemu generującego sygnały PWM. Te układy elektroniczne służą jako węzły podrzędne zaprogramowane do generowania wymaganych sygnałów PWM.

Praktycznym rozwiązaniem węzła podrzędnego może być ekspander portów łączący się z mikrokontrolerem hosta za pośrednictwem interfejsu szeregowego. Ekspandery portów są łatwiejsze do konfiguracji w porównaniu z mikrokontrolerami i pozwalają zwiększyć zasięg portów GPIO kontrolera hosta. Zamiast prowadzenia ośmiu i więcej linii GPIO do węzła podrzędnego, mikrokontroler hosta uzyskuje dostęp do ekspandera portów w węźle podrzędnym przy użyciu prostego interfejsu I2C lub SPI. Zapis do rejestru w ekspanderze portów ustawia lub kasuje wejścia-wyjścia ogólnego przeznaczenia GPIO, natomiast odczyt zwraca status GPIO - w taki sam sposób jak sterowanie GPI w mikrokontrolerze hosta. Ekspandery portów zachowują również wiele funkcji wejść-wyjść GPIO mikrokontrolera, takich jak generowanie sygnałów PWM i wejścia przerwań.

Przykładem łatwego w użyciu ekspandera portów jest układ MAX7315AUE+T firmy Maxim Integrated, wyposażony w osiem wejść-wyjść ogólnego przeznaczenia GPIO oraz interfejs I2C (ilustracja 1).

Schemat ekspandera portów MAX7315A firmy Maxim IntegratedIlustracja 1: ekspander portów MAX7315A firmy Maxim Integrated posiada osiem wejść-wyjść ogólnego przeznaczenia GPIO i może generować przerwanie dla mikrokontrolera hosta w momencie zmiany stanu któregokolwiek z wejść-wyjść GPIO. Dostęp realizowany jest za pomocą dwuprzewodowego interfejsu I2C. (Źródło ilustracji: Maxim Integrated)

Układ MAX7315A posiada osiem wejść-wyjść ogólnego przeznaczenia GPIO. Każde z nich może być niezależnie konfigurowane jako wejście lub wyjście z otwartym drenem. Mikrokontroler hosta komunikuje się z układem MAX7315A za pośrednictwem dwuprzewodowego interfejsu I2C działającego z częstotliwością do 400kHz. Adres urządzenia na magistrali I2C jest konfigurowany przy użyciu trzech wtyków adresowych AD [0:2], zgodnie z ilustracją 1. Urządzenie może również generować sygnał przerwania dla mikrokontrolera hosta.

Układ MAX7315A pozwala na łatwe zarządzanie ośmioma wejściami-wyjściami ogólnego przeznaczenia GPIO przy użyciu trzech wtyków: dwóch wtyków I2C i wtyku przerwań. Urządzenie może być umieszczone w dowolnej odległości od mikrokontrolera hosta jeżeli warunki zapewniają niezawodną komunikację I2C. W zależności od układu płytki oraz występujących w otoczeniu zakłóceń elektromagnetycznych (EMI), przy zegarze szeregowym (SCL) pracującym z częstotliwością 400kHz, jeden metr jest zwykle odległością zapewniającą niezawodność. Przy zegarze SCL 100kHz można uzyskać trzy metry i więcej.

Należy jednak przeprowadzić próby w aktywnym środowisku, aby upewnić się, czy zakłócenia elektromagnetyczne z otoczenia nie wpływają znacząco na odległość.

Wykrywanie przerwań w węźle podrzędnym

Urządzenie posiada wyjście aktywnego przerwania poziomem niskim na wtyku 13, jednak jeśli funkcja ta nie jest wymagana, wtyk 13 może być skonfigurowany jako dziewiąte wejście-wyjście ogólnego przeznaczenia GPIO. Przerwanie można skonfigurować tak, aby osiągało poziom niski przy zmianie stanu dowolnego wtyku wejściowego. Dzięki temu mikrokontroler hosta jest informowany o aktywności w węźle podrzędnym bez konieczności sondowania układu MAX7315A. Gdy funkcja przerwań jest włączona, każde wejście-wyjście GPIO, które jest skonfigurowane jako wejście i posiada uaktywnione przerwanie, działa jako wejście przerwania. Każda zmiana stanu dowolnego wejścia-wyjścia GPIO z uaktywnionym przerwaniem powoduje zmianę stanu wtyku 13 na niski, informującą mikrokontroler hosta o zmianie. Mikrokontroler hosta odczytuje następnie status układu MAX7315A w celu ustalenia, które wejście-wyjście GPIO zmieniło stan.

Ten proces zapobiega utracie funkcji przerwań w przypadku użycia ekspandera portów jako GPIO, co ma znaczenie krytyczne nie tylko w IIoT, ale również w systemach mikrokontrolerów, które wymagają przerwań dla efektywnego działania oprogramowania układowego.

Przed zmianą konfiguracji układu MAX7315A należy wyłączyć funkcję przerwań, aby uniknąć generowania fałszywych przerwań.

Pomimo że układ MAX7315A może działać przy napięciu zasilania od 2V do 3,6V, wejścia-wyjścia ogólnego przeznaczenia GPIO tolerują napięcie 5,5V. Dzięki temu wejścia-wyjścia są kompatybilne ze standardowymi poziomami logicznymi stosowanymi w systemach 2,0V, 3,6V oraz 5,0V. Każde wejście-wyjście ogólnego przeznaczenia GPIO skonfigurowane jako wyjście z otwartym drenem może dostarczać maksymalnie 50mA prądu w stanie logicznym wysokim. Wyjścia można ze sobą łączyć w celu zwiększenia prądu wyjściowego. Dzięki temu układ MAX7315A można używać z wysokoprądowymi wskaźnikami LED oraz podświetleniami klawiatur.

Generowanie sygnałów PWM w węźle podrzędnym

Układ MAX7315A umożliwia również programowanie wyjść PWM bez ingerencji ze strony mikrokontrolera hosta. Przebiegi czasowe PWM są generowane na podstawie wbudowanego oscylatora 32kHz. 4-bitowe ustawienie natężenia podstawowego konfiguruje dostępne natężenie sygnału PWM 32kHz dla wszystkich wyjść na poziomie od 0 do 15, podobnie do dzielnika częstotliwości. Każda wyjściowa krzywa PWM dla każdego wejścia-wyjścia GPIO jest podzielona na 15 segmentów czasowych. Ustawienie natężenia podstawowego określa ile segmentów jest dostępnych dla generowania sygnału PWM. Każde z wejść-wyjść GPIO posiada własny indywidualny rejestr natężenia, służący do ustawiania cyklu pracy dla przebiegu w aktywnych segmentach. Najlepiej można to wyjaśnić na przykładzie przebiegu wyjściowego indywidualnego wtyku GPIO (ilustracja 2).

Wykres przebiegu wyjściowego indywidualnego wtyku GPIO układu Maxim MAX7315AIlustracja 2: układ MAX7315A posiada programowany generator PWM, który wykorzystuje wbudowany zegar generujący częstotliwość 32kHz. Ten sygnał PWM posiada natężenie podstawowe = 2 i natężenie cyklu pracy indywidualnego GPIO = 2. (Źródło ilustracji: Maxim Integrated)

Natężenie główne jest ustawione na 2, dlatego tylko segmenty 1 i 2 spośród 15 są dostępne dla generowania sygnału PWM, natomiast segmenty od 3 do 15 przyjmują poziom zera logicznego. Indywidualne natężenie cyklu pracy dla tego GPIO jest ustawione na 2, dlatego przebiegi w segmentach 1 i 2 określają cykl pracy jako 2/16 = 12,5%.

Natężenie podstawowe PWM można ustawiać w zakresie od 0 do 15, przy czym 15 oznacza, że dostępne są wszystkie 15 segmentów. Natężenie podstawowe równe zeru oznacza, że generowanie sygnału PWM jest wyłączone dla wszystkich GPIO, a zegar 32kHz jest wyłączony w celu oszczędzania energii.

Każde indywidualne wejście-wyjście GPIO może konfigurować cykl pracy PWM na natężenie od 1 do 16, gdzie 16 oznacza stuprocentowy cykl pracy, ustawiając logiczny stan wysoki segmentu.

Aby zapewnić jeszcze większą elastyczność, każde wejście-wyjście GPIO posiada bit polaryzacji, który odwraca przebieg PWM. Ilustracja 2 ukazuje przebieg przy bicie polaryzacji danego GPIO ustawionym na 1. Przebieg PWM na ilustracji 3 ukazuje to samo wejście-wyjście GPIO przy tym samym natężeniu podstawowym, jak na ilustracji 2, jednak bit polaryzacji jest ustawiony na 0.

Wykres przebiegu układu MAX7215A firmy Maxim Integrated odwrócony przy użyciu bitu polaryzacjiIlustracja 3: każde wejście-wyjście GPIO PWM układu MAX7215A firmy Maxim Integrated posiada bit polaryzacji, który odwraca przebieg. Ten sygnał PWM posiada natężenie podstawowe = 2 i indywidualne natężenie cyklu pracy = 2, natomiast bit polaryzacji = 0 odwraca przebieg. (Źródło ilustracji: Maxim Integrated)

Dzięki elastyczności generowania przebiegów PWM, układy MAX7315A można stosować w węzłach podrzędnych punktów końcowych IIoT do sterowania jasnością wskaźników LED, sterowania tranzystorami mocy zasilającymi silniki prądu stałego oraz sterowania elektromagnesami i aktuatorami. Zamiast prowadzić osiem linii cyfrowych przenoszących przebiegi PWM w pełnym zakłóceń środowisku przemysłowym wystarczy, że mikrokontroler hosta skonfiguruje układ MAX7315A, który może następnie działać niezależnie.

Rozbudowane funkcje w węzłach podrzędnych

Do obsługi bardziej skomplikowanych węzłów podrzędnych firma Maxim Integrated oferuje ekspandery portów MAX7301AAX+T posiadające 28 wejść-wyjść ogólnego przeznaczenia GPIO. Układ MAX7301AAX łączy się z mikrokontrolerem hosta w punkcie końcowym IIoT za pośrednictwem standardowego czterowtykowego interfejsu SPI (ilustracja 4). Obsługuje on również funkcję aktywnego przerwania poziomem wysokim, jako alternatywną funkcję wtyku 31. Układ MAX7315AAX można skonfigurować do generowania sygnału przerwania dla mikrokontrolera hosta w momencie zmiany stanu jednego lub kilku wejść-wyjść GPIO. Pozwala to na sterowanie 27 wejściami-wyjściami GPIO w węźle w systemie przerwaniowym, używając zaledwie pięciu linii sterujących: czterech linii sterujących SPI i jednej linii przerwań.

Schemat interfejsu SPI ekspandera portów MAX7301 firmy Maxim IntegratedIlustracja 4: ekspander portów MAX7301 firmy Maxim Integrated posiada interfejs SPI i obsługuje 28 wtyków GPIO, które mogą pracować jako wejścia lub wyjścia. Wtyk 31 obsługuje alternatywną funkcję aktywnego przerwania poziomem wysokim, co umożliwia sterowanie 27 linii GPIO przy użyciu pięciu sygnałów sterujących. (Źródło ilustracji: Maxim Integrated)

Układ MAX7301AAX pracuje w szerokim zakresie napięć zasilania od 2,25V do 5,5V, dzięki czemu jest kompatybilny z większością cyfrowych systemów logicznych. Wejścia-wyjścia ogólnego przeznaczenia mogą być skonfigurowane jako wejścia wyzwalaczy Schmitta z użyciem wewnętrznego rezystora podwyższającego lub bez niego. Wejścia-wyjścia GPIO można również skonfigurować jako wyjścia typu push-pull, zdolne odebrać prąd do 10mA. Dzięki temu układy MAX7301AAX mogą współpracować z obwodami logicznymi służącymi do sterowania innymi urządzeniami, takimi jak kontrolery przemysłowe, a także do monitorowania systemów i obwodów alarmowych.

Podsumowanie

Wraz ze zwiększaniem fizycznego zasięgu punktów końcowych IIoT mogą pojawić się problemy ze sterowaniem węzłami podrzędnymi, ponieważ wielometrowe linie sterujące są podatne na zakłócenia elektromagnetyczne oraz komplikują obwody i układy. Wykorzystanie ekspanderów portów do sterowania węzłami podrzędnymi w systemach przerwaniowych pozwala projektantom na uproszczenie układów płytek drukowanych i zwiększenie niezawodności, przy jednoczesnej rozbudowie funkcjonalności punktów końcowych IIoT.

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.

Informacje o autorze

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 Digi-Key