• Nie Znaleziono Wyników

TESTOWANIE APLIKACJI Z MIKROKONTROLERAMI

N/A
N/A
Protected

Academic year: 2021

Share "TESTOWANIE APLIKACJI Z MIKROKONTROLERAMI"

Copied!
5
0
0

Pełen tekst

(1)

Bogusław Wiśniewski

Barbara Szecówka-Wiśniewska

Jacek Ostrowski

Akademia Górniczo-Hutnicza w Krakowie

Al. Mickiewicza 30

30-059 Kraków

bwisniew@agh.edu.pl

TESTOWANIE APLIKACJI Z MIKROKONTROLERAMI

Streszczenie: W referacie dokonano klasyfikacji

mikrokontrolerów, ze szczególnym uwzględnieniem miejsca lokacji pamięci kodu i sposobów dostępu. Przedstawiono wbudowane środki wspomagające i rozwiązania systemów przerwań. Porównano charakterystyczne aplikacje systemów uruchomieniowych. Na końcu omówiono trendy rozwojowe mikrokontrolerów.

1. OGÓLNA KLASYFIKACJA MIKROKONTROLERÓW

Kiedy na początku lat 80-tych, w kilku czołowych firmach, na bazie produkowanych już mikroprocesorów (µP) powstawały pierwsze mikrokontrolery jednoukładowe, ich twórcy nie spodziewali się, że w przyszłości stanowić będą one większość aplikacji w układach programowalnych. O ile pierwsze mikrokontrolery (µC), nazywane też niekiedy mikrosterownikami (µS), były rozwiązaniami bardzo do siebie zbliżonymi (lista instrukcji, architektura, przestrzeń adresowa, wyposażenie) - to ich obecny rozwój doprowadził do wyodrębnienia się różnych klas, wynikających z obszaru zastosowań. Także w poszczególnych klasach, µC mogą różnić się architekturą, koncepcją listy rozkazów, czy szczegółowymi rozwiązaniami wbudowanych układów peryferyjnych. W szczególności możemy dokonać następujących podziałów:

I. Według „pamięci programu”

a. wyłącznie zewnętrzna- stała bądź RAM na etapie uruchomień (np. W65C816- Western Digital, µPD78XXXX- NEC, M68HC16- Motorola/Freescale, MCF5XXX- Freescale), b. wyłącznie wewnętrzna (TLC5870, TMP470-

Toshiba, LPT210X- Philips, MAXQ-

Dallas Semiconductor, XC164- Infinenon, ATMEGA Atmel, PIC10, ’12, ’14, ‘16 -Microchip, 68HC08- Freescale). Są to przeważnie różne rodzaje pamięci stałej, ale niekoniecznie np. w PIC18C601- Microchip- obszar kodu jest obsadzony pamięcią RAM, c. rozwiązania mieszane (H8/300- Hitachi, ST9-

Thomson, 8051 i pochodne- Intel/Atmel, 68HC12- Freescale).

d. typy określone nazwą ROM-less odnoszą się „z definicji” do punktu ‘a’, lecz i w punkcie ‘b’ wspomniany PIC18C601 jest tak klasyfikowany. II. Według struktury magistrali (rys.1.):

a. struktura von Neumanna (np. CR16 – National Semiconductor, ST9 – Thomson, MAXQ – Dallas Semiconductor i większość µC). Odpowiada to

zwykle jednolitej przestrzeni adresowej.

b. struktura Harvard (np. MSP430 – Texas Instruments, PIC16, ’18 – Microchip, Z8 - Zilog) Należy zauważyć, iż wielu producentów

nadużywa określenia Harvard. Obowiązuje ono tylko wtedy, gdy:

- we wnętrzu µC są oddzielne magistrale: • z pamięci kodu do dekodera instrukcji • z pamięci danych do jednostki (jednostek)

przetwarzania

- µC nie korzysta z pamięci zewnętrznych.

Nie ma natomiast rozwiązania, w którym zdecydowano by się na dwie oddzielne magistrale zewnętrzne (liczba linii) - w tych µC, które dysponują magistralą jest ona generalnie multipleksowana (adres/dane).

c. struktura pseudoharvard (MCF5XXXX- Freescale). Jest to rozwiązanie przyjęte z µP

rys.1. Organizacja przestrzeni adresowych mikrokontrolerów a) typ von Neumana b) typ Harvard c) typ pseudohravard

