Controlador de Puerto Serie

Anuncio
Controlador de Puerto Serie
Alejandro Furfaro
Progrmación Sistemas Operativos
19 de Mayo de 2011 - 1c2011
Alejandro Furfaro (PSO - DC)
Controlador de Puerto Serie
19 de Mayo de 2011
1 / 22
Temario
1
2
3
4
Alejandro Furfaro (PSO - DC)
Comunicación serie
Hardware
Controladores de comunicación
Comunicación asincrónica
UART 16550
Hardware
Interfaz de programación
Coding
Controlador de Puerto Serie
19 de Mayo de 2011
2 / 22
Comunicación serie
Comparación serie paralelo
COMUNICACION PARALELO
Gran velocidad.
Distancias cortas.
No se garantiza el tiempo de transito.
Muchas lı́neas de interconexión.
El dato esta presente en un bit por cada lı́nea de datos.
Volumen de software para la atención del sincronismo.
COMUNICACION SERIE
Velocidad Inferior.
Distancias grandes.
Cantidad reducida de lı́neas de interconexión (mı́nimo tres).
El dato se transmite bit por bit.
Asincrónica o Sincrónica.
Alejandro Furfaro (PSO - DC)
Controlador de Puerto Serie
19 de Mayo de 2011
3 / 22
Comunicación serie
Comparación serie paralelo
COMUNICACION PARALELO
Gran velocidad.
Distancias cortas.
No se garantiza el tiempo de transito.
Muchas lı́neas de interconexión.
El dato esta presente en un bit por cada lı́nea de datos.
Volumen de software para la atención del sincronismo.
COMUNICACION SERIE
Velocidad Inferior.
Distancias grandes.
Cantidad reducida de lı́neas de interconexión (mı́nimo tres).
El dato se transmite bit por bit.
Asincrónica o Sincrónica.
Alejandro Furfaro (PSO - DC)
Controlador de Puerto Serie
19 de Mayo de 2011
3 / 22
Comunicación serie
Comparación serie paralelo
COMUNICACION PARALELO
Gran velocidad.
Distancias cortas.
No se garantiza el tiempo de transito.
Muchas lı́neas de interconexión.
El dato esta presente en un bit por cada lı́nea de datos.
Volumen de software para la atención del sincronismo.
COMUNICACION SERIE
Velocidad Inferior.
Distancias grandes.
Cantidad reducida de lı́neas de interconexión (mı́nimo tres).
El dato se transmite bit por bit.
Asincrónica o Sincrónica.
Alejandro Furfaro (PSO - DC)
Controlador de Puerto Serie
19 de Mayo de 2011
3 / 22
Comunicación serie
Comparación serie paralelo
COMUNICACION PARALELO
Gran velocidad.
Distancias cortas.
No se garantiza el tiempo de transito.
Muchas lı́neas de interconexión.
El dato esta presente en un bit por cada lı́nea de datos.
Volumen de software para la atención del sincronismo.
COMUNICACION SERIE
Velocidad Inferior.
Distancias grandes.
Cantidad reducida de lı́neas de interconexión (mı́nimo tres).
El dato se transmite bit por bit.
Asincrónica o Sincrónica.
Alejandro Furfaro (PSO - DC)
Controlador de Puerto Serie
19 de Mayo de 2011
3 / 22
Comunicación serie
Comparación serie paralelo
COMUNICACION PARALELO
Gran velocidad.
Distancias cortas.
No se garantiza el tiempo de transito.
Muchas lı́neas de interconexión.
El dato esta presente en un bit por cada lı́nea de datos.
Volumen de software para la atención del sincronismo.
COMUNICACION SERIE
Velocidad Inferior.
Distancias grandes.
Cantidad reducida de lı́neas de interconexión (mı́nimo tres).
El dato se transmite bit por bit.
Asincrónica o Sincrónica.
Alejandro Furfaro (PSO - DC)
Controlador de Puerto Serie
19 de Mayo de 2011
3 / 22
Comunicación serie
Comparación serie paralelo
COMUNICACION PARALELO
Gran velocidad.
Distancias cortas.
No se garantiza el tiempo de transito.
Muchas lı́neas de interconexión.
El dato esta presente en un bit por cada lı́nea de datos.
Volumen de software para la atención del sincronismo.
COMUNICACION SERIE
Velocidad Inferior.
Distancias grandes.
Cantidad reducida de lı́neas de interconexión (mı́nimo tres).
El dato se transmite bit por bit.
Asincrónica o Sincrónica.
Alejandro Furfaro (PSO - DC)
Controlador de Puerto Serie
19 de Mayo de 2011
3 / 22
Comunicación serie
Comparación serie paralelo
COMUNICACION PARALELO
Gran velocidad.
Distancias cortas.
No se garantiza el tiempo de transito.
Muchas lı́neas de interconexión.
El dato esta presente en un bit por cada lı́nea de datos.
Volumen de software para la atención del sincronismo.
COMUNICACION SERIE
Velocidad Inferior.
Distancias grandes.
Cantidad reducida de lı́neas de interconexión (mı́nimo tres).
El dato se transmite bit por bit.
Asincrónica o Sincrónica.
Alejandro Furfaro (PSO - DC)
Controlador de Puerto Serie
19 de Mayo de 2011
3 / 22
Comunicación serie
Comparación serie paralelo
COMUNICACION PARALELO
Gran velocidad.
Distancias cortas.
No se garantiza el tiempo de transito.
Muchas lı́neas de interconexión.
El dato esta presente en un bit por cada lı́nea de datos.
Volumen de software para la atención del sincronismo.
COMUNICACION SERIE
Velocidad Inferior.
Distancias grandes.
Cantidad reducida de lı́neas de interconexión (mı́nimo tres).
El dato se transmite bit por bit.
Asincrónica o Sincrónica.
Alejandro Furfaro (PSO - DC)
Controlador de Puerto Serie
19 de Mayo de 2011
3 / 22
Comunicación serie
Comparación serie paralelo
COMUNICACION PARALELO
Gran velocidad.
Distancias cortas.
No se garantiza el tiempo de transito.
Muchas lı́neas de interconexión.
El dato esta presente en un bit por cada lı́nea de datos.
Volumen de software para la atención del sincronismo.
COMUNICACION SERIE
Velocidad Inferior.
Distancias grandes.
Cantidad reducida de lı́neas de interconexión (mı́nimo tres).
El dato se transmite bit por bit.
Asincrónica o Sincrónica.
Alejandro Furfaro (PSO - DC)
Controlador de Puerto Serie
19 de Mayo de 2011
3 / 22
Comunicación serie
Comparación serie paralelo
COMUNICACION PARALELO
Gran velocidad.
Distancias cortas.
No se garantiza el tiempo de transito.
Muchas lı́neas de interconexión.
El dato esta presente en un bit por cada lı́nea de datos.
Volumen de software para la atención del sincronismo.
COMUNICACION SERIE
Velocidad Inferior.
Distancias grandes.
Cantidad reducida de lı́neas de interconexión (mı́nimo tres).
El dato se transmite bit por bit.
Asincrónica o Sincrónica.
Alejandro Furfaro (PSO - DC)
Controlador de Puerto Serie
19 de Mayo de 2011
3 / 22
Comunicación serie
Comparación serie paralelo
COMUNICACION PARALELO
Gran velocidad.
Distancias cortas.
No se garantiza el tiempo de transito.
Muchas lı́neas de interconexión.
El dato esta presente en un bit por cada lı́nea de datos.
Volumen de software para la atención del sincronismo.
COMUNICACION SERIE
Velocidad Inferior.
Distancias grandes.
Cantidad reducida de lı́neas de interconexión (mı́nimo tres).
El dato se transmite bit por bit.
Asincrónica o Sincrónica.
Alejandro Furfaro (PSO - DC)
Controlador de Puerto Serie
19 de Mayo de 2011
3 / 22
Comunicación serie
Comparación serie paralelo
COMUNICACION PARALELO
Gran velocidad.
Distancias cortas.
No se garantiza el tiempo de transito.
Muchas lı́neas de interconexión.
El dato esta presente en un bit por cada lı́nea de datos.
Volumen de software para la atención del sincronismo.
COMUNICACION SERIE
Velocidad Inferior.
Distancias grandes.
Cantidad reducida de lı́neas de interconexión (mı́nimo tres).
El dato se transmite bit por bit.
Asincrónica o Sincrónica.
Alejandro Furfaro (PSO - DC)
Controlador de Puerto Serie
19 de Mayo de 2011
3 / 22
Comunicación serie
Comparación serie paralelo
COMUNICACION SINCRONICA Un par de lı́neas para
datos y una lı́nea de clock
COMUNICACION ASINCRONICA No hay clock, el
transmisor y el receptor se ponen de acuerdo en
la velocidad de transmisión.
Alejandro Furfaro (PSO - DC)
Controlador de Puerto Serie
19 de Mayo de 2011
4 / 22
Hardware
Controladores de comunicación
USARTs y UARTs
USART : Unidad Sincrónica Asincrónica Receptora
Transmisora. Maneja los dos tipos de
comunicación. Cayó en desuso hace muchos
años ya que transmitir el clock agrega
complejidad al hardware, especialmente en
distancias largas.
UART : Unidad Asincrónica Receptora Transmisora.
Es la interfaz serie que utiliza la PC.
Actualmente está siendo remplazada por USB,
pero es una interfaz sumamemnte utilizada aún
en sistemas embeeded, debido a su simpleza de
manejo y su versatilidad.
Alejandro Furfaro (PSO - DC)
Controlador de Puerto Serie
19 de Mayo de 2011
5 / 22
Hardware
Controladores de comunicación
UARTs: evolución
Chip
Funcionalidad
8250
Primer UART de la serie. Contiene no scratch register. El 8250A fue una
versión mejorada del 8250 que opera mas rápido del lado bus.
8250A
Esta UART es que el 8250 del lado bus. Para el software se “ve“ tal como
un 16450.
8250
Muy similar a la UART 8250.
16450
Utilizado en las AT (Mejora la velocidad de bus respecto del 8250’s). Opera
a 38.4KBPS sin problemas.
16550
Primer generación de UART buffereada. Tiene un buffer de 16 bytes, sin
embargo, no funcionó adecuadamente y fue reemplazado por el 16550A.
16550A
Es la UART mas común utilizada para Modems de comunicaciones. Ls buffers de 16 bytes funcionan correctamente.
16650
Contiene un FIFO de 32 bytes, X-On / X-Off caracteres programables y
soporte a manejo de energı́a.
16750
Producido por Texas Instruments. Contiene un FIFO de 64 bytes.
Alejandro Furfaro (PSO - DC)
Controlador de Puerto Serie
19 de Mayo de 2011
6 / 22
Hardware
Controladores de comunicación
Erase una vez una PC y sus puertos serie...
Alejandro Furfaro (PSO - DC)
Controlador de Puerto Serie
19 de Mayo de 2011
7 / 22
Hardware
Comunicación asincrónica
Control de flujo por software
Alejandro Furfaro (PSO - DC)
Controlador de Puerto Serie
19 de Mayo de 2011
8 / 22
UART 16550
Hardware
16550. Diarama en Bloques
Alejandro Furfaro (PSO - DC)
Controlador de Puerto Serie
19 de Mayo de 2011
9 / 22
UART 16550
Hardware
16550: Diagrama en Bloques simplificado
RBR: Receiver Buffer Register (Read only)
THR: Transmitter Holding Register (Write only)
DLL: Divisor Latch LSB
DLM: Divisor Latch MSB
IER: Interrupt Enable Register
IIR: Interrupt Identification Register (Read only)
FCR: FIFO Control Register
LCR: Line Control Register
MCR: MODEM Control Register
LSR: Line Status Register
MSR: MODEM Status Register
SCR: Scratch Register
Alejandro Furfaro (PSO - DC)
Controlador de Puerto Serie
19 de Mayo de 2011
10 / 22
UART 16550
Interfaz de programación
LCR: Line Control Register – BASE+3
Alejandro Furfaro (PSO - DC)
Controlador de Puerto Serie
19 de Mayo de 2011
11 / 22
UART 16550
Interfaz de programación
LCR: Line Control Register – BASE+3
Alejandro Furfaro (PSO - DC)
Controlador de Puerto Serie
19 de Mayo de 2011
12 / 22
UART 16550
Interfaz de programación
Velocidad de Transmisión
Alejandro Furfaro (PSO - DC)
Controlador de Puerto Serie
19 de Mayo de 2011
13 / 22
UART 16550
Interfaz de programación
Velocidad de Transmisión
Alejandro Furfaro (PSO - DC)
Controlador de Puerto Serie
19 de Mayo de 2011
14 / 22
UART 16550
Interfaz de programación
Programando del Baud Rate
v o i d OpenCom ( v o i d )
{
unsigned char b y t e ;
o u t b ( LCR , 0 x83 ) ;
o u t b ( DLL , 0 x0C ) ;
o u t b (DLM , 0 x00 ) ;
// s e t DLAB −
// 9600
8 ,N, 1
b y t e = i n b (LCR ) ;
o u t b ( LCR , 0 x7F & b y t e ) ; // c l e a r DLAB
}
Alejandro Furfaro (PSO - DC)
Controlador de Puerto Serie
19 de Mayo de 2011
15 / 22
UART 16550
Interfaz de programación
LSR Line Status Register – BASE + 5
Alejandro Furfaro (PSO - DC)
Controlador de Puerto Serie
19 de Mayo de 2011
16 / 22
UART 16550
Interfaz de programación
IER Interrupt Enable Register – BASE + 1
Alejandro Furfaro (PSO - DC)
Controlador de Puerto Serie
19 de Mayo de 2011
17 / 22
UART 16550
Interfaz de programación
IIR Interrupt Enable Register – BASE + 2
Alejandro Furfaro (PSO - DC)
Controlador de Puerto Serie
19 de Mayo de 2011
18 / 22
UART 16550
Interfaz de programación
Interrupciones Simultáneas
Alejandro Furfaro (PSO - DC)
Controlador de Puerto Serie
19 de Mayo de 2011
19 / 22
UART 16550
Interfaz de programación
Interrupciones Diagrama General detallado
Alejandro Furfaro (PSO - DC)
Controlador de Puerto Serie
19 de Mayo de 2011
20 / 22
Coding
En assembler... para no perder la costumbre
SERIAL PORT
SERIAL IER
SERIAL LCR
SERIAL FIFO
SERIAL IIR
SERIAL MCR
equ
equ
equ
equ
equ
equ
serial setup :
mov
al ,0
mov
dx , SERIAL IER
out
dx , a l
mov
mov
out
a l , 0 x80
dx , SERIAL LCR
dx , a l
Alejandro Furfaro (PSO - DC)
0 x3f8
SERIAL
SERIAL
SERIAL
SERIAL
SERIAL
PORT+1
PORT+3
PORT+2
PORT+2
PORT+4
; disable interrupts
; e n a b l e DLAB
Controlador de Puerto Serie
19 de Mayo de 2011
21 / 22
Coding
En assembler... para no perder la costumbre
mov
mov
out
a l , 0 x01
dx , SERIAL PORT
dx , a l
mov
mov
out
al ,0
dx , SERIAL PORT+1; s e t b a u d r a t e
dx , a l
mov
mov
out
a l , 0 x03
dx , SERIAL LCR
dx , a l
; 8 N 1
mov
mov
out
al ,0
dx , SERIAL FIFO
dx , a l
; FIFO c o n t r o l r e g i s t e r , d i s a b l e FIF
Alejandro Furfaro (PSO - DC)
; ” s e t b a u d r a t e a l mango” : 112000
Controlador de Puerto Serie
19 de Mayo de 2011
22 / 22
Coding
En assembler... para no perder la costumbre
mov
mov
out
a l , 0 x0b
dx , SERIAL MCR
dx , a l
; t u r n on DTR, RTS and OUT2
in
and
out
a l , 0 x21
al ,11101111 b
21h , a l
; h a b i l i t a r IRQ de COM1
mov
mov
out
a l , 0 x01
dx , SERIAL IER
dx , a l
; enable data r e c e p t i o n i n t e r r u p t
Alejandro Furfaro (PSO - DC)
Controlador de Puerto Serie
19 de Mayo de 2011
23 / 22
Descargar