Tesis Flux - V300509
Tesis Flux - V300509
Tesis Flux - V300509
ASESOR:
ING. SAMUEL ALFONSO MARGUÉIS GUZMÁN
MAYO DE 2009
SONSONATE, EL SALVADOR, CENTRO AMÉRICA.
ÍNDICE GENERAL
CONTENIDO
PÁGINA
ÍNDICE GENERAL ................................................................................................... i
ÍNDICE DE TABLAS ............................................................................................... vi
ÍNDICE DE GRÁFICOS ......................................................................................... vii
ÍNDICE DE ANEXOS ............................................................................................. vii
INTRODUCCIÓN .................................................................................................. viii
CAPITULO I. PLANTEAMIENTO DEL PROBLEMA ............................................... 1
A. El problema de Investigación .............................................................................. 1
B. Antecedentes y Situación Actual......................................................................... 2
1. Antecedentes ................................................................................................... 2
2. Situación Actual ............................................................................................... 3
a. Utilización de microcontroladores en la Universidad de Sonsonate ............. 3
b. Tipo de microcontrolador utilizado en la Universidad de Sonsonate ............ 4
C. Preguntas de Investigación................................................................................. 4
CAPÍTULO II. FUNDAMENTACIÓN TEÓRICA ....................................................... 5
A. Revisión de Literatura ......................................................................................... 5
1. Importancia de los microcontroladores ............................................................ 5
2. Proyectos desarrollados con microcontroladores ............................................ 5
3. Entorno de Desarrollo Integrado ...................................................................... 6
a. Definición ..................................................................................................... 6
b. IDEs para la programación de Microcontroladores ...................................... 7
I. MPLAB ...................................................................................................... 7
II. PICAXE Programming Editor .................................................................... 7
III. LOGICATOR for PIC Micros .................................................................... 8
IV. Flowcode ................................................................................................. 8
4. Teoría General sobre Microcontroladores ....................................................... 8
a. Definición ..................................................................................................... 8
b. Componentes de un microcontrolador ......................................................... 9
I. Procesador ................................................................................................ 9
i
i. CISC..................................................................................................... 10
ii. RISC .................................................................................................... 10
iii. SISC ................................................................................................... 10
II. Memoria.................................................................................................. 10
i. ROM con máscara ............................................................................... 10
ii. OTP ..................................................................................................... 11
iii. EPROM ............................................................................................. 11
iv. EEPROM, E2PROM o E²PROM......................................................... 11
v. FLASH ................................................................................................. 12
III. Puertas de entrada y salida (E/S) del microcontrolador......................... 12
IV. Reloj principal ........................................................................................ 12
V. Recursos especiales .............................................................................. 13
b. La familia de los PIC .................................................................................. 15
I. Introducción ............................................................................................. 15
II. La familia PIC ......................................................................................... 15
i. Gama enana. PIC12CXXX ................................................................... 15
ii. Gama baja. PIC16C5XX con instrucciones de 12 bits......................... 16
iii. Gama media. PIC16CXXX con instrucciones de 14 bits .................... 16
iv. Gama alta: PIC17CXXX con instrucciones de 16 bits ........................ 17
5. Generalidades sobre el Lenguaje Ensamblador ............................................ 17
a. Definición ................................................................................................... 17
b. Características ........................................................................................... 18
6. Generalidades sobre Compilación ................................................................. 18
a. El Proceso de Compilación ........................................................................ 18
I. Análisis léxico .......................................................................................... 19
II. Análisis sintáctico ................................................................................... 19
III. Análisis semántico ................................................................................. 19
IV. Generación de código intermedio.......................................................... 20
V. Optimización de código .......................................................................... 20
VI. Fase de síntesis .................................................................................... 20
b. Traductor .................................................................................................... 21
ii
I. Intérpretes ............................................................................................... 22
II. Compiladores ......................................................................................... 22
7. Proceso de grabación de un microcontrolador .............................................. 23
a. Programa Ensamblador ............................................................................. 25
I. Definición ................................................................................................. 25
II. Ensamblador a utilizar en el Proyecto .................................................... 25
b. Programador .............................................................................................. 26
I. Definición ................................................................................................. 26
II. Programador a utilizar en el Proyecto..................................................... 26
B. Hipótesis ........................................................................................................... 27
CAPÍTULO III. JUSTIFICACIÓN Y OBJETIVOS ................................................... 27
A. Justificación ...................................................................................................... 27
B. Objetivos ........................................................................................................... 28
1. Objetivo General ............................................................................................ 28
2. Objetivos Específicos..................................................................................... 28
C. Alcances y Limitaciones.................................................................................... 28
CAPÍTULO IV. METODOLOGÍA DE LA INVESTIGACIÓN ................................... 29
A. Tipo de Investigación ........................................................................................ 29
B. Unidades de Análisis ........................................................................................ 29
C. Variables y su Medición .................................................................................... 30
1. Definición de las variables ............................................................................. 30
2. Indicadores y su medición u observación ...................................................... 31
a. Instrumentos de Medición .......................................................................... 32
b. Técnicas y procedimientos para la recopilación de información ............... 32
D. Análisis e Interpretación de los Resultados ...................................................... 33
1. Recopilación de Información.......................................................................... 33
2. Interpretación de Resultados ......................................................................... 34
E. Plan de Proyecto ............................................................................................... 39
F. Plan de Utilización de los Resultados ............................................................... 39
CAPÍTULO V. PROPUESTA TÉCNICA ................................................................ 40
A. Modelado del negocio ....................................................................................... 40
iii
1. Generalidades de la empresa ........................................................................ 40
2. Diagrama de subsistemas de la empresa ...................................................... 40
B. Requisitos ......................................................................................................... 40
1. Oportunidad del negocio ................................................................................ 40
2. Definición del problema ................................................................................. 41
3. Requerimientos funcionales........................................................................... 41
a. Identificación de los actores .................................................................... 41
b. Identificación de escenarios ....................................................................... 42
c. Definición de los casos de uso ................................................................... 43
I. Modelo de casos de uso .......................................................................... 43
II. Diagrama de estados.............................................................................. 44
III. Descripción de los casos de uso ........................................................... 47
4. Beneficios del cliente ..................................................................................... 52
5. Requerimientos no funcionales ...................................................................... 53
a. Matriz de Componentes ............................................................................. 54
b. Requerimientos de Hardware y Software ................................................... 55
I. Requerimientos de Hardware .................................................................. 55
II. Requerimientos de Software .................................................................. 55
c. Requerimientos de Entrada ........................................................................ 56
d. Requerimientos de Salida .......................................................................... 57
f. Requerimientos de Almacenamiento........................................................... 57
C. Análisis ............................................................................................................. 58
1. Análisis de casos de uso ............................................................................... 58
a. Identificación de clases entidad, interfaz y control ..................................... 58
b. Diagrama de clases.................................................................................... 60
c. Diagrama de colaboración.......................................................................... 63
d. Flujo de eventos ......................................................................................... 65
2. Análisis de clases .......................................................................................... 67
a. Identificación de las responsabilidades ...................................................... 67
3. Análisis de la Decisión ................................................................................... 70
a. Especificar las Soluciones Alternativas ...................................................... 70
iv
b. Analizar la Viabilidad de las Soluciones Alternativas ................................. 71
c. Determinar el Diseño de la Alternativa Propuesta ...................................... 73
D. DISEÑO ............................................................................................................ 74
1. Objetivos del Sistema .................................................................................... 74
a. Objetivo General ........................................................................................ 74
b. Objetivos Específicos ................................................................................. 74
2. Diseño de la arquitectura ............................................................................... 74
a. Arquitectura del Sistema ............................................................................ 74
b. Distribución del Sistema ............................................................................. 75
I. Capa de Datos ......................................................................................... 75
II. Capa de Procesos .................................................................................. 75
III. Capa de Presentación ........................................................................... 75
c. Identificación de nodos y configuraciones .................................................. 76
d. Identificación de clases relevantes ............................................................. 76
3. Diseño de Casos de Uso ............................................................................... 77
a. Identificación de clases de diseño .............................................................. 77
b. Interacción entre objetos ............................................................................ 81
4. Identificación de operaciones de clases de diseño ........................................ 86
5. Diseño de prototipo ........................................................................................ 88
E. CONSTRUCCIÓN E IMPLANTACIÓN ............................................................. 91
1. Construcción del software .............................................................................. 91
a. Implementación de clases de diseño ......................................................... 91
I. Generación de código fuente ................................................................... 91
II. Implementación de operaciones ............................................................. 91
b. Pruebas y corrección de errores ................................................................ 92
I. Pruebas de Unidad .................................................................................. 92
II. Pruebas de Integración........................................................................... 93
III. Pruebas del sistema .............................................................................. 93
c. Integración del sistema ........................................................................... 93
2. Implantación del Software .............................................................................. 94
a. Implantación de la arquitectura .................................................................. 94
v
I. Diagrama de componentes ...................................................................... 94
b. Plan de Implantación .................................................................................. 94
c. Capacitación a Usuarios............................................................................. 95
CAPITULO VI. ESTUDIO ECONÓMICO .............................................................. 96
A. Generalidades sobre la evaluación del proyecto .............................................. 96
B. Factibilidad del proyecto ................................................................................... 96
C. Determinación de los costos del proyecto ........................................................ 97
1. Costos fijos .................................................................................................... 97
2. Costos variables ............................................................................................ 98
3. Análisis Costo / Beneficio .............................................................................. 99
E. Determinación de beneficios del sistema ........................................................ 100
CAPITULO VII. CONCLUSIONES Y RECOMENDACIONES. ........................... 101
A. Conclusiones .................................................................................................. 101
B. Recomendaciones .......................................................................................... 101
Referencias Bibliográficas ................................................................................... 103
ANEXOS ............................................................................................................. 105
ÍNDICE DE TABLAS
vi
ÍNDICE DE GRÁFICOS
ÍNDICE DE ANEXOS
vii
INTRODUCCIÓN
Con esta investigación se pretende dar solución a las dificultades que los
estudiantes presentan durante el desarrollo con microcontroladores, problema que
consiste en el aprendizaje de la sintaxis y la lógica del lenguaje Ensamblador,
necesario para la programación de microcontroladores. Este, por ser un lenguaje
de bajo nivel y en consecuencia dificultoso de entender, representa una
complicación y un punto de estanque en la práctica con microcontroladores.
ix
CAPITULO I. PLANTEAMIENTO DEL PROBLEMA
A. El problema de Investigación
1
B. Antecedentes y Situación Actual
1. Antecedentes
2
- Una tercera parte se absorbe en las aplicaciones relacionadas con los
computadores y sus periféricos.
- La cuarta parte se utiliza en las aplicaciones de consumo
(electrodomésticos, juegos, TV, vídeo, etc.).
- El 16% de las ventas mundiales se destina al área de las comunicaciones.
- El resto de los microcontroladores vendidos en el mundo, aproximadamente
un 10% han sido adquiridos por las industrias de automoción.
2. Situación Actual
3
electrónicos, los cuales son diseñados por los estudiantes y, con ayuda de
instructores de cada una de las materias, son implantados en circuitos construidos
en las horas asignadas para esta actividad; sin embargo, el tiempo con el cual se
cuenta para este tipo de práctica es muy limitado, ya que la programación de estos
dispositivos es muy compleja y trabajosa, sin tomar en cuenta el tiempo que tiene
que emplearse para explicar el lenguaje de programación necesario para programar
estos dispositivos.
C. Preguntas de Investigación.
1. ¿Cuáles son los problemas o dificultades con los que se enfrentan los
usuarios al momento de trabajar con microcontroladores?
2. ¿Es posible mejorar el aprendizaje y uso de los microcontroladores, a través
de un software que brinde herramientas gráficas para la programación de
éstos?
3. ¿Constituirá el software una herramienta que solvente los problemas en la
programación de microcontroladores?
4
CAPÍTULO II. FUNDAMENTACIÓN TEÓRICA
A. Revisión de Literatura
Existe una gran variedad de proyectos que pueden llevarse a cabo haciendo uso de
microcontroladores. Numerosos trabajos de tesis han explorado las ventajas y las
opciones ilimitadas que proporcionan los microcontroladores, con proyectos como la
creación de un cortafuegos (firewall) basado en un microcontrolador, un sistema de
mensajería celular usando microcontroladores, la elaboración de un robot
explorador de ductos, que hace uso de microcontroladores para controlar el
desplazamiento del robot, y el desarrollo de un sistema de sensores para el
5
monitoreo de variables climatológicas, que permite registrar variables tales como
temperatura, velocidad y dirección del viento, y las almacena en una base de datos.
a. Definición
El IDE puede verse, en líneas generales, como un programa que posee un conjunto
de herramientas para un programador.
1
Wikipedia. 2008. Entorno de Desarrollo Integrado. Consultado 3 de Junio de 2008. Disponible en
http://es.wikipedia.org/wiki/Entorno_de_desarrollo_integrado
6
Existen IDEs para la mayoría de los lenguajes de programación. Para Java, los
IDEs más populares son Eclipse y NetBeans. C++ cuenta con Visual C++ y Dev
C++.
I. MPLAB
7
usados en el comercio y el sector técnico, incluyendo desarrollo rápido de
prototipos. 2
Los PICAXE no son más que microcontroladores pre-programados, que incluyen un
pequeño programa, específicamente un intérprete, que facilita su programación
utilizando un lenguaje muy similar a BASIC.
Los PICAXE son vendidos únicamente por la compañía que los produce.
IV. Flowcode
a. Definición
2
Wikipedia. 2008. PICAXE. Consultado 3 de Junio de 2008. Disponible en http://en.wikipedia.org/wiki/PICAXE
3
Microcontrolador PIC16F84: Desarrollo de Proyectos. 2004. p. 1
8
programados en Lenguaje Ensamblador. Un sistema con microcontrolador debe
disponer de una memoria donde se almacena el programa que gobierna el
funcionamiento del mismo, y una vez programado y configurado, únicamente se
emplea para realizar el proceso asignado.
La invención del microcontrolador ha sido uno de los hechos más notables del siglo
XX. En el mercado existe una gran variedad de microcontroladores, cada uno con
distintas capacidades y posibilidades.
En los últimos años han tenido un gran auge los microcontroladores PIC fabricados
por Microchip Technology Inc.. Los PIC (Peripheral Interface Controller) son una
familia de microcontroladores que ha tenido gran aceptación y desarrollo en los
últimos años gracias a que sus buenas características, bajo precio, pequeño
tamaño, gran calidad, fiabilidad y abundancia de información, lo convierten en muy
fácil, cómodo y rápido de utilizar.
b. Componentes de un microcontrolador4
I. Procesador
4
Sistema de control mediante mensajes SMS y microcontroladores. 2006. p. 7-12.
9
i. CISC
ii. RISC
iii. SISC
II. Memoria
10
ii. OTP
iii. EPROM
11
v. FLASH
Se trata de una memoria no volátil, de bajo consumo, que se puede escribir y borrar.
Funciona como una a ROM y una RAM pero consumen menos y es más pequeña.
A diferencia de la ROM, la memoria FLASH es programable en el circuito. Es más
rápida y de mayor densidad que la EEPROM. La alternativa FLASH está
recomendada frente a la EEPROM cuando se precisa gran cantidad de memoria de
programa no volátil. Es más veloz y tolera más ciclos de escritura/borrado.
12
V. Recursos especiales5
A continuación se muestra una tabla con los principales recursos que incorporan los
microcontroladores:
5
Sistema de control mediante mensajes SMS y microcontroladores. 2006. p. 14-19.
13
(Sleep mode). ocasionada por el acontecimiento esperado, el
microcontrolador se despierta y reanudar su trabajo.
Transforma los datos Los datos digitales obtenidos del procesamiento del
Conversor D/A
digitales a su computador son transformados en su
(Digital ->
correspondiente señal correspondiente señal analógica que saca al exterior
Analógico).
analógica. por una de las patillas del chip.
14
b. La familia de los PIC6
I. Introducción
6
Sistema de control mediante mensajes SMS y microcontroladores. 2006. p. 21-24.
15
ii. Gama baja. PIC16C5XX con instrucciones de 12 bits
Con una memoria de programa (ROM o EPROM) de 12 bits y de 512, 1024 o 2048
palabras y una memoria de datos de 8 bits de 25, 72 o 73 bytes. Trabajan hasta 20
MHz y disponen de 12 o 20 líneas de E/S de alta corriente, un temporizador y de 33
instrucciones. Además, como el resto de los PICs disponen de perro guardián,
Autoinicilización (POR o Power on Reset), modo de bajo consumo (SLEEP), reloj
interno mediante cristal o red RC y protección contra lectura del código.
Es la gama más variada y completa de los PIC. Abarca modelos con encapsulado
desde 18 patas hasta 68, cubriendo varias opciones que integran abundantes
periféricos. Dentro de esta gama se halla el famoso PIC16X84 y sus variantes.
16
iv. Gama alta: PIC17CXXX con instrucciones de 16 bits
a. Definición
7
Wikipedia. 2008. Lenguaje Ensamblador. Consultado 20 de Abril de 2008. Disponible en
http://es.wikipedia.org/wiki/Lenguaje_ensamblador
17
b. Características
a. El Proceso de Compilación
8
Java a tope: Traductores y compiladores con Lex/Yacc, JFlex/Cup y JavaCC. 2005. p. 2-3
9
Wikipedia. 2008. Proceso de traducción de programas. Consultado 4 de Junio de 2008. Disponible en
http://es.wikipedia.org/wiki/Proceso_de_traducci%C3%B3n_de_programas
18
I. Análisis léxico
19
IV. Generación de código intermedio
V. Optimización de código
20
b. Traductor
Mensajes de Error
21
I. Intérpretes
Su principal ventaja es que permiten una fácil depuración. Entre los inconvenientes
podemos citar, en primer lugar, la lentitud de ejecución, ya que al ejecutar a la vez
que se traduce no puede aplicarse un alto grado de optimización; por ejemplo, si el
programa entra en un bucle y la optimización no está muy afinada, las mismas
instrucciones se interpretarán y ejecutarán una y otra vez, enlenteciendo la
ejecución del programa. Otro inconveniente es que durante la ejecución, el
intérprete debe residir en memoria, por lo que consumen más recursos.
II. Compiladores
10
Wikipedia. 2008. Compilador. Consultado 4 de Junio de 2008. Disponible en
http://es.wikipedia.org/wiki/Compilador
22
7. Proceso de grabación de un microcontrolador
Este paso incluye todo el proceso de compilación del archivo .ASM, hasta la
obtención de un archivo .HEX. Para ello, en el proceso se determina si existen
errores de sintaxis en el .ASM creado (esto puede ser obviado si el archivo .ASM ha
sido generado por un programa o en un IDE). En caso de no existir errores, se
procede a la obtención del archivo .HEX por medio de un programa llamado
ensamblador. El archivo .HEX (hexadecimal) constituye un archivo en lenguaje
máquina que es el que será grabado en el microcontrolador. Existen ensambladores
muy populares, siendo el más utilizando el ensamblador MPASM de Microchip.
23
Paso 4: Simular el programa
Para el Paso 2, se tendrá una interfaz gráfica que permita representar el programa
que se desee crear en forma de un flujograma. Para el Paso 3, se hará uso del
ensamblador MPASM de Microchip. Para el Paso 4, se utilizará un módulo de
prueba en que, por medio de una representación gráfica del microcontrolador, se
logre determinar el resultado producido por el programa en sus salidas. Para el paso
5, se empleará el programador IC-PROG, en conjunto con un grabador JDM para
las pruebas respectivas.
24
a. Programa Ensamblador
I. Definición
MPASM
Assembler Programmer
code.asm MCU
code.hex
11
Wikipedia. 2008. Ensamblador. Consultado 4 de Junio de 2008. Disponible en
http://es.wikipedia.org/wiki/Assembler
25
El MPASM es un archivo ejecutable que no posee interfaz gráfica por sí misma.
Aunque es utilizado en el IDE MPLAB, funciona también de manera independiente,
mediante línea de comandos.
b. Programador
I. Definición
26
B. Hipótesis
A. Justificación
27
B. Objetivos
1. Objetivo General
2. Objetivos Específicos
C. Alcances y Limitaciones
28
CAPÍTULO IV. METODOLOGÍA DE LA INVESTIGACIÓN
A. Tipo de Investigación
Se dice que es descriptiva debido a que se utiliza para describir una realidad, y tiene
como objetivo presentar una interpretación correcta de ésta. Es, a la misma vez,
una investigación exploratoria dado que el producto que se pretende obtener no ha
sido creado anteriormente con los parámetros propuestos, y por tanto, aunque se
basa en documentación y software existente, genera un sistema nuevo e innovador,
particularmente para la unidad de análisis en que será aplicado.
B. Unidades de Análisis
12
Grajales G, Tevni. 2000. Tipos de Investigación. Consultado 24 de Abril de 2008. Disponible en
http://tgrajales.net/investipos.pdf
13
Introducción a la Metodología de la Investigación Edición Electrónica. 2006. p. 26
29
Estudiantes: constituyen todos los alumnos de las carreras de Ingeniería en
Sistemas Computaciones e Ingeniería Eléctrica que cursen las materias Sistemas
Digitales, Sistemas Automatizados, u otra en las que se haga uso de
microcontroladores. Serán los principales usuarios del sistema.
Catedráticos: se refiere a los profesionales que tengan bajo su cargo las materias
que incluyan en su marco de enseñanza la utilización de microcontroladores.
C. Variables y su Medición
30
2. Indicadores y su medición u observación
Tabla 4. Relación entre variables y sus indicadores para la unidad de análisis Estudiantes
UNIDAD DE VARIABLES INDICADORES INSTRUMENTO DE TÉCNICA A
ANÁLISIS MEDICIÓN U APLICAR
OBSERVACIÓN
- Grado de dificultad en el
empleo de las herramientas
de grabación de
microcontroladores
- Tiempo de práctica
dedicado al uso de los
microcontroladores
- Sistema Operativo
Tabla 5. Relación entre variables y sus indicadores para la unidad de análisis Instructores
UNIDAD DE VARIABLES INDICADORES INSTRUMENTO DE TÉCNICA A
ANÁLISIS MEDICIÓN U APLICAR
OBSERVACIÓN
31
Tabla 6. Relación entre variables y sus indicadores para la unidad de análisis Catedráticos
UNIDAD DE VARIABLES INDICADORES INSTRUMENTO DE TÉCNICA A
ANÁLISIS MEDICIÓN U APLICAR
OBSERVACIÓN
a. Instrumentos de Medición
La técnica documental sirvió para obtener información que permitió dar un uso
correcto y optimizado de la tecnología existente en el proceso de creación del
software. Para ello, se llevó a cabo una revisión bibliográfica extensa en diversos
medios, tanto en internet como en documentos bibliográficos.
32
áreas de informática y de electrónica, para aspectos puntuales sobre los cuáles
existieron dudas o dificultades.
1. Recopilación de Información
a. Encuesta
Se realizó una encuesta a los estudiantes de Ingeniería en Sistemas
Computacionales e Ingeniería Eléctrica de la Universidad de Sonsonate con el fin de
conocer las dificultades con que se enfrentaron en el curso de materias tales como
Sistemas Digitales, Sistemas Automatizados u otras relacionadas con los
microcontroladores (ver Anexo 2).
33
2. Interpretación de Resultados
Encuesta realizada.
Pregunta No. 1
¿En qué materia(s) estudió y/o utilizó microcontroladores?
Los resultados obtenidos de las encuestas reflejan que un 50% de los estudiantes
utilizaron microcontroladores en las prácticas de la materia Electrónica y el restante
en las demás materias como se muestra en el gráfico.
Pregunta No. 2
¿Con qué frecuencia practicó con microcontroladores, en los laboratorios de las
respectivas materias?
34
Los resultados obtenidos de las encuestas muestran que un 56% de los estudiantes
se integraron pocas veces en las prácticas de microcontroladores.
Pregunta No. 3
¿En qué grado se le dificulta el manejo de los microcontroladores?
Los Resultados de las encuestas reflejan que un 67% de los encuestados considera
que existe una dificultad de nivel medio, en el manejo y uso de microcontroladores.
Pregunta No. 4
Numere del 1 al 4 las partes del proceso de grabación del microcontrolador que se
le dificultan más, siendo 1 el más difícil y 4 el menos difícil:
35
Según la recopilación de encuestas el 40% de los estudiantes consideran que el
aprendizaje del Lenguaje Ensamblador, es lo más dificultoso del análisis e
implementación de microcontroladores.
Pregunta No. 5
¿Cómo considera la programación en Lenguaje Ensamblador?
Pregunta No. 6
¿Qué opción de las siguientes considera más necesario para facilitar las prácticas
con microcontroladores?:
36
Los resultados de las encuestas reflejan que un 78% de los estudiantes consideran
que es necesario más tiempo para las prácticas de implementación de
microcontroladores.
Pregunta No.7
¿Considera el conocimiento y uso de microcontroladores como algo importante para
su carrera?
Pregunta No. 8
¿Opina que sería útil una herramienta que integrara todo el proceso de grabación
del microcontrolador, desde su programación hasta su quemado?
37
El análisis de recopilación de datos refleja que el 100% de los estudiantes opinan
que un software integrado sería muy útil para el desarrollo con microcontroladores.
Pregunta No. 9
¿Qué tanto mayor valor considera que le agregaría si esa herramienta tuviera una
interfaz que proporcionara herramientas gráficas que evitaran tener que programar
en ensamblador?
E. Plan de Proyecto
39
CAPÍTULO V. PROPUESTA TÉCNICA
1. Generalidades de la empresa
B. Requisitos
40
lenguaje Ensamblador, se proporcionará un sistema innovador y amigable que
agilizará el proceso de grabación de microcontroladores y facilitará la labor del
usuario. Esto ayudará en gran medida y estimulará a que el estudiante piense de
una forma lógica los problemas propuestos para ser integrados en los
microcontroladores. Tomando en cuenta que en la actualidad la forma de desarrollar
los proyectos con microcontroladores, es bastante tediosa por el hecho de utilizar el
lenguaje Ensamblador para programar, el sistema propuesto será una herramienta
muy preciada porque ésta facilitará el modo en que se programan los
microcontroladores.
3. Requerimientos funcionales
41
Usuario: representa tanto a los estudiantes de Ingeniería en Sistemas
Computacionales e Ingeniería Eléctrica de la Universidad de Sonsonate
como a cualquier persona que hará uso del sistema.
b. Identificación de escenarios
42
Convertir flujograma en código Ensamblador: Este escenario permite obtener
las instrucciones del programa en Lenguaje Ensamblador, para su estudio o
como paso previo a la grabación del microcontrolador.
Ingresar al IDE
<<
ex
ten
<<
ex
<<
d>
<<
ten
ex
>
e
ten
xte
d>
Dibujar flujograma
>
nd
d>
>>
>
<<include>>
d or
cia
i ni
Simular flujograma
dor
inicia
inicia <<include>>
dor
Usuario i ni
cia
do Convertir flujograma a
r
código Ensamblador
<<include>> MPASM
>
>
d>
d>
>
ten
ten
d>
Grabar
ex
ex
ten
microcontrolador
>
<<
<<
d>
ex
ten
<<
ex
<<
IC-PROG
Cargar proyecto
Microcontrolador-JDM
43
II. Diagrama de estados
Ingresar al IDE
Modificar
Mostrar proyectos proyecto
Solicitar acción
almacenados
Seleccionar Nuevo
proyecto flujograma
Solicitar nombre y
Cargar proyecto en el
ubicación de
IDE almacenamiento
Nombre y
ubicación
especificados
Cargar área de
trabajo de proyecto
44
Caso de Uso: Dibujar flujograma
Retornar a
pantalla de Ofrecer herramientas
edición de diseño de
flujograma
Seleccionar
figura
Agregar figura
Flujograma
diseñado
Error en
diagramación
Notificar error en
Validar diagramación
diagramación
Flujograma
validado
Guardar flujograma
Flujograma
almacenado
Diagrama
correcto
Reconocer las
variables
Terminar
proceso
Variables
reconocidas
Ejecutar flujograma
Flujogram
a recorrido
Obtener salida
Llamar figura
Modificar de simulación
valores de
Establecer
entrada Mostrar figura de
parámetros de
simulación
simulación
Resultado de
Ingresar parámetros simulación
45
Caso de Uso: Convertir flujograma en código Ensamblador
Solicitar compilación
Error de
compilación
Compilar
Solicitar
guardar el
resultado
Terminar
proceso Almacenar archivo
.ASM
Archivo .ASM
almacenado
Archivo .ASM
no existe Notificar de error de
Solicitar archivo .ASM
grabación
Seleccionar
archivo .ASM
Convertir a Terminar
Hexadecimal proceso
Archivo .HEX
creado
Grabador no
Notificar de error de conectado Verificar enlace con
grabación grabador
Grabador
conectado
Grabar instrucciones
Terminar en microcontrolador
proceso
Microcontrolador
grabado
46
III. Descripción de los casos de uso
47
Flujo principal 1. El usuario selecciona crear un
nuevo proyecto.
2. El usuario especifica el nombre del
proyecto y la ubicación de
almacenamiento.
3. Se realiza la carga del área de
trabajo.
Subflujos S1:
1. En el paso 1, el usuario podría
elegir modificar un proyecto ya
existente, para lo cual se abre un
cuadro de diálogo con los proyectos
almacenados.
2. El usuario selecciona el proyecto
que desee modificar, y éste se
carga en el área de trabajo.
48
ellas.
3. El usuario elige almacenar el
flujograma.
Subflujos S1:
1. En el paso 2, podría ocurrir un error
de diseño en el flujograma, que
sería notificado al usuario.
49
Subflujos S1:
1. En el paso 1, podría ocurrir que al
validar el flujograma se encuentre
un error en la lógica del diseño, lo
cual se notificaría al usuario.
S2:
1. En el paso 5, al dibujarse la figura
de simulación, se pueden
establecer parámetros para
observar el comportamiento de la
salida en diferentes entornos.
50
en la compilación debido al diseño
del flujograma, el cual deberá ser
notificado al usuario.
Subflujos S1:
1. En el paso 3, podría ocurrir que el
grabador no esté conectado a la
computadora, y el proceso sería
interrumpido.
51
S2:
1. En el paso 1 podría ocurrir que no
existiera el archivo .ASM, y el
proceso de grabación sería
interrumpido.
52
5. Requerimientos no funcionales
53
a. Matriz de Componentes
Recursos de Hardware
Recursos de software Recursos de Personas
y Redes
Recursos de Producto de
Actividades
Datos Información
Equipo Medio Programa Procedimiento Especialistas Usuarios
54
b. Requerimientos de Hardware y Software
I. Requerimientos de Hardware
Para el desarrollo:
Es necesario un equipo que cumpla con las siguientes características como mínimo:
El software necesario para el desarrollo y utilización del sistema debe cumplir las
siguientes características:
Para el desarrollo:
55
- Netbeans 6.1
- Compilador de archivos asm MPASM
- Grabador de microcontroladores IC-PROG
c. Requerimientos de Entrada
Tecnología
- Teclado
- Mouse
Documentos
56
d. Requerimientos de Salida
Tecnología
- Pantalla o monitor
- Impresores
- Dispositivo de grabado de microcontroladores (JDM)
Documentos
f. Requerimientos de Almacenamiento
57
C. Análisis
clsCargarIDE
I. Principal del IDE
clsGuardar
I. Área de Trabajo
58
clsValidarFlujograma
clsGuardar
clsValidarFlujograma
I. Simulación
clsEjecutarFlujograma
clsConvertirASM
59
Caso de Uso: Grabar microcontrolador
I. Área de Trabajo
Ficha HEX clsGrabar
I. Puerto Serie
b. Diagrama de clases
Usuario
Usuario
I. Área de Trabajo
60
Caso de Uso: Dibujar flujograma
Usuario
clsValidarFlujograma
I. Simulación
clsEjecutar
Usuario
clsValidarFlujograma
61
Caso de Uso: Convertir flujograma en código Ensamblador
Usuario
Ficha HEX
I. Puerto Serie
Microcontrolador-JDM IC-PROG
Estudiante MPASM
Ficha ASM
62
c. Diagrama de colaboración
1. Ingresar al IDE
1 2
2. Gestionar operación
3, 4 3. Cargar y mostrar Interfaz del IDE
I. Principal del IDE clsCargarIDE 4. Notificar error por falta de recursos y cerrar IDE
Usuario
7
8 1. Crear un nuevo proyecto
2. Gestionar operación elegida
clsGuardar Ficha Proyecto 3. Mostrar cuadro de diálogo
4. Solicitar nombre de archivo y ubicación de
9 almacenamiento
6
5. Especificar nombre y ubicación
6. Enviar parámetros para archivo a almacenar
7. Almacenar archivo
1,5,11,14 2,12,15
8. Archivo almacenado correctamente
3,4,13 9. Notificar almacenamiento
I. Principal del IDE clsCargarProyecto 10. Abrir área de trabajo
11. Seleccionar abrir proyecto existente
Usuario 12. Gestionar operación
10,
13. Mostrar proyectos existentes
16
14. Seleccionar proyecto
15. Gestionar selección
16. Cargar proyecto seleccionado en área de trabajo
I. Área de Trabajo
7
1. Arrastrar figuras al área de trabajo
2. Gestionar operación
3. Dibujar figura en área de trabajo
1,6 2 4. Validar coherencia de las relaciones entre figuras
3 5. Validación correcta
I. Área de Trabajo clsFiguras 6. Seleccionar guardar flujograma
7. Gestionar operación
Usuario 5 4 8. Guardar flujograma
clsValidarFlujograma
63
Caso de Uso: Simular flujograma
8,11
I. Simulación
clsEjecutar
1. Elegir opción de simulación de flujograma
7, 2. Gestionar operación
10 3. Comprobar lógica del diagrama
4. Lógica correcta
5. Reconocer las variables
1 2,5 6. Variables procesadas
7. Correr el flujograma
6
8. Mostrar figura de simulación
I. Área de Trabajo clsSimular 9. Notificar de lógica incorrecta
10. Agregar valores en las entradas
Usuario 4, 11. Obtener nueva figura de simulación
9 3
clsValidarFlujograma
1,6 2
3,9 1. Elegir opción de compilación de flujograma
I. Área de Trabajo clsConvertir 2. Gestionar operación
3. Obtener información para compilación
Usuario 4, 4. Iniciar compilación
5
7 5. Mostrar código Ensamblador
6. Solicitar guardar archivo ASM
7. Gestionar operación
8 8. Almacenar código Ensamblador
9. Notificar error en el flujograma
12
14 14 13
Ficha HEX
I. Puerto Serie 1. Elegir opción grabar microcontrolador
Microcontrolador-JDM IC-PROG 2. Gestionar operación
7 6 3. Buscar archivo .ASM
10, 11 4. Devolver .ASM
9
16 5. Enviar parámetros de conversión
6. Grabar .HEX
7. Devolver información
8. Conversión exitosa
1 2 5
9. Verificar enlace con grabador
15,17,18 8 10. Grabador conectado
I. Área de Trabajo clsGrabar 11. Enviar parámetros de grabación
12. Buscar Archivo .HEX
Estudiante MPASM 13. Devolver Archivo .HEX
4 3 14. Grabar instrucciones en microcontrolador
15. Notificar grabación exitosa
16. Grabador no conectado
17. Notificar y terminar proceso
18. Archivo .ASM no existe. Notificar y terminar proceso
Ficha ASM
64
d. Flujo de eventos
65
Caso de Uso: Simular flujograma
El usuario solicita la simulación del flujograma (1), se gestiona la operación (2), el
gestor de validación comprueba la lógica del diagrama (3), el gestor de validación
aprueba la lógica del diagrama (4), el gestor de simulación reconoce las variables
(5), el gestor de simulación envía las variables procesadas (6), el gestor de
ejecución corre el flujograma (7), el gestor de ejecución despliega las figura de
simulación (8), de lo contrario el gestor emite lógica incorrecta (9), de lo contrario
puede solicitar agregar valores en las entradas de simulación (10), y se obtiene una
nueva figura de simulación (11).
66
2. Análisis de clases
Solicitar ubicación de
almacenamiento de proyecto.
clsGuardar Guardar proyecto.
67
Caso de Uso: Dibujar flujograma
Solicitar ubicación de
almacenamiento de proyecto.
clsGuardar Guardar proyecto.
68
Clase Control Responsabilidades
69
Integrar instrucciones de salida.
Almacenar archivo .ASM creado.
3. Análisis de la Decisión
70
así como sus - Fácil obtención del objetos.
herramientas. software para el -Es un lenguaje
- Soporta la Orientación a desarrollo de la IDE. interpretado u no
Objetos. - Existe la Bibliografía necesita de la fase de
- Fácil obtención del necesaria para la compilado, lo que
software para el utilización del software. aumenta la velocidad del
desarrollo de la IDE. desarrollo enormemente.
- Lenguaje muy utilizado -La administración de la
para la interacción con memoria es manejado
dispositivos electrónicos. por el lenguaje.
- Existe la Bibliografía -Es un lenguaje
necesaria para la dinámico, por lo que el
utilización del software. software escrito es
instalado como código
fuente.
Herramientas/ - Java Enterprise Edition - Visual C++ 6.0 -Interprete de Ruby en su
Software Necesario J2EE -MPASM versión 1.8 o superior.
-MPASM -IC-PROG -MPASM
-IC-PROG -IC-PROG
Arquitectura del - Arquitectura de - Arquitectura de -Arquitectura de
Sistema Escritorio Escritorio Escritorio
Dispositivos de - Impresor y Circuito - Impresor y Circuito -Impresor y Circuito
Salida Electrónico Grabador. Electrónico Grabador. Electrónico Grabador.
Dispositivos de - Teclado y Mouse. - Teclado y Mouse. -Teclado y mouse
Entrada
Dispositivos de - Disco Duro de 80 Gb. - Disco Duro de 80 Gb. -Disco duro de 80GB
Almacenamiento
71
necesidades del sistema necesidades del sistema alternativa bastante
y por ser un lenguaje en y pero carece de buena, en el medio no
expansión y creado para factibilidad operativa por se encuentra mucha
la orientación a objetos, la poca utilización del documentación sobre él,
contiene una cantidad lenguaje en la lo que lo hace difícil de
de herramientas que lo actualidad. aprender y por ello, una
hacen adaptable Puntaje: 70% baja factibilidad
fácilmente al software a operativa.
desarrollar. Puntaje: 60%
Puntaje: 100%
VIABILIDAD 25% - Técnicamente es muy - Técnicamente es - En la parte técnica, el
TECNICA viable ya que la menos viable ya que la lenguaje Ruby es open
tecnología utilizada para tecnología utilizada source, por lo cual, fácil
el desarrollo de esta necesita de una licencia, de adquirir, pero no
alternativa es bastante aunque puede ser cuenta con muchas
fácil de adquirir y en su utilizada sin ningún herramientas para
mayoría es open source. problema. desarrollar programas
Puntaje: 80% Puntaje: 75% en él, y las que hay
necesitan de una
licencia. Puntaje: 70%
VIABILIDAD 25% - Esta alternativa cuenta - Esta alternativa es -Económicamente, esta
ECONOMICA con buena viabilidad menos viabilidad alternativa es bastante
económica el lenguaje económicamente ya que viable, porque el
de programación a la licencia del lenguaje lenguaje Ruby es open
utilizar y sus de programación a source y su adquisición
herramientas es open utilizar implica un costo es gratis, pero si se
source, lo que solo de adquisición, además desea adquirir un
implicaría gastos de gastos de hardware. Entorno de Desarrollo
hardware. Puntaje: 80% Integrado para este
Puntaje: 95% lenguaje, se debe
adquirir una licencia
para su uso.
Puntaje: 80%
VIABILIDAD 10% Doce meses Doce meses Doce meses
CALENDARIO Puntaje: 100% Puntaje: 100% Puntaje: 100%
TOTALES 100% 93.75% 81.25% 71.5%
72
c. Determinar el Diseño de la Alternativa Propuesta
ENTORNO DE DESARROLLO
INTEGRADO (IDE)
IDE
xxxxxxxxxxxx
xxxxxxxxxxxx
xxxxxxxxxxxx
xxxxxxxxxxxx
xxxxxxxxxxxx
MPASM
.hex
IC-PROG Code.asm Code.hex
xxxxxxxxxxx hhhhhhhhhh
xxxxxxxxxxx hhhhhhhhhh
xxxxxxxxxxx hhhhhhhhhh
xxx
xxxxxxxxxxx hhhhhhhhhh
xxx
xxx
Grabar en
xxx
Microcontrolador Compilar Programa
73
D. DISEÑO
a. Objetivo General
b. Objetivos Específicos
2. Diseño de la arquitectura
74
componentes externos como lo son un circuito diseñado específicamente para
grabar un microcontrolador (JDM), que se conecta directamente al puerto serial.
I. Capa de Datos
La capa de procesos esta representada por las diferentes clases que componen el
sistema y que hacen posible el desarrollo de cada una de las fases del proceso de
programación y grabación de un microcontrolador. Las clases fueron diseñadas en
el lenguaje de programación Java, apoyado con la IDE NetBeans.
75
c. Identificación de nodos y configuraciones
MPASM
Estación
Usuario IC-PROG
Microcontrolador-JDM
Estación
Interfaz Principal
del Sistema
76
3. Diseño de Casos de Uso
77
Caso de Uso. Dibujar Flujograma
Clase de Análisis Clase de Diseño Requisitos de Diseño
Capa de Interfaz
I. Area de Trabajo clsInterfazPrincipal Activa
Capa de Proceso
clsCargarIDE clsCargarIDE Activa
clsGuardar clsCtrPanelFiguras
libJGraphX
clsAccionGuardar
AdministrarProyectos
AdministrarConfiguraciones
AdministrarVariables
Capa de Datos
entProyectosXml
entMFE
entCFG
78
Caso de Uso. Convertir Flujograma en código Ensamblador
Clase de Análisis Clase de Diseño Requisitos de Diseño
Capa de Interfaz
I. Area de Trabajo clsInterfazPrincipal Activa
Capa de Proceso
clsCargarIDE clsCargarIDE Activa
clsGuardar clsConvertirASM
AdministrarConfiguraciones
AdministrarVariables
Capa de Datos
entASM
Capa de Proceso
clsCargarIDE clsCargarIDE Activa
clsGuardar clsGrabar
Capa de Datos
entASM
entHEX
79
b. Interacción entre objetos
Camino Principal
Usuario
1. Solicitar cargar IDE 2. Gestionar operación 3. Solicitar carga de
4. Solicitar carga de
Menú Principal
Información
5. Envío de
Información
6. Solicitar Información de Etiquetas
8. Menú gestionado 7. Envío de Información
Camino Principal
Camino Alternativo 1
81
Caso de Uso. Dibujar Flujograma
Camino Principal
clsInterfazPrincipal clsCargarIDE clsPanelFiguras libJGraphX clsAccionGuardar AdministrarVariables AdministrarConfiguraciones entCFG AdministrarProyectos entProyectosXML entMFE
Usuario
1.Selecciona y 2. Solicitar gestión
Arrastra Figura de peticion 3. Solicita la
carga de figura
4. Inicializar el
5. Envía
arrastre de la
parámetros de
figura
figura
6. Solicitar gestión 7. Gestionar 8. Buscar figura
mostrar figura operación seleccionada
11. Despliegue de 9. Información
figura sobre el área 10. Petición
sobre figura
de trabajo gestionada.
12. Solicitud de
creación de variable
13. Crear Variable
14. Guarda Variable
15. Información
17. Solicitud de
16. Petición gestionada
modificar
configuraciones
18. Modificar Configuraciones 19. Guarda
configuración
20. Información
21. Petición gestionada
22. Solicitud de
almacenamiento
23. Gestionar almacenamiento 25. Guarda
24. Guardar información de proyecto
información
26. Información
28. Información
30. Información para el Usuario 29. Información sobre proyecto
Camino Alternativo 1
16. Información
Camino Alternativo 2
14. Solicitud de
Almacenamiento
15. Negación de
solicitud 16. Gestionar
Operación
83
Caso de Uso. Simular Flujograma
Camino Principal
Camino Principal
Usuario
1.Seleccionar opción 2. Solicitar gestión
Simular 3. Envío de parámetros
de peticion para gestionar
4. Solicitar
5. Gestiona operación reconocimiento de flujo
6. Devuelve 7. Gestiona operación
secuencia de figuras 8. Despliega ventana
de Simulación de Simulación 10. Cargar
9. Ejecutar Simulación información
15. Despliegue de 12. Envío de
14. Petición 13. Información sobre 11. Devolución
figura sobre el área de parámetros
gestionada. simulación
trabajo
Camino Alternativo 1
Usuario
1.Seleccionar opción 2. Solicitar gestión
Simular 3. Envío de parámetros
de peticion para gestionar
4. Solicitar
5. Gestiona operación reconocimiento de flujo
6. Devuelve 7. Gestiona operación
secuencia de figuras 8. Despliega ventana 10. Cargar
de Simulación
de Simulación 9. Ejecutar Simulación información
15. Despliegue de 13. Información sobre 12. Envío de
14. Petición 11. Devolución
figura sobre el área de simulación parámetros
gestionada.
trabajo
16. Modificar Entradas 17. Petición de 18. Gestiona operación
19. Despliega ventana
Gestión de Simulación
de Simulación 21. Cargar
20. Ejecutar Simulación información
23. Envío de
26. Despliegue de 24. Información sobre 22. Devolución
25. Petición parámetros
figura sobre el área de simulación
gestionada.
trabajo
Camino Alternativo 2
Usuario1.Seleccionar opción
2. Solicitar gestión
Simular de peticion 3. Envío de parámetros
para gestionar
4. Solicitar
reconocimiento de
flujo
5. Gestiona operación
6. Devuelve 7. Gestiona operación
secuencia de figuras de Simulación
8. Secuencia
9. Mensaje de Incorrecta
Simulación erronea
84
Caso de Uso. Convertir Flujograma en código Ensamblador
Camino Principal
Usuario1.Seleccionar opción
2. Solicitar gestión 3. Envío de parámetros
Convertir en ASM de peticion para gestionar 4. Cargar Información
5. Devolución
6. Cargar Información
8. Solicitar
reconocimiento de 7. Devolución
flujo
9. Gestiona operación
Camino Principal
7. Gestiona conversión
a HEX 8. Ruta de Archivo ASM 9. Grabar .HEX
85
4. Identificación de operaciones de clases de diseño
clsCargarIde
- Es el controlador general del sistema
- Carga la interfaz principal y los módulos del sistema
- Envía parámetros necesarios para cada módulos
- Se comunica con cada uno de los sistemas externos MPASM e IC-PROG
- Carga el panel propiedades
clsCtrBarraMenu
- Carga el menú del sistema
- Permite acceder a cada uno de las opciones establecidas
clsCtrAcercaDe
- Carga la información general del sistema
- Permite conocer sus creadores y versión del sistema
clsCtrPanelFiguras
- Carga cada una de las figuras para dibujar los diagramas
- Enlaza las figuras con la librería JGraphX
- Valida las figuras, hasta que se sueltan en el área de trabajo
clsCtrBarraHerram
- Carga las opciones de la barra de herramientas del sistema
- Enlaza las opciones con cada uno de los módulos relacionados
clsAccionAbrir
- Busca una ruta especificada
- Se encarga de cargar en el área de trabajo el diagrama
- Lee los archivos entProyectosXML, entMFE y entCFG
clsAccionNuevo
- Busca una ruta especificada
- Se encarga de cargar el área de trabajo en blanco
- Lee los archivos entProyectosXML, entMFE y entCFG
86
clsAccionGuardar
- Guarda el diagrama en el archivo entMFE y entCFG
libJGraphX
- Ejecuta el código necesario para mostrar las figuras
- Aporta las propiedades y eventos a las figuras
- Adhiere las figuras al área de trabajo
clsSimulacion
- Se encarga de recoger los parámetros del diagrama
clsEjecutar
- Se encarga de mostrar en tiempo real los resultados de la simulación
clsConvertirASM
- Se encarga de recoger los parámetros para la conversión del diagrama a lenguaje
Ensamblador
- Se encarga de convertir paso a paso, ósea figura por figura, el diagrama a código
clsGrabar
- Se encarga de enviar los parámetro a los programas necesarios para la grabación
- Interactúa con los programas externos MPASM e IC-PROG
AdministrarProyectos
- Administra los proyectos
- Realiza procedimientos de reconocimiento
AdministrarConfiguraciones
- Administra las configuraciones generales de los proyectos
AdministrarVariables
- Administra las variables de los proyectos
87
5. Diseño de prototipo
Ingreso
-Nuevo Diagrama
Ingresando al IDE
-Cargar Diagrama
-Salir
Salir
Cancelar
-Salir
-Aceptar -Aceptar
-Cancelar -Cancelar
Cancelar
Cancelar
88
Caso de Uso. Dibujar Flujograma
Seleccionar
Menú Principal Área de trabajo Figura Pantalla Adm. Variables
Aceptar o
-Seleccionar en Panel de Cancelar
Figuras Crear
-Nuevo Diagrama Nuevo Diagrama -Configuraciones generales variables -Crear y Configurar
-Cargar Diagrama -Cargar Proyecto
-Crear Variables
-Guardar ...
-Aceptar
-Salir
-Cancelar
Aceptar o
-Nuevo
Cancelar -Especificar Ubicación y
-Abrir -Seleccionar opción
-Eliminar nombre de archivo
Cancelar
Cambiar
Menú Principal Área de Trabajo Pantalla de Simulacíón
entradas
-Simular
Cargar Diagrama -Configuraciones generales
-Nuevo Diagrama Simular
-Convertir a Ensamblador -Cambiar entradas
-Cargar Diagrama -Grabar Microcontrolador
...
-Simular
-Salir
-Salir
Nuevo Diagrama
Mensaje
Continuar Salir
Crear Diagrama
89
Caso de Uso. Convertir Flujograma en código Ensamblador
-Simular Convertir a
Cargar Diagrama -Convertir a Ensamblador Ensamblador
-Nuevo Diagrama -Configuraciones generales -Confirmación de conversión
-Cargar Diagrama -Grabar Microcontrolador
...
-Convertir
-Salir
-Cancelar
Nuevo Diagrama
Mensaje
Continuar
Crear Diagrama
Cancelar
-Simular Grabar
Cargar Diagrama -Convertir a Ensamblador microcontorlador
-Nuevo Diagrama -Configuraciones generales -Confirmación de grabación
-Cargar Diagrama -Grabar Microcontrolador
...
-Grabar
-Salir
-Cancelar
Nuevo Diagrama
Mensaje
Continuar
Crear Diagrama
Cancelar
90
E. CONSTRUCCIÓN E IMPLANTACIÓN
Para el desarrollo del Entorno de Desarrollo Integrado (IDE) se utilizó dos sistemas
externos: MPASM e IC-PROG de Microchip que desarrollan importantes procesos
para la funcionalidad del IDE, además del lenguaje de programación Java2EE con
el que se desarrollaron los módulos necesarios para las operaciones de todo el
entorno, y que ayudan a concretar la programación de microcontroladores
PIC16f84.
Para obtener un mejor detalle de la implementación de las clases para las diferentes
operaciones del sistema se muestra el siguiente esquema:
91
clsCtrAcercaDe
Cargar clsAccionAbrir
AdministrarVaribles Proyecto
clsAccionNuevo
clsCtrPanelFiguras
Dibujar clsAccionGuardar
Flujograma
libJGraphX clsSimulacion
Simular
Flujograma
AdministrarConfiguraciones
clsCargarIDE
Convertir
flujograma en
codigo clsConvertirASM
ensamblador
Grabar clsGrabar
Microcontrolador
Las pruebas son elementos críticos para la garantía de la calidad del software, en
cuanto a su funcionalidad y rendimiento. El objetivo de la etapa de pruebas es
garantizar la calidad del producto desarrollado, ya sea con un óptimo desarrollo o
por medio de la corrección de errores.
A continuación se detallan algunos tipos de prueba:
I. Pruebas de Unidad
92
sistema. Para esto se utiliza el método de la caja blanca, el cual consiste en
examinar el código interno de cada clase hasta completar cada módulo.
93
2. Implantación del Software
a. Implantación de la arquitectura
I. Diagrama de componentes
PRESENTACION
Interfaz Java
PROCESOS
MPASM
DATOS Clases Java
IC-PROG
ProyectosXML libJGraphX
*.mfe
*.asm
*.cfg
*.hex
b. Plan de Implantación
Al realizar las pruebas de implantación y aceptación del sistema, para que este
funcione en su totalidad, este debe responder a los siguientes propósitos:
94
tales como facilidad de uso y optimización del tiempo para desarrollo de
programas.
c. Capacitación a Usuarios
Los usuarios finales del Entorno de Desarrollo Integrado (IDE) contaran con
documento llamado “Manual del Usuario” (ver anexo “4”) en el cual se describirá
detalladamente el manejo, utilización y el acceso al contenido del entorno.
Para una buena complementación y enriquecimiento acerca del manejo y uso del
sistema, el usuario final además de contar con un manual, contara también con
capacitaciones las cuales lo beneficiaran un mas, ya que tendrá la oportunidad de
realizar prácticas de prueba acerca del manejo del sistema y realizar preguntas al
instructor de la materia correspondiente en caso de surgir alguna duda.
95
CAPITULO VI. ESTUDIO ECONÓMICO
El Estudio Económico del proyecto tuvo como fin conocer las inversiones
indispensables que permitieron el desarrollo del sistema, también se refleja el
capital de trabajo necesario para elaborar y mantener el sistema en correcto
funcionamiento.
Factibilidad Operativa
Factibilidad Técnica
96
programación, de esta manera la creación del sistema es factible ya que está
acorde a nuevas tecnologías que ayudan a facilitar la programación de
microcontroladores.
Factibilidad Económica
1. Costos fijos
97
Material para realizar $70 $70
pruebas
Viáticos $300 $300
Imprevistos $107.40
TOTAL $1,181.40
2. Costos variables
Energía Eléctrica:
98
Costo Total Anual
Para determinar los beneficios del sistema, evaluaremos la situación actual contra
las mejoras producidas por la implementación del sistema, para ello se hizo una
comparación de costos aproximada en base a las experiencias por parte de los
instructores, respecto al tiempo que se necesita para enseñar a un alumno, a
programar e implementar un microcontrolador en un circuito electrónico.
A continuación mostraremos la evaluación en una tabla comparativa
Situación Implementación
Costo Costo
Actual del Sistema Horas Ahorro
Actividad Actual Sistema
H. Costo H. Costo al año al año $
$ $
clase $ clase $
Enseñanza
Básica de
3 9 1 3 12 108 36 72
Lenguaje de
Programación
Desarrollo de
programación
1 3 0.3333 1 10 30 10 20
para un
ejercicio
99
sistema, sin embargo esto no está acorde a la realidad, ya que el sistema no genera
esos beneficios debido a que no importa lo que se tarde un instructor en la
enseñanza y práctica de microcontroladores, el resto del tiempo se utilizará en
desarrollar más ejemplos de implementación en otros circuitos electrónicos. Por lo
tanto, no importa cuánto se tarde el instructor o el alumno, el beneficio que se
genera es intangible ya que se reduce a la cantidad de experiencia y conocimientos
que el alumno obtiene, la Universidad de Sonsonate siempre desembolsará los
mismos gastos con respecto al pago de instructorías de laboratorio.
El análisis nos muestra el beneficio social que se genera, ya que los alumnos
obtienen mayor cantidad de conocimientos y experimentan con nuevas tecnologías,
que pueden inducirlos a investigar y aprender más a fondo distintas áreas de la
Ingeniería como es la electrónica, que es una fusión de Ingeniería Eléctrica y
Sistemas.
Por lo tanto aunque sea un beneficio intangible cumple con los objetivos de la
institución, que buscan crear mejores profesionales para las distintas áreas de
estudio.
100
CAPITULO VII. CONCLUSIONES Y RECOMENDACIONES.
A. Conclusiones
4. La utilización del IDE creado reduce los costos de materiales para circuitos
electrónicos, permitiendo pruebas de la ejecución del programa, antes de la
grabación en el microcontrolador.
B. Recomendaciones
101
2. Los estudiantes de las materias donde se hace uso de microcontroladores
deben tener conocimiento básico acerca de la programación estructurada y
sobre la utilización de los microcontroladores previo a utilizar el IDE en sus
prácticas de laboratorio; esto con el fin de aplicar la lógica estructurada en la
programación de los microcontroladores.
102
Referencias Bibliográficas
Gálvez Rojas, S; Mora Mata, MA. 2005. Java a tope: Traductores y compiladores
con Lex/Yacc, JFlex/Cup y JavaCC. Edición electrónica. España. Universidad de
Málaga. 307 p.
103
Wikipedia. 2008. Proceso de traducción de programas. Consultado 4 de Junio de
2008. Disponible en
http://es.wikipedia.org/wiki/Proceso_de_traducci%C3%B3n_de_programas
104
ANEXOS
105
3. ¿Constituirá 3. Validar el Software Aplicación:
el software software creado (IDE) - Funcionalidad del
una creado. IDE.
herramienta
que solvente - Amigabilidad de la
los interfaz.
problemas en - Grado en que
la agiliza el proceso de
programación grabación.
de
microcontrola
dores?
106
Anexo 2. Cuestionario
Universidad de Sonsonate
1. ¿En qué materia(s) estudió y/o utilizó microcontroladores? (marque todas las que
correspondan):
Sistemas Digitales
Sistemas Automatizados
Electrónica
Arquitectura de Computadoras
Otra. Especifique: ______________________
107
4. Numere del 1 al 4 las partes del proceso de grabación del microcontrolador que
se le dificultan más, siendo 1 el más difícil y 4 el menos difícil:
___ Análisis del problema
___ Programación en Lenguaje Ensamblador
___ Utilización de los programas para grabar
___ Elaboración del circuito
6. ¿Qué opción de las siguientes considera más necesario para facilitar las prácticas
con microcontroladores?:
Más horas de práctica
Más teoría previa sobre microcontroladores
Programas más fáciles de utilizar
Lenguaje de programación más fácil de aprender
8. ¿Opina que sería útil una herramienta que integrara todo el proceso de grabación
del microcontrolador, desde su programación hasta su quemado?
Sí No
9. ¿Qué tanto mayor valor considera que le agregaría si esa herramienta poseyera
una interfaz que proporcionara herramientas gráficas que evitaran tener que
programar en ensamblador?
Mucho valor Valor medio No proporciona valor extra
108
Anexo 3. Entrevista Estructurada
109
Si su respuesta es no, ¿qué
considera que le hace falta?
2 a 4 minutos Pregunta 7
En su opinión, ¿cumple el
software con el propósito de
apoyar la enseñanza-aprendizaje
de microcontroladores?
1 minuto Objetivo
Concluir la entrevista:
Agradecer al instructor
por su tiempo y
colaboración
27 minutos Tiempo estimado para preguntas y
objetivos
110
Anexo 4. Manual de Usuario
Manual de Usuario
µFlux
111
Índice
Contenido Pág.
112
Introducción
A continuación se presenta la guía gráfica para el uso del sistema µFlux; el mismo
ha sido editado pensando en todas y cada una de las actividades a desarrollar
durante el proceso de programación y grabación de un microcontrolador.
Es ideal para nuevos usuarios y los que ya tengan práctica previa con el sistema,
hallarán apoyo que requieran una explicación o simplemente como refuerzo.
113
Manual de Usuario de µFlux
Ingresar a µFlux
114
Nota: Si el sistema operativo es Windows Vista posiblemente genere el siguiente
mensaje.
µFlux.exe
Administrar Proyectos
Administrar Proyectos es una ventana que permite interactuar con los diversos
proyectos creados, modificándolos y eliminándolos, así como crear nuevos
proyectos, a continuación se detalla cada una de estas opciones:
Para buscar la Ubicación del proyecto dar clic en Examinar… y luego aparecerá el
cuadro de dialogo donde se buscará la ubicación deseada, luego dar clic al botón
Abrir.
Camino 2:
En el menú principal seleccionar la opción Archivo, luego dar clic en la opción
Nuevo Proyecto.
116
Para buscar la Ubicación del proyecto dar clic en Examinar… y luego aparecerá el
cuadro de dialogo donde se buscará la ubicación deseada, luego dar clic al botón
Abrir.
117
Eliminar un Proyecto de µFlux
118
Administrar de Variables en µFlux
En el Menú del sistema dar clic a Proyecto, luego dar clic en la opción Variables,
como se muestra a continuación:
119
Creación de variables en µFlux
Para crear una variable se da clic en el botón Nueva… y luego aparecerá una
ventana solicitando el Nombre; colocarlo y dar clic en el botón Agregar.
En esta sección se pueden controlar las opciones generales del proyecto, estas
opciones están dadas de acuerdo al tipo de reloj y entradas que estén conectadas,
todas estas opciones dependen del circuito electrónico en el que se implantará el
sistema.
120
Se recomienda que estas opciones sean modificadas antes de dibujar el diagrama,
para que los pines que se establezcan como entrada no puedan utilizarse como
salidas.
Para modificar estas opciones debe estar abierto el proyecto que se desea
modificar, luego se selecciona la opción Proyecto del menú principal y a
continuación se da clic en la opción Configuraciones Generales.
Luego aparecerá un cuadro en el cual se podrá establecer la velocidad del reloj, que
puede elegirse entre 32Mhz o 4Mhz; además se puede seleccionar cada pin que
sea entrada del sistema chequeándolo en la ventana.
Nota: El pin que sea seleccionado no podrá utilizarse posteriormente como salida.
Luego de elegir la velocidad del reloj y chequear la entradas de datos, dar clic en el
botón Aceptar.
121
Insertar una figura en µFlux
Para insertar cada figura es necesario dar clic y arrastrar manteniendo presionado el
botón del mouse hasta ubicar la figura sobre el lugar donde queremos insertarla; el
programa muestra el lugar donde se insertará la figura cambiando el bloque de la
línea de negro a azul, como se muestra a continuación:
122
Insertar un Proceso
Para asignar una igualación a la figura del proceso se utiliza el asistente del
programa; como primer paso dar clic sobre la figura del proceso, entonces
aparecerá en el panel de propiedades a la derecha, la siguiente opción:
123
Como siguiente paso dar clic en el botón que tiene tres puntos e inmediatamente
aparecerá la ventana del asistente, donde el sistema da opción de crear diferentes
tipos de expresiones, como son de Asignación, Suma, Resta, Incremento y
Decremento. Para seleccionar estos tipos lo único que debemos hacer es
desplegar el combo dando un clic sobre la flecha a su derecha.
Para mostrar la utilización de esta pantalla se muestra una de las expresiones más
complejas, que se pueden desarrollar en este sistema, se muestra paso a paso la
colocación de la expresión b=c+d.
124
A continuación como segundo paso, seleccionar en el primer combo de la izquierda
la variable “b”.
Para crear esta expresión de variable más variable, debemos dar clic en el punto
opcional colocado abajo, al lado izquierdo de la palabra variable, ya que si
seleccionamos el que está al costado de la palabra valor, estaremos creando una
expresión tipo b=c+3 o sea variable más valor. A continuación seleccionar del
segundo combo de la derecha la variable “c”.
125
Como cuarto paso se selecciona del combo de la derecha la variable “d”.
126
Cuando la expresión esté correcta, dar clic en el botón Aceptar, de lo contrario,
repetir el paso que sea necesario. A continuación se muestra la figura del proceso.
Insertar un Retardo
Para asignar tiempo a un retardo dar clic sobre el retardo y colocar el tiempo en el
espacio del panel de propiedades a la derecha, luego presionar la tecla Enter; el
tiempo está asignado en segundos y el sistema tiene un límite de 100 segundos.
127
Para agregar una condición a un hacer mientras se selecciona la figura y en el panel
de propiedades, dar clic en el botón con tres puntos, a continuación aparecerá el
siguiente asistente.
Como primer paso seleccionar la variable “d” del primer combo de la izquierda.
128
Como tercer paso seleccionar el panel variable dando clic sobre el punto a la
izquierda, luego extender el combo de las variables y elegir la variable “c”.
129
Si se desea una operación con un número, o sea d>3, solo se cambia la opción
para el punto del Valor y se asigna el valor 3.
Insertar un Si
La figura Si representa una condición que puede ser cumplida o no, es una sección
donde el programa en base a su lógica puede tomar uno de dos caminos.
Para agregar una condición a la figura Si, dar clic sobre la figura y en el panel de
propiedades a la derecha, dar clic sobre el botón que tiene tres puntos.
130
seleccionar cada uno debe darse clic en los puntos de opción correspondientes a la
izquierda de cada uno.
Para crear una condición que tenga que ver con un Pin del microcontrolador, se
debe tener en cuenta las entradas del sistema o sea los pines del microcontrolador
que estarán configurados como entrada; para configurar pines del microcontrolador
como entrada, ir a la sección Configuraciones Generales de este manual.
131
Para crear una condición con expresión lógica, dar clic en el botón opcional al lado
izquierdo de la palabra Variables, luego hay que establecer la expresión, para este
caso se mostrará como ejemplo la expresión b=a
Como segundo paso establecer el tipo de operación, para este caso es “=”,
seleccionar este signo del combo de la derecha.
132
Como tercer paso debemos establecer la variable “a”, para lo cual damos clic en el
cuadro opción de abajo, al lado izquierdo donde dice variable, luego se selecciona
del combo la variable “a”.
133
Para cambiar la condición a b>3, se deben cambiar la operación y dar clic en el
punto opción que se encuentra al lado izquierdo de la palabra Valor.
Salid
a
134
Las salidas son los pines activados o desactivados en distintos momentos del
programa, debido a que esa es la función principal de un microcontrolador, controlar
las salidas de cada uno de sus pines o patas comúnmente llamadas.
135
Simular un Programa
Para simular un programa lo único que debemos hacer es dar clic en el botón que
se muestra a continuación.
El botón Stop sirve para detener la simulación, y cuando se desee puede cancelarse
la simulación dando clic en el botón Aceptar.
136
Mostrar código Ensamblador
137
Nota: No olvidar generar el código ensamblador antes, de lo contrario estaría
mostrándose un código erróneo. Para generar un código ensamblador revisar el
tema anterior.
Para grabar un microcontrolador es muy sencillo, solo se debe dar clic en el botón
mostrado a continuación.
Se tiene la opción de generar un archivo .HEX, para utilización que el usuario pueda
utilizarlo en lo que estime conveniente. Para generar el archivo .HEX se debe dar
clic en el botón Generar archivo .HEX únicamente, inmediatamente se mostrará
una ventana con la ubicación donde se generó el archivo.
138
Ayuda de µFlux
Para acceder a la ayuda de µFlux, dar clic en la opción Ayuda y luego dar clic en la
opción Temas de Ayuda.
139