2006

Poznańskie Warsztaty Telekomunikacyjne Poznań 7 - 8 grudnia 2006

(2)

„stacjonarnych”, w tym przypadku z układu 68040/60. Jeżeli pamięci podręczne są wystarczająco obszerne, to przeważają trafienia dla kodu i danych. Przypadki równoczesnego chybienia i związany z tym konflikt wspólnej magistrali pojawia się sporadycznie.

III. Według zakresu częstotliwości zegara: a. statyczne (praktycznie wszystkie µC) b. dynamiczne (np. 8050/52 – Intel)

Układy statyczne, gdzie zegar może zostać zatrzymany, zdecydowanie przeważają. Wynika to z możliwości zmniejszenia poboru mocy, przy zwolnieniu zegara. Z tych samych względów praktycznie wszystkie µC posiadają jeden lub więcej stopni obniżania poboru prądu zasilania (wyłączenie CPU, interfejsów wbudowanych, pamięci RAM przy istniejącym niskonapięciowym podtrzymaniu zewnętrznym). Budzenie µC zwykle jest już wbudowane przez podtrzymywany zegar czasu rzeczywistego, bądź układ przerwania periodycznego.

Rozwiązania wyższej klasy dysponują układem nadzoru zegara (clock monitor) zgłaszającym stan wyjątkowy bądź zerującym µC, gdy częstotliwość zegara spadnie poniżej pewnej określonej wartości . Należy podkreślić, że działania te na nic się nie zdadzą, gdy zegar się „zatrzyma”. Stąd np. w 68HCS12 (Freescale) w tej sytuacji załączany jest awaryjnie zegar wewnętrzny.

2. WBUDOWANE ŚRODKI WSPOMAGAJĄCE

Zanim powstanie ostateczna wersja aplikacji, sprzęt współpracujący z µC i oprogramowanie są wielokrotnie zmieniane i ulepszane. Dlatego też producent każdej rodziny µC oferuje szereg, odpowiednio przystosowanych wersji danego układu. Możemy je sklasyfikować następująco:

a. układy uruchomieniowe, b. układy docelowe odwracalne, c. układy docelowe nieodwracalne.

Zbiorcze zestawienie z zachowaniem porządku chronologicznego przedstawiono na rys.2. Obecnie większość firm koncentruje się, oprócz wersji programowanych na etapie produkcji (zamawiamy wzór „maski”) - na układach wyposażonych w pamięć flash (plus ewentualnie E2PROM). Układy te dysponują różnymi standardami do:

- ładowania/ weryfikacji i odczytu kodu,

- przejścia do wykonywania wprowadzonego kodu

- nadzoru uruchamianego programu. Generalnie są to różne typy portów szeregowych typu:

- SCI (UART) - SPI - Microwire - ICSP/ICD - OnCE - JTAG - BDM - USB

Funkcją realizowaną zawsze jest zapis i weryfikacja kodu. Odczyt, jeżeli jest uwzględniony, zależy od dosłania wpisanego wcześniej kodu zabezpieczającego.

(3)

Alternatywą, przy braku znajomości kodu bezpieczeństwa, jest skasowanie całej pamięci flash i ponowny zapis. Zabezpieczenia są konieczne, gdyż często przy produkcji małoseryjnej pozostajemy przy µC z pamięcią flash jako ostatecznej wersji.

I jeszcze kilka uwag :

- Jeśli zainstalowany w µC (ROM) tzw. bootloader nie dysponuje funkcją kasowania, to procedurę kasującą można załadować do obszaru RAM (nie jest chroniony) i zarządzić jej wykonanie.

- Programowane bity bezpieczeństwa występują też w układach z pamięcią EPROM, zabezpieczając przed jakimkolwiek odczytem. Ich usunięcie jest połączone z wymazaniem całej zawartości pamięci EPROM.

- Pewna część pamięci zapisywanej przy pomocy bootloadera może być też typu E2PROM. Wynika to z ich właściwości długoterminowych. Otóż dla pamięci flash podaje się typowo 10 lat i 100 000 zaprogramowań, zaś dla pamięci E2PROM odpowiednio 40 lat i 1 000 000 cykli (cykle sprawdzane, czas prognozowany).

- Czasem, gdy bootloader obsługuje dwa porty: JTAG i BDM (względnie UART), wtedy poprzez JTAG kontrolowane są „piny”, a drugi z portów zapewnia dostęp do pamięci i ewentualny nadzór pracy.

