E2 - G11

Anuncio
Arquitectura de Computadores
Proyecto: SmartMusic
Entrega 2
Grupo G11
4 de Octubre de 2009
Integrantes:
Pablo Alcayaga
Tomás Arriagada
Felipe Balbontı́n
Gabriel Diéguez
Javier Espinoza
Sebastián Vicencio
1
Índice
1. Introducción
3
2. Diseño del dispositivo
2.1. Componentes utilizados . . . . . .
2.2. Diagrama del circuito . . . . . . .
2.3. Implementación del dispositivo . .
2.3.1. Dispositivos análogos . . . .
2.3.2. Display LCD . . . . . . . .
2.3.3. Pulsadores . . . . . . . . .
2.3.4. PIC . . . . . . . . . . . . .
2.3.5. MAX232 y Conexión Serial
2.3.6. Elementos Adicionales . . .
4
4
4
5
5
7
8
9
9
9
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3. Anexos
11
3.1. Anexo 1: Diagrama de flujo circuito LEDs . . . . . . . . . . . . . . . . . . . . . . . . 11
Índice de figuras
1.
2.
3.
4.
Diagrama
Diagrama
Diagrama
Diagrama
de Placa Controladora
Conexiones Externas .
del Max232 . . . . . .
de flujo LEDs . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
6
9
12
1.
Introducción
En diversas ocasiones y circunstancias, se desea reproducir música. Ésta puede ser música ambiental, para acompañar una junta social, o música de algún género particular para deleitarse
escuchándola. Lamentablemente, muchas veces ocurre que esta música no es la adecuada al estado
de ánimo del lugar. En muchas ocasiones, el nivel de ruido disminuye, pero la música se mantiene
fuerte, dificultando la comunicación. En otras, el género de la música no es el adecuado para las
circunstancias. Lo anterior causa que alguien deba encargarse de controlar constantemente la reproducción musical.
Para solucionar el problema antes mencionado, en este proyecto semestral se desarrollará un
dispositivo que controlará la reproducción musical de un computador. Este dispositivo consiste en
un microcontrolador, el que estará conectado a un computador y tendrá dos sensores: uno medirá el
nivel de ruido en el ambiente y el otro el nivel de luminosidad del mismo. Ambos sensores entregarán tres posibles niveles de ruido o luminosidad, lo cual genera 9 combinaciones distintas. La
combinación presente en el ambiente será enviada al computador, en el cual se estará ejecutando
un software diseñado para comunicarse con el dispositivo (además del software de reproducción
de la música). Éste elegirá una de entre 9 listas de reproducción distintas con su respectivo volumen, las que podrán ser configuradas por el usuario. De esta forma, el dispositivo controlará de
manera automática la música reproducida en cierto lugar ajustándola a las condiciones ambientales.
Adicionalmente al control automático de la música, el dispositivo también permitirá comenzar y
detener la reproducción junto con adelantar y retroceder de canción. Esto será a través de 3 botones
puestos en el dispositivo: uno de play/pause, uno de forward y un último de backward. Además, el
usuario podrá programar un timer el cual tiene el tiempo en que el dispositivo pueda iniciar o detener automáticamente la reproducción. Esto se realiza con un botón, el cual al oprimirlo una vez,
incrementará el tiempo de espera en una cantidad predefinida. Si se mantiene el botón oprimido
por más de 3 segundos, se reestablecerá el tiempo de espera a 0. Por último, el dispositivo posee
una pantalla LCD la cual permitirá mostrar el nombre de la canción reproducida, en conjunto con
el tiempo actual del timer.
Los requerimientos mı́nimos que debe cumplir el dispositivo son los siguientes:
Entradas y salidas digitales (DIO), para comunicarse con otros componentes digitales.
Entrada análoga: para comunicarse con un sensor análogo.
Comunicación bajo algún protocolo standard e.g. RS232, USB, I2C.
Módulo ADC/PWM: para convertir la señal entregada por el sensor análogo y utilizarla en el
dispositivo.
Interrupciones programables.
3
Timer interno programable.
2.
Diseño del dispositivo
En esta sección se describirá el circuito que hace posible el funcionamiento de nuestro sistema.
Este dispositivo consiste en una placa controladora conectada a componentes que permiten sensar
el ambiente, a elementos de interfaz de usuario y a un computador.
2.1.
Componentes utilizados
Los componentes utilizados se presentarán en la siguiente tabla.
Nombre
Microcontrolador PIC
MAX232
16x2 Character LCD
Sensor de Luz
Sensor de sonidos
Pulsadores
2.2.
Código
Detalles
PIC16F877A datasheet
MAX232
datasheet
Pantalla:
GDM1602K.
Interfaz:
HD44780
ZX-LDR
Pantalla:
datasheet
Interfaz:
datasheet
datasheet
ZX-Sound
SP-1116
datasheet
-
Uso
Permite ejecutar las instrucciones
asociadas a cambios en la luminosidad, el ruido del ambiente y el input
del usuario.
Permite conectar el PIC con el puerto serial.
Muestra información de la canción
actual y del estado del timer. Se
conecta a través del chip HD44780
el cual simplifica la interfaz.
Detecta los niveles de luminosidad
del ambiente.
Detecta el nivel de ruido ambiental.
Botones de play/pause, backward,
forward, timer.
Diagrama del circuito
Se presentará el diseño del circuito en dos diagramas. Primero se muestra el diagrama de la
placa controladora con todas las conexiones posibles (Figura: 1). Luego se muestra un segundo
diagrama con las conexiones de los dispositivos externos a la placa (Figura: 2). No se mostraron
ambos diseños en el mismo diagrama por motivos de orden. Es importante recalcar que las dos
entradas análogas (sensores de sonido y luminosidad) son representadas por dos potenciómetros por
motivos de simulación. Esto se puede hacer ya que ambos sensores entregan un voltaje de entre 0V
y 5V (como será explicado en la sección de implementación), al igual que un potenciómetro.
4
12
10
1
Q1
11
9
7
5
3
1
VCC 8
C5
22pF
6
4
2
13
14
15
16
17
18
19
20
RA0/AN0
RA1/AN1
RA2/AN2
RA3/AN3
RA4/T0CKI
RA5/AN4
RE0/RD#/AN5
RE1/WR#/AN6
RE2/CS#/AN7
30
C7 PSP7/RD7
PSP6/RD6 29
OSC1/CLKIN
PSP5/RD5
0.01uF
OSC2/CLKOUT
PSP4/RD4
RC0/T1OSO
RX/RC7
RC1/T1OSI
TX/RC6
RC2/CCP1
SDO/RC5
RC3/SCK
SDI/RC4
RD0/PSP0
RD3/PSP3
RD1/PSP1
RD2/PSP2
VSS
31
12
SV4
PIC16F877P
6
5
4
3
2
1
8
6
4
2
1
2
3
4
28
27
26
25
24
23
22
21
SV1
GND SV9 GND
1
VCC
16
14
12
10
8
6
4
2
15
13
11
9
7
5
3
1
2
3
4
5
6
7
8
C1
1uF
C2
1uF
1
SV7
C1-
4
C2+
5
C2-
J1
VCC
GND
SV5
C3
C1+
3
11
10
12
9
GND
1uF
IC2
VCC
7
5
3
1
6
4
2
GND
R2
R3
R4
R5
R6
R7
R8
R9
SV8
40
39
38
37
36
35
34
33
V+
2
V-
6
VCC
SV3
2
3
4
5
6
7
8
9
10
PGD/RB7
PGC/RB6
RB5
RB4
PGM/RB3
RB2
RB1
INT/RB0
16
17
15
13
11
9
7
5
3
1
2
18
16
GND
VCC 14
12
10
8
6
22pF
4
2
GND SV6C6
MCLR#/THV
1uF
C4
T1IN
T1OUT
T2IN
T2OUT
R1OUT R1IN
R2OUT R2IN
14
7
13
8
VCC
C9
1
SV2
IC2P
GND
GND
VDD
15uF
GND
32
11
IC1
1
2
3
4
5
6
7
8
9
15
SV11-2
3
GND
MAX232
5
4
3
2
1
GND
VO
GND
5
3
1
VI
2
0.33uF
1
1
2
3
4
SV10
C8
VCC
IC3
7805T
SV11-1
VCC
1 R1
2
VCC
GND
S1
3
4
JP1
1
3
2
4
GND
GND
Figura 1: Diagrama de Placa Controladora
2.3.
Implementación del dispositivo
A continuación se explicará como se conectarán los distintos dispositivos, su configuración y la
forma en que serán utilizados.
04-10-2009 21:34:04 D:\UC\VI Semestre\IIC2342 - Arquitectura de Computadores\Proyecto\pic.sch (Sheet: 1/1)
2.3.1.
Dispositivos análogos
Nuestro sistema utiliza dispositivos análogos para capturar información del ambiente; en particular, las intensidades sonora y lumı́nica. Estos dispositivos generan un voltaje cuyo valor fluctúa
entre 0V y 5V, representando la intensidad capturada. Posteriormente, esta intensidad es convertida
a un valor entre 0 y 127 (decimal) utilizando el módulo ADC del PIC.
Para realizar la conversión análogo/digital se deben configurar los registros ADCON0 y ADCON1 del PIC. El primero controla el módulo conversor análogo a digital A/D y el segundo configura
las funciones de los pines del puerto A (para utilizarlos como análogo o digital). La configuración
debe permitir que se reciba primero el voltaje correspondiente a la intensidad sonora para luego convertirlo a binario y almacenarlo en memoria. Posteriormente se repite el proceso para la intensidad
lumı́nica. En este caso, el registro ADCON1 indica que los pines donde se capturan las intensidades
deben ser de lectura análoga y el registro ADCON0 coordinará el proceso de conversión, indicando
cual es el pin sobre el cual se realizará la conversión y la señal de inicio para ésta.
Los dispositivos análogos a utilizar son:
1. Sensor de sonido (ZX-Sound )
5
RV1
U1
13
14
ZX-Sound
2
3
4
5
6
7
1k
RV2
8
9
10
ZX-LDR
1
1k
RB0/INT
RB1
RB2
RB3/PGM
RB4
RB5
RB6/PGC
RB7/PGD
RA0/AN0
RA1/AN1
RA2/AN2/VREF-/CVREF
RA3/AN3/VREF+
RA4/T0CKI/C1OUT
RA5/AN4/SS/C2OUT
RC0/T1OSO/T1CKI
RE0/AN5/RD
RC1/T1OSI/CCP2
RE1/AN6/WR
RC2/CCP1
RE2/AN7/CS
RC3/SCK/SCL
RC4/SDI/SDA
MCLR/Vpp/THV
RC5/SDO
RC6/TX/CK
RC7/RX/DT
RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5
RD6/PSP6
RD7/PSP7
33
34
35
36
37
38
39
40
15
16
17
18
23
24
25
26
19
20
21
22
27
28
29
30
1k
1k
1k
1k
11
12
10
9
U2
1
3
C1+
C1-
T1IN
R1OUT
T2IN
R2OUT
T1OUT
R1IN
T2OUT
R2IN
VS+
VS-
C2+
C2-
4
5
14
13
7
8
2
6
MAX232
PIC16F877A
7
8
9
10
11
12
13
14
RS
RW
E
4
5
6
1
2
3
VSS
VDD
VEE
LCD 16X2
D0
D1
D2
D3
D4
D5
D6
D7
GDM1602K
Utiliza la interfaz HD44780
OSC1/CLKIN
OSC2/CLKOUT
Figura 2: Diagrama Conexiones Externas
Código: ZX-Sound
Descripción: Este dispositivo detecta la intensidad sonora del ambiente y genera un voltaje correspondiente cuyo valor fluctúa entre 0V y 5V.
Requisitos asociados: ADC/PWM para la conversión analógica digital del voltaje entregado por el componente.
Conexión al PIC: Puerto AN0 para leer el voltaje generado desde el componente.
2. Sensor de luminosidad (ZX-LDR)
Código: ZX-LDR
Descripción: Este dispositivo detecta la intensidad lumı́nica del ambiente y genera un
voltaje correspondiente cuyo valor fluctúa entre 0V y 5V.
Requisitos asociados: ADC/PWM para la conversión analógica digital del voltaje entregado por el componente.
Conexión al PIC: Puerto AN1 para leer el voltaje generado desde el componente.
6
En base al valor convertido de las intensidades se han definido tres niveles de intensidad1 :
Baja: Entre 0 y 42
Media: Entre 42 y 85
Alta: Entre 85 y 127
Tal como se mencionó anteriormente, estos niveles permiten al sistema decidir cuál es la siguiente
lista de reproducción y el volumen de ésta.
2.3.2.
Display LCD
Código: GDM1602K
Descripción: Display de 16 x 2 caracteres (2 lı́neas de hasta 16 caracteres). Dispone de once
pines para la comunicación con el PIC y utiliza el chip HD44780 para su configuración y
escritura.
Requisitos asociados: Entrada/Salida DIO Bidireccional. PIC envı́a instrucciones al display y
éste a su vez notifica a través del RS/Flag al PIC acerca de la completitud de la instrucción.
Conexión al PIC: Pines del display (D7,D6,D5,D4,RS,RW,E) conectados al Puerto D del PIC
(RD7,RD6,RD5,RD4,RD3,RD2,RD1).
Este dispositivo es utilizado con el fin de mostrar información sobre la canción actual que se
está reproduciendo en el computador conectado al dispositivo. Además indica el valor actual del
timer que permite detener o iniciar automáticamente la reproducción de música.
Este display posee once pines configuración: RS/Flag, Read/Write, Enable y Datos (D0 A D7).
De todas formas ofrece la posibilidad de ser configurado y utilizado haciendo uso de siete pines, para
lo cual es necesario enviar dos valores consecutivos por instrucción. En particular, hemos optado por
la segunda opción a fin de utilizar una menor cantidad de pines en el PIC, y porque no tenı́amos la
cantidad suficiente de pines en un mismo puerto para enviar la instrucción completa (de 11 bits de
largo). Las palabras de operación serán enviadas desde el Puerto D del PIC, para lo cual debemos
configurar el registro TRISD de tal forma que los pines RD4, RD5, RD6 Y RD7 sean de salida digital.
El proceso de escritura es guiado por las instrucciones enviadas desde el PIC y consiste en la
siguiente secuencia:
1. Inicializar el display, conectándolo a la fuente de voltaje y activando Enable.
2. Configurar el display para recibir operaciones de 4 bits y utilizar ambas lı́neas.
1
Estos valores están sujetos a cambios futuros al calibrar los dispositivos.
7
3. Prender el cursor e iniciar el modo bajo el cual éste se mueve automáticamente cada vez
que se escribe una instrucción en la memoria DDRAM. En la práctica, esto es cada vez que
ingresamos la instrucción para escribir un caracter.
4. Escribir datos en la memoria DDRAM. Este es el paso en el cual indicamos el caracter a
imprimir en pantalla.
5. Continuar escribiendo datos hasta completar la lı́nea y saltar a la siguiente lı́nea.
6. Continuar escribiendo hasta terminar de imprimir el nombre de la canción y el estado del
timer.
7. Resetear el cursor, indicándole que vuelva a la posición inicial (a fin de sobreescribir los datos
mostrados en pantalla cuando cambie la canción)
2.3.3.
Pulsadores
Descripción: Botones que entregan un voltaje alto (5V) cuando detectan una pulsación.
Requisitos asociados: Entrada DIO en el PIC e interrupciones.
Conexión al PIC: Los cuatro botones a utilizar están conectados a pines del puerto B, cuyos
cambios puede ser detectados para lanzar una interrupción (RB4, RB5, RB6 Y RB7)
Nuestro sistema utiliza cuatro pulsadores (pushbuttons) para controlar la reproducción de
música y el timer del dispositivo: play/pause, backward, forward, timer. Cada vez que uno de estos es
pulsado, se envı́a un voltaje positivo al PIC. Para leer estas señales como una entrada digital, se debe
configurar el registro TRISB de tal forma que los pines asociados a los botones sean de input digital.
Además de leer el Puerto B como entradas digitales, se deben activar las interrupciones al
pulsarse un botón. Para ésto configuramos el registro INTCON indicándole que permita realizar
interrupciones (activando el bit GIE de INTCON) y que éstas ocurran cada vez que se detectan
cambios en los pines RB4 a RB7 (activando el bit RBIE de INTCON).
Cada vez que el usuario pulse un botón, se ejecutará una interrupción la cual deberá llevar a la
ejecución de una subrutina. Esta subrutina se encarga de leer cuál fue el botón pulsado y en función de éste determina la próxima acción del sistema (Iniciar/Detener, Próxima canción, Canción
anterior, Activar Timer). En caso de que se pulse el botón de Activar Timer, se deberá habilitar la
interrupción de Timer (activando el bit TOIE de INTCON) y en la subrutina se deberá asignar el
tiempo en el cual se activará la interrupción. El tiempo se determina a partir de la cantidad de veces
que el usuario pulsó el botón de Activar Timer (por cada pulsación se incrementa el tiempo en una
cantidad predefinida). Después de cierta cantidad de pulsaciones se deshabilitará la interrupción de
Timer, a fin de que el sistema no cambie su estado actual transcurrido cierto tiempo (es decir, no
se iniciará/detendrá automáticamente la reproducción de música).
8
Figura 3: Diagrama del Max232
2.3.4.
PIC
Código: PIC16F877A
Timers: 2 x 8-bit, 1 x 16-bit
ADC: 8 ch, 10-bit
Cristal (externo) de 20 Mhz
Permite controlar los diferentes componentes que componen el sistema. La forma en que será utilizado ha sido explicada en la descripción de la implementación y uso de los diferentes componentes.
2.3.5.
MAX232 y Conexión Serial
Descripción: El MAX232 tiene como función convertir las señales del puerto serial RS-232 a
TTL para ser usadas por el PIC y viceversa. Tiene 16 pines que pueden verse en la figura 3.
Requisitos asociados: Comunicación bidireccional con PC.
Conexión al PIC: Pines T1IN y R2OUT del MAX232 a los pines RC6 y RC7 del PIC respectivamente (ver cuadro 1).
El puerto serial se usará tanto para cargar nuestro programa, como para comunicarnos con el
PC para enviar la información del nivel de reproducción actual y para recibir el tı́tulo de la canción.
Para el detalle de conexión de todos sus pines, ver cuadro 1.
2.3.6.
Elementos Adicionales
Regulador de voltaje El regulador de voltaje nos permite mantener un voltaje controlado para
los componentes.
9
Pin
C1+
VS+
C1-
C2+
C2-
VS-
T2OUT
R2IN
R2OUT
T2IN
T1IN
R1OUT
R1IN
T1OUT
GND
Vcc
Descripción
Conexion a un condensador necesaria para su
funcionamiento
Voltaje de salida positivo (15-0.3[V]). Se conecta un condensador (1uF)
Conexion a un condensador
(1uF) necesaria para su funcionamiento
Conexion a un condensador
(1uF) necesaria para su funcionamiento
Conexion a un condensador
(1uF) necesaria para su funcionamiento
Voltaje de salida negativo (0.3 15[V]) Se conecta un condensador (1uF)
Salida EIA-232
Entrada EIA-232 2
Salida TTL/CMOS
Entrada TTL/CMOS
Entrada TTL/CMOS
Salida TTL/CMOS
Entrada EIA-232 1
Salida EIA-232
Cable a tierra
Entrada de corriente continua. Entre 4.5 y 5.5 [V]
Conexión
C1-
Tierra
C1+
C2-
C2+
Tierra
No Conectado
No Conectado
No Conectado
No Conectado
Pic16F877A (RC6)
Pic16F877A (RC7)
Puerto serial
Puerto serial
Tierra
Fuente de poder
Cuadro 1: Descripción de los pines max232
10
3.
3.1.
Anexos
Anexo 1: Diagrama de flujo circuito LEDs
11
Figura 4: Diagrama de flujo LEDs
12
Descargar