XMC4000: Cortex-M4F nie tylko dla przemysłu
Przepaść między mikrokontrolerami 16-bitowymi a mikrokontrolerami z rdzeniem TriCore była ogromna, ale firmie Infineon udało się ją wypełnić. Nowa rodzina mikrokontrolerów XMC4000, wykorzystująca rdzeń ARM Cortex-M4F, dzięki innowacyjnym peryferiom i platformie projektowej dostosowana jest doskonale do potrzeb systemów przemysłowych, wyróżniając się wyraźnie na tle produktów konkurencji.
Biorąc za przykład firmy Freescale, Texas Instruments, STMicroelectronics, NXP, Atmel i innych producentów mikrokontrolerów, niemiecka firma Infineon także zaczęła wykorzystywać w swoich mikrokontrolerach rozwiązania firmy ARM. W połowie 2010 roku zakupiła, niemal w tym samym momencie co Freescale, licencję na nowy rdzeń Cortex-M4. W odróżnieniu od konkurenta, który ogłosił wprowadzenie do sprzedaży serii Kinetis na swojej konferencji deweloperskiej FTF jeszcze pod koniec czerwca 2010, Infineon pracował w tajemnicy przez ponad półtora roku, nim zaprezentował na początku roku 2012 swoją rodzinę XMC4000. W nazwie tej „X” ma oznaczać przygotowanie na wiele różnych rynków (cross-market), a liczba 4000 pochodzi od symbolu użytego rdzenia M4. XMC4000 jest rodziną mikrokontrolerów dopasowaną ściśle i bardziej niż jakikolwiek produkt konkurencyjny do potrzeb klientów przemysłowych. Wśród cech wyróżniających ją można wymienić: przeznaczone dla niej środowisko projektowe DAVE 3, pamięć Flash o czasie dostępu zaledwie 25 ns, cztery przetworniki A/C o rozdzielczości 12 bitów, demodulator sigma-delta, liczniki do obsługi 24 bloków PWM (w przyszłych rodzinach ma się nawet pojawić blok PWM o rozdzielczości 150 ps), programowalny uniwersalny interfejs do komunikacji szeregowej oraz programowalny interfejs do enkoderów przyrostowych i czujników Halla.
Dodatkowe informacje o mikrokontrolerach XMC4000 są dostępne w artykule. |
Pod adresem są dostępne przygotowane przez naszą redakcję odcinki kursu programowania mikrokontrolerów XMC4500, bazujące na zestawie RelaxKit. |
Szczególnym wyróżnikiem mikrokontrolery rodziny XMC4000 wśród konkurencyjnych układów z rdzeniem Cortex-M4 jest zakres dopuszczalnych temperatur pracy, sięgający aż do +125 stopni Celsjusza. Wysokie temperatury pracy są coraz częściej nieuniknione w systemach przemysłowych i możliwość pracy w skrajnych warunkach może się okazać rozstrzygającym argumentem na korzyść Infineona. W tym miejscu firma robi użytek z tego, że sama produkuje swoje mikrokontrolery, podobnie jak to ma miejsce z układami dla rynku motoryzacyjnego. Trzeba jednak zaznaczyć, że rodzina XMC4000 nie posiada certyfikacji motoryzacyjnych, bo producent najwyraźniej nie chce podkopać przy okazji pozycji swoich układów z rdzeniem TriCore przeznaczonych do tych zastosowań.
Tanie zestawy startowe RelaxKit z mikrokontrolerami XMC4500 przedstawiamy w artykule. |
Mikrokontrolery XMC4000 zadebiutowały na rynku w postaci podrodziny XMC4500, której masowa produkcja rozpoczęła się w czerwcu 2012. Dziewięć miesięcy później światło dzienne miały ujrzeć trzy kolejne rodziny (XMC4400, XMC4200 i XMC4100, przy czym próbki układów z rodzin 4400, 4200, 4100 były dostępne już pod koniec listopada 2012, a masową produkcję zapowiedziano na koniec drugiego kwartału 2013), a kolejne dziewięć miesięcy później premierę ma mieć XMC4700 – pracująca z taktowaniem 180 MHz rodzina high-end. Infineon celowo unika wzięcia udziału w wyścigu na megaherce, wierząc że dzięki dobrym peryferiom jest w stanie osiągnąć tę samą wydajność przy niższej częstotliwości, pozwalając tym samym oszczędzać energię.
Optymalizacja pod kątem przetwarzania w czasie rzeczywistym
Schemat blokowy układów rodziny XMC4000 (rysunek 1) przedstawia rdzeń Cortex-M4F, peryferia i matrycę przełączającą. Mikrokontrolery są wyposażone w osobne magistrale dla kodu, danych i peryferiów, co maksymalizuje przepustowość i skraca czasy reakcji na przerwania i zmiany kontekstu. Peryferia są podłączone do systemu z użyciem dwóch osobnych magistral AHB, a pamięci SRAM pracują bez wchodzenia w stany oczekiwania. Dzięki zastosowaniu 4-kilobajtowego bufora komend (dwukierunkowego, asocjacyjnego) i 256-bitowego bufora danych (rysunek 2), dostęp do pamięci Flash przy odczycie został przyspieszony średnio o 30%, co w większości przypadków także oznacza zerowy czas trwania stanu oczekiwania. Dodatkowe przyspieszenie osiągnięto dzięki zastosowaniu osobnych kolejek FIFO dla Ethernetu (4 kB), USB (2 kB), CAN (16 kB) i USIC (Universal Serial Interface Channel).
Rys. 1. Schemat blokowy układów XMC4000. Potrójna matryca przełączająca magistral AHB-Lite w połączenia z trzema możliwymi masterami DMA i niewielkimi opóźnieniami rdzenia Cortex-M4F czyni ten mikrokontroler doskonałym do zastosowań w systemach czasu rzeczywistego
Pamięć Flash można zabezpieczyć zarówno przez nieautoryzowanym odczytem, jak i zapisem, a w przypadku dostępu do zapisu, ochronie mogą podlegać także pojedyncze sektory. Zapis można też ograniczać za wbudowanej pamięci OTP, a wybrane sektory są wtedy na zawsze zabezpieczone przed jakąkolwiek modyfikacją. W innych przepadkach zabezpieczone sektory można nadpisywać po podaniu hasła.
Rys. 2. Bufor przechowujący zapytania o dostęp do pamięci Flash (o czasie dostępu 25 ns) przyspiesza dostęp do niej średnio o 30%, co powoduje wykonywanie kodu bez stanów oczekiwania