Está en la página 1de 114

SISTEMA DE CONTROL Y TARIFICACIN DE TIEMPO PARA CONSOLAS DE

VIDEOJUEGOS

DIEGO FERNANDO FIGUEROA VILLEGAS

UNIVERSIDAD CATLICA POPULAR DEL RISARALDA


FACULTAD DE CIENCIAS BSICAS E INGENIERA
PEREIRA - 2010

SISTEMA DE CONTROL Y TARIFICACIN DE TIEMPO PARA CONSOLAS DE


VIDEOJUEGOS

DIEGO FERNANDO FIGUEROA VILLEGAS

PROYECTO DE GRADO

Asesor
GUILLERMO CSPEDES
Ingeniero Electrnico

UNIVERSIDAD CATLICA POPULAR DEL RISARALDA


PROGRAMA DE INGENIERA 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 acadmico universitario, gracias al conocimiento y
enseanza de excelentes docentes, por este motivo es un deseo autorizar a la
universidad Catlica 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 acompaaron en el transcurso del desarrollo


de presente proyecto, en primera instancia a James Andrs Barrera quien me
aporto grandes ideas para el mejoramiento del proyecto y en segunda a Guillermo
Cspedes, 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
compaeros de estudio por su colaboracin.

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 motivacin en los malos
momentos. Pero en especial va dedicado a mi familia, que siempre me ha
apoyado en mis metas y sueos, que al igual que yo se han esforzado para sacar
adelante mi carrera profesional, y que con su ejemplo y carcter han hecho de m
un ser humano integral.

RESUMEN
Los centros de entretenimiento son una fuente de diversin tanto para jvenes
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 mtodos rudimentarios para realizar el control y tarifacin del servicio.
El objetivo principal es disear y construir un sistema computacional y electrnico
que permita administrar, controlar y facturar el servicio de renta o alquiler de
consolas de videojuegos.
Con este proyecto se pretende ofrecer una solucin a los problemas de control y
administracin de los centros de entretenimiento, automatizando las actividades
de asignacin de tiempo, tarificacin y generacin de reportes de venta.
El control y la tarifacin del servicio de alquiler de las consolas de videojuegos se
logra a travs de un circuito electrnico encargado de bloquear y desbloquear la
seal 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 va
USB y ofrece entre otras, funcionalidades como: autenticacin y asignacin de
privilegios de usuario, creacin de consolas y tarifas, generacin y consulta de
reportes de venta.
Palabras claves: consolas de videojuegos, microcontrolador, tarjeta de control,
comunicacin 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
Pg.

INTRODUCCIN ................................................................................................... 15
1. FORMULACIN DEL PROYECTO ................................................................. 17
1.1.

SITUACIN ACTUAL ............................................................................... 17

1.2.

DEFINICIN DEL PROBLEMA ................................................................ 17

1.3.

OBJETIVO GENERAL .............................................................................. 18

1.4.

OBJETIVOS ESPECFICOS ..................................................................... 18

1.5.

JUSTIFICACIN ....................................................................................... 19

1.6.

PLANTEAMIENTO DE LA HIPTESIS .................................................... 19

1.7.

IDENTIFICACIN DE VARIABLES .......................................................... 20

1.8.

PRESUPUESTO ....................................................................................... 21

1.9.

CRONOGRAMA DE ACTIVIDADES DEL PROYECTO............................ 22

2. MARCO CONTEXTUAL .................................................................................. 23


2.1.

DESCRIPCIN DEL CONTEXTO ............................................................ 23

2.2.

ESTADO DEL ARTE................................................................................. 23

2.3.

ORGANIZACIN QUE IMPACTAR EL PROYECTO ............................. 29

2.3.1.

Tipo de organizacin .......................................................................... 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 TERICO .......................................................................................... 31


3.1.

INTERFAZ DE COMUNICACIN ............................................................. 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.

Programacin en microcontroladores................................................. 54

3.2.10.

Compilador PCW CCS para microcontroladores ............................ 58

3.2.11.

Software de simulacin de circuitos Proteus................................... 60

3.3.

CONECTORES ........................................................................................ 61

3.3.1.

RCA.................................................................................................... 61

3.3.2.

HDMI .................................................................................................. 62

4. MODELO TERICO ....................................................................................... 64


4.1.

REQUERIMIENTOS PARA EL DESARROLLO DEL SOFTWARE .......... 64

4.2.

SOLUCIN PROPUESTA ........................................................................ 64

4.3.

DISEO DE LA TARJETA DE CONTROL ............................................... 65

4.4.

COMPONENTES UTILIZADOS ................................................................ 68

4.4.1.

PIC18F4550 ....................................................................................... 68

4.4.2.

ULN2803 ............................................................................................ 70

4.4.3.

Comunicacin 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.

Diseo y desarrollo del software ........................................................ 90

4.8.5.

Diseo de la base de datos ................................................................ 96

5. CONCRECIN DEL MODELO ....................................................................... 99


5.1.

PRUEBAS DE RECONOCIMIENTO E INSTALACIN ............................ 99

5.2.

PRUEBAS DE COMUNICACIN Y FUNCIONAMIENTO ...................... 103

5.3.

PRUEBAS DE INTEGRACIN ............................................................... 105

6. CONCLUSIONES .......................................................................................... 109


7. RECOMENDACIONES ................................................................................. 111
BIBLIOGRAFA .................................................................................................... 112

LISTA DE TABLAS

Pg.

Tabla 1. Presupuesto del proyecto ........................................................................ 21


Tabla 2. Cronograma de actividades del proyecto ................................................. 22
Tabla 3. Codificacin numrica y de color de los conductores del cable USB ....... 36
Tabla 4. Distribucin de colores en RCA ............................................................... 62
Tabla 5. Tipos y rata de transferencia en USB ...................................................... 74
Tabla 6. Opciones de configuracin del oscilador para la operacin USB ............. 77

LISTA DE FIGURAS
Pg.

Figura 1. Organigrama de una organizacin dedicada al alquiler de consolas de


videojuegos ............................................................................................................ 30
Figura 2. Conector TIPO A y TIPO B, con sus correspondientes ranuras de
insercin ................................................................................................................ 34
Figura 3. Dimensiones en mm. de los conectores ................................................. 35
Figura 4. Seccin 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 simulacin de circuitos en ISIS Proteus ............................. 60
Figura 12. Ejemplo de diseo de circuitos impresos en ARES Proteus ................. 61
Figura 13. Conexin general del sistema de control y tarifacin ............................ 67
Figura 14. Disposicin de pines del microcontrolador PIC18F4550....................... 69
Figura 15. Diagrama interno del integrado ULN2803............................................. 70
Figura 16. Diagrama de una seccin del integrado ULN2803 ............................... 71
Figura 17. Conexin de transistores Darlington ..................................................... 71

Figura 18. Conexin de pines en el conector USB ................................................ 73


Figura 19. Conexin 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 conexin 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 conexin 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 tarifacin...................... 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 informacin ............................................................... 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 ubicacin manual del driver del dispositivo ..................... 100

Figura 39. Ubicacin manual del driver del dispositivo ........................................ 100
Figura 40. Seleccin manual del driver del dispositivo ........................................ 101
Figura 41. Instalacin del driver del dispositivo ................................................... 101
Figura 42. Notificacin de driver instalado correctamente ................................... 102
Figura 43. Reconocimiento del hardware en el administrador de dispositivos del
PC ........................................................................................................................ 102
Figura 44. Transmisin de datos al microcontrolador .......................................... 104
Figura 45. Ejecucin de tareas programadas en el microcontrolador .................. 104
Figura 46. Escenario de prueba de integracion ................................................... 105
Figura 47. Interconexin de los bloques de la tarjeta de control .......................... 106
Figura 48. Interconexin de la consola de videojuegos y la tarjeta de control ..... 106
Figura 49. Interconexin de todos los dispositivos............................................... 107
Figura 50. Activacin de la consola en el software del PC .................................. 107
Figura 51. Verificacin de la activacin de la consola.......................................... 108

INTRODUCCIN
En la actualidad los seres humanos buscan continuamente diferentes formas de
diversin y entretenimiento ya que es prcticamente 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 mrgenes de utilidad,
pues no discrimina sexo, estrato socioeconmico ni lugar de nacimiento, debido a
que es una necesidad innata en todo ser humano el poder tener un mnimo de
recreacin.
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 prcticamente por todo el mundo incluso en pases en va 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 interaccin de
una o varias personas y un aparato electrnico, con independencia de su soporte
(ROM interno, disco magntico u ptico, on-line) y plataforma tecnolgica
(mquina de bolsillo, videoconsola conectable al TV, telfono mvil, mquina
recreativa, microordenador, ordenador de mano, vdeo interactivo). (MARQUES
PERE, 2001).
En la actualidad las consolas de videojuegos tienen un papel importante en la
recreacin y aprovechamiento del tiempo libre para gran cantidad de nios y
jvenes, ya que a diferencia de las PCs no requieren gasto de horas de
mantenimiento, reinstalacin, resolucin de problemas, remocin de virus y otras
cuestiones. Debido a los altos precios de estos dispositivos combinados con los
costos de cada videojuego se hace difcil su adquisicin en los hogares de
estratos medios y bajos.
El inters de los jvenes por la utilizacin de los videojuegos es evidente y se
corrobora con slo dar un vistazo al crecimiento de centros o salas de

15

videojuegos, donde se renen los jvenes de manera individual o en grupos a


jugar por horas. Como evidencia de esto solo en Bogot la Cmara de Comercio
registr durante los ltimos tres aos 3798 empresas en la categora 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 rpidamente como medio de entretenimiento e
interaccin, dado que cada vez ms los jvenes 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 rpida depreciacin de los
equipos por el avance de la tecnologa en este campo. As mismo cada usuario no
tiene que preocuparse por el mantenimiento y reparacin del los equipos si fuese
necesario, ya que dicha operacin le corresponde a la empresa.
Con el fin de mejorar el control y la administracin de los centros de
entretenimiento que prestan el servicio de alquiler de consolas de videojuegos,
este proyecto plantea disear 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 propsito de optimizar el tiempo de uso
de cada uno de estos dispositivos y realizar una tarificacin eficiente de los
servicios prestados, automatizando los mtodos de conteo de tiempo y reporte de
ventas.
En este documento se presenta el diseo y construccin de un dispositivo
electrnico para controlar el tiempo de uso de cada consola de videojuegos,
utilizando un microcontrolador como parte central del circuito. Adems de esto se
plantea el desarrollo de una aplicacin software que permite la administracin y la
comunicacin con el dispositivo electrnico a travs de una interfaz USB, que
permite adems de otras caractersticas, asignar el tiempo de alquiler de cada
consola y almacenar en una base de datos los reportes de ventas generados.

16

1. FORMULACIN DEL PROYECTO


1.1.

SITUACIN ACTUAL

En la actualidad la mayora de los centros de entretenimiento dedicados a la renta


de consolas de videojuegos llevan una administracin, control y tarificacin
totalmente manual. Cuando un usuario solicita la prestacin 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 dems dispositivos audiovisuales manualmente y
solicita al usuario el tiempo que va a utilizar el servicio.
El operario revisa peridicamente un cronometro o un reloj para determinar
cundo se agota el tiempo solicitado por el usuario y le informa a este.
Realiza el clculo manualmente de acuerdo a la tarifa establecida para
determinar el precio que debe cancelar el usuario.
Registra la venta en hojas de clculo o cuadernos de contabilidad con la
fecha, hora y saldo cancelado.

1.2.

DEFINICIN 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 cundo 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 contabilizacin y administracin del tiempo.
La tarificacin se hace lenta e inefectiva, debido a que el cajero debe realizar el
clculo 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 clculo. 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

Disear y construir un dispositivo electrnico el cual asistido por una aplicacin


software permita administrar, controlar y facturar el servicio de renta o alquiler de
consolas de videojuegos.
1.4.

OBJETIVOS ESPECFICOS
Conocer y analizar las variables que se presentan en el control y tarifacin
del servicio de alquiler de consolas de videojuegos.
Buscar teoras o planteamientos que permitan solucionar los problemas de
tarifacin que presentan las salas de videojuegos
Disear y construir un dispositivo electrnico que permita el control de las
consolas de videojuegos de un centro de entretenimiento especfico.
Desarrollar una aplicacin software que permita la comunicacin con el
dispositivo electrnico y origine la tarifacin de cada consola de
videojuegos.

18

1.5.

JUSTIFICACIN

El xito en la prestacin de servicios de entretenimiento enfocados a los


videojuegos, est basado en las caractersticas 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 adems de adquirir consolas de videojuegos con buenas
caractersticas tecnolgicas, 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 recreacin para los
usuarios.

La justificacin de este proyecto radica en mejorar la gestin, control, asignacin y


tarifacin del tiempo de uso de las videoconsolas, acelerando este proceso, al
mostrar informacin detallada y exacta de ventas, generando menores retardos en
la tarificacin del servicio, automatizando actividades rutinarias y mejorando la
calidad en la prestacin del servicio.

Por tal motivo se hace importante este proyecto con el fin de delegar tareas de
rutina a una aplicacin Software que en interaccin con un dispositivo electrnico
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 organizacin a la hora de prestar el servicio de
entretenimiento.

1.6.

PLANTEAMIENTO DE LA HIPTESIS

A travs del presente proyecto se pretende:


Mejorar el sistema de control y tarificacin en los centros de entretenimiento
que ofrecen el servicio de alquiler de consolas de videojuegos.

19

Automatizar las actividades de asignacin de tiempo, tarificacin,


generacin de reportes y control de videoconsolas en las salas de
videojuegos.
Controlar de manera eficiente los servicios que presta la organizacin,
experimentando una notable mejora en tiempo y costos, ya que la
administracin del uso de las videoconsolas se realizar por medio de un
dispositivo electrnico que interacta con un software especializado.

1.7.

IDENTIFICACIN DE VARIABLES

Variables independientes
Es aquella caracterstica o propiedad que se supone ser la causa del fenmeno
estudiado. En investigacin 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 caracterstica que se trata de
cambiar mediante la manipulacin 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
Tarifacin
Rentabilidad

20

1.8.

PRESUPUESTO

DESCRIPCIN

CANTIDAD

VALOR
UNITARIO ($)

VALOR TOTAL
($)

Microcontrolador PIC18F4550

25000

25000

Integrado ULN2803

2000

2000

Regulador 7812

1000

1000

Regulador 7805

1000

1000

Rels

2000

6000

Conector USB

1500

1500

Cable USB

4000

4000

Fuente 12v

12000

12000

Conector para fuente

1500

1500

Resistencias

100

400

Diodos

150

450

Leds

150

450

Conector hembra RJ45

1500

4500

Capacitores

200

400

Capacitores cermicos

300

600

Conectores VGA

2000

6000

Baquelas

5000

10000

Oscilador

2000

2000

Pulsador

500

1000

Protoboard

15000

15000

Cable USB

2000

6000

Programador de PICs

95000

95000

Papelera

70000

70000

Transporte

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 investigacin sobre el
proyecto
Planteamiento del problema
y anlisis de requerimientos
Diseo del software de
control
Codificacin del software
se control y tarifacin
Diseo del circuito
electrnico
Simulacin del circuito
electrnico
Diseo del PCB del circuito
electrnico
Montaje del circuito
electrnico
Pruebas de comunicacin
entre en software y el dispositivo
integracin del software y
el dispositivo
Correccin de fallas del
sistema
Construccin del documento
escrito del proyecto
Elaboracin del manual
de uso del sistema
Tabla 2. Cronograma de actividades del proyecto

22

2. MARCO CONTEXTUAL
2.1.

DESCRIPCIN DEL CONTEXTO

El proyecto sistema de control y tarificacin 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 tarifacin 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 travs de internet haba poca
informacin 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 tarifacin de cibercaf o salas de
internet, han implementado servicios de valor agregado en sus aplicaciones,
incorporando mdulos para el control de videoconsolas, algunas mas
especializadas desarrollan la parte hardware, otras solo hacen los mdulos
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 inters en apuntarle a este
mercado.
A continuacin se describen los desarrollos que se han venido dando en este
campo:

23

ControlGAME (Argentina)
Se crea dentro del rea de servicio tcnico de Airon Argentina, empresa dedicada
a la atencin e instalacin de cibercafs, salas de juegos, locutorios, con 8 aos
de experiencia en el rubro. A pedido particular de un cliente se fabrica en el ao
2005 el primer bloqueador para consolas, este funcionaba con el software de
gestin de cybers "cafesuite" y controlaba hasta 8 consolas debido a la limitacin
de cafesuite, de este bloqueador se fabricaron varias versiones, bloqueando los
controles o bloqueando la seal de video, han sido implementados exitosamente,
pero la direccin 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 investigacin 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 gestin de
cybers se elegira para gestionarlo, "cafesuite" no tenia los requerimientos que
Airon Argentina pretenda para su bloqueador, ya que solo soportaba 8
bloqueadores, y su seguridad en cuanto a consolas es muy frgil y fcil de saltear.
En un primer momento se pens en desarrollar un software para la gestin de
consolas, pero luego de analizar varios software de gestin de cybers, se eligi a
cyberplanetsoft, que es un software especializado en la administracin de cybers.

El Hardware
ControlGAME es un bloqueador de consolas
especialmente para cibercafs 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 instalacin 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
gestin de consolas y a este se conectan los bloqueadores de video o joystick. A
travs de cable UTP CAT. 5 o superior con conectores RJ45, idntico al cableado
de red Ethernet.
Se comercializa en dos versiones, controlGAME 8x y controlGAME 16x.
El Software (Argentina)
CyberPlanet es un sistema integral de gestin de Cibercafs desarrollado y
depurado a lo largo de varios aos. Est cuidadosamente diseado de manera
que no haga falta recurrir a la ayuda. Est compuesto por un Mdulo Cliente
(CyberClient) que se instala en las pcs clientes y un Mdulo Servidor
(CyberPlanet) que administra y controla el uso de las PCs cliente.
(CYBERPLANETSOFT).
Adems de las funciones de tarifacin, 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 pas de
Argentina al igual que la empresa desarrolladora del dispositivo.
Alcsoft (Argentina)

Es una empresa desarrolladora de software integrado para la gestin de


Cibercafs y salas en red. Est ubicada en Argentina y adems cuenta con

25

empresas aliadas para la distribucin de su producto en otros pases como


Venezuela, Chile y Mxico. (ALCSOFT).
El Hardware
El tarifador de consolas o controlador de consolas, es un componente electrnico
que interacta entre el software ALC Lan manager Server y las consolas. Con este
se puede controlar a travs del bloqueo del video o de los mandos (Joystick) la
tarifacin tanto Pre-Pago como Post Pago.
Permite controlar cualquier consola con salidas RCA (video analgico) HDMI
(Video de alta definicin): PlaySation, PS2, PS3, XBOX, XBOX360, GAMECUBE,
etc. Con respecto a la cantidad de consolas que se pueden controlar, no hay
lmite, pueden controlarse desde 8 consolas en adelante.
La conexin es sencilla y tiene la siguiente configuracin:
Desde el PC sale por puerto SERIAL un cable hacia un concentrador, de ese
concentrador salen un par de cables (Cable telefnico) hacia el primer controlador.
Siempre desde el ltimo controlador que se coloque puede anexarse el siguiente y
as sucesivamente. Sera 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, tarifacin, cobro e informes de caja rentabilizando al mximo
su tiempo. Lan Manager es un software cliente / servidor, esto significa que
requiere de un ordenador central donde se instalara la versin Servidor y luego en
cada uno de los equipos del Cibercaf se instalara la versin cliente. Adems de
esto gestiona la comunicacin a travs 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 tarifacin de las salas de videojuegos, su desarrollo ya se
extiende a varios pases de sur y centro Amrica, es una de las pocas empresas
que desarrolla el sistema completo.
Desarrollo a nivel nacional

Como se puede identificar, las empresas ms importantes que estn


incursionando en este mercado son las establecidas en otros pases,
principalmente en Argentina, tomando como referencia la informacin encontrada
a travs de la web y aprovechando la presencia de estas empresas en este medio.
Puede ser que adems de estas empresas existan muchas otras que aun no
hacen presencia en internet y que es difcil encontrar informacin por otro tipo de
medios.
En Colombia a travs de las consultas realizadas se encontraron muchos avisos
publicitarios relacionados con la venta de dispositivos electrnicos para controlar y
tarifar el servicio de alquiler de consolas de videojuegos, en ciudades como
Bogot, Barrancabermeja y Medelln.
Indagando sobre la procedencia de estos productos para conocer si son
desarrollos a nivel nacional o productos importados, se identifica a travs de las
caractersticas tcnicas de los dispositivos que son las mismas ofrecidas por las
empresas antes mencionadas, lo que lleva a deducir que la mayora de los
dispositivos ofrecidos a nivel nacional son importaciones y no desarrollos
originales en el pas.
En la ciudad de Bogot se encuentra una empresa llamada Tecelcom Cabinas
Ltda. Es una empresa dedicada al desarrollo de productos de tecnologa en
electrnica, con ms de 4 aos de experiencia en el desarrollo de productos de
ingeniera. (TECELCOM). Est enfocada especialmente a la tarifacin de cabinas
telefnicas, y actualmente est incursionando en la tarifacin de salas de
videojuegos, ofreciendo su producto Tecelcom Videojuegos.

27

Telcecom Videojuegos
Es un software desarrollado para la administracin de consolas de videojuegos,
posee las siguientes caractersticas:
Es un sistema compatible con cualquier tipo de consola de videojuegos
existente en el mercado actual y futuro (XBOX, NINTENDO64,
PLAYSTATION1, PLAYSTATION2, XBOX360, ETC).
Tarificacin en modo prepago y en modo de tiempo libre.
Interfaz amigable y diseada 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.
Proteccin de cada usuario con contrasea 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 simultneamente.
Tres niveles de seguridad para la administracin del software dependiendo
de si es administrador o empleado del negocio.
La empresa Tecelcom en su pgina web ofrece el sistema completo de tarifacin y
control de consolas de videojuegos, tanto software como hardware. Se realizo una
cotizacin del producto para identificar el tipo de hardware que implementa la
solucin 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 caractersticas tcnicas, con lo cual se
puede deducir que este producto es importado y no propiamente
desarrollado por la empresa en cuestin.
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 nmero
de consolas a controlar y se detallan a continuacin:

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

ORGANIZACIN QUE IMPACTAR EL PROYECTO

2.3.1. Tipo de organizacin

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 prestacin de servicios de renta o alquiler de consolas de
videojuegos, y que tienen como visin promover una cultura de entretenimiento
utilizando productos actualizados y servicios dirigidos hacia el usuario,
aprovechando la interaccin con los videojuegos y generando un ambiente de
diversin apropiado.

2.3.3. Servicios

Empresas que ofrece los servicios de:


Entretenimiento basado en videojuegos
Interconexin 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 organizacin dedicada al alquiler de consolas de videojuegos

30

3. MARCO TERICO
3.1.

INTERFAZ DE COMUNICACIN

3.1.1. Interfaz Bus Serial Universal (USB)


USB es una especificacin de las empresas Compaq, Digital, IBM, Intel, Microsoft,
NEC y Northern Telecom, que describe un canal serie que soporta una gran
variedad de perifricos de media y baja velocidad, con soporte integral para
transferencias en tiempo real (iscronas) como voz, audio y vdeo comprimido, y
que permite mezclar dispositivos y aplicaciones iscronas y asncronas. Entre los
dispositivos USB ms caractersticos tenemos teclados, ratones, scanners,
impresoras, mdems, placas de sonido, cmaras, mp3, etc. (MORENO, 2006).

La arquitectura USB combina todas las ventajas de un estndar multiplataforma,


incluyendo un costo inferior, una mayor compatibilidad y un nmero superior de
perifricos disponibles.

La implementacin 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
seleccin del puerto serie, la instalacin de tarjetas de expansin o configurar los
conmutadores DIP, jumpers o drivers.

Cada da aparecen nuevas utilidades de mucha ms potencia, con ms


posibilidades y mejor calidad grfica, que hacen que las tareas que se realizan a
diario requieran de ms capacidad de rata de transmisin.

Para que se puedan almacenar, transmitir o recibir dichas tareas, aparecen en el


mercado perifricos y componentes de mayor capacidad, discos duros con ms
capacidad de almacenamiento, mejor calidad de video, procesadores rpidos, etc.
pero tambin se necesita que la "va" por la que se van a transmitir esos datos sea
fiable y ms rpida, de forma que se ajuste a los avances producidos.

31

As surgi su evolucin, USB 2.0, apodado USB de alta velocidad, con


velocidades en este momento de hasta 480 Mb/seg, es decir, 40 veces ms rpido
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, slo se necesitan nuevos hubs
algo ms sofisticados que los actuales, ya que tendrn 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 (estndar IEEE 1394). FireWire naci en principio destinado
para Mac y algunas cmaras 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 elctricas

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 adems 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
alimentacin a los dispositivos, y los otros dos transmiten/reciben una seal de
datos, en modo de tensin diferencial.

Los conductores de alimentacin se etiquetan como VBus y GND. Entregan una


tensin continua de 5V y 500mA mximo. En funcin de las necesidades de
alimentacin elctrica de los dispositivos, estos pueden tomar la alimentacin de
estas lneas, o bien tener una fuente de alimentacin alternativa. (MORENO,
2006).

Los conductores de transmisin/recepcin de datos se etiquetan como D+ y D-.


Como se ha mencionado anteriormente, el parmetro a medir es la tensin
diferencial entre los dos hilos.
32

En modo High-Speed (480Mbps), cada hilo de tensin 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 mrgenes de tensin para los niveles lgicos son los siguientes:
Nivel 1 diferencial: al menos 200 mV (D+) ms positivo que (D-)
Nivel 0 diferencial: al menos 200 mV (D-) ms positivo que (D+)

La comunicacin es semiduplex, es decir, es bidireccional pero no se puede


transmitir y recibir simultneamente.

En la transferencia de datos se utiliza codificacin NRZI, que consiste en que la


lnea cambia de nivel si se transmite un 0 y no cambia si transmite un 1. Debido a
la utilizacin de codificacin NRZI, es muy fcil que transmisor y receptor se d
sincronicen tras el envo de varios 1 sucesivos; para solucionar esto se emplea el
"bit stuffing", que consiste en la insercin de un cero tras la transmisin de 6 unos,
para asegurar transiciones en la lnea y permitir que el receptor se mantenga
sincronizado.

Los dispositivos disponen de transmisores diferenciales, receptores diferenciales y


resistencias de terminacin con los que pueden transmitir y detectar varios
estados elctricos distintos en la lnea.

El tipo de transmisores y receptores, as como las resistencias de terminacin de


los cables de datos difieren segn la velocidad de transferencia del dispositivo
(Low, Full o High Speed). (MORENO, 2006).

En la interfaz USB se pueden distinguir distintos estados elctricos en la lnea:


Transmisin/Recepcin diferencial de bits: Estados DIFF0 y DIFF1, denominados
tambin estados J y K.
SE0 (Single-Ended 0): Ambas seales D+ y D- a 0V. Se utiliza para
detectar la conexin/desconexin de dispositivos, para indicar el EOP (fin
de paquete) y para generar reset.

33

IDLE: reposo o lnea en alta impedancia, necesario para permitir


transferencias semidplex, detectar la conexin y desconexin de
dispositivos y discriminar entre dispositivos FS y LS.
SOP (principio de paquete) se indica mediante una transicin IDLE a K.
EOP (fin de paquete) se indica mediante una secuencia SE0 (2 bits) + J (1
bit) + IDLE.

3.1.1.2.

Especificaciones mecnicas

Conectores: Hay dos tipos de conectores USB: los de TIPO A y TIPO B, con sus
correspondientes ranuras de insercin. (USB, 1999).

Sus principales diferencias se encuentran en la forma y la distribucin de los


contactos. Todos los host-USB deben tener la ranura de insercin correspondiente
al conector tipo A. Las ranuras tipo B se encuentran ubicadas en dispositivos USB
tales como impresoras, mdems, 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 insercin

34

Cables: USB requiere de un cable de 4 conductores: dos encargados de la


alimentacin a +5V y 500mA max. (VBus y GND), y dos cables para envo y
recepcin de datos en seal diferencial (D+ y D-). La seccin de los conductores
de alimentacin vara entre 20 y 26 AWG, y la de los de la seal diferencial es
28AWG.

En LS (low speed_1.5Mbps) no es obligatorio que los conductores de seal estn


trenzados entre s. En F/H-S (full/high-speed_12/480Mbps) si es obligatorio. Estos
requerimientos influyen en la distribucin espacial de los conductores en el interior
del cable USB, as como el grosor y la longitud mxima 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 alimentacin (VBus y GND) nunca estarn


trenzados. Obligatoriamente para ambos, el cable deber contar con un

35

apantallamiento metlico de aluminio polister y tambin con un cable trenzado de


cobre de seccin 28AWG, para que dote de rigidez al cable final.

Figura 4. Seccin de un cable USB

Adems, los cables FS cuentan con un segundo apantallamiento, que consiste en


una malla de cobre estaada alrededor de todo el cable. Finalmente, y como
ltima capa, se encuentra la cubierta exterior de PVC.

Conexin del cable a los conectores: La conexin de los cables a los pines de
los conectores se observa en la Tabla.

Tabla 3. Codificacin numrica y de color de los conductores del cable USB

36

En la siguiente figura se puede observar la disposicin y distribucin 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 patrn. (AXELSON, 1999). Tienen los
mismos elementos funcionales:
Transceiver: Encargado de seleccionar la velocidad de comunicacin del
dispositivo (12 1,5 Mbps).
Function Interface Unit (FIU): Administracin de datos basado en estado de
colas FIFO y envo de interrupciones.
FIFOs: El controlador tiene 8 buffers FIFO; 4 para transmisin y 4 para
recepcin.
Serial Interface Engine (SIE): Trata la informacin y la serializa o de
serializa. Adems codifica en NRZI, controla CRC, maneja el protocolo de
comunicacin y la secuencia de paquetes.

El sistema de bus USB consta de tres componentes principales:


Controlador.
Concentradores o hubs.
Perifricos.

Controlador. Reside dentro del PC y es responsable de las comunicaciones entre


los perifricos USB y la CPU del PC. Es tambin responsable de la admisin de
los perifricos dentro del bus, tanto si se detecta una conexin como una
desconexin. Para cada perifrico aadido, el controlador determina su tipo y le
37

asigna una direccin lgica para utilizarla siempre en las comunicaciones con el
mismo. Si se producen errores durante la conexin, el controlador lo comunica a la
CPU, que, a su vez, lo transmite al usuario. Una vez se ha producido la conexin
correctamente, el controlador asigna al perifrico los recursos del sistema que ste
precise para su funcionamiento. El controlador tambin es responsable del control
de flujo de datos entre el perifrico y la CPU.

Concentradores o hubs. Son distribuidores inteligentes de datos y alimentacin,


y hacen posible la conexin a un nico puerto USB de 127 dispositivos. De una
forma selectiva reparten datos y alimentacin hacia sus puertas descendentes y
permiten la comunicacin hacia su puerta de retorno o ascendente. Los
concentradores tambin permiten las comunicaciones desde el perifrico hacia el
PC, aceptando datos en las puertas descendentes y envindolos hacia el PC por
la puerta de retorno. (AXELSON, 1999).

Adems del controlador, el PC tambin contiene la concentradora raz. Este es el


primer concentrador de toda la cadena que permite a los datos y a la energa
pasar a uno o dos conectores USB del PC, y de all a los 127 perifricos que,
como mximo, puede soportar el sistema. Esto es posible aadiendo
concentradores adicionales.

Perifricos. USB soporta perifricos de baja y media velocidad. Empleando dos


