Documentation. Podstawy techniki mikroprocesorowej ETEW006. Przerwania. Przerwania. Po co komu przerwania. (Interrupt):



Podobne dokumenty
Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

architektura komputerów w 1 1

MIKROPROCESORY architektura i programowanie

Architektura mikrokontrolera MCS51

Architektura mikrokontrolera MCS51

(Rysunek z książki T.Starecki. Mikokontrolery jednoukładowe rodziny 51. NOZOMI W-wa 1996)

Przerwania w systemie mikroprocesorowym. Obsługa urządzeo wejścia/wyjścia

Zerowanie mikroprocesora

Przerwania w architekturze mikrokontrolera X51

Przerwania, polling, timery - wykład 9

Instytut Teleinformatyki

Instytut Teleinformatyki

PRZERWANIA. 1. Obsługa zdarzeń, odpytywanie i przerwania Obsługa zdarzeń jest jedną z kluczowych funkcji w prawie każdym systemie czasu rzeczywistego.

Metody obsługi zdarzeń

PRZERWANIA. P1 - Procedura obslugi przerwania. Obsługa zdarzenia Z1 poprzez procedurę obsługi przerwania P1

Obszar rejestrów specjalnych. Laboratorium Podstaw Techniki Mikroprocesorowej Instytut Mikroelektroniki i Optoelektroniki PW

Hardware mikrokontrolera X51

architektura komputerów w 1 1

Wykład 9. Obsługa przerwań

Procesory rodziny x86. Dariusz Chaberski

TECHNIKA MIKROPROCESOROWA

MIKROPROCESORY architektura i programowanie

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:

CPU. Architektura FLAGS Bit: dr Paweł Kowalczyk; DPTNS, KFCS UŁ. SI 16 bit. 16 bit. 16 bit.

Urządzenia peryferyjne RS-232. Wykład 2

CYKL ROZKAZOWY = 1 lub 2(4) cykle maszynowe

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

Akademia Górniczo-Hutnicza w Krakowie Katedra Elektroniki

2. Budowa układów procesorowych rodziny TMS320C

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika

Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling)

Documentation. Podstawy techniki mikroprocesorowej ETEW006 Architektura wybranych mikrokontrolerów. high performance based microcontroller (3/3)

Techniki mikroprocesorowe i systemy wbudowane

Komputery klasy PC. Dariusz Chaberski

Mikrokontroler Intel dr inż. Wiesław Madej

Wykład 4. Przegląd mikrokontrolerów 16-bit: - PIC24 - dspic - MSP430

Systemy wbudowane. Wprowadzenie. Wprowadzenie. Mikrokontroler 8051 Budowa

Wykład 3. Przegląd mikrokontrolerów 8-bit: STM8

MIKROKONTROLERY I MIKROPROCESORY

Liczniki, rejestry lab. 08 Mikrokontrolery WSTĘP

Technika mikroprocesorowa I Wykład 4

Omówimy przykłady 8-mio bitowego licznika z wyposażenia ADuC812 (CISC 51) oraz mikrokontrolera ATMega128 należącego do rodziny AVR.

Mikroprocesor Operacje wejścia / wyjścia

Przerwania w systemie mikroprocesorowym

XMEGA. Warsztaty CHIP Rok akademicki 2014/2015

Pracownia elektryczno-elektroniczna klasa IV

Programowanie niskopoziomowe

Mikroinformatyka. Wielozadaniowość

Technika mikroprocesorowa I Wykład 2

Architektura systemu komputerowego

Procesory osadzone ETD 7211 W

CPU architektura i rejestry

Wybrane zagadnienia elektroniki współczesnej

System przerwania (SP). Funkcje wejścia / wyjścia (I/O)

Podstawy techniki cyfrowej i mikroprocesorowej II. Urządzenia wejścia-wyjścia

organizacja procesora 8086

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Moduł mikrokontrolera PROTON (v1.1)

Politechnika Warszawska

IEEE Centronics

Układy czasowo-licznikowe w systemach mikroprocesorowych

Akademia Górniczo-Hutnicza w Krakowie Katedra Elektroniki

4 Transmisja szeregowa, obsługa wyświetlacza LCD.

Podstawy techniki mikroprocesorowej. Dr inż. Grzegorz Kosobudzki p.311a A-5. Tel

Szkolenia specjalistyczne

Organizacja typowego mikroprocesora

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