- Układy z EPROM programowane są zwykle po przeniesieniu do oddzielnych programatorów. Funkcje dostępu do pamięci „otwierają się” poprzez podniesienie wyróżnionego pinu do napięcia wyższego niż 5V.

Producenci µC stosują różne strategie, których ostatecznym celem jest maksymalizacja zysku. I tak polecenia bootloadera mogą być utajnione i producent µC sam lub poprzez firmy współpracujące, monopolizuje płatne środki uruchamiania. Informację o poleceniach bootloadera mogą zawierać: dedykowany µC w swojej pamięci ROM lub specjalnie zaprojektowany układ - umieszczone w adapterze pomiędzy µC a kontrolerem nadrzędnym. Drugi biegun to producenci ujawniający jeśli nie całość poleceń, (część służy do testów produkcyjnych) to przynajmniej zbiór niezbędny do posłużenia się portem łączącym µC z komputerem. Informacje takie są konieczne dla niezależnych firm - producentów środków wspomagania. Środki te może opracować także producent µC i udostępniać darmowo (pełne lub w wersji demo) co w ostatecznym rozrachunku wydaje się strategią najrozsądniejszą.

3. ROZWIĄZANIA SYSTEMÓW PRZERWAŃ

W systemach przerwań możemy dokonać dwóch klasyfikacji:

a. adres procedury obsługi określony bezpośrednio lub pośrednio,

b. system przerwań jednopoziomowy lub wielopoziomowy.

Przed szczegółowym omówieniem należy przedstawić funkcjonalny podział przestrzeni adresowej. Dla

uproszczenia wybierzemy strukturę von Neumanna (przestrzeń jednolita) - rys.3.

rys.3. Przykładowe organizacje przestrzeni adresowych Należy wspomnieć, że w wielu µC po podaniu sygnału reset, następuje wybór konfiguracji przestrzeni adresowej, związanej z trybem pracy. Zwykle jest do dyspozycji:

- tryb ładujący (nadrzędny)

- tryb wykonawczy (program wewnętrzny). Jeśli magistrala jest wyprowadzona na zewnątrz to można jeszcze wybrać (zamiast ładującego):

- tryb pobierania zewnętrznego.

We wszystkich µC kontakt z wbudowanymi układami peryferyjnymi (porty równoległe i szeregowe, układy czasowe, przetworniki a/c itp.) realizuje się poprzez blok rejestrów specjalnego przeznaczenia (SFR- Special Function Register). Są to lokacje:

- sterujące (do zapisu), - statusowe (do odczytu),

- danych (operacje w zależności od potrzeb). Technika ta umożliwia stworzenie wielu wersji tego samego µC (prawie sto – 68HC08 Freescale), różniących się wyposażeniem i pojemnością pamięci (oraz oczywiście ilością pinów obudowy). Jeśli nawet zastosujemy układ bardziej rozbudowany niż potrzeba, to należy pamiętać, że wszystkie niezaprogramowane interfejsy sprzętowe pozostaną w stanie uśpienia - przypisane im linie pozostają zwykłymi liniami we-wy (po sygnale reset wszystkie linie ustawiają się jako wejścia).

Część przestrzeni oznaczona na rys.3. jako tablica przerwań, może zawierać początki procedur obsługi przerwań/wyjątków ulokowanych pod sztywnymi adresami (głównie prostsze µC). Klasyczna tablica przerwań zawiera natomiast zgrupowane liniowo adresy procedur obsługi (metoda pośrednia). Stosowany w mikroprocesorach cykl akceptacji przerwania nie występuje, ponieważ µC zna każdorazowo źródło przerwania.

(4)

Obowiązuje powszechna zasada, zgodnie z którą po wyzerowaniu wszystkie przerwania zostają

zablokowane. Występują blokady: - generalna (rejestr statusowy CPU),

- indywidualne (rejestry sterujące konkretnych interfejsów).

