Comunicații date

Laborator
6/10 (1 vot)
Domeniu: Comunicare
Conține 3 fișiere: doc
Pagini : 15 în total
Cuvinte : 2637
Mărime: 33.37KB (arhivat)
Puncte necesare: 0
Profesor îndrumător / Prezentat Profesorului: Voicu Ionel

Extras din laborator

Comunicatia seriala – standardul RS232

Tematica laborator

Se va prezenta mecanismul intreruperilor. Se va scrie un program C ce foloseste intreruperi si realizeaza un canal de comunicatie serial intre 2 PC-uri : ceea ce este tastat la PC1 va fi afisat pe ecranul PC2 si viceversa (functional identic cu cel realizat prin metoda polling in cadrul laboratorului precedent).

Comunicarea cu portul serial bazata pe intreruperi

Primul pas consta in determinarea intreruperii corespunzatoare portului serial folosit. Adresele de baza ale porturilor seriale (COM1-4) si intreruperile asociate fiecaruia sunt in general urmatoarele:

Name Address IRQ

COM 1 3F8 4

COM 2 2F8 3

COM 3 3E8 4

COM 4 2E8 3

Cunoscand numarul intreruperii, urmatorul pas este aflarea numarului vectorului de intrerupere. Vectorul are 4 bytes si reprezinta adresa la care se gaseste subrutina de tratare a intreruperii respective (Interrupt Service Routine – ISR). Vectorii asociati cu intreruperi hardware sunt :

INT (Hex) IRQ Common Uses

08 0 System Timer

09 1 Keyboard

0A 2 Redirected

0B 3 Serial Comms. COM2/COM4

0C 4 Serial Comms. COM1/COM3

0D 5 Reserved/Sound Card

0E 6 Floppy Disk Controller

0F 7 Parallel Comms.

70 8 Real Time Clock

71 9 Reserved

72 10 Reserved

73 11 Reserved

74 12 PS/2 Mouse

75 13 Maths Co-Processor

76 14 Hard Disk Drive

77 15 Reserved

De exemplu daca folosim COM1 care are IRQ4, vectorul de intrerupere corespunzator este 0C in hexa. Folosind C putem schimba vectorul cu ajutorul instructiunii setvect(0x0C, PORT1INT); unde PORT1INT este adresa de inceput a functiei de tratare a intreruperii (scrisa de noi). In cazul nostru, aceasta functie va citi datele primite prin interfata seriala si le va stoca intr-un buffer intermediar (de unde vor fi afisate pe ecran de catre bucla principala).

Este important ca la sfarsitul acestei rutine de tratare sa anuntam Programmable Interrupt Controller (PIC) ca am terminat cu ajutorul instructiunii outportb(0x20, 0x20);, astfel incat eventualele intreruperi de prioritate mai mica sa poata fi tratate in continuare.

Acest PIC se ocupa de intreruperile hardware. Majoritatea calculatoarelor au doua asemenea controller-e : unul se ocupa de IRQ 0 pana la 7 iar celalalt de IRQ 8 – IRQ 15. Majoritatea intreruperilor legate de comunicatia seriala sunt sub 7, deci PIC 1 este folosit ( adresa PIC 1 este 20 hexa).

Bit Disable IRQ Function

7 IRQ7 Parallel Port

6 IRQ6 Floppy Disk Controller

5 IRQ5 Reserved/Sound Card

4 IRQ4 Serial Port

3 IRQ3 Serial Port

2 IRQ2 PIC2

1 IRQ1 Keyboard

0 IRQ0 System Timer

PIC1 Control Word (0x21)

Bit Disable IRQ Function

7 IRQ15 Reserved

6 IRQ14 Hard Disk Drive

5 IRQ13 Maths Co-Processor

4 IRQ12 PS/2 Mouse

3 IRQ11 Reserved

2 IRQ10 Reserved

1 IRQ9 IRQ2

0 IRQ8 Real Time Clock

PIC2 Control Word (0xA1)

