Nowe możliwości dzięki 32-bitowym mikrokontrolerom

| Technika

Prawo Moore’a mówiące o podwojeniu liczby tranzystorów wewnątrz układu scalonego w ciągu 18 miesięcy obowiązuje nie tylko w przypadku pamięci półprzewodnikowych. Oprócz coraz szybszych procesorów, a także niezwykle wydajnych kart graficznych można zaobserwować nieustanny rozwój mikrokontrolerów.

Nowe możliwości dzięki 32-bitowym mikrokontrolerom

Na przestrzeni lat bardzo wiele się zmieniło, poczynając od wymiany pamięci ROM na pamięć Flash, która pozwala na wielokrotne programowanie, poprzez zwiększanie pamięci dostępnej dla programisty, podnoszenie wydajności obliczeniowej, skończywszy na dużej liczbie zintegrowanych układów takich jak przetworniki A/C, C/A, porty komunikacyjne, czy sprzętowe układy PWM.

Dostępność nowych technologii stwarza przestrzeń do zwiększania możliwości opracowywanych urządzeń. Zaliczają się do tego graficzne interfejsy użytkownika, porty komunikacyjne (m.in. USB), współpraca z siecią Ethernet. Trend ten w dużej mierze jest wymuszany przez rynek konsumencki oczekujący nieustannego polepszania produktów i dodawania nowych funkcji użytkowych. W pewnym momencie moc obliczeniowa „małych” mikrokontrolerów okazuje się niewystarczająca i należy poszukać nowej drogi, jaką są układy 32-bitowe. Kolejnym czynnikiem zwiększającym ich atrakcyjność jest duża presja czasu, z jaką spotykają się konstruktorzy. Nie jest łatwo opracować oprogramowanie dla współczesnych urządzeń multimedialnych w krótkim czasie. Dzięki zastosowaniu procesora 32-bitowego optymalnym rozwiązaniem jest instalacja systemu operacyjnego takiego jak Linux czy Microsoft Windows CE. Pozwala to znacznie skrócić czas pracy nad oprogramowaniem, gdyż programista zostaje zwolniony z konieczności tworzenia bibliotek do obsługi złożonych interfejsów komunikacyjnych. Łatwiejsza jest również obsługa wyświetlaczy graficznych i matryc, na skutek braku konieczności pracy na poziomie rejestrów i przejścia na korzystanie z gotowych procedur oferowanych przez system operacyjny. W takim rozwiązaniu ukazuje się kolejna zaleta „dużych” mikrokontrolerów – zarządzanie pracą przez system operacyjny kontroluje również dostęp do pamięci i umożliwia jej ochronę. W takim przypadku jeden niepoprawnie działający proces nie skutkuje zawieszeniem całego urządzenia.

Niezaprzeczalną przewagą układów 8-bitowych jest niższa cena, efektywniejsze gospodarowanie energią, czy też małe wymiary. Często jednak zastosowanie szybkiego mikrokontrolera pozwala na implementację skomplikowanych programowych algorytmów, co przekłada się na energooszczędność i większą trwałość całego urządzenia, nawet jeśli jest to tanie AGD. Nie bez znaczenia jest tutaj wielkość dostępnej pamięci programu – mikrokontrolery 8-bitowe oferują pamięć do 128KB, natomiast układy 32-bitowe nawet do 3MB. Implementacja wyszukanych algorytmów kontrolujących pracę takiej pralki jest wtedy w zasięgu projektantów i możliwe są dalsze usprawnienia zwiększające estetykę oraz wygląd, np. graficzny wyświetlacz.

Rozwój rynku wspierają również producenci półprzewodników ułatwiając migrację z platform 8-bitowych na 32-bitowe. Proponują oni szereg narzędzi programistycznych oraz zestawów rozwojowych ułatwiających zapoznanie się z możliwościami nowych, wydajniejszych rozwiązań. Z ekonomicznego punktu widzenia zmiana używanych dotychczas procesorów na 32-bitowych nie powinna być odczuwalna, gdyż ich ceny są obecnie porównywalne z dobrze wyposażonymi układami 8-bitowymi. Koszty wiążą się głównie z wymianą narzędzi, szkoleniem personelu oraz adaptacją starych bibliotek. Konieczne jest także zagwarantowanie, żeby dotychczas zdobyte doświadczenie nie zostało zmarnowane w efekcie migracji na platformy 32-bitowe. Należy mieć na uwadze, że koszty oprogramowania, które jest znacznie bardziej złożone, są wyższe niż dla układów 8-bitowych.