Jeśli nawet dane przerwanie (od interfejsu lub zewnętrzne) zablokujemy, to zawsze stosując technikę podglądu możemy je śledzić, ponieważ kopia żądania znajduje się w odnośnym rejestrze statusowym. Stos w µC jest zawsze wewnętrzny. Zwykle przy przerwaniach/ wyjątkach składane są automatycznie rejestry robocze CPU. Czasem ze względu na szybkość reakcji i przy operowaniu przez CPU praktycznie tylko na pamięci danych, na stos zapisuje się wyłącznie rejestr PC. Przerwania typu NMI spotykane się rzadko. W przygniatającej większości przypadków, obsługa przerwań jest jednopoziomowa. Po skończeniu bieżącej obsługi, µC wybiera najważniejsze i procedura jego obsługi zostaje doprowadzona do końca itd. Nie dotyczy to przerwania programowego (oznaczenia TRAP, SWI), które jako rozkaz musi być wykonane – więc dochodzi do zagnieżdżenia.

4. PRZYKŁADY ZREALIZOWANYCH SYSTEMÓW URUCHOMIENIOWYCH

Spośród wielu wykonanych stanowisk uruchomieniowych dla µC zostaną mówione trzy, będące przykładem różnego podejścia do zagadnienia. Dąży się, aby stanowisko stanowiło w miarę możliwości, samodzielny system o otwartej strukturze zainstalowany w kasecie, gdzie można umieszczać komponenty wynikające z obsługiwanej aplikacji. System host jest dodawany w sytuacji, gdy µC ma niewielkie możliwości (lista instrukcji, przestrzeń adresowa) i nie jest w stanie przejąć funkcji edytora/asemblera i debuggera. Przykłady rozwiązań przedstawiono na rys.4. Prosty µC (8039) - rys.4a., pracuje w konfiguracji z wyniesioną pamięcią kodu (RAM). System host, po asemblacji umieszcza tam program. Ze względu na niewielkie możliwości µC (brak rozkazu pułapki adresowej czy pracy krokowej) karta interfejsu musiała zostać wyposażona w sprzętowy układ pułapki adresowej. Uaktywnia on podmianę pamięci kodu na nakładkę (pamięć EPROM), gdzie znajduje się procedura komunikacyjna.

rys.4. Przykłady laboratoryjnych systemów uruchomieniowych z mikrokontrolerami a) z mikroprocesorem nadrzędnym i komunikacją przez pamięć

b) autosystem

(5)

Do systemu host dociera cały kontekst tj. stan rejestrów i pamięci wewnętrznej µC. Po transmisji µC czeka na transmisję zwrotną. W trakcie oczekiwania host modyfikuje kod w EPROM. Po zwrotnym odesłaniu stanu następuje automatyczne przełączenie na pamięć RAM i działanie uruchamianego programu aplikacyjnego jest kontynuowane.

Konfiguracja przedstawiona na rys.4b. dotyczy µC 68HC12. Jego możliwości odnośnie „samoobsługi” są co najmniej wystarczające. Dedykowane oprogramowanie zostało celowo umieszczone w zewnętrznej pamięci EPROM - wewnętrzny flash jest w całości do dyspozycji procedur aplikacyjnych. Problemem była natomiast instalacja sprzętowej konsoli obserwacyjno – sterującej, dodanej w związku przeznaczenie stanowiska do dydaktyki. Układ 68HC12 nie posiada możliwości odłączania się od magistrali, a praca magistrali jest synchroniczna. Problemu nie dałoby się rozwiązać gdyby nie fakt, iż 68HC12 jest w pełni statyczny. Zastosowano więc technikę „zamrażania” zegara. Taki zabieg umożliwia obserwację stanu szyn adres/dane i sprzętową pracę krokową. Zatrzymanie zegara w połączeniu ze sprzętowym odłączaniem µC od magistrali, umożliwia konsoli bezpośredni dostęp do pamięci.

Układ 68HC908 nie wyprowadza na zewnątrz magistrali. W trybie monitor aktywny jest firmowy program komunikacyjny, posiłkujący się dedykowaną linią (transmisja naprzemienna z potwierdzającym echem). System host opiera się na układzie 68HC12 (kontakt przez port SCI). Oprogramowanie firmowe obsługuje polecenia: zapisu/odczytu pamięci, odczytu wskaźnika stosu i przejścia do wykonywania wprowadzonego programu. System host zawiera oprogramowanie edytor/asembler i debugger. Logika BREAK w µC umożliwia zakładanie pułapek i pracę krokową (pułapka krocząca). Układ ‘HC908 posiada wewnętrzne rejestry skojarzone z komparatorem adresu oraz lokację w tabeli adresów początkowych (wyjątki/przerwania). Pułapka sprzętowa używana jest do testowania procedur wprowadzonych do pamięci flash. Nadzorowany µC posiada też rozkaz pułapki adresowej (SWI). Używanie go do zakładania pułapek/pracy krokowej jest też możliwe. Jednakże każdy krok to ponowne przeprogramowanie pamięci flash, a ilość takich operacji jest limitowana.

