Proiectarea Microsistemelor Digitale Curs 10 1 Proiectarea Microsistemelor

  • Slides: 23
Download presentation
Proiectarea Microsistemelor Digitale Curs 10 1

Proiectarea Microsistemelor Digitale Curs 10 1

Proiectarea Microsistemelor Digitale 5. 4. Aplicaţii 5. 4. 1. Să se proiecteze o interfaţă

Proiectarea Microsistemelor Digitale 5. 4. Aplicaţii 5. 4. 1. Să se proiecteze o interfaţă serială pe 2 canale, cu 2 circuite 8251, la o unitate centrală cu microprocesorul 8086, cu următoarele date iniţiale: 8 biţi de date, paritate impară, 2 biţi de stop, factor 16, viteza de transfer 9600 bps pentru canalul 1 şi 8 biţi de date, paritate pară, 1 bit de stop, factor 16, viteza de transfer 2400 bps pentru canalul 2. Circuitele 8251 vor fi comandate de un circuit 8253. Se va desena schema şi se vor scrie rutinele de programare şi rutinele de bază de transfer. 2

Proiectarea Microsistemelor Digitale n Schema interfeţei: 3

Proiectarea Microsistemelor Digitale n Schema interfeţei: 3

Proiectarea Microsistemelor Digitale n Adresele de port: q q q q 00 H pentru

Proiectarea Microsistemelor Digitale n Adresele de port: q q q q 00 H pentru portul de date al primului circuit 8251, 02 H pentru portul de comenzi/ stări al primului circuit 8251, 20 H pentru portul de date al celui de-al doilea circuit 8251, 22 H pentru portul de comenzi/ stări al celui de-al doilea circuit 8251, 40 H pentru contorul 0 al circuitului 8253, 42 H pentru contorul 1 al circuitului 8253, 46 H pentru Registrul Cuvântului de Comandă al circuitului 8253. n Modul de lucru pentru contoarele circuitului 8253: 3 n Constantele: q q 2 457 600/ 153 600 = 16 pentru contorul 0, 2 457 600/ 38 400 = 64 pentru contorul 1. 4

Proiectarea Microsistemelor Digitale n Rutina de programare a primului circuit 8251: MOV AL, 0

Proiectarea Microsistemelor Digitale n Rutina de programare a primului circuit 8251: MOV AL, 0 FEH ; cuvânt de mod OUT 02 H, AL MOV AL, 15 H ; cuvânt de comandă OUT 02 H, AL n Rutina de programare a celui de-al doilea circuit 8251: MOV AL, 5 EH ; cuvânt de mod OUT 22 H, AL MOV AL, 15 H ; cuvânt de comandă OUT 22 H, AL 5

Proiectarea Microsistemelor Digitale n Rutina de programare a circuitului 8253: MOV OUT AL, 16

Proiectarea Microsistemelor Digitale n Rutina de programare a circuitului 8253: MOV OUT AL, 16 H ; cuvântul de comandă pentru contorul 0 46 H, AL AL, 10 H ; constanta pentru contorul 0 40 H, AL AL, 56 H ; cuvântul de comandă pentru contorul 1 46 H, AL AL, 40 H ; constanta pentru contorul 1 42 H, AL 6

Proiectarea Microsistemelor Digitale n Rutina de transmisie caracter, primul circuit 8251: TR: IN RCR

Proiectarea Microsistemelor Digitale n Rutina de transmisie caracter, primul circuit 8251: TR: IN RCR JNC MOV OUT RET n AL, 02 H ; citire şi testare rang Tx. RDY din cuvântul de stare AL, 1 TR AL, CL ; se preia data din registrul CL 00 H, AL Rutina de recepţie caracter, primul circuit 8251: REC: IN RCR JNC IN MOV RET AL, 02 H ; citire şi testare rang Rx. RDY din cuvântul de stare AL, 2 TR AL, 00 H ; se preia data de la 8251 CL, AL ; se depune data în registrul CL 7

Proiectarea Microsistemelor Digitale n Rutina de transmisie caracter, al doilea circuit 8251: TR: IN

Proiectarea Microsistemelor Digitale n Rutina de transmisie caracter, al doilea circuit 8251: TR: IN RCR JNC MOV OUT RET n AL, 22 H ; citire şi testare rang Tx. RDY din cuvântul de stare AL, 1 TR AL, CL ; se preia data din registrul CL 20 H, AL Rutina de recepţie caracter, al doilea circuit 8251: REC: IN RCR JNC IN MOV RET AL, 22 H ; citire şi testare rang Rx. RDY din cuvântul de stare AL, 2 TR AL, 20 H ; se preia data de la 8251 CL, AL ; se depune data în registrul CL 8