W dalszej części artykułu zostaną przedstawiona rozwiązania proponowane przez trzech wiodących producentów półprzewodników.

Microchip – PIC32

Rys. 1. Rodzina mikrokontrolerów PIC32 firmy Microchip bazuje na rdzeniu M4K opracowanym przez firmę MIPS Technology

W ofercie firmy Microchip pojawiła się rodzina mikrokontrolerów PIC32. Bazuje ona na rdzeniu M4K opracowanym przez firmę MIPS Technology (rys. 1). Wybór rdzenia M4K nie był przypadkowy – zapewnia on kompatybilność z dotychczas produkowanymi procesorami 16-bitowymi (PIC24 oraz dsPIC) i ułatwia konstruktorom wdrażanie nowej, wydajnej platformy w projektowanych urządzeniach.

Rdzeń został rozbudowany o unikalne funkcje, takie jak dedykowany bufor umożliwiający pobieranie i przechowywanie do ośmiu rozkazów. Bardzo krótkie pętle programowe, złożone z czterech 32-bitowych instrukcji lub 8 instrukcji 16-bitowych są obecnie wykonywane z dużo większą szybkością. Dodatkową zaletą jest wzbogacenie rdzenia o obsługę instrukcji przeznaczonych do szybkich operacji bitowych.

Procesory przystosowano do pracy z sygnałem zegarowym o częstotliwości do 80MHz. Osiągają one wydajność na poziomie 1,5DMIPS/MHz (dla instrukcji 32-bitowych) lub 1,2DMIPS/MHz (w przypadku instrukcji 16-bitowych). Jeszcze większa wydajność może zostać osiągnięta dzięki wykorzystaniu sprzętowego bloku mnożenia. Wykonuje on operacje mnożenia w ciągu jednego cyklu maszynowego (mnożenie 32x16) lub dwóch cykl maszynowych (mnożenie 32x32). Jest to szczególnie ważne w aplikacjach przetwarzających sygnały w czasie rzeczywistym.

Oprócz wydajnego rdzenia, mikrokontrolery zostały wyposażone w 4-kanałowy układ DMA umożliwiający transmisję danych pomiędzy pamięcią oraz portami komunikacyjnymi takimi jak SPI, UART, I2C lub pomiędzy różnymi blokami pamięci operacyjnej. Port szeregowy (UART) wspiera komunikację w standardzie RS-485 oraz IrDA, co w połączeniu ze zintegrowanym przetwornikiem A/C, licznikami i sprzętowymi generatorami PWM czyni rozwiązanie firmy Microchip uniwersalnym i znajdującym zastosowanie w wielu dziedzinach. Dodatkowo atrakcyjność procesorów z serii PIC32 zwiększa się dzięki dziewięciu trybom oszczędzania energii umożliwiającymi wybór pomiędzy zużyciem energii, a wydajnością obliczeniową. Wszystkie aspekty związane z zarządzaniem poborem mocy są kontrolowane z poziomu oprogramowania.

Microchip dostarcza projektantom pokaźną liczbę narzędzi programistycznych. Sztandarowym produktem jest środowisko MPLAB, które dotychczas pozwalało pracować z mikrokontrolerami 8- oraz 16-bitowymi, a obecnie zostało przystosowane do pracy z rodziną PIC32. Jest ono wyposażone w kompilator asemblera i umożliwia korzystanie z narzędzi takich jak emulator (MPLAB Real ICE Emulator), debugger (IDC 2 In-circuit Debugger), czy programator MPLAB PM3 Universal Device Programmer.

