Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Memoria Completa Reproductor MP3 PDF
Memoria Completa Reproductor MP3 PDF
Agradecimientos
A mis padres, por su apoyo, nimo y paciencia, y por haber soportado
estoicamente el desorden de mi habitacin todos estos meses.
A Paola, por apoyarme en todo momento, estar conmigo y soportar esos largos
meses sin apenas salir.
A mis compaeras de trabajo y todos los amigos que insistieron, casi a diario, en
que fuese constante, siento no haberos hecho ms caso.
Muy especialmente a mis abuelos, que no han podido ver este proyecto
concluido.
ndice de contenido
1.Introduccin......................................................................................................................15
1.1 Presentacin..............................................................................................................15
1.2 Objetivos...................................................................................................................16
1.3 Contenidos................................................................................................................17
2. Estado de la tecnologa....................................................................................................18
2.1 Contenido..................................................................................................................18
2.2 Reproductores de MP3.............................................................................................18
2.2.1 Los primeros decodificadores...........................................................................18
2.2.1 Los primeros reproductores..............................................................................19
2.2.2 Clasificacin de los reproductores....................................................................21
2.2.3 Reproductores no comerciales..........................................................................24
2.3 Formato MP3............................................................................................................25
2.3.1 Orgenes del MP3.............................................................................................25
2.3.2 Principios psicoacsticos..................................................................................26
2.3.3 Introduccin a la compresin de audio MPEG ................................................29
2.3.4 Algoritmo de codificacin MPEG-1 Layer 3....................................................30
2.3.5 Algoritmo de decodificacin MPEG-1 Layer 3................................................33
2.4 Tarjetas de memoria no voltil..................................................................................36
2.4.1 Memorias Flash.................................................................................................36
2.4.2 Tipos de tarjetas................................................................................................38
2.5 El interfaz de comunicacin USB.............................................................................42
2.5.1 Orgenes del USB.............................................................................................43
2.5.2 Caractersticas del USB....................................................................................43
2.5.3 Topologa...........................................................................................................46
2.5.5 Nivel fsico........................................................................................................46
2.5.6 Protocolo...........................................................................................................47
2.5.7 Tipos de transferencias en USB 2.0..................................................................48
2.6 Microcontroladores...................................................................................................50
2.6.1 Definicin y caractersticas...............................................................................50
2.6.2 Seleccin del microcontrolador........................................................................51
2.6.3 Aplicaciones......................................................................................................51
3. Diseo y desarrollo del hardware....................................................................................52
3.1 Introduccin..............................................................................................................52
3.2 Seleccin de componentes........................................................................................52
3.2.1 El microcontrolador..........................................................................................53
3.2.2 El mdulo USB.................................................................................................55
3.2.3 La tarjeta de memoria.......................................................................................57
3.2.4 El chip decodificador de MP3...........................................................................58
3.2.5 La pantalla LCD................................................................................................58
3.3 Programa, herramientas y metodologa utilizada.....................................................60
3.3.1 Diseo...............................................................................................................60
3.3.2 Fabricacin........................................................................................................61
3.3.3 Testeo................................................................................................................62
3.4 Diseo de la PCB......................................................................................................63
3.4.1 Alimentacin.....................................................................................................63
3.4.2 Microcontrolador..............................................................................................70
3.4.3 Mdulo USB.....................................................................................................72
3.4.4 Decodificador VS1001k....................................................................................78
5
ndice de imgenes
Imagen 2.1 Primer chip decodificador de MP3 de Micronas (1994)..................................18
Imagen 2.2 Primer prototipo de un reproductor de MP3 sin partes mviles (1994)...........19
Imagen 2.3 Reproductor MPMan F10.................................................................................19
Imagen 2.4 Interior del reproductor MPMan F10...............................................................19
Imagen 2.5 Reproductor Diamon Rio PMP300..................................................................20
Imagen 2.6 Interior del reproductor Diamon Rio PMP300.................................................20
Imagen 2.7 Reproductor con disco duro PJB-100 (1999)...................................................20
Imagen 2.8 Reproductor MP3 de CDs Mambo-X...............................................................20
Imagen 2.9 Nevera Centrlpark de Whirpool, con reproductor de DVD y MP3..................21
Imagen 2.10 Umbrales de sensibilidad y auditivo [Hacker00]...........................................27
Imagen 2.11. Bandas crticas aproximadas [Pan93]............................................................27
Imagen 2.12 . Umbral en silencio y umbral de enmascaramiento ......................................28
Imagen 2.13 Umbrales de enmascaramiento temporal [Hung]...........................................28
Imagen 2.14 Estructura de codificacin MP3[Lagerstm01].............................................30
Imagen 2.15 Representacin del filtro................................................................................30
Imagen 2.16 Anchos de banda del filtro MPEG/Audio vs ancho de las bandas
crticas[Pan95].....................................................................................................................31
Imagen 2.17 Ecuacin de la transformacin MDCT [Hung]..............................................31
Imagen 2.18 Formato del marco MP3.................................................................................32
Imagen 2.19 Ejemplo de bit reservoir.................................................................................33
Imagen 2.20 Diagrama de bloques del decodificador MPEG-1 Layer 3 ...........................33
Imagen 2.21 Diagrama de bloques de la decodificacin del flujo de datos........................33
Imagen 2.22 Ecuacin del calculo de desescalado de las lneas de frecuencia...................34
Imagen 2.23 Diagrama de bloques del Mapeo de la frecuencia al tiempo..........................35
Imagen 2.24 Expresin analtica del MDCT inverso..........................................................35
Imagen 2.24 Evolucin prevista de la memoria NAND flash segn la capacidad y tipo de
aplicacin [Samsung]..........................................................................................................37
Imagen 2.25 Evolucin prevista de la memoria NAND flashsegn la capacidad, el tamao
y la velocidad [Samsung]....................................................................................................38
Imagen 2.26 Tarjeta CompactFlash.....................................................................................38
Imagen 2.27 Tarjeta SmartMedia........................................................................................39
Imagen 2.28 Tarjeta Memory Stick Pro Duo MagicGate....................................................40
Imagen 2.29 Tarjeta xD-Picture...........................................................................................41
Imagen 2.30 Tarjeta Multimedia Card.................................................................................41
Imagen 2.31 Tarjetas SD, MiniSD y MicroSD....................................................................42
Imagen 2.32 Terminales MicroUSB A y MicroUSB B.......................................................43
Imagen 2.33 Topologa USB [Axelson05]..........................................................................46
Imagen 2.34 Cable para low speed[Anderson01]...............................................................47
Imagen 2.35 Cable para full y high speed[Anderson01].....................................................47
Imagen 3.3 Mdulo DLP-USB245M-G..............................................................................57
Imagen 3.6 Pantalla LCD con controlador Philips PCD8544.............................................59
Imagen 3.7 Materiales para realizar el hardware.................................................................60
Imagen 3.8 Procesos para el diseo del circuito.................................................................61
Imagen 3.9 Diseo modular del circuito.............................................................................63
Imagen 3.10 Control de alimentacin USB.........................................................................65
Imagen 3.11 Circuito de carga.............................................................................................66
Imagen 3.12 Funcionamiento del diodo Zener como regulador..........................................67
Imagen 3.13 Regulador de tensin TC115..........................................................................68
9
11
12
ndice de tablas
Tabla 2.1 Diferencias entre las tecnologas NOR y NAND................................................37
Tabla 2.2 Comparacin de los interfaces ms populares [Axelson05]................................45
Tabla 2.3 Comparacin de los tipos de transferencia [Axelson05].....................................49
Tabla 3.1 Caractersticas de la familia 18Fxx2...................................................................55
Tabla 3.2 Comparacin de diferentes integrados para el interfaz USB...............................56
Tabla 3.4 Comparacin de tarjetas de memoria..................................................................57
Tabla 3.5 Comparacin de decodificadores de MP3...........................................................58
Tabla 3.6 Comparativa de pantallas LCD............................................................................59
Tabla 3.7 Rango de tensiones de los componentes..............................................................64
Tabla 3.8 Consumo mximo de los componentes...............................................................64
Tabla 3.9 Conexiones del microcontrolador........................................................................72
Tabla 3.10 Explicacin del pinout del mdulo USB...........................................................75
Tabla 3.11 Pinout de la tarjeta Multimedia Card.................................................................82
Tablas 4.1 Funciones SDI....................................................................................................91
Tabla 4.2 Registros internos del decodificador...................................................................91
Tabla 4.3 Descripcin de los bits del registro MODE.........................................................92
Tabla 4.4 Frecuencias segn los bits del registro AUDATA...............................................93
Tabla 4.5 Bits de los registros HDAT0 y HDAT1...............................................................94
Tabla 4.6 Funciones SCI......................................................................................................96
Tabla 4.7 Comandos ms utilizados del protocolo SPI.......................................................99
Tabla 4.8 Comparacin de las versiones de FAT...............................................................104
Tabla 4.15 Lneas de comunicacin de la pantalla LCD...................................................109
Tabla 4.16 Juego de instrucciones de la pantalla LCD......................................................111
Tabla 4.17 Estructura de la etiqueta ID3v1.......................................................................116
Tabla 4.18 Comandos del protocolo de comunicacin......................................................120
Tabla 6.1 Precio del Software............................................................................................146
Tabla 6.2 Precio de las herramientas.................................................................................147
Tabla 6.3 Precio de componentes......................................................................................148
Tabla 6.4 Valoracin del coste de mano de obra...............................................................150
Tabla 6.5 Coste total del proyecto.....................................................................................150
Tabla II.1 Estructura del Master Boot Record...................................................................171
Tabla II.2 Estructura del registro de particin en el MBR................................................172
Tabla II.3 Estructura del sector de arranque de FAT16.....................................................173
Tabla II.4 Calculo de la posicin de los elementos de una particin................................173
Tabla II.5 Tamaos de cluster segn tamao de particin.................................................175
Tabla II.6 Estructura de entrada de directorio...................................................................175
13
14
1.Introduccin
1.1 Presentacin
Actualmente los sistemas multimedia estn teniendo una gran importancia y una
amplia variedad de dispositivos incluyen entre sus caractersticas la reproduccin de audio
y/o vdeo. Cada vez ms estos dispositivos admiten una mayor variedad de formatos y
soportes de almacenamiento como discos duros, CDs, DVDs, memorias Flash, etc.
Muchos de los dispositivos poseen una capacidad de almacenamiento limitado lo que hace
necesario la utilizacin de formatos comprimidos que permitan almacenar estos elementos
multimedia con una calidad aceptable y en muchos casos sin prdida aparente de sta.
De la necesidad de obtener un formato de audio comprimido de alta calidad
surgi el estndar MP3, gracias a l se puede obtener audio comprimido a un ratio
aproximado de 1:12 con respecto al audio en PCM1 y con perdidas poco apreciables.
Gracias a este nivel de compresin han surgido gran cantidad de dispositivos que pueden
ser utilizados como reproductores porttiles de audio, como telfonos mviles, PDAs y
gran cantidad de reproductores de alta capacidad basados en memoria Flash, disco duro o
CD. Pero el formato MP3 no ha sido slo utilizado en dispositivos porttiles, hoy en da
puede encontrarse en reproductores para coche, mini cadenas, reproductores de DVD,
duchas, frigorficos, centralitas telefnicas, etc.
Otra ventaja del tamao reducido es que es muy adecuado para transmisiones
entre dispositivos ya sea a travs de USB, redes cableadas o inalmbricas. Esto permite al
MP3 ser reproducido de forma remota, de hecho el MP3 es uno de los principales
formatos para la transmisin de audio por Internet.
El propsito general de este proyecto es el desarrollo de un dispositivo hardware
capaz de reproducir audio en formato MP3 almacenado de forma local en el propio
dispositivo y de forma remota siendo transmitido desde el ordenador a travs del interfaz
USB.
1 Pulse Code Modulation, representacin digital de una seal analgica donde la magnitud de la seal es
muestreada y cuantificada a intervalos regulares.
15
1.2 Objetivos
En el proyecto se pretende desarrollar un sistema que conste de un dispositivo
hardware y una aplicacin para el control y transmisin de datos desde el ordenador. El
objetivo principal de este proyecto es:
El desarrollo de un dispositivo hardware que reproduzca ficheros en formato
MP3 y pueda ser utilizado tanto como reproductor porttil como perifrico conectado a
un ordenador. El desarrollo de una aplicacin a travs de la cual se podr controlar el
dispositivo desde el ordenador cuando est conectado a ste, y el diseo del protocolo de
comunicacin entre el dispositivo y la aplicacin.
A continuacin se enumeran las caractersticas que tendr el dispositivo:
16
configuraciones, como el control del volumen. En lneas generales deber permitir realizar
las caractersticas de la aplicacin descritas.
1.3 Contenidos
La memoria se ha dividido en diferentes captulos para intentar mostrar de forma
clara cada una de las partes del proyecto. Estos captulos desarrollan los siguientes
contenidos:
17
2. Estado de la tecnologa
2.1 Contenido
En este captulo se har una pequea explicacin de las tecnologas utilizadas en
el presente proyecto. Primero se hablar de los reproductores MP3 existentes, con un
resumen de su historia y una clasificacin segn caractersticas. Despus se explicar el
funcionamiento de la codificacin MP3, con una pequea introduccin a su origen, los
principios psicoacsticos en los que se basa y un resumen del algoritmo de codificacin y
decodificacin del formato.
Los tres siguientes apartados hacen referencia al hardware utilizado, el USB
como interfaz de comunicacin, las tarjetas de memoria como medio de almacenamiento
y el microcontrolador, utilizado para gobernar el sistema.
18
Imagen 2.2 Primer prototipo de un reproductor de MP3 sin partes mviles (1994)
19
A pesar de ser el primer reproductor en salir al mercado poco meses despus salio
el reproductor que fue lder en ventas y regalo por excelencia las navidades de ese ao, el
Diamon Rio PMP300 (Imagen 2.5 e Imagen 2.6). Su popularidad se debi a un mejor
diseo, una pantalla LCD mayor y unos mejores controles. Utiliza tambin el MAS3507 y
posee una memoria interna de 32MB y, al igual que el MPMan F20, un slot de expansin
para tarjetas SmartMedia, se conecta al PC mediante un interfaz paralelo propietario y se
alimenta mediante una pila AA. En 1998 Recording Industry Association of America
demand a Diamond por violacin del Audio Home Recording Act y lleg a paralizar la
distribucin del dispositivo, los jueces fallaron a favor de Diamon allanando el camino de
los reproductores MP3 porttiles [MPManReview].
El primer reproductor basado en disco duro fue el PJB-100 (Imagen 2.7) diseado
por HanGo Electronics Co., Ltd. y lanzado a finales de 1999. Fue distribuido por Compaq,
usaba como CPU/DSP el Motorola 56309 DSP con 12MB de RAM, un interfaz USB 1.1 y
contaba inicialmente con 4,8GB de almacenamiento. Puede reproducir ficheros de 8 a
320Kbit/s a muestreo de 44.1KHz, la decodificacin MP3 la hace la misma CPU que
funciona a 33MHz y posee una pantalla LCD de 12864 pxeles [PJB100]. Poco despus
aparecieron otros reproductores de Creative y Archos tambin basados en disco duro. En
ese mismo ao, 1999, sali al mercado el Mambo-X (Imagen 2.8), primer reproductor de
MP3 que usaba el CD como almacenamiento y que permite adems reproducir CDs de
audio.
20
5 System on a Chip, es la inclusin de todo un sistema o dispositivo dentro de un circuito integrado. Los
sistemas basados en SoC suelen necesitar tan solo un pequeo nmero de elementos pasivos externos.
22
Codificaciones soportadas
La codificacin de audio ms utilizada y extendida en los reproductores es el
MP3 pero existen otros formatos con calidades similares o superiores que, cada vez ms,
estn siendo soportadas por los reproductores. De hecho es muy comn que las ltimas
versiones de los integrados decodificadores de MP3 incluyan alguno de estos otros
formatos. Entre los formatos de codificacin soportados por los reproductores podemos
encontrar adems del MP3:
RealAudio, es un formato de audio propiedad de RealNetworks utilizado
principalmente para la retransmisin de audio en tiempo real por Internet.
Windows Media Audio, es un formato propiedad de Microsoft conocido como
WMA, es un competidor directo del MP3 y segn Microsoft con una calidad
superior a este. Adems este formato posee otras caractersticas como el poder
incluir tecnologa DRM6 en los ficheros. Tiene una variante de compresin sin
perdidas denominada WMA Lossless.
AAC o Advanced Audio Coding, es un formato desarrollado entre varias
compaas, entre ellas: Dolby, Fraunhofer IIS, AT&T, Sony y Nokia. Fue
declarado oficialmente estndar en 1997 y est incluido en las especificaciones
MPEG2 parte 7 y MPEG4 parte 3 aunque se suele hacer referencia a ella como
MPEG4 AAC o simplemente AAC. Puede incluir DRM pero no es muy comn.
Vorbis, formato de audio de cdigo abierto surgido a partir del anuncio en 1998
de Fraunhofer Gesellschaft de cobrar royaltys por todos los codificadores o
decodificadores de MP3 fuesen gratuitos o no.
MusePack o MPC, otro formato de cdigo abierto especialmente desarrollado
para bitrates altos.
Formatos sin prdida como: Apple Lossless y FLAC.
Otros formatos menos comunes como: Speex, WavPack, Shorten, etc. pueden
ser reproducidos en un iPod7 cambindole el firmware por uno no oficial
denominado Rockbox.
23
altos o no soportar VBR9. No obstante los chips decodificadores actuales suelen soportar
todas estas variantes.
Funcionalidades
Adems de todas estas clasificaciones podemos ordenar los reproductores segn
tengan o no alguna funcionalidad especifica, stas pueden ser muy variadas. Algunos
ejemplos de estas son:
Capacidad de leer ID3
Funcin de Karaoke para ver la letra de las canciones.
Conexin a red y posibilidad de reproducir radio por Internet.
Organizaciones especiales automticas: por lbum, autor, gnero o ao.
Etc.
9 Variable Bit Rate o tasa de bits variable, permite que no todo el fichero este codificado con la misma tasa
de bits, usando mayores cuando sea necesario y menores cuando no (como en silencios).
24
25
26
Enmascaramiento simultneo10
El odo realiza pequeos anlisis de las bandas crticas donde se realizan
transformaciones tonotpicas en la membrana basilar11. Los espectros de energa no se
representan en una escala de frecuencias lineal sino en bandas de frecuencia limitada
llamadas bandas crticas (Imagen 2.11). El sistema de audicin puede describir como un
banco de filtros pasa banda, consistentes en filtros pasa banda fuertemente solapados con
anchos de banda del orden de los 50Hz a 100Hz para seales por debajo de 500Hz y hasta
5kHz para seales de frecuencias altas.
27
Enmascaramiento temporal
Adems del enmascaramiento simultneo en el domino de la frecuencia, el
enmascaramiento temporal, tambin llamado enmascaramiento no simultneo, juega un
rol importante en la percepcin auditiva humana en el domino del tiempo. Cuando dos
seales aparecen en un corto intervalo de tiempo la seal ms fuerte puede enmascarar a
la ms dbil incluso si la enmascarada precede a la enmascaradora.
Dos efectos de enmascaramiento temporal ocurren antes y despus de una seal
fuerte. Si la seal es enmascarada despus de una seal fuerte se llama postenmascaramiento, y si es enmascarada a continuacin se le denomina preenmascaramiento. Los tiempos del pre y post enmascaramiento son diferentes, la zona de
pre-enmascaramiento es aproximadamente 20ms antes de la seal enmascaradora, y la
zona de post-enmascaramiento 160ms despus [Hung], como puede verse en la Imagen
2.13.
28
12 La explicacin de la codificacin MP3 se realiza como referencia ya que en este caso se ha utilizado un
circuito integrado para la decodificacin MP3.
13 En el estndar MPEG-2 se aadieron las frecuencias 16, 22,05 y 24kHz para tasas de bit bajas, y en el
estndar no oficial MPEG 2.5 se aadieron 8.000, 12.000 y 11.025Hz para tasas an ms bajas.
29
30
Imagen 2.16 Anchos de banda del filtro MPEG/Audio vs ancho de las bandas crticas[Pan95]
Bloque FFT
Al mismo tiempo el bloque FFT transforma los grnulos de 567 muestras al
dominio de la frecuencia mediante una trasformada de Fourier.
Umbrales de enmascaramiento
Las muestras en el dominio del tiempo procedentes del bloque FFT pasan a travs
de un modelo psicoacstico para determinar la tasa de energa de cada umbral de
enmascaramiento para cada subbanda. Esto es utilizado por el cuantizador para determinar
cuantos bits son necesarios para codificar cada muestra. Tambin se utilizan para
determinar si se necesitan cambios en las ventanas del bloque MDCT.
31
Escalado y cuantizado
Los umbrales de enmascaramiento se usan para determinar iterativamente cuantos
bits son necesarios en cada banda crtica para codificar las muestras y por tanto el ruido de
cuantizacin no sea audible. Generalmente el codificador tiene que satisfacer unos
requerimientos de tasa de bits fijados [Lagerstm01].
Codificacin Huffman
En este bloque se realiza una codificacin de entropa de las lneas de frecuencia
cuantizadas usando el algoritmo de codificacin Huffman basado en 32 tablas Huffman.
Esta codificacin realiza una compresin sin prdidas y por tanto reduce la cantidad de
datos sin prdida de calidad [Hung].
Formateo del flujo de bits
El ltimo bloque del proceso de codificacin se encarga de producir un flujo de
bits que cumpla con MPEG-1 Layer 3. El flujo de bits est particionado en marcos, cada
uno representa 1152 muestras de audio. Cada marco esta compuesto por las lneas de
frecuencia codificadas con Huffman, informacin secundaria y una cabecera del marco
(Imagen 2.18).
Los marcos pueden no ser totalmente independientes entre s debido al uso de bit
reservoir que es un buffer o deposito comn de bits de los que se puede disponer para
codificacin extra (Imagen 2.19). Esto hace que los marcos no sean totalmente
independientes unos de otros, en el peor de los casos se pueden necesitar 9 marcos para
empezar la decodificacin. El codificador puede donar bits al bit reservoir cuando
necesita menos bits que la media de nmero de bits para codificar el marco. A su vez
cuando el codificador necesita ms nmero de bits puede tomarlos del bit reservoir.
32
33
Sincronizacin
El propsito de este bloque es recibir el flujo de datos de entrada, identificar el
contenido y pasar la informacin a los siguientes bloques del decodificador.
Decodificacin Huffman
En este bloque se realiza la decodificacin de los bits de cdigo Huffman. Debido
a que el cdigo Huffman es de longitud variable, una nica palabra del cdigo en medio
del los bits del cdigo no puede ser identificada sin empezar a decodificar desde un punto
en el cdigo de bits conocido por ser el principio de la palabra del cdigo.
Informacin para la decodificacin Huffman
Este bloque sirve para iniciar todos los parmetros necesarios en el bloque de
decodificacin Huffman para que la decodificacin pueda efectuarse correctamente. La
primera tarea a realizar es obtener todas las caractersticas de los bits del cdigo Huffman
de la informacin secundaria.
Decodificacin del factor de escalado
Decodifica los factores de escalado, la entrada del bloque es la informacin de los
factores de escalado y la salida se utiliza en el bloque de cuantizacin inversa.
2.3.5.2 Cuantizacin inversa.
Este bloque restablece los datos perceptualmente idnticos de las lneas de
frecuencia generados por el bloque MDCT del codificador. El desescalado se basa en las
lneas de frecuencia cuantizadas y escaladas procedentes de la codificacin Huffman y del
factor de escalado reconstruido en el bloque de decodificacin. La ecuacin de
desescalado puede verse en la Imagen 2.22.
34
Inversin de frecuencia
Sntesis del banco de filtro de polifase
Cada vez que a las 32 muestras de cada 32 subbandas se le aplica la sntesis del
banco de filtro de polifase se calculan 32 muestras de audio consecutivas.
35
36
Caracterstica
Capacidad
XIP*
Velocidad
Fiabilidad
Ciclos de borrado
Tiempo de vida
Mtodo de acceso
Uso
Precio
NOR
NAND
Hasta 256 MB
Si
Borrados muy lentos
Escrituras lentas
Lecturas rpidas
Estndar:
Tiene problemas de inversin
de bits, menos de 10% que las
NAND
Hasta 16GB
No
Borrado rpido
Escritura rpida
Lectura rpida
Baja:
Requiere algoritmos de deteccin y
correccin de errores debido a la
inversin de bits.
Requiere control de sectores errneos
100.000 1.000.000
10 veces ms que las NOR
10.000 - 100.000
Menos de un 10% que las
NAND
Aleatorio
Almacenamiento de
cdigo
Almacenamiento de datos
(baja capacidad)
Alto
Secuencial
Almacenamiento de datos
Bajo
Imagen 2.24 Evolucin prevista de la memoria NAND flash segn la capacidad y tipo de aplicacin
[Samsung].
37
Imagen 2.25 Evolucin prevista de la memoria NAND flashsegn la capacidad, el tamao y la velocidad
[Samsung]
38
Son tarjetas que actualmente estn siendo muy utilizadas, tanto en computadores
porttiles como en cmaras de vdeo, por lo que su uso est muy extendido y el precio es
relativamente bajo.
Tarjeta SmartMedia
La tarjeta SmartMedia (Imagen 2.27) lanzada en el verano de 1995 creada por
Toshiba, originalmente llamada Solid State Floppy Disk Card (SSFDC). Se utilizan en
dispositivos de porttiles, sobre todo en cmaras de fotos, pero Actualmente su uso est
poco extendido. Fue respaldada por Fuji y Olympus, pero ambas la han sustituido, Fuji se
ha pasado a xD y Olympus a Secure Digital.
39
40
Existen gran cantidad de variantes de la multimedia card, como secureMMC, RSMMC, MMCmicro, MMCmobile y MMCplus. Dependientes todas de Multimedia Card
Association. Adems, a partir de ella se desarroll la tarjeta secure digital, con sus
correspondientes variantes. El nmero de pines va desde los 7 de la multimedia card
original hasta los 14 de la tarjeta MMCplus.
41
42
14 USB Implementers Forum, es una organizacin sin nimo de lucro formada por varias empresas que
promueve el uso del USB.
43
de
la
de
su
ni
Bajo coste
A pesar de una mayor complejidad del USB que la de los interfaces anteriores,
tanto los componentes como los cables son baratos. Un dispositivo con interfaz USB
cuesta casi lo mismo o menos que uno equivalente con un interfaz ms antiguo.
Bajo consumo
El cdigo y circuitos de ahorro de energa pueden apagar automticamente un
perifrico USB cuando no se est utilizando.
44
Formato
N de
dispositivos
(Mximos)
Distancia
(Mximo,
metros)
Velocidad
(Mxima, bps)
Uso comn
USB
Serie,
asncrona
127
Ethernet
Serie
1024
488 m
10G
Red de
comunicaciones
IEEE-1394b
(FireWire 800)
Serie
64
91 m
3.2G
Vdeo y sistemas de
almacenamiento
IEEE-488
(GPIB)
Paralelo
15
18 m
8M
Instrumentacin
IrDA
Serie
infrarrojos,
asncrona
2m
16M
Impresoras y PDAs
I2C
Serie, sncrona
40
5.5 m
3.4M
Comunicacin de
microcontroladores
Microwire
Serie, sncrona
3m
2M
Comunicacin de
microcontroladores
MIDI
Bucle de
corriente
15 m
31.5k
Msica
Puerto
paralelo
Paralelo
2 (8 con daisychain)
3-9 m
8M
Impresoras,
escneres, unidades
de disco.
RS-232
Serie,
asncrona
15-30 m
20k - 115k
Mdem, ratn e
instrumentacin
RS-485
Serie,
asncrona
32
1220 m
10M
Adquisicin de
datos y control de
sistemas
SPI
Serie, sincrona
3m
2.1M
Comunicacin de
microcontroladores.
Tabla 2.2 Comparacin de los interfaces ms populares [Axelson05]
45
2.5.3 Topologa
La topologa del bus es una estrella con niveles, en el centro de cada estrella hay
un concentrador y cada punto de la estrella es un dispositivo que se conecta a un puerto en
el concentrador, como se observa en la Imagen 2.33. El nmero de puntos en cada estrella
puede variar, un concentrador tiene normalmente 2, 4 o 7 puertos. El USB permite hasta 6
niveles, y en el nivel 0 (Raz o Root) se encuentra el Controlador USB que controla todo
el trfico de informacin en el bus. Solo un dispositivo puede comunicarse con el
controlador del host a la vez, por lo que se suelen tener varios controladores de host para
incrementar el ancho de banda disponible.
46
2.5.6 Protocolo
El protocolo de nivel fsico se basa en tokens (testigos). El controlador USB
transmite tokens que incluyen la direccin del dispositivo destino, y el dispositivo que
detecta su direccin en el token responde y lleva a cabo la transferencia de datos con el
controlador. De esta manera, el Controlador USB maneja la parte ms compleja del
protocolo, generando los tokens de transferencias de datos a 480 Mbps, 12 Mbps o a 1,5
Mbps, y controlando la conexin lgica entre el sistema y las funciones internas de cada
dispositivo. El controlador USB tambin maneja el consumo en el bus a travs de las
funciones Suspender/Continuar, por medio de las cuales controla los modos
Reposo/Activo de los dispositivos. Esta arquitectura permite el diseo de dispositivos
extremadamente simples y de bajo coste.
USB divide el tiempo en espacios de 1 ms denominados marcos, durante las
cuales se llevan a cabo las comunicaciones a travs de Transacciones, las cuales se
componen a su vez de Paquetes. Existen tres tipos de paquetes: Token, Dato y Validacin
(Handshake):
47
48
Iscrona
Las transferencias iscronas tienen garantizado el tiempo de entrega de los datos
pero no la correccin de errores. Se utiliza para la transmisin de vdeo y audio en tiempo
real. Esta transferencia es la nica que no soporta retransmisin automtica de los datos
recibidos con errores ya que errores ocasionales son aceptables. Solo los dispositivos full
speed y high speed tienen este tipo de transferencia.
Tipo de transferencia
Control
Masiva
Interrupcin
Iscrona
Uso comn
Identificacin y
configuracin
Impresoras,
escaneres y
discos
Ratones,
teclados
Flujo de audio y
vdeo
Necesario
Si
No
No
No
Si
No
Si
No
15.872
53.248
24.576
24.576
Bytes/milisegundos de datos
por transferencia. Mximo
posible por tubera (low speed)*
832
2116
64
1023
Bytes/milisegundos de datos
por transferencia. Mximo
posible por tubera (low speed)*
24
No permitida
0,8
No permitida
Bytes/milisegundos de datos
por transferencia. Mximo
posible por tubera (high
speed)*
10% en low/full
speed, 20% en
high speed
Ninguno
Si
Si
Si
No
Mensaje
Flujo
Flujo
Flujo
No
No
No
Si
No
No
Si
Si
Correccin de errores
Mensajes o flujos de datos
Entrada o salida
49
2.6 Microcontroladores.
2.6.1 Definicin y caractersticas
Un controlador el dispositivo que se emplea para gobernar de uno o varios
procesos. Aunque el concepto de controlador ha permanecido invariable a travs del
tiempo, su implementacin fsica ha variado frecuentemente. Inicialmente los
controladores se construan exclusivamente con componentes de lgica discreta,
posteriormente se emplearon los microprocesadores, que se rodeaban con chips de
memoria y unidades de E/S sobre una tarjeta de circuito impreso. Actualmente todos los
elementos del controlador se han podido incluir en un circuito integrado que recibe el
nombre de microcontrolador.
El microcontrolador es un circuito integrado que incorpora la mayor parte de los
elementos que configuran un controlador. Aunque sus prestaciones son limitadas, adems
de dicha integracin, su caracterstica principal es su alto nivel de especializacin. Un
microcontrolador dispone normalmente de los siguientes componentes:
Procesador o CPU (Unidad Central de Proceso).
Memoria RAM para Contener los datos.
Memoria ROM/PROM/EPROM para almacenar el programa.
Diversos mdulos para el control de perifricos :
Temporizadores
Interfaces UART, SPI, I2C, USB, etc.
Conversores Analgico/Digital y Digital/Analgico
Watchdog
Comparadores analgicos
Modulador de anchura de pulsos PWM
Puertas de E/S digitales de propsito general
Generador de impulsos de reloj que sincronizan el funcionamiento de todo el
sistema, aunque muchos utilizan un reloj externo.
Las principales
microcontroladores son:
ventajas
que
se
pueden
encontrar
con
el
uso
de
50
2.6.3 Aplicaciones
Cada vez existen ms productos que incorporan un microcontrolador con el fin de
aumentar sustancialmente sus prestaciones, reducir su tamao y coste, mejorar su
fiabilidad y disminuir el consumo. Los microcontroladores estn siendo empleados en
multitud de sistemas presentes en nuestra vida diaria, como pueden ser juguetes, hornos
microondas, frigorficos, televisores, ordenadores, impresoras, mdems, el sistema de
arranque de nuestro coche, etc. Y otras aplicaciones algo menos comunes como
instrumentacin electrnica, control de sistemas en una nave espacial, etc. Una aplicacin
tpica podra emplear varios microcontroladores para controlar pequeas partes del
sistema. Estos pequeos controladores podran comunicarse entre ellos y con un
procesador central, probablemente ms potente, para compartir la informacin y coordinar
sus acciones [Aguayo04].
51
Lo primero por tanto ser recordar los requisitos del reproductor y ver como
afectan al diseo. Debe ser un reproductor alimentado por pilas, capaz de reproducir MP3
y con conexin al ordenador suficientemente rpida como para que pueda reproducir un
fichero enviado en tiempo real (en nuestro caso hemos elegido el USB que adems
permite la carga de pilas), debe almacenar los ficheros en un tarjeta de memoria y mostrar
los datos en una pantalla. Por tanto el dispositivo se compondr de:
Un microcontrolador para gobernarlo.
Un integrado que se encargue de decodificar el MP3.
Con conversor D/A y, si es necesario, un pequeo amplificador para la salida de
audio.
Un integrado que se encargue de la comunicacin USB si el microcontrolador
no incorpora este interfaz.
Una tarjeta de memoria, donde se almacenarn los ficheros.
52
3.2.1 El microcontrolador
Lo primero que se ha de realizar es seleccionar entre un microcontrolador de 8,
16 o 32 bits (los de 4 parecen claramente insuficientes). Como debemos seleccionar aquel
ms simple que cumpla con los requisitos se decide usar uno de 8 bits, ya que tienen unas
prestaciones suficientes para implementar el control del reproductor. El microcontrolador
ser el responsable de leer los ficheros de la tarjeta de memoria, enviar el flujo de datos al
chip decodificador de MP3, de la comunicacin con el ordenador, de controlar la botonera
y de refrescar los datos en la pantalla LCD.
Los principales microcontroladores que se han considerado son la familia
ATMega de Atmel , PIC de Microchip y Motorola. Los pros y contras que se han
encontrado para cada uno son:
Los microcontroladores PIC de microchip soportan un amplio rango de voltajes,
son rpidos pero algo menos que los ms rpidos de Atmel o Motorola, son
econmicos y fciles de conseguir, poseen gran variedad de interfaces de
comunicacin, como el SPI, utilizado en algunas tarjetas de memoria. Adems
su lenguaje ensamblador me es conocido y existe gran cantidad de
documentacin disponible.
Los microcontroladores Motorola tambin son rpidos y poseen gran variedad
de interfaces, pero no son tan econmicos y fciles de conseguir como los PIC
de Microchip, no tienen un rango de voltajes tan flexible y no existe tanta
documentacin, ejemplos y herramientas como en los PIC o los
microcontroladores Atmel.
Los ATMega de Atmel son rpidos, poseen gran variedad de interfaces, un
amplio rango de voltajes, gran cantidad de RAM, son econmicos y fciles de
conseguir.
Tanto los microcontroladores PIC como los ATMega parecen los ms apropiados.
Los ATMega son algo ms potentes y poseen mayor cantidad de ROM y RAM, pero los
PIC poseen un lenguaje ensamblador y arquitectura conocida, ya que se han estudiado y
utilizado durante la carrera, ello disminuye en gran medida el coste de aprendizaje por lo
que finalmente se selecciona este tipo de microcontrolador.
Los requisitos para el microcontrolador son:
Al menos 16 KB de memoria Flash para el cdigo de programa.
Al menos 1KB de memoria RAM, es necesaria al menos esa cantidad de
memoria ya que las lecturas y escrituras de tarjetas de memoria suelen ser en
bloques de 512 bytes.
Poseer memoria EEPROM para almacenar informacin no voltil como el
volumen actual. Como la cantidad de datos a guardar es muy baja son
suficientes unos pocos bytes.
Poseer suficientes lneas de entrada/salida para la conexin de todos los
elementos del dispositivo, esto depender del resto de elementos seleccionado.
53
54
PDIUSBD12D
FT232BM
FT245BM
Comunicacin con el
microcontrolador
Paralelo (8 bits)
Serie (RS-232)
Paralelo (8 Bits)
Nmero de pines
28
32
32
Velocidad de
transferencia Max.con
el microcontrolador
2 MB/s
1 Mbit/s
1 MB/s
Cantidad de
componentes externos
Baja
Baja
Baja
Obtencin
Relativamente difcil
Fcil
Fcil
Flexibilidad
Baja
Baja
Complejidad de
utilizacin
Cantidad de
documentacin y
ejemplos de uso
Alta
Baja
Baja
Baja
Alta
Alta
Mdulo para
No
Si
prototipos
Tabla 3.2 Comparacin de diferentes integrados para el interfaz USB
Si
56
Compact Flash
Multimedia Card
Secure Digital
Nmero de pines
50
16 bits
1 bit
1 o 4 bits
Velocidad de
transferencia
56 MBytes/s
20 Mbits/s
200 Mbit/s
Modo SPI
No
Opcional
Si
No
No
Si
Alimentacin
3,3 5 V
2,7 3,6 V
Tabla 3.4 Comparacin de tarjetas de memoria
2,7 3,6 V
La desventaja principal de las tarjetas Compact Flash frente a los otros dos tipos
es el elevado nmero de pines, ya que el nmero de puertas de entrada/salida del
microcontrolador es limitado. Por contra tanto las tarjetas MMC como SD tienen un
nmero de pines muy reducido y la posibilidad de acceder mediante el protocolo SPI, que
est implementado por hardware en el microcontrolador. Adems, las tarjetas MMC y SD
son compatibles entre s, tanto fsica como elctricamente, por tanto un dispositivo que
utilice el modo SPI en una tarjeta MMC podr utilizar tarjetas SD y viceversa.
Debido a que es necesario el pago de una licencia para implementar un
dispositivo que utilice tarjetas SD (al menos si usan el protocolo SD) en este proyecto se
utilizar como medio de almacenamiento tarjetas MMC que incorporen el modo SPI
(actualmente todas las tarjetas que se comercializan incorporan este modo de acceso).
Adems, en el reproductor se podr utilizar tarjetas SD y, mediante adaptadores, tarjetas
RS-MMC, MMCmicro, miniSD y microSD.
57
STA013
VS1001K
MAS3507D
Nmero de pines
28
28
44
Necesita inicializacin
Si
No
No
Informacin disponible
Poca
Mucha
Poca
No
Si
No
Tensin de alimentacin
2,1-3,6v
2,8-3,6v
2,85-3,6v
Comunicacin
I2C
SPI
Tabla 3.5 Comparacin de decodificadores de MP3.
I2C
58
En cuanto a las pantallas grficas, son normalmente mucho ms caras que las de
caracteres, ms complejas de usar y necesitan el envo de todos los pxeles, aun cuando se
desean mostrar caracteres. Sin embargo son mucho ms verstiles que las de caracteres,
pudiendo mostrar cualquier dibujo e icono junto al texto, diferentes tamaos y fuentes de
texto, por lo que son ms apropiadas para un interfaz de usuario donde se desea mostrar
mucha informacin, sustituyendo parte de esta informacin por pequeos iconos.
Afortunadamente se ha encontrado un LCD grfico econmico, muy fcil de adquirir,
muy documentado y con un interfaz serie de tan solo 8 lneas que utiliza el bus SPI. Se
trata de las pantallas utilizadas por Nokia en sus telfonos mviles 3310 y 3210 que
utilizan el controlador Philips PCD8544. En la Tabla 3.6 se puede comparar las
caractersticas de la pantalla grfica con controlador PCD8544 y una pantalla de
caracteres de 20x4.
LCD 20x4
Nmero de pines
Mapa de caracteres
Si
No
Interfaz
Estndar HD44780
Documentacin
Muy documentado
Muy documentado
Tamao
20x4 carcteres
Tensin de alimentacin
5V
2.7-3.3 V
Facilidad de adquirir
Muy fcil
Precio
Econmica
Tabla 3.6 Comparativa de pantallas LCD
Econmica
59
3.3.1 Diseo
Para el diseo del esquemtico y el trazado o layout del circuito impreso se ha
utilizado el programa Eagle de CadSoft, se trata de un programa muy utilizado para el
diseo de circuitos impresos y que posee una versin gratuita (con algunas limitaciones
como el uso de como mximo dos capas y el uso no comercial de los diseos). Las
principales ventajas de este programa son: su facilidad de uso, que muchos de los
componentes utilizados ya se encuentran en su librera o en Internet y pueden ser
importados, y que muchas compaas de fabricacin de circuitos impresos admiten su
formato directamente, sin necesidad de exportarlos a formato Gerber20. En la Imagen 3.8
se puede ver el proceso seguido para el diseo del circuito impreso.
20 Formato de fichero estndar usado para la fabricacin de circuitos impresos que contiene informacin de
patrones de pistas, vas, informacin corte, mscaras de soldadura, etc.
60
3.3.2 Fabricacin
Se han realizado dos implementaciones del circuito, la primera fue realizada
ntegramente de forma manual a partir de placas fotosensibles, y la segunda se encarg a
una empresa que hizo la placa de circuito impreso, soldndose posteriormente a mano los
componentes. Los motivo de realizar dos prototipos fueron algunos cambios en el diseo
inicial, principalmente en el circuito de alimentacin ya que no cumpla con las
expectativas, y el deterioro por oxidacin del prototipo inicial, que lo hizo muy inestable.
Para la fabricacin de la placa del circuito impreso del primer prototipo se utiliz
una placa fotosensible positiva de doble cara, hojas de transparencias usadas como
fotolito, una insoladora realizada a partir de bombillas de bajo consumo, un 'revelador'
consistente en una disolucin de sosa custica y un 'atacador' a partir de perxido de
hidrgeno y cido clorhdrico. El proceso es el siguiente:
61
4.
5.
6.
7.
3.3.3 Testeo
Para la comprobacin de las conexiones elctricas del circuito se utiliza un
polmetro, con el que se comprueba la continuidad de todas las pistas, vas y soldaduras.
Para la comprobacin lgica y depuracin se utiliza tanto el polmetro como un
osciloscopio. En concreto se utiliza un osciloscopio digital con una frecuencia de
muestreo de 50 MHz, suficiente para este diseo.
21 Son ms econmicas que los tubos y bombillas para insoladora, emiten menor cantidad de luz
ultravioleta que stas pero la suficiente como para realizar la insolacin en pocos minutos.
22 Es de extrema importancia tomar precauciones cuando se trabaja con estos productos qumicos, en
especial con el perxido de hidrgeno. Se deben utilizar guantes y gafas protectores, y el atacado se
realizar en un lugar muy ventilado debido a los gases txicos que se desprenden.
62
3.4.1 Alimentacin
La alimentacin es un elemento fundamental del circuito, se debe asegurar que el
circuito de alimentacin sea capaz de suministrar suficiente corriente al resto del circuito
con una tensin lo ms estable posible. Debido a la naturaleza del circuito hay que
intentar que la alimentacin genere el menor ruido, ya que de lo contrario este ruido,
aunque no afectase al funcionamiento de los elementos digitales, puede ser audible en la
salida analgica de los auriculares.
As pues lo primero a determinar ser la tensin con la que se debe alimentar el
circuito y la corriente mxima que consumir. En la Tabla 3.7 podemos observar cada
unos de los componentes digitales con sus respectivos rangos de tensiones de
alimentacin, a partir de la cual se puede extraer el rango de tensiones que se pueden usar
para alimentar todos los componentes. Como se observa, el lmite inferior lo marca la
parte analgica del circuito VS1001K y la superior la pantalla LCD, quedando el rango
entre 2,8-3,3V. Debido a que 3,3V es una tensin estndar para la que existen diferentes
reguladores de tensin, diodos Zener, etc. es la elegida para alimentar el circuito.
63
Componente
Tensin de alimentacin
PIC 18LF452
2-5,5V23
VS1001K (analgico)
2,8-3,6V
VS1001K (digital)
2,3-3,6V
MMC
2-3,6V
LCD
2,7-3,3V
Tabla 3.7 Rango de tensiones de los componentes
Consumo mximo
PIC 18LF452
4,70mA24
VS1001K (analgico)
40mA25
VS1001K (digital)
15mA
MMC
35mA26
LCD
300uA
Tabla 3.8 Consumo mximo de los componentes
En todos estos clculos no hemos tenido en cuenta el mdulo USB ya que este se
alimenta de forma autnoma a partir del puerto USB. Tampoco se ha contado la corriente
que consume el circuito de la botonera y los elementos pasivos que acompaan a los
integrados por ser consumos muy bajos, no obstante se ha dado un margen de 5mA para
estos consumos extra. Resumiendo, el circuito de alimentacin ha de suministrar a partir
de pilas o del puerto USB (si este est conectado) una tensin de salida de 3,3V y al
menos 100mA de corriente, adems de cargar las pilas cuando el puerto USB est
conectado.
En cuanto a las pilas y su carga, debido a que la tensin de las lneas de
alimentacin del puerto USB es de 5V se pueden cargar unas pilas que tengan como
mximo esta tensin, por tanto se decide alimentar el circuito con dos pilas tipo AA
recargables, por ser lo ms comn en este tipo de reproductores y no superar esta tensin.
23 La tensin mnima depende de la frecuencia del reloj
24 Consumo mximo aproximado a 3,5V y 20MHz, el consumo tpico a 3,3V ronda los 4,2mA (a una
temperatura de 25)
25 De pico a plena carga, el consumo tpico es 5,5mA
26 Esto depende del fabricante, la frecuencia y la tensin de alimentacin. Aun que el estndar permite hasta
100mA de consumo en lectura se usarn tarjetas con un mximo de 35mA (la mayora)
64
Circuito de carga
Para simplificar la alimentacin, el circuito de carga ser lo ms sencillo posible,
esto es, una corriente pasando por las pilas forma continua y sin control de carga. En
circuitos ms complejos la carga se realiza mediante ciclos de carga dependiendo de la
carga de la pila, aunque esto tambin depende del tipo de pila. En la Imagen 3.11 se puede
ver el circuito de carga, ste consta nicamente de las pilas, una resistencia y un diodo. La
tensin de carga ha de ser superior a la tensin nominal de las pilas, esto genera una
corriente que pasa a travs de las pilas y las va cargando [Linden02] [Buchmann]
[Harrison04].
27 En este transistor la resistencia fuente-drenador depende del fabricante, pudiendo ser de hasta 14 ohmios
65
R = (Vp Vb) / Ic
Frmula 3.1
La tensin nominal de las pilas es de 2,4V (1,2V cada una de las pilas en serie), y
la tensin de alimentacin es de 5V29. Teniendo en cuenta la cada de tensin del diodo
Schottky (0,3V) Vb sera 2,7V, por lo que: (5 2,7) / 0,300 = 7,66. Teniendo en cuenta
la resistencia del transistor MOSFET (0,35) el valor de la resistencia ha de ser 7,3.
En el circuito se puede observar un diodo Zener de 3,6V, este diodo no forma
parte del circuito de carga de las pilas sino que sirve para cuando las pilas no estn
conectadas en el reproductor. En ese caso es necesario lograr una tensin de 3,3V en
Vout, el diodo Zener fija una tensin de 3,6V y el diodo Schottky la baja a 3,3V. Para el
correcto funcionamiento del diodo Zener es necesario una corriente mnima sin
dependencia del consumo del reproductor. En la Imagen 3.12 podemos ver una
simplificacin del circuito, donde RL es la carga del reproductor y debemos seleccionar el
valor de R de forma que el diodo Zener est en funcionamiento cuando la carga sea
mxima y cuando el circuito est sin carga (conectado al USB pero sin pilas y con el
reproductor apagado).
28 Usando una corriente C/10 se elimina el problema de sobrecarga, pudiendo dejar cargando las pilas de
forma indefinida, pero el tiempo de carga seria excesivo (16 horas) y no cumplira con los requisitos del
Zener
29 Esta es la tensin tpica que suministra el bus USB, pero el estndar da un margen de 4,5V a 5,5V, para
simplificar los clculos tomaremos 5V.
66
V V Z
I ZminI Lmax
Frmula 3.2
V V Z
I Zmax I Lmin
Formula 3.3
67
El regulador de tensin
Cuando el USB est conectado la tensin estar regulada por el diodo zener y el
circuito se alimentar con 3,3V, pero cuando sean las pilas las que tengan que suministrar
la energa al circuito ser necesario el uso de un conversor DC/DC que pase la tensin de
las pilas de 2,4V a los 3,3V necesarios.
En el prototipo inicial se utiliz el regulador de tensin conmutado TC115 de
microchip, este regulador es capaz de suministrar una corriente de 140mA con una tensin
de entrada de 2V, tiene una eficiencia de un 80% a 100mA y est recomendado para
sistemas alimentados con entre 1 y 3 pilas, por lo que a priori cumple los requisitos y es
una buena eleccin. En cuanto al encapsulado, que puede verse en la Imagen 3.13, se trata
de un SOT-89 de soldadura superficial con 5 pines. En cuanto a los elementos externos, el
regulador necesita dos condensadores, un diodo y una inductancia, como muestra el
esquemtico de la Imagen 3.14 extrada de las especificaciones del regulador. Despus de
realizar diversas pruebas con diferentes cargas se pudo comprobar que con una carga de
100mA el regulador se volva muy inestable dejando en ocasiones de funcionar. Este
problema se deba a la inductancia, ya que fue imposible adquirir una inductancia del
valor necesario y una resistencia en lnea muy baja, y la que se utiliz daba problemas con
corrientes altas debido a una cada de tensin excesiva. A pesar de ello el primer prototipo
pareca funcionar de forma correcta, no obstante al no poder asegurar un correcto
funcionamiento en el caso de un consumo de 100mA se opt por cambiar este regulador
por otro que suministrase ms corriente y con elementos ms fciles de obtener.
68
Los elementos externos necesarios en este regulador son tres condensadores y una
inductancia. Como puede observarse en el esquemtico de la Imagen 3.16, extrado de las
especificaciones, se coloca un condensador a la entrada y la salida del regulador, y otro
que hace la funcin de bypass conectando la entrada de referencia del regulador con tierra.
En este caso la inductancia necesaria es de 22H, afortunadamente en este caso se pudo
encontrar una pequea inductancia de soldadura superficial fabricada por Panasonic con
una resistencia lineal de tan solo 0,015.
69
3.4.2 Microcontrolador
Como se indic en la seccin de seleccin de componente se va a utilizar el
microcontrolador PIC 18LF452 fabricado por Microchip. Se trata de un microcontrolador
de baja tensin de 8 bits con 34 pines de entrada y salida, un set de 75 instrucciones y
varios mdulos: receptor/transmisor universal asncrono/sncrono direccionable
(AUSART), interfaz serie de perifricos (SPI), circuitos inter-integrados de dos hilos IC,
conversor analgico/digital de 10 bits, 4 temporizadores, etc30. El encapsulado elegido es
un DIP de 40 pines por su facilidad de montaje y posibilidad de sustitucin. Como ya se
ha explicado trabajar a 20MHz y se alimentar con una tensin de 3,3V. En la Imagen
3.18 puede verse el pinout del microcontrolador extrado de las especificaciones.
30 Para ms informacin sobre las caractersticas y arquitectura del microcontrolador consultar las hojas de
especificaciones [PIC18FXX2].
70
71
El resto de pines se conectan segn indica la Tabla 3.9, en cuando a los pines de
alimentacin se han colocado pequeos condensadores prximos al microcontrolador para
estabilizar la tensin y minimizar posibles ruidos. En las secciones correspondientes a
cada componente se detalla la conexin de cada uno de ellos con el microcontrolador.
Como puede observarse hay lneas que estn conectadas a varios elementos, como las
correspondientes al interfaz SPI que se utiliza para la comunicacin con el decodificador
MP3, la pantalla LCD y la tarjeta de memoria, habiendo para cada uno una lnea de chip
select para seleccionar el correspondiente cada vez.
Pines
Elemento
RD0-RD7
LCD
Multimedia Card
Botonera
ICSP
RC6, RC7
UART
RA0
Tensin de pilas
Tabla 3.9 Conexiones del microcontrolador.
72
73
74
Pin
Nombre
Tipo
Descripcin
Board ID
Salida
GND
RESET#
Entrada
RESETO
Salida
GND
3V3
Salida
GND
SLEEP
Salida
SND/WUP
Entrada
10
VccIO
Entrada
11
EXTVCC
Entrada
Tierra
Tierra
Salida del regulador de tensin lineal de 3,3V. Se puede
utilizar hasta un mximo 5mA de corriente. No utilizado.
Tierra
12
PORTVCC
Salida
13
RXF#
Salida
14
TXE#
Salida
15
WR
Entrada
16
RD#
Entrada
17-24
D7-D0
Configuracin de alimentacin
El chip FT245BM permite diferentes configuraciones de alimentacin segn las
necesidades del sistema:
Alimentado por el bus USB: tanto el chip como el resto del circuito son
alimentados por el bus.
Alimentacin propia: la alimentacin proviene de una fuente externa, no se
extrae corriente del bus.
Alimentado por el bus utilizando lgica de 3,3V: el bus alimenta directamente el
chip FT245BM y sirve como entrada de alimentacin de un regulador de
tensin de 3,3V que se utiliza para alimentar el resto de circuito y a la que se
conecta la lnea VCCIO, que sirve como referencia para la tensin de las lneas
de entrada/salida.
Alimentacin propia con lgica 3,3V: existe alimentacin propia tanto para el
FT245BM como para el resto del circuito. El FT245BM se alimenta con 5V y el
resto del circuito, incluyendo la lnea VCCIO con 3,3V.
75
En los circuitos alimentados por USB debe haber un control del consumo. El
estndar USB permite un mximo de 100mA de consumo antes de la enumeracin, y en
modo suspendido tan solo se puede consumir un mximo de 500uA, por tanto se debe
controlar el proceso de enumeracin y la entrada en estado suspendido. Como se adelant
en la seccin de alimentacin, la lnea SLEEP del mdulo (PWREN# en el chip) se utiliza
para el control de la alimentacin del circuito. Esta lnea pasa a nivel bajo despus de la
enumeracin del dispositivo y cuando este sale del estado suspendido, y est a nivel alto
antes de la enumeracin y cuando pasa a estado suspendido. En la Imagen 3.23 puede
verse la forma de controlar la alimentacin segn recomiendan las hojas de
especificaciones, como puede observarse existe un circuito Soft Start que limita el pico de
corriente cuando el transistor se activa. El circuito implementado puede verse en la
Imagen 3.10 de la seccin de alimentacin.
Protocolo de comunicacin
El mdulo USB se comunica con el microcontrolador mediante un bus de datos
de 8 bits y cuatro lneas de control. En la Imagen 3.24 puede verse la conexin entre el
mdulo y el microcontrolador.
76
Para realizar una lectura se ha de esperar a que la lnea RXF# se ponga a nivel
bajo, lo que significa que hay datos en el buffer de recepcin para ser ledos. Una vez
confirmada la existencia de datos para ser ledos se debe poner la lnea RD# a nivel bajo,
esto hace que el primer byte del buffer se ponga en el bus de datos para ser ledo. Despus
de leer los datos el microcontrolador vuelve a poner a nivel alto la lnea RD# lo que hace
que el bus de datos se ponga en alta impedancia a la espera del siguiente ciclo de lectura.
En la Imagen 3.25 se puede ver el cronograma del ciclo de lectura.
77
Para el control del ciclo de escritura se utilizan las lneas TXE# y WR, en la
Imagen 3.26 puede verse el cronograma. Antes de iniciar el ciclo de escritura se
comprueba que TXE# este a nivel bajo, de lo contrario indicara que el buffer de
transmisin est lleno y habra que esperar. Una vez verificado que existe espacio en el
buffer se pone WR a nivel alto y el byte a transmitir en el bus de datos, una vez estables
los datos (20ns) WR se pone a nivel bajo, lo que provoca la lectura de los datos del bus.
78
En cuanto a sus caractersticas, el VS1001k decodifica MPEG layer 3 de MPEG1, MPEG-2 y MPEG-2.5, a todas las tasas de muestreo y de bit tanto en mono como en
estreo. Soporta tasa de bit variable (VBR), utiliza un DAC estreo de alta calidad y es
capaz de soportar auriculares de 30 de carga sin amplificacin adicional. Como ya se ha
dicho trabaja con una tensin de 2,8V a 3,6V y usa un cristal de 12-13MHz (con
multiplicador) o 24-26MHz (sin multiplicador)31.
Circuito y conexin al microcontrolador
En la Imagen 3.31 puede verse el circuito recomendado por las hojas de
especificaciones del VS1001k. El circuito est compuesto nicamente por unos pocos
componentes pasivos extra. El chip tiene dos entradas de alimentacin como ya se ha
indicado, estn separadas por inductancias y tienen un par de condensadores cada una, lo
que hace que las lneas estn ms aisladas, con tensiones ms estables y tengan menos
ruido. En cuanto a la seal de reloj se utiliza un cristal de 24,576MHz, aunque como se ha
comentado puede usarse de 12-13MHz o 24-26MHz dependiendo de si se utiliza el
multiplicador de reloj o no. El decodificador de conecta al microcontrolador a travs de
dos interfaces, el SCI compuesto de cuatro lneas y el SDI compuesto de tres. Adems
existen una lnea de reset y DREQ, que indica al microcontrolador que tiene espacio en el
buffer para ms datos MP3.
El circuito implementado ha sido el que se muestra en el esquemtico de la
Imagen 3.32, muy similar al descrito en las hojas de especificaciones. En este caso se ha
utilizado un cristal de 13MHz con el multiplicador (26MHz) para poder reproducir
ficheros MP3 a todas las tasas de bit, tambin puede observarse dos jumpers y resistencias
a la salida de los auriculares. Cuando los jumpers estn cerrados la salida de audio se
utiliza como salida para auriculares y cuando estn abiertos como salida en lnea, tal y
como indican las hojas de aplicacin del VS1001k [VS10XXANOUT].
31 No a todas las frecuencias se pueden decodificar los MP3 con tasas de bit ms altas.
79
80
Protocolo de comunicacin
Existen dos interfaces para comunicarse con el VS1001k, ambos basados en el
interfaz de comunicacin serie SPI. El primero se denomina interfaz de datos serie (SDI)
y se utiliza para enviar el flujo de datos MP3 al decodificador. El segundo es el interfaz de
comandos serie (SCI) y se utiliza para enviar instrucciones y controlar el chip.
El interfaz SDI puede utilizarse en modo maestro o esclavo, en este caso se ha
usado como esclavo. El flujo de datos slo circula del microcontrolador al decodificador
ya que esta lnea es nicamente para el envo del flujo de datos MP3. Como se puede ver
en el cronograma de la Imagen 3.28 el interfaz est compuesto por tres lneas, BSYNC
indica el comienzo del primer bit, en SDATA se introducen los bits de datos y DCLK es la
seal de reloj. Los datos son ledos en el flanco de subida o bajada de la seal de reloj
dependiendo de como se haya configurado el decodificador. En cuanto al orden de los
bits, se puede seleccionar si se quiere primero el ms o el menos significativo. El uso de
BSYNC no es obligatorio aunque si muy recomendable, si no se usa debe ponerse a nivel
alto. La lnea DREQ indica que hay espacio en el buffer para recibir datos, cuando la lnea
est en estado alto hay al menos 32 bytes libres en el buffer.
32 El interfaz SPI soporta mltiples dispositivos en el mismo bus, mediante la lnea chip select se selecciona
cual es el dispositivo activo cada vez.
81
82
Pin #
Nombre
Tipo
Descripcin
CS
Entrada
Chip select
SDI
Entrada
Vss
Alimentacin
Tierra
Vcc
Alimentacin
Alimentacin
SCLK
Entrada
Reloj
Vss2
Alimentacin
Tierra
SDO
Salida
Salida de datos (Data out)
Tabla 3.11 Pinout de la tarjeta Multimedia Card
La tarjeta utiliza para la comunicacin un interfaz SPI, por tanto sus lneas se
conectan a los pines correspondientes al puerto SPI del microcontrolador. Este puerto est
tambin conectado al integrado VS1001k y, como se ver, a la pantalla LCD, utilizndose
el pin CS para seleccionar un componente u otro. En la Imagen 3.31 puede verse como se
conecta la tarjeta a los puertos del microcontrolador, se pueden apreciar dos resistencias
en pull-up en las lneas SDI y SDO para proteger el bus cuando la tarjeta no est insertada
o cuando est en alta impedancia [SanDisk03].
Protocolo de comunicacin
Las tarjetas Multimedia Card tienen dos modos de comunicacin, el modo
Multimedia Card y el SPI. En este caso se usa el modos SPI por ser ms simple, tener
implementado un puerto SPI por hardware en el microcontrolador y, sobre todo, por ser
compatible con las tarjetas Secure Digital (SD), de forma que se puedan usar tarjetas
MMC o SD de forma indistinta. El interfaz SPI ya ha sido explicado en el apartado
anterior.
Durante la inicializacin de la tarjeta (momento en el que est en modo
Multimedia Card) se ha de seleccionar que tipo de protocolo de comunicacin que se va a
utilizar. Los detalles sobre los comandos de inicializacin, configuracin, lectura,
escritura, etc. se explican en la seccin de firmware del microcontrolador, en la librera del
la MMC.
El circuito que conecta la pantalla (Imagen 3.33) consta de tan slo dos
componentes pasivos adicionales, un condensador que conecta Vout (de uso interno por el
controlador del LCD) a tierra, y una resistencia en pull-up en la lnea SCE. Las lneas
SDIN y SCLK se conectan al puerto SPI del microcontrolador, utilizndose SCE (chip
enable) para indicar a la pantalla que es la destinataria de la siguiente comunicacin
enviada por el bus SPI
Protocolo de comunicacin
El microcontrolador se comunica con la pantalla por un interfaz SPI simplificado
con comunicacin nicamente en una direccin ms la lnea D/C que selecciona el tipo de
instruccin. En la Imagen 3.34 se puede ver el cronograma de una comunicacin con la
pantalla. La pantalla puede recibir dos tipos de instrucciones que se seleccionan mediante
la lnea D/C, si D/C est a nivel bajo el byte enviado por el bus es interpretado como un
comando y si est a nivel alto los siguientes bytes recibidos se almacenan en la memoria
RAM de la pantalla cuyos bits corresponden a pxeles de la pantalla. Los datos se
transmiten enviando primero el bit ms significativo y son capturados en los flancos de
subida de la seal de reloj. Los detalles sobre los comandos, inicializacin y utilizacin se
explican en la seccin de firmware del microcontrolador, en la librera del LCD.
84
3.4.7 Botonera
Para la interaccin del usuario con el reproductor se han dispuesto un conjunto de
seis botones mediante los cuales se realizarn las acciones de control de reproduccin,
configuracin, volumen, navegacin por el rbol de directorios, etc. Los botones son
pulsadores que estn conectados a las lneas RC0-RC2 y RE0-RE2 del microcontrolador
(Imagen 3.35) de forma que cuando el botn est pulsado la lnea est en estado alto y
cuando no en estado bajo.
85
86
87
89
Funciones SDI
En las siguientes tablas (Tablas 4.1) se listan las funciones que hacen uso del
interfaz SDI, su explicacin y diagrama de flujo.
Funcin de bajo nivel que enva el byte data a travs del interfaz SDI.
No se comprueba el buffer.
void sdi_send()
void morezeroes(void)
37 Para ms informacin sobre las tablas de frecuencias y muestras consultar las hojas de especificaciones
del decodificador VS1001k
90
Funciones SCI
Como se ha indicado, el interfaz SCI se utiliza para el envi de comandos al
decodificador. Estos comandos consisten en lecturas o escrituras de los registros de
configuracin de 16 bits. En la Tabla 4.2 se listan los registros accesibles mediante este
interfaz y si se trata de un registro de lectura o escritura.
Nombre
Tipo
Direccin
MODE
L/E
Registro de control
STATUS
L/E
INT_FCTLH
Registro interno
CLOCKF
L/E
DECODE_TIME
Lectura
AUDATA
Lectura
WRAM
Escritura
WRAMADDR
Escritura
HDAT0
Lectura
Informacin de cabecera
HDAT1
Lectura
Informacin de cabecera
AIADDR
L/E
10
VOL
L/E
11
Control de volumen
Reservados
12
AICTRL[x]
Funcin
L/E
13+x
Para acceder a los programas cargados
Tabla 4.2 Registros internos del decodificador
91
MODE
La descripcin de los bits de este registro se puede ver en la Tabla 4.3.
Bit
Nombre
Funcin
Valor
Descripcin
SM_DIFF
0
1
SM_FFWD
Avance rpido
0
1
Avance normal
Avance rpido
SM_RESET
Reseteo software
0
1
Normal
Reset
SM_UNUSED1
SM_PDOWN
SM_UNUSED2
SM_UNUSED3
SM_BASS
Realce bass/treble
(graves/agudos)
0
1
Apagado
Encendido
SM_DACT
0
1
Subida
Bajada
SM_BITORD
0
1
Primero MSB
ltimo MSB
10
SM_IBMODE
0
1
Esclavo
Maestro
11
SM_IBCLK
0
Apagado
0
1
Encendido
Apagado
STATUS
Controla el estado interno del VS1001k, los bits 0 y 1 sirven para el control de la
salida analgica de volumen y el bit 3 para apagar la parte analgica del chip. Este
registro no es realmente necesario, estas funciones se pueden controlar con otros registros.
CLOCKF
Se utiliza para indicar la frecuencia del reloj que se est utilizando. La frmula
para calcular esta frecuencia es: Frecuencia de cristal / 2000. Los valores vlidos para este
registro son 0..32767, el bit ms significativo se utiliza para indicar si se activa o no el
multiplicador de reloj. Hay que recordar que por debajo de 24,576 Mhz el chip no es
capaz de decodificar a todas las tasas de bit.
DECODE_TIME
Este registro almacena el tiempo en segundos del flujo de datos que se est
decodificando en este momento.
92
AUDATA
Cuando se decodifican datos correctos la tasa de bits se muestra en este registro
en los bits 8..0. En los bits 12..9 se muestra la frecuencia de muestreo segn la Tabla 4.4,
y el bit 15 sirve para indicar si el sonido es mono ('0') o estreo ('1'). El resto de bits no se
utilizan y estn a '0'.
Bits 12..9
Frecuencia de muestreo
0b0000
Desconocido
0b0001
44100 Hz
0b0010
48000 Hz
0b0011
32000 Hz
0b0100
22050 Hz
0b0101
24000 Hz
0b0110
16000 Hz
0b0111
11025 Hz
0b1000
12000 Hz
0b1001
8000 Hz
Tabla 4.4 Frecuencias segn los bits del registro AUDATA
WRAM
Este registro se utiliza para subir programas a la memoria RAM del
decodificador. La direccin de inicio debe ser inicializada (WRAMADDR) antes de la
primera llamada a WRAM. Son necesarias dos escrituras en el registro WRAM (16 bits
cada uno) para escribir una palabra del programa (32 bits), siendo el byte ms
significativo el primero. Despus de cada escritura el puntero interno es
autoincrementado.
WRAMADDR
Este registro se utiliza para indicar la posicin de memoria en la que se escribirn
los datos del programa transferidos posteriormente con el registro WRAM. El espacio
disponible para programas de usuario se encuentra entre las direcciones 0x4000 y 0x43ff.
En este proyecto no se han utilizado programas de usuario ejecutndose en el
decodificador, por tanto los comandos WRAM y WRAMADDR no se han utilizado.
93
HDAT0 y HDAT1
En estos registros se almacena la informacin de cabecera extrada del flujo de
datos MPEG cuando se est decodificando. En la Tabla 4.5 se detalla el significado de
cada unos de los bits de los registros.
Bit
Funcin
Valor
HDAT1[15:5]
Palabra sincronismo
2047
HDAT1[4:3]
ID
II
III
Reservada
Sin CRC
Con CRC
HDAT1[2:1]
Capa
HDAT1[0]
Bit Proteccin
HDAT0[15:12]
HDAT0[11:10]
HDAT0[9]
Tasa de bit
Tasa de Muestreo
Pad bit
HDAT0[8]
Bit privado
HDAT0[7:6]
Modo
HDAT0[5:4]
Extensin
HDAT0[3]
Copyright
HDAT0[2]
HDAT0[1:0]
Original
nfasis
Explicacin
Datos vlidos
ISO 11172-3
38
Reservada
32/16/8 kHz
48/24/12 kHz
44/22/11 kHz
Slot adicional
Marco normal
Mono
Dual Channel
Joint Stereo
Estreo
ISO 11172-3
Con copyright
Libre
Original
Copia
CCITT J.17
Reservado
50/15 microseg
0
Sin nfasis
Tabla 4.5 Bits de los registros HDAT0 y HDAT1
38 Si el campo ID es '1' se utiliza la tasa de muestreo ms alta, si es '0' la intermedia y si es '2' o '3' la ms
baja.
94
AIADDR
Este registro indica la direccin de inicio del cdigo del programa escrito antes
mediante los registros WRAMADDR y WRAM. Como no se utiliza un programa de
usuario este registro no es inicializado.
VOL
El registro VOL controla el volumen de reproduccin. Se establece un valor entre
0 y 255 para cada canal, esto define la atenuacin desde el nivel mximo de volumen en
pasos de 0,5 dB. El byte ms significativo controla el canal izquierdo y el menos
significativo el derecho.
Poner el volumen con silencio total (255 para ambos canales) desconecta la
alimentacin analgica, lo que genera un pequeo click en los auriculares. Para evitar esto
se ha utilizado el nivel 254 como mnimo volumen, ya que es prcticamente inaudible.
AICTRL[x]
El registro AICTRL se utiliza para acceder al programa de usuario del
decodificador. No se ha utilizado en este proyecto.
En la Tabla 4.6 se describen las funciones implementadas en la librera del
VS1001k y utilizan el protocolo SCI haciendo uso de los registros que se acaban de
describir.
95
96
En modo SPI el interfaz consta de cuatro seales: reloj, entrada de datos, salida de
datos y seleccin del chip. El reloj, como en el modo MMC, se utiliza para mantener la
sincronizacin entre el sistema y la tarjeta. La entrada de datos de utiliza para enviar
comandos a la tarjeta y escribir datos, mientras que la salida de datos se utiliza para recibir
la respuesta de la tarjeta y para leer datos. Las seales de entrada y salida de datos son
unidireccionales. La seal de seleccin del chip se utiliza para seleccionar una tarjeta en
particular cuando hay varias conectadas al bus.
98
Comando
Argumento
Resp.
Nombre
CMD0
No
R1
CMD1
No
R1
CMD9
No
R1
SEND_CSD
CMD10
No
R1
SEND_CID
CMD13
No
R2
SEND_STATUS
CMD16
[31:0] Tamao
del bloque
R1
CMD17
[31:0] Direccin
R1
CMD24
[31:0] Direccin
R1
CMD32
[31:0] Direccin
R1
CMD33
[31:0] Direccin
R1
CMD38
[31:0] No importa
R1
EREASE
CMD58
No
R1
READ_OCR
CMD59
[31:1] No importa
[0:0] CRC
R1
CRC_ON_OFF
WRITE_BLOCK
Descripcin
En modo SPI la tarjeta puede devolver dos tipos de respuestas dependiendo del
tipo de comando enviado: R1 y R2. El tipo de respuesta R2 es una respuesta de 16 bits
que se devuelve despus de un comando CMD13, y el tipo R1 es una respuesta de 8 bits
que se devuelve despus de cualquier otro tipo de comando. En Imagen 4.6 aparece la
estructura de ambos tipos de respuesta.
39 Algunas tarjetas solo permiten tamaos de bloque de 512 bytes, por tanto solo se ha utilizado este
tamao de bloque.
99
Funciones de la librera
Comunicacin bsica
Toda la comunicacin se basa en la funcin:
byte SPI(byte out)
CMD,
unsigned
int16
AdrH,
unsigned
int16
enviado (que incluye el CRC). La funcin devuelve una respuesta R1 de la tarjeta (para
una respuesta R2 sera necesario hacer una llamada adicional a la funcin SPI). Si fuese
necesario el envo o lectura de datos despus de un comando, ste se hara mediante
llamadas a la funcin SPI.
Inicializacin
Antes de poder utilizar la tarjeta hay que inicializarla ya que inicialmente la
tarjeta entra en modo MMC. En la Imagen 4.7 se puede ver un diagrama del proceso de
inicializacin utilizado en la funcin:
byte MMCInit()
101
5.
6.
7.
8.
9.
tarjeta.
Se envan 80 pulsos de reloj para la inicializacin
La seal CS se pone a nivel bajo.
Se enva el comando CMD0 (GO_IDLE_STATE). La tarjeta an est en
modo MMC y por tanto se ha de enviar el mensaje en este formato. En
concreto se enva: 0x40, 0x00, 0x00 y 0x95, donde 0x40 es el comando y
0x95 el CRC.
A partir de este momento la tarjeta pasa a modo SPI y la respuesta est en
formato R1. Esta respuesta debe ser 0x01, de lo contrario ha ocurrido un
error y se debe comenzar de nuevo el proceso de inicializacin.
Se desactiva y se vuelve a activar la seal CS.
Se enva el comando CMD1 (SEND_OP_CMD) hasta que la respuesta sea
0x00. Se ha fijado un mximo de 128 intentos antes de dar error y por tanto
reinicializar todo el proceso.
Se leen los registros CID, CSD y OCR mediante los comandos CMD10,
CMD9 y CMD58 respectivamente. Se comprueban que las respuestas a estos
comandos sean 0x00.
La tarjeta ya est inicializada en modo SPI correctamente. Se fija el tamao
del bloque de 512 bytes para posteriores lecturas/escrituras mediante el
comando CMD16.
Configuracin
Durante la inicializacin se configura la tarjeta de memoria de forma que pueda
ser leda y escrita mediante en modo SPI. La nica configuracin adicional necesaria que
se ha de efectuar despus de esta inicializacin es la modificacin del tamao del bloque,
si dicha modificacin fuese necesaria. Para este propsito se ha implementado la funcin:
void MMCSetDataMode(byte bytes)
Donde 'bytes' es el tamao del bloque en bytes, que por defecto despus de la
inicializacin es 512. Es importante tener en cuenta que algunas tarjetas de memoria solo
soportan escrituras con un tamao de bloque de 512 bytes, por lo que esta funcin no
tendra efecto. Para fijar el tamao del bloque se hace una llamada al comando CMD16
(SET_BLOCK_LENGTH).
Lectura
Se han implementado tres funciones de lectura: para leer un byte, dos bytes y un
bloque de datos. Esto se ha hecho as para optimizar el cdigo de forma que se llame a
una u otra funcin dependiendo de lo que se quiera leer y acelerando la ejecucin del
cdigo en algunas partes crticas obteniendo mejores tasas de transferencia. Las funciones
son:
102
Escribe en la direccin 'dir' desde 'Gbuffer' tantos bytes como el tamao del
bloque definido en ese momento. Para ello hace uso del comando CMD24
(WRITE_BLOCK), posteriormente se enva un token inicio de bloque y los datos a
escribir. La funcin devuelve 0 si ha habido algn error, de lo contrario devuelve 1.
largos)
64 KB).
Estas limitaciones no son un inconveniente en este proyecto, siempre y cuando no
se quieran usar tarjetas de memoria de ms de 2 GB. En la Tabla 4.8 podemos ver una
comparacin de los distintas versiones de FAT.
103
FAT12
FAT16
FAT32
Mximo tamao de
archivo
32 MB
2 GB
4 GB
Nmero mximo de
archivos
4,077
65,517
268,435,437
8.3
Tamao mximo de
32 MB
2 GB (4GB con
volumen
clusters de 64KB)
Tabla 4.8 Comparacin de las versiones de FAT
8 TB
Estructura de FAT16
La estructura del sistema de archivos FAT16 se detalla en el apndice II.
Funciones de la librera
En la librera de funciones para el acceso al sistema de archivos las funciones se
pueden clasificar en cuatro tipos: funcin de inicilizacin, funciones de acceso a bajo
nivel, funciones de acceso a alto nivel, funciones de lectura de MP3. En las funciones de
acceso a bajo nivel se trabaja directamente con posiciones de memoria y nmeros de
cluster, mientras que las de acceso a alto nivel se simplifica el acceso al sistema de
archivos de forma que se utilizan manejadores para abrir, leer y cerrar archivos. Las
funciones de lectura de MP3 son una versin modificada de las funciones de lectura de
archivos de forma que aumente la velocidad de lectura y se puedan reproducir MP3 de
tasas de bit altos.
Inicializacin
La funcin de inicializacin void MMCFat16_Ini() se encarga de buscar en la
memoria la primera particin a partir del MBR, obtener datos necesarios para el acceso al
contenido de la particin (sectores por FAT, sectores por cluster, bytes por cluster, etc) y
de localizar la tabla FAT (se utiliza la primera), el directorio raz y el rea de datos. Estos
datos se introducen en variables globales que posteriormente utilizar el resto de
funciones de la librera.
Acceso a bajo nivel
int1 IsRegValido(int32 dir)
104
105
Se definen dos vectores, uno de cada tipo, de forma que el manejador del archivo
o directorio es el ndice del vector donde se encuentran los datos de ese archivo o
directorio, y donde el tamao del vector determina el nmero de archivos o directorios
que pueden estar abiertos de forma simultnea:
byte MMCOpenFile(int32 dir)
La funcin MMCReadFile lee tantos bytes como estn definidos como tamao de
bloque de la tarjeta (normalmente se utilizan 512 bytes) del archivo al que hace referencia
el manejador 'hand' a partir del cursor de lectura del archivo (lectura secuencial), y los
escribe en 'Gbuffer'. Esta funcin hace que el cursor de lectura del archivo avance tantos
bytes como han sido leidos.
Si se observa la estructura de datos del manejador de archivos, no existe ningn
parmetro 'cursor' propiamente dicho. Este se calcula a partir del valor de los parmetros
'Current_Cluster' y 'Cluster_offset'.
byte MMCReadFilePos(byte hand, byte *Gbuffer, int16 size, int32 ini)
Descripcin
SCLK
SDIN
Entrada de datos
D/C
Seleccin dato/comando
SCE
RES
Reset
Tabla 4.15 Lneas de comunicacin de la pantalla LCD
Estructura de la memoria
El controlador se compone de una memoria RAM interna (DDRAM, Display
Data Ram) donde se almacenan los datos que son mostrador por la pantalla LCD. La
memoria se divide en 6 bancos de 84 bytes cada uno (6 x 8 x 84 bits). El controlador
refresca continuamente la pantalla con el contenido de la memoria DDRAM de forma que
cada bit de la memoria es un pixel en la pantalla, dependiendo de si est configurada en
modo normal o inverso un bit a '1' corresponder a un pixel encendido o apagado. En la
109
Imagen 4.10 puede verse como se mapean los datos contenidos en la memoria DDRAM
en la pantalla.
El direccionamiento dentro de la memoria se realiza mediante un puntero con dos
direcciones; una direccin X cuyo rango es de 0 a 83 y corresponde a las comunas, y una
direccin Y cuyo rango es de 0 a 5 y corresponde a los bancos (grupos de 8 filas). En
modo de direccionamiento vertical despus de cada byte la direccin Y del puntero se
incrementa, despus de la ltima direccin de Y (Y=5), Y vuelve a la posicin 0 y X se
incrementa. En el modo de direccionamiento horizontal ocurre de una forma similar,
despus de cada byte se incrementa X, cuando X alcanza su lmite vuelve a la posicin 0 y
se incrementa Y. Cuando el puntero supera el ltimo byte (X=83, Y=5) vuelve a la
posicin (0,0).
Imagen 4.10 Mapeo de la memoria DDRAM en la pantalla. Extrado de las especificaciones del controlador
PCD8544.
Comunicacin
En la comunicacin entre el microcontrolador y el controlador de la pantalla LCD
se pueden distinguir dos tipos de instrucciones: si la lnea D/C est a nivel bajo el byte
enviado por la lnea SDIN es interpretado como un comando. Si la lnea D/C est a nivel
alto los datos enviados por SDIN se escriben en la memoria DDRAM del controlador.
Despus de cada escritura en la memoria el puntero es incrementado automticamente. El
nivel de la lnea D/C es ledo durante el ltimo bit del byte de datos enviado por SDIN.
El interfaz serie se inicializa cuando la lnea SCE est a nivel alto, y se habilita en
el flanco de bajada de esta, indicando el comienzo de una transmisin de datos. Primero se
transmite el bit ms significativo de cada byte, y las instrucciones pueden enviarse en
110
D/C
Comando
Descripcin
No operacin
Juego de
instrucciones
PD
Escribir dato
D7
D6
D5
D4
D3
D2
D1
Reservado
Reservados
Control LCD
Reservados
Reservados
Pone
direccin Y de
DDRAM
Y2
Y1
Pone
direccin X de
DDRAM
X6
X5
X4
X3
X2
X1
Reservados
Reservados
Control de
temperatura
Reservados
Sistema bias
Reservados
Fija el Vop
H=0
H=1
Reservados
Reservados
Reservados
Vop6 Vop5 Vop4 Vop3 Vop2 Vop1 Vop0 Fija el valor de Vop
Tabla 4.16 Juego de instrucciones de la pantalla LCD
Inicializacin
Despus de encender la pantalla LCD el valor de los registros y la memoria no
estn definidos y se debe resetear el controlador. El reset fija unos valores determinados
en los registros, pero el contenido de la memoria contina siendo indeterminado. Por
tanto, despus de establecer los valores de tensin operacional, bias y modo horizontal o
vertical, se ha de realizar un borrado de la pantalla. El proceso de inicializacin utilizado
es el siguiente:
1.
2.
3.
4.
5.
6.
7.
8.
Funciones de la librera
Existen dos funciones internas de la librera, que se han implementado para ser
utilizadas por otras funciones de la librera y no externamente. Estas son:
void LCD_write_command(byte cmd)
void LCD_write_data(byte data)
Ambas funciones son similares, envan el byte que se les pasa como parmetro,
en el caso de LCD_write_command la lnea D/C se pone a nivel bajo para indicar que se
trata de un comando, y en LCD_write_data a nivel alto. El resto de funciones, que hacen
uso de estas, son:
void LCD_Init()
113
Inicializa los registros internos del microcontrolador para usar las lneas de
comunicacin con el mdulo USB de forma correcta.
int1 isUSBEnumerado()
La funcin devuelve '1' si existen datos para ser ledos en el buffer del mdulo
USB, y de lo contrario devuelve '0'.
void clear_USB_outbuffer()
114
La funcin get_USB lee y devuelve un byte del buffer de lectura del mdulo
USB, si el buffer est vaco se espera hasta que se recibe al menos un byte.
byte get_USB_timer(byte timeout)
ID3v1
La etiqueta ID3v1 se almacena en los ltimos 128 bytes de los archivos MP3. Al
ser una etiqueta de tamao fijo y reducida, la informacin que almacena es bsica y no
permite aadir nuevos elementos. En la Tabla 4.17 puede verse la composicin de la
etiqueta ID3v1.
Tamao
Contenido
3 Bytes
TAG
30 Bytes
Ttulo de la cancin
30 Bytes
Artista
30 Bytes
lbum
4 Bytes
Ao
30 Bytes
1 Byte
ID3v2
Debido a las limitaciones de las versiones 1.x (longitud de etiquetas insuficiente,
uso nicamente de caracteres ASCII, nmero de etiquetas insuficiente, etc.) se ha
desarrollado una nueva versin que aporta mucha ms flexibilidad. Las mejoras ms
significativas son:
Utilizacin de carcteres unicode.
Etiquetas al inicio del archivo, lo que facilita su difusin mediante streaming ya
que no es necesario descargarlo completamente.
No hay restricciones respecto a la longitud de las etiquetas (existe una
restriccin mxima de 16 MB por marco y 256 MB en total).
Es posible incluir elementos no textuales, como imgenes.
Se pueden incluir etiquetas definidas por el usuario.
Contiene un esquema de desincronizacin que evita que el decodificador
intente reproducirla.
Soporta informacin encriptada.
116
el sistema de men.
un elemento con un nombre e icono para que sea aadido a
la lista.
Reset_Menu: Resetea el men (borra sus elementos)
NextMenu: Selecciona el siguiente elemento dentro del men.
PrevMenu: Selecciona el anterior elemento dentro del men.
ShwoMenu: Muestra el men en pantalla.
Las funciones utilizan una estructura de datos global que puede ser leda por el
programa principal para pasarles datos o averiguar cual es el elemento seleccionado. El
modo de funcionamiento de las funciones es el siguiente:
1.
2.
3.
4.
117
determinado.
FilesToMenu: Aade un archivo o directorio al listado (usado por
MenuListaDir).
FicheroSiguente: Selecciona el siguiente archivo o directorio del listado.
FicheroAnterior: Selecciona el anterior archivo o directorio del listado.
MenuEntrar: Si el elemento seleccionado es un directorio entra dentro de l,
sea el caso.
118
En la Tabla 4.18 se listan todos los comandos y mensajes de los que hace eso el
protocolo de comunicacin.
119
Nombre
USB_NULL
USB_PC_PRESENT*
USB_USB_PRESENT*
USB_PC_ASKINI*
Cdigo
hexadecimal
0x00
0x01
0x02
0x03
Explicacin
USB_TCMD_DEBUG*
USB_TCMD_DIR*
USB_TCMD_OP*
USB_TCMD_PLAY*
USB_TCMD_VS*
USB_TCMD_LCD*
0x10
0x11
0x12
0x13
0x14
0x15
USB_DIR_GOTO_ROOT
USB_DIR_GOTO
USB_DIR_LIST
USB_DIR_FILE
USB_DIR_ENDDIR
USB_DIR_GET
USB_DIR_GETDATA
USB_DIR_ENDGET
USB_DIR_STOPGETDATA
0x20
0x21
0x22
0x23
0x24
0x25
0x26
0x27
0x28
Ir al directorio root
Ir a el directorio especificado
Pide el listado del directorio actual
Cada uno de los elementos de un directorio
Indica la finalizacin del listado del directorio
Pide obtener un archivo
Manda paquetes de datos del archivo
Indica que ha finalizado la transmisin del archivo
Interrumpe el envo de archivos
USB_OP_RESET
USB_OP_SETVOL
USB_OP_GETVOL
0x30
0x31
0x32
Resetea el dispositivo
Modifica el volumen
Obtiene los valores de volumen
USB_PLAY_PLAY
USB_PLAY_PAUSE
USB_PLAY_STOP
USB_PLAY_ENDPLAY
0x40
0x41
0x42
0x47
USB_VS_HRESET
USB_VS_SRESET
USB_VS_SEND
USB_VS_CMD
USB_VS_BEEP1
USB_VS_TEST_SEND
0x50
0x51
0x52
0x53
0x54
0x55
USB_ACK*
0xAA
Comando de aceptacin (usado en inicializacin)
USB_ACK2*
0xAB
USB_STOPBYTE
0xBB
USB_RECO1
0xCA
USB_CANCEL*
0xDA
USB_ERR1*
0xFA
Cdigo de error 1
USB_ERR2*
0xFB
Cdigo de error 2 .
USB_CMDTUNK*
0xFD
Tipo de comando desconocido
USB_CMDUNK*
0xFE
Comando desconocido
* Estos mensajes no llevan delante un Tipo de Comando
Tabla 4.18 Comandos del protocolo de comunicacin
120
121
122
USB_DIR_FILE
Parmetros: Se envan dos parmetros, un entero de 16 bits indicando el ndice de
la entrada dentro del directorio, y un conjunto de 32 bytes correspondientes a la
entrada del elemento dentro del sistema de archivos FAT16.
Direccin: Reproductor=>PC
Funcin: Enva una entrada (archivo o directorio) del directorio actual. Es la
respuesta del reproductor a un comando USB_DIR_LIST.
USB_DIR_ENDDIR
Parmetros: Sin parmetros
Direccin: Reproductor=>PC
Funcin: Indica que se ha terminado de transferir todas las entradas dentro del
directorio actual. Es el ltimo mensaje que se enva como respuesta al comando
USB_DIR_LIST.
USB_DIR_GET
Parmetros: un entero de 16 bits que indica el archivo a enviar.
Direccin: PC=>Reproductor
Funcin: Pide al reproductor que le transfiera el archivo indicado por el
parmetro. El parmetro indica el ndice dentro del directorio actual que
corresponde al archivo a enviar.
Respuesta: Se enva un conjunto de mensajes USB_DIR_GETDATA con los
datos del archivo, al finalizar el envo se enva USB_DIR_ENDGET. En la
Imagen 4.15 se muestra el funcionamiento del comando USB_DIR_GET.
123
USB_DIR_GETDATA
Parmetros: Se envan dos parmetros, un entero de 16 bits indicando el nmero
de bytes de datos que se envan en el mensaje, y un conjunto de bytes que
corresponden al contenido del archivo.
Direccin: Reproductor=>PC
Funcin: Se enva como respuesta a un comando USB_DIR_GET, enva el
contenido del archivo solicitado. Cada mensaje enva 512 Bytes de datos,
exceptuando el ltimo mensaje, que enva los datos restantes.
USB_DIR_ENDGET
Parmetros: Sin parmetros
Direccin: Reproductor=>PC
Funcin: Indica que se ha terminado de transferir los datos de archivo solicitado.
Es el ltimo mensaje que se enva como respuesta al comando USB_DIR_GET.
USB_DIR_STOPGETDATA
Parmetros: Sin parmetros
Direccin: PC=> Reproductor
Funcin: Interrumpe el envo de datos por parte del reproductor, fruto de un
comando USB_DIR_GET.
Respuesta: USB_ACK
124
USB_OP_GETVOL
Parmetros: Sin parmetros
Direccin: PC=> Reproductor
Funcin: Devuelve un byte con el volumen de reproduccin.
Respuesta: un byte con el volumen y USB_ACK
125
126
4.4.7 Errores
Si durante la comunicacin el reproductor recibe un comando no vlido o no
esperado le devuelve a la aplicacin un mensaje de error. Los mensajes USB_ERR1 y
USB_ERR2 se utilizan durante el proceso de inicializacin. El mensaje
USB_CMDTUNK indica a la aplicacin que el tipo de comando es incorrecto y el
mensaje USB_CMDUNK le indica que el comando es incorrecto.
Si durante la comunicacin existiera algn problema y el reproductor devolviese
mensajes diferentes a USB_ACK o varios mensajes de error seguidos, la aplicacin puede
intentar recuperar la comunicacin borrando los buffers de entrada y salida, y enviando
una serie de comandos USB_NULL.
127
128
129
130
131
40 Existen drivers para todas las versiones de windows superiores al 98, MAC OS X, Linux, Windows CE y
Windows Mobile entre otros.
132
133
Debido a que la librera DLL proporcionada por FTDI no est desarrollada para
.NET ha sido necesario crear un wrapper41 o envoltura mediante la cual poder acceder
desde el resto del cdigo como si se tratase de una librera .NET, encapsulndose as el
interfaz D2XX en las clases FTDevice, FTDeviceInfo y FTManager. Las funciones del
interfaz D2XX incluidas en el wrapper y utilizadas para implementar estas clases son:
public FT_STATUS FT_Open(int deviceNumber, out int pHandle);
public FT_STATUS FT_OpenEx(string pvArg1, FT_OPEN dwFlags, out int
ftHandle);
public FT_STATUS FT_Close(int ftHandle);
public FT_STATUS FT_ReadEE(int ftHandle, int dwWordOffset, out ushort
lpwValue);
public FT_STATUS FT_WriteEE(int ftHandle, int dwWordOffset, ushort
wValue);
public FT_STATUS FT_EraseEE(int ftHandle);
public FT_STATUS FT_Write(int ftHandle, byte[] lpBuffer, int
dwBytesToWriteout, out int lpdwBytesWritten);
public FT_STATUS FT_ListDevices(out int count, int arg2, FT_LIST arg3);
public FT_STATUS FT_OpenEx(IntPtr pArg1, int Flags, out int pHandle);
public FT_STATUS FT_Read(int ftHandle, byte[] lpBuffer, int nBufferSize,
out int lpBytesReturned);
public FT_STATUS FT_CreateDeviceInfoList(out int lpdwNumDevs);
public FT_STATUS FT_GetDeviceInfoDetail(int dwIndex, out int lpdwFlags,
out int lpdwType, out int lpdwID, out int lpdwLocId, StringBuilder
pcSerialNumber, StringBuilder pcDescription, out int ftHandle);
public FT_STATUS FT_GetQueueStatus(int ftHandle, out int
lpdwAmountInRxQueue);
public FT_STATUS FT_Purge(int ftHandle, int dwMask);
public FT_STATUS FT_ResetDevice (int ftHandle);
public FT_STATUS FT_ResetPort (int ftHandle);
public FT_STATUS FT_CyclePort (int ftHandle);
public FT_STATUS FT_GetStatus(int ftHandle, out int lpdwAmountInRxQueue,
out int lpdwAmountInTxQueue, out int lpdwEventStatus);
134
MP3 para que sean reproducidos en tiempo real, estos son almacenados como mensajes en
la cola de prioridad normal. A la vez la aplicacin llama a la funcin de cambio de
volumen, en este caso la librera crea un mensaje que introduce en la cola con mayor
prioridad, de esta forma no es necesario que se enven todos los mensajes encolados antes
de la llamada, y sta es atendida inmediatamente.
Las respuestas devueltas por el reproductor son ledas por un hilo que
peridicamente comprueba el buffer de recepcin. Dependiendo del tipo de respuesta el
hilo introduce nuevos mensajes en la cola de envo o genera los eventos necesarios para
informar a la aplicacin de la informacin que se ha recibido del reproductor.
bool
bool
bool
bool
bool
bool
bool
bool
bool
bool
bool
bool
void
void
void
DIRGotoRoot()
DIRList(bool Prioritario)
DIRGotoDir(short position, bool Prioritario)
DIRGetFile(short position)
PlayFile(short position)
Play_Stop()
Play_Pause()
VS_HardReset()
VS_SoftReset()
VS_SendData(byte [] data)
OP_Volumen(byte Volumen)
OP_ResetDevice()
PurgarRX()
PurgarTX()
PurgarColaEnvio()
135
136
138
139
5.6.3 Streaming
Existen diferentes formas de hacer streaming o difusin de datos multimedia a
travs de internet. En el caso del audio MP3 los datos suelen ser transmitidos por un
servidor a travs del protocolo http indicando como tipo MIME de los datos: audio/mpeg,
audio/x-mpeg-3, audio/mpeg3, audio/mp3 o audio/mpg.
La forma en la que se anuncia en la web la direccin y el puerto donde se
encuentran el servidor que est transmitiendo los datos suele ser mediante un archivo PLS
(playlist o lista de reproduccin). Este archivo es abierto por el reproductor de msica
predeterminado en el ordenador cliente que obtiene la direccin y el puerto del servidor, el
ttulo de la cancin o flujo de datos, y el tamao del archivo (si es un flujo de datos el
tamao es -1)
Formato PLS
Los archivos PLS son archivos de texto que almacenan una lista de reproduccin,
ya sea de archivos locales, remotos o de servidores que emiten un flujo de datos. El
archivo est compuesto por una cabecera, un conjunto de entradas y un pie [PLSREF]43.
La cabecera est compuesta por dos lneas:
[playlist] (Indica el tipo de fichero)
NumberOfEntries=nmero (Indica el nmero de entradas en el fichero)
El formato de las entradas es el siguiente (X es el nmero de la entrada):
FileX=Direccin (Localizacin del fichero o flujo de datos)
TitleX=Ttulo (Ttulo de la pista)
LengthX=Tamao (Tamao en segundos. Si no est definido -1)
El pie del fichero es el siguiente:
Version=2 (Versin del fichero, actualmente 2)
A continuacin se muestra un ejemplo de fichero PLS:
140
[playlist]
NumberOfEntries=2
File1=http://ejemplodeservidor.com:80
Title1=Radio que emite en formato MP3
Length1=-1
File2=http://miservidor.com/cancion.mp3
Title2=Archivo MP3 remoto
Length2=230
Version=2
141
5.6.4 Podcasting
El podcast surgi de los trminos iPod y broadcast, el reproductor iPod de Apple
fue el primero en aceptar scripts para descargar contenido de la web que posteriormente
sera transferido al reproductor. Un podcast es un conjunto de archivos multimedia que se
distribuyen a travs de internet utilizando la sindicacin mediante archivos RSS o atom44.
La aplicacin, al igual que hace con los archivos PLS, captura y descarga los
archivos RSS. En esta ocasin muestra su contenido a travs del navegador web integrado
formateado mediante un fichero de transformaciones XSL (XSLT45) que lo transforma en
un archivo HTML con los enlaces a los elementos sindicados. En la Imagen 5.6 puede
verse un podcast de la universidad de Sevilla.
142
El archivo est compuesto por una etiqueta inicial '<channel>', dentro de esta se
sita la informacin general de todos los elementos contenidos en el podcast: title, link,
copyright, itunes:author, itunes:summary, description, etc. Cada uno de los elementos
sindicados se introducen dentro de '<channel>' mediante la etiqueta '<item>'. Esta
contiene las siguientes etiquetas: title, itunes:author, itunes:subtitle, pubDate,
itunes:duration, etc. El enlace al recurso MP3 se indica mediante la siguiente etiqueta que
contiene la direccin del recurso, el tamao y su tipo: <enclosure
url="http://serv.com/recurso.mp3" length="5650889" type="audio/mpeg" />
143
144
6. Presupuesto y planificacin
6.1 Introduccin
En esta seccin se van a detallar los costes econmicos derivados de la de
realizacin del presente proyecto. Para ello se han dividido los costes agrupndolos segn
la naturaleza de los mismos. Cabe destacar que estos costes corresponden a la realizacin
del prototipo y no corresponden al coste unitario de la produccin en serie del reproductor.
Los costes se han agrupado se la siguiente manera:
Software: aqu se incluye todo el software necesario para la realizacin del
proyecto, pero que no forma parte de l, como sistema operativo, programas
CAD, entornos de programacin, etc.
Herramientas: a este grupo pertenecen todas la herramientas (fsicas) que se han
utilizado para la realizacin del proyecto.
Componentes y fabricacin del PCB: se incluye el coste del circuito impreso y
todos los componentes que la componen.
Mano de obra: coste de los recursos humanos que han sido necesarios.
Por ltimo indicar que el coste de los componentes y materiales de esta seccin
corresponden a precios sin IVA.
145
Precio
Windows XP
Eagle Demo
0.00
Compilador PCWH
320
0.00
SharpDevelop 1.1
0.00
WinPIC800
0.00
IC-Prog
0.00
Total
320
Tabla 6.1 Precio del Software
Hay que recordar que la Tabla 6.1 muestra el precio del producto, el coste
depende del nmero de proyectos que hagan uso de l y por tanto de la amortizacin de
cada uno.
146
Elemento
Precio
Ordenador de sobremesa
850
Herramientas de soldadura
40
15
Microtaladro y brocas
15
Polmetro
10
Osciloscopio
250
Programador JDM
15
Pilas recargables
Total
1.200
Tabla 6.2 Precio de las herramientas
147
Elemento
Precio
45
PIC 18LF452
Pantalla LCD
12
Mdulo USB
18
20
MAX1675
TC110
Tarjeta de memoria
18
Cable USB
2,50
Condensadores
3,50
Resistencias
0,60
Inductancias
1,80
Diodos
0,60
Transistor Mosfet
0,50
Conector MMC
0,30
Interruptor
0,20
Botones
Separadores hexagonales
Espadines
0,50
0,40
Portapilas 2 AA
0,50
Total
133,40
Tabla 6.3 Precio de componentes
46 Valoracin obtenida a partir de las tablas salariales del convenio laboral de Empresas de ingeniera y
estudios tcnicos
148
149
Horas/Hombre
Coste
1.350
27.000
50
600
1.400
27.600
Tabla 6.4 Valoracin del coste de mano de obra.
En la Tabla 6.5 se resumen el coste total del proyecto, no obstante hay que
recordar que los costes de software y herramientas utilizadas son los precios de los
mismos, y su coste real depende de los proyectos que se realicen con ellos y su
amortizacin.
Concepto
Software
320
Herramientas
1.200
Componentes
133,40
Mano de obra
27.600
Total
29.253,40
Tabla 6.5 Coste total del proyecto
150
Coste
151
152
Permitir la grabacin de audio en formato MP3, para ello habra que cambiar el
integrado de decodificacin de MP3 por otro que permita tambin la
codificacin (por ejemplo el MAS3587F)
153
2. Especificaciones tcnicas
A continuacin se listan las especificaciones del reproductor:
Decodificacin
Tarjeta de memoria
Sistema de archivos
Pantalla
Alimentacin
Interfaz USB
Resolucin del DAC
Canales
Respuesta en frecuencia
47
Rango dinmico
Relacin Seal/Ruido
Salida de audio
48
Consumo
Autonoma49
47 Datos de rango dinmico y relacin S/R segn especificaciones del decodificador de MP3.
48 Consumo mximo en reproduccin, depende de varios factores, como el volumen del audio.
49 Autonoma aproximada, depende principalmente de la capacidad de las pilas.
154
4. Reproductor
4.1 Vista general y controles
155
En la Imagen I.1 puede verse una visin general del reproductor, en la que
destacan lo siguientes elementos:
Botonera, compuesta de 6 botones (subir volumen, bajar volumen,
opciones/archivos, anterior, reproducir/pausar y siguiente)
Pantalla LCD
Pilas, dos pilas AA.
Conector USB
Interruptor de encendido/apagado
Conector de salida de audio.
Jumpers auriculares/salida en lnea, seleccionan si en la salida de audio se van a
conectar unos auriculares (jumpers conectados) o se va a usar de salida en lnea
(jumpers sin conectar).
Tarjeta de memoria, del tipo Multimedia Card o Secure Digital.
156
157
El icono
indica que estamos escuchando un archivo MP3.
El icono
indica el modo de reproduccin, en este caso normal (reproduccin
de los archivos segn el orden en el directorio).
A continuacin aparece la tasa de bit, puede ir de 8 kbps a 320 kbps. Si se est
reproduciendo un archivo con tasa de bit variable (VBR) este nmero ir
cambiando.
Debajo de la tasa de bit aparece la frecuencia de muestreo del archivo MP3, las
valores posibles son: 8 kHz, 11 kHz, 12 kHz, 16 kHz, 22 kHz, 24 kHz, 32 kHz,
44 kHz, 48kHz .
Arriba a la derecha aparece un icono que indica si se trata de un archivo estreo
o monofnico. Si el archivo es estreo aparece el icono
, si es monofnico
aparece . Si est activada la opcin differential y el archivo es estreo se crea
un Virtual Surround y aparece el icono
, si se trata de un archivo mono
aparece
.
Debajo de este icono aparece la palabra BASS o NORM dependiendo de si
est activada la opcin de realce de bajos o no.
En la siguiente lnea aparece el nmero del archivo dentro del directorio, el
tiempo de reproduccin y un grfico de barras que indican el nivel del volumen.
En las tres siguiente lneas aparece la informacin extrada de la etiqueta ID3
del archivo. En las dos primeras lneas aparece el ttulo de la cancin, y en la
siguiente aparece el autor y el lbum entre parntesis, mediante un texto
deslizante.
4.4 Utilizacin
Antes de empezar a utilizar el reproductor hay que asegurarse de que la tarjeta de
memoria est insertada y no extraerla mientras est encendido. Se han de utilizar pilas de
tamao AA, si se va a conectar el reproductor al puerto USB del ordenador estas han de
ser recargables. El reproductor puede utilizarse sin pilas si est conectado al puerto USB,
ya que se alimenta de ste.
159
Reproduccin de un archivo
Una vez encendido el reproductor la pantalla muestra la apariencia de la Imagen
I.3. En este momento se puede presionar el botn de Reproducir para comenzar la
reproduccin del primer archivo MP3 del directorio raz.
Si se desea reproducir un archivo en concreto se puede seleccionar accediendo a
la lista de archivos. Para ello se ha de presionar el botn Opciones/Archivos, sto abrir
un navegador que permite acceder al rbol de directorios y archivos de la memoria
(Imagen I.4). Los botones Siguiente y Anterior cambian el elemento seleccionado, y
el botn Reproducir inicia su reproduccin en caso de que se trate de un archivo MP3.
En caso de que el elemento seleccionado sea un directorio el botn Reproducir entra
dentro de l.
Cuando finaliza la reproduccin de un archivo comienza a reproducirse el
siguiente archivo dentro del directorio, en caso de tratarse del ltimo archivo dentro del
directorio finaliza la reproduccin.
Controles de reproduccin
Durante la reproduccin se puede cambiar de archivo presionando los botones
Siguiente y Anterior, que inician la reproduccin de los archivos siguiente y anterior
respectivamente del archivo en ese momento en reproduccin.
Para pausar la reproduccin se ha de presionar el botn Reproducir una vez,
esto pausa la reproduccin y permite retomarla en el punto en el que se ha quedado. Para
volver a retomar la reproduccin hay que presionar de nuevo el botn Reproducir.
Si se desea detener totalmente la reproduccin de un archivo se ha de presionar de
forma continuada el botn Reproducir durante un par de segundos.
Control de volumen
Para aumentar o disminuir el volumen de audio del reproductor se ha de presionar
los botones Subir volumen o Bajar volumen. No es necesario que el reproductor est
reproduciendo para cambiar el nivel de volumen. Los cambio realizados se almacenan de
forma que sern recordados la prxima vez que se encienda el reproductor.
El nivel del volumen puede verse en la pantalla representado por un conjunto de
barras, como poda verse en la Imagen I.6.
Men de opciones
Para entrar en el men de opciones se debe presionar el botn
Opciones/Archivo durante la reproduccin de un archivo. El men de opciones puede
verse en la Imagen I.5, las opciones son: BASS, Virtual Surround y Reproduccin
160
Normal50. Al igual que con el listado de archivos, se utilizan los botones Siguiente y
Anterior para cambiar el elemento seleccionado, y el botn Reproducir para activar o
desactivar la opcin. Para salir del men de opciones sin efectuar ningn cambio se
presiona de nuevo el botn Opciones/Archivo.
El icono delante del nombre de la opcin indica si sta est activada o
desactivada. En caso de estar activada aparece el icono
y si est desactivada
.
5 Aplicacin
5.1 Instalacin
Antes de iniciar la instalacin de la aplicacin de control del reproductor MP3
han de estar instaladas una serie de drivers y libreras.
Instalacin de Microsoft .NET Framework 2.0
En primer lugar se ha de instalar el .NET Framework 2.0 de Microsoft que se
encuentra en el CD de instalacin adjunto o se puede descargar la la pgina web de
Microsoft:
http://www.microsoft.com/downloads/details.aspx?FamilyID=0856eacb-43624b0d-8edd-aab15c5e04f5&displaylang=es
50 Solo est disponible el modo de reproduccin normal, en futuras actualizaciones pueden incluirse otros
modos de reproduccin, como el aleatorio.
161
Instalacin de la aplicacin
Una vez instalado el Framework .NET y los drivers del controlador USB se puede
proceder a la instalacin de la aplicacin. Para ello se ejecuta el archivo de instalacin y
se siguen los pasos indicados. Se trata de una instalacin estndar, las ventanas del
proceso de instalacin pueden verse en las imgenes: Imagen I.8, Imagen I.9, Imagen I.10
y Imagen I.11.
162
163
164
Esto abre en la aplicacin una ventana con un reproductor con los controles
bsicos de reproduccin y un pequeo analizador de espectro del audio que est sonando,
tal y como se muestra en la Imagen I.19. Es necesario que el ordenador tenga una tarjeta
de sonido y unos altavoces conectados para poder escuchar audio.
166
167
Para aadir archivos a la lista de reproduccin tan solo hay que arrastrar los
archivos deseados de una ventana del explorador a la aplicacin. Se pueden aadir tanto
archivos MP3 como archivos PLS (listas de reproduccin) como se muestra en la Imagen
I.21.
5.7 Streaming
El reproductor permite reproducir flujos de datos MP3 descargados de internet
directamente, sin necesidad de ser almacenados ni en el ordenador ni en la tarjeta de
memoria. Estos pueden ser archivos MP3 (podcast por ejemplo) o flujos de datos
transmitidos en tiempo real, como una radio a travs de internet. Para ello hay que
seleccionar una de las opciones del men dentro de la seccin Streaming. Existen dos
subsecciones dentro de Streaming: Podcasting e Internet Radio.
Podcasting
Dentro de la subseccin Podcasting se encuentra la opcin Podcasters
Favoritos, aqu se guardan una lista de las direcciones de podcasting favoritas del
168
usuario. En la Imagen I.23 puede verse la apariencia de la lista, que contiene enlaces para
borrar y aadir direcciones.
169
Internet Radio
Adems de archivos MP3 la aplicacin puede mandar al reproductor flujos de
audio en formato MP3 que descarga de la red a partir de fuentes que transmiten el
contenido en tiempo real, como son las radios. El funcionamiento es similar al del
Podcasting, pero esta vez los enlaces no apuntan a archivos MP3 sino a servidores que
transmiten dicho contenido o a archivos PLS (listas de reproduccin) que contienen la
direccin de dichos servidores.
Dentro de la subseccin Internet Radio hay dos opciones:
ShoutCast: Pgina web con cientos de radios que emiten codificando el audio
en formato MP3.
Radios Favoritas: Similar a Poscasters Favoritos pero en este caso se
almacena la direccin del servidor o archivo PLS de la radio en cuestin.
170
Posicin
Descripcin
Tamao
0x000
Cdigo ejecutable
446 bytes
0x1BE
1 Particin
16 bytes
0x1CE
2 Particin
16 bytes
0x1DE
3 Particin
16 bytes
0x1EE
4 Particin
16 bytes
0x1FE
2 bytes
51 Se utilizar 'disco' de manera genrica, ya que la estructura es igual tanto en discos duros como en
tarjetas de memoria.
171
Posicin
relativa
Descripcin
Tamao
0x00
1 byte
0x01
1 byte
0x02
2 bytes
0x04
Tipo de particin
(0x04=FAT16 de menos de 32MB; 0x08=FAT16 de ms de
32MB)
1 byte
0x05
1 byte
0x06
2 bytes
0x08
4 bytes
0x0C
4 bytes
172
Posicin
relativa
Descripcin
Tamao
0x00
Cdigo de salto
3 bytes
0x03
OEM ID
8 bytes
0x0B
2 bytes
0x0D
1 byte
0x0E
Sectores reservados
2 bytes
0x10
1 byte
0x11
2 bytes
0x13
2 bytes
0x15
1 byte
0x16
2 bytes
0x18
2 bytes
0x1A
Nmero de cabezales
2 bytes
0x1C
4 bytes
0x20
4 bytes
0x24
2 bytes
0x26
1 byte
0x27
4 bytes
0x2B
11 bytes
0x36
8 bytes
0x3E
Cdigo ejecutable
0x1FE
448 bytes
2 bytes
Gracias a los datos que se pueden extraer del sector de arranque de la particin
podemos localizar las tablas de particin (FAT), el directorio raz y el rea de datos, as
como conocer diferentes parmetros importantes, como el tamao del sector, los sectores
por cluster, nmero de sectores, etc. En la Tabla II.4 se describe como calcular la posicin
de los diferentes elementos de la particin a partir de los datos extrados del sector de
arranque.
Elemento
Posicin
Sector de arranque
Inicio de la particin
Tablas FAT
Directorio raz
rea de datos
Hay que recordar que todas estas posiciones hacen referencia a sectores, por tanto
hay que multiplicar por el nmero de bytes por sector para obtener la posicin en bytes.
173
fichero.
El tamao de cada cluster depende del tamao del disco y se obtiene del sector de
arranque de la particin. En la Tabla II.5 se muestran los tamaos de cluster asociados al
tamao de la particin.
174
Tamao de la particin
0 MB 32 MB
512 bytes
33 MB 64 MB
1 KB
65 MB 128 MB
2 KB
129 MB 255 MB
4 KB
256 MB 511 MB
16
8 KB
512 MB 1023 MB
32
16 KB
1024 MB 2047 MB
64
32 KB
2048 MB 4095 MB
128
64 KB
(solo compatible en algunos
sistemas)
Tabla II.5 Tamaos de cluster segn tamao de particin
Tamao
Descripcin
0x00
8 bytes
0x08
3 bytes
0x0B
1 byte
Atributos
0x0C
10 bytes
Reservados
0x16
2 bytes
0x18
2 bytes
0x1A
2 bytes
Cluster inicial
0x1C
4 bytes
Tamao del archivo (0 si se trata de un directorio)
Tabla II.6 Estructura de entrada de directorio
El byte de atributos est compuesto por un conjunto de bits, cada uno representa
un atributo que puede tener o no el archivo. Los atributos son:
Bits del 7-6: Reservados
Bit 5: Archivo. Si este bit es 1 significa que ha sido modificado desde la
ltima copia de seguridad.
Bit 4: Directorio. Es 1 si la entrada es de un directorio.
Bit 3: Nombre de volumen. El nombre del archivo es el nombre del
volumen.
175
176
Bibliografa
[Aguayo04]
[AN232B02]
[AN232B03]
[AN232B04]
[AN232B06]
[AN232B07]
[AN232R04]
[Anderson01]
[AmontecLCD]
[Axelson05]
[Buchmann]
[BZX85C]
[DG245]
[DLPUSB245M]
177
[Dobiash99]
[FraunHist]
[FT245BM]
[FTDID2XX]
[Fujitsu00]
[Hacker00]
[Harrison04]
[HITACHI03]
[Hung]
[ID3ORG]
[IEEE97]
[Lagerstm01]
[Linden02]
[MAX1675]
178
[Microsoft99]
[MP3RefHist]
[MPManReview]
[Noll00]
[Pan93]
[Pan95]
[PCD8544]
[PIC18FXX2]
[PJB100]
[PLSREF]
[PODCASTREF]
[Samsung]
[Samsung04]
[SanDisk03]
[TC115]
[VargasDuque01]
179
[VS1001K]
180