velocidades para la transmisin de datos de 1,5 y 12 Mbps se consigue una
utilizacin ms eficiente de sus recursos. Los perifricos de baja velocidad tales
como teclados, ratones no requieren 12 Mbps y empleando para ellos 1,5 Mbps,
se puede dedicar ms recursos del sistema a perifricos tales como monitores,
impresoras, mdems, scanner, equipos de audio, etc., que precisan de
velocidades ms altas para transmitir mayor volumen de datos o datos cuya
dependencia temporal es ms 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 asncronas.
Transferencias sncronas.
38

Transferencias iscronas.
Transferencias control.
Transferencias interrupcin.
Transferencias bulk.

Transferencias asncronas. 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 recepcin de los mismos es
efectuada. El receptor conoce perfectamente cuntos bits le llegarn, y da por
recibida la informacin cuando verifica la llegada de los bits de parada.

Transferencias sncronas. En este tipo de transmisin, el sincronismo viaja en la


misma seal, de esta forma la transmisin puede alcanzar distancias mucho
mayores como tambin un mejor aprovechamiento de canal. En la transmisin
asncrona, los grupos de datos estn compuestos por generalmente 10 bits, de los
cuales 4 son de control.

Evidentemente el rendimiento no es el mejor. En cambio, en la transmisin


sncrona, los grupos de datos o paquetes estn compuestos por 128 bytes, 1024
bytes o ms, dependiendo de la calidad del canal de comunicaciones. De esta
forma la seal puede viajar por muchos ms kilmetros sin temor a perderse o no
ser entendida por el receptor.

Transferencias iscronas. Este tipo de transferencia slo es utilizable por


dispositivos FS (dispositivos de velocidad alta o media). Garantiza un acceso al
bus USB con una latencia limitada, asegura una transmisin constante de los
datos a travs del puerto siempre y cuando se suministren datos, adems en caso
de que la entrega falle debido a errores no se intenta reenviar los datos.

La informacin til por paquete puede oscilar entre 1 y 1,023 bytes. En cada
Trama se transfiere un paquete por cada conexin iscrona establecida. El
sistema puede asignar como mximo el 90% del tiempo de trama para
transferencias iscronas y de interrupcin. En funcin de la cantidad de datos que
se estn transmitiendo en un momento dado, en velocidad media, el porcentaje de

39

transmisin utilizado puede variar desde un 1% hasta un 69%, mientras que el


porcentaje de velocidad alta vara entre un 1% y un 41%.

Transferencias de control. Es el nico tipo de transferencia que utiliza


transmisin a base de mensajes, soporta por lo tanto comunicaciones de tipo
configuracin/comando/estado entre el software cliente y su funcin. Por lo tanto
este tipo de transferencia est pensado para configurar, obtener informacin, y en
general para manipular el estado de los dispositivos. El tamao mximo de datos
que se transmiten por el bus viene determinado por el dispositivo. El puerto USB
puede estar ocupado durante la fase de envo de datos y la fase de estado, en
esos casos se indica al ordenador que se encuentra ocupado, invitndole a
intentarlo mas tarde. Si se recibe un mensaje de configuracin 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 transmisin, se puede considerar
que se han producido errores y pasar a la siguiente. USB proporciona deteccin y
recuperacin, va retransmisin, de errores en las transferencias de control.

Detalles de las 3 transacciones:


Transaccin de Configuracin (Setup), en la que se enva al dispositivo un
paquete que especifica la operacin a ejecutar. Ocupa 8 bytes.
Cero o ms Transacciones de Datos, en las que se transfieren los paquetes de
datos en el sentido indicado por la transaccin de configuracin. La informacin
til por paquete puede ser de 8, 16, 32 64 bytes para dispositivos FS, y de 8
bytes para dispositivos LS.
Transaccin de Estado, en la que el receptor informa del estado final de la
operacin.

Transferencias de interrupcin. Aseguran una transaccin (paquete) dentro de


un periodo mximo (los dispositivos FS pueden solicitar entre 1 y 255 ms, y los LS
entre 10 y 255 ms de periodo mximo de servicio). Este tipo de transferencia est
diseado para servicios que envan o reciben datos de forma infrecuente. Esta
transferencia garantiza el mximo servicio para el puerto durante el periodo en el
que enva. Incorpora deteccin de errores y retransmisin de datos. El tamao de
paquete de datos mximo es de 1024 bytes para alta velocidad, 64 bytes para
velocidad media y 8 bytes para baja velocidad.
40

En ningn caso se precisa que los paquetes sean de tamao mximo, es decir, no
es necesario rellenar los paquetes que no alcancen el mximo. Cuando en una
transferencia de interrupcin se necesite transmitir ms datos de los que permite
el paquete mximo, todos los paquetes a excepcin del ltimo paquete deben de
tener el tamao mximo. De modo que la transmisin 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 tamao mximo.

Transferencias bulk. Al igual que ocurre con las transferencias iscronas, este
tipo de transferencias slo son utilizables por dispositivos FS. La informacin til
por paquete puede ser de 8, 16, 32 64 bytes. Est diseado 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,


adems en caso de error se garantiza el reenvo 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 comunicacin.

El protocolo de comunicaciones del bus USB entre el host y el dispositivo fsico se


realiza a travs de tokens (testigos). De forma general toda funcin en principio
est esperando a que el host le enve un paquete, si este paquete es de tipo token
entonces cambia el estado de la funcin inicindose una transaccin. Tambin se
debe de tener en cuenta, que cuando o bien el host, o bien una funcin 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 comunicacin entre
los perifricos USB y la CPU del ordenador, va a ser el que transmita esos testigos
con la direccin del dispositivo, los datos, etc. (USB, 1999).

Arquitectura lgica 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 lgico 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 funcin del dispositivo.

Forma de transmisin: La forma en la que las secuencias de bits se transmiten


en USB es la siguiente; primero se transmite el bit menos significativo, despus el
siguiente menos significativo y as hasta llegar al bit ms 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 tecnologa
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 transmisin, y todos los parmetros 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 direccin


USB nica a cada aparato, con la que puede averiguar si ste es nuevo, o ya ha
sido conectado alguna vez, y recoger la informacin necesaria para poder
comunicarse con el terminal. Debido a que tambin existe un hub USB, el
ordenador le asigna la direccin 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 extrado del conector. Esta
indicacin 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 haban sido
realizadas manualmente dando lugar a una nueva etapa de automatizacin, sin
embargo una desventaja que cada vez se haca ms intensa fue el hecho de que
una computadora siempre debera de disponer de una serie de dispositivos
externos que muchas veces no eran necesarios. Un ejemplo de esto era la
utilizacin de pantalla de video, cuando era suficiente con un LED o un Display, o
el teclado y el ratn 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, perifricos E/S y
buses, pero no incluye ningn dispositivo de comunicacin 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. An as poseen caractersticas
nicas que hacen que ellos sean dispositivos muy populares hoy en da, una de
ellas es su pequeo tamao y que a pesar de no poseer las capacidades de un
computador superan por mucho las exigencias del pblico.

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 bsicas, cmo sumar, restar, escribir en un puerto,
activar un bit de un dato, entre otras. Son bsicas pero si mezclamos estas
operaciones se lograrn grandes aplicaciones.

3.2.1. Microcontrolador PIC (controlador de interfaz perifrico)


Los PIC son una familia de microcontroladores tipo RISC1 fabricados por
Microchip2 Technology Inc. y derivados del PIC1650, originalmente desarrollado
por la divisin de microelectrnica de General Instrument. Esta familia de
microcontroladores ha tenido gran aceptacin y desarrollo en los ltimos aos,
gracias a que sus excelentes caractersticas, bajo coste, reducido consumo,
pequeo tamao, gran calidad, fiabilidad y abundancia de informacin, lo
convierten en muy fcil, cmodo y rpido de utilizar. (MORTON, 2005).
Las caractersticas ms relevantes de los microcontroladores PIC son:

La arquitectura del procesador sigue el modelo Harvard.


Se aplica la tcnica de segmentacin ("pipe-line") en la ejecucin 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.
Prcticamente todos los PIC se caracterizan por poseer unos mismos
recursos mnimos.
Modelo de arquitectura cerrada y abierta.
Diversidad de modelos de microcontroladores.
Amplio margen de alimentacin y corrientes de salida elevadas.
Herramientas de soporte potentes y econmicas.

RISC: Reduced Instruction Set Computer


Microchip: es una empresa fabricante de microcontroladores, memorias y semiconductores
analgicos, 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 nmero de
instrucciones y su longitud, el nmero de puertos y funciones, lo cual se refleja en
el encapsulado, la complejidad interna y de programacin, y en el nmero de
aplicaciones, claro est entre ms baja sea la gama el microcontrolador ser ms
econmico y con menos funcionalidades. (ARANGO & ARENAS, 2010).

Gama mini: con encapsulado de 8 pines, tiene como principal caracterstica su


reducido tamao. 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 perifricos porque disponen de un oscilador interno R-C, lo cual es una de su
principales caractersticas (los dos restantes corresponden a la alimentacin)
Los modelos 12C5xx pertenecen a esta gama, siendo el tamao 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
Analgico/Digital de 8 bits incorporados.

Gama baja o bsica: consiste en una serie de PIC de recursos limitados, pero
con una de la mejores relaciones coste/prestaciones de la familia. Sus versiones
estn encapsuladas con 18 y 28 patitas y pueden alimentarse a partir de una
tensin 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
guardin (Watchdog o WDT), Cdigo de proteccin, etc. (MORTON, 2005)

Gama media: es la ms variada y completa de los PIC. Abarca modelos con


45

encapsulado desde 18 hasta 68 pines, cubriendo varias opciones que integran


abundantes perifricos. Dentro de esta gama se halla el famoso PIC16F84, quizs
el modelo ms utilizado en la historia de los microcontroladores, aunque ya se lo
considera obsoleto. (MORTON, 2005)

En esta gama sus componentes aaden nuevas prestaciones a las que posean
los de la gama baja, hacindoles ms adecuados en las aplicaciones complejas.
Poseen comparadores de magnitudes analgicas, 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. Tambin dispone de
interrupciones y una pila de 8 niveles que permite el anidamiento de subrutinas.

Encuadrado en la gama media tambin se halla la versin PIC14C000, que


soporta el diseo de controladores inteligentes para cargadores de bateras, pilas
pequeas, fuentes de alimentacin y UPS y cualquier sistema de adquisicin y
procesamiento de seales que requiera gestin de la energa de alimentacin. Los
PIC 14C000 admiten cualquier tecnologa de las bateras 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 gestin de interrupciones vectorizadas muy potente.
Tambin incluyen variados controladores de perifricos, puertos de comunicacin
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.
Quizs la caracterstica ms destacable de los componentes de esta gama es su
arquitectura abierta, que consiste en la posibilidad de ampliacin del
microcontrolador con elementos externos. Para este fin, algunos pines comunican
con el exterior las lneas de los buses de datos, direcciones y control, a las que se
pueden conectar memorias o controladores de perifricos. Esta facultad obliga a
estos componentes a tener un elevado nmero de pines, comprendido entre 40 y
84. Esta filosofa de construccin del sistema es la que se empleaba en los
microprocesadores y no suele ser una prctica 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 especficos 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 nmero de E/S y un
conjunto de recursos auxiliares muy concreto. La aplicacin a la que se destina
debe encontrar en su estructura todo lo que precisa, de lo contrario no servir en
el objetivo de la aplicacin. 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 adems de tener una estructura interna