MIKROPROCESORY I MIKROKONTROLERY INSTRUKCJE / KOMENDY / ROZKAZY: PRZEGLĄD I KILKA PRZYKŁADÓW DLA PRZYPOMNIENIA, GŁÓWNE REJESTRY ROBOCZE CPU:

Programowanie Mikrokontrolerów

Start Bity Bit Stop 1 Bit Par Rys. 1

Zaliczenie Termin zaliczenia: Sala IE 415 Termin poprawkowy: > (informacja na stronie:

Ćw. 5. Obsługa portu szeregowego UART w mikrokontrolerach 8051.

1. Tworzenie nowego projektu.

Mikrokontroler ATmega32. System przerwań Porty wejścia-wyjścia Układy czasowo-licznikowe

Technika Mikroprocesorowa Laboratorium 5 Obsługa klawiatury

Systemy wbudowane. Poziomy abstrakcji projektowania systemów HW/SW. Wykład 9: SystemC modelowanie na różnych poziomach abstrakcji

ĆWICZENIE 5. TEMAT: OBSŁUGA PORTU SZEREGOWEGO W PAKIECIE KEILuVISON WYSYŁANIE PORTEM SZEREGOWYM

Lista instrukcji procesora 8051 część 2 Skoki i wywołania podprogramów, operacje na stosie, operacje bitowe

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Mechanizm przerwań i menadżer zdarzeń procesora sygnałowego F/C240

4 Transmisja szeregowa na przykładzie komunikacji dwukierunkowej z komputerem PC, obsługa wyświetlacza LCD.

Podstawy techniki cyfrowej Układy wejścia-wyjścia. mgr inż. Bogdan Pietrzak ZSR CKP Świdwin

LABORATORIUM nr 2. Temat: Obsługa wyświetlacza siedmiosegmentowego LED

Charakterystyka mikrokontrolerów. Przygotowali: Łukasz Glapiński, Mateusz Kocur, Adam Kokot,

1. Wstęp Różnice pomiędzy mikrokontrolerami ST7 a ST7LITE Rdzeń mikrokontrolerów ST7FLITE... 15

petla:... ; etykieta określa adres w pamięci kodu (docelowe miejsce skoku) DJNZ R7, petla

Sygnały DRQ i DACK jednego kanału zostały użyte do połączenia kaskadowego obydwu sterowników.

3. Sygnały zegarowe i ich konfiguracja, mechanizmy bezpieczeństwa... 47

Układy wejścia/wyjścia

UTK ARCHITEKTURA PROCESORÓW 80386/ Budowa procesora Struktura wewnętrzna logiczna procesora 80386

Mikroprocesory i Mikrosterowniki

Wstęp. do języka C na procesor (kompilator RC51)

Mikroprocesory i Mikrosterowniki Liczniki Timer Counter T/C0, T/C1, T/C2

ad a) Konfiguracja licznika T1 Niech nasz program składa się z dwóch fragmentów kodu: inicjacja licznika T1 pętla główna

USB interface in 8-bit microcontrollers PIC18F family manufactured by Microchip.

Architektura systemów komputerowych. dr Artur Bartoszewski

Mikroprocesor Intel 8088 (8086)

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

Mikroprocesory i Mikrosterowniki

Lista rozkazów mikrokontrolera 8051 część pierwsza: instrukcje przesyłania danych, arytmetyczne i logiczne

LCD (Liquid Crystal Display)

Transkrypt:

