View/Open - Universidad Católica de Pereira

Anuncio
SISTEMA DE CONTROL Y TARIFICACIÓN DE TIEMPO PARA CONSOLAS DE
VIDEOJUEGOS
DIEGO FERNANDO FIGUEROA VILLEGAS
UNIVERSIDAD CATÓLICA POPULAR DEL RISARALDA
FACULTAD DE CIENCIAS BÁSICAS E INGENIERÍA
PEREIRA - 2010
SISTEMA DE CONTROL Y TARIFICACIÓN DE TIEMPO PARA CONSOLAS DE
VIDEOJUEGOS
DIEGO FERNANDO FIGUEROA VILLEGAS
PROYECTO DE GRADO
Asesor
GUILLERMO CÉSPEDES
Ingeniero Electrónico
UNIVERSIDAD CATÓLICA POPULAR DEL RISARALDA
PROGRAMA DE INGENIERÍA DE SISTEMAS Y TELECOMUNICACIONES
PRACTICAS PROFESIONALES
PEREIRA
2010
DERECHOS DEL AUTOR
Las bases fundamentales para el desarrollo de este proyecto se adquirieron en el
transcurso del programa académico universitario, gracias al conocimiento y
enseñanza de excelentes docentes, por este motivo es un deseo autorizar a la
universidad Católica Popular del Risaralda a incluir el presente proyecto de grado
dentro de su catalogo de consulta de la Biblioteca y permitir el acceso a todas las
personas interesadas en su contenido, respetando la propiedad intelectual del
mismo.
AGRADECIMIENTOS
Agradezco los dos asesores que me acompañaron en el transcurso del desarrollo
de presente proyecto, en primera instancia a James Andrés Barrera quien me
aporto grandes ideas para el mejoramiento del proyecto y en segunda a Guillermo
Céspedes, quien me brindo su conocimiento, apoyo y tiempo para llevar a cabo
este proyecto. Agradezco a mis padres por su apoyo incondicional y a mis
compañeros de estudio por su colaboración.
DEDICATORIA
Este proyecto va dedicado a Dios, que me ha permitido llegar hasta el final de mi
carrera universitaria, quien me ha llenado de fuerza y motivación en los malos
momentos. Pero en especial va dedicado a mi familia, que siempre me ha
apoyado en mis metas y sueños, que al igual que yo se han esforzado para sacar
adelante mi carrera profesional, y que con su ejemplo y carácter han hecho de mí
un ser humano integral.
RESUMEN
Los centros de entretenimiento son una fuente de diversión tanto para jóvenes
como adultos. En la actualidad hay una gran cantidad de estos centros dedicados
a ofrecer servicios de entretenimiento basados en videojuegos.
El presente proyecto está enfocado al servicio de renta o alquiler de consolas de
videojuegos en los centros de entretenimiento, ya que una gran parte de estos
utilizan métodos rudimentarios para realizar el control y tarifación del servicio.
El objetivo principal es diseñar y construir un sistema computacional y electrónico
que permita administrar, controlar y facturar el servicio de renta o alquiler de
consolas de videojuegos.
Con este proyecto se pretende ofrecer una solución a los problemas de control y
administración de los centros de entretenimiento, automatizando las actividades
de asignación de tiempo, tarificación y generación de reportes de venta.
El control y la tarifación del servicio de alquiler de las consolas de videojuegos se
logra a través de un circuito electrónico encargado de bloquear y desbloquear la
señal de video entre la consola y el TV, de acuerdo al tiempo de uso programado
en un software especial de computadora que se comunica con el dispositivo vía
USB y ofrece entre otras, funcionalidades como: autenticación y asignación de
privilegios de usuario, creación de consolas y tarifas, generación y consulta de
reportes de venta.
Palabras claves: consolas de videojuegos, microcontrolador, tarjeta de control,
comunicación USB, Firmware, Software.
ABSTRACT
Entertainment centers are a source of enjoyment for both young and old. Currently
there are a lot of these centers are dedicated to providing entertainment services
based on video games.
This project is focused on the service of renting or leasing of video game consoles
in entertainment centers, already a great part are using rudimentary methods for
controlling and charging for the service.
The main objective is to design and build a computer and electronic system that
allows to manage, monitor and bill the service of renting or leasing of video game
consoles.
This project tries to provide a solution to the problems of management and control
of the entertainment centers by automating the activities of time assignment,
pricing and reporting of sales.
Control and charging for the rental service video game consoles is achieved
through an electronic circuit in charge of locking and unlocking the video signal
between the console and TV, according to the time of use programmed into a
special computer software that communicates to the device via USB and offers
among others, features such as authentication and assignment privileges of user,
creating consoles and fees, generation and query sales reports.
Keywords: game consoles, microcontroller, control card, USB communication,
Firmware, Software.
CONTENIDO
Pág.
INTRODUCCIÓN ................................................................................................... 15
1. FORMULACIÓN DEL PROYECTO ................................................................. 17
1.1.
SITUACIÓN ACTUAL ............................................................................... 17
1.2.
DEFINICIÓN DEL PROBLEMA ................................................................ 17
1.3.
OBJETIVO GENERAL .............................................................................. 18
1.4.
OBJETIVOS ESPECÍFICOS ..................................................................... 18
1.5.
JUSTIFICACIÓN ....................................................................................... 19
1.6.
PLANTEAMIENTO DE LA HIPÓTESIS .................................................... 19
1.7.
IDENTIFICACIÓN DE VARIABLES .......................................................... 20
1.8.
PRESUPUESTO ....................................................................................... 21
1.9.
CRONOGRAMA DE ACTIVIDADES DEL PROYECTO............................ 22
2. MARCO CONTEXTUAL .................................................................................. 23
2.1.
DESCRIPCIÓN DEL CONTEXTO ............................................................ 23
2.2.
ESTADO DEL ARTE................................................................................. 23
2.3.
ORGANIZACIÓN QUE IMPACTARÁ EL PROYECTO ............................. 29
2.3.1.
Tipo de organización .......................................................................... 29
2.3.2.
Objeto social ...................................................................................... 29
2.3.3.
Servicios ............................................................................................. 29
2.3.4.
Organigrama general de un centro de entretenimiento ...................... 30
3. MARCO TEÓRICO .......................................................................................... 31
3.1.
INTERFAZ DE COMUNICACIÓN ............................................................. 31
3.1.1.
3.2.
Interfaz Bus Serial Universal (USB) ................................................... 31
MICROCONTROLADORES ..................................................................... 43
3.2.1.
Gama de PICs .................................................................................... 45
3.2.2.
Arquitecturas de los Pics .................................................................... 47
3.2.3.
Registros ............................................................................................ 51
3.2.4.
Contador de programas ..................................................................... 52
3.2.5.
Puertos de entrada y salida E/S ......................................................... 52
3.2.6.
Interrupciones .................................................................................... 52
3.2.7.
Oscilador externo ............................................................................... 52
3.2.8.
Temporizador o TIMER ...................................................................... 53
3.2.9.
Programación en microcontroladores................................................. 54
3.2.10.
Compilador PCW CCS para microcontroladores ............................ 58
3.2.11.
Software de simulación de circuitos Proteus................................... 60
3.3.
CONECTORES ........................................................................................ 61
3.3.1.
RCA.................................................................................................... 61
3.3.2.
HDMI .................................................................................................. 62
4. MODELO TEÓRICO ....................................................................................... 64
4.1.
REQUERIMIENTOS PARA EL DESARROLLO DEL SOFTWARE .......... 64
4.2.
SOLUCIÓN PROPUESTA ........................................................................ 64
4.3.
DISEÑO DE LA TARJETA DE CONTROL ............................................... 65
4.4.
COMPONENTES UTILIZADOS ................................................................ 68
4.4.1.
PIC18F4550 ....................................................................................... 68
4.4.2.
ULN2803 ............................................................................................ 70
4.4.3.
Comunicación USB ............................................................................ 72
4.5.
DESARROLLO DE LA TARJETA DE CONTROL ..................................... 73
4.6.
DESARROLLO DEL FIRMWARE PARA EL PIC18F4550 ........................ 76
4.7.
DESARROLLO DEL CIRCUITO IMPRESO.............................................. 81
4.7.1.
Bloque de control ............................................................................... 82
4.7.2.
Bloque de potencia............................................................................. 85
4.7.3.
Bloque de switcheo ............................................................................ 87
4.8.
EL SOFTWARE PARA EL PC .................................................................. 87
4.8.1.
Requerimientos funcionales y no funcionales .................................... 88
4.8.2.
Requerimientos del sistema ............................................................... 89
4.8.3.
Caso de uso general del sistema ....................................................... 90
4.8.4.
Diseño y desarrollo del software ........................................................ 90
4.8.5.
Diseño de la base de datos ................................................................ 96
5. CONCRECIÓN DEL MODELO ....................................................................... 99
5.1.
PRUEBAS DE RECONOCIMIENTO E INSTALACIÓN ............................ 99
5.2.
PRUEBAS DE COMUNICACIÓN Y FUNCIONAMIENTO ...................... 103
5.3.
PRUEBAS DE INTEGRACIÓN ............................................................... 105
6. CONCLUSIONES .......................................................................................... 109
7. RECOMENDACIONES ................................................................................. 111
BIBLIOGRAFÍA .................................................................................................... 112
LISTA DE TABLAS
Pág.
Tabla 1. Presupuesto del proyecto ........................................................................ 21
Tabla 2. Cronograma de actividades del proyecto ................................................. 22
Tabla 3. Codificación numérica y de color de los conductores del cable USB ....... 36
Tabla 4. Distribución de colores en RCA ............................................................... 62
Tabla 5. Tipos y rata de transferencia en USB ...................................................... 74
Tabla 6. Opciones de configuración del oscilador para la operación USB ............. 77
LISTA DE FIGURAS
Pág.
Figura 1. Organigrama de una organización dedicada al alquiler de consolas de
videojuegos ............................................................................................................ 30
Figura 2. Conector TIPO A y TIPO B, con sus correspondientes ranuras de
inserción ................................................................................................................ 34
Figura 3. Dimensiones en mm. de los conectores ................................................. 35
Figura 4. Sección de un cable USB ....................................................................... 36
Figura 5. Diagrama de pines de conector TIPO A y TIPO B .................................. 37
Figura 6. Flujo de comunicaciones en USB ........................................................... 42
Figura 7. Diagrama de un sistema microcontrolador. ............................................ 48
Figura 8. Arquitectura von Neumann. .................................................................... 48
Figura 9. Arquitectura de Harvard. ......................................................................... 49
Figura 10. Esquema de un Oscilador..................................................................... 53
Figura 11. Ejemplo de simulación de circuitos en ISIS Proteus ............................. 60
Figura 12. Ejemplo de diseño de circuitos impresos en ARES Proteus ................. 61
Figura 13. Conexión general del sistema de control y tarifación ............................ 67
Figura 14. Disposición de pines del microcontrolador PIC18F4550....................... 69
Figura 15. Diagrama interno del integrado ULN2803............................................. 70
Figura 16. Diagrama de una sección del integrado ULN2803 ............................... 71
Figura 17. Conexión de transistores Darlington ..................................................... 71
Figura 18. Conexión de pines en el conector USB ................................................ 73
Figura 19. Conexión del conector USB al PIC18F4550 ......................................... 73
Figura 20. Conexiones detalladas entre en puerto USB y el PIC18F4550 ............ 75
Figura 21. Conexiones detalladas con el ULN2803 ............................................... 75
Figura 22. Esquema simplificado de la tarjeta de control desarrollado en
PROTEUS 7.6........................................................................................................ 76
Figura 23. Diagrama detallado de conexión del bloque de control. ....................... 83
Figura 24. Top Layer del bloque de control ........................................................... 84
Figura 25. Top Overlay del bloque de control ........................................................ 84
Figura 26. Diagrama detallado de conexión del bloque de potencia...................... 85
Figura 27. Top Overlay del bloque de potencia ..................................................... 86
Figura 28. Top Layer del bloque de potencia ......................................................... 86
Figura 29. Caso de uso general del software de control y tarifación...................... 90
Figura 30. Interfaz validar usuario.......................................................................... 91
Figura 31. Interfaz registrar usuario ....................................................................... 91
Figura 32. Interfaz asignar tiempo ......................................................................... 92
Figura 33. Interfaz cancelar tiempo........................................................................ 92
Figura 34. Interfaz consultar información ............................................................... 93
Figura 35. Interfaz reporte de venta ....................................................................... 93
Figura 36. Modelo relacional de la base de datos.................................................. 96
Figura 37. Reconocimiento del dispositivo por parte del PC .................................. 99
Figura 38. Solicitud de ubicación manual del driver del dispositivo ..................... 100
Figura 39. Ubicación manual del driver del dispositivo ........................................ 100
Figura 40. Selección manual del driver del dispositivo ........................................ 101
Figura 41. Instalación del driver del dispositivo ................................................... 101
Figura 42. Notificación de driver instalado correctamente ................................... 102
Figura 43. Reconocimiento del hardware en el administrador de dispositivos del
PC ........................................................................................................................ 102
Figura 44. Transmisión de datos al microcontrolador .......................................... 104
Figura 45. Ejecución de tareas programadas en el microcontrolador .................. 104
Figura 46. Escenario de prueba de integracion ................................................... 105
Figura 47. Interconexión de los bloques de la tarjeta de control .......................... 106
Figura 48. Interconexión de la consola de videojuegos y la tarjeta de control ..... 106
Figura 49. Interconexión de todos los dispositivos............................................... 107
Figura 50. Activación de la consola en el software del PC .................................. 107
Figura 51. Verificación de la activación de la consola.......................................... 108
INTRODUCCIÓN
En la actualidad los seres humanos buscan continuamente diferentes formas de
diversión y entretenimiento ya que es prácticamente una necesidad que poseen
tanto ricos como pobres, (ASSEL, 1999), a partir de esto se puede comprender
porque la industria del entretenimiento obtiene tan altos márgenes de utilidad,
pues no discrimina sexo, estrato socioeconómico ni lugar de nacimiento, debido a
que es una necesidad innata en todo ser humano el poder tener un mínimo de
recreación.
En consecuencia se observa que existen diferentes formas en las que la industria
del entretenimiento se manifiesta, como es el caso del cine, los deportes y por
supuesto los videojuegos, este es un sector que presenta grandes crecimientos y
se ha extendido prácticamente por todo el mundo incluso en países en vía de
desarrollo, debido a que en el mercado compiten grandes empresas con altos
presupuestos tales como SONY, MICROSOFT, NINTENDO, los cuales son
creadores y distribuidores de videoconsolas. (aDeSe, 2009).
Entendemos por videojuegos todo tipo de juego digital basado en la interacción de
una o varias personas y un aparato electrónico, con independencia de su soporte
(ROM interno, disco magnético u óptico, on-line) y plataforma tecnológica
(máquina de bolsillo, videoconsola conectable al TV, teléfono móvil, máquina
recreativa, microordenador, ordenador de mano, vídeo interactivo). (MARQUES
PERE, 2001).
En la actualidad las consolas de videojuegos tienen un papel importante en la
recreación y aprovechamiento del tiempo libre para gran cantidad de niños y
jóvenes, ya que a diferencia de las PCs no requieren gasto de horas de
mantenimiento, reinstalación, resolución de problemas, remoción de virus y otras
cuestiones. Debido a los altos precios de estos dispositivos combinados con los
costos de cada videojuego se hace difícil su adquisición en los hogares de
estratos medios y bajos.
El interés de los jóvenes por la utilización de los videojuegos es evidente y se
corrobora con sólo dar un vistazo al crecimiento de centros o salas de
15
videojuegos, donde se reúnen los jóvenes de manera individual o en grupos a
jugar por horas. Como evidencia de esto solo en Bogotá la Cámara de Comercio
registró durante los últimos tres años 3798 empresas en la categoría de “Otras
actividades de esparcimiento", que corresponde a las salas de videojuegos.
(ROMERO, 2007).
Aprovechando esto, el proyecto será dirigido a este entorno en especial, ya que es
un mercado que se expande rápidamente como medio de entretenimiento e
interacción, dado que cada vez más los jóvenes prefieren acudir a dichos centros
de entretenimiento a pasar su tiempo libre que tener acceso a un sistema de
videojuegos propio por la escases de recursos y la rápida depreciación de los
equipos por el avance de la tecnología en este campo. Así mismo cada usuario no
tiene que preocuparse por el mantenimiento y reparación del los equipos si fuese
necesario, ya que dicha operación le corresponde a la empresa.
Con el fin de mejorar el control y la administración de los centros de
entretenimiento que prestan el servicio de alquiler de consolas de videojuegos,
este proyecto plantea diseñar y desarrollar un sistema que permita controlar y
administrar el tiempo de uso de cada consola y llevar un reporte detallado y
efectivo de las ventas generadas, con el propósito de optimizar el tiempo de uso
de cada uno de estos dispositivos y realizar una tarificación eficiente de los
servicios prestados, automatizando los métodos de conteo de tiempo y reporte de
ventas.
En este documento se presenta el diseño y construcción de un dispositivo
electrónico para controlar el tiempo de uso de cada consola de videojuegos,
utilizando un microcontrolador como parte central del circuito. Además de esto se
plantea el desarrollo de una aplicación software que permite la administración y la
comunicación con el dispositivo electrónico a través de una interfaz USB, que
permite además de otras características, asignar el tiempo de alquiler de cada
consola y almacenar en una base de datos los reportes de ventas generados.
16
1. FORMULACIÓN DEL PROYECTO
1.1.
SITUACIÓN ACTUAL
En la actualidad la mayoría de los centros de entretenimiento dedicados a la renta
de consolas de videojuegos llevan una administración, control y tarificación
totalmente manual. Cuando un usuario solicita la prestación del servicio, un
operario encargado desarrolla las siguientes labores:
 Ubica al usuario en la consola deseada o para la cual es compatible el