Proiectarea Microsistemelor Digitale 5. 4. 2. Să se proiecteze o interfaţă serială cu circuitul

Proiectarea Microsistemelor Digitale 5. 4. 2. Să se proiecteze o interfaţă serială cu circuitul 8251, la o unitate centrală cu microprocesorul 8086, cu următoarele date iniţiale: viteza perifericului 2400 bps, factor de multiplicare 16, 7 biţi de date, fără paritate, 1 bit de STOP. Interfaţa va lucra prin întreruperi şi va fi comandată de un circuit 8253. Se vor prezenta: schema, rutinele de programare, rutinele de transfer, soluţia prin care microprocesorul ajunge la rutinele de tratare. 9

Proiectarea Microsistemelor Digitale n Schema interfeţei: 10

Proiectarea Microsistemelor Digitale n Schema interfeţei: 10

Proiectarea Microsistemelor Digitale n Adresele de port: q q 20 H pentru portul de

Proiectarea Microsistemelor Digitale n Adresele de port: q q 20 H pentru portul de date al circuitului 8251, 22 H pentru portul de comenzi/ stări al circuitului 8251, 00 H pentru contorul 0 al circuitului 8253, 06 H pentru Registrul Cuvântului de Comandă al circuitului 8253. n Modul de lucru pentru contorul 0 al circuitului 8253: 3 n Constanta: q 2 457 600/ 38 400 = 64. 11

Proiectarea Microsistemelor Digitale n Rutina de programare a circuitului 8251: MOV AL, 4 AH

Proiectarea Microsistemelor Digitale n Rutina de programare a circuitului 8251: MOV AL, 4 AH ; cuvânt de mod OUT 22 H, AL MOV AL, 15 H ; cuvânt de comandă OUT 22 H, AL n Rutina de programare a circuitului 8253: MOV AL, 16 H ; cuvântul de comandă pentru contorul 0 OUT 06 H, AL MOV AL, 40 H ; constanta pentru contorul 0 OUT 00 H, AL 12

Proiectarea Microsistemelor Digitale n n n Transferul unui caracter va avea loc în cadrul

Proiectarea Microsistemelor Digitale n n n Transferul unui caracter va avea loc în cadrul rutinei de tratare a cererii de întrerupere. Întrucât există 2 surse pentru cereri de întrerupere, microprocesorul va trebui să identifice sursa. Operaţia se va realiza la începutul rutinei de tratare a cererii prin citirea octetului de stare şi prin verificarea rangului RXRDY. Dacă acesta are valoarea 1 înseamnă că sursa este recepţia iar dacă are valoarea 0 atunci sursa este transmisia. Recepţia şi transmisia caracterului se vor face rapid fără ca microprocesorul să aştepte asamblarea unui caracter, respectiv golirea tamponului de ieşire. Accesul procesorului la rutina de tratare a cererii de întrerupere se va face prin intermediul unui vector generat de o logică de întrerupere (de obicei circuitul 8259 A); vectorul va duce la o intrare în tabela vectorilor de întrerupere. 13

Proiectarea Microsistemelor Digitale n Rutina de tratare a cererii de întrerupere: SER: IN AL,

Proiectarea Microsistemelor Digitale n Rutina de tratare a cererii de întrerupere: SER: IN AL, 22 H ; citire şi testare rang Rx. RDY din cuvântul de stare RCR AL, 2 JNC REC ; transmisia MOV AL, CL OUT 20 H, AL ; se scrie data la 8251 EI ; reactivare a sistemului de întreruperi RET ; recepţia REC: IN AL, 00 H ; se preia data de la 8251 MOV CL, AL ; se depune data în registrul CL EI ; reactivare a sistemului de întreruperi RET 14

Proiectarea Microsistemelor Digitale 5. 4. 3. Să se proiecteze un modul care anunţă microprocesorul

Proiectarea Microsistemelor Digitale 5. 4. 3. Să se proiecteze un modul care anunţă microprocesorul 8086 că un eveniment extern a apărut de 1000 ori. O apariţie este anunţată microprocesorului prin un tren de 500 impulsuri cu caracteristici TTL. Se va utiliza un circuit 8253. 15

Proiectarea Microsistemelor Digitale n Schema modulului: 16

Proiectarea Microsistemelor Digitale n Schema modulului: 16

Proiectarea Microsistemelor Digitale n n n Se consideră că există un traductor între eveniment