Documentation Podstawy techniki mikroprocesorowej ETEW6 Andrzej Stępień Katedra Metrologii Elektronicznej i Fotonicznej PICmicro MID-RANGE MCU FAMILY. Microchip Technology, December 997, 3323a.pdf ST7. 8-BIT MCU FAMILY USER GUIDE. STMicroelectronics, July 22. MSP43x3 Family User s Guide. Texas Instruments, SLAU2A, 22. MCS@5 MICROCONTROLLER FAMILY USER S MANUAL. Intel, February 994 C55C 8-Bit CMOS Microcontroller. User s Manual. Infineon, Nov. 2 Steve Furber: ARM System-on-Chip Architecture, 2nd Edition. Addison Wesley, 2, ISBN-: -2-6759-6. źródła zgłaszania przerwań Po co komu Jak powinien reagować procesor: na zjawiska (sygnały) periodyczne lub aperiodyczne, wewnętrzne lub zewnętrzne? przy różnej szybkości pracy procesora i urządzeń zewnętrznych? przy wymaganiu wielozadaniowości (multitasking)? Reakcja procesora Polling versus s Programowa reakcja procesora - wykonywanie stałych pętli testujących, cyklicznych procedur testujących (Polling): znaczne obciążenie procesora, spadek efektywnego wykorzystania czasu pracy procesora brak natychmiastowej reakcji procesora wskutek zdeterminowanej przez kolejności wykonywanych procedur testujących Sprzętowa reakcja procesora - wykorzystanie systemu przerwań : brak obciążenia procesora jeśli brak żądania obsługi ( Request) natychmiastowa reakcja procesora po spełnieniu pewnych warunków, dodatkowych warunków; rozpoczęcie wykonywania procedury obsługi (podobieństwo do wywołania podu) USB Data Transfers (Polling) used for characters or coordinates with human-perceptible echo or feedback response characteristics interrupt transfer type is designed to support those devices that need to send or receive data infrequently but with bounded service periods (periodic) requesting a pipe with an interrupt transfer type provides: guaranteed maximum service period for the pipe (time between transactions the requester, ms = minimum time for Full Speed transmission) retry of transfer attempts at the next period, in the case of occasional delivery failure due to error on the bus

Przerwanie (interrupt) zawieszenie (przerwanie) wykonywanego u, najczęściej po spełnieniu dodatkowych warunków, zapamiętanie wszystkich niezbędnych do kontynuowania zawieszonego u wykonanie podu ( - Service Routine) obsługi zdarzenia (sygnału) żądającego (wymagającego) obsługi kontynuacja zawieszonego u zachowanie stanu procesora żądanie odtworzenie stanu procesora t źródła/identyfikacja przerwań Typy przerwań Hardware Reset w procesorach przerwanie sprzętowe niemaskowalne (NMI Non - Maskable ) rozpoczęcie wykonywania obsługi bez warunków wstępnych (zawsze) sprzętowe zerowanie procesora (Hardware Reset) rozpoczęcie wykonywania procedury bez warunków wstępnych (zawsze), zmiana wartości niektórych rejestrów przerwanie sprzętowe maskowalne (Maskable ) rozpoczęcie wykonywania procedury obsługi zależnie od spełnienia określonych warunków wstępnych; owe blokowanie / odblokowanie obsługi przerwań (Enable / Disable ) przerwanie owe (SWI SoftWare ) owe wywołanie obsługi operacja pułapki (Trap) inicjowana pojawieniem się błędu, np. próba dzielenia przez zero zerowanie / ustawienie licznika rozkazów blokada przerwań zerowanie / ustawienie rejestrów specjalnych mikrokontrolerów wyłączenie trybu użytkownika (przy różnych trybach pracy) C5 Reset - C5, ST7, MSP43, ARM7 RESET_Proc... 3h Ext Int h JMP RESET_Proc ARM7 RESET_Proc h... Exception 4h Undefined Instruction RESET_Proc ST7FLite FFFEh RESET_Proc FFFCh FFFAh FFF8h MSP43 SWI - Trap not used Ext Int...... FFFEh RESET_Proc FFFCh NMI_Proc FFFAh I/O_Proc FFEh......... RESET_Proc RESET_Proc ST7FLite mapping Higher address = higher priority 2