juego seleccionado.
 Enciende la consola y los demás dispositivos audiovisuales manualmente y
solicita al usuario el tiempo que va a utilizar el servicio.
 El operario revisa periódicamente un cronometro o un reloj para determinar
cuándo se agota el tiempo solicitado por el usuario y le informa a este.
 Realiza el cálculo manualmente de acuerdo a la tarifa establecida para
determinar el precio que debe cancelar el usuario.
 Registra la venta en hojas de cálculo o cuadernos de contabilidad con la
fecha, hora y saldo cancelado.
1.2.
DEFINICIÓN DEL PROBLEMA
El conteo del tiempo resulta ser rudimentario y poco exacto, ya que el operario
debe estar revisando constantemente en un reloj el tiempo transcurrido de cada
usuario que se encuentre utilizando el servicio en las consolas de videojuegos,
para determinar cuándo culmina el tiempo asignado, lo que lleva a que el tiempo
de uso de las consolas difiera con el tiempo real contratado y hace que el usuario
se sienta insatisfecho con el servicio o que el centro de entretenimiento tenga
perdidas por una mala contabilización y administración del tiempo.
La tarificación se hace lenta e inefectiva, debido a que el cajero debe realizar el
cálculo manual del dinero a cobrar, relacionando el tiempo de uso del servicio y la
tarifa establecida por la empresa, provocando errores en las tarifas cobradas al
usuario.
17
El reporte de ventas se hace manualmente estableciendo la fecha, tiempo, hora y
saldo cancelado por cada usuario en formatos u hojas de cálculo. Para la consulta
de ventas se debe hacer todo el proceso contable hasta el periodo fijado. Este
proceso es lento, incompleto, inexacto y propenso a errores ya que el cajero se
puede equivocar al momento de digitar los datos de cada venta o puede obviar u
olvidar datos importantes en cada reporte generando desconfianza en las
consultas de resultados de ventas de la empresa.
1.3.
OBJETIVO GENERAL
Diseñar y construir un dispositivo electrónico el cual asistido por una aplicación
software permita administrar, controlar y facturar el servicio de renta o alquiler de
consolas de videojuegos.
1.4.
OBJETIVOS ESPECÍFICOS
 Conocer y analizar las variables que se presentan en el control y tarifación
del servicio de alquiler de consolas de videojuegos.
 Buscar teorías o planteamientos que permitan solucionar los problemas de
tarifación que presentan las salas de videojuegos
 Diseñar y construir un dispositivo electrónico que permita el control de las
consolas de videojuegos de un centro de entretenimiento específico.
 Desarrollar una aplicación software que permita la comunicación con el
dispositivo electrónico y origine la tarifación de cada consola de
videojuegos.
18
1.5.
JUSTIFICACIÓN
El éxito en la prestación de servicios de entretenimiento enfocados a los
videojuegos, está basado en las características de las videoconsolas y la
capacidad de los videojuegos de recrear entornos y situaciones reales
virtualmente. Esto ha llevado a que los centros de entretenimiento que prestan
este servicio además de adquirir consolas de videojuegos con buenas
características tecnológicas, requieran adoptar sistemas que les permitan controlar
y tarificar de manera eficiente el servicio que se presta, sin dejar de lado el fin
último que es brindar un ambiente de entretenimiento y recreación para los
usuarios.
La justificación de este proyecto radica en mejorar la gestión, control, asignación y
tarifación del tiempo de uso de las videoconsolas, acelerando este proceso, al
mostrar información detallada y exacta de ventas, generando menores retardos en
la tarificación del servicio, automatizando actividades rutinarias y mejorando la
calidad en la prestación del servicio.
Por tal motivo se hace importante este proyecto con el fin de delegar tareas de
rutina a una aplicación Software que en interacción con un dispositivo electrónico
de control, administren eficientemente y tarifiquen de una manera exacta el tiempo
de uso o alquiler de las videoconsolas, proporcionando rapidez y confiabilidad
para los usuarios y la organización a la hora de prestar el servicio de
entretenimiento.
1.6.
PLANTEAMIENTO DE LA HIPÓTESIS
A través del presente proyecto se pretende:
 Mejorar el sistema de control y tarificación en los centros de entretenimiento
que ofrecen el servicio de alquiler de consolas de videojuegos.
19
 Automatizar las actividades de asignación de tiempo, tarificación,
generación de reportes y control de videoconsolas en las salas de
videojuegos.
 Controlar de manera eficiente los servicios que presta la organización,
experimentando una notable mejoría en tiempo y costos, ya que la
administración del uso de las videoconsolas se realizará por medio de un
dispositivo electrónico que interactúa con un software especializado.
1.7.
IDENTIFICACIÓN DE VARIABLES
Variables independientes
Es aquella característica o propiedad que se supone ser la causa del fenómeno
estudiado. En investigación experimental se llama así, a la variable que el
investigador manipula (HAYMAN, 1991). Para el proyecto propuesto, las variables
independientes son:
 Tiempo
 Costos
 Servicio de alquiler
Variables dependientes
En este proyecto se define como propiedad o característica que se trata de
cambiar mediante la manipulación de la variable independiente (HAYMAN, 1991).
La variable dependiente es el factor que es observado y medido para determinar el
efecto de la variable independiente. Para el proyecto propuesto, las variables
dependientes son:
 Eficiencia
 Tarifación
 Rentabilidad
20
1.8.
PRESUPUESTO
DESCRIPCIÓN
CANTIDAD
VALOR
UNITARIO ($)
VALOR TOTAL
($)
Microcontrolador PIC18F4550
1
25000
25000
Integrado ULN2803
1
2000
2000
Regulador 7812
1
1000
1000
Regulador 7805
1
1000
1000
Relés
3
2000
6000
Conector USB
1
1500
1500
Cable USB
1
4000
4000
Fuente 12v
1
12000
12000
Conector para fuente
1
1500
1500
Resistencias
4
100
400
Diodos
3
150
450
Leds
3
150
450
Conector hembra RJ45
3
1500
4500
Capacitores
2
200
400
Capacitores cerámicos
2
300
600
Conectores VGA
3
2000
6000
Baquelas
2
5000
10000
Oscilador
1
2000
2000
Pulsador
2
500
1000
Protoboard
1
15000
15000
Cable USB
3
2000
6000
Programador de PICs
1
95000
95000
Papelería
1
70000
70000
Transporte
1
120000
120000
TOTAL
Tabla 1. Presupuesto del proyecto
21
385800
1.9.
CRONOGRAMA DE ACTIVIDADES DEL PROYECTO
ABRIL
MAYO
JUNIO
JULIO
AGOSTO
SEPTIEMBRE
OCTUBRE
NOV.
ACTIVIDADES
1º 2º 3º 4º 1º 2º 3º 4º 1º 2º 3º 4º 1º 2º 3º 4º 1º 2º 3º 4º 1º 2º 3º 4º 1º 2º 3º 4º 1º 2º
Etapa de investigación sobre el
proyecto
Planteamiento del problema
y análisis de requerimientos
Diseño del software de
control
Codificación del software
se control y tarifación
Diseño del circuito
electrónico
Simulación del circuito
electrónico
Diseño del PCB del circuito
electrónico
Montaje del circuito
electrónico
Pruebas de comunicación
entre en software y el dispositivo
integración del software y
el dispositivo
Corrección de fallas del
sistema
Construcción del documento
escrito del proyecto
Elaboración del manual
de uso del sistema
Tabla 2. Cronograma de actividades del proyecto
22
2. MARCO CONTEXTUAL
2.1.
DESCRIPCIÓN DEL CONTEXTO
El proyecto “sistema de control y tarificación de tiempo para consolas de
videojuegos” se desarrolla para los centros de entretenimiento que presten el
servicio de alquiler de consolas de videojuego.
2.2.
ESTADO DEL ARTE
Antes del planteamiento del proyecto, se realizaron indagaciones y consultas de
mercado para conocer el desarrollo de sistemas de tarifación y control de consolas
de videojuego para salas de entretenimiento en otras partes, tanto a nivel nacional
como internacional. Se identifico que al menos a través de internet había poca
información en referencia a estos desarrollos. La escases de empresas que le
apuntaran a desarrollos para controlar el servicio de alquiler de videoconsolas
impulso el planteamiento y desarrollo del presente proyecto.
En el transcurso del desarrollo del proyecto se continuó indagando el mercado y
se identifico un avance importante en este campo, varias empresas especialmente
las que desarrollan aplicaciones para el control y tarifación de cibercafé o salas de
internet, han implementado servicios de valor agregado en sus aplicaciones,
incorporando módulos para el control de videoconsolas, algunas mas
especializadas desarrollan la parte hardware, otras solo hacen los módulos
software compatibles con dispositivos que vienen desarrollando otras empresas.
Se nota que el servicio de alquiler de consolas de videojuegos ha tomado
importancia para estas empresas, y han mostrado interés en apuntarle a este
mercado.
A continuación se describen los desarrollos que se han venido dando en este
campo:
23
 ControlGAME (Argentina)
Se crea dentro del área de servicio técnico de Airon Argentina, empresa dedicada
a la atención e instalación de cibercafés, salas de juegos, locutorios, con 8 años
de experiencia en el rubro. A pedido particular de un cliente se fabrica en el año
2005 el primer bloqueador para consolas, este funcionaba con el software de
gestión de cybers "cafesuite" y controlaba hasta 8 consolas debido a la limitación
de cafesuite, de este bloqueador se fabricaron varias versiones, bloqueando los
controles o bloqueando la señal de video, han sido implementados exitosamente,
pero la dirección de Airon Argentina no estaba conforme con sus prestaciones, a
pesar de que sus clientes estaban muy satisfechos con el bloqueador.
(CONTROLGAME).
Es así que se destina un sector exclusivo para la investigación y desarrollo de
prototipos de un nuevo bloqueador que por lo menos soportara 32 consolas, e
incrementara la seguridad y eficiencia de su antecesor. Por la parte de hardware
en poco tiempo se creó el primer prototipo con todas las nuevas prestaciones, el
inconveniente que se presentaba en ese momento era que software de gestión de
cybers se elegiría para gestionarlo, "cafesuite" no tenia los requerimientos que
Airon Argentina pretendía para su bloqueador, ya que solo soportaba 8
bloqueadores, y su seguridad en cuanto a consolas es muy frágil y fácil de saltear.
En un primer momento se pensó en desarrollar un software para la gestión de
consolas, pero luego de analizar varios software de gestión de cybers, se eligió a
cyberplanetsoft, que es un software especializado en la administración de cybers.
El Hardware
ControlGAME es un bloqueador de consolas
especialmente para cibercafés y salas de juegos.
de
juegos,
desarrollado
Este dispositivo puede bloquear consolas de juegos, tipo Playstation, PS2, PS3,
XBOX, XBOX360, GAMECUBE, etc.
24
ControlGAME es ampliable y puede controlar hasta 96 consolas dependiendo del
software que lo gestiona. Su instalación es muy sencilla, en pocos minutos puede
tener el control total de sus consolas.
ControlGAME se conecta al puerto paralelo de la PC que tiene el software de
gestión de consolas y a este se conectan los bloqueadores de video o joystick. A
través de cable UTP CAT. 5 o superior con conectores RJ45, idéntico al cableado
de red Ethernet.
Se comercializa en dos versiones, controlGAME 8x y controlGAME 16x.
El Software (Argentina)
CyberPlanet es un sistema integral de gestión de Cibercafés desarrollado y
depurado a lo largo de varios años. Está cuidadosamente diseñado de manera
que no haga falta recurrir a la ayuda. Está compuesto por un Módulo Cliente
(CyberClient) que se instala en las pcs clientes y un Módulo Servidor
(CyberPlanet) que administra y controla el uso de las PCs cliente.
(CYBERPLANETSOFT).
Además de las funciones de tarifación, control de usuarios y de PCs, el software
incluye un modulo para el control de consolas, compatible con el sistema
ControlGAME.
La empresa mencionada anteriormente se dedica solo al desarrollo de la parte
hardware del sistema, y los hace compatible con aplicaciones desarrolladas por
otras empresas, especialmente con CyberPlanet que está ubicada en el país de
Argentina al igual que la empresa desarrolladora del dispositivo.
 Alcsoft (Argentina)
Es una empresa desarrolladora de software integrado para la gestión de
Cibercafés y salas en red. Está ubicada en Argentina y además cuenta con
25
empresas aliadas para la distribución de su producto en otros países como
Venezuela, Chile y México. (ALCSOFT).
El Hardware
El tarifador de consolas o controlador de consolas, es un componente electrónico
que interactúa entre el software ALC Lan manager Server y las consolas. Con este
se puede controlar a través del bloqueo del video o de los mandos (Joystick) la
tarifación tanto Pre-Pago como Post Pago.
Permite controlar cualquier consola con salidas RCA (video analógico) HDMI
(Video de alta definición): PlaySation, PS2, PS3, XBOX, XBOX360, GAMECUBE,
etc. Con respecto a la cantidad de consolas que se pueden controlar, no hay
límite, pueden controlarse desde 8 consolas en adelante.
La conexión es sencilla y tiene la siguiente configuración:
Desde el PC sale por puerto SERIAL un cable hacia un concentrador, de ese
concentrador salen un par de cables (Cable telefónico) hacia el primer controlador.
Siempre desde el último controlador que se coloque puede anexarse el siguiente y
así sucesivamente. Sería como tener varios Switch conectado el primero al
segundo, el segundo al tercero y así sucesivamente.
El Software
Lan Manager Server es el software que permite realizar el control de acceso a los
equipos, seguridad, tarifación, cobro e informes de caja rentabilizando al máximo
su tiempo. Lan Manager es un software cliente / servidor, esto significa que
requiere de un ordenador central donde se instalara la versión Servidor y luego en
cada uno de los equipos del Cibercafé se instalara la versión cliente. Además de
esto gestiona la comunicación a través del puerto serial con el dispositivo
controlador de consolas.
26
La anterior empresa desarrolla el sistema completo, tanto software como hardware
para el control y tarifación de las salas de videojuegos, su desarrollo ya se
extiende a varios países de sur y centro América, es una de las pocas empresas
que desarrolla el sistema completo.
 Desarrollo a nivel nacional
Como se puede identificar, las empresas más importantes que están
incursionando en este mercado son las establecidas en otros países,
principalmente en Argentina, tomando como referencia la información encontrada
a través de la web y aprovechando la presencia de estas empresas en este medio.
Puede ser que además de estas empresas existan muchas otras que aun no
hacen presencia en internet y que es difícil encontrar información por otro tipo de
medios.
En Colombia a través de las consultas realizadas se encontraron muchos avisos
publicitarios relacionados con la venta de dispositivos electrónicos para controlar y
tarifar el servicio de alquiler de consolas de videojuegos, en ciudades como
Bogotá, Barrancabermeja y Medellín.
Indagando sobre la procedencia de estos productos para conocer si son
desarrollos a nivel nacional o productos importados, se identifica a través de las
características técnicas de los dispositivos que son las mismas ofrecidas por las
empresas antes mencionadas, lo que lleva a deducir que la mayoría de los
dispositivos ofrecidos a nivel nacional son importaciones y no desarrollos
originales en el país.
En la ciudad de Bogotá se encuentra una empresa llamada Tecelcom Cabinas
Ltda. Es una empresa dedicada al desarrollo de productos de tecnología en
electrónica, con más de 4 años de experiencia en el desarrollo de productos de
ingeniería. (TECELCOM). Está enfocada especialmente a la tarifación de cabinas
telefónicas, y actualmente está incursionando en la tarifación de salas de
videojuegos, ofreciendo su producto Tecelcom Videojuegos.
27
Telcecom Videojuegos
Es un software desarrollado para la administración de consolas de videojuegos,
posee las siguientes características:
 Es un sistema compatible con cualquier tipo de consola de videojuegos
existente en el mercado actual y futuro (XBOX, NINTENDO64,
PLAYSTATION1, PLAYSTATION2, XBOX360, ETC).
 Tarificación en modo prepago y en modo de tiempo libre.
 Interfaz amigable y diseñada para cualquier tipo de pantalla.
 Basado en productos Microsoft para funcionar sobre cualquier plataforma
Microsoft Windows 95, 98, ME, NT, 2000, XP, Vista o Superior.
 Protección de cada usuario con contraseña propia.
 Parpadeo en el televisor para avisar al usuario que el tiempo está por
terminar.
 Manejo de inventario y reportes
 Manejo de hasta 22 consolas de videojuegos simultáneamente.
 Tres niveles de seguridad para la administración del software dependiendo
de si es administrador o empleado del negocio.
La empresa Tecelcom en su página web ofrece el sistema completo de tarifación y
control de consolas de videojuegos, tanto software como hardware. Se realizo una
cotización del producto para identificar el tipo de hardware que implementa la
solución y para conocer el precio del producto, comprobando lo siguiente:
 El hardware que se ofrece es el mismo que desarrolla la empresa
ControlGAME, y tiene las mismas características técnicas, con lo cual se
puede deducir que este producto es importado y no propiamente
desarrollado por la empresa en cuestión.
 El software si es un desarrollo propio de la empresa y es integrado con el
hardware importado.
 El costo del sistema completo maneja varios precios de acuerdo al número
de consolas a controlar y se detallan a continuación:


Kit para 4 consolas $ 349.000
Kit para 6 consolas $ 499.000
28



2.3.
Kit para 10 consolas $ 799.000
Kit para 14 consolas $ 1.099.000
Kit para 18 consolas $ 1.499.000
ORGANIZACIÓN QUE IMPACTARÁ EL PROYECTO
2.3.1. Tipo de organización
Salas o centros de entretenimiento dedicadas a la renta o alquiler de consolas de
videojuegos.
2.3.2. Objeto social
El proyecto se dirige a las empresas o centros de entretenimiento que tienen por
objeto social la prestación de servicios de renta o alquiler de consolas de
videojuegos, y que tienen como visión promover una cultura de entretenimiento
utilizando productos actualizados y servicios dirigidos hacia el usuario,
aprovechando la interacción con los videojuegos y generando un ambiente de
diversión apropiado.
2.3.3. Servicios
Empresas que ofrece los servicios de:
 Entretenimiento basado en videojuegos
 Interconexión en juegos virtuales a nivel local e internet
 Torneos en diferentes tipos de videojuegos