Usuwanie błędów z oprogramowania ułatwia moduł On-Chip Debug komunikujący się za pośrednictwem dwóch linii sygnałowych. Oprócz tego dostępny jest standardowy port JTAG. Rodzina PIC32 umożliwia ustawianie pułapek sprzętowych (breakpoints) pozwalających kontrolować pracę programu w różnych jego punktach. Dodatkowym narzędziem ułatwiającym wyszukiwaniem błędów w kodzie są dedykowane instrukcje do śledzenie wykonania programu bez ingerowania w niego. Polega to na obserwacji licznika rozkazów, przekazywaniu jego zawartości do programu symulacyjnego i na tej podstawie odtwarzany jest stan mikrokontrolera. Metoda ta jest bezinwazyjna i nie wpływa na pracę programu głównego.

Dla projektantów przewidziano dostęp do darmowych kodów źródłowych przyspieszających tworzenie aplikacji dla rodziny PIC32. Dostępne są stosy TCP/IP wspierające technologię BSD, które ułatwią pracę z siecią Ethernet, a oprócz tego przygotowano 16-bitowy system plików i serwery usług takich jak FTP, SNMP czy WEB.

Microchip przygotował zestawy ewaluacyjne pozwalające zapoznać się z możliwościami nowej rodziny mikrokontrolerów. Jedną z propozycji jest PIC32 Starter Kit (rys. 2), w skład którego wchodzi płytka prototypowa, zintegrowany debugger i kompilator języka C. Dostępna jest wersja studencka z limitem kodu wynikowego do 64kB, ale z pełną optymalizacją i bez limitu czasowego. Na dołączonej płycie CD zawarto również przykładowe programy, które pozwolą lepiej zapoznać się z możliwościami rodziny PIC32. Zestaw ewaluacyjny zawiera port USB zapewniający zasilanie płytki, zintegrowany programator/debugger, trzy przyciski, trzy diody LED oraz złącze umożliwiające podłączenie dodatkowych modułów. Według zapewnień producenta zestaw zawiera wszystkie niezbędne elementy potrzebne do zapoznania się z rodziną PIC32.

Atmel – AVR32

Rys. 2. Zestaw ewaluacyjny PIC32 Starter Kit

Wprowadzona przez firmę Atmel seria procesorów UC3A bazuje na rdzeniu ARV32 (rys. 3). Pozwala on obsłużyć pamięć programu o rozmiarze do 512kB. Dodatkowo dostępnych jest szereg układów peryferyjnych znacznie zwiększających atrakcyjność i obszar zastosowań nowych mikrokontrolerów:

  • wbudowany moduł umożliwiający komunikację w sieci Ethernet (10/100 Ethernet MAC),
  • port USB w wersji 2.0 obsługujący tryb full-speed (12Mbps) z funkcją On-The-Go (OTG),
  • zewnętrzny interfejs dla pamięci SRAM/SDRAM,
  • instrukcje DSP (mnożenie oraz mnożenie z akumulacją) wykonywane w jednym takcie zegara.

Rys. 3. Seria procesorów UC3A firmy Atmel bazuje na rdzeniu ARV32

Pierwszymi dostępnymi na rynku układami są procesory oznaczone symbolem AT32UC3A0512 oraz AT32UC3A1512. Ich moc obliczeniowa kształtuje się na poziomie 80 DMIPS (Dhryston MIPS) przy taktowaniu zegarem 66MHz i poborze prądu 40mA (napięcie zasilania 3,3V). Rdzeń AVR32 charakteryzuje się zużyciem energii na poziomie 1,65mW/DMIPS, co jest rezultatem zadowalającym, a w trybie uśpienia pobór prądu spada do poziomu 40µA.

Podczas projektowania rdzenia zwrócono szczególną uwagę na podsystemy pamięci, wewnętrzne magistrale oraz układy peryferyjne tak, aby osiągnąć optymalną wydajność końcowego procesora. Poświęcono również sporo uwagi komunikacji rdzenia z wbudowaną pamięcią Flash, zapewniając pracę potokową oraz podwójne buforowanie. Pozwoliło to odczytywać instrukcje w każdym takcie zegara (dla programu sekwencyjnego, tzn. bez pętli) z oczekiwaniem lub bez. Wprowadzenie stanu oczekującego umożliwiło zwiększenie częstotliwości zegara z 44 MHz do 66 MHz. Wpłynęło to w pomijalnym stopniu na wydajność, która zmniejszyła się o 8% (z 1,3 DMIPS/MHz do 1,2 DMIS/MHz).