Wybrane SWI w x86 Nr Typ Nr Typ h Dzielenie przez zero 9h Gorący restart systemu h Praca krokowa Ah Obsługa drukarki 2h Przerwanie niemaskowalne Bh CTRL + BREAK 3h Pułapka (Breakpoint) Ch Przerwanie zegarowe użytkownika 4h Nadmiar Dh Tabela trybów wyświetlania 5h Wydruk zawartości ekranu Fh Tablica wzorców znaków 8h Przerwanie zegara 2h Zakończenie u 9h Przerwanie klawiatury 2h Funkcje MS-DOS Eh Przerwanie kontrolera dysków 22h Zakończenie u h Obsługa monitora 23h CTRL + C (CTRL + BREAK) h Konfiguracja komputera 24h Błąd krytyczny urządzenia 2h Rozmiar pamięci 25h Czytanie sektora dyskowego 3h Obsługa dysków 26h Pisanie sektora dyskowego 4h Obsługa złącza szeregowego... 5h Dodatkowe funkcje AT 2Fh Obsługa równoczesnych procesów 6h Obsługa klawiatury 33h Obsługa myszy 7h Obsługa drukarki 4h Tablica parametrów 8h Uruchomienie BASIC-a z ROM 46h dysku twardego / Źródła przerwań w mikrokontrolerach Wewnętrzne: kontrolery DMA, liczniki (Match, Capture, Reload, PWM), RTC (Real Time Clock), kontrolery interfejsów (UART, I 2 C-Bus, SPI, CAN, USB, Ethernet,..) przetworniki (A/C i C/A), BOD (Brown Out Detect), WDT (WatchDog Timer), próba wykonania zabronionej instrukcji lub niewłaściwych argumentów (np. próba dzielenia przez zero, nadmiar,..) Core (Embedded ICE). Zewnętrzne: poziom sygnału zewnętrznego, zbocze sygnału zewnętrznego. maskowalne należy owo odblokować P3.2 INT# P3.2 INT# Standard C5 - kontroler przerwań Timer Overflow Timer Overflow Serial Port IT IT RI TI IE IE TF TF EX EX ET ET ES EA PX 3h PX 3h PT Bh PT Bh 23h PS High Priority Low Priority when EA bit is set to, all interrupts are enabled C5 Mechanism IE Enable Register An interrupt is requested Its relative pending bit is set EA = Core finishes its current instruktion PC are pushed onto the stack EA = (disable interrupt) PC = address of the interrupt vector EA ET2 ES ET EX ET EX General interrupt enable No when EA bit is set (EA=), all interrupts are enabled This interrupt will be serviced when EA = Service Routine ST7 Mechanism An interrupt is requested Its relative pending bit is set I = (CC register) H I N Z C No Core finishes its current instruktion PC, X (not Y), A, CC are pushed onto the stack I = (disable interrupt) PC = address of the interrupt vector ST7 Condition Code (CC) Register General flag Clearing I bit (I=), all interrupts are enabled This interrupt will be serviced when I = Service Routine 3

MSP43 Mechanism Status Register RESERVED V An interrupt is requested Its relative pending bit is set GIE = SCG SCG OSC Off Core finishes its current instruktion PC, SR are pushed onto the stack GIE = (disable interrupt) PC = address of the interrupt vector No CPU Off General interrupt enable GIE N Z C when GIE bit is set (GIE=), all interrupts are enabled This interrupt will be serviced when GIE = Service Routine Identyfikacja urządzenia Adresy procedur obsługi przerwań Programowa / sprzętowa identyfikacja urządzenia / sygnału zgłaszającego przerwanie: badanie obiegiem realizowane owo w procedurach testujących metoda łańcuchowa: urządzenia dołączone do procesora w kolejności ważności (pierwszeństwa) obsługi sygnał potwierdzenia przyjęcia jest bramkowany w urządzeniu zgłaszającym przerwanie, które podaje swój numer identyfikacyjny szyną metoda wektorowa wygenerowanie adresu podu obsługi od urządzenia zgłaszającego przerwanie Adres początkowy procedury obsługi : dostarczany przez urządzenie zewnętrzne, to samo, które wywołało przerwanie; po akceptacji przesyłanie szyną adresu początku obsługi w tablicy wektorów przerwań (C5): w tablicy wyłącznie 2 N bajtów adresów przerwań (6 bitowa szyna adresowa); pozycja adresu zależna od rodzaju stałe adresy ustalone przez producenta procesora, np. co 4 lub co 8 bajtów (3, Bh, 3h itd.) PICmicro MID-RANGE MCU FAMILY When an interrupt is responded to, the Global Enable bit (GIE) bit is cleared to disable any further interrupt, the return address is pushed into the stack and the PC is loaded with 4h. ST7FLite mapping GIE to CPU clear GIE bit addr = 4h Once in the interrupt service routine the source(s) of the interrupt can be determined by polling the interrupt flag bits. Generally the interrupt flag bit(s) must be cleared in software before re-enabling the global interrupt to avoid recursive interrupts. Higher address = higher priority 4