29
2.3.4. Organigrama general de un centro de entretenimiento
„
Figura 1. Organigrama de una organización dedicada al alquiler de consolas de videojuegos
30
3. MARCO TEÓRICO
3.1.
INTERFAZ DE COMUNICACIÓN
3.1.1. Interfaz Bus Serial Universal (USB)
USB es una especificación de las empresas Compaq, Digital, IBM, Intel, Microsoft,
NEC y Northern Telecom, que describe un canal serie que soporta una gran
variedad de periféricos de media y baja velocidad, con soporte integral para
transferencias en tiempo real (isócronas) como voz, audio y vídeo comprimido, y
que permite mezclar dispositivos y aplicaciones isócronas y asíncronas. Entre los
dispositivos USB más característicos tenemos teclados, ratones, scanners,
impresoras, módems, placas de sonido, cámaras, mp3, etc. (MORENO, 2006).
La arquitectura USB combina todas las ventajas de un estándar multiplataforma,
incluyendo un costo inferior, una mayor compatibilidad y un número superior de
periféricos disponibles.
La implementación del USB elimina el uso de IRQ's, canales de DMA, etc. Así
como la necesidad de abrir los gabinetes para instalar o quitar dispositivos. Los
usuarios de PC's no tienen la necesidad de preocuparse sobre la correcta
selección del puerto serie, la instalación de tarjetas de expansión o configurar los
conmutadores DIP, jumpers o drivers.
Cada día aparecen nuevas utilidades de mucha más potencia, con más
posibilidades y mejor calidad gráfica, que hacen que las tareas que se realizan a
diario requieran de más capacidad de rata de transmisión.
Para que se puedan almacenar, transmitir o recibir dichas tareas, aparecen en el
mercado periféricos y componentes de mayor capacidad, discos duros con más
capacidad de almacenamiento, mejor calidad de video, procesadores rápidos, etc.
pero también se necesita que la "vía" por la que se van a transmitir esos datos sea
fiable y más rápida, de forma que se ajuste a los avances producidos.
31
Así surgió su evolución, USB 2.0, apodado USB de alta velocidad, con
velocidades en este momento de hasta 480 Mb/seg, es decir, 40 veces más rápido
que las conexiones mediante cables USB 1.1. USB 2.0 incorpora un nuevo modo
de funcionamiento denominado high-speed (HS). Es compatible con dispositivos
USB 1.1 y utiliza los mismos cables y conectores, sólo se necesitan nuevos hubs
algo más sofisticados que los actuales, ya que tendrán que comunicarse tanto con
dispositivos 2.0 como con los actuales 1.1 (FS y LS).
Gracias a este incremento de velocidad de transferencia, USB puede competir con
el actual FireWire (estándar IEEE 1394). FireWire nació en principio destinado
para Mac y algunas cámaras digitales con una velocidad cercana a 400Mbit/s. En
la actualidad se está introduciendo poco a poco en el PC y se espera que llegue a
alcanzar una velocidad de 3,2Gb/s.
3.1.1.1.
Especificaciones eléctricas
La interfaz USB inicialmente contaba con dos velocidades de funcionamiento
(USB 1.1): Low-Speed (1.5Mbps), y Full- Speed (12Mbps). (MORENO, 2006).
Posteriormente, salió al mercado USB 2.0, totalmente compatible con USB 1.1,
pero que además cuenta con modo High-Speed, llegando a tasas de transferencia
de 480Mbps.
USB utiliza un cable de 4 conductores, de los cuales 2 de ellos son de
alimentación a los dispositivos, y los otros dos transmiten/reciben una señal de
datos, en modo de tensión diferencial.
Los conductores de alimentación se etiquetan como VBus y GND. Entregan una
tensión continua de 5V y 500mA máximo. En función de las necesidades de
alimentación eléctrica de los dispositivos, estos pueden tomar la alimentación de
estas líneas, o bien tener una fuente de alimentación alternativa. (MORENO,
2006).
Los conductores de transmisión/recepción de datos se etiquetan como D+ y D-.
Como se ha mencionado anteriormente, el parámetro a medir es la tensión
diferencial entre los dos hilos.
32
En modo High-Speed (480Mbps), cada hilo de tensión diferencial está conectado
en sus extremos a una resistencia de pull-down, de valor 45ohms. Esta resistencia
no es necesaria en los otros modos de velocidad.
Los márgenes de tensión para los niveles lógicos son los siguientes:
Nivel 1 diferencial: al menos 200 mV (D+) más positivo que (D-)
Nivel 0 diferencial: al menos 200 mV (D-) más positivo que (D+)
La comunicación es semiduplex, es decir, es bidireccional pero no se puede
transmitir y recibir simultáneamente.
En la transferencia de datos se utiliza codificación NRZI, que consiste en que la
línea cambia de nivel si se transmite un 0 y no cambia si transmite un 1. Debido a
la utilización de codificación NRZI, es muy fácil que transmisor y receptor se dé
sincronicen tras el envío de varios „1‟ sucesivos; para solucionar esto se emplea el
"bit stuffing", que consiste en la inserción de un cero tras la transmisión de 6 unos,
para asegurar transiciones en la línea y permitir que el receptor se mantenga
sincronizado.
Los dispositivos disponen de transmisores diferenciales, receptores diferenciales y
resistencias de terminación con los que pueden transmitir y detectar varios
estados eléctricos distintos en la línea.
El tipo de transmisores y receptores, así como las resistencias de terminación de
los cables de datos difieren según la velocidad de transferencia del dispositivo
(Low, Full o High Speed). (MORENO, 2006).
En la interfaz USB se pueden distinguir distintos estados eléctricos en la línea:
Transmisión/Recepción diferencial de bits: Estados DIFF0 y DIFF1, denominados
también estados J y K.
 SE0 (Single-Ended 0): Ambas señales D+ y D- a 0V. Se utiliza para
detectar la conexión/desconexión de dispositivos, para indicar el EOP (fin
de paquete) y para generar reset.
33
 IDLE: reposo o línea en alta impedancia, necesario para permitir
transferencias semidúplex, detectar la conexión y desconexión de
dispositivos y discriminar entre dispositivos FS y LS.
 SOP (principio de paquete) se indica mediante una transición IDLE a K.
 EOP (fin de paquete) se indica mediante una secuencia SE0 (2 bits) + J (1
bit) + IDLE.
3.1.1.2.
Especificaciones mecánicas
Conectores: Hay dos tipos de conectores USB: los de TIPO A y TIPO B, con sus
correspondientes ranuras de inserción. (USB, 1999).
Sus principales diferencias se encuentran en la forma y la distribución de los
contactos. Todos los host-USB deben tener la ranura de inserción correspondiente
al conector tipo A. Las ranuras tipo B se encuentran ubicadas en dispositivos USB
tales como impresoras, módems, escaners, etc.
Otro tipo de dispositivos USB, como pueden ser ratones y teclados, en los cuales
uno de los extremos de los cables viene directamente soldado al dispositivo,
cuenta únicamente con un conector tipo A en el otro extremo del cable, que será
introducido en la ranura tipo A ubicada en el host USB (en este ejemplo el PC).
Figura 2. Conector TIPO A y TIPO B, con sus correspondientes ranuras de inserción
34
Cables: USB requiere de un cable de 4 conductores: dos encargados de la
alimentación a +5V y 500mA max. (VBus y GND), y dos cables para envío y
recepción de datos en señal diferencial (D+ y D-). La sección de los conductores
de alimentación varía entre 20 y 26 AWG, y la de los de la señal diferencial es
28AWG.
En LS (low speed_1.5Mbps) no es obligatorio que los conductores de señal estén
trenzados entre sí. En F/H-S (full/high-speed_12/480Mbps) si es obligatorio. Estos
requerimientos influyen en la distribución espacial de los conductores en el interior
del cable USB, así como el grosor y la longitud máxima de éste.
Figura 3. Dimensiones en mm. de los conectores
En los dispositivos LS la longitud de un tramo de cable no podrá exceder los 3
metros, y en dispositivos FS no podrá ser mayor de 5 metros. Se podrá hacer uso
de alargadores, pero para ello será necesario ubicar un repetidor entre cada
tramo.
Tanto en FS como en LS los cables de alimentación (VBus y GND) nunca estarán
trenzados. Obligatoriamente para ambos, el cable deberá contar con un
35
apantallamiento metálico de aluminio poliéster y también con un cable trenzado de
cobre de sección 28AWG, para que dote de rigidez al cable final.
Figura 4. Sección de un cable USB
Además, los cables FS cuentan con un segundo apantallamiento, que consiste en
una malla de cobre estañada alrededor de todo el cable. Finalmente, y como
última capa, se encuentra la cubierta exterior de PVC.
Conexión del cable a los conectores: La conexión de los cables a los pines de
los conectores se observa en la Tabla.
Tabla 3. Codificación numérica y de color de los conductores del cable USB
36
En la siguiente figura se puede observar la disposición y distribución de los pines
tanto para el conector tipo A como para el conector tipo B
Figura 5. Diagrama de pines de conector TIPO A y TIPO B
3.1.1.3.
Tipos de dispositivos.
Todos los dispositivos USB responden a un patrón. (AXELSON, 1999). Tienen los
mismos elementos funcionales:
 Transceiver: Encargado de seleccionar la velocidad de comunicación del
dispositivo (12 ó 1,5 Mbps).
 Function Interface Unit (FIU): Administración de datos basado en estado de
colas FIFO y envío de interrupciones.
 FIFO‟s: El controlador tiene 8 buffers FIFO; 4 para transmisión y 4 para
recepción.
 Serial Interface Engine (SIE): Trata la información y la serializa o de
serializa. Además codifica en NRZI, controla CRC, maneja el protocolo de
comunicación y la secuencia de paquetes.
El sistema de bus USB consta de tres componentes principales:
 Controlador.
 Concentradores o hubs.
 Periféricos.
Controlador. Reside dentro del PC y es responsable de las comunicaciones entre
los periféricos USB y la CPU del PC. Es también responsable de la admisión de
los periféricos dentro del bus, tanto si se detecta una conexión como una
desconexión. Para cada periférico añadido, el controlador determina su tipo y le
37
asigna una dirección lógica para utilizarla siempre en las comunicaciones con el
mismo. Si se producen errores durante la conexión, el controlador lo comunica a la
CPU, que, a su vez, lo transmite al usuario. Una vez se ha producido la conexión
correctamente, el controlador asigna al periférico los recursos del sistema que éste
precise para su funcionamiento. El controlador también es responsable del control
de flujo de datos entre el periférico y la CPU.
Concentradores o hubs. Son distribuidores inteligentes de datos y alimentación,
y hacen posible la conexión a un único puerto USB de 127 dispositivos. De una
forma selectiva reparten datos y alimentación hacia sus puertas descendentes y
permiten la comunicación hacia su puerta de retorno o ascendente. Los
concentradores también permiten las comunicaciones desde el periférico hacia el
PC, aceptando datos en las puertas descendentes y enviándolos hacia el PC por
la puerta de retorno. (AXELSON, 1999).
Además del controlador, el PC también contiene la concentradora raíz. Este es el
primer concentrador de toda la cadena que permite a los datos y a la energía
pasar a uno o dos conectores USB del PC, y de allí a los 127 periféricos que,
como máximo, puede soportar el sistema. Esto es posible añadiendo
concentradores adicionales.
Periféricos. USB soporta periféricos de baja y media velocidad. Empleando dos
velocidades para la transmisión de datos de 1,5 y 12 Mbps se consigue una
utilización más eficiente de sus recursos. Los periféricos de baja velocidad tales
como teclados, ratones no requieren 12 Mbps y empleando para ellos 1,5 Mbps,
se puede dedicar más recursos del sistema a periféricos tales como monitores,
impresoras, módems, scanner, equipos de audio, etc., que precisan de
velocidades más altas para transmitir mayor volumen de datos o datos cuya
dependencia temporal es más estricta. (AXELSON, 1999).
3.1.1.4.
Tipos de transferencia de datos.
El bus de comunicaciones USB soporta 6 tipos de transferencias de datos
dependiendo del tipo de dispositivo y del ancho de banda requerido para la
transferencia: (AXELSON, 1999).
 Transferencias asíncronas.
 Transferencias síncronas.
38