especfica, permiten ampliaciones para emplear sus lneas de E/S para sacar al
exterior los buses de datos, direcciones y control, con los que se posibilita la
ampliacin 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 solucin que emplean los clsicos microprocesadores. (MORTON, 2005).

3.2.2.3.

Arquitecturas abiertas

En esta arquitectura el microcontrolador adems de tener una estructura interna


especfica, permiten ampliaciones para emplear sus lneas de E/S para sacar al
exterior los buses de datos, direcciones y control, con los que se posibilita la
ampliacin de la memoria y las E/S con circuitos integrados externos. Este tipo de
soluciones se asemeja a los clsicos microprocesadores. (ARANGO & ARENAS,
2010).

47

Otras de las ventajas a la hora de implementar un microcontrolador en un circuito


hacen referencia a la reduccin notable del nmero de componentes y, en
consecuencia, disminuye el nmero de averas, 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, slo 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, rels, 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 travs 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 divisin, adems de propiciar el paralelismo,


permite la adecuacin del tamao de las palabras y los buses a los requerimientos
especficos 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
caractersticas principales son instrucciones de tamao fijo y solo las instrucciones
de carga y almacenamiento acceden a la memoria de datos.

El microcontrolador est diseado para que en su memoria de programa se


almacene todas las instrucciones de control, las cuales deben estar grabadas
permanentemente. Para tal propsito existen diferentes clases de memorias tales
como la ROM3 con mscara, la EPROM4, OTP5, EEPROM6 y la FLASH.
(ARANGO & ARENAS, 2010).

Memoria ROM con mscara: Esta memoria se conoce simplemente como ROM y
se caracteriza porque la informacin contenida en su interior se almacena durante
su construccin y no se puede alterar. Son memorias ideales para almacenar
microprogramas, sistemas operativos, tablas de conversin y caracteres.

Memoria EPROM: Este tipo de memoria a diferencia de la ROM no se programa


durante el proceso de fabricacin, en vez de ello la programacin la efecta el
usuario y la informacin se puede borrar y volver a grabar varias veces.

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 voltil, de slo lectura y programable una sola
vez por el usuario. La grabacin se realiza mediante un sencillo grabador
controlado por un programa desde un PC.

La versin OTP: es recomendable cuando es muy corto el ciclo de diseo del


producto, o bien, en la construccin de prototipos o serie muy pequeas.

Memoria EEPROM: Es una memoria de slo lectura, programable y borrable


elctricamente a diferencia de la EPROM que ha de borrarse mediante rayos
ultravioleta. Tanto la programacin como el borrado, se realizan elctricamente
desde el propio grabador y bajo el control programado de un PC, y puede hacerse
con el microcontrolador instalado en el circuito. Es muy cmoda y rpida la
operacin de grabado y la de borrado.

Memoria FLASH: Es un memoria no voltil, 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 tamao


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 slo
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 varan continuamente, y esto exige que la
memoria que los contiene deba ser de lectura y escritura, por lo que la memoria

50

RAM7 esttica (SRAM8) es la ms adecuada, aunque sea voltil. (ARANGO &


ARENAS, 2010).

Hay microcontroladores que disponen como memoria de datos una de lectura y


escritura no voltil, del tipo EEPROM. De esta forma, un corte en el suministro de
la alimentacin no ocasiona la prdida de la informacin, que est disponible al
reiniciarse el programa.

A excepcin de los pines destinados para recibir la alimentacin, el cristal de


cuarzo, que regula la frecuencia de trabajo, y provocar el Reset, los pines
restantes sirven para soportar la comunicacin con los perifricos externos al
microcontrolador.

3.2.3. Registros

Los PICs utilizan una arquitectura basada en registros, es decir, todos los objetos
del sistema cmo los puertos de E/S, temporizadores, posiciones de memoria,
entre otros estn implementados fsicamente cmo registros. (ARANGO &
ARENAS, 2010).

Existen dos tipos de registros:


Registros de propsito general: puertos de E/S, contadores, etc.
Registros de propsito especial: registros de funcionamiento
configuracin.

Todos los registros se encuentran ubicados en una posicin especfica 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 direccin de la prxima instruccin a ejecutar y se incrementa de
manera secuencial cuando cada instruccin es ejecutada. (ARANGO & ARENAS,
2010).

Existen algunas instrucciones que pueden cambiar secuencia lineal de la


ejecucin, 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 direccin 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
tambin la gama define si estos puertos son anlogos, digitales o multiplexados.
(ARANGO & ARENAS, 2010).

3.2.6. Interrupciones

Estas interrupciones hacen referencia a la detencin del programa en un momento


dado para realizar una rutina especfica que atienda la causa de la interrupcin.
Cuando esta interrupcin 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 cmo 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 compilacin 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 instruccin se atender en un microsegundo. El cristal debe ir
acompaado 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 regulacin estricta de los


tiempos de duran las diversas acciones que realiza el sistema. El dispositivo
destinado a cumplir este objetivo es conocido cmo temporizador o timer, y
consiste bsicamente 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 ms temporizadores.

Existen dos temporizadores bsicos:


Principal: Este timer se encarga del control de tiempos de las operaciones
del sistema.
Watchdog (Perro Guardin): Tiene a su cargo vigilar que el programa no
se cuelgue y dejen de ejecutarse las instrucciones de manera secuencial
cmo lo ha previsto el diseador. Para lograrlo el perro guardin 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 guardin reinicializa el microcontrolador.
3.2.9. Programacin en microcontroladores

3.2.9.1.

Resumen de histrico de los lenguajes de programacin

3.2.9.1.1. Cdigo mquina. Primera generacin de lenguajes

El cdigo mquina es el lenguaje de programacin que entiende directamente la


computadora o mquina. Este lenguaje de programacin utiliza el alfabeto binario,
es decir, el 0 y el 1. Con estos dos nicos dgitos, 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 programacin. Este tipo
de lenguaje de programacin dejo de utilizarse por su gran dificultad. (ARANGO &
ARENAS, 2010).

54

Slo se ha utilizado por los programadores en los inicios de la informtica. Su


incomodidad de trabajo y por la facilidad para cometer errores hace que sea
impensable para ser utilizado hoy en da. Pero cualquier programa de ordenador
debe, finalmente, ser convertido a este cdigo para que un ordenador pueda
ejecutar las instrucciones de dicho programa.

Un detalle a tener en cuenta es que el cdigo mquina es distinto para cada tipo
de procesador. Lo que hace que los programas en cdigo mquina no sean
portables entre distintas mquinas.

3.2.9.1.2. Lenguaje ensamblador. Segunda generacin de lenguajes (2GL)

En los aos 40 se intent concebir un lenguaje ms simblico que permitiera no


tener que programar utilizando cdigo mquina. Poco ms tarde se ide el
lenguaje ensamblador, que es la traduccin del cdigo mquina a una forma ms
textual. Cada tipo de instruccin se asocia a una palabra nemotcnica (como SUM
para sumar por ejemplo), de forma que cada palabra tiene traduccin directa en el
cdigo mquina. (ARANGO & ARENAS, 2010).

Tras escribir el programa en cdigo ensamblador, un programa (llamado tambin


ensamblador) se encargar de traducir el cdigo ensamblador a cdigo mquina.
Esta traduccin es rpida puesto que cada lnea en ensamblador tiene equivalente
directo en cdigo mquina (en los lenguajes modernos no ocurre esto).

La idea es la siguiente: si en el cdigo mquina, el nmero binario 0000 significa


sumar, y el nmero 0001 significa restar. Una instruccin mquina que sumara el
nmero 8 (00001000 en binario) al nmero 16 (00010000 en binario) sera: 0000
00001000 00010000

Realmente no habra espacios en blanco, el ordenador entendera que los


primeros cuatro BITS representan la instruccin y los 8 siguientes el primer
nmero y los ocho siguientes el segundo nmero (suponiendo que los nmeros
ocupan 8 bits). Lgicamente trabajar de esta forma es muy complicado. Por eso se
podra utilizar la siguiente traduccin en ensamblador: SUM 8 16

55

Puesto que el ensamblador es una representacin textual pero exacta del cdigo
mquina; cada programa slo funcionar para la mquina 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 mquina, 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 tcnica. Adems las lneas
requeridas para realizar una tarea se disparan ya que las instrucciones de la
mquina son excesivamente simples.

3.2.9.1.3. Lenguajes de alto nivel. Lenguajes de tercera generacin (3GL)

Para evitar los problemas del ensamblador apareci la tercera generacin de