Mikrokontrolery z serii UC3A charakteryzują się wysokowydajną, sześciopoziomową matrycą wewnętrznych połączeń. Zapewnia ona bezpośrednią komunikację pomiędzy wszystkimi układami nadrzędnymi i podrzędnymi, umożliwiając równoległy dostęp do układów podrzędnych z prędkością dochodzącą do 254 MB/s, przy częstotliwości zegara 66 MHz. W przypadku jednoczesnego dostępu do jednego modułu uruchomiona zostaje procedura arbitrażu, która określa pierwszeństwo komunikacji z danym modułem. Do układów nadrzędnych zalicza się rdzeń operujący na danych oraz instrukcjach, kontroler DMA oraz niektóre układy peryferyjne wymagające dużej przepustowości (np. moduł Ethernetu, port USB). Przykładem urządzenia podrzędnego jest pamięć Flash oraz RAM, interfejs EBI, magistrale peryferyjne itp.

O dużej wydajności całego mikrokontrolera decyduje w znacznym stopniu 15-kanałowy kontroler DMA zapewniający mapowanie układów peryferyjnych do adresowalnych sektorów pamięci systemowej umożliwiając wydajny transfer danych bez angażowania jednostki obliczeniowej. Dla porównania konwencjonalne rozwiązanie, wykorzystujące do przesyłania danych CPU, wymagałoby zużycia 55% mocy obliczeniowej dla prędkości 250kB/s lub 100% przy prędkości 500kB/s.

Mikrokontrolery z serii UC3A zostały wyposażone w standardowe układy peryferyjne, znane choćby z rodzin SAM7 czy SAM9 produkowanych przez firmę Atmel (rdzeń ARM). Można o nich zaliczyć przetworniki analogowo-cyfrowe, interfejs TWI (odpowiednik I2C), liczniki, generatory PWM, standardowy port szeregowy USART, port SPI.

Do komunikacji z otoczeniem można wykorzystać wspomniany wcześniej interfejs Ethernet. Umożliwia on pracę w trybie full- lub half-duplex z dedykowanym kontrolerem DMA, programowaną przerwą między pakietami (interpacket gap), wsparcie dla oznakowanych ramek wykorzystywanych w wirtualnych sieciach LAN oraz automatyczne wstrzymywanie i kończenie generowania ramek. Interfejs ten może pracować w dwóch trybach: MII (Media Independent Interface), który potrzebuje większej sekcji fizycznej dla zapewnienia obsługi aplikacji wymagających szybkiego połączenia lub RMII (Reduced Media Independent Interface) cechujący się mniejszą liczbą wymaganych portów I/O.

Jak wspomniano wcześniej, mikrokontroler ma interfejs USB wyposażony w dedykowany kanał DMA. Pozwala on na podłączenie układu do komputera i wymianę danych z prędkością do 12Mb/s. Możliwa jest praca w trybie hosta, co umożliwia dołączenie do procesora prostych urządzeń wyposażonych w ten port, takich jak PenDrive, drukarka, klawiatura czy mysz. Dedykowana pamięć umożliwia konfigurację siedmiu punktów końcowych (end-points), więc możliwa jest równoczesna praca kilku urządzeń.

Na uwagę zasługuje standardowy port szeregowy (USART). Oprócz zapewnienia projektantowi czterech niezależnych portów, pozwalających podłączyć różne urządzenia (np. komputer, moduł Bluetooth, przyrząd pomiarowy) firma Atmel wyposażyła je w sprzętową kontrolę transmisji. Jeden z portów ma dodatkowo wsparcie dla modemów, IrDA oraz kart pamięci pracujących w standardzie ISO 7816 (protokół szeregowy).