Praktyka wyposażania laboratorium w samodzielne systemy jest kontynuowana. Aktualnie w opracowaniu są stanowiska z µC: PIC18 (Microchip) i MCF52230 (Freescale).

5. PODSUMOWANIE

Analizując rozwój mikrokontrolerów od pierwszych konstrukcji do chwili obecnej, można zauważyć następujące tendencje:

- przenikanie rozwiązań z klasycznych mikroprocesorów (kolejka instrukcji – 68HC12 Motorola/Freescale, pamięć podręczna – MCF52XX Freescale, jądro ARM – LP210X Philips, ADµC702X – Analog Devices)

- włączenie funkcji typowych dla procesorów sygnałowych (68HC16 Freescale– tylko filtracja, DSPIC30/33 Microchip, DSP56852 Freescale oraz C166SV2 Infineon – pełny zakres)

- instalację wydajnych jąder rodem z procesorów „stacjonarnych” (np. tzw. jądro V1 rodem z M68040 dla rodziny 68HC9S08)

- łączenie µC z logiką programowaną

- podwyższenie częstotliwości zegarowych, przy zachowaniu dolnej -„DC”

- instalacja bardziej pojemnych pamięci flash Powyższe tendencje wynikają z faktu, że układy µC jeszcze przez dłuższy czas nie będą miały alternatywy w obszarze swoich zastosowań. Równolegle z rozwojem µC następuje rozbudowa wbudowanej diagnostyki (ROM firmware), łącz komunikacyjnych, osprzętu jak np. emulatory oraz oprogramowania host komputerów. Należy pamiętać, że im prostszy µC tym bardziej kłopotliwe jest tworzenie narzędzi wspomagających proces uruchamiania.

6. LITERATURA

[1] B. Wiśniewski, B. Szecówka-Wiśniewska, J. Ostrowski, Organizacja i problemy techniczne laboratorium systemów mikroprocesorowych na przykładzie LSM w Akademii Górniczo- Hutniczej, Elektronika 1.2003

[2]A. Krysiak, Mikrokontrolery rodziny AVR, Typoscript, Wrocław 2000 [3] http://home.agh.edu.pl/~ltmip/ [4] www.freescale.com [5] www.microchip.com [6] www.atmel.com [7] www.hitachi.com [8] www.toshiba.com [9] www.st.com [10] www.wdc.com [11] www.intel.com [12] www.nxp.com [13]www.dalsemi.com

Cytaty

Powiązane dokumenty

Problemy techniczne i ekonomiczne związane z recyklingiem odpadów z tworzyw sztucznych przyczyniły się do opracowania tech- nologii wytwarzania polimerów, do produkcji

Metoda obsługi tego zdarzenia powinna odczytać teksty z pól edycji jTextField1 i jTextField2 , dokonać ich konwersji na liczby będące argumentami operacji

public void addTytul_ksiazki(Tytul_ksiazki tytul_ksiazki) – po procesie Reverse Engineering.. Zofia Kruczkiewicz, Podstawy in Ŝ

Przy jakich seriach produkcyjnych koszt całej produkcji będzie najmniejszy?. Niech x liczbę

Krzyże, kwiaty, znicze a nawet nagrobki stojące w miej- scu wypadku drogowego są częścią zjawiska określa- nego w literaturze światowej jako spontaniczne upa-

Brak tej odpowiedzi jest jedną z przyczyn, że ceny za świadczenia zdrowotne finansowane przez NFZ są dzi- siaj brane z sufitu. Na marginesie przypomnę, że wycena hemodiali-

Gracz musi użyć żetonu Dyplomacji podczas rozstrzygania Konfliktów w tej samej rundzie (Epoce), w której go pozyskał, nawet jeśli jego siła militarna jest wyższa od

 długotrwała niewłaściwa postawa, podczas siedzenia przy komputerze, może przyczynić się do zmęczenia mięśni, bólu kręgosłupa, stawów, szyi, barku i dłoni.. Korzystanie