Académique Documents
Professionnel Documents
Culture Documents
Resumen Abstract
La problemática de la entrada/salida y su gestión suele The input/output (I/O) and its management is often part
formar parte de las asignaturas de introducción a la ar- of the introductory courses to computer architecture.
quitectura de computadores. La propia naturaleza del The very nature of this topic and its diversity makes
tema y su diversidad hace que las sesiones prácticas that the practice sessions often take place either on sim-
se lleven a cabo habitualmente, bien sobre dispositivos ple specific devices, or on simulators, which hide the
específicos sencillos, bien sobre simuladores, lo que complexity of actual I/O devices and subtracts their ap-
las aleja de los dispositivos reales y les resta vistosi- pealing.
dad. However, it is possible to use today existing and sim-
Sin embargo, es posible utilizar dispositivos actuales y ple devices such as Arduino boards to introduce stu-
sencillos, como las tarjetas Arduino, para presentar a dents to a more realistic and attractive vision of the I/O,
los estudiantes una visión más real y atractiva de la en- while maintaining the ease of use of the required envi-
trada/salida, manteniendo a su vez la sencillez de uso ronments and systems, which we consider a priority on
de los entornos y sistemas empleados, lo que conside- first degree courses.
ramos prioritario en los primeros cursos de grado. In our case, since currently we base our teaching on
En nuestro caso, puesto que actualmente fundamenta- computer architecture on the ARM architecture, we
mos nuestra docencia en arquitectura de computadores have opted for the Arduino Due model, which has a
sobre la arquitectura ARM, hemos optado por el mode- microcontroller, ATSAM3X8E, which implements the
lo Arduino Due, que dispone de un microcontrolador, Cortex-M3 version of the ARM Architecture.
el ATSAM3X8E, que implementa la versión Cortex- To carry out the laboratory sessions on I/O we have
M3 de la arquitectura ARM. slightly modified the Arduino IDE in order to accept
Para poder realizar las prácticas de entrada/salida he- assembly source code. In addition, we have designed
mos modificado ligeramente el entorno Arduino para and built a small board with an RGB led and a switch,
poder incluir programas en ensamblador, y hemos di- which allowed us to propose simple but colourful exer-
señado una pequeña tarjeta con un led RGB y un pulsa- cises. The built-in I/O included in the ARM controller
dor, lo que ha permitido proponer ejercicios sencillos of the Arduino DUE board have proved enough to ex-
pero vistosos. Los propios dispositivos del microcon- plore other important aspects of I/O as well as to offer
trolador de la Arduino DUE han bastado para abarcar more complex examples to incentivate the students on
otros aspectos de la entrada/salida y presentar ejemplos the subject.
de mayor complejidad para incentivar a los estudiantes. The first experience with this environment has been
La primera experiencia con este entorno ha sido satis- satisfactory for both teachers and students, who also
factoria tanto para el profesorado de las asignaturas en have fostered interest in continuing to work with Ar-
las que se ha utilizado como para los estudiantes, en duino cards in their own projects.
quienes además se ha fomentado el interés en conti-
nuar trabajando con las tarjetas Arduino en sus propios
proyectos. Palabras clave
Arquitectura de Computadores, Entrada/Salida, Ar-
duino Due, ARM, Thumb, Ensamblador.
58
Actas de las XXI Jornadas de la Enseñanza Andorra La Vella, del 8 al 10 de julio 2015
Universitaria de la Informática ISBN: 978-99920-70-10-9
59
Actas de las XXI Jornadas de la Enseñanza Andorra La Vella, del 8 al 10 de julio 2015
Universitaria de la Informática ISBN: 978-99920-70-10-9
• 54 pines de entrada/salida digitales (de los cuales trada/salida. A partir de dicho estudio, desarrollamos el
12 pueden utilizarse como salidas PWM). recurso docente que presentamos en este artículo y que
• 12 entradas analógicas. ha sido utilizado más que satisfactoriamente durante el
• 4 UARTs (puertos serie hardware). curso 2014/15 en los Grados en Ingeniería Informáti-
• Conexión USB con capacidad on-the-go (OTG). ca y en Matemática Computacional de la Universitat
• 2 conversores digital a analógico. Jaume I.
• Reloj (a 84 Mhz). El resto del artículo está organizado como sigue. En
• Conectores SPI y JTAG. el Apartado 2 se muestra el contexto docente en el que
Todo lo anterior por menos de 45 §. se ha desarrollado el recurso docente propuesto. En el
Apartado 3 se describe el material del que consta este
Por si fuera poco, debido a la gran acogida que ha
recurso docente. El Apartado 4 muestra los resultados
tenido Arduino por parte de entusiastas del hágalo us-
obtenidos. Finalmente, en el apartado 5 se describen
ted mismo [13], el ecosistema a su alrededor es simple-
las conclusiones y trabajo futuro.
mente impresionante: existen multitud de proyectos li-
bremente accesibles, una gran cantidad de extensiones
hardware (shields) que se acoplan directamente sobre
la tarjeta Arduino, y una ingente cantidad de software 2. Contexto docente
libre y de documentación.
En cuanto al entorno de desarrollo Arduino, éste La asignatura Estructura de Computadores es de for-
proporciona un conjunto de bibliotecas y funciones mación básica y se imparte en primer curso, primer se-
destinadas al manejo de la entrada/salida y a la co- mestre en los Grados en Ingeniería Informática y en
municación de la tarjeta Arduino con el computador a Matemática Computacional de la Universitat Jaume I.
través del puerto USB. Por no mencionar las bibliote- Al ser una asignatura de formación básica, tiene
cas proporcionadas por los fabricantes de los distintos asignada parte de la siguiente competencia fijada por
shields, que se pueden incorporar fácilmente al entorno Resolución de 8 de junio de 2009, de la Secretaría Ge-
para poder utilizarlos de una forma sencilla. neral de Universidades4 : «Conocimiento de la estruc-
Por otro lado, la programación de la tarjeta Arduino tura, organización, funcionamiento e interconexión de
se realiza habitualmente en C/C++. Es más, el entorno los sistemas informáticos, los fundamentos de su pro-
de desarrollo Arduino solo soporta dichos lenguajes. gramación, y su aplicación para la resolución de pro-
Teniendo en cuenta la gran variedad de modelos Ar- blemas propios de la ingeniería».
duino, esta decisión entendemos que está motivada por Con el objetivo de dar respuesta a dicha competen-
la intención de que si alguien desarrolla un código en cia, la asignatura se ha estructurado en tres temas, el
C/C++ para una determinada tarjeta Arduino, éste po- tercero de los cuales abarca los sistemas de entrada/-
drá utilizarse en otros modelos de tarjetas Arduino sin salida. Para dicho tema se han definido los objetivos
ningún problema. No ocurriría lo mismo si se permi- formativos que se detallan a continuación.
tiera programar en lenguaje ensamblador, ya que dicho El estudiante, al finalizar la asignatura, deberá ser
programa estaría ligado a la arquitectura concreta de capaz de:
un determinado modelo de tarjeta Arduino, perdiéndo-
1. Describir la problemática general de la entrada/-
se la compatibilidad software entre tarjetas.
salida.
Sin embargo, para el caso que nos ocupa, la ges-
2. Definir los términos de latencia, tasa de transfe-
tión de la entrada/salida a bajo nivel, las funciones
rencia y productividad y ser capaz de estimar o
en C/C++ proporcionadas por el entorno Arduino abs-
calcular sus valores partiendo de datos suficien-
traen una gran parte de la problemática relacionada con
tes.
la gestión de la entrada/salida desde el punto de vista
3. Caracterizar los sistemas de entrada/salida en fun-
de un arquitecto de computadores. Así que aparente-
ción de su comportamiento, interlocutor, tasa de
mente no podíamos contar con el entorno de desarrollo
transferencia y latencia.
de Arduino para programar directamente la tarjeta Ar-
4. Describir la estructura general de los dispositivos
duino Due, a no ser que decidiéramos ocultar lo que
de entrada/salida.
realmente ocurre a nivel del lenguaje máquina.
5. Enumerar y describir las formas por medio de las
Afortunadamente, y puesto que el entorno de desa- cuales el procesador puede acceder a los disposi-
rrollo de Arduino es software libre, fuimos capaces de tivos de entrada/salida.
introducir las modificaciones necesarias para que dicho 6. Enumerar los tipos de registros de los dispositivos
entorno aceptara directamente código en ensamblador. de entrada/salida y explicar cómo y para qué se
En vista de todo lo anterior, decidimos adquirir unas utilizan.
cuantas tarjetas Arduino Due y evaluar cómo podría-
mos utilizarlas para la docencia de la gestión de la en- 4 Publicada en el BOE el 4 de agosto de 2009
60
Actas de las XXI Jornadas de la Enseñanza Andorra La Vella, del 8 al 10 de julio 2015
Universitaria de la Informática ISBN: 978-99920-70-10-9
7. Explicar y evaluar el funcionamiento, así como S10 S11 S12 S13 S14
9:00
las ventajas y desventajas, de los dos sistemas de Teoría Entrada/Salida
11:00
sincronización de la entrada/salida: I) consulta de
estado (polling) e II) interrupciones. 11:30
Prácticas Entrada/Salida
8. Explicar y evaluar el funcionamiento, así como 13:30
las ventajas y desventajas, de los dos sistemas de
transferencia de datos de entrada/salida: I) trans-
ferencias por programa realizadas por el procesa- Figura 1: Organización temporal de las sesiones de teo-
dor y II) acceso directo a memoria (DMA). ría y laboratorio
9. Describir las características generales de la entra-
da/salida de propósito general (GPIO) y de los de entregables y en la metodología de clase invertida
mecanismos de temporización de los ordenado- (flipped classroom):
res.
10. Analizar programas escritos en ensamblador • En primer lugar, el estudiante debe preparar de
Thumb 2 que gestionen dispositivos de entrada/- forma individual una parte de cada una de las se-
salida. siones de teoría y laboratorio con antelación. Para
11. Desarrollar programas en ensamblador Thumb 2 ello, una semana antes se le proporciona un entre-
que gestionen dispositivos de entrada/salida. gable en el que se indica qué documentación debe
consultar, además de un conjunto de preguntas y
Para la consecución de los anteriores objetivos for-
ejercicios sencillos que debería ser capaz de re-
mativos, se ha optado por dividir la materia objeto de
solver a partir de dicha documentación.
estudio en los siguientes cinco bloques:
• La clase de teoría comienza con la resolución de
1. Introducción y problemática general de la entra- forma conjunta de las dudas que hayan podido
da/salida. surgir durante la realización del entregable, así
2. Aspectos generales de la entrada/salida de propó- como la corrección de las preguntas y ejercicios
sito general (GPIO) y de la temporización. planteados. Una vez hecho lo anterior, se profun-
3. Gestión de la entrada/salida por medio de consul- diza sobre el tema en cuestión y se plantean nue-
ta de estado. vos problemas que deben ser resueltos en equipos
4. Gestión de la entrada/salida por medio de inte- de tres estudiantes.
rrupciones. • Por último, cada equipo realiza en el laboratorio
5. Transferencia de datos por procesador y por acce- la correspondiente práctica sobre el tema en cues-
so directo a memoria. tión.
En cuanto a la carga de trabajo del estudiante, se han La evaluación se realiza de forma continua y tiene
asignado 1,8 créditos ECTS. La mayor parte del traba- en cuenta los entregables realizados, la nota obtenida
jo se realizará a lo largo de 5 semanas en los siguientes en las sesiones de laboratorio, la nota obtenida en el
tipos de actividades: examen de objetivos básicos correspondiente y la parte
• 5 sesiones de teoría de 2 horas cada una. correspondiente a la entrada/salida en el examen teóri-
• 4 sesiones de laboratorio de 2 horas cada una. co. Para la gestión y calificación de las actividades se
• 18 horas de preparación entre sesiones. ha utilizado la herramienta descrita en [1].
La organización temporal de las sesiones de teoría
y laboratorio se muestra en la Figura 1. Conviene des-
tacar que se ha apostado por realizar las sesiones de
3. Entrada/salida con Arduino
teoría y laboratorio en el mismo día para evitar que
El recurso docente presentado en este artículo pre-
la sesión de teoría y su laboratorio correspondiente se
tende proporcionar material teórico y de laboratorio
desincronicen debido a la presencia de festivos. Esta
con el objetivo de facilitar la comprensión por parte
sincronización es importante ya que nos permite se-
del estudiante de la gestión de la entrada/salida desde
guir una metodología docente en la que el estudiante
el punto de vista de la arquitectura de computadores.
prepara por su cuenta el contenido que se desarrollará
Consta de:
en la siguiente sesión, tanto en la clase de teoría como
en la de prácticas. • Los tres últimos capítulos de [3].
Además de las horas ya indicadas, el estudiante de- • Programas de ejemplo.
berá dedicar 9 horas de estudio personal para exámenes • El entorno de desarrollo de Arduino modificado
—no necesariamente en esas semanas—. para aceptar ficheros en ensamblador.
En cuanto a la metodología docente, se ha segui- • Esquemático de un circuito sencillo con un pulsa-
do el siguiente planteamiento basado en la utilización dor y un diodo LED RGB.
61
Actas de las XXI Jornadas de la Enseñanza Andorra La Vella, del 8 al 10 de julio 2015
Universitaria de la Informática ISBN: 978-99920-70-10-9
62
Actas de las XXI Jornadas de la Enseñanza Andorra La Vella, del 8 al 10 de julio 2015
Universitaria de la Informática ISBN: 978-99920-70-10-9
3.3. Entorno de desarrollo modificado Figura 3: Tarjeta Arduino/Due con la tarjeta de entra-
da/salida conectada
El entorno de desarrollo de Arduino, que puede des-
cargarse desde su página web, no soporta la realización
de proyectos Arduino en otros lenguajes de programa- Desde nuestro punto de vista, la utilización de un
ción que no sean C o C++. Afortunadamente, puesto circuito extremadamente sencillo en lugar de un shield
que dicho entorno de desarrollo es software libre, he- prefabricado presenta dos ventajas. Por un lado, el cir-
mos podido estudiar su código y modificarlo para que cuito propuesto tiene pocos componentes y un estu-
también aceptara y compilara programas en lenguaje diante podría reproducirlo por su cuenta por muy poco
ensamblador. dinero (ni siquiera es necesario que fabrique una pla-
Utilizando esta versión modificada es posible desa- ca impresa, podría utilizar directamente una placa de
rrollar proyectos que tengan ficheros fuente tanto en prototipos).
C/C+, como en ensamblador de ARM. Esto nos ha per-
mitido graduar la dificultad de las prácticas de tal for- Por otro lado, al utilizar un circuito tan sencillo, el
ma que determinadas acciones se realizan inicialmente estudiante es consciente de que dichos elementos (pul-
en C/C++ y posteriormente se muestra qué acciones sador y LED RGB) están directamente conectados a
se deben realizar a bajo nivel para conseguir el mismo los pines de entrada/salida de la tarjeta Arduino. Así,
efecto. cuando posteriormente programe la GPIO a bajo nivel,
podrá ver que su programa en ensamblador estará con-
figurando, consultando o activando justamente dichos
3.4. Circuito sencillo con un pulsador y pines de entrada/salida.
un diodo LED RGB
Un shield más complejo (por ejemplo una pantalla
Aunque existen multitud de extensiones hardware LCD) podría resultar más vistoso, pero además de ser
(shields) de entrada/salida para la tarjeta Arduino Due, más caro, una de dos, o se habría añadido una com-
nos planteamos cuál sería el circuito más simple que plejidad innecesaria en el caso de gestionar su entra-
permitiera realizar prácticas de entrada/salida que fue- da/salida a bajo nivel, o se hubiera ocultado el funcio-
ran sencillas pero suficientemente vistosas. namiento de la entrada/salida en el caso de haber uti-
Llegamos a la conclusión de que puesto que la tar- lizado las funciones en C/C++ proporcionadas por el
jeta Arduino Due ya proporciona otros dispositivos de correspondiente fabricante.
63
Actas de las XXI Jornadas de la Enseñanza Andorra La Vella, del 8 al 10 de julio 2015
Universitaria de la Informática ISBN: 978-99920-70-10-9
64
Actas de las XXI Jornadas de la Enseñanza Andorra La Vella, del 8 al 10 de julio 2015
Universitaria de la Informática ISBN: 978-99920-70-10-9
65