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