MSP43 Family Dedicated I/O Port Figure 3 4. Priority Scheme MSP433xx Sources, Flags and Vectors Source System Word Priority Flag Address Power-up, ext. reset, watchdog WDTIFG Reset FFFEh 5 (highest) NMI, OSC. Fault NMIIFG/OFIFG NMI FFFCh 4 Dedicated I/O PIFG. Maskable FFFAh 3 Dedicated I/O PIFG. Maskable FFF8h 2 Maskable FFF6h Watchdog Timer WDTIFG Maskable FFF4h Timer_A CCIFG Maskable FFF2h 9 Timer_A TAIFG Maskable FFFh 8 USART receive URXIFG Maskable FFEEh 7 USART transmit UTXIFG Maskable FFECh 6 ADC, Timer/Port ADCIFG Maskable FFEAh 5 Timer/Port Maskable FFE8h 4 Port P2 P2IFG.7 Maskable FFE6h 3 Port P PIFG.7 Maskable FFE4h 2 Basic timer BTIFG Maskable FFE2h Port PIFG.27 Maskable FFEh (lowest) Standard C5 Source and Vectors indywidualne, bezpośrednie adresy wektorów przerwań Standard dla RESET tylko 3 bajty kolejne adresy wektorów przerwań co 8 bajtów Source Vector Request Address Flags External 3H IE Timer Overflow BH TF External 3H IE Timer Overflow BH TF Serial Channel 23H RI / TI Timer 2 Overflow / / Ext. Reload 2BH TF2 / EXF2 A/D Converter 43H IADC External 2 4BH IEX2 External 3 53H IEX3 External 4 5BH IEX4 External 5 63H IEX5 External 6 6BH IEX6 Wake-up from power-down mode 7BH CAN controller 8BH External 7 A3H External 8 ABH SSC interface 93H TC / WCOL P3.2 INT# P3.2 INT# Standard C5 - kontroler przerwań Timer Overflow Timer Overflow Serial Port IT IT RI TI IE IE TF TF EA EX EX ET ET ES PX 3h PX 3h PT Bh PT Bh 23h PS High Priority Low Priority when EA bit is set to, all interrupts are enabled ARM7: FIQ, vectored & nonvectored IRQ [/2] The Vectored Controller (VIC) takes 32 interrupt request inputs and mably assigns them into 3 categories: fast interrupt (FIQ): highest priority the fastest, short interrupt response time vectored (IRQ) interrupt: middle priority only 6 of the 32 requests can be assigned to this category non-vectored (IRQ) interrupt: lowest priority the slowest, long interrupt response time Type Flag(s) Mask VIC Channel WDT Watchdog (WDINT) x Reserved for Software s only x 2 Sources LPC2xx ARM Core Embedded ICE, DbgCommRx 2 x 4 ARM Core Embedded ICE, DbgCommTX 3 x 8 TIMER Match.. 3 (MR,.., MR3), Capture.. 3 (CR,.., CR3) 4 x TIMER Match.. 3 (MR,.., MR3), Capture.. 3 (CR,.., CR3) 5 x 2 UART Rx Line Status (RLS), Transmit Holding Register Empty (THRE) 6 x 4 Rx Data Available (RDA), Character Time-out Indicator (CTI) UART Rx Line Status (RLS), Transmit Holding Register Empty (THRE) 7 x 8 Rx Data Available (RDA), Character Time-out Indicator (CTI) Modem Status (MSI)[*] PWM Match.. 6 (MR, MR,.., MR6) 8 x I 2 C SI (state change) 9 x 2 SPI SPI Flag (SPIF)/Mode Fault (MODF) x 4 SPI (SSP) TX FIFO at least half empty (TXRIS), Rx FIFO at least half full x 8 (RXRIS) Receive Timeout condition (RTRIS), Receive overrun (RORRIS) RTC Counter Increment (RTCCIF)/Alarm (RTCALF) 3 x 2 EINT System Control External 4 x 4 EINT External 5 x 8 EINT2 System Control External 2 6 x EINT3 System Control External 3 7 x2 ADC A/D Converter end of conversion 8 x4 I 2 C SI (state change) 9 x8 BOD Brown Out detect 2 x ADC A/D Converter end of conversion 2 x2 5

