Kinetis M – rodzina mikrokontrolerów dla aplikacji pomiarowych

Należy wspomnieć również bloki przydatne dla bezpieczeństwa i wsparcia aplikacji: licznik „watchdog” spełniający wymogi nowych przepisów w zakresie bezpieczeństwa urządzeń gospodarstwa domowego (IEC 60730), sprzętowy akcelerator 16/32-bitowego CRC, generator liczb losowych (RNGA) oraz blok wykrywania włamań (TAMPER).

Seria Kinetis M jest oferowana z dwiema konfiguracjami pamięci i w trzech wielkościach obudowy. Projektanci mają do wyboru elementy z 64KB lub 128KB pamięci Flash, w obudowach LGA-44, LQFP-64 i LQFP-100. Wersje z 64 i 100 wyprowadzeniami zawierają standardowy kontroler LCD obsługujący do 288 segmentów. Producent gwarantuje pracę elementów w zakresie temperatur od -40°C do +85°C i przy napięciu zasilania w zakresie od 1,71 do 3,6 V. Lista dostępnych elementów serii Kinetis M oraz ich własności podano w tabeli 1.

 

Tab. 1. Własności mikrokontrolerów serii Kinetis M

 

Wsparcie dla wydzielenia „legalizowanej“ części aplikacji

Zagadnienia związane z certyfikacją i legalizacją urządzeń pomiarowych są koordynowane przez międzynarodowe organizacje – w tym przypadku przez International Organization of Legal Metrology (OIML) i European Cooperation in Legal Metrology (WELMEC) które opracowują i publikują zaleceia dotyczące sposobu tworzenia aplikacji dla przyrządów pomiarowych z punktu widzenia oddzielenia tej części aplikacji która ma wpływ na dane rozliczeniowe od pozostałych części które nie są istotne dla rozliczeń.

Oznacza to, że producent urządzenia pomiarowego który opracował miernik zgodnie ze wszystkimi zaleceniami i zostanie to potwierdzone podczas wstępnych badań homologacyjnych i weryfikacji, może po zatwierdzeniu i weryfikacji urządzenia dokonywać zmian i adaptacji w pozostałej części aplikacji, bez konieczności ponownego zatwierdzenia i legalizacji.

Powyższe zalecenia były wzięte pod uwagę w czasie projektowania mikrokontrolerów Kinetis M. Standardowe bloki i moduły zostały rozszerzone o sprzętowe elementy do zarządzania i kontroli dostępu do wszystkich wbudowanych pamięci, urządzeń peryferyjnych i portów I/O (patrz rysunek 3).

 

Rys. 3. Schemat blokowy otoczenia rdzenia w mikrokontrolerach Kinetis M

Rys. 3. Schemat blokowy otoczenia rdzenia w mikrokontrolerach Kinetis M

 

Platforma Kinetis M składa się z rdzenia ARM Cortex-M0+ i DMA. Te aktywne moduły (Bus Masters) mają dostęp do innych modułów pasywnych (Bus Slaves) w trybie Privileged lub User. Kolejny moduł platformy Miscellaneous Control Module (MCM) rozszerza tryb dostępu User o znacznik Secure lub Unsecure w zależności od ustawienia rejestru identyfikatora procesu (PID). Rezultatem jest trójstopniowy model dostępu: Privileged > User Secure > User nonsecure. W aplikacji pomiarowej operacje związane z „legalizowaną metrologią” będą wykonywane w trybie Privileged, w przeciwieństwie do pozostałej części aplikacji, które będą wykonywane w trybach User.

O aktualnym trybie dostępu procesora i DMA decydują Memory Protection Unit (MPU), Peripheral Bridge (AIPS) i General Purpose Input-Output (GPIO), które zgodnie z kryteriami określonymi przez użytkownika, umożliwią lub odmówią dostępu do modułu sprzętowego na chipie, do segmentów pamięci i portów I/O. Jeśli projektant aplikacji (programista) zadecyduje o użyciu mechanizmu kontroli i sterowaniu dostępu (odpowiednio ustawi wspomniane rejestry) wtedy platforma mikrokontrolera będzie samodzielnie eliminować jakiekolwiek próby dostępu i ingerencji ze strony pozostałych części aplikacji.

 

Narzędzia programistyczne

Do projektowania i debugowania nowych aplikacji Freescale proponuje zestaw TWR-KM34Z50M. Zestaw umożliwia szybkie i łatwe tworzenie aplikacji za pomocą zintegrowanego interfejsu SWD (OpenSDA) z wbudowanym wirtualnym portem szeregowym. Wirtualny port szeregowy może być użyty z programem FreeMASTER dla monitorowania czynności mikrokontrolera, jak również do wizualizacji i zmiany wartości statycznych i globalnych zmiennych w programie aplikacji.

Karta zestawu TWR-KM34Z50M w postaci płytki drukowanej o wymiarach 80×90 mm, prócz podstawki mikrokontrolera zawiera następujące układy: 160-segmentowý LCD, trójosiowy akcelerometr MMA8491Q, siedmio kanałowy programowalny generator sygnałów sinusoidalnych z interfejsem USB, IrDA, czujnik temperatury NTC, kilka diod i przycisków. Zestaw TWR-KM34Z50M może być używany samodzielnie lub może współpracować z innymi kartami I/O modułowego systemu TOWER (fotografia 4).

 

 

Fot. 4. Wygląd zestawu TWR-KM34Z50M

 