Rys. 4. Zestaw ewaluacyjny EVK1100

Dostępny moduł EBI (External Bus Interface) rozszerza dostępną przestrzeń adresową do 16MB. Możliwe jest wykorzystanie 16-bitowej szyny danych do obsługi zewnętrznych pamięci SRAM, SDRAM, ROM, Flash i urządzeń z mapowaniem pamięci, takich jak kontrolery LCD czy układy FPGA.

Dostępne jest siedem generatorów PWM, które mogą wyzwalać przetwornik A/C (8 kanałów, 10-bitów rozdzielczości), co przyczyni się do uproszczenia aplikacji sterujących silnikami.

Rdzeń AVR32 wyposażono we wbudowany system zarządzający pracą procesora (On-chip System Manager), który obejmuje wewnętrzny regulator napięcia, dzięki czemu procesor może być zasilany z pojedynczego napięcia 3,3V (rdzeń pracuje z napięciem 1,8V), moduł resetujący po załączeniu zasilania (Power-on Reset), detektor zaniku napięcia zasilającego (Brown-out Detector), sprzętowy układ watchdog oraz licznik czasu rzeczywistego. Sygnał zegarowy może pochodzić z wewnętrznego generatora RC, jednego z dwóch wejść zegarowych, oscylatora 32kHz lub dwóch niezależnych pętli PLL. Dostępne są specjalne funkcje do ochrony pamięci Flash – zarówno przed przypadkową modyfikacją z poziomu programu (w wyniku błędów) jak i przed odczytem przez osoby nieupoważnione.

Lista obsługiwanych rozkazów jest zwięzła, co w połączeniu z precyzyjnym zarządzaniem dostępem do pamięci, pozwala znacznie ograniczyć liczbę odwołań do niej i tym samym zmniejszyć zużycie energii. Pobór prądu kształtuje się na poziomie 600µA/MIPS w trybie aktywnym, a w trybie uśpienia spada do 40µA.

Procesor wyposażono w mechanizmy zarządzania sygnałem zegarowym – wolne układy peryferyjne pracują z niską częstotliwością, a sygnał zegarowy o największej częstotliwości doprowadzany jest tylko do peryferiów, które go bezwzględnie wymagają. Jest to rozwiązanie przyczyniające się do dalszego zmniejszenia energii pobieranej przez pracujący mikrokontroler. Co więcej istnieje możliwość dynamicznego zarządzania częstotliwością sygnału taktującego tak, aby dopasować go do aktualnych wymagań aplikacji. Oprócz tego przewidziano możliwość całkowitego wyłączenia generatorów.

Dowolna sekcja układów z rodziny UC3A może zostać wyłączona poprzez odcięcie jej od źródła sygnału zegarowego. Do tego celu wykorzystana została wielopoziomowa sekcja tranzystorowa, która redukuje statycznie rozpraszaną moc.

Duże znaczenie dla projektantów mają narzędzia projektowe. Spośród darmowych narzędzi programistycznych dostępny jest kompilator GNU gcc C, debugger GNU gdb, system operacyjny czasu rzeczywistego FreeRTOS.org oraz stos TCP/IP IwIP. Możliwy jest także zakup narzędzi komercyjnych firm takich jak: IAR (Embedded Workbench), ExpressLogic (ThreadX) oraz Micrium (uCOS/II).

Znane z mikrokontrolerów 8-bitowych AVR środowisko AVR Studio oraz AVR JTAGICE mkII zostało przystosowane do nowych procesorów 32-bitowych Atmela. Zapewnia ono wsparcie dla kompilatora GNU, włączając w to bardziej zaawansowane funkcje debuggowania dla danych i kodu z użyciem AVR32 Nano Trace. Układy AVR32 posiadają interfejs Nexus class 2+ z portem umożliwiającym bezinwazyjne śledzenie wykonania programu oraz zawartość zmiennych i rejestrów.