Jednopoziomowa obsługa przerwań blokowanie przyjęcia następnego w przypadku, gdy nie jest zakończona obsługa poprzedniego wykonanie jednej instrukcji z u głównego przed rozpoczęciem obsługi zgłoszonego (czekającego w kolejce) priorytet żądanie A żądanie A żądanie B żądanie C Wielopoziomowa obsługa przerwań przyporządkowanie różnych poziomów priorytetów procedurom obsługi przerwań, co umożliwia przerwanie bieżącej procedury przez inną procedurę o wyższym priorytecie: priorytety owe są ustalane przez istę, zwykle od 2 do 6 poziomów priorytetów priorytety sprzętowe są ustalane przez producenta procesora priorytet żądanie A żądanie A żądanie B zagnieżdżone (Nesting of s ) żądanie C Standard C5 - rejestry kontrolera przerwań IE Enable Register addr = A8h, RW = h IP Priority Register addr = B8h, RW = h EA ET2 ES ET EX ET EX TCON Timer/Counter Control Register TF TR TF TR IE IT IE IT addr = 88h, RW = h SCON Serial Port Control Register addr = 98h, RW = h SM SM SM2 REN TB8 RB8 TI RI PT2 PS PT PX PT PX w C57 High External IE Timer TF External IE Timer TF Serial Channel RI + TI Timer 2 TF2 + EXF2 IP Bit IP. / IP. IP. / IP. IP.2 / IP.2 IP.3 / IP.3 IP.4 / IP.4 IP.5 / IP.5 Serial Channel RI + TI Compare Timer CTF Irq Flag IE RI + TI IADC TF IEX2 IE IEX3 TF CTF IEX5 RI + TI IEX6 TF2 + EXF2 IEX6 Low / High A/D Converter IADC External 2 IEX2 External 3 IEX3 External 4 IEX4 External 5 IEX5 External 6 IEX6 Low Standard C5 - priorytety przerwań Priorytety sprzętowe: IE najwyższy adres procedury obsługi = 3h TF Bh IE 3h TF Bh RI + TI najniższy 23h Priorytety owe, zmieniane przez użytkownika IP Priority Register addr = B8h, RW = h PT 2 PS PT PX PT PX 6

ARM7 When an exception occurs, the ARM: Copies CPSR into SPSR_<mode> Sets appropriate CPSR bits Change to ARM state Change to exception mode Disable interrupts (if appropriate) Stores the return address in LR_<mode> Sets PC to vector address x C x 8 x 4 x x C x 8 x 4 x FIQ IRQ (Reserved) Data Abort Prefetch Abort Software Undefined Instruction Reset 3 24 23 22 2 2 9 8 7 6 5 4 3 2 9 8 ARM7:.. FIQ, vectored & nonvectored IRQ [2/2] AD (Enable) VICIntEnable VICIntEnClear (Disable) BOD I2C Adx, BOD I2Cx, SPx EINTx RTC, PLL TIMERx, PWMx UARTx, WDT AD EINT3 EINT2 EINT VICFIQStatus VICIRQStatus EINT RTC PLL SP / SSP SPI I2C PWM 7 6 5 4 3 2 (FIQ) priority & address VICDefVectAddr VICIntSelect VICVectCntl5 VICVectAddr5...... (IRQ) VICVectCntl VICVectAddr VICVectCntl VICVectAddr highest VICRawIntr UART UART Timer Timer ARMCore VICVectAddr ARMCore WDT FIQ status address I priority R status Q status Czas reakcji Czas reakcji (Response Time) - czas liczony od momentu przyjęcia zgłoszenia do zakończenia ostatniej wykonywanej instrukcji w przerywanym ie; czas zależny od: sposobu testowania kolejności zgłoszonych przerwań liczby cykli maszynowych potrzebnych do zakończenia bieżącej, wykonywanej instrukcji typu wykonywanych instrukcji, np. owania kontrolera priorytetów przerwań żądanie ( Request) reakcja na przerwanie (Response Time) rozpoczęcie wykonywania Czas opóźnienia Czas opóźnienia i reakcji Czas opóźnienia (Latency Time) - czas liczony od momentu zgłoszenia do momentu rozpoczęcia wykonywania podu obsługi (); czas zależny dodatkowo od: sposobu wywołania podu obsługi, szybkości przesłania na stos licznika rozkazów PC liczby bajtów innych rejestrów przesyłanych na stos przed rozpoczęciem podu obsługi reakcja na żądanie obsługi żądanie ( Request) PUSH PC przygotowania... CALL opóźnienie (Latency Time) rozpoczęcie wykonywania PICmicro MID-RANGE MCU FAMILY. przygotowanie Microchip do Technology, December 997, 3323a.pdf, 8.3 rozpoczęcia Latency (p.32): reakcja procesora na żądanie procedury PUSH PC... CALL latency is defined as the time from the interrupt event obsługi (the interrupt flag bit gets set) to the time that the instruction at address 4h starts execution (when that interrupt is enabled). 8-bit Microcontrollers. reakcja Databook na przerwanie - 997. Temic Semiconductors, 997 (Response Time) żądanie Response time... ifopóźnienie a request is (Latency active and Time) conditions rozpoczęcie are right for ( it to berequest) acknowledged, a hardware subroutine call to the wykonywania requested service routine will be the next instruction to be executed (polling cycle + long CALL to interrupt vector address). 7

