Bogusław Wiśniewski - Poznańskie Warsztaty Telekomunikacyjne

Transkrypt

Bogusław Wiśniewski - Poznańskie Warsztaty Telekomunikacyjne
2006
Bogusław Wiśniewski
Barbara Szecówka-Wiśniewska
Jacek Ostrowski
Akademia Górniczo-Hutnicza w Krakowie
Al. Mickiewicza 30
30-059 Kraków
[email protected]
Poznańskie Warsztaty Telekomunikacyjne
Poznań 7 - 8 grudnia 2006
MASOWE APLIKACJE MIKROKONTROLERÓW RODZINY
HC809 – STUDENCKIE PREZENTACJE 2005/2006
Streszczenie: W referacie przedstawiono genezę
studenckich prezentacji projektów. Uzasadniono wybór
mikrokontrolerów
rodziny
HC908
(Freescale
Semiconductor). Dokonano oceny ich przydatności pod
kątem różnorodnych zastosowań. Omówiono wybrane
problemy techniczne i organizacyjne prezentacji
1.
GENEZA PREZENTACJI
Proces kształcenia w zakresie techniki
mikroprocesorowej musi w dużej części opierać się na
praktycznych projektach. Każdy student powinien
przejść wszystkie etapy realizacji aplikacji praktycznej
od strony sprzętu i oprogramowania. Często zdarza się,
że przy projektowaniu układów współpracujących z
mikroprocesorem jest okazja do uzupełnienia
wiadomości, szczególnie z techniki analogowej.
Zajęcia z techniki mikroprocesorowej na kierunku
Elektronika i Telekomunikacja wydziału EAIiE AGH
to VI i VII semestr studiów. Na pierwszym z nich tok
zajęć jest klasyczny – wykład uzupełniony przez
laboratorium. Natomiast w semestrze VII, istotną
częścią składową jest projekt praktyczny, będący
aplikacją mikrokontrolera jednoukładowego. Od trzech
lat projekt połączony jest z publiczną prezentacją
wykonanych aplikacji (dotychczas odbyły się dwie
prezentacje- na pierwszej 34, a na drugiej 44
dwuosobowych grup projektowych, lista tematów na
stronie laboratorium Techniki Mikroprocesorowej
home.agh.edu.pl/~ltmip). Prezentacja w bieżącym roku
została włączona do Krakowskiego Festiwalu Nauki,
jako jedyne przedsięwzięcie studenckie.
Projekt objął większość studentów kierunku
Elektronika i Telekomunikacja (liczącego 160 osób).
Aby
wyrównać
szanse,
każda
aplikacja
wykorzystywała ten sam typ mikrokontrolera. Do
wyboru były tematy z listy, ale każdy student mógł też
zaproponować własne zastosowanie. Projekt chcieli
wykonać prawie wszyscy studenci kierunku. Nie
wszystkim oczywiście wystarczyło zapału, wiele
pomysłów rozbiło się o barierę niedostępności
elementów lub o problem kosztów. Pozostała jednak
całkiem spora grupa, która zdecydowała się wziąć
udział w publicznej prezentacji. Krótki czas i
nadzwyczaj skromne środki finansowe nie pozwoliły
na wykonanie „na czysto” płytek drukowanychpozostawiono logikę montażu, a niektóre układy
wykonawcze
zostały
zastąpione
wersją
zminiaturyzowaną. Wiele grup po próbach generalnych
stwierdziło, że swoje aplikacje rozwiązaliby prościej
sprzętowo, a oprogramowanie napisaliby już w wersji
„2.0”- co jest zjawiskiem pozytywnym i naturalnym.
Radości i rozczarowania dzielili wraz ze studentami
opiekunowie tego przedsięwzięcia, które było poważnym
wyzwaniem merytorycznym i logistycznym, a przede
wszystkim czasowym. Satysfakcją jest ciągły wzrost
liczby projektów, doprowadzonych do postaci finalnej w
kolejnych prezentacjach - zaś obecny rocznik studentów w
ogóle nie dopuszczał możliwości rezygnacji z tej formy
projektu.
2.
WYBÓR MIKROKONTROLERA
Około 10 lat wcześniej, w innej siatce godzinowej
funkcjonował projekt praktyczny (semestr VI). Był on
typowo dydaktycznym i wykorzystywał układy 8051. W
chwili obecnej, mimo rozpowszechnienia i różnych
rozszerzeń jest to konstrukcja zbyt przestarzała.
Ponieważ w programie wykładu zawsze były
omawiane mikroprocesory firmy Motorola/Freescale, jak
również duża część stanowisk laboratoryjnych dotyczy
tych układów (68008, 68HC11, 68HC12, 68030, ’40, ’60)
– a zatem zdecydowano się na rodzinę mikrokontrolerów
68HC908 Freescale. Przemawiały za tym:
- różnorodność układów rodziny,
- stosunkowo rozbudowana lista instrukcji,
- dostępne darmowo środki uruchomieniowe i
„sample”,
- magistrala wyłącznie wewnętrzna,
- system przerwań z adresacją pośrednią
procedur.
Tabela 1 przedstawia grupy funkcjonalne wraz z głównym
przeznaczeniem. Gwiazdka oznacza typy używane w
projektach. Preferowane były oczywiście wersje w
mniejszych obudowach i szerszym rastrze lub
dysponujące koniecznym interfejsem (CAN, USB).
3.
WYBRANE PROBLEMY TECHNICZNE I
ORGANIZACYJNE
Prowadząc w takiej ilości projekty praktyczne dla
studentów o różnym stopniu przygotowania, mamy do
czynienia z różnorodnymi problemami. Dotyczą one
rozwiązań sprzętowych, programowych, jak również są
natury organizacyjno - logistycznej. W czasie prac, często
pojawiała się konieczność uzupełnienia na bieżąco luk z
przedmiotów, nawet tych podstawowych. Oto problemy
dotyczące sprzętu, z którymi spotykaliśmy się
niejednokrotnie:
Tab.1. Typy kierunkowe układów rodziny 68HC908
Oznaczenie
Przeznaczenie
Obudowytypu
Liczba
wyprowadzeń
AB
Ogólne
64
AS/AZ
Ogólne
52-64
AP
Ogólne
42-48
GQ/GT/GP* Ogólne
40-44
AS/AZ
Motoryzacja
52-64
(łącze CAN)
GR/GZ*
Ogólne/Motoryzacja
28-64
(łącze CAN)
EY/QL
Motoryzacja
16-32
(łącze LIN)
BD/LD
Obróbka grafiki
44-64
LJ/LK
Obsługa LCD
52-80
LB*/MR
Oświetlenie, napędy
20/28-64
(precyzyjne/rozszerzone PWM)
JK*/JL
Zbieranie danych
20-48
analogowych
QB*/QT*/
Ekonomiczne
8-16
QY*
SR
Mikromocowe
42-48
JB*
Łączność port USB
20-44
-
brak „wyczucia” mikroprocesora tj.
sposoby
wykorzystania
jego
wbudowanych interfejsów i wymienności
sprzętu na program,
przeprowadzenie właściwej konwersji
wielkości nieelektrycznych na sygnał
napięciowy (prądowy),
dokonanie
eliminacji
zakłóceń
i
właściwego rozwiązania zasilania,
zapewnienie filtracji wstępnej i/lub
wzmocnienia sygnału
Na rozwiązanie tych problemów zespół
organizatorów nie szczędził czasu, gdyż wad sprzętu
nie da się nadrobić nawet wyrafinowanym
oprogramowaniem.
Natomiast w przypadku oprogramowania starano
się narzucić właściwy szkielet czasowy, ustalić pętlę
główną i zdefiniować procedury zależne od sprzętu.
Okazało się, że problemem jest interpretacja bitów
warunkowych i zagnieżdżanie procedur.
W przypadku wyboru wersji mikrokontrolera, oprócz
oczywistych przypadków, konieczna była bezpośrednia
sugestia prowadzących. Chodzi o to, aby wybór był
zgodny z zasadami ekonomii - użycie układu o
najmniejszym
lecz
jeszcze
wystarczających
możliwościach. Ponadto starano się minimalizować
ilość wersji mikrokontrolera, przewijających się w
aplikacjach.
Działania
organizacyjne
zmierzały
do
minimalizacji czasu poświęconego na problemy nie
ściśle merytoryczne - stąd listy mailowe, forum
studenckie, komunikaty obiegowe itd. Istotnym było
etapowanie
postępu prac (terminy kontrolne) przedstawione na rys.1.
rys.1. Etapy prac
Pozwoliło to na konsultowanie podobnych problemów w
tym samym czasie. Wykonanie projektu do wersji
odpowiadającej wymaganiom publicznej prezentacji nie
jest możliwe w realnych warunkach w ciągu jednego
(zimowego) semestru. Stąd wyniknęła konieczność
kontynuacji prac od początku semestru letniego do połowy
maja (netto niecałe 3 miesiące) np. na prace mechaniczne
oraz napisanie „przedostatniej” wersji oprogramowania.
4.
OCENA PRZYDATNOŚCI
MIKROKONTROLERÓW 68HC908
Pierwszą
prezentację
zorganizowano,
dla
wyrównania szans i standaryzacji, wykorzystując dla
wszystkich projektów, identyczny typu mikrokontrolera.
Wybrano wersję ‘HC908QT4CP, przede wszystkim ze
względu na wyposażenie w przetwornik a/c, a także
dwukanałowy „timer” plus typowe podzespoły dla całej
rodziny. Przeważyła też, „prowokacyjna” obudowa 8 pin
(tj. 6 linii we/wy - wielofunkcyjne), gdyż chciano
unaocznić, że ilość pinów obudowy nie przekłada się
wprost na możliwości funkcjonalne. Mikrokontroler
‘HC908QT4CP generalnie wykazał swoją dużą
skuteczność. Jego jedynym mankamentem, jak i całej
rodziny jest brak tzw. akumulatora impulsowego.
Przebiegi można zliczać wykorzystując funkcję „input
capture” wydatnie ogranicza górną częstotliwość
zliczanych impulsów, ze względu na softwarową obsługę.
Użyte mikrokontrolery są wyposażone w wewnętrzny
generator (wymaga tzw. trymowania czyli dostrojenia
częstotliwości do nominalnej). Dla praktycznie wszystkich
aplikacji stabilność wewnętrznego generatora (układy RC)
była wystarczająca, za wyjątkiem syntezy częstotliwości
czy dokładnych pomiarów czasu (zewnętrzny generator
jest jako opcja). Dysponowana pamięć flash 4kB i RAM
64 B były wystarczające. Problemem było natomiast
wąskie gardło - ilość linii wejścia- wyjścia. Trudność tę
rozwiązywano na wiele sposobów, typowe układy
ekspansji linii wejścia - wyjścia z wykorzystaniem
dodatkowych układów zewnętrznych zaprezentowano
na rys.2. (nie będą omawiane). Wystąpiły problemy z
generacją przebiegu typu PWM o częstotliwości
dowolnej (skrócony obieg 16 - bitowego licznika
głównego). Testując ulepszoną wersję układu
(908QTA), która pojawiła się w tym czasie w ofercie,
nie stwierdzono tych ograniczeń.
Przystępując do drugiego rzutu projektu (ubiegły
rok) zdecydowano się na dobór typu mikrokontrolera do
konkretnej aplikacji. Na fot.1. zestawiono kilka
przykładowych projektów (gra Sudoku, syntezer dźwięku,
samochód sterowany światłem, ploter i inne). Należy
podkreślić, że środki softwarowe i sonda adaptera są
identyczne dla wszystkich wersji rodziny HC908.
Pojemniejsze pamięci flash w większości wersji pozwoliły
np. na obfite komentowanie na panelach LCD czy
tablicowanie funkcji.
rys.2. Przykład optymalnego wykorzystania linii we-wy
fot.1. Przykładowe projekty
1.
PODSUMOWANIE
Obecnie trwają prace pierwszej fazy III
Prezentacji. „Zainstalowały” się już grupy projektowe.
Na podstawie obserwacji z lat ubiegłych przełoży się to
na co najmniej 50 tematów zakończonych (stałe
tendencje zwyżkowe). Wiele tematów jest bardzo
ambitnych. Formuła tego samego typu mikrokontrolera
została ewolucyjnie rozszerzona na kontrolery
sygnałowe serii 56F8XX czy kontrolery MCF5XXX
(seria „Coldfire”). Aby nie generować „ciągu
rozbieżnego” i ze względów organizacyjnouruchomieniowych pozostano przy wyrobach firmy
Freescale, które sprawdziły się w poprzednich
prezentacjach. Za ich użyciem przemawiają
ogólnodostępne środki uruchomieniowe, pełna
dokumentacja i bogaty wybór darmowych „sampli”.
Tradycją stały się dyplomy, wręczane przez
przedstawicieli firmy Freescale oraz udział inżynierów z
ich laboratoryjnych centrów aplikacyjnych (Roznov Czech
System Center).
5.
LITERATURA:
[1] Jacek Bogusz, Lokalne interfejsy szeregowe w
systemach cyfrowych, BTC 2004
[2] Zbigniew Hajduk, Mikrokontrolery w systemach
zdalnego sterowania, BTC 2005
[3] Ryszard Pełka, Mikrokontrolery- architektura
programowanie zastosowania WKŁ 2000
[4] James M. Sibigtroth, Zrozumieć małe mikrokontrolery,
BTC 2004
[5] home.agh.edu.pl/~ltmip