Documente online.
Username / Parola inexistente
  Zona de administrare documente. Fisierele tale  
Am uitat parola x Creaza cont nou
  Home Exploreaza
upload
Upload






























Interfata seriala in PC

Informatica


Interfata seriala în PC

Zona de BIOS cotine o lista de pâna la 4 adrese de baza pentru porturile seriale, dar testeaza si initializeaza numai porturile COM1 si COM2.

Registrii lui COM1 au adresele în zona: 3F8h - 3FFh; COM1 foloseste întrerup 16416i812q erea IRQ4



Registrii lui COM2 au adresele în zona: 2F8h - 2FFh; COM2 foloseste întrerup 16416i812q erea IRQ3

Registrii portului serial

3F8h COM1Port Pentru date

La scriere

- Daca DLAB = 0 primeste caracterul de transmis.

- Daca DLAB = 1 primeste octetul inferior pentru divizarea tactului

La citire: caracterul receptionat pe linie seriala

3F9h COM1IER Interrupt enable register.

Pentru validare întreruperi. Folosit numai pentru scriere.

Daca DLAB = 0 valideaza întreruperile. Valoarea logica '1' în biti are semnificatiile:

; bit 0- Valideaza întreruperea la receptie date

; bit 1- Valideaza întreruperea la transmisie date

; bit 2- Valideaza întreruperea la eroare receptie

; bit 3- Valideaza întreruperea la bazata pe semnale de modem (CTS, DSR, RI)

; bitii 4-7- Totdeauna au valoarea '0'

Daca DLAB = 1 primeste octetul superior pentru divizarea tactului. Împreuna cu octetul de la Portul 3F8h formeaza o valoare de 16 biti care impune viteza de comunicatie:

Viteza (Bps)

Factor divizare

3FAh COM1IIR Interrupt identification register.

Acest registru se citeste de catre rutina de tratare a întreruperii, pentru a determina cauza întreruperii.



; bit 0- 1- Nu e activa nici o întrerupere (întrerupere activa daca e '0').

; bits 2,1- Valoare binara ce identifica sursa întreruperii:

; 00-Stare modem

; 01-Registru transmisie gol

; 10-Data receptionata disponibila

; 11-Eroare receptie

; bits 3-7 totdeauna zero.

;

3FBh LCR Line Control Register.

Folosit pentru scriere.

; biti 0,1- Lungime caracter (00=5, 01=6, 10=7, 11=8 bits).

; bit 2- Biti de Stop (0=1, 1=2 biti de Stop [1-1/2 daca sunt 5 biti de date]).

; bit 3- Daca e '1', alidare paritate.

; bit 4- '0' paritate impara, '1' paritate para (daca bit 3 este '1')

; bit 6- '1'=forteaza break.

; bit 7- '1'=Divisor latch access bit. (DLAB). Determina modul porturilor 3F8h si 3F9h.

'0' = Normal

3FCh MCR Modem Control Register.

Valoarea logica '1' în biti are semnificatiile:

; bit 0- Data Terminal Ready activ (DTR)

; bit 1- Request to send activ (RTS)

; bit 2- OUT 1 rezervat pentru utilizator

; bit 3- OUT 2 rezervat pentru utilizator. Obligatoriu '1' pentru întrerupere

; bit 4- Loop back control, pentru test

; bits 5-7- Totdeauna zero.

3FDh LSR Line Status Register

Folosit pentru citire. Valoarea logica '1' în biti are semnificatiile:

; bit 0- Data Ready. Se sterge la citirea datei receptionate.

; bit 1- Overrun error. Eroare de ritm, caracterul anterior e pierdut.

; bit 2- Parity error. Eroare paritate.

; bit 3- Framing error. Eroare de cadrare, nu s-a detectat corect bitul de Stop.

; bit 4- Break Interrupt. S-a receptionat Break în linie.

; bit 5- Registru de transmisie gol.

; bit 6- Registru serializare gol.

; bit 7- Totdeauna zero.

Nota. Bitii registrului pot genera întrerupere daca este permisa (3F9h)

3FEh MSR Modem Status Register

Folosit pentru citire. Valoarea logica '1' în biti are semnificatiile:

; bit 0- Delta CTS (DCTS)

; bit 1- Delta DSR (DDSR)

; bit 2- Trailing edge ring indicator (TERI)

; bit 3- Delta carrier detect (DDCD)

; bit 4- Clear to send (CTS)

; bit 5- Data Set Ready (DSR)

; bit 6- Ring indicator (RI)

; bit 7- Data carrier detect (DCD)

;

Exemplul 1

//Transmisie ciclica a unui caracter

#include <stdio.h>

#include <conio.h>

#include <dos.h>

void main()

Exemplul 2

//Receptie ciclica

#include <stdio.h>

#include <conio.h>

#include <dos.h>

void main()

Scrieti un program de test, care, folosind un cablu null-modem, care trasmite ciclic un caracter pe linia seiala, citeste si afiseaza data receptionata.





Document Info


Accesari: 1441
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )