MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY Systém přerušení České vysoké učení technické Fakulta elektrotechnická A1B14MIS Mikroprocesory pro výkonové systémy 6 Ver.1.2 J. Zděnek, 213 1
pic18f Family Interrupt System (Priority Mode) High Priority Enable GIEH HIGH PRIORITY Priority Encoder INTRQ LOW PRIORITY xip yip GIEL IPEN xie yie Priority System On xif yif Low Priority Enable INPUT Event Detector........ Clk Timer Interrupt Priority INTERRUPT RESOURCES Interrupt Enable Interrupt Flag (Request) A1B14MIS Mikroprocesory pro výkonové systémy 6 2
pic18f Family Interrupt System (Non Priority Mode) Input Interrupt Enable NON PRIORITY MODE IPEN = All Interrupt Enable INTRQ PEIE GIE IPEN = xie yie Non Priority Mode xif yif INPUT Event Detector........ Clk Timer Interrupt Enable INTERRUPT RESOURCES Interrupt Flag (Request) A1B14MIS Mikroprocesory pro výkonové systémy 6 3
Nastavení systému přerušení - RCON A1B14MIS Mikroprocesory pro výkonové systémy 6 4
Nastavení systému přerušení - RCON A1B14MIS Mikroprocesory pro výkonové systémy 6 5
Nastavení systému přerušení - INTCON A1B14MIS Mikroprocesory pro výkonové systémy 6 6
Nastavení systému přerušení - INTCON A1B14MIS Mikroprocesory pro výkonové systémy 6 7
Nastavení systému přerušení INTCON2 A1B14MIS Mikroprocesory pro výkonové systémy 6 8
Nastavení systému přerušení INTCON2 A1B14MIS Mikroprocesory pro výkonové systémy 6 9
pic18f Family Program Memory PROGRAM COUNTER PROGRAM MEMORY SP STACK POINTER Top of Stack -TOS 5 PC STACK 1 31 18AF4h 21 21 h 8h 18h RESET HIGH PRIORITY LOW PRIORITY RESET VECTOR HIGH PRIORITY INTERRUPT VECTOR LOW PRIORITY INTERRUPT VECTOR INTERRUPT VECTOR TABLE TOS REGISTERS TOSU 1h 8 TOSH 8Ah 8 TOSL F4h 8 TABLE READ IMPLEMENTED MEMORY (FLASH) 1FFF8h 1FFFFh CONFIG. WORDs PROGRAM MEMORY ADDRESS SPACE Read as 1FFFFFh 16 A1B14MIS Mikroprocesory pro výkonové systémy 6 1
pic18f Family Interrupt System (Non Priority Mode) Input Interrupt Enable NON PRIORITY MODE IPEN = All Interrupt Enable INTRQ PEIE GIE IPEN = xie yie Non Priority Mode xif yif INPUT Event Detector........ Clk Timer Interrupt Enable INTERRUPT RESOURCES Interrupt Flag (Request) A1B14MIS Mikroprocesory pro výkonové systémy 6 11
Časovač Timer konfigurace 16bitů TIMER Overflow Interrupt Flag TMRIF A1B14MIS Mikroprocesory pro výkonové systémy 6 12
Nastavení časovače Timer, 16bitů A1B14MIS Mikroprocesory pro výkonové systémy 6 13
Nastavení časovače Timer, 16bitů A1B14MIS Mikroprocesory pro výkonové systémy 6 14
Programovatelné vstupní nebo výstupní porty LAT nebo PORT Výstupní registr TRIS Nastavení směru -> Output 1 -> Input PORT Vstupní registr A1B14MIS Mikroprocesory pro výkonové systémy 6 15
Nastavení vstupních a výstupních portů A1B14MIS Mikroprocesory pro výkonové systémy 6 16
Zapojení portu D a B (LED diody a tlačítka S1, S2) PORTD S1 PORTB bit RB A1B14MIS Mikroprocesory pro výkonové systémy 6 17
Programovatelné vstupní nebo výstupní porty LAT nebo PORT Výstupní registr TRIS Nastavení směru -> Output 1 -> Input PORT Vstupní registr A1B14MIS Mikroprocesory pro výkonové systémy 6 18
Souhrn programování SFR pro tento program A1B14MIS Mikroprocesory pro výkonové systémy 6 19
Příklad (Tlačítko, LED, přerušení, časovač) Souhrn informací k řešení příkladu Zadání: V asembleru mikropočítače pic18f87j11 napište program, který testuje zda bylo zmáčknuto tlačítko S1. Při každém zmáčknutí se rozsvítí vždy jedna další LED dioda počínaje diodou připojenou na nejnižší bit portu. Po osmi zmáčknutí S1 bude svítit všech 8 LED diod a při dalším mačkání tlačítka zůstávají všechny diody rozsvícené. Tlačítko je připojena na bit RB portu B. V klidové poloze (nezmáčknuto) je stav tlačítka snímán jako logická '1', po zmáčknutí se snímá logická ''. Osm světelných diod je připojeno na port D. Pokud se na příslušný bit portu D vysílá logická '', dioda nesvítí. Logická '1' vyslaná na bit portu D diodu rozsvítí. Pro řešení použijte vzorkování stavu tlačítka s periodou přibližně 2ms. Vzorkování tlačítka zorganizujte s využitím jednohladinového systému přerušení a časovače TIMER. Časovač naprogramujte do 16bitového módu, s hodinami odvozenými od hodin procesoru. Použijte vhodnou hodnotu předděličky u časovače TIMER. Činnost programu dle zadání zapište do ISR (Interrupt Service Routine), která budu volaná vždy po žádosti o přerušení od časovače TIMER (žádost se vyvolá po přetečení časovače z maximální hodnoty (samé '1') do nuly. Na pozadí programu (background) bude pouze prázdná nekonečná smyčka. A1B14MIS Mikroprocesory pro výkonové systémy 6 2
Sdílené prostředky (sdílí je procedury) Souhrn informací k řešení příkladu A1B14MIS Mikroprocesory pro výkonové systémy 6 21
Dynamické přemapování a přímá adresa REMAPPING & SHORT DIRECT ADDRESS h DATA MEMORY h Souhrn informací k řešení příkladu BANK 5Fh 6h 5Fh 6h FFh 1h FFh h GPR ACCESS BANK h DISABLED (HIDDEN) BANK 1 BANK 14 EFFh Fh FFh h SFR WREG STATUS 8 5Fh 6h FFh BANK 15 F5Fh F6h WREG STATUS 5Fh 6h SPECIAL FUNCTION REGISTERS MEMORY MAPPED INPUT/OUTPUT SPACE FFFh 8 FFh REMAPPING A1B14MIS Mikroprocesory pro výkonové systémy 6 22
pic18f Family Program Memory SP STACK POINTER Top of Stack -TOS TOS REGISTERS 5 PC TOSU 1h PROGRAM COUNTER STACK 1 31 8 18AF4h TOSH 8Ah IMPLEMENTED MEMORY (FLASH) 8 TOSL F4h 21 21 8 h 8h 18h 1FFF8h 1FFFFh PROGRAM MEMORY RESET HIGH PRIORITY LOW PRIORITY CONFIG. WORDs Souhrn informací k řešení příkladu RESET VECTOR HIGH PRIORITY INTERRUPT VECTOR LOW PRIORITY INTERRUPT VECTOR INTERRUPT VECTOR TABLE TABLE READ PROGRAM MEMORY ADDRESS SPACE Read as 1FFFFFh 16 A1B14MIS Mikroprocesory pro výkonové systémy 6 23
pic18f Family Interrupt System (Non Priority Mode) Souhrn informací k řešení příkladu Input Interrupt Enable NON PRIORITY MODE IPEN = All Interrupt Enable INTRQ PEIE GIE IPEN = xie yie Non Priority Mode xif yif INPUT Event Detector........ Clk Timer Interrupt Enable INTERRUPT RESOURCES Interrupt Flag (Request) A1B14MIS Mikroprocesory pro výkonové systémy 6 24
Časovač Timer konfigurace 16bitů Souhrn informací k řešení příkladu TIMER Overflow Interrupt Flag TMRIF A1B14MIS Mikroprocesory pro výkonové systémy 6 25
Zapojení portu D a B (LED diody a tlačítka S1, S2) Souhrn informací k řešení příkladu PORTD S1 PORTB bit RB A1B14MIS Mikroprocesory pro výkonové systémy 6 26
Programovatelné vstupní nebo výstupní porty Souhrn informací k řešení příkladu LAT nebo PORT Výstupní registr TRIS Nastavení směru -> Output 1 -> Input PORT Vstupní registr A1B14MIS Mikroprocesory pro výkonové systémy 6 27
Detektor posloupnosti bitů 11 (FSA typu Moore) Příklad návrhu Navrhněte synchronní konečný automat (FSA Finite State Automaton), který v proudu vstupních bitů detekuje posloupnost 11. Detekci každé takové posloupnosti automat indikuje na výstupu blikáním LED diody. V ostatních stavech automatu LED dioda svítí nepřerušovaně. Náběžná hrana x 1 indikuje na vstupu 1, náběžná hrana x pak. Automat realizujte programovými prostředky a využitím hardwareové podpory. Použijte jednohladinový systém přerušení a časovač. Vstupy x 1 a x se zadávají tlačítky s mechanickým kontaktem a odskoky při změně hodnoty. Program automatu musí odskoky filtrovat, sestavte a použijte filtrační algoritmus ( debounce circuit ). I (Inputs) x 1 x clk FSA S i y O (Outputs) (Moore) A1B14MIS Mikroprocesory pro výkonové systémy 6 28
Detektor posloupnosti bitů 11 (FSA typu Moore) Příklad návrhu I (Inputs) x 1 x FSA S i y O (Outputs) clk (Moore) clk x 1 x 1 1 1 1 y LED svítí bliká A1B14MIS Mikroprocesory pro výkonové systémy 6 29
Detektor posloupnosti bitů 11 (FSA typu Moore) Co máme navrhnout? Příklad návrhu Budicí funkce Stavový registr Logika výstupů D Q LKO1 LKO2 I C clk A1B14MIS Mikroprocesory pro výkonové systémy 6 3
Detektor posloupnosti bitů 11 (FSA typu Moore) Stavový diagram I Vstupy (Inputs) O Výstupy (Outputs) S i i-tý stav I I S I 1 Příklad návrhu 1 S 3 I S 1 Tabulka přechodů I 1 Tabulka výstupů S i I I 1 S i O i S S S 1 S 1 S S 2 I S 2 I 1 S O S 1 O S 2 S 3 S 2 S 2 O S 3 S S 1 I 1 S 3 O 1 A1B14MIS Mikroprocesory pro výkonové systémy 6 31
Dekompozice problému - 1 Příklad návrhu START ISR INITIALIZATION X1, X2 INPUT DEBOUNCE FSA STATE LOGIC BACKGROUND DO NOTHING FSA OUTPUT LOGIC RET 6ms TIME IF TCLK TIMER A1B14MIS Mikroprocesory pro výkonové systémy 6 32
Dekompozice problému - 2 DEBOUNCE ALGORITHM PRINCIPLE Příklad návrhu SHIFT LEFT BOUNCE IN 1 x x x x x 1 1 RAW INPUT AND AND SAMPLE MASK 1 1 1 1 1 1 XOR XOR 1 s MASK 1 1 1 s MASK? =? = CLEAR 1 CLEAR? (i.e. LAST VALUE WAS ) YES, INPUT IS 1 YES, INPUT IS A1B14MIS Mikroprocesory pro výkonové systémy 6 33
Dekompozice problému - 3 Příklad návrhu FSA STATE LOGIC I SWITCH S I I 1 STATE STATE 1 STATE 2 STATE 3 1 S 3 I S 1 I 1 RET I S 2 I 1 I 1 A1B14MIS Mikroprocesory pro výkonové systémy 6 34
Dekompozice problému - 4 Příklad návrhu FSA OUTPUT LOGIC SW TIMER - + T LED - +? 11 LED ON LED TOGGLE (3ms) RET A1B14MIS Mikroprocesory pro výkonové systémy 6 35
MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY Systém přerušení KONEC České vysoké učení technické Fakulta elektrotechnická A1B14MIS Mikroprocesory pro výkonové systémy 6 36