lenguajes de programacin, la de los lenguajes de alto nivel. En este caso el
cdigo vale para cualquier mquina, son muy similares al lenguaje humano, pero
deber ser traducido mediante software especial que adaptar el cdigo de alto
nivel al cdigo mquina correspondiente. Esta traduccin es necesaria ya que el
cdigo en un lenguaje de alto nivel no se parece en absoluto al cdigo mquina.
(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 frmulas matemticos. Poco a poco fueron
evolucionando los lenguajes formando lenguajes cada vez mejores. As en 1958
se crea LISP como lenguaje declarativo para expresiones matemticas. En 1960
la conferencia CODASYL cre el COBOL como lenguaje de gestin. En 1963 cre
PL/I el primer lenguaje que admita la multitarea y la programacin modular.
BASIC se cre en el ao 1964 como lenguaje de programacin sencillo de
aprender y ha sido, uno de los lenguajes ms populares. En 1968 se crea LOGO
para ensear a programar a los nios. Pascal se cre con la misma idea
acadmica 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 programacin de sistemas.

56

3.2.9.1.4. Lenguajes de cuarta generacin (4GL)

En los aos 70 se empez a utilizar ste trmino para hablar de lenguajes en los
que apenas hay cdigo 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 generacin. Los lenguajes de
consulta de datos, creacin 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
cdigo (lenguajes visuales), mientras que tambin 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 programacin 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


clsicos en lenguajes orientados a objetos (y adems con mejoras en el entorno
de programacin, son los llamados lenguajes visuales): Visual Basic, Delphi
(versin orientada a objetos de Pascal), Visual C++, entre otros.

En 1995 aparece Java como lenguaje totalmente orientado a objetos y en el ao


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
programacin.
Contienen operadores estndar en lenguaje C bibliotecas de funciones que son
especficas 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 rpidamente aplicaciones que
incorpora tecnologas de vanguardia tales como tctil, inalmbricas, por cable,
entre otras. (CCS, 2008).
Algunas caractersticas son: (CCS, 2008)
Al compilar genera un cdigo mquina muy compacto y eficiente.
Se integra perfectamente con MPLAB y otros simuladores/emuladores
como PROTEUS para el proceso de depuracin.
Incluye una biblioteca muy completa de funciones pre compiladas para el
acceso al hardware de los dispositivos (entrada/salida, temporizaciones,
conversor A/D, transmisin RSS-232, bus I2C., etc.
Incorpora drivers para dispositivos externos, tales como pantallas LCD,
teclados numricos, memorias EEPROM, conversores A/D, relojes en
tiempo real, etc.(los drivers son pequeos programas que sirven de
interfaz entre los dispositivos hardware y nuestro programa).
Permite insertar partes de cdigo directamente en Ensamblador,
manteniendo otras partes del programa en C.

3.2.10.1.

Caractersticas del lenguaje C para este compilador

El lenguaje C estndar es independiente de cualquier plataforma. Sin embargo,


para la programacin de microcontroladores es necesario disponer de
determinados comandos que se refieran a partes especficas de su hardware,
como el acceso a memoria, temporizadores, etc. Por este motivo, adems de los
comandos, funciones y datos del lenguaje ANSI C, el compilador PCW incluye

58

bibliotecas que incorporan determinados comandos que no son estndar, sino


especficos para la familia de microcontroladores PIC. (CCS, 2008).

3.2.10.2.

Utilidades adicionales

El entorno PCW incluye, adems del IDE y del compilador, una serie de utilidades
adicionales con las que se amplan las posibilidades de ste, y que se encuentran
en los mens View y Tools de la barra de mens, veamos algunas de ellas:
Monitor del puerto serie: Consiste en un terminal que monitoriza la
entrada y la salida del puerto serie del computador.
Seleccin de dispositivos (Device Selection Tool): Esta utilidad consta de
una base de datos con los dispositivos que puede programar el
compilador, incluyendo todas sus caractersticas 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 tambin emplea la
base de datos de dispositivos, y permite editar los componentes para
modificar sus caractersticas hardware, as como aadir nuevos
dispositivos o eliminar algunos de ellos.
Conversor numrico: Esta utilidad realiza conversiones entre los tipos de
datos unsigned, signed, hex y float.
Extraccin de datos de calibrado: Esta opcin permite leer los datos de
calibracin existentes en la memoria de programa de un determinado
dispositivo. Estos datos contienen informacin particular de cada
microcontrolador a su salida de fbrica, y se refieren a posibles
problemas especiales que pudieran haber tenido lugar durante el
desarrollo y fabricacin. Mediante esta opcin 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 incluirn estos datos de calibrado.
Desensamblador: Esta opcin lee un fichero en Cdigo mquina y lo
traduce a su equivalente en Ensamblador, con lo que se podra insertar
este cdigo en un programa en C, mediante las directivas #ASM y
#ENDASM.

59

3.2.11.

Software de simulacin de circuitos Proteus

Proteus es un software de diseo electrnico desarrollado por Labcenter


Electronics que consta de dos mdulos: Ares e Isis y que incluye un tercer mdulo
opcional denominado Electra. (LABCENTER).
ISIS: Mediante este programa podemos disear el circuito que deseemos con
componentes muy variados, desde una simple resistencia hasta algn que otro
microprocesador o microcontrolador, incluyendo fuentes de alimentacin,
generadores de seales y muchas otras prestaciones. Los diseos realizados en
Isis pueden ser simulados en tiempo real. Una de estas prestaciones es VSM, una
extensin de la aplicacin con la cual podremos simular, en tiempo real, todas las
caractersticas de varias familias de microcontroladores, introduciendo nosotros
mismos el programa que queramos que lleven a cabo.

Figura 11. Ejemplo de simulacin de circuitos en ISIS Proteus

ARES: Ares es la herramienta de construccin de rutas de Proteus, se utiliza para


la fabricacin 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 tambin utilizar el tercer mdulo, Electra (Electra Auto Router), el cual,
una vez colocados los componentes trazar automticamente las pistas realizando
varias pasadas para optimizar el resultado.

60

Figura 12. Ejemplo de diseo de circuitos impresos en ARES Proteus

3.3.

CONECTORES

3.3.1. RCA
El conector RCA es un tipo de conector elctrico comn en el mercado
audiovisual. El nombre "RCA" deriva de la Radio Corporation of America, que
introdujo el diseo en los 1940.

En muchas reas ha sustituido al conector tpico de audio (Jack), muy usado


desde que los reproductores de casete se hicieron populares, en los aos 1970.
Ahora se encuentra en la mayora de televisores y en otros equipos, como
grabadores de vdeo o DVDs. (DIAZ, 2005).

El conector macho tiene un polo en el centro (+), rodeado de un pequeo anillo


metlico (-) (a veces con ranuras), que sobresale. El conector hembra tiene como
polo central un agujero cubierto por otro aro de metal, ms pequeo que el del
macho para que ste se sujete sin problemas.

Ambos conectores (macho y hembra) tienen una parte intermedia de plstico, que
hace de Aislante elctrico.

Un problema del sistema RCA es que cada seal necesita su propio cable. Otros
tipos de conectores son combinados, como el euro conector (SCART), usado
exclusivamente en Europa.

61

La seal 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

Castao, caf o marrn

Envolvente trasero derecho

Castao claro

Subwoofer

Purpura

Audio digital

S/PDIF

Naranja

Video analgico

Compuesto

Amarillo

Verde

Pb

Azul

Pr

Rojo

Rojo

Audio analgico

Video
componente
(YPbPr)

por

Video
por G
componente (RGB)

Verde

Azul
Tabla 4. Distribucin de colores en RCA

3.3.2. HDMI
High-Definition Multi-media Interface (HDMI) Interfaz multimedia de alta definicin
es una norma de audio y vdeo digital cifrado sin compresin apoyada por la
industria para que sea el sustituto DRM del euro conector. HDMI provee un
interfaz entre cualquier fuente DRM de audio y vdeo digital como podra 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/vdeo digital compatible, como un


televisor digital (DTV). (DIAZ, 2005).

HDMI permite el uso de vdeo computarizado, mejorado o de alta definicin, as


como audio digital multicanal en un nico cable. Es independiente de los varios
estndares DTV como ATSC, DVB (-T,-S,-C), que no son ms que
encapsulaciones de datos MPEG. Tras ser enviados a un decodificador, se
obtienen los datos de vdeo sin comprimir, pudiendo ser de alta definicin. Estos
datos se codifican en TMDS para ser transmitidos digitalmente por medio de
HDMI. HDMI incluye tambin 8 canales de audio digital sin compresin. A partir de
la versin 1.2, HDMI puede utilizar hasta 8 canales de audio de un bit. El audio de
309 bit es el usado en los Sper audio CDs.

El conector estndar de HDMI tipo A tiene 19 pines. Se ha definido tambin una


versin de mayor resolucin -tipo B-, pero su uso an no se ha generalizado. El
tipo B tiene 29 pines, permitiendo llevar un canal de vdeo expandido para
pantallas de alta resolucin. El tipo B fue diseado para resoluciones ms altas
que las del formato 1080p.

El HDMI tipo A es compatible hacia atrs con un enlace simple DVI, usado por los
monitores de ordenador y tarjetas grficas 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 caractersticas de control remoto
HDMI no estarn disponibles. Adems, sin el uso de HDCP, la calidad de vdeo y
la resolucin podran ser degradadas artificialmente por la fuente de la seal para
evitar al usuario final ver o, mayormente, copiar contenido protegido. El HDMI tipo
B es, de forma similar, compatible hacia atrs con un enlace trial DVI.

63

4. MODELO TERICO
4.1.

REQUERIMIENTOS PARA EL DESARROLLO DEL SOFTWARE

Contabilizar el tiempo exacto de uso del servicio.


Tarificacin del servicio de acuerdo al tiempo de uso y tarifas establecidas.
Sistema de fcil 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.
Instalacin fsica 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 aplicacin.
Seleccin e instalacin de un motor de base de datos.
Seleccionar e implementar una interface de comunicacin entre la
aplicacin y el dispositivo que mejor se adapte a las necesidades.
Disponer de un equipo de cmputo para la instalacin del Software.

4.2.

SOLUCIN 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 tcnica de conteo rudimentario que se
presenta en muchos de estos centros de entretenimiento, llevando a varios
aspectos importantes, eficiencia, confiabilidad y satisfaccin por parte del usuario.
Ya que el tiempo real transcurrido y el facturado seria el mismo, se eliminara el
factor humano en la asignacin y control del tiempo de alquiler, el clculo del saldo
a cancelar seria automtico y exacto, los reportes de ventas se realizaran a

64

cualquier hora del da y se aumentara el grado de satisfaccin del usuario en la


prestacin del servicio con la automatizacin de estos procesos.
De acuerdo a esto la propuesta que se plante como solucin es la creacin de un
sistema integral compuesto por dos partes, una fsica (tarjeta de control) y una
lgica (software para el control y tarifacin del tiempo).
En primer lugar se requiere la instalacin de una tarjeta de control para realizar la
activacin y el bloqueo del servicio cuando inicie y culmine el tiempo de alquiler. El
componente software permite la comunicacin 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 administracin.
Crear diferentes tarifas y bonos de acuerdo a las necesidades.
Las terminales que no estn en uso pueden ser bloqueadas impidiendo el
uso de las mismas sin autorizacin del operador.
Permitir el alquiler de consolas en contador o tiempo fijo e intercambio de
usuarios entre consolas.
Informes totalmente dinmicos, con posibilidad de realizar bsquedas por
fechas, terminales, operadores, etc.
Gestin y consulta de caja diaria.

4.3. DISEO DE LA TARJETA DE CONTROL


El diseo de la tarjeta de control para realizar la activacin 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 lgica 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 travs 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 aplicacin 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 diseo del sistema se dividi en dos etapas:
1. Diseo del hardware. Esta etapa se enfoc en:
Seleccin de la arquitectura a implementar.
Seleccin de todos los componentes digitales a utilizar.
Especificacin de la interconexin de los componentes (esquemticos).

2. Diseo del software. Esta etapa consisti en:


Desarrollo del firmware (software a correr en el microcontrolador).
Diseo 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.
Especificacin del protocolo de comunicacin 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 relacin entre ellas.

En la siguiente figura se observa la forma de conexin general del sistema de


control y tarifacin de tiempo para consolas de videojuegos.

66

Figura 13. Conexin general del sistema de control y tarifacin

La tarjeta de control se conecta al PC utilizando el puerto USB, estableciendo un


protocolo de comunicacin entre el Firmware y el Software para la administracin
y control del microcontrolador PIC. La tarjeta de control se conecta al controlador
de video que es el encargado de bloquear y desbloquear la seal 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 implementacin de una comunicacin bidireccional


entre el PIC18F4550 y el software del PC va USB 2.0, aprovechando que la serie
de microcontroladores PIC18Fxx5x tienen entre sus recursos dicho tipo de
comunicacin, para dicho fin incluye dos formas de transmitir los datos por USB, la
primera es la transmisin iscrona y la segunda es la transmisin Bulk, las cuales
se explicaron anteriormente en el marco terico del proyecto en la seccin Interfaz
USB. Para llevar a cabo dicha comunicacin se decidi programar el modulo con
protocolo Bulk.

Se realizaron los protocolos necesarios para ambos extremos de esta lnea de


comunicacin, 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, adaptndolos 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 diseo 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
caractersticas principales son. (MICROCHIP):

Memoria flash de 32Kbytes


Memoria SRAM 2048 bytes
Memoria EEPROM 256 bytes
Mximo nmero de instrucciones simples 16384
Nmero 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 comunicacin USB 1.0, Full Speed y 2.0
Soporta otras comunicaciones como SPI, SSP, USART.
Las caractersticas 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, Interrupcin, Bulk e isincrona.
Operacin a 48 MHz

68

Disposicin de pines del microcontrolador PIC 18F4550. (MICROCHIP):

Figura 14. Disposicin de pines del microcontrolador PIC18F4550

La seleccin de este dispositivo se realiz con base en las caractersticas


principales que posee, determinando las necesidades que requiere el sistema
propuesto y satisfacindolas con las funcionalidades que presta este dispositivo.
Las principales caractersticas que se tuvieron en cuenta para escoger el
microcontrolador PIC 18F4550 son:
Soporta comunicacin USB, desde la versin 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 caractersticas 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
ms dispositivos o funcionalidades externas.
69

Pertenece a la familia de microcontroladores PIC 18FXX5X que es utilizada


en un gran nmero de aplicacin utilizando el puerto USB, debido a esto se
encuentra buena documentacin y soporte.
Es desarrollado por la Microchip que se caracteriza por documentar muy
bien sus productos en los datasheet que coloca a disposicin 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 ms 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 diseado 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 seccin del integrado ULN2803

Se seleccion este integrado ya que para el bloqueo y desbloqueo de la seal de


video se utilizaran rels especiales para este tipo de seal. Para llevar a cabo este
proceso se requiere de un modulo de potencia que genere mayor corriente y lleve
a cabo la activacin, la mejor opcin es utilizar transistores tipo Darlington, que es
una combinacin de dos transistores bipolares en forma de cascada, con la
finalidad de proporcionar una gran ganancia de corriente.

Figura 17. Conexin de transistores Darlington

El integrado ULN2803 cumple con estas caractersticas y adems de esto en un


solo componente, reduciendo el tamao 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. Comunicacin USB


Como se logra identificar en la informacin obtenida del estado del arte de
sistemas de este tipo, se estn utilizando puertos de comunicacin como el serial
(protocolo RSS-232) y el paralelo para establecer la comunicacin entre la
aplicacin del PC y la tarjeta de control. Para otorgar un valor agregado al
proyecto que se desarroll, se seleccion como interfaz de comunicacin el puerto
USB, que est tomando mucho auge en proyectos que requieren comunicacin
entre un dispositivo electrnico y un PC, ya que los dems puertos mencionados
ya no son tan comunes en PCs y menos en computadoras porttiles.
Adems de lo anterior, para la seleccin de USB como interfaz de comunicacin
se tuvieron en cuenta las siguientes caractersticas:
USB se basa en la tecnologa Plug and Play, que permite conectar
dispositivos a un PC y ser identificados por este sin realizar ninguna
configuracin.
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 automticamente.
Soporta tasas de transferencia de hasta 480 Mbits con la tecnologa USB
2.0
Fcil manipulacin y conexin con el dispositivo desarrollado, ya que solo
intervienen 4 pines en la interfaz fsica, 2 de datos (D+, D-) y 2 de
alimentacin (VCC, GND).
Se puede obtener la alimentacin elctrica 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 programacin de alto nivel para computadoras y para
microcontroladores, proporcionan rutinas y procedimientos para una fcil
manipulacin del puerto USB, simplificando la tarea a la hora de programar.

72

.
Figura 18. Conexin de pines en el conector USB

Figura 19. Conexin 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 mdulo 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 oscilacin 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 transmisin 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 mxima


posible vara 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 continuacin se muestra


la conexin entre estos desarrollados en el software Proteus ISIS 7.6 SP0 y los
valores de los componentes como resistencias, condensadores, osciladores y
dems 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 compilacin del firmware fue PCWH Compiler V4.023
Lo primero que se debe tener en cuenta para desarrollar el firmware de
microcontrolador es la configuracin 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 seleccin 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 seleccin 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 seleccin y configuracin de fuses, para esto la hoja de datos
del microcontrolador PIC18F4550 que proporciona MICROCHIP contiene en sus
pginas 32 y 33 recomendaciones importantes para realizar correctamente la
configuracin. A continuacin se muestra la configuracin necesaria alcanzar la
velocidad de trabajo requerida.

Tabla 6. Opciones de configuracin del oscilador para la operacin 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 configuracin de los Fuses (HSPLL, PLL5, CPUDIV1).
#fuses HSPLL y PLL5. La frecuencia de oscilacin 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 mdulo PLL interno del PIC. Para ello se utiliza el fuse
HSPLL. Como el mdulo PLL requiere una oscilacin 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 mtodo de transferencia masiva


mediante el USB se debe configurar los EndPoint de transmisin y recepcin,
USB_EP1_TX_ENABLE y USB_EP1_RX_ENABLE, indicndolo con la constante
USB_ENABLE_BULK. Es imprescindible deshabilitar el mtodo HID (Human
Interface Device). El tamao del buffer de transferencia se puede ajustar desde 1
a 32 bytes como mximo. Se estableci un tamao de 5 bytes por envo o
recepcin de paquetes USB.

#include PicUSB.h. En el fichero PicUSB.h, cargado con el correspondiente


include, se definen las estructuras y parmetros necesarios para la conexin USB.

main(). Las funciones usb_init(), usb_task(), usb_wait_for_enumeration(),


usb_enumerated(), usb_kbhit(), usb_get_packet() y usb_put_packet() estn
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 instalacin de CCS C.
usb_init(), usb_task() y usb_wait_for_enumeration() se utilizan solo para
establecer la comunicacin y se ejecutan nicamente tras un reset del
microcontrolador.

A partir de este punto slo 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 funcin usb_put_packet(), en el que se enva con la


instruccin usb_put_packet(1,envia,5,USB_DTS_TOGGLE); enviando el contenido
correspondiente
A continuacin se muestra en cdigo 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>
//Configuracin 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
enva[0]// Hace un eco del comando recibido
#define result1 enva[1]
#define result2 enva[2]
#define result3 enva[3]
#define result4 enva[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 tamao 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, enva, 5, USB_DTS_TOGGLE); //enviamos el paquete de tamao 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 esquemtico permite disear 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
alimentacin.

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 conexin con la etapa de potencia del circuito.

La tarjeta est diseada 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 opcin
era alimentar el bloque de control a travs del puerto USB, este mtodo se
descart, ya que se necesitan dos voltajes de alimentacin 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 mnima 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 continuacin se presentan los esquemas del circuito impreso para el bloque de


control.

82

Figura 23. Diagrama detallado de conexin 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 activacin de los
rels encargados del switcheo en la siguiente etapa.
Para esta etapa el voltaje de alimentacin utilizado es de 12v, y solo se utilizarn 3
de los 8 pines disponibles del integrado, ya que se pretende controlar mnimo 3
consolas de videojuegos con este prototipo hardware.
Para la comunicacin con la etapa de switcheo se utilizaron conectores RJ11,
comnmente utilizados para lneas telefnicas, con el fin de instalar la siguiente
etapa en el lugar de ubicacin de la consola de videojuegos.
A continuacin se presentan los esquemas del circuito impreso para el bloque de
control.

Figura 26. Diagrama detallado de conexin 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 bsicamente de un rel permanentemente abierto y de dos
conectores RCA. Este bloque es el encargado de bloquear y desbloquear la seal
de video entre la consola de videojuegos y el televisor. Cuando al rel llega la
alimentacin elctrica, este cierra el circuito dejando pasar la seal de video y la
bloquea cuando el bloque de potencia suspende la alimentacin elctrica.
La calidad de la seal de video no se ve afectado por el paso a travs del rel
segn 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 programacin C, C++ y C# y est
especialmente diseado para el desarrollo y depuracin de cdigo escrito para las
API's de Microsoft Windows, DirectX y la tecnologa Microsoft .NET Framework. La
versin Express Edition es gratuita y se puede descargar desde el sitio de
Microsoft. La aplicacin se codifico en C# (Sharp) que es un lenguaje de
programacin orientado a objetos desarrollado y estandarizado por Microsoft como
parte de su plataforma .NET, su sintaxis bsica 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 seleccin del IDE de desarrollo y del lenguaje de programacin se realiz


teniendo en cuenta los siguientes aspectos:
Ofrece funcionalidades de alto nivel e incorpora elementos grficos que
simplifican la tarea de generacin de cdigo fuente y el diseo de
interfaces.
Es orientado a objetos lo que permite desarrollar unidades modulares y
reutilizables.
Incorpora una serie de libreras que permiten una fcil manipulacin de los
puertos de entrada y salida del PC.

87

Permite usar con suma facilidad la plataforma de sistemas Windows, dado


que tiene acceso prcticamente total a la API de Windows, incluidas
libreras actuales.
El cdigo en C Sharp es fcilmente migrable a otros lenguajes.
Fcilmente extensible mediante libreras DLL y componentes ActiveX de
otros lenguajes.
Es un entorno perfecto para realizar pequeos prototipos rpidos de ideas.
Para el diseo y desarrollo de la aplicacin 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 segn 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 informacin
Bloquear consola de videojuegos
Desbloquear consola de videojuegos
Interaccin con un dispositivo electrnico a travs de una interface de
comunicacin.

No funcionales
Sistema de fcil 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 fcil 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 despus de su
puesta en marcha.
El sistema debe contar con un manual de uso bsico.
El sistema debe ser de fcil instalacin y funcionar sobre plataformas
Windows
4.8.2. Requerimientos del sistema
Del sistema
El sistema debe contar con un dispositivo electrnico 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 comunicacin con el dispositivo electrnico.
Sistema operativo Windows con caractersticas mnimas 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 tarifacin

4.8.4. Diseo y desarrollo del software


A continuacin se presenta algunas de las interfaces desarrolladas para cumplir
con los requisitos funcionales de la aplicacin.

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 informacin

Figura 34. Interfaz consultar informacin

Figura 35. Interfaz reporte de venta

93

Para la comunicacin entre la aplicacin y el firmware del PIC18F4550 se utiliz la


librera 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 librera es vlida para los lenguajes C, Delphi y VB.

La librera MPUSBAPI.dll ofrece funciones como:


MPUSBGETDLLVERSION(VOID) Lee el nivel de revisin del MPUSAPI.dll. Es un
nivel de revisin de 32bits. Esta funcin no devuelve la versin del cdigo, no
realiza nada con el USB. Devuelve la versin de la DLL en formato hexadecimal
de 32bits.
MPUSBGetDLLVersion()

MPUSBGETDEVICECOUNT(PVID_PID) Devuelve el nmero de dispositivo con


VID_PID asignado.
pVID_PID: Input: cadena de caracteres del nmero de identificacin 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 ledo de la pipe.
dwLen: Input: Especifica el nmero de bytes que hay que leer de la pipe.
pLenght: Output: Puntero al nmero de bytes ledos. 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
funcin vuelve si transcurre el intervalo aunque no se complete la operacin. Si
dwMilliseconds=0, la funcin 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 nmero de bytes que se van a escribir en la
pipe.
pLenght: Output: Puntero al nmero de bytes que se escriben al llamar esta
funcin. 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
funcin vuelve si transcurre el intervalo aunque no se complete la operacin. Si
dwMilliseconds=0, la funcin 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 ledo de la pipe.
dwLen: Input: Especifica el nmero de bytes que hay que leer de la pipe.
pLenght: Output: Puntero al nmero de bytes ledos. 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
funcin vuelve si transcurre el intervalo aunque no se complete la operacin. Si
dwMilliseconds=0, la funcin 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 unin.
handle: Input: Identifica la pipe del Endpoint que se va a cerrar.
MPUSBClose (myOutPipe)

4.8.5. Diseo 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 fsico de datos

-- phpMyAdmin SQL Dump


-- version 2.6.4-pl4
-- http://www.phpmyadmin.net
--- Servidor: localhost
-- Tiempo de generacin: 28-10-2010 a las 13:26:38
-- Versin del servidor: 5.0.16
-- Versin 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. CONCRECIN DEL MODELO


5.1.

PRUEBAS DE RECONOCIMIENTO E INSTALACIN

El primer paso para realizar la comunicacin entre el dispositivo hardware y el


software del PC es la instalacin del driver para Windows que provee la Microchip
para la implementacin de comunicacin con la tecnologa USB.
El driver le permite al sistema operativo interactuar con la tarjeta de control.
Ejecucin
La prueba realizada para verificar el reconocimiento y la instalacin de la tarjeta de
control en un PC porttil 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 enva al PC sus datos de identificacin
(VID y PID) que bsicamente corresponde al nmero y nombre del dispositivo.

99

Una vez reconocido el dispositivo con el nombre de J1M PicUSB el sistema


operativo realiza una bsqueda dentro de su galera de drivers de los archivos
necesarios para la instalacin del dispositivo. Como es un dispositivo nuevo el
sistema operativo no encuentra un driver apropiado por lo que solicita al usuario
una ubicacin e instalacin manual de este, presentando lo siguiente:

Figura 38. Solicitud de ubicacin manual del driver del dispositivo

Figura 39. Ubicacin manual del driver del dispositivo

100

Lo siguiente es localizar la carpeta con los archivos del driver en el PC

Figura 40. Seleccin 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 instalacin automtica de
estos.

Figura 41. Instalacin del driver del dispositivo

101

Luego de finalizado el proceso de instalacin del driver, el sistema operativo


notifica la correcta instalacin de este

Figura 42. Notificacin de driver instalado correctamente

Se verifica en el administrador de dispositivos de Windows que se haya


identificado la tarjeta de control como un dispositivo ms 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 comunicacin con el software del PC.
Este procedimiento se realiza la primer ves que se conecta el dispositivo al PC,
para la prxima vez que se conecte el dispositivo el sistema operativo lo
reconocer automticamente utilizando la tecnologa Plug and Play.
Solo ser necesario repetir el procedimiento si se realiza la desinstalacin del
dispositivo o si se conecta a un puerto USB diferente al utilizado en la primera
conexin.
5.2.

PRUEBAS DE COMUNICACIN Y FUNCIONAMIENTO

Despus de instalado y configurado el dispositivo en el PC se procede a realizar


las primeras pruebas de comunicacin.
Para llevar a cabo esta prueba se desarroll una aplicacin rpida de prueba en
Microsoft Visual C++ Express Edition la cual verifica la conexin con el dispositivo
y enva una cadena de datos con un tamao de 5 Bytes al microcontrolador.
Ejecucin:
Con el botn 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 dems campos con datos
numricas de cualquier valor, y se presiona Transmite

103

Figura 44. Transmisin 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 enva el resultado de la multiplicacin 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. Ejecucin de tareas programadas en el microcontrolador

104

Con la prueba anterior se verific la correcta comunicacin bidireccional entre el


software de prueba del PC y el firmware del microcontrolador PIC18F4550.
5.3.

PRUEBAS DE INTEGRACIN

Para la realizacin de esta prueba se utilizaron los siguientes dispositivos:

Un PC con el software de control y tarifacin y conexin USB


El bloque de control
El bloque de potencia
El bloque de switcheo
Una consola de videojuegos
Un televisor
Una fuente de alimentacin

Se mont el siguiente escenario:

Figura 46. Escenario de prueba de integracion

105

Ejecucin:
La primera actividad fue realizar la interconexin entre los tres bloques que
componen el dispositivo y comprobar la conectividad entre estos.

Figura 47. Interconexin de los bloques de la tarjeta de control

Luego se realiz la conexin en el bloque de switcheo del cable RCA proveniente


de la consola de videojuegos, y el otro extremo al TV. Y despus la conexin a
travs del puerto USB entre el dispositivo y el PC, obteniendo el siguiente
escenario de prueba.

Figura 48. Interconexin de la consola de videojuegos y la tarjeta de control

106

Figura 49. Interconexin de todos los dispositivos

Puesto en funcionamiento el dispositivo, se puede observar que se mantiene


bloqueada la seal de video hasta que el software del PC no active la consola de
videojuegos. A travs del software de control y tarifacin se activo el servicio de
alquiler de la consola de videojuegos desbloqueando la seal de video entre la
consola y el TV por el tiempo asignado en el software.

Figura 50. Activacin de la consola en el software del PC

107

Figura 51. Verificacin de la activacin 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 imgenes anteriores se puede verificar que el dispositivo cumple
su funcin de bloquear y desbloquear la consola de videojuegos a travs de la
seal de video de acuerdo al tiempo de alquiler programado en el software de
control y tarifacin instalado en el PC.

108

6. CONCLUSIONES
Utilizando el microcontrolador PIC18F4550 es posible implementar una
comunicacin satisfactoria entre la tarjeta de control y el software del PC
haciendo uso de la tecnologa USB.
Se hace ms prctico utilizar la tecnologa USB en comparacin con la
serial y paralela en proyecto desarrollado, ya que ofrece mayores tasas de
transferencia y su conexin es ms fcil gracias a la tecnologa Plug and
Play.
Se desarroll el firmware del microcontrolador utilizando el lenguaje de
programacin de alto nivel CCS C con el software PCWH Compiler, ya que
este ofrece todas la libreras necesarias para el manejo del PIC18Fxx5x y la
comunicacin USB haciendo ms fcil la tarea de programacin.
Se implement una comunicacin bidireccional masiva, bulk transfers, entre
el PIC18F4550 y el Software del PC va USB 2.0 a full speed; ya que esta
configuracin es la que ofrece mayor rata de transferencia de datos.
Para trabajar el mdulo USB del microcontrolador en Full Speed se requiere
de una frecuencia de oscilacin de 48 Mhz, esto no implica que sea
necesario usar un cristal de este valor, debido a que en la etapa de
investigacin se encontr que es posible ajustar la frecuencia de oscilacin
mediante el postscaler del microcontrolador.
Se desarroll el Software del PC utilizando el leguaje de programacin
orientado a objetos C Sharp, que permite la reutilizacin y extensin de
cdigo fuente, facilita la creacin de prototipos y programas visuales, agiliza
el desarrollo del Software y permite abstraccin, relacionando el sistema
con el mundo real.
La utilizacin de IDE (Entornos de Desarrollo Integrado) se convierte en una
herramienta prctica para la codificacin de aplicaciones Software para PC,
ya que simplifica el proceso de generacin de cdigo fuente y diseo de
interfaces.

109

En los recursos que ofrece la empresa Microchip (Driver y librera


MPUSBAPI.dll) es posible encontrar las funciones y rutinas necesarias para
realizar la sincronizacin y comunicacin satisfactoria va USB.
Debido a que la sintaxis del los cdigos de programacin en lenguaje C
Sharp se deriva de C/C++ y utiliza el modelo de objetos de la
plataforma.NET la programacin se reduce sustancialmente y se hace ms
simple y entendible.
La utilizacin de la plataforma .NET de Microsoft para el desarrollo del
componente Software del PC facilita la programacin a la hora de utilizar
los puertos de entrada/salida bajo sistemas Windows.
En el desarrollo de este proyecto se analizaron las caractersticas tcnicas
de los dispositivos que se encuentran actualmente en el mercado, y se
implementaron las que ms se adaptan al sistema, proporcionando una
diferencia significativa con estos al utilizar un sistema de comunicacin a
travs del puerto USB.
Se determino que a travs de un sistema computacional integrando
software y hardware es posible dar solucin a los problemas de control y
tarifacin 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
versin del sistema operativo Windows para instalar el Driver
correspondiente.
El sistema permite controlar las seales de video a travs de conectores
RCA, comn en la mayora 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 programacin del microcontrolador se debe leer y estudiar
la hoja de datos (Datasheet) del dispositivo.
Se debe tener en cuenta que para utilizar la tecnologa USB el
microcontrolador debe trabajar a una frecuencia de oscilacin de 48Mhz
El proceso de instalacin 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 electrnico, 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 conexin de la fuente de alimentacin al
dispositivo y luego la conexin USB para garantizar el reconocimiento de
este en el PC.
Se recomienda alimentar elctricamente el hardware con una fuente de 12
a 18 voltios, con una corriente de entre 1 y 2 amperios.

111

BIBLIOGRAFA

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 mdulo
bluetooth mediante microcontrolador.
RODRIGUEZ DURAN, L. (2007). El Gran Libro del PC Interno. Espaa:
1ed.
ROMERO ACOSTA, A. I., DELGADO RINCON, J. A., & RODRIGUEZ
NIO, J. A. (2006). Tesis "Diseo 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). Construccin de significados frente a los contenidos
violentos de los videojuegos en nios de 11 a 14 aos. 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

También podría gustarte