Dostępny zestaw ewaluacyjny EVK1100 (rys. 4) umożliwia zapoznanie się z funkcjonowanie interfejsów Ethernet i USB oraz portów szeregowych takich jak: SPI, TWI czy USART. Do bardziej zaawansowanych prac prototypowych przewidziano wyświetlacz LCD o organizacji 4x20 znaków oraz złącze rozszerzające umożliwiające podłączenie dodatkowych modułów.

Freescale – i.MX27 (rdzeń ARM926EJ-S)

Rys. 5. Procesor i.MX27 bazuje na rdzeniu ARM926EJ-S

W odpowiedzi na zapotrzebowanie rynku firma Freescale wprowadziła do swojej oferty multimedialne procesory serii i.MX, z przeznaczeniem dla aplikacji wymagających dużej mocy obliczeniowej, różnorodnych interfejsów komunikacyjnych oraz dużego bezpieczeństwa oprogramowania. Według zapewnień producenta nowe układy skrócą czas wprowadzanie produktu na rynek. Przyczynią się do tego niewątpliwie dostępne systemy operacyjne: Microsoft Windows CE, Linux oraz wiodące systemy czasu operacyjnego (RTOS).

Procesor i.MX27 bazuje na rdzeniu ARM926EJ-S (rys. 5) i może być taktowany częstotliwością 400 MHz (przy zasilaniu 1,45V) lub 266 MHz (przy 1,2V), podczas gdy częstotliwość magistrali systemowej wynosi 133 MHz.

Do dyspozycji projektantów oddano interfejs Ethernet 10/100 MAC, sprzętowe zabezpieczenia przed szkodliwym oprogramowaniem i nielegalnym kopiowaniem, system plug-and-play umożliwiający podłączanie urządzeń bez wyłączania zasilania oraz funkcje zarządzania poborem mocy. Procesor i.MX27 jest wyposażony w technologię Smart Speed promowaną przez Freescale. Umożliwia ona inteligentne wykorzystania sprzętowego akceleratora odciążającego CPU oraz matrycy wewnętrznych połączeń pozwalającej prowadzić równoległą realizację kilku zadań w systemie. Podnosi to efektywność przetwarzania danych przy zachowaniu jednakowej częstotliwości zegarowej. Rozwiązanie to jest korzystne w urządzeniach zasilanych z baterii, gdyż zwiększenie wydajności obliczeniowej nie zwiększa zużycia energii (nie zmienia się częstotliwość taktowania rdzenia).

Cechą charakterystyczną procesorów i.MX27 jest sprzętowy blok eMMA2, na który składa się koder i dekoder standardu H.263 oraz H.264 (MPEG4) obsługujący rozdzielczość w trybie D1 (704×576). Klatki animacji poddawane są dodatkowemu przetwarzaniu przed i po dekodowaniu, co przyczynia się do generowania obrazu o bardzo dobrej jakości. W przypadku kodowania strumienia w standardzie innym niż MPGE4 możliwa jest programowa implementacja dekodera. Przykładem mogą być popularne technologie takie jak: PacketVideo, RealNetworks czy Windows Media Video. Sprzętowe wspomaganie adresowania linii I/O zmniejsza „wąskie gardło” systemu, pozwalając zachować dużą elastyczność urządzenia i zredukować pobór mocy.

Bogaty zestaw układów peryferyjnych niewątpliwie uprości projektowanie aplikacji oferujących przesyłanie dźwięku oraz sekwencji video przez Internet, inteligentnych systemów sterowania, terminali płatniczych, telefonów komórkowych czy też aplikacji bezprzewodowych.

Wspomniana technologia Smart Speed pozwala zwiększyć wydajności rdzenia bez podnoszenia częstotliwości taktowania, co pozwoli końcowemu użytkownikowi na dłuższe korzystanie z urządzenia bez konieczności wymiany baterii. Moduł Smart Speed złożony jest z matrycy połączeń o organizacji 6 × 3. Pozwala on na prowadzenie trzech równoległych operacji eliminując (w sposób wirtualny) stany oczekiwania. Efektywna przepustowość magistrali może dochodzić w takim wypadku do 133 MHz, co może okazać się korzystne podczas implementacji rozwiązań takich jak V2IP (Voice and Video over Internet Protocol), pozwalając uzyskać dalsze oszczędności w zużyciu energii i wydłużyć tym samym czas pracy akumulatora.