Standard C5 - (/2) Standard C5 - (2/2) S5P2 testowanie warunków (polling) obsługa () S5P2 testowanie warunków (polling) obsługa () C C2 C3 C4 C5 próbkowanie przerwań zawsze w fazie S5P2 (sampling) Skok do adresu wektora (LCALL to vector address) Blokada skoku jeśli: jest wykonywana obsługa o równym / wyższym priorytecie testowanie jest wykonywane w cyklu, który nie jest ostatnim cyklem maszynowym instrukcji jest wykonywana instrukcja modyfikująca kontroler przerwań (RETI, modyfikacja: IE, IP,...) jeśli podane warunki są spełnione to wykonywana jest dodatkowo jedna (neutralna) instrukcja C C2 C3 C4 C5 próbkowanie przerwań zawsze w fazie S5P2 (sampling) opóźnienie Skok do adresu wektora (LCALL to vector address) Czas opóźnienia - czas liczony od momentu zgłoszenia do momentu rozpoczęcia wykonywania podu obsługi (): minimum 3 pełne cykle maszynowe Czas trwania zewnętrznego sygnału przerywającego nie krótszy niż cykl maszynowy ARM7: FIQ, vectored & nonvectored IRQ - NXP FIQ interrupt: highest priority the fastest, short interrupt response time entry to first Instruction, Latency = 2 cycles = 2 ns @ 6MHz vectored IRQ interrupt: middle priority entry to first instruction + Nesting, Latency = 25 cycles = 46ns @ 6MHz non-vectored IRQ interrupt: lowest priority the slowest, long interrupt response time Obsługa przerwań Ochrona, przechowywanie stanu rejestrów procesora po przyjęciu i rozpoczęciu realizacji procedury obsługi : przełączanie (data swapping) przechowywanie na stosie zawartości rejestrów wykorzystywanych w obsłudze sprzętowe bez konieczności wprowadzania dodatkowych instrukcji na początku i końcu u obsługi, np. MSP43, ARM owe dodatkowe instrukcje na początku (PUSH) i końcu (POP) u obsługi, np. x86 przełączanie kontekstowe (context switching) wykorzystanie dodatkowych zestawów, banków rejestrów, np. C5 Przełączanie C5 owe: CPU kończy wykonywanie bieżącej instrukcji PC przesłane na stos EA (EAL) =, blokada wszystkich przerwań PC = adres procedury obsługi z tablicy wektorów przerwań MSP43 sprzętowo/owe: CPU kończy wykonywanie bieżącej instrukcji PC, SR przesłane na stos GIE =, blokada wszystkich przerwań PC = adres procedury obsługi z tablicy wektorów przerwań ST7 sprzętowe: CPU kończy wykonywanie bieżącej instrukcji PC, X (nie Y), A, CC przesłane na stos I =, blokada wszystkich przerwań PC = adres procedury obsługi z tablicy wektorów przerwań???!!! 8

