Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
19 de Mayo de 2008
Borrador
3º Grupo
Ion B.
Padilla
Liher Granado
Daniel García
Igor Ordóñez
Endika Montejo
Índic
e
1 EL PROBLEMA.......................................................................................4
2 OBJETIVOS DEL PROYECTO.....................................................................4
2.1 MÍNIMOS............................................................................................................... .4
2.2 LÍMITES.............................................................................................. ...................4
3 ANÁLISIS..............................................................................................5
3.1 ANÁLISIS CONCEPTUAL.......................................................................................... .......5
3.1.1 Metro de Bilbao.................................................................. ...........................5
3.1.2 Gestión......................................................................................... .................6
3.1.3 Usuarios......................................................................... ...............................6
3.1.4 Hardware.............................................................................................. .........6
3.1.5 Software..................................................................................... ...................7
3.1.6 Esquema conceptual........................................................... ..........................9
3.2 ANÁLISIS TÉCNICO..................................................................... ..............................10
3.2.1 Gestión....................................................................................... .................10
3.2.2 Hardware............................................................................................ .........11
3.2.3 Software................................................................................... ...................15
3.2.4 Esquema general para 2 paradas................................................ ................15
4 DESARROLLO.......................................................................................16
4.1 MODELIZACIÓN............................................................................................... ........16
4.1.1 Base de Datos................................................................ .............................16
4.1.2 Software................................................................................... ...................17
4.1.3 Hardware............................................................................................ .........19
4.2 IMPLEMENTACIÓN.................................................................................... .................20
4.2.1 Base de Datos................................................................ .............................20
4.2.2 Software................................................................................... ...................21
4.2.3 Hardware............................................................................................ .........22
5 POSIBLES MEJORAS.............................................................................22
5.1 PROGRAMA DE GESTIÓN.......................................................................... ...................22
5.2 TERMINAL TÁCTIL................................................................................................ .....22
6 ANEXOS..............................................................................................23
6.1 OBJETIVOS DE APRENDIZAJE......................................................................... ................23
6.1.1 Tecnología de computadores....................................................... ................23
6.1.2 Bases de datos...................................................................... ......................23
6.1.3 Tecnología orientada a objeto................................................................. .....23
6.2 PLANIFICACIÓN Y HERRAMIENTAS........................................................................ ............24
6.2.1 Herramientas.......................................................................................... .....24
6.2.2 Tests.......................................................................................... ..................25
6.3 LATENCIA........................................................................................ .....................26
6.4 PROTOCOLO RS-485................................................................................. .............26
6.5 TECNOLOGÍA RFID EN EL TRANSPORTE PÚBLICO.................................. ...............................27
6.6 TÉCNICAS DE 2 Y 4 HILOS RS485.................................................. ............................27
7 BIBLIOGRAFÍA.....................................................................................29
2
3
1 El problema
Las carreteras de las ciudades están cada día más congestionadas. Es
por ello que existen medios de transporte públicos como el Metro. Para que
este transporte sea eficaz, la forma de acceder a él debe ser tan rápida y
efectiva como el propio viaje. Además debemos ser capaces de recoger
información básica desde el sistema sobre el uso de este transporte. De esta
forma podríamos adaptarlo a las necesidades de la ciudad, responder a las
necesidades del cliente y proponer mejoras. Debido a esto, se precisan
herramientas que permitan automatizar y facilitar estas tareas tanto al usuario
que accede al Metro como al equipo que lo gestiona y trata de mejorarlo cada
día, ya que otras formas no automatizadas son menos eficaces y más lentas.
2.1 Mínimos
Este sistema deberá permitir lo siguiente:
2.2 Límites
Nos centraremos en:
3 Análisis
En el análisis, estudiaremos las diferentes posibilidades y vías técnicas
para poder prestar una solución al problema antes citado.
3.1.1Metro de Bilbao
El Metro es un sistema de transporte público de masas, que pretende dar
rapidez y fluidez al transporte en las ciudades.
3.1.2Gestión
Necesitamos darle al equipo de gestión la posibilidad de extraer
información sobre el uso del Metro, aquélla que nos ayude a mejorar el sistema
y adaptarlo a su uso, y además permita realizar las operaciones más comunes:
crear un nuevo usuario habitual, dar de baja a un usuario habitual, conocer la
cantidad de accesos diarios... La razón está bien clara: evitar la realización de
inexactos sondeos sino lograr unas estadísticas totalmente exactas, que
ayuden a prever saturaciones del Metro y responder a las necesidades de los
usuarios. Esta función la cumplirá un sistema de información común para todo
el Metro.
3.1.3Usuarios
Hay que facilitarle al usuario el acceso al Metro. Primero hay que pasar a
ser usuario del metro de Bilbao. Así que, ¿Quién es usuario del Metro?
¿Cómo se pasa a ser usuario del Metro? ¿Qué formas hay de ser
usuario?
Usuario del Metro es aquel que lo usa: ya sea una, dos o cien veces; al
día, a la semana o una vez en su vida. Por ello podemos distinguir entre
usuarios habituales y esporádicos.
3.1.4Hardware
En este apartado se analizarán los soportes físicos que serían necesarios
para el sistema.
3.1.4.1 Pases
Los usuarios deben recibir un soporte físico en el que albergar su
derecho a entrada, el cual demuestre que se ha pagado por el acceso.
Para los usuarios esporádicos, el uso del típico ticket es lo más fácil e
intuitivo, y más barato que expedir tarjetas sólidas las cuales podrían ser
extraviadas o desechadas. Pensamos en otras posibilidades para los usuarios
habituales, como son las tarjetas con banda magnética o tarjetas de
radiofrecuencia, además de la posibilidad de emplear el número DNI o alguna
contraseña personal para introducirla en los tornos de acceso. Estas dos
últimas opciones no tienen coste de soporte físico (papel, plástico), pero puede
ser engorrosa para los usuarios.
3.1.4.4 Interconexiones
Para hacer posible que este sistema funcione y sea capaz de proveer
estadísticas de uso y herramientas para la manipulación de datos, los
dispositivos deben grabar información referente a las operaciones realizadas
por parte de usuarios como la expedición de billetes. Es por esto que deben
estar conectados al sistema de gestión de información.
3.1.5Software
Definiremos conceptualmente de qué partes de software precisa el
sistema hasta ahora definido.
3.1.5.1 Programas
Necesitamos dos programas básicos: el instalado en las terminales de
obtención de pases, el cual se encargará de todo lo referente a esta
funcionalidad, y el empleado por el personal de gestión del Metro para la
obtención y manipulación de datos y estadísticas.
Además de estos dos programas, hace falta uno más que ejerza de
interlocutor entre los tornos de acceso y la base de datos. Estos tornos deben
7
validar las peticiones que reciban, y para ello deben comunicarse con la base
de datos para cotejar la información. La inteligencia no residirá en estos
dispositivos, no dispondrán de la posibilidad de comunicarse directamente con
la base de datos. Simplemente enviarán los datos que lean de las tarjetas o
tickets de los usuarios a otro dispositivo, centralizando la gestión y la
comunicación con la base de datos en un solo dispositivo. Este será el que
contenga el programa mencionado.
8
3.1.6Esquema conceptual
Tras este análisis hemos podido diseñar un boceto conceptual del sistema
para una estación. Gracias a él, podremos afianzar lo analizado y proseguir con
el análisis técnico sobre las tecnologías que nos permitirán implementar este
sistema. Es necesario aclarar que la base de datos estará centralizada y todos
los dispositivos de todas las estaciones se conectarán a ella.
9
3.2 Análisis técnico
En este apartado nos centraremos en analizar las diferentes tecnologías
que podríamos emplear para la construcción del sistema ideado en el análisis
conceptual.
3.2.1Gestión
Toda la información que genere este sistema debe ser almacenada. Para
ello, usaremos una base de datos, la cual nos permite gracias a los lenguajes
SQL3, DDL4 y DML5 una completa gestión y manutención de los mismos.
MySQL Oracle
Open Source, sin ningún coste. 8,800 USD versión empresarial.
Sencillez en la creación de las bases de Alta dificultad en la creación de las bases
datos. de datos.
Se recomiendan 128MB RAM y 1GB de 7 veces más de espacio en disco duro y
disco duro para servidores. 16 veces más de RAM que MySQL
aproximadamente.
Menor seguridad que Oracle. Alta seguridad.
Buena velocidad. Mayor velocidad que MySQL.
Para las características avanzadas, hay Implementa prácticamente todas las
que usar el motor InnoDB. características de las bases de datos.
Tabla 1, Comparación entre MySQL y Oracle.
Usaremos MySQL para la simulación del sistema, por su sencillez, por ser
de código libre y por el bajo consumo de recursos. Aun así, prevemos que en la
aplicación real del proyecto debería ser usada una base de datos comercial
como Oracle, ya que necesitaría ser más potente para soportar el continuo fluir
de datos, agilizando y permitiendo de esta manera más consultas ().
3.2.2Hardware
Debe existir un ordenador que se encargue de recibir la información de
las diferentes terminales y dispositivos que deseen escribir o leer datos de la
base de datos. El servidor será aquel que albergue la base de datos. Deberá
estar continuamente ejecutando un programa que se encargará del recibo y
envío de datos a través del puerto de serie, USB, Ethernet o cualquiera que sea
el BUS de datos escogido.
3.2.2.1 Tarjetas
El soporte físico seleccionado para otorgar el derecho a acceder al Metro
a los usuarios habituales son las tarjetas. Nos centraremos en tres tipos, las
tarjetas basadas en RFID, las tarjetas magnéticas y las tarjetas inteligentes.
RFID
VENTAJAS DESVENTAJAS
Muy duraderas ya que no hay que
pasarlas por ningún sitio. Con el simple Son fáciles de piratear o copiar, sin que se
hecho de ponerlas cerca del lector es entere el usuario.
suficiente. Por lo tanto no se desgastan.
Existen tarjetas de lectura y escritura, y
además no necesitan de alimentación, les Alto coste de los lectores. Unos 200 € las
es inducida por el lector en el momento unidades comerciales.
de la lectura.
Lecturas más rápidas y más precisas que
en otro tipo de tecnologías.
Dinamizaría mucho más las colas,
reduciendo el tiempo de espera para
acceder.
Bajo coste de las tarjetas. En fecha de
2004, las etiquetas tienen un precio
desde 0,40$.
Tabla 2, ventajas y desventajas de la tecnología RFID.
TARJETAS MAGNÉTICAS
VENTAJAS DESVENTAJAS
Desgaste producido al pasarla por
Bajo coste.
los lectores.
Tecnología muy conocida y
Son fáciles de piratear o copiar.
utilizada.
Lentitud en los accesos.
Tabla 3, ventajas y desventajas de las tarjetas con banda magnética.
TARJETAS INTELIGENTES
VENTAJAS DESVENTAJAS
Procesador criptográfico seguro, sistema Alto coste de lectores y tarjetas.
3.2.2.2BUS
Nuestros tornos o terminales de acceso leerán la tarjeta, y deberán
enviar su información al servidor, para que sea comprobada en la base de
datos y devolver un sí o un no. Además, el servidor realizará las operaciones
necesarias sobre la base de datos, como descontar el dinero y agregar un
acceso. Por lo tanto todos los dispositivos conectados al BUS envían y reciben
información. Cada terminal de acceso dispondrá de un PIC, que se encargará
de la comunicación y de las diferentes tareas necesarias. Como podemos ver,
tenemos múltiples PIC que deben enviar información a un único punto, el
servidor, mientras que éste es el único que responde a todos ellos. Nuestro
sistema se identifica, por lo tanto, con una aplicación Máster/Slave.
Monomaster Multimaster
Mayor velocidad. Menor velocidad.
3.2.2.3 MICROCONTROLADORES
Los tornos necesitan de capacidad de procesamiento para leer las
tarjetas y comunicarse con el máster del BUS. Para otorgarles esta capacidad,
estarán gobernados por PICs10 que serán, en principio, de la serie PIC16F87X,
los cuales incorporan una unidad UART para la comunicación por puerto de
serie, ideal para nuestro planteamiento. Específicamente para esta aplicación,
seleccionaremos un PIC de esta gama sin puerto paralelo, el PIC16F873.
3.2.2.4 PROTOCOLO
Al elegir el sistema monomaster, para facilitar la comunicación entre
los diferentes microcontroladores de los tornos y el PC, hemos creado un
protocolo específico que cumplirán todos los paquetes que viajen por el bus. Se
define con total concreción cual es el número de paquetes necesario, cuales
son los distintos tipos de paquetes, de que bits se componen, y en qué orden
se realiza esta comunicación. Este protocolo evita conflictos en el BUS, como el
que la transmisión por parte de un PIC pueda ser malinterpretada por otro PIC,
ambos esclavos (Anexos: Protocolo RS-485).
3.2.3Software
Los programas son construidos con lenguajes de programación como
Java, PHP y un largo etc. En este caso concreto todos los programas serán
desarrollados en Java, ya que es un lenguaje orientado a objeto con una gran
cantidad de librerías, al cual le caracteriza una gran portabilidad en diferentes
maquinas. Además, al ser orientado a objeto, nos facilitaría la realización de
cambios y la identificación de errores.
4 Desarrollo
En esta sección se describirá el proceso de desarrollo del proyecto,
explicando de una forma cronológica los diferentes sucesos a lo largo de la
implementación. Se describirán los recursos empleados, la organización y
división de tareas, los problemas encontrados y la resolución de los mismos.
4.1 Modelización
El primer paso en el desarrollo consiste en la creación de un modelo para
cada una de las partes del mismo. Valiéndonos de diferentes diagramas,
diseñamos el software y hardware que toman parte en el sistema. Nos
aseguramos de que todos los miembros del grupo tomasen parte en esta fase,
crucial para el proyecto.
4.1.1Base de Datos
La base de datos fue diseñada en primer lugar, usando diagramas de
entidad-relación y relacionales.
Uno de los problemas que surgió fue el siguiente: en una aplicación real,
debería existir algún sistema parar borrar las entradas que generasen los
usuarios esporádicos, teniendo en cuenta que al cabo de un año el volumen de
información sería de unos 7 millones de registros. Pero por otro lado, también
queremos seguir almacenando estos datos. Aunque no será implementada,
una de las soluciones posibles sería la creación de una tabla que guardase un
historial de accesos por mes, trimestre o año, comprimiendo las estadísticas de
todo ese período de tiempo a un registro. Paralelamente con la creación de
este registro, se borraría por completo el contenido de las tablas Acceso y
Billete (Anexos: MySQL Workbench).
4.1.2Software
Una vez diseñada la base de datos y el hardware, comenzamos con la
modelización del Software. En esta parte se diferencian 3 programas distintos:
el programa que proveerá a los usuarios de tickets y billetes, el programa que
se grabará en cada torno de acceso y el que actuará de puente entre la base
de datos y los tornos.
16
Ilustración 5, diagrama de clases UML para el programa ‘Terminales’.
17
En el caso del programa a grabar en los microcontroladores de los
tornos, fue suficiente con crear un diagrama de secuencia que definiera el
proceso por completo. El programa se dividirá en dos subrutinas
(SubrutinaPreguntaPC y SubrutinaTarjeta) y un programa principal, como se
puede observar a continuación. (Anexos: Oracle JDeveloper y diagramas UML).
4.1.3Hardware
Tras la base de datos, pasamos a diseñar los circuitos electrónicos de los
tornos que se encargan de la lectura de las tarjetas y tickets, otorgando acceso
o no a los usuarios. Analizamos las características del microchip PIC16F873 y
del lector de tarjetas Dorlet, elementos fundamentales del circuito. Para la
integración con el BUS RS-485, buscamos algún tipo de chip similar al MAX232
18
que realizase la conversión de la tensión a niveles TTL13. Encontramos el chip
MAX485 de Maxim. Tras la lectura de su correspondiente Datasheet, pudimos
definir la forma de integrarlo en el circuito. Nos faltaba un componente que
permitiese realizar el puente entre los buses RS232 y RS485. Por rapidez y
comodidad, decidimos adquirir un conversor comercial por nuestra cuenta. En
este momento disponíamos de toda la información necesaria para comenzar a
dibujar el esquema de los dispositivos (Anexos: CircuitMaker).
4.2 Implementación
Tras la modelización de cada parte, procedimos a su implementación. En
esta sección se irá describiendo este proceso, junto a todos los problemas que
van surgiendo.
4.2.1Base de Datos
La base de datos fue implementada mediante un script autogenerado
por el programa MySQL Workbench (Anexos: MySQL Workbench). Se insertaron
varios valores imaginarios en ella para poder hacer posible una demostración.
13Transistor-Transistor Logic, 0,2-0,8V para nivel bajo (0) y de 2,4V a Vcc (de 4,75 a
5,25V) para nivel alto (1).
19
Una vez finalizado el proceso de creación de la base de datos, se crearon
los usuarios que dispondrán los diferentes dispositivos que se conectarán a
ella. En nuestro sistema, tanto la terminal como los tornos tendrán un usuario
especial para la conexión con la base de datos. A estos usuarios se les
otorgaran los privilegios indispensables para que su respectivo dispositivo
pueda realizar las operaciones necesarias.
4.2.2Software
La segunda parte que pasamos a implementar fueron los diferentes
programas necesarios: ‘Terminales’, ‘Tornos’ y el programa a grabar en los
microcontroladores. Para esto, y valiéndonos de los diagramas de clases para
los dos primeros programas, dividimos el trabajo en clases o grupos de clases
por cada miembro del grupo. Paralelamente al desarrollo se testeó cada parte
del programa: conexión con la base de datos, conexión vía puerto de serie, etc.
20
4.2.3Hardware
Comenzamos a implementar esta parte justo después de acabar el
diseño conceptual y disponer de todos los materiales para la creación del
dispositivo lector de tarjetas y tickets que nos permitiría realizar la
demostración del sistema.
5 Posibles mejoras
En esta sección se irán describiendo los diferentes extras que se pueden
llegar aplicar en el proyecto del metro de Bilbao.
21
problema con las conexiones en red, ya que dicha pantalla táctil dispone de
conexión a la red.
6 Anexos
6.1 Objetivos de aprendizaje
Para aprobar este proyecto se definen los conocimientos que deberían
lograr cada miembro del grupo en cada una de las asignaturas que toman
parte en él.
6.1.1Tecnología de computadores
El alumno debe ser capaz de lo siguiente con respecto a esta asignatura:
6.1.2Bases de datos
El alumno debe ser capaz de lo siguiente con respecto a esta asignatura:
22
6.1.3Tecnología orientada a objeto
El alumno debe ser capaz de lo siguiente con respecto a esta asignatura:
6.2.1Herramientas
Se describirán a continuación las herramientas usadas a lo largo del
proyecto, las cuales ayudaron en el desarrollo del mismo.
6.2.1.2 CircuitMaker
Decidimos crear los esquemas electrónicos mediante una herramienta
informática, la cual nos permitiese obtener un esquema limpio y claro. Tras una
búsqueda en Internet, encontramos el programa CircuitMaker, el cual cubrió
con nuestras necesidades.
6.2.1.5 PCW
Se decidió programar el PIC en lenguaje C, por las facilidades que da a la
hora de encontrar cualquier error y el tiempo de programación que ahorra con
respecto al lenguaje ensamblador. Se utilizó un compilador de C orientado a
microcontroladores llamado PCW. Este programa, además, asiste en la creación
de nuevos proyectos dando la opción de seleccionar previamente todas las
configuraciones del PIC; generando, tras esto, todo el código necesario,
ahorrando una parte de la programación. La versión utilizada fue la 4.017.
6.2.1.6 IC-Prog
Para la grabación de los microcontroladores, al tratarse de un programa
ya conocido por todos los miembros del grupo, se utilizó IC-prog. Este
programa permite realizar esta tarea rápidamente tras una sencilla
configuración.
6.2.1.7 SmartDraw
Programa utilizado para crear los diferentes diagramas de flujos y
imágenes mostradas en este documento.
6.2.1.8 Blog
Nuestro estilo de trabajo en la ejecución del proyecto se ha visto
reflejado en nuestro blog. El blog ha sido usado para ir informado de los
avances, cambios en los programas, problemas… durante el proyecto.
6.2.2Tests
A medida que se fueron acabando las diferentes partes de las cuales se
componen nuestro sistema, se fueron creado diferentes programas de testeo
para comprobar si lo hecho hasta ese momento funcionaba satisfactoriamente.
24
6.2.2.1 Tests de comunicación RS232
Para poder confirmar el correcto funcionamiento de las partes
relacionadas con la línea de serie, se creó un pequeño programa en JAVA que
estableciera una comunicación por este puerto.
6.3 Latencia
Nos situaremos en el caso de que tenemos el máximo número de tornos
posibles (32). A velocidad de 9600 baudios:Paquete: 1 bit de inicio + 8 bits de
datos + 1 bit de paridad + 2 bits de stop= 12 bits en total. 12*104
microsegundos = 1248 microsegundos cada paquete.
Suponiendo que haya 32 tornos (el número máximo), y que sea el ultimo
torno, el ordenador tendría que preguntar antes a 31 tornos, y suponiendo que
en todos se pasen tarjetas, tendría que hacerse 31 veces la comunicación
25
completa entre PIC y PC y entre PC y servidor (aunque esta lo vamos a
despreciar porque debería de ser casi instantánea). Esta comunicación
completa se compone de 9 paquetes: 1 paquete de pregunta del ordenador, 1
paquete de respuesta, 6 paquetes para el envío de la Id de la tarjeta, luego
sería la conexión del PC con el servidor (despreciada) y después 1 paquete de
respuesta final del PC al PIC. Total: 9 paquetes. A 1248 microsegundos el
paquete, nos salen a 11232 microsegundos cada torno, y por 31 tornos a
348,192 milisegundos, es decir, 0,35 segundos. Por lo tanto, elegimos el
sistema mono-máster ya que es tiempo suficiente para dejar paso sin crear
atasco.
15Un BUS multimaster permite que en cualquier momento el rol de máster cambie a
otro dispositivo conectado.
7 Bibliografía
1. Wikipedia. Metro de Bilbao. Wikipedia. [En línea] 1 de Abril de 2008. [Citado
el: 8 de Abril de 2008.]
http://es.wikipedia.org/w/index.php?title=Metro_de_Bilbao.
2. CERN. Comparison of Oracle, MySQL and Postgres DBMS. ALICE DCDB. [En
línea] 7 de Mayo de 2007.
4. Wikipedia. Oyster card. Wikipedia. [En línea] Marzo de 2008. [Citado el: 7
de Abril de 2008.] http://es.wikipedia.org/wiki/Oyster_card.
5. Wiesemann & Theis GmbH. Sistemas de bus RS485. WuT. [En línea]
[Citado el: 7 de Abril de 2008.] http://www.wut.de/e-6wwww-11-apes-000.php.
29