Input Output digitale 888 LATCH + BD ADDR IO RDSW* CS* TRANS + CS* IO RDSW* 888 LATCH + + BD D Q LED ADDR CS* DATA VALID IO CS* TRANS IO WRLED* WRLED* Q Input Output digitale 888 LATCH + A Y 8 A 4 Y 6 A 6 Y 4 A4 8 Y4 A Y 9 A Y 7 A 5 Y 5 A4 7 Y4 G G 9 74XX44 BD BD BD BD BD4 BD5 BD6 BD7 TRANS + CS* IO RDSW* LED 888 LATCH + + BD BD BD BD BD4 BD5 D Q D 4 Q 5 D 7 Q 6 D 8 Q 9 D4 Q4 D5 4 Q5 5 D6 7 Q6 6 D7 8 Q7 9 OE* CLK 74XX74 BD6 BD7 CS* TRANS IO WRLED*
Esempio di progetto ADDRESS:5 75 L:5 L:9 D D Q Q 74XX7 A6:9 A6:9 888 IOM* 74XX7 D7 LE OE* Q7 LA:9 PAL CSEPROM* DAT:7 CSEPROM* 656 MEM CSRAM* CSSW* CSLED* BIOM* D D D7 LE OE* Q Q Q7 A8:5 A8:5 AD:7 AD:7 D D Q Q 74XX7 :7 ADDRESS:4 DAT:7 L:4 MEM MEM CSRAM* D7 LE OE* Q7 ALE A A A8 B 74XX45 B B8 74XX44 A A Y Y LED D Q 74XX74 A4 Y4 OE* OE* MEM MEM OE* DIR DT/R* DEN* IO/M* IO IO D D7 OE* Q Q7 Porta di input MONDO ESTERNO SISTEMA A up S BUFFER DISPOSITIVO DI I/O SYSTEM BUS
Gestione a Polling MONDO ESTERNO Status SISTEMA A up IO IO BUFFER L S/D* DISP I/O S SYSTEM BUS Gestione ad interruzione Programma principale Subroutine di interruzione
Gestione ad interruzione up DISP I/O INTR ATTENTION S DATA BUS Interrupt Controller up IREQ DISP I/O INTR INTA * INTR CONTROLLER IREQ DISP I/O IREQN DISP I/O N DATA BUS 4
Gestione DMA MONDO ESTERNO MEM up DISP I/O DATA BUS DMA Controller ADDRESS BUS MEM up HOLD HOLDA DMA CONTR ATT DISP I/O MEM IO DATA BUS 5
Generico dispositivo di IO BD BD DAT DATA Interfaccia verso il up BD7 CS* IO IO DATA7 Interfaccia verso il mondo esterno L LA A ATT ATT Disp I/O - Collegamento al up up A8:5 A8:5 PAL AD:7 AD:7 LATCH L:5 DISP I/O BIOM CS* ALE LE OE* 74XX45 L LA A A B A B A8 Ḃ8 DIR OE* DAT:7 DT/R* DEN* IO IO/M* IO 6
Disp I/O - Registri interni DISP I/O PAL LA:5 CS* REG REG REG L LA A REG Disp I/O - Registri interni REG OUT INTERF SIST REG IN INTERF REMOTO OE* 7
Disp I/O - Registri interni REG OUT INTERF REG IN INTERF SIST REMOTO OE* COMMAND REG STATUS REG OE* Disp I/O - Decodifica sequenziale DISP I/O RES CONT X SEL SEL DEC REG REG REG D:7 8
Disp I/O - Decodifica indiretta DISP I/O D:7 D6:7 DEC REG REG REG D:5 Contatori Conteggio di eventi SENSORE CONT Misura di intervalli di tempo SEGNALE OSC EN CONT Generazione di segnali periodici f CONT Q Q f/ f/4 Q f/8 Q f/6 9
854 BD BD BD7 CS54* IO IO L LA D D D7 A CLK GATE OUT CLK GATE OUT CLK GATE OUT 854 - Programmazione A WRITE READ IND BASE + BASE DI CONTEGGIO CONT STATO O VALORE CONT IND BASE + BASE DI CONTEGGIO CONT STATO O VALORE CONT IND BASE + BASE DI CONTEGGIO CONT STATO O VALORE CONT IND BASE + CONTROL WORD
854 - Control word 7 6 5 4 Cont Cont Cont RdBack Modo Modo Modo Modo Modo 4 Modo 5 Counter Latch Rd/Wr LSB Rd/Wr MSB Rd/Wr LSB & MSB Binario/decimale 854 - Modo Clock WR CW LSB= OUT N GATE
854 - Modo Clock WR CW LSB= OUT GATE 854 - Modo WR CW LSB= OUT N GATE
854 - Modo Clock WR CW OUT LSB=4 4 4 4 GATE 854 - Modo 4 Clock CW LSB= OUT FF GATE
854 - Modo 5 Clock CW LSB= GATE 854 - Lettura 7 6 5 4 COUNTER LATCH COMMAND SC SC X X X X Contatore selezionato READ BACK COMMAND 7 6 5 4 CT CT CT Latch COUNT Latch STATUS Contatori selezionati STATUS WORD 7 6 5 4 RW RW M M M BCD Stato del Pin OUT Rilettura della parola di controllo Flag di Null Count 4
EIA RS T MODEM MODEM T DTE DCE CARATTERISTICHE FONDAMENTALI: FREQUENZA DI TRASMISSIONE FORMATO DEI DATI PROTOCOLLI DI TRASMISSIONE STANDARD ELETTRICO STANDARD MECCANICO EIA RS - Frequenze di trasmissione Tbit BAUD RATE = /Tbit BAUD RATE = N DI BIT PER SECONDO 6 4 48 96 9 84 5
EIA RS - Formato dei dati Start Data Parity Stop bit bit bit bit Tbit/ Start bit Data bit Parity bit 5,6,7,8 puo' esistere o no parita' pari o dispari Stop bit, /, EIA RS - Protocollo di trasmissione TX RX DTR DTE DSR DCE RTS CTS DCD GND 6
EIA RS - Standard elettrico V 5V V LIVELLO LOGICO ALTO 5V V -5V LIVELLO -V LOGICO BASSO -5V EIA RS - Standard meccanico GND 4 5 6 7 8 9 4 5 6 7 8 9 4 5 TX RX RTS CTS DSR GND DCD DTR 7
8 85 BD BD D D DTE TX RX RTS* D7 BD7 IO IO CS5* CTS* DTR* DSR* C/D* RESET L BRDRES (IR) (PCLK) CLK TXC RXC TXRDY TXE RXRDY (IR) 85 - Schema interno RXRDY BUFFER SR RX TXRDY BUFFER TX SR TXE
85 - Programmazione RESET (HW O SW) WRITE C/D*= IND BASE + MODE INSTRUCTION C/D* WRITE READ IND BASE + DATA DATA IND BASE + COMMAND INSTRUCTION STATUS WORD 85 - Mode Instruction S S EP PEN L L B B BAUD RATE FACTOR SYNC MODE (X) (6X) (64X) CHARACTER LENGTH 5 BITS 6 7 BITS BITS PARITY ENABLE =ENABLE =DISABLE 8 BITS EVEN PARITY GEN/CHECK =EVEN =ODD NUMBER OF STOP BITS INV BITS / BITS BITS 9
85 - Command Instruction EH IR RTS ER SBRK RXE DTR TXEN TRANSMIT ENABLE =ENABLE =DISABLE DATA TERMINAL RDY = DTR out = RECEIVE ENABLE =ENABLE =DISABLE SEND BREAK CHAR =TX LOW =NORMAL OP ERROR RESET = RESET ERR FLAGS PE,OE FE REQUEST TO SEND = RTS out = INTERNAL RESET =85 to Mode Instr ENTER HUNT MODE 85 - Status word DSR SYND BRKD FE OE PE TXEM RXRDY TXRDY TXRDY STATUS DEF = PINS PARITY ERROR OVERRUN ERROR FRAMING ERROR DSR =
888 - Gestione delle interruzioni Interrupt Vector Table 7h 6h 5h 4h h h h h CS (HI BYTE) CS (LO BYTE) IP (HI BYTE) IP (LO BYTE) CS (HI BYTE) CS (LO BYTE) IP (HI BYTE) IP (LO BYTE) INTR INTR 888 - Gestione delle interruzioni Richiesta di Interruzione Riconoscimento dell'interruzione al termine dell'istruzione corrente Moltiplicazione per 4 del byte di interruzione (INTERRUPT TYPE VECTOR) (viene usato come puntatore a CS:IP della subroutine di risposta) Salvataggio nello stack dei valori correnti di CS, IP, FLAG Reset IF (la RRI non viene interrotta da altri INTR a meno che al suo interno non ci sia un'istruzione che riabilita IF) Caricamento dalla tabella delle interruzioni dei nuovi valori CS e IP Esecuzione della RRI Al termine della RRI: IRET (rientro dall'interruzione) ripristino dei vecchi valori di CS, IP e FLAG L'esecuzione del programma riprende dall'istruzione successiva all'ultima eseguita prima dell'interruzione
888 - Ciclo di Interrupt Acknowledge ALE LOCK* INTA* AD-AD7 INT TYPE 859 BD BD BD7 CS5* IO IO L D D D7 IR IR IR IR IR4 IR5 IR6 IR7 INTR INTA * INTA * CAS CAS CAS SP*/EN*
859 -Schema interno INTA* INT D-D7 Data Buffer Logica di controllo Logica RD/WR I S R P R I O R I R R CAS CAS CAS logica cascata IMR SP/EN* IR-IR7 IRR: Interrupt Request Register ISR: In Service Register IMR: Interrupt Mask Register 859 - Sequenza di Intr ) Si attivano uno o piu' ingressi IR (i corrispondenti bit nel registro IRR vengono posti a ) ) L'859 valuta le richieste e invia un segnale di INTR alla CPU ) La CPU riconosce l'intr e invia un primo impulso INTA* in corrispondenza del quale viene portato a il bit del registro ISR relativo alla richiesta di interruzione di priorità più alta e portato a il corrispondente bit del registro IRR 4) La CPU invia un secondo impulso INTA* durante il quale l'859 rilascia sul data bus il codice di interruzione (INTERRUPT TYPE VECTOR) 5) Al termine viene portato a il bit nel registro ISR CODICE DI INTERRUZIONE D7 D6 D5 D4 D D D D T7 T6 T5 T4 T IR T7 T6 T5 T4 T IR T7 T6 T5 T4 T IR T7 T6 T5 T4 T IR
859 - Disposizione in cascata up INTR INTA * D:7 859 MASTER INT INTA * IR IR IR IR IR4 IR5 IR6 IR7 CAS CAS CAS TXRDY RXRDY D:7 859 SLAVE INTA * D:7 859 SLAVE INTA * IR IR IR IR IR4 IR5 IR6 IR7 CAS CAS CAS IR IR IR IR IR4 IR5 IR6 IR7 CAS CAS CAS 859 - Programmazione ICW ICW NO (SINGL=) IN CASCADE MODE ICW YES (SINGL=) NO (IC4=) IS ICW4 NEEDED ICW4 YES (IC4=) READY TO ACCEPT INTR REQUESTS 4
859 - ICW ICW 7 6 X X 5 4 X LTI M X SNGL ICW4 con 886 =singolo =cascata =livello =fronte ICW 7 6 5 4 T7 T6 T5 T4 T X X X 5 BIT + significativi del vettore di interruzione 859 - ICW ICW MASTER 7 6 5 4 S7 S6 S5 S4 S S S S Si= assenza slave Si= presenza slave ICW SLAVE 7 6 5 4 ID ID ID CASi 5
859 - ICW ICW4 7 6 5 4 SFNM BUF M/S AEOI =AEOI =normal EOI X=unbuffered =Buff Slave =Buff Master =SFNM = Normal Mode 859 - OCW OCW 7 6 5 4 M7 M6 M5 M4 M M M M INTERRUPT MASK =RESET =SET 6
855 BD BD D D P:7 BD7 CS55* IO IO L LA BRDRES D7 A RESET PC4:7 PC: PB:7 855 - Modo (schema interno) 855 REG OUT A_ A_IN/OUT* OE* PORTA A BUFFER IN A_ OE* 7
855 - Modo Input 855 P:7 SIST CPU INTR PC PC5 PC4 IBF STB* REMOTO STB* IBF INTR P:7 855 - Modo Output 855 P:7 SIST CPU INTR PC PC7 PC6 OBF* ACK* REMOTO INTR OBF* ACK* P:7 8
855 - Modo 855 P:7 SIST CPU INTR PC PC7 PC6 PC5 PC4 OBF* ACK* IBF STB* REMOTO 855 - Programmazione A READ WRITE IND BASE + PORTA A PORTA A IND BASE + PORTA B PORTA B IND BASE + PORTA C PORTA C IND BASE + CONTROL WORD 9
855 - Mode Control Word D7 D6 D5 D4 D D D D GROUP B PORT C (LOWER) =INPUT =OUTPUT PORT B =INPUT =OUTPUT MODE SELECTION =MODE =MODE GROUP A PORT C (UPPER) =INPUT =OUTPUT PORT A =INPUT =OUTPUT MODE SELECTION = MODE O = MODE X = MODE MODE SET FLAG = ACTIVE 855 - Bit set/reset Control Word D7 D6 D5 D4 D D D D DON'T CARE BIT SET\RESET =SET =RESET BIT SELECT 4 5 6 7 BIT SET/RESET FLAG = ACTIVE