C5 owe przełączanie [/2] zewnętrzna pamięć kodu u CODE wewnętrzna pamięć kodu u DATA SFR IDATA DATA RAM IDATA RAM 7Fh rejestry XDATA FFh 8h zewnętrzna pamięć wewnętrzna pamięć C5 owe przełączanie [2/2] tylko w odniesieniu do: standardowo: A, PSW i DPTR (jeśli występuje tylko jeden) nietypowo: IE, IP itp. IrqInit: PUSH ACC ; ochrona akumulatora PUSH PSW ; ochrona rejestru PSW ANL PSW, # b ORL PSW, # b ; bank RB PUSH DPL ; ochrona DPTR PUSH DPH... ; zasadnicza część POP DPH ; odtworzenie DPTR POP DPL POP PSW ; odtworzenie PSW POP ACC ; odtworzenie akumulatora RETI void TimerT(void) interrupt using { 2h R7 R6... RB3 R 8h R R7 R6... RB2 R h R R7 R6... RB R 8h R R7 R6... RB R h R ARM7 context switching When an exception occurs, the ARM: Copies CPSR into SPSR_<mode> Sets appropriate CPSR bits Change to ARM state Change to exception mode Disable interrupts (if appropriate) Stores the return address in LR_<mode> Sets PC to vector address x C x 8 x 4 x x C x 8 x 4 x FIQ IRQ (Reserved) Data Abort Prefetch Abort Software Undefined Instruction Reset ARM7 Register Set & Modes Privileged Modes Exception Modes User System Supervisor Abort Undefined Saved Program Status Register R3 (Stack Pointer) R4 (Link Register) Current Program Status Register CPSR CPSR R R R2 R3 R4 R5 R6 R7 R8 R9 R R R2 R3_svc R3_abt R3_und R4_svc R4_abt R4_und PC (Program Counter) CPSR_svc SPSR_svc CPSR_abt SPSR_abt CPSR_und SPSR_und R3_irq R4_irq CPSR_irq SPSR_irq Fast R8_fiq R9_fiq R_fiq R_fiq R2_fiq R3_fiq R4_fiq CPSR_fiq SPSR _fiq ARM7 Normal & Fast Standard C5 - znaczniki przerwań after executing each instruction, the CPU checks to see whether the interrupt pins are LOW or internal request is generated: R4_mod address of the next instruction to be executed + 4 SPSR_mod CPSR CPSR[4:] = M4..M b or b enter IRQ or FIQ mode CPSR[5] = T execute in ARM state CPSR[6] = F (for FIQ) or F is unchanged (for IRQ) CPSR[7] = I disable normal interrupts Register switching (R8.. R2) only for FIQ PC = R5 x 8 or x C the address to continue from is one word (or four bytes) less than that in LR_<mode>, so the return instruction is: SUBS R5, R4, #4 ; R4 = Return address Przyjęcie, rozpoczęcie procedury obsługi : kasuje automatycznie znacznik jeśli: IE / IE - zewnętrzne INT# lub INT# reagują na zbocze opadające TF / TF - przepełnienie od licznika T lub T nie kasuje automatycznie znacznika jeśli: zewnętrzne INT# lub INT# reagują na poziom niski wystąpiło przerwanie z wielu źródeł, np. od nadajnika TI lub odbiornika RI portu szeregowego itp. wyjątki w regule: owe kasowanie znacznika od przetwornika A/C w C55C 9

Koniec procedury obsługi Każdy pod obsługi musi kończyć się właściwą instrukcją, np.: MCS 5, MSP43: RETI PIC7Cxx: 68HC7xx : ST7: ARM7: RETFIE RTI IRET write to VICVectAddr SUBS R5, R4, #4 aby odtworzyć stan rejestrów kontrolera priorytetów przerwań Standard C5 - sprzętowa praca krokowa P3.2 INT# K P3.2/INT# reaguje na poziom niski, LOW w trakcie obsługi, kolejnego jest możliwe po wykonaniu instrukcji RETI i jednej instrukcji z u głównego CSEG AT PoczProg: JMP ProgDalej ORG 3 IrqINT: JNB P3.2, $ ; oczekiwanie na P3.2/INT# = High JB P3.2, $ ; oczekiwanie na P3.2/INT# = Low RETI ProgDalej: CLR IT ; INT# reaguje na poziom niski SETB EX ; odblokowanie INT# SETB EA ; odblokowanie wszystkich przerwań PracaKrokowa: MOV P, #FEh ; instrukcje wykonywane krokowa MOV P, #FDh MOV P, #FBh... ; cd. u użytkownika - wspomaganie sprzętowe (/3) A/C A/C () wynik u koniec u początek u dane Px.y A/C (2) port wejściowy kontroler przerwań strukturalne opóźnienia licznik MCU - wspomaganie sprzętowe (2/3) - wspomaganie sprzętowe (3/3) A/C () A/C () y strukturalne opóźnienia A/C (2) strukturalne opóźnienia A/C (2) 2 6 5 4 3 2 3 4 przetwornik A/C wyniki ów w buforze FIFO wskaźnik u 2 5 wskaźnik 6 zapisu 9 8 7 np. THS26 (TI) koniec u początek u strukturalne opóźnienia dane Px.y 2 A/C () A/C (2) y MCU port wejściowy kontroler przerwań licznik