Do dyspozycji projektanta został oddany szereg trybów oszczędzania energii, pozwalający wybierać między zapotrzebowaniem na energię, a czasem powrotu do stanu aktywności. Dostępne są tryby: Run (aktywny), Wait (wstrzymania), Doze (uśpienia), State Retention (podtrzymania), Deep Sleep (głębokiego uśpienia) oraz Hibernate (hibernacja).

Dodatkowe oszczędności energii przynosi moduł DPTC (Dynamic Process Temperature Compensation). Do jego zadań należy pomiar opóźnienia w układzie odniesienia zależny od prędkości pracy procesora oraz temperatury. W oparciu o wynik pomiaru obniżenie jest napięcia zasilania do niezbędnego minimum gwarantującego poprawną pracę przy danej częstotliwości.

Procesory i.MX zostały zaprojektowane z myślą o łączeniu z urządzeniami zewnętrznymi takimi jak kamery, wyświetlacze itp. Obsługiwana jest, wspomniana wcześniej, sieć Ethernet w standardzie 803.2 pracująca z prędkością 10 lub 100 Mbps. Kolejną dostępną opcją jest interfejs ATA-6 umożliwiający podłączenie dysku twardego zapewniającego dostęp do dużych nośników danych. Innym sposobem dołączenia dużych pamięci do systemu są karty pamięci wykonane w technologii Flash – procesory wyposażono w sprzętowy interfejs MMC/SD oraz CompactFlash.

Na wyposażeniu znajduje się także, będący obecnie standardem, port USB w wersji OTG (USB On-the-Go) umożliwiający współpraceę z komputerem PC lub urządzeniami peryferyjnymi. Dostępny port USB może pracować w roli hosta w trybie High-Speed. Obecny jest także port USB dedykowany do urządzeń takich jak Wi-Fi, Bluetooth, czy urządzenia sieci komórkowe zapewniający obsługę trybu Full-Speed.

Z bardziej tradycyjnych metod komunikacji dostępne są porty szeregowe (6 × UART, 3 × SPI, 2 × SSI/I2S) oraz 1-wire i IrDA.

