mechanizm_przerwan_f..

Transkrypt

mechanizm_przerwan_f..
LABORATORIUM
„PROCESORY SYGNAŁOWE W
AUTOMATYCE PRZEMYSŁOWEJ”
Mechanizm przerwań i menadżer zdarzeń procesora sygnałowego F/C240
Strona 1 z 12
Opracował mgr inż. Jacek Lis (c) ZNE 2004
1. Mechanizm przerwań procesora sygnałowego F/C240
Źródła pochodzenia przerwań:
•
RESET – przerwanie (inicjalizowane sprzętowo lub programowo) powodujące natychmiastowe
przerwanie realizacji programu zablokowanie mechanizmu przerwań i peryferiów procesora do
czasu odblokowania przez procedur obsługi tego przerwania – zwykle funkcje główną programu
Możliwe przyczyny wystąpienia przerwania RESET:
• WATCHDOG (WD) – Reset generowany przy przepełnieniu zegara jednostki WD – wartość do
której nalicza zegar WD należy ustawić w specjalnym rejestrze. (UWAGA! - w momencie
włączenia zasilania jednostka WD jest aktywna)
• Reset generowany programowo – ustawienie bitu 15 (RESET0) lub wyczyszczenie bitu 14
(RESET1) rejestru SYSSR powoduje wystąpienie resetu programowego.
• Skok lub wywołanie nieprawidłowego adresu w pamięci.
• Aktywny stan pinu RESET procesora.
• Aktywny stan pinu PORESET (Power-on Reset).
•
Sprzęt (przerwania sprzętowe) – generowane przez źródła zewnętrzne i wewnętrzne można je
podzielić na:
• Zewnętrzne przerwania odpowiadające XINT1, XINT2, XINT3, PDPINT, NMI. Pierwsze
cztery to przerwania maskowalne i można je zablokować bezpośrednio lub przez ustawienie
odpowiednich bitów w rejestrze masek przerwań (IMR). Przerwanie NMI – to przerwanie
niemaskowalne o najwyższym priorytrcie możliwe do zablokowania jedynie przez wykonanie
funkcji obsługi NMI lub reset.
• Wewnętrzne przerwania związane z peryferiami procesora – związane z portami SPI, SCI,
mechanizmami WD/RTI oraz przetwornikami ADC. Wszystkie przerwania z tej grupy to
przerwania maskowalne i można je zablokować bezpośrednio lub przez ustawienie odpowiednich
bitów w rejestrze masek przerwań (IMR).
Program:
• INTR – instrukcja umożliwiająca wywołanie obsługi dowolnego przezwania z grupy przerwań
maskowalnych (z wyłączenie przerwań XINT1, XINT2, XINT3, PDPINT).
• NMI – występuje po wydaniu polecenia NMI lub podanie stanu aktywnego na pin NMI
procesora. Wywołanie tego przerwania powoduje bezwarunkowy skok do wektora przerwań (do
adresu 24h w wektorze przerwań).(Odpowiednik miekkiego resetu).
• TRAP – wydane tej komendy powoduje bezwarunkowy skok do wektora przerwań (do adresu
22h w wektorze przerwań). Wywołanie przerwanie NMI powoduje przerwania przerwanie
przerwania TRAP.
• Mechanizm śledzenia - wywoływany przez instrukcje TRAP i NMI.
•
Ze względu na sposób obsługi przerwania można podzielić na dwie kategorie:
Strona 2 z 12
Opracował mgr inż. Jacek Lis (c) ZNE 2004
Maskowalne – przerwania które można blokować i odblokowywać programowo
Niemaskowalne – przerwania których nie można zablokowć programowy. Są to przerwania których
wystąpienie każdorazowo powoduje bezwarunkowy skok do funkcji obsługi tego przerwania:
W procesorach C/F240 dostępnych jest łącznie 32 przerwania zorganizowane w wektor przerwań:
•
•
Strona 3 z 12
Opracował mgr inż. Jacek Lis (c) ZNE 2004
Strona 4 z 12
Opracował mgr inż. Jacek Lis (c) ZNE 2004
Strona 5 z 12
Opracował mgr inż. Jacek Lis (c) ZNE 2004
Strona 6 z 12
Opracował mgr inż. Jacek Lis (c) ZNE 2004
Strona 7 z 12
Opracował mgr inż. Jacek Lis (c) ZNE 2004
Obsługa przerwania podzielona jest na trzy zasadnicze etapy:
1. Otrzymanie żądania przerwania. Musi zostać zgłoszone
2. Rozpoznanie przerwania.
• Polega na określeniu priorytetu przerwania i obsłudze przerwania o najwyższym priorytecie (pod
warunkiem, że jednocześnie zgłoszono więcej niż jedno żądanie obsługi przerwania)
• Sprawdzeniu w rejestrze czy włączony jest mechanizm przerwań (9bit rejestru ST0) – INTM –
Strona 8 z 12
Opracował mgr inż. Jacek Lis (c) ZNE 2004
jeśli INTM=0 – mechanizm masek przerwań jest aktywny, jeśli INTM=1 – wszystkie
maskowalne przerwania są zablokowane (w momecie uruchomienia procesora i po resecie
INTM=1)
• Sprawdzeniu czy maska przerwania jest odblokowana tzn, żę odpowiedni bit w rejestrze IMR jest
ustawiony na 1
3. Wykonanie procedury (funkcji) obsługi przerwania (ISR) – polega na przerwaniu wykonywania
programu głównego i skoku do procedury obsługi danego przerwania, po jej wykonaniu następuje
powrót do miejsca w którym program główny został przerwany.
Poniżej zamieszczono schemat ilustrujący ten mechanizm (2-17).
Funkcja obsługi przerwania dzieli się na dwie zasadnicze części (przedstawione na 2-18):
1. Część pierwsza – wspólna dla wszystkich funkcji obsługi przerwania (GISR) polega na wyznaczeniu
procedury przypisanej do danego przerwania i skoku do niej.
Strona 9 z 12
Opracował mgr inż. Jacek Lis (c) ZNE 2004
2. Realizacji tej procedury (SISR) a następnie powrotu po jej realizacji. Możliwe jest w tym miejscu
rozgałęzienie wykonywania procedury obsługi przerwania na kilka różnych możliwości w przypadku
gdy obsługuje się kilka zdarzeń powiązanych z tym samym przerwaniem.
Uwaga! W przypadku gdy jakieś przerwanie nie jest obsługiwane wymagane jest przypisanie tego
przerwania do funkcji pustej (PHANTOM) wspólnej dla wszystkich nieobsługiwanych przerwań.
Mechanizm ten zabezpiecza przed przypadkowymi skokami do pustych miejsc w pamięci i
zawieszeniem procesora.
Ważnym przerwaniem w zastosowaniach napędowych jest PDPINT – przerwanie ochrony modułu
mocy w przypadku gdy wystąpi blokowane są PWM-y (stan wysokiej impedancji).
Strona 10 z 12
Opracował mgr inż. Jacek Lis (c) ZNE 2004
2. Menadżer zdarzeń (Event Menager – EV) w F/C240
Moduł EV służy do zarządzania peryferiami procesora sygnałowego F/C240. Obsługiwane przez EV
peryferia (najważniejsze) to:
• 12 kanałów modulatorów o zmiennym współczynniku wypełnienia (PWM),
• 3 szesnastobitowe zegary ogólnego przeznaczenia,
• 3 szesnastobitowe w pełni komplementarne pary z kontrolą czasu martwego,
• 3 szesnastobitowe pary komplementarne,
• 4 jednostki detekcji zdarzeń (CAPx),
• interfejs enkoderowy (QEP),
Schemat EV zamieszczono poniżej:
Najważniejszymi elementami EV są zegary (3 szesnastobitowe) – dzięki nim można wykonywać
różnego rodzaju cykliczne operacji – schemat blokowy zegara zaprezentowano poniżej:
Strona 11 z 12
Opracował mgr inż. Jacek Lis (c) ZNE 2004
Konfiguracji zegara dokonuje się poprzez wpisanie odpowiednich wartości do rejestrów TxPR (rejestr
decydujący o okresie naliczania zegara), TxCON (rejestr konfiguracyjny zegara) i GPTCON
(konfiguracja ogólna – wspólna dla wszystkich zegarów). Poprzez odpowiednią konfigurację zegarów 2
i 3 możliwe jest uzyskanie zegara 32 bitowego.
Możliwych jest wiele trybów pracy zegarów. Zasadniczo trybu te dzielimy na ciągłe (gdy zegar działa od
startu aż do wyłączenia resetując się po naliczeniu do pewnej wartości (upływie określonej liczby cykli
-taktów procesora) lub zmieniając kierunek naliczania) i pojedyncze (gdy po doliczeniu do określonej
wartości zegar zatrzymuje się oraz symetryczne i niesymetryczne.
Znaczenie poszczególnych bitów rejestrów konfiguracyjnych znaleźć można w [1] str. 6-40 do 6-44
oraz w dokumentacji do wtyczki „IO Registers” firmy Technosoft.
Literatura dodatkowa:
1. TMS320F/C240 DSP Controllers Peripheral Library SPRU161C.PDF – rozdział 6 do strony 6-1
Strona 12 z 12
Opracował mgr inż. Jacek Lis (c) ZNE 2004

Podobne dokumenty