Kurs XMEGA: system zdarzeń (14)

|

W mikrokontrolerach XMEGA układów peryferyjnych jest bardzo dużo, ale rdzeń procesora jest tylko jeden. Mogłoby się okazać, że rdzeń nie jest w stanie przetwarzać danych wysyłanych przez peryferia. Projektanci układów XMEGA udostępnili narzędzia, pozwalające peryferiom komunikować się ze sobą zupełnie bez pośrednictwa rdzenia – są to DMA oraz system zdarzeń. W tym odcinku zajmiemy się zdarzeniami, a DMA zostanie omówione w kolejnych częściach.

Musimy dokładnie zrozumieć różnicę między przerwaniem, a zdarzeniem. Po zgłoszeniu przerwania, procesor przerywa dotychczas wykonywane operacje, przechodzi do procedury obsługi przerwania, po czym wraca do dotychczas wykonywanego programu.

Zdarzenie może zostać zrealizowane bez jakiejkolwiek reakcji ze strony rdzenia procesora. Służy do tego, aby jeden układ peryferyjny mógł sterować innym układem. Przykładem zdarzenia może być przepełnienie timera, które inicjuje pomiar przetwornikiem analogowo-cyfrowym. Innym zdarzeniem może być zmiana stanu komparatora analogowego, która jest rejestrowana przez timer.

Zdarzenie może wygenerować układ zwany nadajnikiem. Można zdarzenie generować również programowo. Do każdego nadajnika możemy podłączyć jeden lub kilka odbiorników. Większość peryferiów może być zarówno nadajnikami i odbiornikami. Nic nie stoi na przeszkodzie, by odbiornik jednego zdarzenia był nadajnikiem kolejnego. W ten sposób można łączyć timery w łańcuszek i można stworzyć timer 64-bitowy lub jeszcze dłuższy. Przykład nadajnika i odbiornika przedstawiono na rysunku poniżej.



Ważną zaletą zdarzenia nad przerwaniem jest duża szybkość reakcji. Wystarczą zaledwie dwa cykle zegarowe od wygenerowania zdarzenia do jego realizacji przez odbiornik. W przypadku przerwania – samo wejście do procedury zajmuje dużo więcej czasu. Zdarzenia mają w 100% przewidywalny czas realizacji i jak już wspomniano, nie angażują procesora, więc może zajmować się innymi zadaniami. Mało tego, rdzeń procesora można nawet wyłączyć, wprowadzając go w stan uśpienia! Tak więc zastosowanie systemu zdarzeń może radykalnie zmniejszyć zużycie energii.


Nadajniki i odbiorniki połączone są ze sobą przy pomocy sieci połączeń (rounting network). W przypadku mikrokontrolera ATxmega128A3U składa się ona z ośmiu kanałów, które doprowadzone są do wszystkich peryferiów, mogących funkcjonować jako odbiorniki zdarzeń. Na „początku” każdego kanału jest multiplekser, czyli elektroniczny przełącznik, którym można ustawić, jaki układ peryferyjny ma być nadajnikiem zdarzenia. W ten sposób możemy budować sieć połączeń według własnych potrzeb (jeszcze trochę i będzie jak w FPGA…). Choć może wydawać się to bardzo skomplikowane, w praktyce wykorzystanie systemu zdarzeń jest trywialnie proste.



System zdarzeń nie jest wyłącznie biernym pośrednikiem i siecią połączeń. Umożliwia także kilka ciekawych funkcji, takich jak filtr cyfrowy oraz dekoder kwadraturowy. Filtr umożliwia likwidację szumów, co przydatne jest w sytuacji, gdy nadajnikiem zdarzenia jest pin procesora połączony np. z przyciskiem. Dekoder kwadraturowy umożliwia bardzo proste podłączanie enkoderów obrotowych, takich jak w pokrętłach oscyloskopów. Dzięki całkowicie sprzętowej obsłudze, zastosowanie enkodera w programie staje się równie proste jak podłączenie klawiatury!

Kurs XMEGA:Moduły prototypowe:

6 komentarze :

Tomek pisze...

Witam. Tak sobie pomyślałem, że jeżeli moduł x3-DIL64 ma gniazdo pamięci SD to może któraś z kolejnych części kursu mogłaby być o obsłudze SD. Pozdrawiam.

Dominik Leon Bieczyński pisze...

Wszystko w swoim czasie! Najpierw musi być coś o obsłudze SPI.

Anonimowy pisze...

Witam. Kiedy ciąg dalszy kursu? Jakieś przykłady praktyczne wykorzystania zdarzeń?
Pozdrawiam i z niecierpliwością czekam na kolejny odcinek.

Dominik Leon Bieczyński pisze...

Kurs oczywiście będzie kontynuowany, ale tymczasem jest weekend majowy :) tak więc pozwolę sobie pojechać na urlop :)

Tomek pisze...

Czy użyty tu do eliminacji drgań filtr cyfrowy może być też użyty przy obsłudze przerwania ?

Dominik Leon Bieczyński pisze...

Oczywiście, nie ma tu żadnych ograniczeń.

Prześlij komentarz

Skomentuj!

Sklep Leon Instruments