Transferencias isócronas.
Transferencias control.
Transferencias interrupción.
Transferencias bulk.
Transferencias asíncronas. En este modelo cabe entender que ambos equipos
poseen relojes funcionando a la misma frecuencia, por lo cual, cuando uno de
ellos desea transmitir, prepara un grupo de bits encabezados por un bit conocido
como de arranque, un conjunto de 7 u 8 bits de datos, un bit de paridad (para
control de errores), y uno o dos bits de parada. El primero de los bits enviados
anuncia al receptor la llegada de los siguientes, y la recepción de los mismos es
efectuada. El receptor conoce perfectamente cuántos bits le llegarán, y da por
recibida la información cuando verifica la llegada de los bits de parada.
Transferencias síncronas. En este tipo de transmisión, el sincronismo viaja en la
misma señal, de esta forma la transmisión puede alcanzar distancias mucho
mayores como también un mejor aprovechamiento de canal. En la transmisión
asíncrona, los grupos de datos están compuestos por generalmente 10 bits, de los
cuales 4 son de control.
Evidentemente el rendimiento no es el mejor. En cambio, en la transmisión
síncrona, los grupos de datos o paquetes están compuestos por 128 bytes, 1024
bytes o más, dependiendo de la calidad del canal de comunicaciones. De esta
forma la señal puede viajar por muchos más kilómetros sin temor a perderse o no
ser entendida por el receptor.
Transferencias isócronas. Este tipo de transferencia sólo es utilizable por
dispositivos FS (dispositivos de velocidad alta o media). Garantiza un acceso al
bus USB con una latencia limitada, asegura una transmisión constante de los
datos a través del puerto siempre y cuando se suministren datos, además en caso
de que la entrega falle debido a errores no se intenta reenviar los datos.
La información útil por paquete puede oscilar entre 1 y 1,023 bytes. En cada
Trama se transfiere un paquete por cada conexión isócrona establecida. El
sistema puede asignar como máximo el 90% del tiempo de trama para
transferencias isócronas y de interrupción. En función de la cantidad de datos que
se estén transmitiendo en un momento dado, en velocidad media, el porcentaje de
39
transmisión utilizado puede variar desde un 1% hasta un 69%, mientras que el
porcentaje de velocidad alta varía entre un 1% y un 41%.
Transferencias de control. Es el único tipo de transferencia que utiliza
transmisión a base de mensajes, soporta por lo tanto comunicaciones de tipo
configuración/comando/estado entre el software cliente y su función. Por lo tanto
este tipo de transferencia está pensado para configurar, obtener información, y en
general para manipular el estado de los dispositivos. El tamaño máximo de datos
que se transmiten por el bus viene determinado por el dispositivo. El puerto USB
puede estar ocupado durante la fase de envío de datos y la fase de estado, en
esos casos se indica al ordenador que se encuentra ocupado, invitándole a
intentarlo mas tarde. Si se recibe un mensaje de configuración y se encontraba en
mitad de una transferencia de control, aborta la transferencia actual y pasa a la
nueva que acaba de recibir.
Normalmente no se inicia una nueva transferencia de control, hasta que no ha
acabado la actual, si bien debido a problemas de transmisión, se puede considerar
que se han producido errores y pasar a la siguiente. USB proporciona detección y
recuperación, vía retransmisión, de errores en las transferencias de control.
Detalles de las 3 transacciones:
• Transacción de Configuración (Setup), en la que se envía al dispositivo un
paquete que especifica la operación a ejecutar. Ocupa 8 bytes.
• Cero o más Transacciones de Datos, en las que se transfieren los paquetes de
datos en el sentido indicado por la transacción de configuración. La información
útil por paquete puede ser de 8, 16, 32 ó 64 bytes para dispositivos FS, y de 8
bytes para dispositivos LS.
• Transacción de Estado, en la que el receptor informa del estado final de la
operación.
Transferencias de interrupción. Aseguran una transacción (paquete) dentro de
un periodo máximo (los dispositivos FS pueden solicitar entre 1 y 255 ms, y los LS
entre 10 y 255 ms de periodo máximo de servicio). Este tipo de transferencia está
diseñado para servicios que envían o reciben datos de forma infrecuente. Esta
transferencia garantiza el máximo servicio para el puerto durante el periodo en el
que envía. Incorpora detección de errores y retransmisión de datos. El tamaño de
paquete de datos máximo es de 1024 bytes para alta velocidad, 64 bytes para
velocidad media y 8 bytes para baja velocidad.
40
En ningún caso se precisa que los paquetes sean de tamaño máximo, es decir, no
es necesario rellenar los paquetes que no alcancen el máximo. Cuando en una
transferencia de interrupción se necesite transmitir más datos de los que permite
el paquete máximo, todos los paquetes a excepción del último paquete deben de
tener el tamaño máximo. De modo que la transmisión de un paquete se ha llevado
a cabo cuando se ha recibido la cantidad exacta esperada o bien, se ha recibido
un paquete que no alcanza el tamaño máximo.
Transferencias bulk. Al igual que ocurre con las transferencias isócronas, este
tipo de transferencias sólo son utilizables por dispositivos FS. La información útil
por paquete puede ser de 8, 16, 32 ó 64 bytes. Está diseñado para dispositivos
que necesitan transmitir grandes cantidades de datos en un momento determinado
sin importar mucho el ancho de banda disponible en ese momento.
Esta transferencia garantiza el acceso al USB con el ancho de banda disponible,
además en caso de error se garantiza el reenvío de los datos. Por lo tanto este
tipo de transferencia garantiza la entrega de los datos pero no un determinado
ancho de banda o latencia.
Se procesan por medio de un mecanismo "Good Effort", en el que el sistema
aprovecha cualquier ancho de banda disponible y en el momento en que esté
disponible.
3.1.1.5.
Protocolo de comunicación.
El protocolo de comunicaciones del bus USB entre el host y el dispositivo físico se
realiza a través de tokens (testigos). De forma general toda función en principio
está esperando a que el host le envíe un paquete, si este paquete es de tipo token
entonces cambia el estado de la función iniciándose una transacción. También se
debe de tener en cuenta, que cuando o bien el host, o bien una función se
encuentran en un estado que no es el de reposo, aparecen los timeouts como otra
causa de error. El controlador USB, que es el encargado de la comunicación entre
los periféricos USB y la CPU del ordenador, va a ser el que transmita esos testigos
con la dirección del dispositivo, los datos, etc. (USB, 1999).
Arquitectura lógica y real: La arquitectura del sistema en la que se basa USB, se
ilustra en la Figura.
41
Figura 6. Flujo de comunicaciones en USB
El flujo de datos del bus USB desde un punto de vista lógico hay que entenderlo
como una serie de endpoints, a su vez los endpoints se agrupan en conjuntos que
dan lugar a interfaces, las cuales permiten controlar la función del dispositivo.
Forma de transmisión: La forma en la que las secuencias de bits se transmiten
en USB es la siguiente; primero se transmite el bit menos significativo, después el
siguiente menos significativo y así hasta llegar al bit más significativo. Cuando se
transmite una secuencia de bytes se realiza de la misma manera.
3.1.1.6.
Configuraciones de sistemas.
Si hay algo que hace de USB un bus revolucionario es que se basa en tecnología
Plug & Play, gracias a la cual el ordenador es capaz de conocer que aparato es el
qué ha sido conectado, detectando todo el dispositivo, aparte de saber el modo de
la transferencia de datos, velocidad de la transmisión, y todos los parámetros que
necesita conocer para poder comunicase con el dispositivo. Todo este proceso es
realizado por el hardware del bus con apoyo software y es totalmente transparente
42
al usuario. Una vez detectado el dispositivo, el ordenador asigna una dirección
USB única a cada aparato, con la que puede averiguar si éste es nuevo, o ya ha
sido conectado alguna vez, y recoger la información necesaria para poder
comunicarse con el terminal. Debido a que también existe un hub USB, el
ordenador le asigna la dirección cero para reconocerlo. (FERNANDEZ, 2002).
Cuando un dispositivo es retirado de un puerto USB, se desactiva dicho puerto y
se le indica al dispositivo que está a punto de ser extraído del conector. Esta
indicación es enviada por el Sistema de Software USB. Si el dispositivo a retirar es
un hub USB, el Sistema Software USB lo desactiva y retoma el control del puerto.
3.2.
MICROCONTROLADORES
Al descubrir las ventajas que ofrecen los computadores, se dio un gran
movimiento en cuanto al desarrollo de aplicaciones que siempre habían sido
realizadas manualmente dando lugar a una nueva etapa de automatización, sin
embargo una desventaja que cada vez se hacía más intensa fue el hecho de que
una computadora siempre debería de disponer de una serie de dispositivos
externos que muchas veces no eran necesarios. Un ejemplo de esto era la
utilización de pantalla de video, cuando era suficiente con un LED o un Display, o
el teclado y el ratón cuando era suficiente disponer de un único pulsante.
(NAVARRO, 2005).
Con base en las nuevas necesidades de las personas se da el origen del
microcontrolador el cual es un circuito integrado o chip capaz de ejecutar un
programa y que contiene muchas de las mismas cualidades que una computadora
de escritorio, tales como la CPU, memoria de datos y programa, periféricos E/S y
buses, pero no incluye ningún dispositivo de “comunicación con humanos”, como
monitor, teclados o mouse. Sin embargo es necesario aclarar que no posee la
misma capacidad que tiene un computador normal, a esto hace referencia a que
posee muy poca memoria, son lentos, entre otras. Aún así poseen características
únicas que hacen que ellos sean dispositivos muy populares hoy en día, una de
ellas es su pequeño tamaño y que a pesar de no poseer las capacidades de un
computador superan por mucho las exigencias del público.
El microcontrolador tiene como objetivo ejecutar instrucciones, el conjunto de
estas instrucciones se le llama programa. Estas instrucciones se almacenan en la
43
memoria de programa y cuando se leen se hace de manera secuencial. Las
instrucciones son operaciones básicas, cómo sumar, restar, escribir en un puerto,
activar un bit de un dato, entre otras. Son básicas pero si mezclamos estas
operaciones se lograrán grandes aplicaciones.
3.2.1. Microcontrolador PIC (controlador de interfaz periférico)
Los PIC son una familia de microcontroladores tipo RISC1 fabricados por
Microchip2 Technology Inc. y derivados del PIC1650, originalmente desarrollado
por la división de microelectrónica de General Instrument. Esta familia de
microcontroladores ha tenido gran aceptación y desarrollo en los últimos años,
gracias a que sus excelentes características, bajo coste, reducido consumo,
pequeño tamaño, gran calidad, fiabilidad y abundancia de información, lo
convierten en muy fácil, cómodo y rápido de utilizar. (MORTON, 2005).
Las características más relevantes de los microcontroladores PIC son:










La arquitectura del procesador sigue el modelo Harvard.
Se aplica la técnica de segmentación ("pipe-line") en la ejecución de las
instrucciones.
El formato de todas las instrucciones tiene la misma longitud.
Procesador RISC (Computador de Juego de Instrucciones Reducido).
Arquitectura basada en un banco de registros.
Prácticamente todos los PIC se caracterizan por poseer unos mismos
recursos mínimos.
Modelo de arquitectura cerrada y abierta.
Diversidad de modelos de microcontroladores.
Amplio margen de alimentación y corrientes de salida elevadas.
Herramientas de soporte potentes y económicas.
1
RISC: Reduced Instruction Set Computer
Microchip: es una empresa fabricante de microcontroladores, memorias y semiconductores
analógicos, situada en Chandler, Arizona, EE. UU
2
44
3.2.1. Gama de PICs
Existe una gran cantidad de aplicaciones que se pueden construir alrededor de los
microcontroladores PIC, estas aplicaciones tienen diferentes exigencias en cuanto
a los recursos y la cantidad de elementos externos que se van a utilizar, es por
eso que la familia PIC se divide en cuatro gamas, que podemos llamar mini, baja,
media y alta. Las principales diferencias entre estas gamas radica en el número de
instrucciones y su longitud, el número de puertos y funciones, lo cual se refleja en
el encapsulado, la complejidad interna y de programación, y en el número de
aplicaciones, claro está entre más baja sea la gama el microcontrolador será más
económico y con menos funcionalidades. (ARANGO & ARENAS, 2010).
Gama mini: con encapsulado de 8 pines, tiene como principal característica su
reducido tamaño. Se alimentan con un voltaje de corriente continua comprendido
entre 2,5 V y 5,5 V, y consumen menos de 2 mA cuando trabajan a 5 V y 4 MHz.
El formato de sus instrucciones puede ser de 12 o de 14 bits y su repertorio es de
33 o 35 instrucciones. (MORTON, 2005)
.
A pesar de tener solo 8 pines, se pueden destinar hasta 6 de ellos como E/S para
los periféricos porque disponen de un oscilador interno R-C, lo cual es una de su
principales características (los dos restantes corresponden a la alimentación)
Los modelos 12C5xx pertenecen a esta gama, siendo el tamaño de las
instrucciones de 12 bits; mientras que los 12C6xx son de la gama media y sus
instrucciones tienen 14 bits. Los modelos 12F6xx poseen memoria Flash para el
programa y EEPROM para los datos. Algunos modelos disponen de conversores
Analógico/Digital de 8 bits incorporados.
Gama baja o básica: consiste en una serie de PIC de recursos limitados, pero
con una de la mejores relaciones coste/prestaciones de la familia. Sus versiones
están encapsuladas con 18 y 28 patitas y pueden alimentarse a partir de una
tensión de 2,5 V, lo que les hace ideales en las aplicaciones que funcionan con
pilas teniendo en cuenta su bajo consumo (menos de 2 mA a 5 V y 4 MHz). Tienen
un repertorio de 33 instrucciones cuyo formato consta de 12 bits. Al igual que
todos los miembros de la familia PIC16/17, los componentes de la gama baja se
caracterizan por poseer los siguientes recursos: Sistema “Power On Reset”, Perro
guardián (Watchdog o WDT), Código de protección, etc. (MORTON, 2005)
Gama media: es la más variada y completa de los PIC. Abarca modelos con
45
encapsulado desde 18 hasta 68 pines, cubriendo varias opciones que integran
abundantes periféricos. Dentro de esta gama se halla el famoso PIC16F84, quizás
el modelo más utilizado en la historia de los microcontroladores, aunque ya se lo
considera obsoleto. (MORTON, 2005)
En esta gama sus componentes añaden nuevas prestaciones a las que poseían
los de la gama baja, haciéndoles más adecuados en las aplicaciones complejas.
Poseen comparadores de magnitudes analógicas, convertidores A/D, puertos serie
y diversos temporizadores.
El repertorio de instrucciones es de 35, de 14 bits cada una y compatible con el de
la gama baja. Sus distintos modelos contienen todos los recursos que se precisan
en las aplicaciones de los microcontroladores de 8 bits. También dispone de
interrupciones y una pila de 8 niveles que permite el anidamiento de subrutinas.
Encuadrado en la gama media también se halla la versión PIC14C000, que
soporta el diseño de controladores inteligentes para cargadores de baterías, pilas
pequeñas, fuentes de alimentación y UPS y cualquier sistema de adquisición y
procesamiento de señales que requiera gestión de la energía de alimentación. Los
PIC 14C000 admiten cualquier tecnología de las baterías como Li-Ion, NiMH,
NiCd, Ph y Zinc.
Gama alta: dispone de chips con 58 instrucciones de 16 bits en el repertorio y que
disponen de un sistema de gestión de interrupciones vectorizadas muy potente.
También incluyen variados controladores de periféricos, puertos de comunicación
serie y paralelo con elementos externos, un multiplicador hardware de gran
velocidad y mayores capacidades de memoria, que alcanza los 8 k palabras en la
memoria de instrucciones y 454 bytes en la memoria de datos.
Quizás la característica más destacable de los componentes de esta gama es su
arquitectura abierta, que consiste en la posibilidad de ampliación del
microcontrolador con elementos externos. Para este fin, algunos pines comunican
con el exterior las líneas de los buses de datos, direcciones y control, a las que se
pueden conectar memorias o controladores de periféricos. Esta facultad obliga a
estos componentes a tener un elevado número de pines, comprendido entre 40 y
84. Esta filosofía de construcción del sistema es la que se empleaba en los
microprocesadores y no suele ser una práctica habitual cuando se emplean
microcontroladores. Esta gama se utiliza en aplicaciones muy especiales, con
grandes requerimientos. (MORTON, 2005)
46
3.2.2. Arquitecturas de los Pics
3.2.2.1.
Arquitecturas cerradas
En esta arquitectura el microcontrolador tiene unos recursos específicos que no se
pueden modificar de ninguna manera. Cada modelo de microcontrolador se
construye con una determinada CPU, cierta capacidad de memoria de datos,
cierto tipo y capacidad de memoria de instrucciones, un número de E/S y un
conjunto de recursos auxiliares muy concreto. La aplicación a la que se destina
debe encontrar en su estructura todo lo que precisa, de lo contrario no servirá en
el objetivo de la aplicación. La empresa microchip que fabrica los
microcontroladores PIC ha escogido principalmente este modelo de arquitectura.
(ARANGO & ARENAS, 2010).
3.2.2.2.
Arquitecturas abiertas
En esta arquitectura el microcontrolador además de tener una estructura interna
específica, permiten ampliaciones para emplear sus líneas de E/S para sacar al
exterior los buses de datos, direcciones y control, con los que se posibilita la
ampliación de la memoria y las E/S con circuitos integrados externos. (ARANGO
& ARENAS, 2010).
Microchip dispone de modelos PIC con arquitectura abierta, sin embargo, esta
alternativa se escapa de la idea de un microcontrolador incrustado y se asemeja a
la solución que emplean los clásicos microprocesadores. (MORTON, 2005).
3.2.2.3.
Arquitecturas abiertas
En esta arquitectura el microcontrolador además de tener una estructura interna
específica, permiten ampliaciones para emplear sus líneas de E/S para sacar al
exterior los buses de datos, direcciones y control, con los que se posibilita la
ampliación de la memoria y las E/S con circuitos integrados externos. Este tipo de
soluciones se asemeja a los clásicos microprocesadores. (ARANGO & ARENAS,
2010).
47
Otras de las ventajas a la hora de implementar un microcontrolador en un circuito
hacen referencia a la reducción notable del número de componentes y, en
consecuencia, disminuye el número de averías, el volumen y el peso de los
equipos, entre otras. Un sistema con microcontrolador dispone de una memoria
donde se almacena el programa que gobierna el funcionamiento del mismo que,
una vez programado y configurado, sólo sirve para realizar la tarea asignada.
Microcontrolador
Dispositivo de
Entrada
Dispositivo de
Salida
Programa
Figura 7. Diagrama de un sistema microcontrolador.
En la figura se muestra el esquema de un sistema microcontrolador donde los
dispositivos de entrada equivalen a tener un teclado, interruptor, sensor u otro y
los dispositivos de salida hacen referencia a LEDs, parlante, interruptores de
potencia, relés, luces, en fin una gran variedad de dispositivos que puedan
imaginar.
Debido a la necesidad de conseguir altos rendimientos en el procesamiento de
estas instrucciones, se ha optado por emplear los procesadores con arquitectura
Harvard en vez de los tradicionales que emplean una arquitectura de von
Neumann. Esta última es identificaba porque la CPU se conectaba con una
memoria única, donde se almacenaban los datos e instrucciones, a través de un
sistema de buses.
MEMORIA
CPU
Instrucciones y
Datos
Figura 8. Arquitectura von Neumann.
En la arquitectura Harvard se divide la memoria de las instrucciones y datos,
quedando de esta forma dos memorias totalmente independientes con su propio
48
sistema de bus para el acceso. Esta división, además de propiciar el paralelismo,
permite la adecuación del tamaño de las palabras y los buses a los requerimientos
específicos de las instrucciones y de los datos implementados en el
microcontrolador.
MEMORIA DE
INSTRUCCIONES
CPU
MEMORIA
DE DATOS
Figura 9. Arquitectura de Harvard.
Los microcontroladores modernos cuentan con un procesador de Arquitectura
RISC, Computadora con Conjunto de Instrucciones Reducido, cuyas
características principales son instrucciones de tamaño fijo y solo las instrucciones
de carga y almacenamiento acceden a la memoria de datos.
El microcontrolador está diseñado para que en su memoria de programa se
almacene todas las instrucciones de control, las cuales deben estar grabadas
permanentemente. Para tal propósito existen diferentes clases de memorias tales
como la ROM3 con máscara, la EPROM4, OTP5, EEPROM6 y la FLASH.
(ARANGO & ARENAS, 2010).
Memoria ROM con máscara: Esta memoria se conoce simplemente como ROM y
se caracteriza porque la información contenida en su interior se almacena durante
su construcción y no se puede alterar. Son memorias ideales para almacenar
microprogramas, sistemas operativos, tablas de conversión y caracteres.
Memoria EPROM: Este tipo de memoria a diferencia de la ROM no se programa
durante el proceso de fabricación, en vez de ello la programación la efectúa el
usuario y la información se puede borrar y volver a grabar varias veces.
3
ROM: Read Only Memory
EPROM: Erasable Programmable Read Only Memory
5
OTP: One Time Programmable
6
EEPROM: Electrical EPROM
4
49
Memoria OTP: Es una memoria no volátil, de sólo lectura y programable una sola
vez por el usuario. La grabación se realiza mediante un sencillo grabador
controlado por un programa desde un PC.
La versión OTP: es recomendable cuando es muy corto el ciclo de diseño del
producto, o bien, en la construcción de prototipos o serie muy pequeñas.
Memoria EEPROM: Es una memoria de sólo lectura, programable y borrable
eléctricamente a diferencia de la EPROM que ha de borrarse mediante rayos
ultravioleta. Tanto la programación como el borrado, se realizan eléctricamente
desde el propio grabador y bajo el control programado de un PC, y puede hacerse
con el microcontrolador instalado en el circuito. Es muy cómoda y rápida la
operación de grabado y la de borrado.
Memoria FLASH: Es un memoria no volátil, de bajo consumo, que se puede
escribir y borrar en circuito al igual que las EEPROM, pero que suelen disponer de
mayor capacidad. Son recomendables para aplicaciones en las que es necesario
modificar el programa a lo largo de la vida del producto.
Memoria STACK: Esta es una memoria interna dedicada y con un tamaño
limitado, separada de la memoria de datos y de la de programa, la cual no es
accesible al programador ya que es utilizada exclusivamente por el
microcontrolador para guardar las direcciones de retorno de subrutinas e
interrupciones.
Estas direcciones son guardadas bajo el concepto de pila, es decir que el primer
dato en entrar es el último en salir. Las posiciones en la pila son limitadas y sólo
se pueden anidar dos niveles de subrutinas, en otras palabras, el programa
principal puede llamar una subrutina y esta a su vez llama a otra subrutina, pero
esta última no puede hacer mas llamados. Todo esto se hace para evitar el
desbordamiento de la memoria del STACK.
Los datos que manejan los programas varían continuamente, y esto exige que la
memoria que los contiene deba ser de lectura y escritura, por lo que la memoria
50
RAM7 estática (SRAM8) es la más adecuada, aunque sea volátil. (ARANGO &
ARENAS, 2010).
Hay microcontroladores que disponen como memoria de datos una de lectura y
escritura no volátil, del tipo EEPROM. De esta forma, un corte en el suministro de
la alimentación no ocasiona la pérdida de la información, que está disponible al
reiniciarse el programa.
A excepción de los pines destinados para recibir la alimentación, el cristal de
cuarzo, que regula la frecuencia de trabajo, y provocar el Reset, los pines
restantes sirven para soportar la comunicación con los periféricos externos al
microcontrolador.
3.2.3. Registros
Los PICs utilizan una arquitectura basada en registros, es decir, todos los objetos
del sistema cómo los puertos de E/S, temporizadores, posiciones de memoria,
entre otros están implementados físicamente cómo registros. (ARANGO &
ARENAS, 2010).
Existen dos tipos de registros:
 Registros de propósito general: puertos de E/S, contadores, etc.
 Registros de propósito especial: registros de funcionamiento