Mikrokontroler można zaprogramować za pomocą niemal wszystkich narzędzi programistycznych, które obsługują platformę ARM Cortex-M0+. Może to być np. IAR Embedded Workbench dla ARM 6.70. Do tworzenia małych aplikacji do16 kilobajtów kodu wystarcza wersja Kickstart tego narzędzia, udostępniana bezpłatnie przez firmę IAR Systems. Dla bardziej wymagających aplikacji o rozmiarze do 64 kilobajtów kodu dostępne jest bezpłatne narzędzie CodeWarrior for MCU 10.5 – Special Edition. Narzędzie zawiera kompilator C, debugger, linker, asembler i zintegrowane środowisko programistyczne (rysunek 5).

 

Rys. 5. Okno środowiska programistycznego CodeWarrior 10.5 

Rys. 5. Okno środowiska programistycznego CodeWarrior 10.5

 

Integralną częścią nie tylko komercyjnych, ale również darmowych wersji pakietu CodeWarrior jest jego rozszerzenie o nazwie Processor Expert. Programowanie aplikacji odbywa się tutaj poprzez wybór wymaganych właściwości i parametrów (kliknięciem myszki) a rozszerzenie samo ustawia odnośne rejestry i generuje stosowny kod źródłowy w C. Z tego narzędzia korzystają nie tylko początkujący, ale również i bardziej doświadczeni programiści używają Processor Expert do inicjalizacji nastaw mikrokontrolera. Za pomocą tego narzędzia można utworzyć prostą aplikację nawet bez znajomości architektury mikrokontrolera i jego rejestrów. Ponadto, kod wygenerowany w ten sposób nie zawiera żadnych istotnie nadmiarowych elementów.

Oczywiście, Processor Expert nie wygeneruje tak wydajnego kodu jak „ręcznie” pisanie programu, kiedy programista często korzysta z makr i opcji preprocesora. Z takiego sposobu programowania korzystają przede wszystkim doświadczeni użytkownicy – pozwalając im na tworzenie aplikacji, które w pełni wykorzystują zasoby mikrokontrolera, ponadto kod jest bardziej przejrzysty i przenośny. Programiści zaliczający się tej grupy na pewno zgodzą się z opinią, że do stworzenia aplikacji w pełni wystarcza aby mieć dobrze sprawdzony projekt wzorcowy z modułem „Startup”, zdefiniowaną tabelę wektorów przerwań i procedurę linkowania kodu, oraz sterowniki peryferiów wraz z przykładami ilustrującymi właściwy sposób programowania i wykorzystania modułów peryferyjnych na chipie. Starannie sprawdzone przykłady projektów, zbiory plików systemowych, sterowników peryferii wraz z przykładami ich oprogramowania są dostępne w pakiecie instalacyjnym o nazwie „Kinetis M bare-metal drivers and software examples“. Pakiet instalacyjny sterowników i przykładów v2.2 obsługuje kompilatory CodeWarrior dla MCU 10.5, IAR Embedded Workbench dla ARM 6.70 i Rowley CrossWorks dla ARM 3.2. Wszystkie sterowniki są optymalizowane pod kątem szybkości działania i wraz z przykładami kodu są dostarczane w postaci źródłowej. W pakiecie instalacyjnym zawarto również proste narzędzie do tworzenia nowego projektu. Listę przykładów dostępnych w pakiecie pokazano na rysunku 6.

 

Rys. 6. Lista przykładów aplikacji dostępnych w pakiecie „Kinetis M bare-metal drivers and software examples“

Rys. 6. Lista przykładów aplikacji dostępnych w pakiecie „Kinetis M bare-metal drivers and software examples“

 

Podsumowanie

Mikrokontrolery Kinetis M są produkowane przy użyciu nowoczesnej Thin Film Storage (TFS) o wymiarze charakterystycznym 90 nm. Maksymalna częstotliwość taktowania rdzenia wynosi 50 MHz. Moduł wewnętrznego generator sygnału taktującego składa się z bloków Frequency-Locked Loop (FLL), Phase-Locked Loop (PLL), Low Frequency Oscillator (OSC32K), High Frequency Oscillator (OSCMHZ), 32 kHz i 4/2 MHz Internal Reference Clock (IRC). Obok wielu modułów peryferyjnych do przetwarzania sygnałów analogowych, timerów, sterownika LCD, interfejsów komunikacyjnych i zegara czasu rzeczywistego (RTC) mikrokontrolery Kinetis M zawierają również licznik „watchdog”, sprzętowy akcelerator 16/32-bitowego kodu CRC, generator liczb losowych (RNGA) i wejście sensora wkrywającego próby nieuprawnionego dostępu (tamper).

Mikrokontrolery z serii Kinetis M sa dostępne w dwóch wersjach, różniących się pojemnościami pamięci Flash (64/128 kB) i trzech wersjach obudów: LGA44, LQFP64 i LQFP100. Dobór peryferiów, dostępne wielkości obudowy, a zwłaszcza unikalne rozwiązanie sprzętowe służące do wydzielenia części aplikacji decyduje o zastosowaniu tego mikrokontrolera przede wszystkim do realizacji przyrządów pomiarowych dla celów rozliczeniowych.

Obecnie firma Freescale oferuje szereg projektów wzorcowych dla prezentowanych mikrokontrolerów, są to m.in. jedno-, dwu- i trójfazowe liczniki energii elektrycznej, przystosowane do stosowania w aplikacjach SmartGrid. Opisy tych projektów wraz z dokumentacją i kodami źródłowym są dostępne na stronach freescale.com.

O autorze