Mare parte din initializarea PIC-urilor este facuta de BIOS. Din punctul de vedere al programului de comunicatie, tot ce trebuie facut este activarea intreruperii corespunzatoare (IRQ4 pentru COM1) cu ajutorul instructiunii outportb(0x21,(inportb(0x21) & 0xEF);. Folosim AND binar pe valoarea deja existenta pentru a nu suprascrie setarile altor programe.

Registrii UART-ului sunt accesibili la urmatoarele adrese :

Base Address DLAB Read/Write Abr. Register Name

+ 0 =0 Write - Transmitter Holding Buffer

=0 Read - Receiver Buffer

=1 Read/Write - Divisor Latch Low Byte

+ 1 =0 Read/Write IER Interrupt Enable Register

=1 Read/Write - Divisor Latch High Byte

+ 2 - Read IIR Interrupt Identification Register

- Write FCR FIFO Control Register

+ 3 - Read/Write LCR Line Control Register

+ 4 - Read/Write MCR Modem Control Register

+ 5 - Read LSR Line Status Register

+ 6 - Read MSR Modem Status Register

+ 7 - Read/Write - Scratch Register

Interrupt Enable Register (IER) (Base+1)

Bit Notes

Bit 7 Reserved

Bit 6 Reserved

Bit 5 Enables Low Power Mode (16750)

Bit 4 Enables Sleep Mode (16750)

Bit 3 Enable Modem Status Interrupt

Bit 2 Enable Receiver Line Status Interrupt

Bit 1 Enable Transmitter Holding Register Empty Interrupt

Bit 0 Enable Received Data Available Interrupt

Preview document

Comunicații date - Pagina 1
Comunicații date - Pagina 2
Comunicații date - Pagina 3
Comunicații date - Pagina 4
Comunicații date - Pagina 5
Comunicații date - Pagina 6
Comunicații date - Pagina 7
Comunicații date - Pagina 8
Comunicații date - Pagina 9
Comunicații date - Pagina 10
Comunicații date - Pagina 11
Comunicații date - Pagina 12
Comunicații date - Pagina 13
Comunicații date - Pagina 14
Comunicații date - Pagina 15

Conținut arhivă zip

  • Comunicatii Date
    • CDLab2.doc
    • CDLab3.doc
    • CDLab4.doc

Alții au mai descărcat și

Comunicarea în Cadrul Grupului

Oamenii traiesc organizati în grupuri deoarece sunt fiinte sociale. Un grup social reprezinta un ansamblu de indivizi între care exista relatii...

Mediul informațional-informatic suport al comunicării

COMUNICAREA UMANA este plina de probleme si dificultati. Foarte des auzim fraze de tipul: “Nu am vrut sa spun asta” , “Înca nu sesizezi ceea ce...

Comunicare verbală și non-verbală

COMUNICAREA NONVERBALA Intr-un sens foarte larg acest termen desemneaza orice proces prin care o informatie este transmisa de la un element la...

Te-ar putea interesa și

Centrala Telefonică Digitală IPC 100

I. INTRODUCERE Două calculatoare ale aceleiaşi companii sau organizaţii, aflate la mică distanţă, pot fi conectate simplu printr-un cablu, pentru...

Riscul Seismic în România

Introducere Statisticile consemneaza ca numai In ultimii 20 de ani, ca urmare a dezastrelor naturale si-au pierdut viata mai mult de 3.000.000...

Studiu Monografic BRD

Capitolul 1 Prezentarea societăţii bancare. Istoric şi evoluţie BRD - Groupe Société Générale este a doua bancă românească, după activele...

Comunicații de date - coduri de linie

1.Tema proiect Sa se proiecteze un sistem de comunicatii de date care sa permita transmisia informatiei binare folosind coduri de linie:...

Proiect comunicații de date

PROIECT LA DISCIPLINA COMUNICATII DE DATE 1. Tema proiectului Se considerã o structurã hardware constand din douã sisteme de dezvoltare echipate...

Comunicații de Date prin Fascicul Laser

SCURT ISTORIC AL DEZVOLTĂRII SISTEMELOR DE COMUNICAŢII OPTICE Lumina,ca şi mijloc de comunicaţii,nu a fost folosită doar în era noastră...

Comunicații de date

Comunicatiile de date reprezinta procesul de comunicare a informatiilor in forma binara intre doua sau mai multe echipamente. Ele sunt denumite de...

Rețele de calculatoare - legături pentru comunicații de date

1. LEGATURI PENTRU COMUNICATII DE DATE 1.1 Evolutia sistemelor de comunicatie Inca din cele mai vechi timpuri omenirea a cautat solutii de...

Ai nevoie de altceva?