configuración.
y
Todos los registros se encuentran ubicados en una posición específica de la
memoria.
7
8
RAM: Random Access Memory
SRAM: Static Random Access Memory
51
3.2.4. Contador de programas
Otro aspecto importante para resaltar es el contador de programas (PC) el cual
contiene la dirección de la próxima instrucción a ejecutar y se incrementa de
manera secuencial cuando cada instrucción es ejecutada. (ARANGO & ARENAS,
2010).
Existen algunas instrucciones que pueden cambiar secuencia lineal de la
ejecución, las cuales son conocidas como instrucciones de control, dentro de
estas instrucciones se encuentran las GOTO y las CALL las cuales pueden hacer
que se asigne un valor constante al PC logrando de este manera que el programa
salte a cualquier dirección de la memoria.
3.2.5. Puertos de entrada y salida E/S
Un aspecto esencial en los microcontroladores son los puertos E/S con los que se
comunica con los dispositivos externos, tales como: pantallas LCD, teclados,
servomotores, memorias externas, LEDs, pulsadores, switches, displays, entre
otros. La cantidad de puertos depende de la gama del microcontrolador, así como
también la gama define si estos puertos son análogos, digitales o multiplexados.
(ARANGO & ARENAS, 2010).
3.2.6. Interrupciones
Estas interrupciones hacen referencia a la detención del programa en un momento
dado para realizar una rutina específica que atienda la causa de la interrupción.
Cuando esta interrupción ha sido atendida en su totalidad se libera la subrutina y
se vuelve al programa principal en el punto donde se detuvo. (ARANGO &
ARENAS, 2010).
3.2.7. Oscilador externo
Todo microcontrolador necesita de un circuito externo que le indique a qué
velocidad debe funcionar. Este circuito se conoce cómo oscilador o reloj, el cual
52
juega un papel esencial en el buen funcionamiento del sistema.
ARENAS, 2010).
(ARANGO &
Existen cuatro tipos de osciladores que pueden utilizar los microcontroladores:




RC: Oscilador con resistencia y condensador.
XT: Cristal de Cuarzo.
HS: Cristal de alta velocidad.
LP: Cristal para baja frecuencia y bajo consumo de potencia.
Cuando se va a realizar la compilación del programa que será quemado en el
microcontrolador es importante definir qué tipo de oscilador se va a utilizar y a que
frecuencia va a trabajar.
Generalmente se utilizan cristales de 4 MHz, internamente esta frecuencia se
divide en 4, lo que hace que la frecuencia efectiva de trabajo sea de 1 MHz, por lo
que cada instrucción se atenderá en un microsegundo. El cristal debe ir
acompañado de dos condensadores y se conecta de la siguiente manera:
Figura 10. Esquema de un Oscilador
3.2.8. Temporizador o TIMER
Una exigencia de las aplicaciones de control es la regulación estricta de los
tiempos de duran las diversas acciones que realiza el sistema. El dispositivo
destinado a cumplir este objetivo es conocido cómo temporizador o timer, y
consiste básicamente en un contador ascendente o descendente que determina
53
un tiempo determinado entre el valor que se le carga y el desbordamiento o paso
por 0. (ARANGO & ARENAS, 2010).
La cantidad de TIMERs o temporizadores, depende de la gama del
microcontrolador que estamos manejando, por ejemplo la gama baja maneja dos y
el resto de gamas puede manejar más temporizadores.
Existen dos temporizadores básicos:
 Principal: Este timer se encarga del control de tiempos de las operaciones
del sistema.
 Watchdog (Perro Guardián): Tiene a su cargo vigilar que el programa no
se cuelgue y dejen de ejecutarse las instrucciones de manera secuencial
cómo lo ha previsto el diseñador. Para lograrlo el perro guardián revisa la
CPU cada cierto tiempo para verificar que todo esté corriendo normalmente,
en caso de encontrar un bucle infinito o esperando un acontecimiento que
no sucede, el perro guardián reinicializa el microcontrolador.
3.2.9. Programación en microcontroladores
3.2.9.1.
Resumen de histórico de los lenguajes de programación
3.2.9.1.1. Código máquina. Primera generación de lenguajes
El código máquina es el lenguaje de programación que entiende directamente la
computadora o máquina. Este lenguaje de programación utiliza el alfabeto binario,
es decir, el 0 y el 1. Con estos dos únicos dígitos, conocidos como bits, forma lo
que se conoce como cadenas binarias (combinaciones de ceros y unos) son con
las que se escriben las instrucciones que el microprocesador de la computadora
entiende nuestras peticiones. Fue el primer lenguaje de programación. Este tipo
de lenguaje de programación dejo de utilizarse por su gran dificultad. (ARANGO &
ARENAS, 2010).
54
Sólo se ha utilizado por los programadores en los inicios de la informática. Su
incomodidad de trabajo y por la facilidad para cometer errores hace que sea
impensable para ser utilizado hoy en día. Pero cualquier programa de ordenador
debe, finalmente, ser convertido a este código para que un ordenador pueda
ejecutar las instrucciones de dicho programa.
Un detalle a tener en cuenta es que el código máquina es distinto para cada tipo
de procesador. Lo que hace que los programas en código máquina no sean
portables entre distintas máquinas.
3.2.9.1.2. Lenguaje ensamblador. Segunda generación de lenguajes (2GL)
En los años 40 se intentó concebir un lenguaje más simbólico que permitiera no
tener que programar utilizando código máquina. Poco más tarde se ideó el
lenguaje ensamblador, que es la traducción del código máquina a una forma más
textual. Cada tipo de instrucción se asocia a una palabra nemotécnica (como SUM
para sumar por ejemplo), de forma que cada palabra tiene traducción directa en el
código máquina. (ARANGO & ARENAS, 2010).
Tras escribir el programa en código ensamblador, un programa (llamado también
ensamblador) se encargará de traducir el código ensamblador a código máquina.
Esta traducción es rápida puesto que cada línea en ensamblador tiene equivalente
directo en código máquina (en los lenguajes modernos no ocurre esto).
La idea es la siguiente: si en el código máquina, el número binario 0000 significa
sumar, y el número 0001 significa restar. Una instrucción máquina que sumara el
número 8 (00001000 en binario) al número 16 (00010000 en binario) sería: 0000
00001000 00010000
Realmente no habría espacios en blanco, el ordenador entendería que los
primeros cuatro BITS representan la instrucción y los 8 siguientes el primer
número y los ocho siguientes el segundo número (suponiendo que los números
ocupan 8 bits). Lógicamente trabajar de esta forma es muy complicado. Por eso se
podría utilizar la siguiente traducción en ensamblador: SUM 8 16
55
Puesto que el ensamblador es una representación textual pero exacta del código
máquina; cada programa sólo funcionará para la máquina en la que fue concebido
el programa; es decir, no es portable.
La ventaja de este lenguaje es que se puede controlar absolutamente el
funcionamiento de la máquina, lo que permite crear programas muy eficientes. Lo
malo es precisamente que hay que conocer muy bien el funcionamiento de la
computadora para crear programas con esta técnica. Además las líneas
requeridas para realizar una tarea se disparan ya que las instrucciones de la
máquina son excesivamente simples.
3.2.9.1.3. Lenguajes de alto nivel. Lenguajes de tercera generación (3GL)
Para evitar los problemas del ensamblador apareció la tercera generación de
lenguajes de programación, la de los lenguajes de alto nivel. En este caso el
código vale para cualquier máquina, son muy similares al lenguaje humano, pero
deberá ser traducido mediante software especial que adaptará el código de alto
nivel al código máquina correspondiente. Esta traducción es necesaria ya que el
código en un lenguaje de alto nivel no se parece en absoluto al código máquina.
(ARANGO & ARENAS, 2010).
Tras varios intentos de representar lenguajes, en 1957 aparece el que se
considera el primer lenguaje de alto nivel, el FORTRAN (FORmula TRANslation),
lenguaje orientado a resolver fórmulas matemáticos. Poco a poco fueron
evolucionando los lenguajes formando lenguajes cada vez mejores. Así en 1958
se crea LISP como lenguaje declarativo para expresiones matemáticas. En 1960
la conferencia CODASYL creó el COBOL como lenguaje de gestión. En 1963 creó
PL/I el primer lenguaje que admitía la multitarea y la programación modular.
BASIC se creó en el año 1964 como lenguaje de programación sencillo de
aprender y ha sido, uno de los lenguajes más populares. En 1968 se crea LOGO
para enseñar a programar a los niños. Pascal se creó con la misma idea
académica pero siendo ejemplo de lenguaje estructurado para programadores
avanzados. El creador del Pascal (Niklaus Wirdth) creó Modula en 1977 siendo un
lenguaje estructurado para la programación de sistemas.
56
3.2.9.1.4. Lenguajes de cuarta generación (4GL)
En los años 70 se empezó a utilizar éste término para hablar de lenguajes en los
que apenas hay código y en su lugar aparecen indicaciones sobre qué es lo que el
programa debe de obtener. Se consideraba que el lenguaje SQL (muy utilizado en
las bases de datos) y sus derivados eran de cuarta generación. Los lenguajes de
consulta de datos, creación de formularios, informes, son lenguajes de cuarto
nivel. (ARANGO & ARENAS, 2010).
Aparecieron con los sistemas de base de datos Actualmente se consideran
lenguajes de éste tipo a aquellos lenguajes que se programan sin escribir casi
código (lenguajes visuales), mientras que también se propone que éste nombre se
reserve a los lenguajes orientados a objetos.
3.2.9.1.5. Lenguajes orientados a objetos
En los 80 llegan los lenguajes preparados para la programación orientada a
objetos todos procedentes de Simula (1964) considerado el primer lenguaje con
facilidades de uso de objetos. De estos destacó inmediatamente C++. (ARANGO
& ARENAS, 2010).
A partir de C++ aparecieron numerosos lenguajes que convirtieron los lenguajes
clásicos en lenguajes orientados a objetos (y además con mejoras en el entorno
de programación, son los llamados lenguajes visuales): Visual Basic, Delphi
(versión orientada a objetos de Pascal), Visual C++, entre otros.
En 1995 aparece Java como lenguaje totalmente orientado a objetos y en el año
2000 aparece C# un lenguaje que toma la forma de trabajar de C++ y del propio
Java.
57
3.2.10.
Compilador PCW CCS para microcontroladores
Es un compilador que permite escribir los programas en lenguaje C en vez de
Assembler, con lo que se logra un menor tiempo de desarrollo, y facilidad en la
programación.
Contienen operadores estándar en lenguaje C bibliotecas de funciones que son
específicas a los registros de los microcontroladores PIC, proporciona a los
desarrolladores una herramienta poderosa para acceder a las funciones del
dispositivo hardware desde el nivel del lenguaje C. CCS proporciona funciones
integradas y bibliotecas de ejemplo para desarrollar rápidamente aplicaciones que
incorpora tecnologías de vanguardia tales como táctil, inalámbricas, por cable,
entre otras. (CCS, 2008).
Algunas características son: (CCS, 2008)
 Al compilar genera un código máquina muy compacto y eficiente.
 Se integra perfectamente con MPLAB y otros simuladores/emuladores
como PROTEUS para el proceso de depuración.
 Incluye una biblioteca muy completa de funciones pre compiladas para el
acceso al hardware de los dispositivos (entrada/salida, temporizaciones,
conversor A/D, transmisión RSS-232, bus I2C…., etc.
 Incorpora drivers para dispositivos externos, tales como pantallas LCD,
teclados numéricos, memorias EEPROM, conversores A/D, relojes en
tiempo real, etc.(los drivers son pequeños programas que sirven de
interfaz entre los dispositivos hardware y nuestro programa).
 Permite insertar partes de código directamente en Ensamblador,
manteniendo otras partes del programa en C.
3.2.10.1.
Características del lenguaje C para este compilador
El lenguaje C estándar es independiente de cualquier plataforma. Sin embargo,
para la programación de microcontroladores es necesario disponer de
determinados comandos que se refieran a partes específicas de su hardware,
como el acceso a memoria, temporizadores, etc. Por este motivo, además de los
comandos, funciones y datos del lenguaje ANSI C, el compilador PCW incluye
58
bibliotecas que incorporan determinados comandos que no son estándar, sino
específicos para la familia de microcontroladores PIC. (CCS, 2008).
3.2.10.2.
Utilidades adicionales
El entorno PCW incluye, además del IDE y del compilador, una serie de utilidades
adicionales con las que se amplían las posibilidades de éste, y que se encuentran
en los menús View y Tools de la barra de menús, veamos algunas de ellas:
 Monitor del puerto serie: Consiste en un terminal que monitoriza la
entrada y la salida del puerto serie del computador.
 Selección de dispositivos (Device Selection Tool): Esta utilidad consta de
una base de datos con los dispositivos que puede programar el
compilador, incluyendo todas sus características hardware, de manera
que se puede emplear para buscar aquellos dispositivos que cumplan
una serie de propiedades comunes.
 Editor de dispositivos (Device Editor): Este programa también emplea la
base de datos de dispositivos, y permite editar los componentes para
modificar sus características hardware, así como añadir nuevos
dispositivos o eliminar algunos de ellos.
 Conversor numérico: Esta utilidad realiza conversiones entre los tipos de
datos unsigned, signed, hex y float.
 Extracción de datos de calibrado: Esta opción permite leer los datos de
calibración existentes en la memoria de programa de un determinado
dispositivo. Estos datos contienen información particular de cada
microcontrolador a su salida de fábrica, y se refieren a posibles
problemas especiales que pudieran haber tenido lugar durante el
desarrollo y fabricación. Mediante esta opción es posible leer estos datos
y grabarlos en un fichero .H o .C que incorporará una directiva #ROM
para dicho dispositivo, con lo que cada vez que se programe el
microcontrolador se incluirán estos datos de calibrado.
 Desensamblador: Esta opción lee un fichero en Código máquina y lo
traduce a su equivalente en Ensamblador, con lo que se podría insertar
este código en un programa en C, mediante las directivas #ASM y
#ENDASM.
59
3.2.11.
Software de simulación de circuitos Proteus
Proteus es un software de diseño electrónico desarrollado por Labcenter
Electronics que consta de dos módulos: Ares e Isis y que incluye un tercer módulo
opcional denominado Electra. (LABCENTER).
ISIS: Mediante este programa podemos diseñar el circuito que deseemos con
componentes muy variados, desde una simple resistencia hasta algún que otro
microprocesador o microcontrolador, incluyendo fuentes de alimentación,
generadores de señales y muchas otras prestaciones. Los diseños realizados en
Isis pueden ser simulados en tiempo real. Una de estas prestaciones es VSM, una
extensión de la aplicación con la cual podremos simular, en tiempo real, todas las
características de varias familias de microcontroladores, introduciendo nosotros
mismos el programa que queramos que lleven a cabo.
Figura 11. Ejemplo de simulación de circuitos en ISIS Proteus
ARES: Ares es la herramienta de construcción de rutas de Proteus, se utiliza para
la fabricación de placas de circuito impreso, esta herramienta puede ser utilizada
de manera manual o dejar que el propio programa trace las pistas, aunque aquí
podemos también utilizar el tercer módulo, Electra (Electra Auto Router), el cual,
una vez colocados los componentes trazará automáticamente las pistas realizando
varias pasadas para optimizar el resultado.
60
Figura 12. Ejemplo de diseño de circuitos impresos en ARES Proteus
3.3.
CONECTORES
3.3.1. RCA
El conector RCA es un tipo de conector eléctrico común en el mercado
audiovisual. El nombre "RCA" deriva de la Radio Corporation of America, que
introdujo el diseño en los 1940.
En muchas áreas ha sustituido al conector típico de audio (Jack), muy usado
desde que los reproductores de casete se hicieron populares, en los años 1970.
Ahora se encuentra en la mayoría de televisores y en otros equipos, como
grabadores de vídeo o DVDs. (DIAZ, 2005).
El conector macho tiene un polo en el centro (+), rodeado de un pequeño anillo
metálico (-) (a veces con ranuras), que sobresale. El conector hembra tiene como
polo central un agujero cubierto por otro aro de metal, más pequeño que el del
macho para que éste se sujete sin problemas.
Ambos conectores (macho y hembra) tienen una parte intermedia de plástico, que
hace de Aislante eléctrico.
Un problema del sistema RCA es que cada señal necesita su propio cable. Otros
tipos de conectores son combinados, como el euro conector (SCART), usado
exclusivamente en Europa.
61
La señal de los RCA no es balanceada por lo que corresponde generalmente a 10dBV. Esto hace que no se utilicen profesionalmente.
Izquierda/Mono
Blanco
Derecho
Rojo
Center
Verde
Envolvente izquierdo
Azul
Envolvente derecho
Gris
Envolvente trasero izquierdo
Castaño, café o marrón
Envolvente trasero derecho
Castaño claro
Subwoofer
Purpura
Audio digital
S/PDIF
Naranja
Video analógico
Compuesto
Amarillo
Y
Verde
Pb
Azul
Pr
Rojo
R
Rojo
Audio analógico
Video
componente
(YPbPr)
por
Video
por G
componente (RGB)
Verde
B
Azul
Tabla 4. Distribución de colores en RCA
3.3.2. HDMI
High-Definition Multi-media Interface (HDMI) Interfaz multimedia de alta definición
es una norma de audio y vídeo digital cifrado sin compresión apoyada por la
industria para que sea el sustituto DRM del euro conector. HDMI provee un
interfaz entre cualquier fuente DRM de audio y vídeo digital como podría ser un
sintonizador TDT, un reproductor de Blu-ray, un ordenador (con Windows, Linux,
62
etc.) o un receptor A/V, y monitor de audio/vídeo digital compatible, como un
televisor digital (DTV). (DIAZ, 2005).
HDMI permite el uso de vídeo computarizado, mejorado o de alta definición, así
como audio digital multicanal en un único cable. Es independiente de los varios
estándares DTV como ATSC, DVB (-T,-S,-C), que no son más que
encapsulaciones de datos MPEG. Tras ser enviados a un decodificador, se
obtienen los datos de vídeo sin comprimir, pudiendo ser de alta definición. Estos
datos se codifican en TMDS para ser transmitidos digitalmente por medio de
HDMI. HDMI incluye también 8 canales de audio digital sin compresión. A partir de
la versión 1.2, HDMI puede utilizar hasta 8 canales de audio de un bit. El audio de
309 bit es el usado en los Súper audio CDs.
El conector estándar de HDMI tipo A tiene 19 pines. Se ha definido también una
versión de mayor resolución -tipo B-, pero su uso aún no se ha generalizado. El
tipo B tiene 29 pines, permitiendo llevar un canal de vídeo expandido para
pantallas de alta resolución. El tipo B fue diseñado para resoluciones más altas
que las del formato 1080p.
El HDMI tipo A es compatible hacia atrás con un enlace simple DVI, usado por los
monitores de ordenador y tarjetas gráficas modernas. Esto quiere decir que una
fuente DVI puede conectarse a un monitor HDMI, o viceversa, por medio de un
adaptador o cable adecuado, pero el audio y las características de control remoto
HDMI no estarán disponibles. Además, sin el uso de HDCP, la calidad de vídeo y
la resolución podrían ser degradadas artificialmente por la fuente de la señal para
evitar al usuario final ver o, mayormente, copiar contenido protegido. El HDMI tipo
B es, de forma similar, compatible hacia atrás con un enlace trial DVI.
63
4. MODELO TEÓRICO
4.1.
REQUERIMIENTOS PARA EL DESARROLLO DEL SOFTWARE
 Contabilizar el tiempo exacto de uso del servicio.
 Tarificación del servicio de acuerdo al tiempo de uso y tarifas establecidas.
 Sistema de fácil manejo, manipulado por una sola persona.
 Llevar y almacenar un control de cada venta con fecha y hora.
 Bloqueo del servicio cuando se termine el tiempo contratado o cuando no
se haga uso de este.
 Consultas de reportes en cualquier momento.
 Instalación física del dispositivo de control de las consolas de videojuegos.
 Establecer la seguridad apropiada en el aplicativo con el fin de evitar
ingresos no autorizados.
 Establecer privilegios de usuario para el manejo de la aplicación.
 Selección e instalación de un motor de base de datos.
 Seleccionar e implementar una interface de comunicación entre la
aplicación y el dispositivo que mejor se adapte a las necesidades.
 Disponer de un equipo de cómputo para la instalación del Software.
4.2.
SOLUCIÓN PROPUESTA
La necesidad de controlar y tarifar el tiempo de uso de las consolas de
videojuegos y de obtener reportes de ventas en base a los requerimientos
propuestos tiene como objetivo mejorar la técnica de conteo rudimentario que se
presenta en muchos de estos centros de entretenimiento, llevando a varios
aspectos importantes, eficiencia, confiabilidad y satisfacción por parte del usuario.
Ya que el tiempo real transcurrido y el facturado seria el mismo, se eliminaría el
factor humano en la asignación y control del tiempo de alquiler, el cálculo del saldo
a cancelar seria automático y exacto, los reportes de ventas se realizaran a
64
cualquier hora del día y se aumentaría el grado de satisfacción del usuario en la
prestación del servicio con la automatización de estos procesos.
De acuerdo a esto la propuesta que se planteó como solución es la creación de un
sistema integral compuesto por dos partes, una física (tarjeta de control) y una
lógica (software para el control y tarifación del tiempo).
En primer lugar se requiere la instalación de una tarjeta de control para realizar la
activación y el bloqueo del servicio cuando inicie y culmine el tiempo de alquiler. El
componente software permite la comunicación con la tarjeta de control, asigna
tiempos de uso por consola, calcula el saldo a cancelar en base a la tarifa
establecida y genera los reportes de ventas.
El aplicativo tiene, entre otras, las siguientes opciones:
 Crear perfiles para cada empleado con diferentes restricciones y derechos
de administración.
 Crear diferentes tarifas y bonos de acuerdo a las necesidades.
 Las terminales que no estén en uso pueden ser bloqueadas impidiendo el
uso de las mismas sin autorización del operador.
 Permitir el alquiler de consolas en contador o tiempo fijo e intercambio de
usuarios entre consolas.
 Informes totalmente dinámicos, con posibilidad de realizar búsquedas por
fechas, terminales, operadores, etc.
 Gestión y consulta de caja diaria.
4.3. DISEÑO DE LA TARJETA DE CONTROL
El diseño de la tarjeta de control para realizar la activación y el bloqueo del
servicio cuando el inicie y culmine el tiempo de alquiler se baso en un
microcontrolador PIC 18F4550 como cerebro central. El cual controla la lógica de
funcionamiento de la tarjeta y es el encargado de comandar todos los
componentes para llevar a cabo el bloqueo y desbloqueo del servicio de alquiler
de las consolas de videojuegos a través del puerto USB.
65
El software (Firmware) es el encargado de administrar la tarjeta de control,
ordenando cuando debe realizar las actividades programadas en el
microcontrolador PIC, y la aplicación para el PC es la encargada de administrar los
tiempos de alquiler, los usuarios del sistema, las tarifas y los reportes de ventas
deducidas por el servicio de alquiler.
El diseño del sistema se dividió en dos etapas:
1. Diseño del hardware. Esta etapa se enfocó en:
 Selección de la arquitectura a implementar.
 Selección de todos los componentes digitales a utilizar.
 Especificación de la interconexión de los componentes (esquemáticos).
2. Diseño del software. Esta etapa consistió en:
 Desarrollo del firmware (software a correr en el microcontrolador).
 Diseño del software a correr del lado del PC para controlar y manejar el
firmware de la dispositivo y el servicio de alquiler de las consolas de
videojuegos.
 Especificación del protocolo de comunicación a usar entre el firmware y el
software.
Estas etapas se desarrollaron de manera independiente, se hicieron las pruebas
correspondientes y se acoplaron de manera que existiera relación entre ellas.
En la siguiente figura se observa la forma de conexión general del sistema de
control y tarifación de tiempo para consolas de videojuegos.
66
Figura 13. Conexión general del sistema de control y tarifación
La tarjeta de control se conecta al PC utilizando el puerto USB, estableciendo un
protocolo de comunicación entre el Firmware y el Software para la administración
y control del microcontrolador PIC. La tarjeta de control se conecta al controlador
de video que es el encargado de bloquear y desbloquear la señal de video que
proviene de la consola de videojuegos al TV, para administrar el tiempo de alquiler
de las consolas.
Lo que se llevo a cabo fue la implementación de una comunicación bidireccional
entre el PIC18F4550 y el software del PC vía USB 2.0, aprovechando que la serie
de microcontroladores PIC18Fxx5x tienen entre sus recursos dicho tipo de
comunicación, para dicho fin incluye dos formas de transmitir los datos por USB, la
primera es la transmisión isócrona y la segunda es la transmisión Bulk, las cuales
se explicaron anteriormente en el marco teórico del proyecto en la sección Interfaz
USB. Para llevar a cabo dicha comunicación se decidió programar el modulo con
protocolo Bulk.
Se realizaron los protocolos necesarios para ambos extremos de esta línea de
comunicación, de una parte el firmware para el PIC en CCS C, y de la otra el
software del PC. Como intermediarios se utilizaron dos recursos que provee
Microchip: El Driver para Windows y la DLL mpusbapi.dll.
67
Para el firmware se utilizaron como base los ejemplos y descriptores USB que trae
el programa CCS C, adaptándolos a la necesidad del proyecto, fundamentalmente
los archivos VID&PID, necesarios para reconocer el dispositivo USB al ser
conectado al computador.
En el apartado siguiente se describen los componentes utilizados para llevar a
cabo el diseño de la parte Hardware.
De la parte del PC se deben instalar los Drivers para Windows que ofrece
Microchip, los cuales sirven de puente entre el software y el firmware.
4.4. COMPONENTES UTILIZADOS
4.4.1. PIC18F4550
Es un microcontrolador PIC de gama alta desarrollado por la Microchip, sus
características principales son. (MICROCHIP):


















Memoria flash de 32Kbytes
Memoria SRAM 2048 bytes
Memoria EEPROM 256 bytes
Máximo número de instrucciones simples 16384
Número de entradas/salidas 35
Numero de pines 40
Comparadores 2
Numero de temporizadores de 8 bits 1
Numero de temporizadores de 16 bits 3
Frecuencia de hasta 48 MHz con cristal externo
Velocidad de CPU de 12 MIPS
Soporta comunicación USB 1.0, Full Speed y 2.0
Soporta otras comunicaciones como SPI, SSP, USART.
Las características funcionales que soporta para USB 2.0 son:
Tasa de transferencia de hasta 12 Mbits
Buffer USB de 1Kbyte
Soporta modos de transferencia de control, Interrupción, Bulk e isincrona.
Operación a 48 MHz
68
Disposición de pines del microcontrolador PIC 18F4550. (MICROCHIP):
Figura 14. Disposición de pines del microcontrolador PIC18F4550
La selección de este dispositivo se realizó con base en las características
principales que posee, determinando las necesidades que requiere el sistema
propuesto y satisfaciéndolas con las funcionalidades que presta este dispositivo.
Las principales características que se tuvieron en cuenta para escoger el
microcontrolador PIC 18F4550 son:
 Soporta comunicación USB, desde la versión 1.0 hasta la 2.0.
 Soporta el modo de transferencia Bulk que nos permite mayor tasa de
transferencia.
 Es un microcontrolador de gama alta con buenas características de
memoria y procesamiento.
 Este microcontrolador es soportado por aplicaciones como CCS C que nos
permite programar el Firmware en lenguaje C de alto nivel.
 Podemos aprovechar la cantidad de puertos de entrada/salida para agregar
más dispositivos o funcionalidades externas.
69
 Pertenece a la familia de microcontroladores PIC 18FXX5X que es utilizada
en un gran número de aplicación utilizando el puerto USB, debido a esto se
encuentra buena documentación y soporte.
 Es desarrollado por la Microchip que se caracteriza por documentar muy
bien sus productos en los datasheet que coloca a disposición de los
usuarios.
4.4.2. ULN2803
Es un circuito integrado ideal para ser empleado como interfaz entre las salidas de
un PIC o cualquier integrante de las familias TTL o CMOS y dispositivos que
necesiten una corriente más elevada para funcionar, como por ejemplo, un relé.
Dentro del ULN2803 se encuentran 8 transistores NPN Darlington. Todas sus
salidas son a colector abierto y se dispone de un diodo para evitar las corrientes
inversas. El modelo ULN2803 está especialmente diseñado para ser compatible
con entradas TTL.
Figura 15. Diagrama interno del integrado ULN2803
Cada una de las 8 secciones que componen al ULN2803 puede verse en el
siguiente diagrama:
70
Figura 16. Diagrama de una sección del integrado ULN2803
Se seleccionó este integrado ya que para el bloqueo y desbloqueo de la señal de
video se utilizaran relés especiales para este tipo de señal. Para llevar a cabo este
proceso se requiere de un modulo de potencia que genere mayor corriente y lleve
a cabo la activación, la mejor opción es utilizar transistores tipo Darlington, que es
una combinación de dos transistores bipolares en forma de cascada, con la
finalidad de proporcionar una gran ganancia de corriente.
Figura 17. Conexión de transistores Darlington
El integrado ULN2803 cumple con estas características y además de esto en un
solo componente, reduciendo el tamaño de la tarjeta de control y proporcionando
hasta 8 salidas con las cuales podemos administrar el alquiler de hasta 8 consolas
de videojuegos.
71
4.4.3. Comunicación USB
Como se logra identificar en la información obtenida del estado del arte de
sistemas de este tipo, se están utilizando puertos de comunicación como el serial
(protocolo RSS-232) y el paralelo para establecer la comunicación entre la
aplicación del PC y la tarjeta de control. Para otorgar un valor agregado al
proyecto que se desarrolló, se seleccionó como interfaz de comunicación el puerto
USB, que está tomando mucho auge en proyectos que requieren comunicación
entre un dispositivo electrónico y un PC, ya que los demás puertos mencionados
ya no son tan comunes en PCs y menos en computadoras portátiles.
Además de lo anterior, para la selección de USB como interfaz de comunicación
se tuvieron en cuenta las siguientes características:
 USB se basa en la tecnología Plug and Play, que permite conectar
dispositivos a un PC y ser identificados por este sin realizar ninguna
configuración.
 La Microchip empresa fabricante del microcontrolador PIC 18F4550
proporciona el driver que sirve de puente entre el PIC y el PC. Con este
recurso solo se necesita conectar el dispositivo, instalar el driver
proporcionado y cuando se conecte el dispositivo las siguientes veces el PC
se reconoce automáticamente.
 Soporta tasas de transferencia de hasta 480 Mbits con la tecnología USB
2.0
 Fácil manipulación y conexión con el dispositivo desarrollado, ya que solo
intervienen 4 pines en la interfaz física, 2 de datos (D+, D-) y 2 de
alimentación (VCC, GND).
 Se puede obtener la alimentación eléctrica directamente desde el PC si el
dispositivo no requiere mucho consumo de corriente y su voltaje no supera
los 5v con los pines de (VCC y GND).
 Los lenguajes de programación de alto nivel para computadoras y para
microcontroladores, proporcionan rutinas y procedimientos para una fácil
manipulación del puerto USB, simplificando la tarea a la hora de programar.
72
.
Figura 18. Conexión de pines en el conector USB
Figura 19. Conexión del conector USB al PIC18F4550
4.5.
DESARROLLO DE LA TARJETA DE CONTROL
En el desarrollo de la tarjeta de control del Hardware se tuvieron en cuenta las
sugerencias de MICROCHIP para el correcto funcionamiento del microcontrolador
con el módulo USB, se utilizó como oscilador un cristal de 20 MHz aprovechando
que el microcontrolador tiene un circuito interno PLL que ajusta la frecuencia
interna de oscilación a 4 MHz, la cual puede ser elevada a la frecuencia nominal
de trabajo de 48 MHz con la ayuda del circuito interno de Post-scaler.
73
El protocolo de transmisión utilizado fue el tipo Bulk, se seleccionó por las ventajas
que se mencionan en la siguiente grafica.
Como se puede observar en la tabla, la rata de transferencia de datos máxima
posible varía enormemente de acuerdo al tipo de transferencia y a la velocidad de
bus.
Tabla 5. Tipos y rata de transferencia en USB
Como se puede apreciar en la tabla, a full speed el tipo de transferencia Bulk es el
que ofrece la posibilidad de mayor rata de transferencia de datos.
Mencionados anteriormente los componentes a utilizar, a continuación se muestra
la conexión entre estos desarrollados en el software Proteus ISIS 7.6 SP0 y los
valores de los componentes como resistencias, condensadores, osciladores y
demás componentes necesarios para el correcto funcionamiento del hardware.
74
Figura 20. Conexiones detalladas entre en puerto USB y el PIC18F4550
Figura 21. Conexiones detalladas con el ULN2803
75
Figura 22. Esquema simplificado de la tarjeta de control desarrollado en PROTEUS 7.6
4.6.
DESARROLLO DEL FIRMWARE PARA EL PIC18F4550
El firmware para el microcontrolador fue desarrollado en CCS C. El software para
el desarrollo y compilación del firmware fue PCWH Compiler V4.023
Lo primero que se debe tener en cuenta para desarrollar el firmware de
microcontrolador es la configuración de los fuses para el correcto funcionamiento
del PIC.
La palabra fuse viene a significar fusible. Hay ciertos aspectos del PIC que han de
ser activados o desactivados mediante hardware a la hora de programarlo. Esto
76
quiere decir que no se pueden volver a cambiar hasta que el chip no se
reprograme de nuevo. Como no se pueden cambiar, de ahí le viene que sea como
un fusible, el cual han fundido intencionadamente para proteger el modo de
funcionamiento del procesador. La selección de los fuses se realiza de acuerdo a
los componentes externos al PIC que se conecten, a la tasa de transferencia que
manejará y la velocidad de procesamiento.
Para alcanzar la velocidad de funcionamiento requerida por USB se necesitan una
frecuencia nominal de 48 MHz. El cristal seleccionado es de 20 Mhz, para
alcanzar la velocidad requerida se debe hacer una cuidadosa selección de los
fuses para activar el PLL interno del PIC y alcanzar la velocidad de trabajo.
Para combinar el oscilador interno del PIC con el oscilador externo, es necesario
realizar una correcta selección y configuración de fuses, para esto la hoja de datos
del microcontrolador PIC18F4550 que proporciona MICROCHIP contiene en sus
páginas 32 y 33 recomendaciones importantes para realizar correctamente la
configuración. A continuación se muestra la configuración necesaria alcanzar la
velocidad de trabajo requerida.
Tabla 6. Opciones de configuración del oscilador para la operación USB
En la primer columna (Input Oscillator Frequency) se selecciona el valor del cristal
externo que utilizara la tarjeta de control, para este caso 20Mhz, en la última
columna (Microcontroller Clock Frequency) seleccionamos la velocidad nominal de
trabajo requerida, para el caso de USB 48MHz, y de acuerdo a esto aparecen los
valores de configuración de los Fuses (HSPLL, PLL5, CPUDIV1).
#fuses HSPLL y PLL5. La frecuencia de oscilación necesaria para el USB 2.0 es
de 48 Mhz. Como se utilizó en el hardware un cristal de cuarzo de 20 Mhz se
77
necesita hacer uso del módulo PLL interno del PIC. Para ello se utiliza el fuse
HSPLL. Como el módulo PLL requiere una oscilación de entrada de 4 Mhz se
debe utilizar el divisor 1:5 indicado con el fuse PLL5 para obtener los 20:5 = 4 Mhz
requeridos.
USB_ENABLE_BULK y SIZE 32. Para activar el método de transferencia masiva
mediante el USB se debe configurar los EndPoint de transmisión y recepción,
USB_EP1_TX_ENABLE y USB_EP1_RX_ENABLE, indicándolo con la constante
USB_ENABLE_BULK. Es imprescindible deshabilitar el método HID (Human
Interface Device). El tamaño del buffer de transferencia se puede ajustar desde 1
a 32 bytes como máximo. Se estableció un tamaño de 5 bytes por envío o
recepción de paquetes USB.
#include PicUSB.h. En el fichero PicUSB.h, cargado con el correspondiente
include, se definen las estructuras y parámetros necesarios para la conexión USB.
main(). Las funciones usb_init(), usb_task(), usb_wait_for_enumeration(),
usb_enumerated(), usb_kbhit(), usb_get_packet() y usb_put_packet() están
desarrolladas en el driver que proporciona CCS C para el manejo del USB 2.0 y
vienen definidas e implementadas en los includes pic18_usb.h, usb.c y usb.h que
se pueden encontrar en el directorio ..\Drivers de la instalación de CCS C.
usb_init(), usb_task() y usb_wait_for_enumeration() se utilizan solo para
establecer la comunicación y se ejecutan únicamente tras un reset del
microcontrolador.
A partir de este punto sólo queda esperar a recibir un comando proveniente del
PC. Esto se detecta con usb_kbhit() que al devolver true indicará que se tiene algo
pendiente de recibir. Y se va a recoger mediante usb_get_packet() quedando
disponible en recbuf.
Para contestar se utiliza la función usb_put_packet(), en el que se envía con la
instrucción usb_put_packet(1,envia,5,USB_DTS_TOGGLE); enviando el contenido
correspondiente
A continuación se muestra en código fuente en lenguaje C del firmware del
microcontrolador.
78
#include <18F4550.h>
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN,NOPBADEN
#use delay(clock=48000000)
#define USB_HID_DEVICE FALSE
//deshabilitamos el uso de las directivas HID
#define USB_EP1_TX_ENABLE USB_ENABLE_BULK //turn on EP1(EndPoint1) for IN bulk/interrupt
transfers
#define USB_EP1_RX_ENABLE USB_ENABLE_BULK //turn on EP1(EndPoint1) for OUT bulk/interrupt
transfers
#define USB_EP1_TX_SIZE 5
//size to allocate for the tx endpoint 1 buffer
#define USB_EP1_RX_SIZE 5
//size to allocate for the rx endpoint 1 buffer
/////////////////////////////////////////////////////////////////////////////
//
// Include the CCS USB Libraries. See the comments at the top of these
// files for more information
//
/////////////////////////////////////////////////////////////////////////////
#include <pic18_usb.h> //Microchip PIC18Fxx5x Hardware layer for CCS's PIC USB driver
#include <PicUSB.h>
//Configuración del USB y los descriptores para este dispositivo
#include <usb.c>
//handles usb setup tokens and get descriptor reports
#define CTR1
PIN_D0
//Controlador 1
#define CTR2
PIN_D1
//Controlador 2
#define CTR3
PIN_D2
//Controlador 3
#define CTR4
PIN_D3
//Controlador 4
#define CTR5
PIN_D4
//Controlador 5
#define CTR6
PIN_D5
//Controlador 6
#define CTR7
PIN_D6
//Controlador 7
#define CTR8
PIN_D7
//Controlador 8
#define CTR_ON output_high
#define CTR_OFF output_low
#define comando recibe[0]
#define param1 recibe[1]
#define param2 recibe[2]
#define param3 recibe[3]
#define param4 recibe[4]
#define eco
envía[0]// Hace un eco del comando recibido
#define result1 envía[1]
#define result2 envía[2]
#define result3 envía[3]
#define result4 envía[4]
void main(void) {
int8 recibe[5];
int8 envia[5];
//declaramos variables
CTR_OFF(CTR1);
CTR_OFF(CTR2);
CTR_OFF(CTR3);
CTR_OFF(CTR4);
CTR_OFF(CTR5);
79
CTR_OFF(CTR6);
CTR_OFF(CTR7);
CTR_OFF(CTR8);
//Apagamos los controladores
usb_init();
//inicializamos el USB
usb_task();
//habilita periferico usb e interrupciones
usb_wait_for_enumeration();
//esperamos hasta que el PicUSB sea configurado por el host
while (TRUE)
{
if(usb_enumerated())
//si el PicUSB está configurado
{
if (usb_kbhit(1))
//si el endpoint de salida contiene datos del host
{
usb_get_packet(1, recibe, 5); //recibe el paquete de tamaño 5 bytes del EP1 y almacenamos en recibe
eco = comando; //Regresa el comando recibido
result1 = param1*2;
result2 = param2*2;
result3 = param3*2;
result4 = param4*2;
switch (comando)
{
case 1:// Enciende controlador 1
CTR_ON(CTR1);
break;
case 2:// Enciende controlador 2
CTR_ON(CTR2);
break;
case 3:// Enciende controlador 3
CTR_ON(CTR3);
break;
case 4:// Enciende controlador 4
CTR_ON(CTR4);
break;
case 5:// Enciende controlador 5
CTR_ON(CTR5);
break;
case 6:// Enciende controlador 6
CTR_ON(CTR6);
break;
case 7:// Enciende controlador 7
CTR_ON(CTR7);
break;
case 8:// Enciende controlador 8
CTR_ON(CTR8);
break;
case 9:// Apaga controlador 1
CTR_OFF(CTR1);
break;
case 10:// Apaga controlador 2
CTR_OFF(CTR2);
break;
case 11:// Apaga controlador 3
CTR_OFF(CTR3);
80
break;
case 12:// Apaga controlador 4
CTR_OFF(CTR4);
break;
case 13:// Apaga controlador 5
CTR_OFF(CTR5);
break;
case 14:// Apaga controlador 6
CTR_OFF(CTR6);
break;
case 15:// Apaga controlador 7
CTR_OFF(CTR7);
break;
case 16:// Apaga controlador 8
CTR_OFF(CTR8);
break;
}
usb_put_packet(1, envía, 5, USB_DTS_TOGGLE); //enviamos el paquete de tamaño 5 bytes del EP1
al PC
}// Fin if (usb_kbhit(1))
}// Fin if(usb_enumerated())
}// Fin while (TRUE)
}
4.7.
DESARROLLO DEL CIRCUITO IMPRESO
Para el desarrollo del circuito impreso se usó el software Proteus ARES 7.6 SP0.
El cual a partir del esquemático permite diseñar los diagramas para el circuito
impreso. Los diagramas desarrollados fueron:
 Top Layer
 Top Overlay
El circuito impreso se divide en tres bloques:
 Bloque de control
 Bloque de potencia
 Bloque de switcheo
81
4.7.1. Bloque de control
Incluye componentes como el microcontrolador, puerto USB, oscilador y fuente de
alimentación.
Los puertos A, B, C y E del microcontrolador se dejaron con regletas tipo SIP para
que el usuario los use de acuerdo a sus requerimientos. El puerto D se dejó
habilitado para la conexión con la etapa de potencia del circuito.
La tarjeta está diseñada para ser alimentada con una fuente externa, el bloque de
control se alimenta con un voltaje de 5v y la etapa de potencia a 12v. Otra opción
era alimentar el bloque de control a través del puerto USB, este método se
descartó, ya que se necesitan dos voltajes de alimentación 5v y 12v, y el puerto
USB solo ofrece 5v, y dependiendo de consumo del circuito algunas Board de PC
no pueden garantizar el voltaje y la corriente mínima para el correcto
funcionamiento del hardware.
En caso que el usuario requiera reiniciar el hardware o el sistema se bloquee, el
circuito cuenta con un pulsador de RESET.
A continuación se presentan los esquemas del circuito impreso para el bloque de
control.
82
Figura 23. Diagrama detallado de conexión del bloque de control.
83
Figura 24. Top Layer del bloque de control
Figura 25. Top Overlay del bloque de control
84
4.7.2. Bloque de potencia
Incluye como componente principal el integrado ULN2803 que es un circuito
integrado que posee una serie de transistores Darlington en cascada. En esta
etapa se amplifica la corriente de la fuente para garantizar la activación de los
relés encargados del switcheo en la siguiente etapa.
Para esta etapa el voltaje de alimentación utilizado es de 12v, y solo se utilizarón 3
de los 8 pines disponibles del integrado, ya que se pretende controlar mínimo 3
consolas de videojuegos con este prototipo hardware.
Para la comunicación con la etapa de switcheo se utilizaron conectores RJ11,
comúnmente utilizados para líneas telefónicas, con el fin de instalar la siguiente
etapa en el lugar de ubicación de la consola de videojuegos.
A continuación se presentan los esquemas del circuito impreso para el bloque de
control.
Figura 26. Diagrama detallado de conexión del bloque de potencia
85
Figura 27. Top Overlay del bloque de potencia
Figura 28. Top Layer del bloque de potencia
86
4.7.3. Bloque de switcheo
Se compone básicamente de un relé permanentemente abierto y de dos
conectores RCA. Este bloque es el encargado de bloquear y desbloquear la señal
de video entre la consola de videojuegos y el televisor. Cuando al relé llega la
alimentación eléctrica, este cierra el circuito dejando pasar la señal de video y la
bloquea cuando el bloque de potencia suspende la alimentación eléctrica.
La calidad de la señal de video no se ve afectado por el paso a través del relé
según las pruebas realizadas.
4.8.
EL SOFTWARE PARA EL PC
El software encargado de administrar el dispositivo hardware se desarrolló
utilizando Microsoft Visual C++ Express Edition, que es un entorno de desarrollo
integrado (IDE) para lenguajes de programación C, C++ y C# y está
especialmente diseñado para el desarrollo y depuración de código escrito para las
API's de Microsoft Windows, DirectX y la tecnología Microsoft .NET Framework. La
versión Express Edition es gratuita y se puede descargar desde el sitio de
Microsoft. La aplicación se codifico en C# (Sharp) que es un lenguaje de
programación orientado a objetos desarrollado y estandarizado por Microsoft como
parte de su plataforma .NET, su sintaxis básica deriva de C/C++ y utiliza el modelo
de objetos de la plataforma.NET, similar al de Java aunque incluye mejoras
derivadas de otros lenguajes (entre ellos Delphi).
La selección del IDE de desarrollo y del lenguaje de programación se realizó
teniendo en cuenta los siguientes aspectos:
 Ofrece funcionalidades de alto nivel e incorpora elementos gráficos que
simplifican la tarea de generación de código fuente y el diseño de
interfaces.
 Es orientado a objetos lo que permite desarrollar unidades modulares y
reutilizables.
 Incorpora una serie de librerías que permiten una fácil manipulación de los
puertos de entrada y salida del PC.
87
 Permite usar con suma facilidad la plataforma de sistemas Windows, dado
que tiene acceso prácticamente total a la API de Windows, incluidas
librerías actuales.
 El código en C Sharp es fácilmente migrable a otros lenguajes.
 Fácilmente extensible mediante librerías DLL y componentes ActiveX de
otros lenguajes.
 Es un entorno perfecto para realizar pequeños prototipos rápidos de ideas.
Para el diseño y desarrollo de la aplicación se plantearon los siguientes requisitos:
4.8.1. Requerimientos funcionales y no funcionales
Funcionales













Registrar usuarios del sistema en la base de datos
Registrar consolas de videojuegos en la base de datos
Registrar tarifas en la base de datos
Validar usuarios
Asignar privilegios según la clase de usuario
Asignar tiempo de uso a cada consola de videojuegos
Cancelar tiempo de uso a cada consola de videojuegos
Calcular saldo a cancelar
Generar reporte de venta en la base de datos
Consultar información
Bloquear consola de videojuegos
Desbloquear consola de videojuegos
Interacción con un dispositivo electrónico a través de una interface de
comunicación.
No funcionales
 Sistema de fácil manejo y entrenamiento por parte de los usuarios
 El sistema manipulado por una sola persona.
 El sistema debe arrojar mensajes de error claros con el fin de identificar de
forma fácil el problema.
88
 El sistema debe estar disponible al 100% o a un valor muy cercano a este
durante el horario de trabajo.
 El sistema debe permitir en un futuro el desarrollo de nuevas
funcionalidades o al contrario, eliminar funcionalidades después de su
puesta en marcha.
 El sistema debe contar con un manual de uso básico.
 El sistema debe ser de fácil instalación y funcionar sobre plataformas
Windows
4.8.2. Requerimientos del sistema
Del sistema
 El sistema debe contar con un dispositivo electrónico que controle
directamente el bloqueo y desbloqueo de las consolas de videojuegos.
 El sistema debe contar con un motor de base de datos MySQL.
 El sistema debe tener por lo menos un puerto de entrada y salida (E/S) tipo
USB, para la comunicación con el dispositivo electrónico.
 Sistema operativo Windows con características mínimas de procesador y
memoria RAM. Procesador: 800 MHz, Memoria RAM: 256 Megas
89
4.8.3. Caso de uso general del sistema
Figura 29. Caso de uso general del software de control y tarifación
4.8.4. Diseño y desarrollo del software
A continuación se presenta algunas de las interfaces desarrolladas para cumplir
con los requisitos funcionales de la aplicación.
90
Validar usuario
Figura 30. Interfaz validar usuario
Registrar usuario
Figura 31. Interfaz registrar usuario
91
Asignar tiempo
Figura 32. Interfaz asignar tiempo
Cancelar tiempo
Figura 33. Interfaz cancelar tiempo
92
Consultar información
Figura 34. Interfaz consultar información
Figura 35. Interfaz reporte de venta
93
Para la comunicación entre la aplicación y el firmware del PIC18F4550 se utilizó la
librería MPUSBAPI.DLL proporcionada por la MICROCHIP, creada para una
mayor facilidad en desarrollo de aplicaciones basadas en el bus USB, la cual
proporciona las funciones de acceso al puerto USB con un microcontrolador de la
familia PIC18Fxx5x. Esta librería es válida para los lenguajes C, Delphi y VB.
La librería MPUSBAPI.dll ofrece funciones como:
MPUSBGETDLLVERSION(VOID) Lee el nivel de revisión del MPUSAPI.dll. Es un
nivel de revisión de 32bits. Esta función no devuelve la versión del código, no
realiza nada con el USB. Devuelve la versión de la DLL en formato hexadecimal
de 32bits.
MPUSBGetDLLVersion()
MPUSBGETDEVICECOUNT(PVID_PID) Devuelve el número de dispositivo con
VID_PID asignado.
pVID_PID: Input: cadena de caracteres del número de identificación asignado.
MPUSBGetDeviceCount(vid_pid)
MPUSBOPEN(INSTANCE, PVID_PID, PEP, DWDIR, DWRESERVED) Devuelve
el acceso al pipe del Endpoint con el VID_PID asignado.
MPUSBOpen(0, vid_pid, out_pipe, MP_WRITE, 0)
MPUSBREAD(HANDLE, PDATA, DWLEN, PLENGTH, DWMILLISECONDS)
handle: Input: Identifica la pipe del Endpoint que se va a leer. La pipe unida tiene
que crearse con el atributo de acceso MP_READ.
pData: Output: Puntero al buffer que recibe el dato leído de la pipe.
dwLen: Input: Especifica el número de bytes que hay que leer de la pipe.
pLenght: Output: Puntero al número de bytes leídos. MPUSBRead pone este
valor a cero antes de cualquier lectura o de chequear un error.
dwMilliseconds: Input: Especifica el intervalo de time-out en milisegundos. La
función vuelve si transcurre el intervalo aunque no se complete la operación. Si
dwMilliseconds=0, la función comprueba los datos de la pipe y vuelve
94
inmediatamente. Si dwMilliseconds es infinito, el intervalo de time-out nunca
termina.
MPUSBRead(myInPipe, VarPtr(s(0)), DatosDeseados, Datos, 1000)
MPUSBWRITE(HANDLE, PDATA, DWLEN, PLENGTH, DWMILLISECONDS)
handle: Input: Identifica la pipe del Endpoint que se va a escribir. La pipe unida
tiene que crearse con el atributo de acceso MP_WRITE.
pData: Output: Puntero al buffer que contiene los datos que se van a escribir en
la pipe. dwLen: Input: Especifica el número de bytes que se van a escribir en la
pipe.
pLenght: Output: Puntero al número de bytes que se escriben al llamar esta
función. MPUSBWrite pone este valor a cero antes de cualquier lectura o de
chequear un error.
dwMilliseconds: Input: Especifica el intervalo de time-out en milisegundos. La
función vuelve si transcurre el intervalo aunque no se complete la operación. Si
dwMilliseconds=0, la función comprueba los datos de la pipe y vuelve
inmediatamente. Si dwMilliseconds es infinito, el intervalo de time-out nunca
termina.
MPUSBWrite(myOutPipe, VarPtr(SendData(0)), bytes, VarPtr(bytes), 1000)
MPUSBREADINT(HANDLE, PDATA, DWLEN, PLENGTH, DWMILLISECONDS)
handle: Input: Identifica la pipe del Endpoint que se va a leer. La pipe unida tiene
que crearse con el atributo de acceso MP_READ.
pData: Output: Puntero al buffer que recibe el dato leído de la pipe.
dwLen: Input: Especifica el número de bytes que hay que leer de la pipe.
pLenght: Output: Puntero al número de bytes leídos. MPUSBRead pone este
valor a cero antes de cualquier lectura o de chequear un error.
dwMilliseconds: Input: Especifica el intervalo de time-out en milisegundos. La
función vuelve si transcurre el intervalo aunque no se complete la operación. Si
dwMilliseconds=0, la función comprueba los datos de la pipe y vuelve
95
inmediatamente. Si dwMilliseconds es infinito, el intervalo de time-out nunca
termina.
MPUSBReadInt(myOutPipe, VarPtr(SendData(0)), bytes, VarPtr(bytes), 1000)
MPUSBCLOSE(HANDLE)
Cierra una determinada unión.
handle: Input: Identifica la pipe del Endpoint que se va a cerrar.
MPUSBClose (myOutPipe)
4.8.5. Diseño de la base de datos
4.8.5.1. Modelo relacional de datos
Figura 36. Modelo relacional de la base de datos
96
4.8.5.2.
Modelo físico de datos
-- phpMyAdmin SQL Dump
-- version 2.6.4-pl4
-- http://www.phpmyadmin.net
--- Servidor: localhost
-- Tiempo de generación: 28-10-2010 a las 13:26:38
-- Versión del servidor: 5.0.16
-- Versión de PHP: 5.1.1
--- Base de datos: `ciberconsolas`
--- ---------------------------------------------------------- Estructura de tabla para la tabla `consola`
-CREATE TABLE `consola` (
`id_consola` int(11) NOT NULL,
`nombre_consola` varchar(20) NOT NULL,
PRIMARY KEY (`id_consola`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--- Estructura de tabla para la tabla `reporte`
-CREATE TABLE `reporte` (
`id_reporte` int(11) NOT NULL auto_increment,
`consola_id_consola` int(11) NOT NULL,
`tarifa_id_tarifa` int(11) NOT NULL,
`fecha` datetime default NULL,
`tiempo_inicio` varchar(15) default NULL,
`tiempo_fin` varchar(15) default NULL,
`tiempo_asignado` time default NULL,
`tiempo_uso` time default NULL,
`valor` float default NULL,
PRIMARY KEY (`id_reporte`),
KEY `consola_id_consola` (`consola_id_consola`),
KEY `tarifa_id_tarifa` (`tarifa_id_tarifa`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ;
--- Estructura de tabla para la tabla `tarifa`
-CREATE TABLE `tarifa` (
`id_tarifa` int(11) NOT NULL auto_increment,
`nombre_tarifa` varchar(20) NOT NULL,
PRIMARY KEY (`id_tarifa`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ;
97
--- Estructura de tabla para la tabla `tarifapersonalizada`
-CREATE TABLE `tarifapersonalizada` (
`id_tarifapersonalizada` int(11) NOT NULL auto_increment,
`tarifa_id_tarifa` int(11) NOT NULL,
`tiempo_tarifapersonalizada` time NOT NULL default '00:00:00',
`valor_tarifapersonalizada` float NOT NULL,
PRIMARY KEY (`id_tarifapersonalizada`),
KEY `tarifa_id_tarifa` (`tarifa_id_tarifa`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=0;
--- Estructura de tabla para la tabla `usuario`
-CREATE TABLE `usuario` (
`id_usuario` int(11) NOT NULL auto_increment,
`nombre_usuario` varchar(25) NOT NULL,
`password_usuario` varchar(20) NOT NULL,
`privilegios_usuario` varchar(12) NOT NULL,
PRIMARY KEY (`id_usuario`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=0;
98
5. CONCRECIÓN DEL MODELO
5.1.
PRUEBAS DE RECONOCIMIENTO E INSTALACIÓN
El primer paso para realizar la comunicación entre el dispositivo hardware y el
software del PC es la instalación del driver para Windows que provee la Microchip
para la implementación de comunicación con la tecnología USB.
El driver le permite al sistema operativo interactuar con la tarjeta de control.
Ejecución
La prueba realizada para verificar el reconocimiento y la instalación de la tarjeta de
control en un PC portátil con sistema Operativo Windows Vista Home 32 bits,
consta de las siguientes actividades:
Conectar el dispositivo hardware a un puerto USB del PC.
Figura 37. Reconocimiento del dispositivo por parte del PC
Luego de realizar este procedimiento el sistema operativo detecta un nuevo
dispositivo conectado. El microcontrolador envía al PC sus datos de identificación
(VID y PID) que básicamente corresponde al número y nombre del dispositivo.
99
Una vez reconocido el dispositivo con el nombre de “J1M PicUSB” el sistema
operativo realiza una búsqueda dentro de su galería de drivers de los archivos
necesarios para la instalación del dispositivo. Como es un dispositivo nuevo el
sistema operativo no encuentra un driver apropiado por lo que solicita al usuario
una ubicación e instalación manual de este, presentando lo siguiente:
Figura 38. Solicitud de ubicación manual del driver del dispositivo
Figura 39. Ubicación manual del driver del dispositivo
100
Lo siguiente es localizar la carpeta con los archivos del driver en el PC
Figura 40. Selección manual del driver del dispositivo
El sistema operativo verifica los archivos contenidos en la carpeta y determina si
corresponden al dispositivo conectado para iniciar la instalación automática de
estos.
Figura 41. Instalación del driver del dispositivo
101
Luego de finalizado el proceso de instalación del driver, el sistema operativo
notifica la correcta instalación de este
Figura 42. Notificación de driver instalado correctamente
Se verifica en el administrador de dispositivos de Windows que se haya
identificado la tarjeta de control como un dispositivo más del sistema.
Figura 43. Reconocimiento del hardware en el administrador de dispositivos del PC
102
En este momento el dispositivo está listo y correctamente configurado para
realizar la comunicación con el software del PC.
Este procedimiento se realiza la primer ves que se conecta el dispositivo al PC,
para la próxima vez que se conecte el dispositivo el sistema operativo lo
reconocerá automáticamente utilizando la tecnología Plug and Play.
Solo será necesario repetir el procedimiento si se realiza la desinstalación del
dispositivo o si se conecta a un puerto USB diferente al utilizado en la primera
conexión.
5.2.
PRUEBAS DE COMUNICACIÓN Y FUNCIONAMIENTO
Después de instalado y configurado el dispositivo en el PC se procede a realizar
las primeras pruebas de comunicación.
Para llevar a cabo esta prueba se desarrolló una aplicación rápida de prueba en
Microsoft Visual C++ Express Edition la cual verifica la conexión con el dispositivo
y envía una cadena de datos con un tamaño de 5 Bytes al microcontrolador.
Ejecución:
Con el botón “Nro. De Dispositivo” se comprueba si el dispositivo esta
correctamente conectado y configurado. En los campos de la columna izquierda
se ingresa en primer lugar el numero de PIN (N+1) del microcontrolador
correspondiente al puerto D, que se desea activar, los demás campos con datos
numéricas de cualquier valor, y se presiona “Transmite”
103
Figura 44. Transmisión de datos al microcontrolador
Cada Byte es almacenado en una casilla del vector de datos definido en el
Firmware de PIC, el primer Byte indica el numero el numero del PIN (N-1) del
puerto D del microcontrolador que debe activarse, y cada uno de los 4 Bytes
restantes se multiplica por 2. El Firmware activa el PIN correspondiente y hace un
eco del primer Byte y envía el resultado de la multiplicación de cada uno de los 4
Bytes al software de prueba de PC y de despliegan en la columna derecha de la
imagen anterior.
Figura 45. Ejecución de tareas programadas en el microcontrolador
104
Con la prueba anterior se verificó la correcta comunicación bidireccional entre el
software de prueba del PC y el firmware del microcontrolador PIC18F4550.
5.3.
PRUEBAS DE INTEGRACIÓN
Para la realización de esta prueba se utilizaron los siguientes dispositivos:







Un PC con el software de control y tarifación y conexión USB
El bloque de control
El bloque de potencia
El bloque de switcheo
Una consola de videojuegos
Un televisor
Una fuente de alimentación
Se montó el siguiente escenario:
Figura 46. Escenario de prueba de integracion
105
Ejecución:
La primera actividad fue realizar la interconexión entre los tres bloques que
componen el dispositivo y comprobar la conectividad entre estos.
Figura 47. Interconexión de los bloques de la tarjeta de control
Luego se realizó la conexión en el bloque de switcheo del cable RCA proveniente
de la consola de videojuegos, y el otro extremo al TV. Y después la conexión a
través del puerto USB entre el dispositivo y el PC, obteniendo el siguiente
escenario de prueba.
Figura 48. Interconexión de la consola de videojuegos y la tarjeta de control
106
Figura 49. Interconexión de todos los dispositivos
Puesto en funcionamiento el dispositivo, se puede observar que se mantiene
bloqueada la señal de video hasta que el software del PC no active la consola de
videojuegos. A través del software de control y tarifación se activo el servicio de
alquiler de la consola de videojuegos desbloqueando la señal de video entre la
consola y el TV por el tiempo asignado en el software.
Figura 50. Activación de la consola en el software del PC
107
Figura 51. Verificación de la activación de la consola
Culminado el tiempo de alquiler programado en el software del PC, la consola de
videojuego queda nuevamente bloqueada hasta que se active de nuevo el
servicio. Con las imágenes anteriores se puede verificar que el dispositivo cumple
su función de bloquear y desbloquear la consola de videojuegos a través de la
señal de video de acuerdo al tiempo de alquiler programado en el software de
control y tarifación instalado en el PC.
108
6. CONCLUSIONES
 Utilizando el microcontrolador PIC18F4550 es posible implementar una
comunicación satisfactoria entre la tarjeta de control y el software del PC
haciendo uso de la tecnología USB.
 Se hace más práctico utilizar la tecnología USB en comparación con la
serial y paralela en proyecto desarrollado, ya que ofrece mayores tasas de
transferencia y su conexión es más fácil gracias a la tecnología Plug and
Play.
 Se desarrolló el firmware del microcontrolador utilizando el lenguaje de
programación de alto nivel CCS C con el software PCWH Compiler, ya que
este ofrece todas la librerías necesarias para el manejo del PIC18Fxx5x y la
comunicación USB haciendo más fácil la tarea de programación.
 Se implementó una comunicación bidireccional masiva, bulk transfers, entre
el PIC18F4550 y el Software del PC vía USB 2.0 a full speed; ya que esta
configuración es la que ofrece mayor rata de transferencia de datos.
 Para trabajar el módulo USB del microcontrolador en Full Speed se requiere
de una frecuencia de oscilación de 48 Mhz, esto no implica que sea
necesario usar un cristal de este valor, debido a que en la etapa de
investigación se encontró que es posible ajustar la frecuencia de oscilación
mediante el postscaler del microcontrolador.
 Se desarrolló el Software del PC utilizando el leguaje de programación
orientado a objetos C Sharp, que permite la reutilización y extensión de
código fuente, facilita la creación de prototipos y programas visuales, agiliza
el desarrollo del Software y permite abstracción, relacionando el sistema
con el mundo real.
 La utilización de IDE (Entornos de Desarrollo Integrado) se convierte en una
herramienta práctica para la codificación de aplicaciones Software para PC,
ya que simplifica el proceso de generación de código fuente y diseño de
interfaces.
109
 En los recursos que ofrece la empresa Microchip (Driver y librería
MPUSBAPI.dll) es posible encontrar las funciones y rutinas necesarias para
realizar la sincronización y comunicación satisfactoria vía USB.
 Debido a que la sintaxis del los códigos de programación en lenguaje C
Sharp se deriva de C/C++ y utiliza el modelo de objetos de la
plataforma.NET la programación se reduce sustancialmente y se hace más
simple y entendible.
 La utilización de la plataforma .NET de Microsoft para el desarrollo del
componente Software del PC facilita la programación a la hora de utilizar
los puertos de entrada/salida bajo sistemas Windows.
 En el desarrollo de este proyecto se analizaron las características técnicas
de los dispositivos que se encuentran actualmente en el mercado, y se
implementaron las que más se adaptan al sistema, proporcionando una
diferencia significativa con estos al utilizar un sistema de comunicación a
través del puerto USB.
 Se determino que a través de un sistema computacional integrando
software y hardware es posible dar solución a los problemas de control y
tarifación en los centros dedicados a la renta de consolas de videojuegos.
110
7. RECOMENDACIONES
 Para el correcto funcionamiento del dispositivo se debe tener en cuenta la
versión del sistema operativo Windows para instalar el Driver
correspondiente.
 El sistema permite controlar las señales de video a través de conectores
RCA, común en la mayoría de las consolas de videojuegos, si se desea
controlar otro tipo de sistema como el HDMI, solo se debe reemplazar el
modulo de Swicheo del dispositivo.
 Para la correcta programación del microcontrolador se debe leer y estudiar
la hoja de datos (Datasheet) del dispositivo.
 Se debe tener en cuenta que para utilizar la tecnología USB el
microcontrolador debe trabajar a una frecuencia de oscilación de 48Mhz
 El proceso de instalación del Driver se debe efectuar la primera vez que se
conecta el dispositivo al PC o cuando se cambia de puerto USB.
 Si se desea ampliar la funcionalidad del dispositivo electrónico, solo es
necesario reprogramar el microcontrolador, y utilizar los puertos disponibles
por medio de las regletas tipo SIP de modulo de control.
 Se recomienda realizar primero la conexión de la fuente de alimentación al
dispositivo y luego la conexión USB para garantizar el reconocimiento de
este en el PC.
 Se recomienda alimentar eléctricamente el hardware con una fuente de 12
a 18 voltios, con una corriente de entre 1 y 2 amperios.
111
BIBLIOGRAFÍA
 aDeSe, A. E. (2009). Datos de la industria: Anuario 2009. Obtenido de
http://www.adese.es./pdf/Anuario2009aDeSe.pdf
 ALCSOFT. (s.f.). Controlador de consolas. Recuperado el Julio de 2010, de
http://www.alcsoft.com.ar/
 ANDERSON, D. (1997). USB System Architecture. Pearson Educaction
Corporate Sales Division.
 ARANGO, P. C., & ARENAS, C. P. (2010). Proyecto de grado “Sistema de
control y monitoreo en tiempo real de procedimientos remotos”. PEREIRA,
RISARALDA, COLOMBIA.
 ASSEL, H. (1999). Comportamiento del consumidor. Mexico: 6ed.
 AXELSON, J. (1999). USB complete. Lakeview Reserch 1ed.
 CCS, C. (2008). Manual de referencia CCS Compiler. Obtenido de
http://www.ccsinfo.com/downloads/ccs_c_manual.pdf
 CONTROLGAME. (s.f.). Tarifador de consolas de juegos. Recuperado el
Julio de 2010, de http://www.controlgame.com.ar/empresa/empresa.html
 CYBERPLANETSOFT. (s.f.). Gestion de CyberCafe. Recuperado el julio de
2010, de http://www.cyberplanetsoft.com/descripcion.asp
 DIAZ MIRANDA, J. (2005). Conectores RCA y HDMI. Recuperado el Junio
de 2010, de http://www.tuelectronica.es/radio-ytelevision/sonido/conectores-de-audio.html
 FERNANDEZ, R. (2002). IEEE1394 y USB 2.0. Obtenido de
http://www.idg.es/dealerworld/IEEE-1394-y-USB-2.0/seccion-/articulo135527
 HAYMAN, J. (1991). Investigacion y educacion.
112
 HERRERA PEREZ, E. (2004). Comunicaciones y ruido digital. Mexico:
Comunicaciones II.
 HUANG, H. W. PIC Microcontroller: An Introduction to Software and
Hardware Interfacing.
 LABCENTER. (s.f.). Professional PCB Design and Simulation. Recuperado
el Agosto de 2010, de www.labcenter.com
 MARQUES PERE, G. (2001). Los videojuegos: Las claves del éxito.
Obtenido de http://peremarques.pangea.org
 MICROCHIP. (s.f.). USB Firmware Users Guide.
PIC18F2455/2550/4455/4550 DataSheet. Obtenido de
http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en0103
00
 MORENO PEREZ, M. (2006). Bus de comunicaciones USB. Obtenido de
http://www.sec.upm.es
 MORTON, J. (2005). The PIC Microcontroller, Your Personal Introductory
Course (Vol. III). Newnes.
 NAVARRO GALVEZ, J. (Febrero de 2005). Tesis “Control de un módulo
bluetooth mediante microcontrolador”.
 RODRIGUEZ DURAN, L. (2007). El Gran Libro del PC Interno. España:
1ed.
 ROMERO ACOSTA, A. I., DELGADO RINCON, J. A., & RODRIGUEZ
NIÑO, J. A. (2006). Tesis "Diseño y construccion de una tarjeta de
adquisicion de datos basado en un microcontrolador PIC bajo el principio de
instrumentacion virtual con interfaz USB". Bogota.
 ROMERO, D. (2007). Construcción de significados frente a los contenidos
violentos de los videojuegos en niños de 11 a 14 años. Bogota.
 STALLINGS, W. (1999). Comunicaciones y redes de computadoras. 5ed.
 TECELCOM. (s.f.). Tecelcom Videojuegos. Recuperado el Octubre de 2010,
de http://web.tecelcom.com/
113
 USB. (1999). USB Mass Storage Class Bulk-Only Transport. Revision
1.031.
 WEITZENFELD, A. (2002). Ingenieria del software orientada a objetos.
Mexico: Itam.
114
Descargar