Procesory i.MX27 bazują na platformie FPISA (Freescale's Platform Independent Security Architecture), która zapewnia duży stopień niezawodności i bezpieczeństwa końcowego produktu, co wynika z połączenia rozwiązań sprzętowych i programowych. W ramach platformy FPISA można wyróżnić:

  • blok zarządzania pamięcią MMU (Memory Management Unit),
  • układ zabezpieczający SCC (Security Controller) obejmujący zabezpieczoną pamięci RAM oraz układ monitorujący,
  • układ przyspieszający generowanie liczb losowych RNGA (Random Number Generator Accelerator),
  • uniwersalny i niepowtarzalny identyfikator (Universal Unique Identification),
  • układ kontroli integralności pracy RTIC (Run-Time Integrity Checker),
  • moduł kryptograficzny (Crypto Accelerator),
  • moduł identyfikacyjny układu scalonego IIC (IC Identification Module),
  • układ niezawodnego startu HAB (High Assurance Boot),
  • detektor antysabotażowy (Tamper Detection).

Rys. 6. Dla procesorów i.MX27 producent przygotował zestaw uruchomieniowy MX27 Lite Kit

Powyższy zestaw dostępnych funkcji pozwala przeciwdziałać szkodliwemu oprogramowaniu (wirusy) i próbie uszkodzenia urządzenie przez osoby trzecie. Zapobiega również kradzieży lub uszkodzeniu danych. Możliwa jest blokada dostępu do nieautoryzowanych zasobów blokując tym samym nielegalną dystrybucję oprogramowania. Z punktu widzenia końcowego użytkownika zabezpieczenia wbudowane w procesor i.MX27 czynią prywatne dane niedostępnymi dla osób trzecich, co zapewnia duży stopień poufności.

Projektantów zainteresowanych wykorzystaniem procesora i.MX powinien zainteresować także program firmy Freescale – Wireless Developer Network, który został stworzony, aby zapewnić narzędzia, technologię oraz wsparcie techniczne pozwalające wprowadzić na rynek produkty bazujące na technologii bezprzewodowej w krótkim czasie.

Wykorzystanie procesora i.MX nie będzie niestety łatwe, gdyż jest on dostępny jedynie w obudowach MAPBGA o wymiarach 17 × 17mm z 404 wyprowadzeniami, co wymaga przygotowania kosztownej płytki wielowarstwowej.

Dla procesorów i.MX27 producent przygotował zestaw uruchomieniowy MX27 Lite Kit (rys. 6), który umożliwia sprawdzenia w praktyce działania różnorodnych interfejsów, w które wyposażony jest procesor (Ethernet, audio in/out, serial, CompactFlash, MMC/SD, USB host, USB OTG, ATA), a dzięki obecności złącza dla wyświetlacza LCD (panel LCD do kupienia osobno) możliwe będzie prowadzenie testów procesora w zakresie przetwarzania obrazów i sekwencji video.

W zestawie zawarty jest pakiet narzędziowy oparty na licencji GNU (kompilator, linker, asembler, debugger). Istnieją również narzędzie komercyjne zawierające kompilator C/C++. Warto mieć na uwadze, że procesor i.MX27 oparty jest na rdzeniu ARM926EJ-S, co zapewnia zgodność na poziomie instrukcji z wieloma innymi narzędziami programistycznymi.

Dodatkowo ze strony producenta można pobrać zestaw kodeków obsługujących popularne formaty multimediów (stosowane m. in. w serwisach takich jak: Yahoo, YouTube, Google Video). Dodatkowo obsługiwane są formaty MPEG-4, Windows Media Video (WMV), Advanced Audio Encoding (AAC), JPEG, GIF, PNG czy BMP. Pozwala to znacznie przyspieszyć wprowadzenie w pełni multimedialnego produktu na rynek. Po zainstalowaniu w urządzeniu systemu Windows Embedded CE możliwe będzie uruchomienie aplikacji Windows Media Player lub Gstreamer pod kontrolą systemu Linux.

Podsumowanie

Oferta mikrokontrolerów 32-bitowych jest obecnie dość szeroka i pozwala na swobodny wybór rozwiązania najlepiej dopasowanego do potrzeb projektowanego urządzenia. Póki co nie sprawdzają się przewidywania sugerujące nadchodzącą dominację rdzenia ARM na rynku. Jest to dobra wiadomość, gdyż producenci będą wprowadzać dalsze ulepszenia do swoich układów, aby zwiększyć ich atrakcyjność na rynku. Skorzystają na tym przede wszystkim projektanci, gdyż będą mogli stosować coraz szybsze i coraz lepiej wyposażone procesory. Nie bez znaczenia jest też konkurencja polegająca na obniżaniu cen układów. Działanie takie doprowadzi z czasem do sytuacji, w której złożone, 32-bitowe mikrokontrolery będą stosowane na co dzień, zamiast rozwiązań 8-bitowych. Trudno przewidzieć, czy znikną one z rynku, czy też znajdą zastosowanie w specjalnych aplikacjach wymagających niskiej ceny lub bardzo małego zużycia energii. Pewnym jest, iż warto zapoznać się z nowymi możliwościami, aby zapewnić sobie drogę do tworzenia nowych, lepszych, bardziej funkcjonalnych urządzeń, które nie mogłyby powstać bez użycia zaawansowanych procesorów 32-bitowych. Wiąże się to z dużymi kosztami wynikającymi z konieczności zakupu nowych narzędzi programistycznych, zestawów ewaluacyjnych i szkoleniem personelu. Należy mieć jednak na uwadze, że konieczność ciągłego konkurowania z innymi firmami i rosnące wymagania konsumentów mogą w pewnym momencie wymusić przejście na układy 32-bitowe. Jest to bardzo prawdopodobna sytuacja i warto zawczasu się do niej przygotować.

Jakub Borzdyński