Oprogramowanie w aplikacjach IoT – coraz bardziej istotne

| Technika

W obecnych czasach w elektronice "objętość" oprogramowania w projekcie zazwyczaj przewyższa "ilość" komponentów sprzętowych, a co za tym idzie wymaga od projektanta poświęcenia więcej pracy – często wielokrotnie więcej. Natomiast w świecie systemów wbudowanych rozróżnienie pomiędzy tą "objętością" a często podawaną wielkością zespołu inżynierskiego jest bardzo znaczące. Różnica pomiędzy tymi dwoma określeniami ma szczególną wagę w małych przedsiębiorstwach, w których różne funkcje pełnione są często przez tych samych inżynierów. Elastyczność i zdolność dostosowywania się do zmian to kluczowe cechy członków zespołu inżynierskiego. I nie tylko ich, bo to także niezmiernie ważne aspekty wsparcia, jakie oferują dostawcy podzespołów krzemowych, na bazie których tworzone są systemy wbudowane.

Oprogramowanie w aplikacjach IoT – coraz bardziej istotne

Ponowne wykorzystanie – to aktualnie kluczowe wyrażenie w słowniku projektowania systemów wbudowanych. Po stronie sprzętowej obejmuje użycie tych samych bloków obwodów w całej rodzinie produktów, które różnią się tylko dodanymi lub pominiętymi grupami funkcji. Takie komponenty, podczas projektowania nowej generacji urządzenia, można zastępować innymi, w mniejszym lub większym zakresie, bez ponoszenia dużego wysiłku. Tymczasem w dziedzinie oprogramowania ponowne wykorzystanie może przyjmować postać, począwszy od napisania funkcji w taki sam sposób, jak wcześniej (bo przecież działała), przez użycie gotowego systemu operacyjnego, a kończąc na zastosowaniu kompletnego przykładu aplikacji, który poddaje się tylko zmianom dostosowującym go do potrzeb konkretnego wdrożenia.

Zakres wsparcia

Poprosiliśmy kilku producentów mikrokontrolerów o wskazanie najważniejszych aspektów wsparcia, jakie oferują swoim klientom i odniesienie go do ułatwiania procesu projektowania z użyciem konkretnych układów scalonych. Chcieliśmy dowiedzieć się, jak producenci wspierają projektantów zarówno na poziomie przygotowywania gotowych sterowników i często używanych funkcji, jak i poprzez zespoły inżynierskie dostawców, którzy pomagają wybrać odpowiednie rozwiązania i doradzają, jaką przyjąć strategię w odniesieniu do doboru i tworzenia oprogramowania.

W przypadku ST Microelectronics sztandarowym narzędziem po stronie oprogramowania jest STM32Cube, na które składają się zestaw STM32CubeMX i biblioteki programowe STM32Cube. W STM32CubeMX znajdują się takie elementy, jak narzędzie do generowania kodu w języku C, odpowiadającego za multipleksowanie wyprowadzeń, drzewo rozprowadzania sygnału zegarowego, obwody peryferyjne i ustawienia pośrednie – wszystko to oparte na graficznych kreatorach. Dużym ułatwieniem dla projektantów jest możliwość tworzenia kompletnych plików projektów dla różnych zintegrowanych narzędzi deweloperskich. Pomocne są też funkcje obliczania poboru mocy dla podanych przez użytkownika sekwencji wykonywania operacji w aplikacji oraz bezpośrednie importowanie ze strony st.com bibliotek programowych dla systemów wbudowanych STM32Cube wraz ze zintegrowanymi funkcjami aktualizacji.

Wśród bibliotek STM32Cube dla systemów wbudowanych znajdują się: Sprzętowa warstwa abstrakcji (HAL – Hardware Abstraction Layer), która umożliwia przenoszenie projektów pomiędzy różnymi układami scalonymi z rodziny STM32 i korzystanie ze standardowych wywołań API. Niskopoziomowa warstwa API (LL – Low-Layer), która jest zoptymalizowana, pozwala ekspertom na tworzenie bardzo wydajnego kodu. Jest też zestaw komponentów takich jak RTOS, biblioteka USB, system plików, stos protokołów TCP/IP, biblioteka do obsługi sensorów dotykowych czy też biblioteka graficzna (zależna od danej rodziny mikrokontrolerów).

W przypadku Renesasa wiodącym produktem jest rodzina Synergy, która została stworzona, by umożliwić programistom budowanie aplikacji na poziomie API, opartego na gotowym, sprawnym i wydajnym kodzie niskiego poziomu. Synergy umożliwia programowanie na wyższym poziomie (poprzez API), zamiast spędzania czasu na koncentrowaniu się na różnicach pomiędzy kodem dla różnych sterowników czy komponentów pośrednich.

Z kolei oferta produktowa NXP koncentruje się na chipach do konwersji mocy, sterowania silnikami i do zapewniania łączności bezprzewodowej. W tym obszarze firma zapewnia projekty referencyjne, zestawy demonstracyjne i niemalże kompletne rozwiązania produktów, opartych na wysokiej jakości, oprogramowaniu, elektronice itp., jakie można zastosować w rozwiązaniu docelowym. Uzupełnia je inżynierska pomoc techniczna wykwalifikowanych specjalistów.

Firma Silicon Labs szczególnie koncentruje się na mikrokontrolerach ze zintegrowanymi blokami do łączności bezprzewodowej i udostępnia projektantom do ich obsługi zestawy "oprogramowanie – stos bezprzewodowy – sprzęt", w którym nacisk położono głównie na bogatą funkcjonalność. Zdaniem specjalistów SL narzędzia projektowe po stronie oprogramowania są tak samo ważne jak krzemowe struktury. Jeśli klient chce zainstalować sieć złożoną z 200 węzłów, pracujących w topologii kraty, potrzebuje odpowiednich narzędzi, które pokażą, w jaki sposób krata się tworzy i jak funkcjonuje. Potrzebuje narzędzi, które pozwolą na wgląd w treść na poziomie pakietów.

Zestaw umiejętności powiązanych z przenośnością i ponownym wykorzystaniem kodu w różnych grupach produktowych i dla różnych komponentów można by określić słowem elastyczność. Narzędzia programowe SDK (Soft ware Development Kit) mogą dostarczyć komponentów programowych, dla których tworzony kod będzie przenośny pomiędzy produktami z tej samej rodziny. Możliwość przenoszenia oprogramowania z jednego komponentu danej rodziny na drugi to bardzo ważny aspekt elastyczności. Jest to szczególnie ciekawe, bo wielu klientów nie jest w ogóle świadomych, że będą musieli rozważyć coś takiego. Inżynierowie-projektanci wiedzą, że muszą opracować produkt A, a kiedy już produkt A zostanie wydany, zauważają, że rynek się zmienia. Jeśli nie pomyśleli o elastyczności na wczesnym etapie prac rozwojowych, oznacza to, że będą w niekorzystnej sytuacji, gdy rynek ulegnie zmianom. Elastyczność pozwoli im na szybkie przedefiniowanie swojego produktu; na dalszy rozwój i dostosowywanie się do zmieniających się wymagań rynku.

Zespoły inżynierów aplikacyjnych u głównych dystrybutorów, takich jak Farnell, mogą stanowić bardzo cenną pomoc. Nie tylko mogą – z zachowaniem adekwatnej poufności – wnieść w projekt doświadczenie, jakie zdobyli w wielu innych aplikacjach, ale też dobrze orientują się, gdzie można znaleźć całe oprogramowanie różnych twórców, które można by było ponownie wykorzystać w nowym projekcie.

 

Cliff Ortmeyer, Global Head of
Technical Marketing, Farnell