Proiectarea Microsistemelor Digitale n n n Se consideră că există un traductor între eveniment şi circuitul 8253 care generează 500 impulsuri cu caracteristici TTL la o apariţie a evenimentului. Constanta de programare este: 1000 x 500 = 500000 şi este prea mare şi nu încape în un contor al circuitului 8253. Se vor folosi contoarele 0 şi 1, înseriate, iar constantele de divizare vor fi: q q n n n 1000 D = 03 E 8 H pentru contorul 0 şi 500 D = 01 F 4 H pentru contorul 1. Ieşirea contorului 0 va constitui intrare de tact pentru contorul 1. Ieşirea contorului 1 poate fi sursă pentru cerere de întrerupere sau poate fi citită, prin program, de către microprocesor. Se va folosi: q q modul 3 pentru contorul 0 şi modul 0 pentru contorul 1. 17

Proiectarea Microsistemelor Digitale n Adresele de port: q q q n 00 H pentru

Proiectarea Microsistemelor Digitale n Adresele de port: q q q n 00 H pentru contorul 0 al circuitului 8253, 02 H pentru contorul 1 al circuitului 8253, 06 H pentru Registrul Cuvântului de Comandă al circuitului 8253. Programarea: MOV AL, 36 H ; cuvântul de comandă pentru contorul 0 OUT 06 H, AL MOV AL, 0 E 8 H ; octetul c. m. p. s. al constantei pentru contorul 0 OUT 00 H, AL MOV AL, 03 H ; octetul c. m. s. al constantei pentru contorul 0 OUT 00 H, AL MOV AL, 70 H ; cuvântul de comandă pentru contorul 1 OUT 06 H, AL MOV AL, 0 F 4 H ; octetul c. m. p. s. al constantei pentru contorul 1 OUT 02 H, AL MOV AL, 01 H ; octetul c. m. s. al constantei pentru contorul 1 OUT 02 H, AL 18

Proiectarea Microsistemelor Digitale 5. 4. 4. Să se comande 32 semnale de ieşire de

Proiectarea Microsistemelor Digitale 5. 4. 4. Să se comande 32 semnale de ieşire de către un microprocesor 8086. Se vor utiliza circuite 8255. 19

Proiectarea Microsistemelor Digitale n Schema modulului: 20

Proiectarea Microsistemelor Digitale n Schema modulului: 20

Proiectarea Microsistemelor Digitale n Adresele de port: q q q n 00 H pentru

Proiectarea Microsistemelor Digitale n Adresele de port: q q q n 00 H pentru portul PA al primului circuit 8255, 02 H pentru portul PB al primului circuit 8255, 06 H pentru Registrul Cuvântului de Comandă al primului circuit 8255, 20 H pentru portul PA al celui de-al doilea circuit 8255, 22 H pentru portul PB al celui de-al doilea circuit 8255, 26 H pentru Registrul Cuvântului de Comandă al celui de-al doilea circuit 8255. Modurile de lucru: 0 ieşire 21

Proiectarea Microsistemelor Digitale n Programarea celor 2 circuite 8255: MOV OUT n AL, 80

Proiectarea Microsistemelor Digitale n Programarea celor 2 circuite 8255: MOV OUT n AL, 80 H 06 H, AL 26 H, AL Pentru a poziţiona o ieşire va trebui scrisă configuraţia corespunzătoare la portul unde este conectată respectiva ieşire. De exemplu, pentru ca să existe următoarea configuraţie: IES 0 = IES 2 = IES 4 = IES 6 = 0, IES 1 = IES 3 = IES 5 = IES 7 = 1 va trebui executată următoarea secvenţă: MOV OUT AL, 0 AAH 02 H, AL. 22

Proiectarea Microsistemelor Digitale n Dacă se doreşte poziţionarea unei singure ieşiri, fără a le

Proiectarea Microsistemelor Digitale n Dacă se doreşte poziţionarea unei singure ieşiri, fără a le afecta pe celelalte va fi necesară modificarea programării circuitului. Portul la care este conectată ieşirea va trebui să fie poziţionat ca intrare, apoi se va citi combinaţia de la respectivul port, se va modifica combinaţia, portul va fi programat ca ieşire şi apoi se va scrie combinaţia la respectivul port. De exemplu, dacă se doreşte poziţionarea ieşirii IES 0 la 1 logic, fără afectarea celorlalte, va trebui executată următoarea secvenţă: MOV OUT IN OR MOV OUT AL, 82 H 06 H, AL ; portul B din primul 8255 este poziţionat ca intrare AL, 02 H AL, 01 H CL, AL AL, 80 H 06 H, AL ; portul B din primul circuit 8255 este ieşire AL, CL 02 H, AL , se poziţionează ieşirea dorită 23