Tesis Cain 1973
Tesis Cain 1973
Director:
Ph.D. Luis Fernando Niño Vásquez
Lı́nea de Investigación:
Transferencia Tecnológica
Universidad Nacional de Colombia
Facultad de Ingenierı́a, Departamento de Ingenierı́a Eléctrica y Electrónica
Bogotá, Colombia
2011
A mis padres, a paito por su confianza ciega y por estar
siempre disponibles en todo momento
Resumen
Palabras clave: Transferencia tecnológica, sistemas embebidos, diseño digital, educación en inge-
nierı́a .
Abstract
This work aims to be the starting point of a successful technology and knowledge transfer process in
the area of embedded systems design helping to solve the problem of backwardness and technological
dependence of the domestic electronics industry. To achieve this, we applied an informal and pub-
lic method for technology transfer in order to: identify the needs of the country, acquire, assimilate
and apply the knowledge necessary to produce systems using modern design methodologies. Using
training as a channel for the transfer we created a curriculum for digital electronics line that helps
form the professional skills necessary to conceive, design, implement and operate digital systems. To
assist in the teaching / learning and to facilitate the spread in the industry, we designed some hardware
platforms that can be used as reference designs in the manufacture of new products, the information
needed to understand, reproduce , modify and program is available to anyone. Finally, with reference
to the free software movement and open source disseminate the results of this work to all sectors of
society.
Agradecimientos VII
Resumen IX
Siglas XVII
1. Introducción 2
1.0.1. Sistemas Embebidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.0.2. ¿Por qué los Sistemas Embebidos? . . . . . . . . . . . . . . . . . . . . . . . 4
1.1. Estado de la Industria Electrónica en Colombia . . . . . . . . . . . . . . . . . . . . 4
1.2. El Conocimiento como Bien Público . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3. Propuesta de Metodologı́a para la Transferencia Tecnológica y de Conocimientos . . 9
2. Transferencia Tecnológica 12
2.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2. Tecnologı́a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3. Concepto de Transferencia Tecnológica . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3.1. Tipos de Transferencia Tecnológica . . . . . . . . . . . . . . . . . . . . . . 14
2.3.2. Canales para la Transferencia de Tecnologı́a . . . . . . . . . . . . . . . . . . 15
2.4. Obstáculos para una Transferencia Exitosa . . . . . . . . . . . . . . . . . . . . . . . 17
2.5. Recomendaciones para una Transferencia Exitosa . . . . . . . . . . . . . . . . . . . 18
2.6. Metodologı́a Propuesta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.6.1. Etapas de la Metodologı́a . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.6.2. Factores Formales e Informales . . . . . . . . . . . . . . . . . . . . . . . . 24
3. Implementación de la Metodologı́a 27
3.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.1.1. Qué es un Sistema Embebido . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.1.2. Arquitectura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.1.3. Aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.1.4. Metodologı́a de Diseño . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2. Implementación de la Metodologı́a . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.2.1. Selección de la Tecnologı́a . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.2.2. Adquisición de Tecnologı́a . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2.3. Adaptación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.2.4. Absorción y Asimilación . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.2.5. Aplicación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.2.6. Difusión y Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Contenido XI
A. Artı́culos 128
A.1. Aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
A.1.1. En Hardware Evolutivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
A.1.2. Aplicaciones en Robótica . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
XII Contenido
Bibliografı́a 129
Lista de Figuras
5.1. Marco para analizar el conocimiento como bien común aplicado al movimiento
FOSS. Fuente: [4] pág 46 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
5.2. Marco para analizar el conocimiento como bien común aplicado al movimiento
hardware copyleft. Adaptación al hardware copyleft de: [4] . . . . . . . . . . . . . . 96
5.3. Miembros de la comunidad linuxencaja. . . . . . . . . . . . . . . . . . . . . . . . . 101
5.4. Adaptación de la plataforma de desarrollo ECB AT91 (a) a un monitor de signos
vitales (b) Fuente: [5] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
5.5. Flujo de diseño al utilizar hardware copyleft . . . . . . . . . . . . . . . . . . . . . . 103
5.6. Modelo de transferencia tecnológica aplicado a la empresa emQbit y a la academia . 105
Lista de Tablas
PC Program Counter. 2, 44
PCB Printed Circuit Board. 31, 34, 47, 53, 60, 78, 124
PIB Producto Interno Bruto. 6
PLD Programmable Logic Device. 27, 28, 31, 48, 74, 77, 78, 100
promedio de 40 chips al dı́a, de los cuales 5 son capaces de comunicarse en redes. Se estima que
en la actualidad una persona está en contacto con cientos de estos chips, la mayorı́a de los cuales
acceden a densas redes de información[8]. Muchos de estos artefactos toman la apariencia de objetos
que se utilizan en la vida diaria (herramientas, vestuario, electrodomésticos, etc) pero son mejorados
con sensores, actuadores, procesadores y software embebido. Una de las razones de la aparición de
estos sistemas es económica; las industrias han visto como se muestran signos de recesión en los
mercados tradicionales. Por lo tanto, buscan nuevos productos en los que pueden ser embebidos chips
y software.
La aparición de los dispositivos digitales en las actividades humanas, es una consecuencia
lógica de la evolución de las relaciones entre los usuarios y los sistemas digitales, los cuales se
han caracterizado por una democratización de acceso a los equipos y una descentralización de la
infraestructura subyacente. En los 90s la aparición de Internet permitió compartir recursos a través
de un computador personal. Internet no es más que un paso adelante hacia la llegada de los sistemas
de computación ubicua. La misma filosofı́a de simplificación y descentralización prevalece hasta
hoy y conduce a una situación donde miles de dispositivos computacionales estarán disponibles para
realizar tareas cotidianas y se compartirán recursos a través de redes más intrincadas que Internet.
problema radica en la falta de experiencia en el sector productivo por parte del personal académico,
una componente importante del grupo de profesores nunca ha sido parte de un proceso productivo o
de un proceso de desarrollo que tenga como fin la creación de un producto comercial, razón por la
cual se evita la experimentación y se da más énfasis al análisis, siendo la simulación el último paso
del proceso de análisis. Se puede decir que en Colombia se presenta una sobre-oferta de profesionales
en el área electrónica, formados con programas desactualizados que no tienen en cuenta los avances
tecnológicos y metodológicos; lo que explica la falta de ingenieros con altos niveles de formación y
la escasa demanda de profesionales en el área.
Rivalidad
Rival No rival
Exc.
Privado Club
Exclusión
No exc.
Común Público
afectando de forma considerable la cantidad de personal con las capacidades necesarias para absorber
los conocimientos asociados a nuevas tecnologı́as; adicionalmente, según el ministerio de educación
nacional, el 64 % de los matriculados cursan programas universitarios y solo el 24 % están en
programas relacionados con ingenierı́a.
Otro tipo de fuentes de capacitación la suministra el Centro de Investigación y Desarrollo
tecnológico de la industria Electrónica e Informática (CIDEI), a través de tres cursos: Diseño digital
empleando dispositivos lógicos programables; diseño de software embebido para microcontroladores
ARM y diseño de circuitos impresos con normas internacionales IPC; sin embargo, el elevado costo
de estos cursos genera una barrera en la obtención de este conocimiento por parte de los interesados.
Basados en el estado de la industria electrónica nacional y de la capacidad del paı́s para la
formación de personal calificado, se puede afirmar que el principal problema que presenta la industria
electrónica nacional es la falta de conocimientos sobre procesos de diseño y fabricación, debido en
parte a la fuerte exclusión que se tiene al acceso de la información relacionada con estos procesos, lo
que se traduce en la incapacidad de producción local de productos que cumplan con los estándares
internacionales. Para contribuir en la solución de este problema, este trabajo proporciona un recurso
público basado en el conocimiento necesario para concebir, diseñar, implementar y operar sistemas
digitales que utilicen tecnologı́a de punta y metodo logı́as de diseño modernas proporcionando:
Repositorios donde se puedan descargar los archivos necesarios para entender, reproducir y
modificar estos diseños de referencia.
Un programa académico que actualice los contenidos y la metodologı́a de las asignaturas del
área de electrónica digital.
Documentación que puede ser utilizada por las empresas para capacitar a su personal.
Este recurso estará representado por: la información necesaria para entender, reproducir y
modificar plataformas de desarrollo que pueden ser utilizadas para la creación de nuevos productos
1.3 Propuesta de Metodologı́a para la Transferencia Tecnológica y de Conocimientos 9
que den solución a problemas locales; la documentación necesaria para entender el proceso de
diseño de un sistema digital complejo; una comunidad que crea/utiliza/mantiene el recurso; medios
de comunicación y de almacenamiento para los proyectos existentes y facilidades que permitan la
creación de nuevos proyectos. Cada uno de estos proyectos representa la aplicación de técnicas
de diseño y de fabricación modernas de sistemas embebidos que pueden ser utilizados por los
industriales y por la academia como herramientas de capacitación; su carácter público permite el
acceso y uso por parte de cualquier interesado; proporcionando un canal de acceso al conocimiento
sin restricciones.
Tomando como fuente de inspiración el movimiento de software libre y de código abierto
(FOSS), se definió un concepto similar pero aplicado al desarrollo hardware, permitiendo la
generación, distribución, estudio y modificación de plataformas fı́sicas (placas de circuito impreso
y dispositivos funcionales). Este nuevo concepto recibe el nombre de hardware copyleft, su principal
objetivo es servir como canal para la transferencia del conocimiento necesario para diseñar y producir
sistemas digitales a todo sector de la sociedad que esté interesado. Con esto, se pretende generar en
el paı́s los conocimientos necesarios para aumentar la oferta de productos tecnológicos producidos
localmente, lo que se traducirá en un aumento de la oferta local de bienes y servicios relacionados
con la manufactura de sistemas digitales, generando empleo para personas con diferentes niveles de
formación.
Empresa
Comunidad linuxencaja ● Transferencia de conocimiento. Necesidades:
● Procesos de fabricación. de la sociedad,
Monitoreo ● Metodologías de diseño. del mercado
tecnológico ● Diseños de referencia.
Elección
de la tecnología ● Pasantías ●Creación
● Servicios
Adquisición ● Soporte
● Financiación
Adaptación ● Regalías
● Capacitación
● Personal.
● Necesidades
Absorción y
asimilación
Academia
Aplicación ● Actualización de programas académicos.
● Generación de habilidades.
● Creación/adaptación de metodologías/
Investigación universitaria
procesos de diseño.
● Personal
● Conocimientos
Toda obra derivada de este trabajo debe distribuirse con el mismo esquema de licencias
(esquema de licencia viral).
7
Esto gracias a la difusión realizada en diferentes eventos como el Campus Party, FLISOL y conferencias sobre los
movimientos abiertos
2. Transferencia Tecnológica
2.1. Introducción
La transferencia de tecnologı́a ha introducido técnicas de alta productividad y en muchos casos
cambios técnicos en paı́ses menos desarrollados que Colombia. La adquisición de tecnologı́a foránea
contribuye a mejorar la competitividad en los mercados locales e internacionales en estos paı́ses, en
los que debe ser considerada como un proceso vital. Este proceso presenta problemas cuando se pierde
capacidad de absorción por parte del paı́s receptor y la renuencia del paı́s que transfiere a suministrar
el know-how. Por lo que es necesario que estos paı́ses promuevan sus capacidades tecnológicas con el
fin de absorber las tecnologı́as foráneas de forma eficiente en función de sus necesidades locales y de
esta forma forma generar un rápido proceso de industrialización. La transferencia de tecnologı́a según
Van Gigch [18] involucra la adquisición de “actividad inventiva” por parte de usuarios secundarios.
Es decir, la transferencia tecnológica no involucra necesariamente maquinaria o dispositivos fı́sicos;
el conocimiento puede ser transferido a través de entrenamiento y educación, y puede incluir temas
como manejo efectivo de procesos y cambios tecnológicos [19]. No debe confundirse la transferencia
tecnológica con la apropiación de tecnologı́a que se define como el proceso de interacción con la
tecnologı́a, la modificación de la forma como es usada y el marco social dentro del cual es usada.
La transferencia tecnológica es un proceso dinámico que debe ser re-evaluado periódicamente,
requiere una infraestructura adecuada que involucra instituciones, centros de formación vocacional,
técnica y administrativa, personal con diferentes especialidades y un entorno cultural adecuado. Es
difı́cil que la tecnologı́a desarrollada en un entorno determinado pueda ser transferida sin realizar
modificaciones en la escala de producción y la adopción de productos al mercado local.
2.2. Tecnologı́a
La tecnologı́a es definida como el factor más significativo para mejorar la productividad,
calidad y competitividad [20] y puede verse como un proceso de transformación de recursos que
tiene como entrada recursos naturales, bienes, o productos semi-manufacturados y como salida se
obtienen bienes consumibles de capital y semi-manufacturados. El Technology Atlas team identifica
cuatro componentes de la tecnologı́a [19] (ver figura 2.1):
Figura 2.1.: Modelo del proceso de transferencia de tecnologı́a indicando la composición de los
canales formales e informales
transferencia sea exitosa, está asociada a una transferencia de conocimiento, lo cual es vital para
entender plenamente la tecnologı́a, mejorando las habilidades de los profesionales del paı́s receptor.
A continuación se realiza una descripción de los canales más utilizados para la transferencia
de tecnologı́a y conocimiento en paı́ses en vı́as de desarrollo ([20] [22] [26] [15]) indicando en cada
caso sus ventajas, limitaciones y desventajas.
tal punto que son asesores de instituciones encargadas de fijar polı́ticas para la transferencia
tecnológica [22].
adquirir la tecnologı́a, debe mejorar la infraestructura para soportarla, incluyendo la educación y las
facilidades de entrenamiento, ası́ como los enlaces de telecomunicaciones [15].
La falta de facilidades de educación y capacitación afecta la transferencia del know-how,
obstaculizando el desarrollo de habilidades a través del proceso de aprendizaje. La carencia de estas
facilidades limita la difusión del conocimiento; la pérdida de estas habilidades se puede originar
porque la transferencia no se realizó o porque la infraestructura no lo permite.
de sus egresados y de esta forma determinar que instituciones son merecedoras de créditos, becas,
o financiación para desarrollar actividades. Por último, y no menos importante, difundir habilidades
generales para el uso de nuevas tecnologı́as a los diferentes sectores de la población.
Los centros de educación de diferentes niveles deben trabajar de forma conjunta para definir
los objetivos y habilidades que requiere el sector productivo a nivel de formación tecnológica y
profesional, con el fin de delimitar sus funciones para que no interfieran en el mercado laboral. Por
otro lado, es necesario unificar contenidos de carreras similares y crear programas donde participen
diferentes centros de formación con el fin de aprovechar los escasos recursos suministrados por el
estado; creando canales de comunicación que permitan compartir resultados de investigaciones para
evitar repetirlos.
Transferencia
a la empresa y
a la academia
Absorción y asimilación
DIFUSION y DESARROLLO
Aplicaciones comerciales
TECNOLOGÍA
Adquisición
Adaptación
Socialización
Aplicación
Elección
Industria local
ACADEMIA
Elección
En la primera etapa se evalúa el estado de la plataforma tecnológica existente para identificar
facilidades y necesidades; con esta información se busca una tecnologı́a que pueda ser implementada
con el estado actual de la plataforma tecnológica; se identificarán los niveles de complejidad de dicha
tecnologı́a para determinar una alternativa que pueda implementarse y de resultados a mediano y
corto plazo con baja inversión de capital.
22 2 Transferencia Tecnológica
Adquisición
En esta etapa se adquieren equipos que utilicen la tecnologı́a que se desea transferir; gracias a
que el campo de aplicación de esta tecnologı́a involucra una gran parte de las actividades humanas,
es fácil obtener (comprar) dispositivos comerciales que la utilizan, por lo que no es necesario realizar
ningún tipo de acuerdo con proveedores extranjeros. Adicionalmente, se realizará la adquisición
de plataformas adecuadas de desarrollo hardware y software y se identificarán las herramientas de
desarrollo que permitan su estudio y desarrollo de nuevas aplicaciones.
Adaptación
La adaptación se presenta cuando la sociedad encuentra posible y deseable realizar cambios
para involucrar usos particulares de la tecnologı́a; es un proceso dinámico que esta formado por
[28]: una etapa inicial donde se proporcionan procedimientos adecuados para la transferencia fı́sica;
seguida de una fase donde se proporciona conocimiento, habilidades, datos, y las herramientas
necesarias para la evaluación; y una etapa de planeación, diseño e implementación del sistema de
transferencia, planes y estrategias.
Para determinar si es posible y conveniente el uso de esta tecnologı́a en la industria y la
academia nacionales, se realizaron una serie de actividades encaminadas a adquirir conocimiento
y habilidades que permitieron operar y programar los dispositivos digitales adquiridos previamente.
Para esto se diseñó una metodologı́a que permite el estudio gradual de diferentes tópicos asociados
a esta tecnologı́a (arquitectura, metodologı́as de diseño, programación básica, generación de
aplicaciones, producción); la primera etapa consiste en la adquisición de un dispositivo comercial
que permita realizar el estudio deseado; a continuación, con el uso de ingenierı́a inversa se identifica
su arquitectura, las herramientas y vı́as para cambiar su funcionamiento, también se desarrollaron
métodos para generación de aplicaciones similares a la original (adaptación). El siguiente paso
consiste en la adaptación de técnicas de fabricación que permitan el diseño y construcción local de
plataformas que tengan la misma funcionalidad y permitan su estudio, fácil adaptación y desarrollo
de aplicaciones; en este punto, cuando se reunieron los conocimientos necesarios para desarrollar
aplicaciones propias, se transmitieron a la academia y a la industria para que hagan parte de
sus procesos de enseñanza y de diseño y producción respectivamente; finalmente se realizó la
documentación del proceso de diseño de las plataformas de desarrollo y de las aplicaciones; toda esta
información es distribuida bajo el esquema de licencias Creative Commons (CC) BY-SA: atribución
(BY), se permite la distribución dando crédito al autor; compartir de la misma forma (SA), exige que
todo trabajo derivado del uso de proyectos que con este esquema de licencias deben tener la misma
licencia de los trabajos originales (esquema de licencias viral).
Absorción y asimilación
Los procesos de absorción y asimilación describen la capacidad del receptor para utilizar la
tecnologı́a y permiten identificar la efectividad y el éxito de la transferencia; la absorción es la
capacidad del receptor de absorber tecnologı́a de un sector y la asimilación es la capacidad de asimilar
(analizar, procesar, interpretar y entender) y utilizar la tecnologı́a absorbida en otro sector [28]. Es
importante generar dos tipos de habilidades para soportar la tecnologı́a: Técnicas: hardware, sistemas
operativos, redes, tecnologı́as de la comunicación, aplicaciones software; Humanas: Habilidades y
conocimientos necesarios para desarrollar, mantener, y manipular; habilidad para adaptar tecnologı́as
al entorno local y futuro desarrollo. Es crucial contar con mecanismos de aprendizaje que permitan
2.6 Metodologı́a Propuesta 23
adquirir los conocimientos necesarios para operar y cambiar la nueva tecnologı́a; este aprendizaje
puede adquirirse por entrenamiento, seleccionando y contratando personal calificado o buscando
posibles soluciones en recursos publicados. En este estudio se creó un banco de proyectos que
pueden ser utilizados como base de futuros desarrollos y se diseñaron cursos para la enseñanza
de metodologı́as de diseño y procesos de fabricación que usan la tecnologı́a en estudio. Para la
transferencia en diseño de sistemas embebidos se desarrollaron o adaptaron metodologı́as de diseño
y procesos de fabricación que culminaron en el diseño e implementación de productos tecnológicos
propios y en el desarrollo de proyectos académicos.
Aplicación
Difusión y Desarrollo
Esta etapa (en ejecución actualmente) busca involucrar a la mayor cantidad de centros
educativos para diferentes niveles de formación (educación básica, media, técnica y profesional);
empresas de base tecnológica e institutos gubernamentales en actividades que ayuden a concienciar
a la comunidad académica de la importancia del uso de esta tecnologı́a como parte de sus procesos
académicos.
La tarea más importante en la fase de difusión, es la creación de una comunidad que utilice los
conocimientos generados en todo el proceso, proporcione nuevo conocimiento que haga parte de este
bien público y depure las herramientas y el contenido del mismo; por esto, es importante vincular
a personas con diferentes intereses y niveles de formación; la primera comunidad se formó con
profesores y estudiantes de las universidades Universidad Nacional de Colombia (UNAL), UIS,
Universidad Santo Tomás de Aquino (USTA), Universidad de los Andes (ULA), Universidad Distrital
Francisco José de Caldas (UDFJC), y las empresas emQbit y CorreLibre, los cuales han realizado
hasta el momento la documentación de proyectos realizados durante los cursos del área de digitales;
la publicación de todos los archivos necesarios para estudiar, entender, reproducir y programar
6 plataformas de desarrollo copyleft hardware. Para ayudar a la comunicación entre usuarios del
recurso y a la difusión de sus proyectos, se creó una lista de correo donde se pueden discutir temas
24 2 Transferencia Tecnológica
Distribución
Repositorios, control de versiones
●
Selección de procesos
● Comunidad
● Pares
Utilización
Fuente de del
Capacidad del receptor
conocimiento ● Autosuficiencia conocimiento
● Continuo aprendizaje
Enlaces informales
● Centros de formación
● Empresas
● Credibilidad
● Calidad de la información
● Respaldo de la universidad
Recompensas
●Reconocimiento social
●Ayuda a la comunidad
●Contactos
Disposición
● Trabajo en equipo
● Compartir
Factores Informales
Factores formales
Están formados por procedimientos para difusión, clasificación, almacenamiento y recu-
peración de conocimientos. En la metodologı́a propuesta estos factores son (ver figura 2.4):
Documentación Es el formato, organización, o presentación de la tecnologı́a que será trans-
ferida. El formato y el lenguaje se relacionan directamente con el entendimiento del material
por parte del receptor. En este caso se utilizan dos tipos de formatos para la documentación:
• Código fuente. Archivos de texto correspondientes a: archivos de diseño de las placas
de circuito impreso (esquemáticos, lista de materiales, layout), código en lenguaje de
alto nivel (C, C++, LUA, Python, Perl, Java) para aplicaciones software, y código que
utiliza lenguaje de descripción de hardware (VHDL, Verilog) para implementación en
dispositivos lógicos programables.
2.6 Metodologı́a Propuesta 25
Distribución Constituye el canal fı́sico a través del cual fluye la tecnologı́a. Una medida de la
efectividad del sistema de información tecnológica es la capacidad de permitir el contacto entre
personas con necesidades y con posibles soluciones [32]. Para que el proceso de distribución
sea exitoso, debe considerarse el intercambio personal; este canal ayuda a eliminar retardos
en la investigación, ya que permite determinar el estado del arte de una determinada actividad
o área de trabajo. Esta propuesta cuenta con 4 canales públicos que permiten el flujo de la
información y facilitan la comunicación:
• Repositorio. Permite la descarga de los archivos necesarios para estudiar, entender y
modificar los conocimientos adquiridos en el presente trabajo.
• Sistema de control de versiones. Permite coordinar el trabajo distribuido entre personas
separadas geográficamente.
• Lista de correo. Permite la comunicación entre un grupo de personas.
• Wiki. Permite la realización de documentos útiles en la difusión y en la creación de nuevos
proyectos.
Organización El carácter público de este proceso de transferencia hace que los recursos se
encuentren disponibles para todo el que esté interesado permitiendo el acceso a la información
de forma fácil; evitando crear barreras para su difusión y crecimiento.
Factores informales
Los factores informales son de naturaleza sociológica y/o comportamental, y contribuyen
fuertemente al éxito de la utilización del conocimiento por una determinada organización. En esta
categorı́a se encuentran la comunicación, creencias y sentimientos sobre la fuente del conocimiento,
percepción sobre la organización, supervisores y pares.
Capacidad La capacidad del usuario para utilizar nuevas ideas que cubren un amplio espectro
de rasgos que incluyen riesgo, poder, educación, experiencia, edad y confianza en sı́ mismos.
La autosuficiencia es quizá el rasgo más valorado en un receptor de un proceso de transferencia
de conocimientos, el programa académico presentado en el capı́tulo 4 busca crear esta habilidad
en los profesionales para que puedan liderar procesos de continuo auto-aprendizaje.
Recompensa Reconocimiento del sistema social del cual hace parte un individuo ante un
comportamiento innovador. Ser parte de una comunidad formada por diferentes sectores de
la sociedad permite crear vı́nculos entre sus miembros. Los diferentes aportes que se realizan
por parte de los miembros ayudan a definir su perfil y la forma en que la comunidad los define;
de aquı́ pueden nacer vı́nculos laborales o académicos.
Disposición La habilidad y/o deseo del individuo para aceptar un cambio en la organización
de la cual es miembro; ası́ como la capacidad de adopción de nuevas ideas. Aunque una idea
haya sido aceptada intelectualmente, toma un perı́odo de tiempo antes de ser incorporada en
la forma de pensar. Ser consciente de la importancia de una nueva idea no es suficiente para
asegurar su uso; debe existir una disposición, un interés, una motivación personal para utilizar
un mejor método, proceso o concepto.
Esta propuesta implica que un gran esfuerzo personal en la concepción, diseño, construcción
y programación de un dispositivo digital, sea suministrado a la sociedad de forma gratuita;
permitiendo que cualquiera pueda beneficiarse de él y a cambio “solo” se recibe el crédito
por el trabajo realizado. Al permitir que un trabajo sea utilizado por otras personas y estas
personas sepan quien es su creador, puede convertirse en una referencia y es posible obtener
beneficios económicos realizando ajustes o nuevas versiones para personas o empresas que no
están interesadas en el desarrollo.
3. Implementación de la Metodologı́a de
Transferencia Tecnológica Propuesta en
el diseño de Sistemas Embebidos
3.1. Introducción
3.1.1. Qué es un Sistema Embebido
Un Sistema Embebido (Sistema Embebido (ES)) es un sistema de propósito especı́fico en el
cual, el computador es encapsulado completamente por el dispositivo que el controla. A diferencia
de los computadores de propósito general, los sistemas embebidos son diseñados para una aplicación
especı́fica, es decir, estos sistemas realizan un grupo de funciones previamente definidas y una vez
el sistema es diseñado, no se puede cambiar fácilmente su funcionalidad; debido a su interacción
con el entorno deben cumplir restricciones temporales estrictas, el término sistemas de tiempo
real es utilizado para enfatizar este aspecto; son heterogéneos, es decir, están compuestos por
componentes hardware (Programmable Logic Device (PLD)s, Application-specific integrated circuit
(ASIC)s) y software (µ-controladores, µ-procesadores, Digital signal processor (DSP)s); tienen
grandes requerimientos en términos de confiabilidad.
3.1.2. Arquitectura
En la Figura 3.1 se muestra la arquitectura tı́pica de un Sistema Embebido. La cual integra
un componente hardware (HW), implementado ya sea en un (Complex programmable logic device
(CPLD), Field Programmable Gate Array (FPGA)) o en un ASIC, (conocido con el nombre de
tarea hardware) y un componente software (SW) capaz de ejecutar software; la parte del procesador
está dividida en la Central processing unit (CPU) (En algunos casos posee una caché) y las unidades
de Memoria.
Al momento de diseñar un sistema embebido se encuentran diferentes opciones de imple-
mentación, la más adecuada, resultará de un análisis económico donde se valora el costo de la solución
ante el cumplimiento de los requerimientos del sistema; estas opciones son:
3.1.3. Aplicaciones
Los sistemas embebidos se encuentran en casi todas las actividades humanas, a diario se
interactúa con ellos, aún sin darse cuenta, ya sea porque son parte de la vida diaria o porque hacen
parte de aparatos que se utilizan a diario. La figura 3.2 muestra los campos de aplicación de los
3.1 Introducción 29
Consumer Electronics
Music players, digital cameras,
Automation DVD players, set-top boxes,
Copier, Fax machines, Medical Electronics
PDAs, videogames, Patient monitoring,
printers, scanners, GPS receivers, home appliances
multi-function peripherals, surgical systems,
point of sale terminals, diagnostic equipment,
storage devices, smartcards imaging, electronic stethoscopes
Military / Aerospace
Satellite systems, radar,
sonar, navigation, Industrial Controls
weather systems, Smart sensors,
flight control systems, special purpose controllers,
Automotive Electronics
aircraft management systems networking, process controls
Electronic control units
used in chassis, body electronics,
security, power train,
in-vehicle entertainment,
and infotainment systems
Figura 3.2.: Aplicaciones de los Sistema Embebidos Fuente: TATA Consultancy services
sistemas embebidos.
FPGAs, a medida que la producción aumenta se produce un punto de quiebra entre las FPGAs y el
arreglo de compuertas cerca a las 5000 unidades, y el segundo punto de ruptura se produce alrededor
de las 50000 unidades, donde es más rentable la producción de un ASIC basado en celdas estándar.
Es muy importante tener en mente estas cifras ya que ellas determinan la tecnologı́a a utilizar. No
obstante, vale la pena aclarar que en esta comparación no se tiene en cuenta la utilización de SoC,
micro-controladores o micro-procesadores comerciales, por lo que no es necesariamente cierto que
a bajos niveles de producción la opción más rentable sea la utilización de FPGAs; adicionalmente,
debido a su alto consumo de potencia (del orden de 10 veces mayor que un ASIC) no es posible su
utilización en aplicaciones móviles.
En Colombia es muy común el uso de micro-controladores y micro-procesadores de 8 bits
para la implementación de sistemas digitales, la mayor parte de los centros de educación del paı́s (de
todo nivel) proporcionan cursos de programación y es posible encontrar en el mercado un suministro
continuo de ciertas referencias. Gracias a esto, existen numerosos desarrollos basados en ellos; sin
embargo, debido a los limitados recursos de estos dispositivos (velocidad, periféricos, herramientas
de programación) no es posible utilizarlos para la implementación de aplicaciones con las necesidades
actuales como conectividad con diferentes redes, manejo de pantallas de cristal lı́quido, aplicaciones
multimedia, y diversos medios de almacenamiento de información.
Los System on Chip (SoC) proporcionan una excelente alternativa para la implementación
de aplicaciones modernas; integran un procesador de 32 bits o un DSP que corre a frecuencias
que van desde los 75 MHz hasta los 800 MHz y poseen periféricos que permiten controlar
directamente una gran cantidad de dispositivos; muchos de ellos están diseñados para aplicaciones
que requieren manejo de pantallas táctiles de cristal lı́quido, conexión a internet, diferentes medios
de almacenamiento, reproducción de audio, manejo de sensores de imagen, entre otros; muchas
de estas tareas son realizadas por procesadores dedicados diferentes al procesador principal del
SoC. Adicionalmente, existe una gran gama de productos ofrecidos por diversos fabricantes como
Freescale, NXP, Ingenic, Analog Devices, Altera, Marvell; por otro lado, su uso en aplicaciones de
consumo masivo ha reducido el costo de estos dispositivos y es posible comprarlos en cualquier
cantidad a precios que oscilan entre 4 y 20 United States dollar (USD).
La empresa emQbit desarrolló una serie de proyectos y actividades que ayudaron a entender
e identificar los siguientes obstáculos para el desarrollo y comercialización de sistemas digitales:
Falta de proveedores de bienes y servicios relacionados con la actividad (venta de dispositivos
semiconductores, fabricación de placas de circuito impreso, montaje automático de componentes,
etc); desconocimiento de la tecnologı́a (alcances y limitaciones) debido al uso de tecnologı́as y
metodologı́as de diseño obsoletas; competencia con productos asiáticos de muy bajo costo; falta
de confianza en los productos nacionales; desconexión de la academia con el sistema productivo;
inexistencia de reglamentación de la industria de manufactura electrónica; profesionales con pocos
conocimientos en procesos de diseño y fabricación. Estas observaciones coinciden con los resultados
de estudios consultados [15] [16] [13] [14] [12] [9].
Diagnóstico de la academia
de herramientas de alto nivel para la enseñanza en áreas afines al desarrollo de dispositivos digitales
[35] ocasiona que los profesionales no adquieran ciertas habilidades necesarias para completar la
cadena concepción - diseño - implementación - operación. En la mayorı́a de los casos se generan
habilidades para la concepción y el diseño a alto nivel y dejan los otros pasos en manos de
herramientas especializadas y/o a empresas asiáticas. Esta situación resulta la más atractiva desde
el punto de vista económico, ya que no es necesario adquirir maquinaria costosa ni contratar técnicos
especializados para operarlas; ; limitando la generación de empleo local a personas con alto nivel de
formación [36] generando desempleo en las personas menos capacitadas. Según John Hall presidente
y Chief executive officer (CEO) de Linux International “ algunas facultades preparan a la gente en
el uso de productos en vez de tecnologı́as de nivel básico” [35]. Esta situación unida al abandono de
la implementación hace que la dependencia con las empresas manufactureras asiáticas aumente cada
vez más.
Por otro lado, en muchas instituciones educativas de poca consolidación se utilizan: tecnologı́as
y metodologı́as de diseño obsoletas (Familias 74XXX o 40XXX, lenguaje ensamblador, mapas de
karnaugh); y programas académicos centrados en el análisis y no el diseño, donde el paso final es
la simulación. Esto, unido al poco contacto por parte del personal docente con el sector productivo,
origina una deficiencia de habilidades necesarias para realizar el proceso completo para el diseño de
dispositivos, lo que se traduce en profesionales que no disponen de las herramientas necesarias para
resolver los problemas del paı́s y al mismo tiempo competir con los productos asiáticos.
Según el XII Encuentro Colombia compite (patrocinado por el Ministerio de comercio industria
y turismo - 2010) el sector electrónico cuenta con solo un centro de desarrollo el CIDEI (Centro
de Investigación y Desarrollo de la Industria Electro Electrónica e Informática), el cual ha sido
beneficiado con recursos cercanos a los dos mil millones de pesos para la ejecución de proyectos
de desarrollo empresarial y con 1200 millones para proyectos de desarrollo tecnológico. Proporciona
2 servicios a la comunidad: diseño, fabricación y montaje de PCBs y capacitación. Los conocimientos
generados en estos proyectos no son difundidos a las universidades ni a la sociedad de forma gratuita,
lo que limita la difusión de estos conocimientos a quien pueda pagar por ello; por otro lado, la
Universidad Nacional proporcionó la capacitación para algunos de estos proyectos, lo que indica que
este centro no genera conocimiento propio y los temas de sus investigaciones ya han sido tratados por
varias universidades del paı́s.
Discusión
Como se vio anteriormente, la opción más económica para niveles de producción inferiores
a 5000 unidades son las FPGAs; sin embargo; esto es cierto únicamente si no existe un dispositivo
comercial como SoC, DSP, micro-controlador, o micro-procesador que permita el cumplimiento de
las restricciones del sistema. Esto, debido a que el costo de las FPGAs es más elevado y como se dijo
anteriormente su consumo de potencia impide su utilización en aplicaciones móviles (por esta razón
no es común encontrar FPGAs en dispositivos de consumo masivo). Una revisión de los circuitos
integrados utilizados en dispositivos como reproductores MP3, juegos, routers, y algunos teléfonos
móviles, revela el uso de SoCs comerciales de diferentes fabricantes. Los fabricantes de SoC se
adaptan rápidamente a los requerimientos del mercado y proporcionan dispositivos con los periféricos
necesarios para una determinada aplicación; un ejemplo de esto se puede observar en las diferentes
3.2 Implementación de la Metodologı́a 35
versiones de reproductores MP3 de la compañı́a AINOL, la primera versión evaluada contenı́a un DSP
de Analog Devices, un codec de audio externo y un controlador para el puerto Universal Serial Bus
(USB) (Universal Serial Bus); en la siguiente versión evaluada solo se encontró un circuito integrado
del fabricante Ingenic; una revisión de la hoja de especificaciones de este último circuito integrado
indicaba que este ya poseı́a el codec de audio y el controlador de la interfaz USB como periféricos
internos; adicionalmente, su costo es de 3.5 USD en grandes volúmenes. Los grandes fabricantes
como Atmel, Freescale, Marvell, NXP, Ingenic, etc, de forma dinámica ajustan sus productos a los
requerimientos del mercado, agregando el soporte que demandan las aplicaciones. Gracias a esto y
a la creciente demanda es posible encontrar SoCs muy baratos, con grandes capacidad de cómputo
que pueden ser utilizados en muchas aplicaciones. Por esta razón y por la poca utilización de los SoC
en el paı́s, se trabajará en el estudio de técnicas de fabricación y metodologı́as de diseño basadas en
estos dispositivos; esto, sin descuidar el fomento de la utilización de las FPGAs a nivel académico e
industrial y el estudio de técnicas de diseño y fabricación de circuitos integrados para estar preparados
a un aumento en la producción que justifique su uso.
La hipótesis de este trabajo es que el aumento de diseños locales que utilicen SoC y
metodologı́as de diseño modernas permitirán a la industria electrónica local competir con productos
importados; debido a que, el paı́s no cuenta con una oferta considerable de bienes y servicios
relacionados con la industria manufacturera de dispositivos digitales (sólo existen 2 empresas),
es necesario, utilizar inicialmente los servicios de la industria asiática para construir dispositivos
diseñados en el paı́s, que puedan ser configurados para las necesidades exactas del entorno social
local y de esta forma aumentar la demanda interna. Finalmente, se debe continuar con el estudio de
técnicas de fabricación de circuitos integrados para una futura demanda de la industria local.
sistema operativo, el 12.1 % utiliza sistemas operativos comerciales basados en proyectos abiertos y
el 30 % restante no utiliza un sistema operativo (ver figura 3.4; el porcentaje de utilización de sistemas
operativos basados en proyectos abiertos es del 35.6 %, lo que supera a los sistemas operativos
comerciales; es interesante observar que casi el 70 % de los encuestados utilizan algún tipo de sistema
operativo, lo que da un claro indicio de la necesidad de este en el ciclo de diseño.
Figura 3.4.: Comparación del uso de sistemas operativos Fuente: Venture Development Corp
De lo anterior se puede afirmar que más de la mitad de los diseñadores que utilizan sistemas
operativos para sus aplicaciones eligen proyectos abiertos, lo que indica que estas herramientas tienen
el grado de madurez necesaria para su uso en aplicaciones comerciales; por otro lado, una revisión
del mercado de los teléfonos móviles realizada por Admob indica que android superó a los sistemas
operativos de Apple y RIM (utilizado en los blackberry) y se proyecta que en el 2014 igualará a
Symbian de Nokia. Android utiliza el kernel de Linux como base de sus aplicaciones y utiliza
herramientas abiertas para su desarrollo; otras empresas como Motorola y Nokia utilizan Linux como
plataforma de algunas de sus aplicaciones; ası́ mismo, muchos routers basados en procesadores ARM
o MIPS; una gran variedad de reproductores multimedia, tablets y mini-laptops; todo esto, unido a la
disponibilidad de foros de discusión donde programadores expertos y creadores de una gran variedad
de aplicaciones brindan soporte a quien este interesado, hace de las herramientas abiertas y de Linux,
una alternativa muy atractiva para desarrollar una metodologı́a de diseño en torno a ella y adaptarla a
las necesidades del paı́s.
Linux Foundation publicó un estudio [37] donde calcula que el valor del kernel de Linux es
de USD$1400 millones; y son necesarios USD$10.800 millones para desarrollar el stack completo
de componentes desde cero; por este motivo, el uso de Linux reduce de forma considerable los
costos finales del proyecto, Black Duck Software1 posee la más completa base de datos de proyectos
1
[Link] Lı́der mundial en el suministro de productos y servicios que aceleran el desarrollo
3.2 Implementación de la Metodologı́a 37
abiertos, representados en 200.000 proyectos, 4.9 billones de lı́neas de código; utilizando su detallado
conocimiento de los proyectos abiertos y aplicando técnicas estándar de estimación de costos,
calculan que el costo de desarrollo total del proyecto FOSS excede los USD$387000 millones y
representa la inversión colectiva de mas de dos millones de desarrolladores al año. Un análisis
adicional, estima que el 10 % de las aplicaciones utilizadas para el desarrollo de aplicaciones en
tecnologı́a de la información se pueden reemplazar por proyectos abiertoss, lo que ahorrarı́a mas de
USD$22 billones al año.
Los proyectos de código abierto permiten a las organizaciones ahorrar tiempo y dinero
en muchos aspectos, al no tener que pagar por las herramientas de desarrollo y por librerı́as
y aplicaciones que pueden utilizar para la implementación de nuevos productos; permitiendo la
inversión de tiempo y esfuerzo en proyectos que pueden ser comercializados rápidamente.
Dispositivos semiconductores
En la actualidad existe una gran oferta de SoCs, grandes compañı́as proporcionan constante-
mente nuevos dispositivos con una gran variedad de periféricos para diferentes aplicaciones. El proce-
sador más utilizado para aplicaciones embebidas es el procesador ARM (Advanced RISC Machine).
ARM no fabrica circuitos integrados, suministra sus diseños en forma de netlist a nivel de compuertas
o a nivel de Lógica de Transferencia de Registros (Register-transfer level (RTL)) en un lenguaje de
descripción de hardware. Estas descripciones pueden ser utilizados en el proceso de diseño ASIC,
permitiendo su integración con una gran variedad de núcleos Intellectual Property (IP) (Intellectual
Property); compañı́as como Atmel, Marvell, Freescale, NXP, Cirrus Logic, Samsung, Texas Instru-
ments adquieren licencias que les permiten utilizar estos núcleos lógicos en la fabricación de sus
SoCs.
Encuestas realizadas a diseñadores por el portal linuxfordevices 2 sobre sus preferencias en el
procesador utilizado en sus proyectos; como se dijo anteriormente. ARM es el más utilizado (30 %)
seguido de cerca por los basados en x86 (25 %), la arquitectura POWERPC (15 %), MIPS (10 %),
DSPs (5 %). Por este motivo, en esta investigación se utilizaron dispositivos basados en procesadores
ARM (AT91RM9200 y SAM7 de Atmel, imx233 de Freescale), MIPS (JZ4740 de Ingenic) y el DSP
de Analog devices BF532, cubriendo de esta forma un gran campo de aplicaciones.
Dispositivos disponibles
Existen dos tipos de dispositivos que pueden ser utilizados en el proceso de transferencia
tecnológica y de conocimientos: productos de consumo, productos fabricados a grandes volúmenes y
que se pueden adquirir fácilmente a bajo precio; y dispositivos Commercial off-the-shelf (Commercial
off-the-shelf (COTS)), diseñados para ser utilizados como punto de partida en el desarrollo de una
aplicación, se pueden encontrar en la forma de tarjetas de desarrollo, las cuales incluyen una gran
variedad de dispositivos hardware (puertos de comunicación, Light-Emitting Diode (LED)s, Displays,
Liquid Crystal Display (LCD)s, pulsadores) que permiten explorar la capacidad de un determinado
SoC, o se pueden encontrar en forma de unidades genéricas que proporcionan las conexiones para
su funcionamiento básico (alimentación, memorias), proporcionando todas las señales que controlan
periféricos externos para que sean utilizadas en una tarjeta que integre los componentes requeridos
software utilizando software libre
2
Linuxfordevices es un sitio de encuentro y centro de noticias para la comunidad que utiliza Linux en dispositivos
digitales.
38 3 Implementación de la Metodologı́a
Discusión
3.2.3. Adaptación
En esta etapa se utilizaron las plataformas comerciales mencionadas anteriormente y las her-
ramientas de desarrollo abiertas para: explorar las diferentes alternativas de implementación; entender
y aplicar la metodologı́a de diseño adoptada internacionalmente; generación de conocimiento sobre
el uso de las herramientas de desarrollo.
Los dispositivos comerciales con grandes niveles de producción son un buen punto de partida
para el estudio de la arquitectura de sistemas digitales que utilizan SoCs, ya que están optimizadas
3.2 Implementación de la Metodologı́a 39
(en número de componentes) para ser utilizadas en una aplicación especı́fica, gracias a esto, su costo
es muy bajo (en comparación con plataformas de desarrollo). Por otro lado, es posible encontrar
estos dispositivos en el mercado local; reduciendo de forma considerable la inversión necesaria para
realizar las actividades de esta etapa.
Metodologı́a
Se utilizó ingenierı́a inversa para determinar como están construidos, como funcionan y como
son programados los productos adquiridos. Esta tarea no se ejecutó en un único instante de tiempo,
ya que el estudio se realizó de forma gradual, de tal forma que cada vez que se abordaba un nuevo
tópico se repetı́a el proceso con un producto que permitiera su estudio.
Como se puede ver en la figura 3.4 existen dos formas de realizar las aplicaciones de un sistema
embebido: con sistema operativo (OS) y sin Operating System (OS) (standalone). Las aplicaciones
standalone son muy eficientes debido a que son escritas teniendo en cuenta los recursos hardware
(memoria, velocidad del procesador y periféricos) de la plataforma donde van a ser ejecutadas,
sin embargo, requiere el desarrollo completo de toda la funcionalidad. Por otro lado, los sistemas
operativos proporcionan servicios (manejo de periféricos, capacidad de ejecución multi-tarea, manejo
de sistemas de archivos y librerı́as) que facilitan el desarrollo de aplicaciones; sin embargo, al ser
diseñados para ser ejecutados en cualquier dispositivo, es necesario cumplir con unos requerimientos
de recursos mı́nimos para que se puedan ejecutar las aplicaciones. En este estudio se trabajó con dos
sistemas operativos abiertos: eCos desarrollado por Redhat y Linux desarrollado por Linus Torvalds.
A continuación se muestran los temas de estudio que se abordaron en esta etapa.
Aplicaciones sin sistema operativo: Estudio de herramientas que permiten generar nuevas
aplicaciones en los dispositivos sin el uso de sistemas operativos.
Aplicaciones con sistema operativo: Uso de sistemas operativos para acelerar el proceso de
desarrollo de aplicaciones, utilizando las facilidades que ellos proporcionan.
• eCos: Sistema operativo de tiempo real altamente configurable que permite el uso
eficiente de los recursos hardware.
• Linux: Sistema operativo ampliamente utilizado que posee una gran cantidad de
aplicaciones y un número considerable de desarrolladores.
◦ Inicialización: Requerimientos mı́nimos para la ejecución de Linux.
◦ Imagen del kernel: Adaptación del kernel de Linux a una determinada plataforma.
◦ Sistema de archivos: Distribuciones y aplicaciones mı́nimas necesarias para la
ejecución de Linux.
◦ Drivers de dispositivos: Como dar soporte a nuevos periféricos.
◦ Comunicación con periféricos dedicados implementados en FPGAs: Comunicación
entre FPGAs y SoCs.
◦ Aplicaciones gráficas: Uso de librerı́as gráficas para el desarrollo de aplicaciones.
40 3 Implementación de la Metodologı́a
Los SoCs comerciales se pueden dividir en dos grandes grupos dependiendo de la existencia
o no de memoria no volátil para el almacenamiento del programa (memoria de instrucciones)
dentro del SoC. Los que poseen memoria no volátil (hasta 512 Kbytes) normalmente incorporan
una memoria Random Acess Memory (RAM) (hasta 32 kbytes) junto con una serie de periféricos
(timers, Inter-Integrated Circuit (I2C), Serial Peripheral Interface (SPI), Universal asynchronous
receiver/transmitter (USART)s, Analog-to-digital converter (ADC)s, Watchdog, USB device, canales
para acceso directo a memoria - Direct memory access (DMA)); están diseñados para no utilizar
componentes externos; normalmente este tipo de dispositivos utilizan procesadores que no tienen
unidad de manejo de memoria 3 (MMU) como la familia ARM7, cuyas velocidades de ejecución
varı́an entre los 50 y 70MHz. En la figura 3.5 se muestra la arquitectura tı́pica de un sistema basado
en estos dispositivos.
UART
Control BUS
GPIO
ROM
LCD
CPU FLASH
-||- (ARM, MIPS)
PLL
OSC
ICE SRAM
TIMER
JTAG
Boundary
Figura 3.5.: Arquitectura tı́pica de un sistema embebido que utiliza SoC con memoria volátil interna
Los procesadores que no poseen memoria no volátil interna se dividen en dos grupos: los que
poseen o no unidad de manejo de memoria; en ambos casos, se cuenta con una memoria RAM interna
(del orden de cientos de Kbytes) y adicionalmente a los periféricos mencionados anteriormente se
suministran controladores para USB host, puertos Serial Synchronous Interface (SSI), controlador
de LCD, codecs de audio, controlador de touch screen; debido a la ausencia de memoria no volátil
interna, estos dispositivos poseen periféricos dedicados al manejo de memorias no volátiles NAND
flash, NOR flash, SPI, I2C y Secure Digital (SD); y memorias volátiles Synchronous dynamic
random-access memory (SDRAM) y Double Data Rate) (DDR); su velocidad de operación varı́a
entre los 75MHz y 800MHz. En la figura 3.6 se muestra la arquitectura tı́pica de un sistema basado
en estos procesadores.
Debido a la falta de memoria volátil, las aplicaciones de este tipo de dispositivos requieren una
memoria externa para almacenar las aplicaciones básicas y datos, en la actualidad las más populares
son las memorias NAND flash, NOR flash, SPI, Electrically-Erasable Programmable Read-Only
Memory (EEPROM) y SD. Normalmente, este tipo de procesadores son utilizados en aplicaciones
que utilizan sistemas operativos, como se verá más adelante. Para que ciertos sistemas operativos
(Linux, Windows CE) puedan ejecutarse se requiere una mı́nima cantidad de memoria RAM (del
3
La Memory management unit (MMU) permite el manejo de memoria, dentro de sus funciones se encuentra el traslado
de la memoria fı́sica a virtual, protección de la memoria, control de cache, control de buses
3.2 Implementación de la Metodologı́a 41
UART
EBI
Control BUS NAND/NOR
GPIO Flash
Secure
Digital SDRAM
SD DDR/DDR2
CPU
PLL (ARM, MIPS)
-||- ROM
OSC
I-Cache D-Cache
TIMER
MMU
JTAG
ICE
Boundary
Figura 3.6.: Arquitectura tı́pica de un sistema embebido que utiliza SoC sin memoria volátil interna
orden de los Mbytes), por esta razón es necesario incluir una memoria RAM externa, en la actualidad
las más utilizadas son las SDRAM, DDR y DDR2.
Como conclusión, se puede decir que en el mercado existen diferentes arquitecturas de
SoCs que permiten realizar proyectos con diferentes grados de complejidad y que se ajustan a las
opciones más utilizadas por los desarrolladores; la opción más económica es la utilización de un
SoC que incluya las memorias no volátiles y RAM internamente; sin embargo, hasta el momento no
existen dispositivos con grandes capacidades de memoria Flash y RAM internas, por lo que no es
recomendado su uso en ciertas aplicaciones. Utilizar un SoC que no integre las memorias no volátiles
proporciona una mayor flexibilidad, ya que estos dispositivos proporcionan periféricos que pueden
controlar varios tipos de memorias, y se puede elegir la más económica, algo similar ocurre con la
memoria RAM; sin embargo, el costo total de las memorias externas, SoC y área de circuito impreso
es mayor que en el caso anterior. En la tabla 3.1 se resume la arquitectura de las plataformas utilizadas.
Aunque estos procesadores operan a velocidades entre los 75 y 800 MHz, no todos los
componentes del SoC operan a esta frecuencia, el componente externo que requiere la mayor
velocidad de operación es la memoria RAM y puede estar entre los 50 y 130 MHz, los demás
periféricos funcionan a frecuencias del orden de las decenas de MHz o KHz; por esta razón estos
SoC suministran un circuito PLL que permite generar la frecuencia de operación a partir de cristales
de frecuencias del orden de las decenas de MHz, lo que facilita el diseño de la placa de circuito
impreso.
Cada periférico requiere una conexión especı́fica con el dispositivo que controla, los SoC
42 3 Implementación de la Metodologı́a
modernos incluyen la mayor parte del circuito internamente con el objetivo de minimizar las
conexiones y dispositivos adicionales. Existen tendencias de los fabricantes a agrupar periféricos
teniendo en mente dos aplicaciones: multimedia, e industriales; para aplicaciones multimedia
se proporcionan controladores de LCDs, ratón, teclado, pantalla táctil, codificador-decodificador
(CODEC)s de audio, control de potencia, relojes de tiempo real, control de carga de baterı́as
entre otros; para aplicaciones industriales se proporcionan controladores de red cableada, puertos
Controller area network (CAN), I2C, y SPI.
Programación
Como se mencionó anteriormente, para este estudio se utilizaron herramientas abiertas para la
creación de aplicaciones, en la figura 3.7 se muestra el flujo de creación de las tareas software usando
la cadena de herramientas GNU is Not Unix (GNU) [38]. La ventaja de utilizar estas herramientas
(adicional a la económica) es el soporte a diferentes procesadores (24 diferentes CPUs, incluyendo
micro-controladores de 8 bits), lo que permite la fácil migración entre CPUs; adicionalmente su alto
grado de configurabilidad permite el cambio de disposición de las memorias volátiles y no volátiles
de forma fácil (a través del script de enlazado). El proceso de generación del archivo binario que
debe ser grabado en la memoria no volátil de la plataforma puede ser realizado en su totalidad por la
cadena de herramientas GNU.
Los SoC poseen la capacidad de iniciar desde diferentes dispositivos; cuando se activa la
señal de reset a un SoC que no posee memoria volátil interna, el primer programa en ejecutarse
es el que reside en una memoria Read Only Memory (ROM) interna, este programa revisa varios
periféricos en búsqueda de un programa válido; los periféricos soportados varı́an según el fabricante,
pero por lo general siempre soportan el uso de memorias NOR Flash (paralelas) y en SoCs más
recientes memorias NAND Flash, SPI, o SD; sin embargo, la mayorı́a de SoC soportan memorias
que se encuentran soldadas en la placa de circuito impreso, lo que hace necesario buscar métodos de
programación de estas memorias que no implique desmontarlas o el uso de costosos conectores. En la
mayorı́a de los SoC, cuando el programa residente en la ROM no encuentra ninguna aplicación válida
3.2 Implementación de la Metodologı́a 43
en los periféricos soportados, establece una comunicación por uno de sus puertos seriales o USB y
queda en espera del envı́o de un programa válido, el programa enviado es almacenado en la memoria
RAM interna, y una vez finaliza su descarga se ejecuta desde la RAM interna. La figura 3.8 muestra
este proceso.
Figura 3.8.: Inicialización de un SoC cuando las memorias no volátiles no están programadas.
Debido a que la RAM interna normalmente es pequeña (del orden de decenas de Kbytes), no
es posible cargar aplicaciones muy grandes en ella, por lo que es necesario realizar el proceso de
programación en varias etapas: en la primera etapa se carga una aplicación (first - stage bootloader)
que se encarga de configurar el procesador (pila, frecuencia de operación), configurar la memoria
RAM externa y habilitar un canal de comunicación para descarga de aplicaciones, de esta forma,
es posible almacenar aplicaciones tan extensas como la capacidad de la memoria RAM externa (del
orden de MBytes). En la segunda etapa se descarga una aplicación a la memoria externa que tiene
la capacidad de programar las memorias no volátiles externas con la información proveniente de
los diferentes periféricos de comunicación del SoC (como puerto serial, memoria SD, USB), este
segundo programa recibe el nombre de booloader y se auto-almacena en las primeras posiciones de
la memoria no volátil, de tal forma que sea ejecutado después de la activación de la señal de reset y
de la búsqueda que realiza el programa interno de la ROM.
Una vez programada la memoria no volátil con una aplicación válida, los SoCs realizan una
serie de pasos para ejecutar las aplicaciones almacenadas en ella, esto debido a la poca capacidad de
la memoria RAM interna. Como se dijo anteriormente, una vez se activa la señal de reset se ejecuta
un programa contenido en la memoria ROM interna del SoC (figura 3.9 (a)), esta aplicación configura
un periférico que permite la comunicación con los dispositivos de almacenamiento masivo externos,
y además copia una determinada cantidad de información desde la memoria no volátil externa a la
memoria RAM interna (figura 3.9 (b)), esto se hace porque el programa en la ROM no conoce la
configuración de la plataforma y esta puede cambiar según la aplicación; después de esto ejecuta la
44 3 Implementación de la Metodologı́a
aplicación copiada a la memoria RAM interna colocando en el contador de programa (PC) el valor
correspondiente a la memoria RAM interna (figura 3.9 (c)).
RESET
_start PC = 0xAAAAAA
PC = 0x00000000
First Stage Loader
RAM Interna RAM Interna
copy
ROM Interna nand_load
Aplicación
Memoria no volátil
Figura 3.9.: Inicialización de un SoC cuando la memoria no volátil está programada, parte 1.
Este programa (loader) está encargado de: configurar la memoria RAM externa (su capacidad
varı́a dependiendo de la aplicación) y de copiar la aplicación propiamente dicha desde la memoria
no volátil a la memoria RAM externa, (con lo que es posible cargar aplicaciones de mayor tamaño
que la memoria RAM interna); finalmente, el loader ejecuta la aplicación almacenada en la memoria
RAM haciendo que el contador de programa (PC) sea igual a la dirección donde se almacenó esta
aplicación (ver figura 3.10)
PC
_start
First Stage Loader
0xBBBBBBB
nand_load
SDRAM
copy
Aplicación
Memoria no volátil
Figura 3.10.: Inicialización de un SoC cuando la memoria no volátil está programada, parte 2.
Conocimientos adquiridos
En la tabla 3.2 se muestran los conocimientos adquiridos al aplicar ingenierı́a inversa a las
plataformas comerciales utilizadas en esta etapa.
Discusión
Plataformas de desarrollo
La primera plataforma desarrollada en este proyecto utiliza el SoC AT91R40008 de ATMEL y
se le dió el nombre de ECB ARM7, el diagrama de bloques de la plataforma y la foto del prototipo se
muestra en la figura 3.13, ECB ARM7 posee componentes de montaje superficial y fue el punto
de partida para el estudio de técnicas de fabricación de placas de circuito impreso, con ella se
realizaron aplicaciones standalone y con el sistema operativo eCos. Dentro del proceso de diseño
de sistemas digitales, algunas de las tareas deben ser implementadas en hardware para cumplir con
los requerimientos temporales; por este motivo es importante realizar implementaciones de tareas
hardware en dispositivos lógicos programables (PLDs); para estudiar la forma de comunicar estas
tareas hardware con SoC comerciales se diseño un clon de la tarjeta comercial XPORT de la empresa
norteamericana Charmedlabs, que permite conectarse con el procesador de la plataforma comercial
GameBoy
c Advance de Nintendo [39] (ver figura3.14).
RS232
UART
Level shifter
Control BUS
GPIO NAND/NOR
Flash
EBI
Watch Dog SDRAM
DDR/DDR2
CPU
-||- ARM7 RAM
CLOCK
OSC
ICE
TIMER
JTAG FTDI
Boundary JTAG CTRL
El uso de Linux como herramienta de desarrollo ha aumentado en los últimos años, llegando
a ser el sistema operativo más utilizado por los desarrolladores (ver figura3.4); empresas como
Nokia, Motorola, Google, Dlink, Hewlett Packard utilizan Linux para desarrollar el firmware de sus
dispositivos; por este motivo, se diseñaron plataformas que soportan la ejecución de este sistema
operativo. Se diseñó una familia de plataformas denominadas ECB AT91 V1 (ver figura 3.15 [40]
[41] ), ECB AT91 V2 (ver figura 3.16) y ECBOT (ver figura 3.17 [42] [43] [44]); esta familia de
plataformas se encuentran registradas en el kernel oficial de Linux, por lo tanto, su soporte queda
garantizado en futuras versiones del kernel. ECB AT91 V1 fue el punto de partida para el estudio
de técnicas de fabricación de placas de circuito impreso para SoC que operan a velocidades mayores
de 180MHz, y para aprender el proceso completo de adaptar el kernel de Linux a una plataforma
nueva, el proceso detallado se muestra en el apéndice ??. En la figura 3.17 (a) se muestra el diagrama
3.2 Implementación de la Metodologı́a 49
AD0..AD15
A0..A7
CS2
IRQ
WR
PHI
CS
RD
A0..A7
ADO..AD15
AD8..AD15
FD8..FD15
FDO..FD7
FDO..FD15 DO(DIN)..D7
CE, OE, WE
FCE, FOE, FWE
BYTE#
A1..A21 FA0..FA20
Flash A0
A0
A1..A19
F OE
DONE DONE, BYTE#
PRGM PRGM
JTAG
CCLK CCLK
Port
#FPW #WRITE, CS
#FPINIT #INIT
CPD(1:0)
CPDir
CPRes
CPLD
Cpstrb
CPD(3:0) CPD(3:0)
CPDir CPDir
CPRes CPRes
Cpstrb Cpstrb
CPred CPred FPGA
Parallel Port
de bloques de estas tres arquitecturas; todas poseen el SoC de 180MHz de Atmel AT91RM9200,
debido a que este SoC no posee conversores análogos - digitales internos fue necesario incluir un
micro-controlador de 8 bits que se comunica con el SoC vı́a I2C, el SoC realiza la programación del
microcontrolador emulando un puerto paralelo en sus pines de entrada/salida de propósito general
(General Purpose Input/Output (GPIO)s) que van conectados a los pines del puerto In System
Programming (ISP) del microcontrolador.
el bus de datos, dirección y control del SoC se conectan a la FPGA para permitir la comunicación
con los periféricos implementados en ella; la FPGA es configurada por el SoC utilizando unos GPIOs
que van conectados al puerto JTAG de la FPGA, lo que elimina la necesidad de cables adicionales de
conexión, permitiendo su re-programación total de forma remota.
La plataforma ECBOT fue diseñada con el propósito de iniciar el estudio en robótica móvil
y procesamiento de imagen; para esto, se utilizó una arquitectura similar a la de la plataforma
ECB AT91 V2 adicionando una conexión dedicada a un sensor de imagen y circuitos especializados
para el control de sensores (6 sensores de choque, 1 sensor de imagen, movimiento de los motores
basado en BEMF 4 ), actuadores (8 LEDs RGB, 2 motores DC) y un coversor DC/DC que garantiza
el máximo uso de las baterı́as. Como parte de este trabajó, se realizó la adaptación de proyectos libres
que facilitan la investigación en robótica como player/stage5 y openblocks6 . En la actualidad ECBOT
está siendo usado por los grupos de robótica de los departamentos de Sistemas y mecatrónica de la
Universidad Nacional de Colombia.
Los SoC utilizados en las plataformas anteriores no pueden ser utilizados en aplicaciones de
procesamiento de señales o de imágenes en tiempo real (a menos que se implemente algún periférico
en la FPGA), ya que su arquitectura no está diseñada para este fin. Los DSPs son procesadores
especializados para ejecutar las operaciones más comunes en procesamiento digital de señales;
pensando en este tipo de aplicaciones se diseñó la plataforma ECB BF532 [45] que utiliza el DSP
BF532 de la familia Blackfin de Analog Devices. Esta plataforma será utilizada en los cursos
4
Back Electro Magnetic Force
5
[Link]
6
[Link]
3.2 Implementación de la Metodologı́a 51
RS232
UART
Level shifter
Control BUS
PPI NAND/NOR
Flash
EBI
SSP SDRAM
DDR/DDR2
CPU
-||- Blackfin RAM
PLL
OSC
ICE
TIMER
JTAG FTDI
SPI Boundary JTAG CTRL
SPI
EEPROM
RS232
UART
Level shifter
Control BUS
GPIO
-||- EBI DDR
OSC Watch Dog
CPU
CLOCK ARM926 RAM
ICE
USB/Video/
SPI Audio
JTAG
Flash
SPI Boundary
SD
Técnicas de fabricación
SI Esquemáticos NO
OK ?
Elaboración de la
lista de materiales (BOM)
Búsqueda, cotización y
compra de componentes
Formulación de criterios
para el ruteo
Generación y verificación
de archivos gerber Montaje automático
Fabricación y verificación
del PCB Inspección de Rayos-X
Plan de pruebas
Artı́culos [53] [54] [55] [56] [57] [58] [43] [46] [59] [60] [61] [62] [63] [44]
Todos estos productos académicos tienen como caracterı́stica el desarrollo de placas de circuito
impreso y la utilización de los conocimientos adquiridos durante este estudio. Inicialmente, las
placas de circuito impreso fueron diseñadas con herramientas comerciales debido a la falta de
una herramienta abierta con las caracterı́sticas necesarias para realizar el proceso completo. En los
últimos dos años el desarrollo de la herramienta Kicad permitió la eliminación de estas herramientas
propietarias; a partir de ese momento solo se utilizaron herramientas abiertas en todo el flujo de
diseño.
Discusión
La fabricación de placas de circuito impreso a la medida permite reducir el costo final de un
dispositivo digital; en su proceso de diseño y fabricación intervienen diferentes personas con diversos
niveles de formación, lo que la hace muy atractiva como actividad generadora de empleo. La situación
actual de las empresas manufactureras del paı́s (solo 2) no permite la producción a grandes escalas
3.2 Implementación de la Metodologı́a 55
Compilar la cadena de
Herramientas GNU para Adaptación de las aplicaciones
La CPU del SoC software generadas anteriormente.
Generación de aplicaciones
que se ejecuten en la memoria
Generación de documentos
interna del SoC
Generación de aplicaciones
que se ejecuten en la memoria
externa del SoC y permitan grabar Producción
Las memorias no volátiles.
Desarrollo software
Adaptación de un loader (u-boot)
y de un sistema operativo
(Linux, eCos)
Desarrollo hardware
ya que en el paı́s no se cuenta con empresas que suministren componentes electrónicos a precios
competitivos (los impuestos locales producen un sobre-costo de cerca del 26 %). En el paı́s se pueden
construir prototipos de muy buena calidad, por lo que la mejor opción es la fabricación local del
prototipo y la producción en masa en el exterior. Esto mientras se crea en el paı́s la demanda suficiente
para poder realizar el proceso completo de forma local.
3.2.5. Aplicación
En esta etapa se aplican los conocimientos adquiridos previamente a la academia y a la
industria, con el fin de evaluar su impacto. En la academia se utilizó la posición del investigador
principal de este trabajo como docente del departamento de ingenierı́a eléctrica y electrónica de la
Universidad Nacional de Colombia, para modificar las asignaturas del área de electrónica digital
incorporando los temas recientemente absorbidos y asimilados. En el sector industrial , se formó una
empresa de base tecnológica y se brindó asesorı́a en la adecuación de las plataformas hardware
copyleft para convertirlos en productos comerciales.
En la academia
Se diseñó un nuevo programa académico que sigue los lineamientos de la iniciativa CDIO;
en el capı́tulo 4 se detallan las caracterı́sticas de este programa, el cual fue implementado en el
Departamento de ingenierı́a eléctrica y electrónica de la Universidad Nacional de Colombia en las
asignaturas del área de electrónica digital con el fin de formar profesionales con las habilidades
necesarias para desarrollar productos comercializables basados en esta tecnologı́a, el proceso de
aplicación duró dos años y actualmente es el programa oficial en dicha institución; los cambios
56 3 Implementación de la Metodologı́a
En la industria
En el campo comercial, se trabajó con la empresa de base tecnológica emQbit, uno de
los objetivos de trabajar con esta empresa era evaluar el impacto del uso de esta tecnologı́a en
la industria Colombiana; adicionalmente, emQbit proporcionó información sobre el estado de la
industria electrónica en el paı́s, ayudando a detectar los obstáculos que enfrentan las nuevas empresas
en su ejercicio de suministrar soluciones a problemas locales. La mayor parte de sus productos
utilizan como base las plataformas hardware copyleft diseñadas y distribuidas bajo el esquema de
licencias CC BY-SA; el proceso de modificación se facilitó gracias a la disponibilidad de los archivos
de diseño y al código fuente de las aplicaciones necesarias para la operación básica de las mismas.
Estos productos están siendo documentados y podrán ser estudiados/utilizados/modificados por quien
esté interesado. Es muy importante mencionar que (hasta donde llegan los conocimientos del autor)
emQbit es la única empresa colombiana que realiza el proceso completo: diseño, construcción y
programación de dispositivos electrónicos que utilizan tecnologı́as modernas (procesadores de 32
bits, sistema operativo Linux). En el desarrollo de sus actividades emQbit encontró las siguientes
dificultades:
a nivel local es una buena opción desde el punto de vista económico, ya que la diferencia en
costos no es muy grande, y es posible resolver dudas o problemas de forma ágil gracias a que
se trabaja en la misma zona horaria.
Desconfianza de la industria local por los productos del paı́s: Los problemas descritos
anteriormente generan un clima de desconfianza hacia los productos nacionales; ya que gran
parte de ellos utilizan tecnologı́as obsoletas con procesos de fabricación de mala calidad, no
cumplen con normas internacionales y no fueron sometidos a rigurosos procesos de pruebas.
La desconfianza se presenta por la ausencia de productos locales, por el desconocimiento de
los planes académicos de las universidades y por la falta de profesionales con la capacidad de
diseñar y construir aplicaciones “a la medida” de las necesidades.
Discusión
La adaptación de esta metodologı́a al entorno académico reveló la deficiencia de los programas
académicos del área de electrónica digital en la Universidad Nacional de Colombia, vale la pena
mencionar que esta universidad ha ocupado los primeros puestos en los exámenes de estado SABER
PRO (antes ECAES), por lo que es de esperarse que algunos programas académicos de otras
universidades presenten problemas similares. La falla más notoria que se encontró en este proceso
fue la ausencia de una metodologı́a de diseño unificada durante la enseñanza de las asignaturas que
componen el área; cada curso tenı́a su metodologı́a y no existı́a una relación entre los contenidos de
las asignaturas, lo que dejaba en los estudiantes la sensación de que se trataban de temas diferentes.
Por otro lado, el uso de tecnologı́as obsoletas desviaba el enfoque del estudio a tediosas tareas
manuales de minimización e implementación, restando importancia a la concepción y validación
del diseño. Errores conceptuales en el diseño de los cursos hicieron que un lenguaje de descripción
de hardware como el Verilog o VHDL fuera el centro de atención ignorando por completo temas
relacionados con la arquitectura de computadores. Al final de estos dos cursos, los estudiantes no
veı́an la utilidad práctica de los conocimientos adquiridos ya que nunca fueron enfrentados a la
solución de problemas reales; esto, unido a la falta de herramientas de desarrollo hicieron que muchos
58 3 Implementación de la Metodologı́a
de ellos no consideraran la electrónica digital para dar solución de problemas. El último curso del área
(micro-controladores) proporcionaba herramientas que permitı́an dar solución a problemas reales, por
este motivo, los estudiantes opinaban que era la única útil de la lı́nea; sin embargo, la falta de bases
en arquitectura de computadores hacı́a que se pensara en el micro-controlador como una caja negra
sin entender completamente su arquitectura,lo que limitaba el entendimiento del proceso de diseño.
Los cambios introducidos en estas asignaturas utilizan una única metodologı́a de diseño, los
problemas son atacados de la misma forma pero con herramientas cada vez más complejas pero más
sencillas de utilizar. El uso de plataformas de desarrollo abiertas permite estudiar su arquitectura y
entender completamente los flujos de diseño; adicionalmente, pueden ser utilizadas como punto de
partida de desarrollos comerciales. Esto unido a la experiencia de diseño de circuitos impresos en
3 asignaturas, hizo cambiar completamente la mentalidad de los estudiantes sobre el uso de estas
tecnologı́as, haciendo que realizaran búsquedas de problemas que puedan ser solucionados con estas
herramientas, lo que constituye la base de la innovación. Todo esto representa una transferencia
exitosa de esta investigación hacia la academia ya que se modificaron los hábitos existentes y
se utilizaron los conocimientos generados por esta investigación; adicionalmente, se demostró la
importancia del uso de esta tecnologı́a.
Por otro lado, desde el punto de vista comercial, se comprobó que la universidad puede
incentivar la creación de empresa, siempre y cuando se proporcionen herramientas para que puedan
crear productos novedosos, y se brinde soporte técnico para su utilización. Sin embargo, los problemas
mencionados anteriormente dificultan su operación, lo que permite concluir que es necesario una
alianza entre este tipo de empresas, las universidades, los generadores de polı́ticas gubernamentales
y los ángeles inversores para financiar el desarrollo de productos comercializables. Ası́ mismo,
se comprobó que es posible que empresas de base tecnológica colombianas utilicen tecnologı́as
modernas para competir con productos provenientes del exterior. Desde el punto de vista de la
transferencia tecnológica se puede afirmar que en este caso, se realizó una transferencia exitosa hacia
la empresa, ya que los conocimientos fueron absorbidos, asimilados y se generaron nuevos productos
que fueron utilizados para dar solución a problemas locales.
sistemas embebidos y pueden ser utilizadas por cualquier interesado para mejorar sus habilidades en
el diseño, implementación, fabricación o programación de este tipo de dispositivos. El recurso inicial
esta compuesto por la información necesaria para entender, programar, reproducir, y modificar estas
plataformas; este será la base de nuevos productos tecnológicos que den solución a problemas del paı́s
y ayuden a difundir el uso de esta tecnologı́a en centros de formación y empresas de base tecnológica
y de esta forma aumentar la oferta de bienes y servicios relacionados con el diseño de aplicaciones
personalizadas que se ajusten exactamente a los requerimientos de la sociedad. Sin embargo, para que
esto sea posible, es necesario proporcionar herramientas que permitan la administración y difusión del
recurso; por este motivo, se creó el portal abierto linuxencaja donde se proporcionan los siguientes
servicios:
Proyecto local
Almacenamiento
Directorio de Index Repositorios
de los objetos
trabajo staging remotos
del repositorio
add clone
commit
commit -a
reset
push
pull
checkout fetch
merge
El sitio de trabajo es donde se realiza el proyecto y contiene archivos que serán o no tenidos
en cuenta para el control de revisiones. El ı́ndice (staging area, se utiliza para preparar los
cambios que serán publicados (commits) se pueden agregar (add) archivos o partes de archivos
para al siguiente commit. Todos los cambios que se deseen publicar van primero al ı́ndice; la
8
[Link]
60 3 Implementación de la Metodologı́a
acción commit aplica los cambios en el ı́ndice en el sitio de almacenamiento de los objetos.
Este repositorio de objetos puede ser creado localmente y puede ser copiado a (push) o desde
(pull) otro repositorio remoto. De esta forma es posible sincronizarse y realizar modificaciones
sobre un repositorio remoto. Si por algún motivo, accidentalmente se borra o se daña el
contenido de algunos archivos del repositorio, es posible restaurar el estado del mismo a un
punto donde se reviertan los cambios que ocasionaron los daños (reset). Si se piensa introducir
un cambio que requiera la modificación de un extenso número de objetos es posible crear y
trabajar con una nueva rama del proyecto (checkout y conservar la rama original (merge). En
la actualidad linuxencaja cuenta con 5 repositorios: SIE, ECB AT91, ECBOT, ECB BF532 y
AndroidStamp; cada uno de ellos reúne la información necesaria para entender y reproducir
plataformas hardware que utilizan diferentes SoC. En ellos se pueden encontrar las siguientes
aplicaciones:
• Archivos de diseño: Archivos necesarios para reproducir y modificar el PCB.
• Hello World: Esta aplicación implementa un parpadeo (blink) en un LED conectado a un
pin de entrada/salida de propósito general, con este sencillo ejemplo se indica como se
puede programar la memoria RAM interna del SoC, se proporciona un ejemplo funcional
para el desarrollo de aplicaciones sin sistema operativo.
• Loader: Aplicación que permite escribir en las memorias no volátiles de la plataforma.
• Kernel: Parches que dan soporte a la plataforma en el kernel de Linux.
• File system: Sistema de archivos con las utilidades necesarias para la ejecución de
aplicaciones.
• Drivers: Módulos del kernel que muestran como implementar drivers de Linux para
control de periféricos
blink: La misma funcionalidad que Hello World pero como un driver de Linux.
irq: Ejemplo de un módulo del kernel con interrupciones y con un programa en
espacio de usuario que controla este módulo.
• Examples: Proyectos académicos destacados que utilizan la plataforma y que pueden ser
utilizados como referencia para desarrollo de aplicaciones.
Wiki 9 : Las wikis son sitios web con facilidades de edición de páginas web utilizando un
lenguaje propio (wikitexto). En este estudio se utilizó el software Mediawiki que permite la
creación instantánea de páginas web sin la necesidad de permisos especiales por parte del
administrador de la máquina; Mediawiki (y demás aplicaciones similares) almacena en una
base de datos el contenido de las páginas en texto plano, (este formato se suministra al usuario
en el momento de la edición) y genera en tiempo real el código HyperText Markup Language
(HTML) a partir de este texto plano cada vez que se solicita una página; una caracterı́stica
especial es que las páginas pueden ser editadas por múltiples voluntarios; adicionalmente, se
dispone de un historial de cambios que le permite al administrador restaurar el contenido en un
eventual daño voluntario o involuntario.
Con esta herramienta es posible que usuarios del recurso documenten nuevos proyectos o
mejoren la documentación de los ya existentes; en la actualidad, esta wiki está siendo utilizada
por los estudiantes del área de electrónica digital del Departamento de Ingenierı́a Eléctrica y
9
[Link]
3.2 Implementación de la Metodologı́a 61
Lista de correo 10 : Contar con un canal de comunicación directo entre los diseñadores y usuarios
con más experiencia, permite resolver dudas en corto tiempo, estas respuestas constituyen
una fuente de documentación muy importante y debe ser almacenadas para crear un banco
de preguntas/respuestas que ayuden a usuarios con las mismas inquietudes. Por esta razón, se
creó una cuenta de correo que permite este intercambio de información y puede ser utilizado
por los miembros de un determinado proyecto para discutir temas propios del desarrollo del
mismo. La metodologı́a utilizada por un determinado grupo quedará registrada en esta lista y
puede ser utilizada como referencia de ese y otros proyectos; adicionalmente, estas listas de
correo permiten realizar contactos académicos y laborales entre sus miembros.
Estrategia de difusión
Esta metodologı́a de transferencia tecnológica y de conocimientos no cuenta con el apoyo
financiero necesario para realizar cursos de capacitación a empresas de base tecnológica destinados
a transferir las metodologı́as de diseño y fabricación propuestas, por este motivo se utilizará una
difusión basada en relaciones locales entre centros de formación, empresas, y entidades del estado
que financien proyectos de transferencia tecnológica.
Relaciones con la industria: Para trabajar con empresas de base tecnológica se creó un
proyecto11 que busca difundir el uso de esta tecnologı́a en la creación de nuevos productos
que den solución a un problema local; este proyecto realizará un proceso para seleccionar 2
empresas de base tecnológica en ciudades donde existan centros de formación que utilicen
este recurso; dichas empresas formularán un proyecto que satisfaga una necesidad local;
estudiantes de los centros de formación (como trabajo de grado) ayudarán a estas empresas
en el diseño y construcción de un dispositivo que implemente la solución propuesta por
ellas. Todos los proyectos deben ser de tal naturaleza que puedan ser implementados en un
dispositivo electrónico que utilice la tecnologı́a utilizada en este estudio; esto con el fin de
implementar todos los proyectos con una plataforma electrónica base que permita adaptarse a
las diferentes aplicaciones; esta plataforma base será diseñada por todos los participantes y se
buscará reunir la máxima funcionalidad con el menor precio posible; utilizando los recursos
suministrados por el portal linuxencaja se coordinará el trabajo entre los diferentes grupos de
trabajo; una vez diseñada esta plataforma base se fabricaran tantos prototipos como grupos de
trabajo para determinar su correcto funcionamiento, una vez corregidos los posibles errores y
comprobado el correcto funcionamiento de todos los componentes; se realizará la producción
de 100 unidades con el fin de adquirir experiencia en la producción de estos sistemas utilizando
la industria manufacturera asiática; después de realizar la pruebas necesarias, cada grupo de
trabajo diseñará y fabricará una tarjeta hija que proporcione la funcionalidad requerida por
cada proyecto. Todo el proceso de diseño, los criterios de desarrollo, las discusiones para
determinar las especificaciones tanto de la plataforma base como de las plataformas hijas se
documentará en el portal linuxencaja para permitir la reproducción de este curso.
11
En la actualidad se están buscando fuentes de financiación para su ejecución
3.2 Implementación de la Metodologı́a 63
Tabla 3.4.: Comparación de precios entre la transferencia ofrecida por Corea y el costo utilizando los
conocimientos generados en este trabajo
Item KETI-ETRI Este trabajo
Equipos de cómputo (25) con licencias de: 115.000 50.00012
Windows, VMWARE, 12
Android SDK, Apache
12
Se eliminan las licencias de Windows y VMWARE al utilizar Linux, Android SDK y Apache son gratuitos
13
Existen dispositivos comerciales con estas caracterı́sticas que pueden ser utilizados en el desarrollo utilizando ingenierı́a
inversa, como se hizo en este trabajo
14
Qemu es gratuito, el proyecto del celular abierto OpenMoko distribuye de forma gratuita su simulador
15
El proyecto OpenOCD permite realizar este tipo de pruebas utilizando una interfaz con el puerto JTAG de los
procesadores; en este trabajo se desarrolló una interfaz USB-JTAG que permite hacer esto de forma económica.
16
Este trabajo proporciona una metodologı́a para utilizar herramientas abiertas en todo el proceso de fabricación de PCBs
17
Plataforma hardware copyleft
19
El costo total de la transferencia cuesta 2 millones de USD
4. Plan de Estudios Para la
Enseñanza/Aprendizaje de Sistemas
Embebidos
4.1. Introducción
Educar a los estudiantes para dominar un conocimiento más profundo de los fundamentos
técnicos.
Educar a los ingenieros para liderar la creación y operación de nuevos productos y sistemas.
Los resultados de la formación deben ser fijados por los sectores interesados (academia,
industria, gobierno) y deben formar una secuencia de experiencias de aprendizaje, algunas
de las cuales son experimentales; es decir, deben enfrentar a los estudiantes a situaciones que
encontrarán en el ejercicio de su profesión.
Proceso
Figura 4.1.: Bloques constructores de conocimiento, habilidades y actitudes necesarias para concebir,
diseñar, implementar y operar sistemas en el contexto social y empresarial fuente:[3]
Conocimiento cientı́fico.
La razón de poner este bloque constructor en el primer nivel es solo para recordar que el
objetivo primordial de cualquier programa de pregrado es el desarrollo de un conocimiento profundo
de fundamentos técnicos. En este trabajo no se cambiará este componente ya que para hacerlo es
necesario un consenso con las demás carreras de la facultad de ingenierı́a de la Universidad Nacional,
labor que puede tomar varios años.
Habilidades personales, profesionales e interpersonales Los niveles 2 y 3 se centran en las
habilidades personales que debe poseer un individuo para que pueda cumplir con el objetivo de la
iniciativa CDIO. El nivel 2 está compuesto por:
Las habilidades profesionales que representan las tres formas de pensar más practicadas
por los ingenieros: resolución de problemas; descubrimiento de conocimiento y pensamiento
sistémico.
68 4 Plan de Estudios Para la Enseñanza/Aprendizaje de Sistemas Embebidos
Actitudes que incluyen integridad y comportamiento profesional ası́ como las necesarias para
planear la profesión.
Las habilidades que no hacen parte del contexto profesional ni del inter-personal son
llamadas habilidades y actitudes personales, incluyen el carácter; iniciativa; perseverancia; formas
de pensar más genéricas como pensamiento crı́tico, creativo; y habilidades propias como curiosidad,
aprendizaje continuo y manejo del tiempo.
Las habilidades inter-personales, son un subconjunto de las habilidades personales y se dividen
en dos grupos (que se traslapan) llamados: equipo de trabajo y comunicaciones. El equipo de trabajo
hace referencia a las habilidades necesarias para formar, operar, fortalecer y liderar un equipo con
habilidades especı́ficas de un equipo de trabajo técnico. La comunicación se compone de habilidades
para idear estrategias de comunicación y aquellas que utilizan los medios orales, escritos, electrónicos
y gráficos, y, en el caso colombiano, el uso del idioma Inglés.
Habilidades CDIO Habilidades necesarias parea concebir, diseñar, implementar y operar
sistemas en el contexto social y empresarial; estos cuatro componentes son necesarios para que los
egresados de las carreras relacionadas con la ingenierı́a electrónica sean capaces de absorber los
conocimientos que las nuevas tecnologı́as proporcionan, adaptarlos a la situación tecnológica y al
contexto social del paı́s para generar productos que resuelvan necesidades locales. Para satisfacer una
necesidad de la sociedad es necesario conocer la dinámica empresarial, los principios que la rigen y
como se debe actuar en una empresa de cualquier tipo y tamaño.
Para alcanzar los objetivos definidos en el primer paso, es necesario generar una serie de
actividades que le permitan al estudiante retener nuevos conocimientos y habilidades y desarrollar las
4.2 Implementación del Plan de Estudios CDIO 69
competencias deseadas; las actividades deben cubrir todas las habilidades que se quieran desarrollar
o reforzar. Finalmente, se deben desarrollar métodos de evaluación que permitan conocer el nivel de
competencia de los estudiantes, y de esta forma ajustar las actividades para obtener los resultados
esperados.
Grado de competencia
Para trasladar las habilidades a objetivos de aprendizaje es necesario determinar el grado de
competencia que se espera que el profesional adquiera en cada una de las asignaturas; por supuesto,
algunas de estas habilidades no pueden obtenerse solo en una asignatura y es necesario que todo
el plan académico contribuya a generarla, lo que requiere un consenso del personal académico.
Los niveles de competencia seleccionados para indicar el grado en que debe ser apropiada una
determinada habilidad son:
Procesador
Periféricos Diagrama de Bloques
Librerías Procesador Arquitectura Camino de datos
Sistema Operativo Periféricos del sistema Máquina de control
Interfaz con la aplicación
Simulación Simulación
Tareas Hardware
en PLDs Tareas SW y HW Compilación Síntesis PLDs
Tareas Software en PLDs
en SoC
Pruebas
Objetivos generales
• Identifica y reproduce las diferentes etapas del proceso de diseño.
• Identifica la estructura de un sistema digital.
• Selecciona los componentes adecuados para cada problema (particionamiento
hardware/software).
• Define las especificaciones de un sistema digital.
• Lee esquemáticos electrónicos y hojas de especificaciones de sus componentes.
• Escribe documentos que describen el proceso de diseño de un sistema digital.
Electrónica digital 1
• Identifica la arquitectura de un circuito lógico y secuencial.
• Reproduce los pasos para sintetizar una máquina de estados algorı́tmica.
• Identifica los componentes básicos de una máquina de estados algorı́tmica.
• Identifica los pasos del flujo de diseño hardware.
Electrónica digital 2
• Identifica las tareas que deben ser ejecutadas en software y en hardware.
• Identifica y describe los componentes de un SoC.
• Identifica y describe el funcionamiento de los componentes de una unidad de
procesamiento central.
• Identifica los pasos del flujo de diseño software.
• Describe el comportamiento de tareas hardware y software.
Sistemas embebidos
• Describe la integración de software en hardware electrónico.
• Identifica los componentes de un sistema embebido.
5. Sı́ntesis: definida como la acción de unir elementos y partes para conformar una estructura o
patrón, enfatizando en la creación de un nuevo significado o estructura.
Objetivos generales
• Diseña y genera sistemas digitales que dan solución a problemas reales.
• Colabora en un grupo de trabajo para dar solución a un problema común.
• Colabora con la sociedad compartiendo el resultado de sus estudios.
4.3 Integración de las Habilidades CDIO al Plan de Estudios 75
Objetivos generales
• Compara las ventajas y desventajas de las tareas hardware y software.
• Decide la arquitectura mas adecuada para un sistema digital.
• Interpreta los resultados de las simulaciones.
• Justifica y replantea sus criterios de diseño.
• Critica implementaciones y arquitecturas de sistemas digitales.
• Evalúa las diferentes alternativas de implementación de un sistema digital.
Electrónica digital 2
• Evalúa y compara el desempeño de funciones implementadas en software y en
hardware.
• Decide el particionamiento hardware/software.
Sistemas embebidos
• Evalúa las ventajas y desventajas de utilizar un sistema operativo.
76 4 Plan de Estudios Para la Enseñanza/Aprendizaje de Sistemas Embebidos
Manipulación: práctica de una habilidad especı́fica hasta que la acción se realice con seguridad.
• Manejar herramientas para montaje de placas de circuito impreso.
• Manejar herramientas para diseño de placas de circuito impreso.
Precisión: se obtienen resultados de muy alta calidad en la ejecución de una tarea con poco
esfuerzo.
• Mostrar capacidades elevadas en el montaje y rework de placas de circuito impreso.
• Mostrar habilidades en la elaboración de layouts.
Articulación: las habilidades han sido desarrolladas de tal forma que pueden modificarse
patrones para ajustarse a requerimientos especiales.
• Combinar diferentes técnicas en la elaboración, montaje y adecuación de placas de
circuito impreso.
• Adapta diferentes técnicas de ruteo a necesidades especı́ficas de la aplicación.
Naturalización:
• Especifica el método más adecuado para elaborar, montar, y modificar una placa de
circuito impreso.
4.3.5. Metodologı́a
Todas las actividades que se realizarán en estos cursos están encaminadas a generar habilidades
necesarias para concebir, diseñar, e implementar sistemas digitales complejos, y están articuladas
alrededor de una única metodologı́a de diseño. Los tres cursos tienen un carácter teórico-práctico,
el componente teórico tratará los diferentes temas de forma general, con el fin de no crear
dependencia con las herramientas utilizadas, lo que permitirá realizar actualizaciones fácilmente. En
el componente práctico, se tratarán temas especı́ficos de manejo de las herramientas (lenguajes de
descripción de hardware, lenguajes de programación y manejo de plataformas de desarrollo) y como
se relacionan con la metodologı́a de diseño utilizada.
El estudiante debe estudiar, profundizar y comprobar algunos temas tratados en clase y debe
leer previamente la documentación que se encuentra disponible en el sitio web de los cursos.
Adicionalmente, debe formar grupos de trabajo para realizar actividades a lo largo del semestre.
Durante el perı́odo académico se trabajará para definir las especificaciones, diseñar e
implementar un dispositivo que resuelva una determinada necesidad (con la complejidad adecuada
para cada curso). En la sesión teórica se tratarán aspectos relacionados con la concepción, diseño,
identificación y definición de las funciones de los componentes del sistema, mientras que en el
laboratorio se tratarán temas relacionados con la implementación de dichos componentes sobre PLDs
o SoC. Se realizarán presentaciones del avance, indicando las razones que se tuvieron en cuenta en
cada decisión y como se resolvieron los problemas encontrados, todo este proceso debe documentarse
78 4 Plan de Estudios Para la Enseñanza/Aprendizaje de Sistemas Embebidos
en la wiki del portal linuxencaja, esto último para formar un banco de proyectos que pueda ser
utilizado como referencia por quien esté interesado.
En el mercado existe una gran variedad de plataformas que pueden ser utilizadas en el estudio
de sistemas embebidos, sin embargo, no todas son adecuadas para la implementación del método
que propone este trabajo, ya que la plataforma que se utilice debe proporcionar toda la información
necesaria para entenderla, programarla, replicarla y modificarla. Con el fin de proporcionar al
estudiante una herramienta que pueda ser utilizada en el desarrollo de nuevos productos comerciales
se requiere: acceso a los esquemáticos y a los archivos de fabricación del PCB con posibilidad
de modificación; acceso a la documentación completa del proceso de fabricación; acceso a la
cadena de producción; utilización de herramientas abiertas para su programación; un PLD para la
implementación de tareas hardware; un procesador para la implementación de tareas software; un
canal de comunicación entre el procesador y el PLD; y una comunidad que desarrolle aplicaciones
para dicha plataforma y que proporcione medios para el intercambio de información a través de listas
de correo y wikis.
Después de una búsqueda minuciosa no se encontraron plataformas que cumplieran con estas
condiciones, en especial con las relacionadas con el proceso de diseño y de producción; esto es
normal, ya que la mayorı́a de las empresas no quieren que se fabriquen sus plataformas y los proyectos
individuales no poseen la infraestructura necesaria para la producción masiva. Por este motivo, se
decidió crear una plataforma que cumpliera con los requerimientos (plataforma SIE), pudiera ser
utilizada en los tres cursos del área y se convirtiera en una herramienta más para la difusión de los
conocimientos adquiridos en este estudio.
La Figura 4.4 muestra el diagrama de bloques de la plataforma SIE, en ella se observa un
procesador que posee periféricos para comunicación serial (UART), memorias micro-SD, un puerto
I2C, un LCD a color de 3 pulgadas, 2 entradas y salidas de audio stereo, 2 entradas análogas; una
FPGA que proporciona 25 señales de entrada/salida digitales de propósito general (GPIOs) y controla
un conversor análogo digital de 8 canales. Existen dos canales de comunicación entre la FPGA y el
procesador: uno para controlar el puerto JTAG, lo que permite la configuración de la FPGA desde el
procesador (lo que elimina la necesidad de cables de programación); y otro que proporciona el bus de
datos, dirección y control para comunicarse con las tareas hardware o periféricos implementadas en
la FPGA. El procesador utilizado es un Ingenic JZ4725 (MIPS) corriendo a 400MHz, se dispone de
una memoria NAND de 2GB para almacenamiento de datos y programas, ası́ como de una memoria
SDRAM de 32 MB, lo que permite la ejecución de una gran variedad de aplicaciones Linux.
SIE proporciona un canal de comunicación y alimentación a través del puerto USB-device, y
es configurado para ser utilizado como una interfaz de red (usb0), permitiendo la transferencia de
archivos y ejecución de una consola remota utilizando el protocolo ssh; este canal de comunicación
también se utiliza para programar la memoria NAND no volátil, por lo que para realizar la
programación completa de los componentes de la plataforma solo es necesario un cable USB. SIE
posee un sistema de archivos basado en el proyecto openwrt y dispone de una gran cantidad de
aplicaciones y librerı́as que pueden ser compiladas en un computador tradicional, siguiendo los
tutoriales de la wiki del proyecto.
4.3 Integración de las Habilidades CDIO al Plan de Estudios 79
Electrónica digital 1
En el primer curso del área de diseño digital en la UNAL se realiza el estudio, diseño e
implementación de máquinas de estado algorı́tmicas utilizando la metodologı́a de diseño presentada
anteriormente y la herramienta gratuita de Xilinx Webpack, los estudiantes implementarán sus diseños
utilizando lenguajes de descripción de hardware (VHDL, verilog), como resultado de este proceso
se obtendrán 3 archivos: uno para configurar a la FPGA con la funcionalidad deseada; uno que
informa sobre la función asignada por el diseñador a todos los pines de la FPGA; y otro que contiene
los resultados de la simulación del sistema 3 . SIE proporciona un canal de comunicación entre el
procesador y el puerto JTAG de la FPGA que puede ser utilizado para:
ser exportados a un archivo tipo imagen. Esta herramienta puede verse como una combinación
de un analizador lógico y un generador de vectores de prueba de bajo costo.
SIE
Restricciones
LCD
Archivos de Síntesis:
diseño Xilinx webpack EBI
Simulación
NAND FLASH Procesador FPGA
ICARUS JZ4725 Spartan 3E
TestBench
GHDL
GPIO JTAG
USB
PC
Electrónica digital 2
Como se mencionó anteriormente, en este curso se busca que el estudiante entienda la
diferencia entre tareas hardware y software, y los canales de comunicación entre ellas; para esto,
se implementarán las tareas software en un procesador softcore que proporciones la descripción
completa en un lenguaje de descripción de hardware (en la actualidad se utiliza el LM32 de
Lattice). Adicionalmente, se estudiará la arquitectura de la unidad de procesamiento, su conjunto de
instrucciones, manejo de interrupciones, comunicación con las memorias de datos y de instrucciones,
su programación y la forma de comunicación con periféricos.
El acceso al código fuente del procesador facilita el estudio de las operaciones internas del
procesador al permitir la simulación y seguimiento de señales especı́ficas. Este tipo de simulaciones
permiten entender los conceptos relacionados con el funcionamiento del sistema lo cual no es posible
si se utilizan dispositivos comerciales, ya que los simuladores existentes se enfocan en los contenidos
del banco de registros y de la memoria y no pueden mostrar (hasta el momento) las señales internas. Al
estudiar la estructura interna de un procesador, es posible entender los mecanismos de comunicación
entre la CPU y los periféricos; permite entender la diferencia conceptual entre tareas hardware y tareas
software (aún cuando ambas se implementan en el mismo dispositivo). La creación de periféricos, su
conexión con el procesador y el soporte que se debe dar en la aplicación software para su control;
al tiempo que se proporcionan los conocimientos de la estructura de un sistema sobre silicio (SoC)
moderno.
La metodologı́a que propone este trabajo permite utilizar la cadena de herramientas GNU
existente para el procesador LM32, la que permite trabajar con lenguaje ensamblador, C y C++ y
proporciona un flujo de diseño software que puede ser utilizado en otros procesadores comerciales.
En la figura 4.6 se muestra el flujo de diseño al utilizar un procesador softcore; con él, el estudiante
4.3 Integración de las Habilidades CDIO al Plan de Estudios 81
Encabezados
de librerías Encabezado ELF
Librerías .text
objcopy .text
.rodata
.rodata
Compilador Enlazador .data
Código fuente
(ensamblador, C) GCC LD, GCC ... .data
Instrucciones .bin
objetos .bss
.debug
Script de enlazado:
Localización de las Ejecutable - ELF
memorias
Maestro 0 Esclavo 0
Datos RAM
Maestro 1
Instrucciones
BOOT RAM
lm32_cpu
Esclavo 1 .text
Interrupciones
.rodata
Interconexión .data
del bus
Instrucciones .bin
wishbone
Esclavo 2
UART Desarrollo software
Desarrollo hardware
Esclavo 3
SoC GPIOs
Código fuente HDL
(Verilog)
puede entender que el flujo de diseño software se utiliza para generar el contenido de la memoria de
programa del SoC y que la estructura del procesador se describe en un lenguaje de descripción de
hardware al que se le aplica el mismo flujo de diseño que aplicó en la asignatura anterior.
En este curso el procesador de la plataforma SIE es utilizado como herramienta de
configuración del PLD, los archivos de configuración son transferidos al sistema de archivos de SIE
utilizando el protocolo ssh y desde allı́ son transferidos a la FPGA utilizando xc3sprog o urjtag. Es
posible establecer una comunicación serial entre los procesadores softcore implementado en la FPGA
y hardcore de la plataforma; proporcionando un canal de depuración para las aplicaciones que se
ejecutan en la FPGA; con lo que se suministran todas las herramientas necesarias para la realización
de las actividades previstas en este curso.
Sistemas embebidos
Una vez asimilados los conceptos de arquitectura de SoCs e implementación de tareas hardware
y software se utilizará un SoC comercial, para que los estudiantes entiendan las diferencias entre los
procesadores softcore y hardcore y conozcan las herramientas más utilizadas en la implementación
de sistemas digitales modernos. Ası́ mismo, se utilizará el sistema operativo Linux para ilustrar la
diferencia entre las aplicaciones standalone y las que utilizan sistemas operativos; se utiliza el SoC de
ingenic JX4725 para ejecutar tareas de visualización, comunicación, control e interfaz con el usuario,
librerı́as gráficas de alto nivel como QT (de Nokia) para realizar la interfaz, se desarrollan módulos
del kernel y programas en espacio de usuario para el control de periféricos dedicados (implementados
en la FPGA). Con esto se proporciona a los estudiantes herramientas que están siendo utilizadas en la
82 4 Plan de Estudios Para la Enseñanza/Aprendizaje de Sistemas Embebidos
actualidad por los grandes fabricantes de dispositivos digitales como Nokia, Dell, Hewlett Packard.
aportes y publicar de forma fácil imágenes y videos; lo que facilita la realización del documento,
permitiendo que sea editado desde diferentes lugares; al tiempo que lo pone a disposición de quien
esté interesado.
Sustentación individual
Con las entregas parciales se obtiene una calificación que refleja el trabajo realizado por el
grupo de trabajo; sin embargo, es necesario determinar la contribución de cada miembro del equipo
y evaluar la asimilación de conocimiento de forma individual; adicionalmente, se pretende evitar que
miembros del equipo no realicen aportes. Para determinar este nivel de asimilación, se aplica una
prueba oral a cada uno de los integrantes, con el fin de determinar si existen o no vacı́os conceptuales
y si se conoce el trabajo realizado en la elaboración del proyecto; de esta prueba se obtendrá un
coeficiente entre 0 y 1, el cual será aplicado a la calificación obtenida por el grupo y de esta forma
obtener la calificación individual.
4.5. Actividades
A continuación se enumerarán las actividades que se desarrollan en las tres asignaturas,
indicando las habilidades (ver tablas 4.1 y 4.2) que se quieren reforzar o desarrollar.
Utilización de metodologı́as de diseño 1, 2, 3, 6, 7, 9, 28, 29, 30, 31, 32, 33, 34, 35, 36,
37, 38
Implementación de sistemas digitales sencillos 3, 14, 29, 30, 35, 36, 17, 18, 19
La realización de prácticas de laboratorio en las que grupos de trabajo (14) implementan
diseños de baja o media complejidad le permite al estudiante: Formular recomendaciones (3) para
que no se repitan errores en experiencias futuras y utilizar sistemas de desarrollo (30) para la
implementación de tareas hardware y software a bajo nivel (36). Con el fin de mejorar la capacidad
de comunicación escrita (18, 19) se deben presentar informes que refuercen las habilidades generadas
en la utilización de la metodologı́a de diseño, los cuales deben tener la siguiente estructura (17):
Un diagrama de caja negra que indique las entradas y salidas del sistema.
Una descripción de alto nivel del algoritmo que implementa la solución (29).
Un diagrama de bloques que indique el particionamiento y la interconexión entre sus
componentes (30).
Descripciones de alto nivel de cada uno de los componentes (31).
La implementación y simulación de cada componente y del sistema completo (35), donde se
muestre que el sistema cumple con las especificaciones funcionales (38).
Proyecto del curso 1,2,3, 14, 15, 30, 31, 32, 33, 34, 35, 22, 23, 24, 25, 27
Durante el semestre se trabajará para definir las especificaciones (1,2,3), diseñar (30,31,32,33,34)
e implementar un dispositivo que resuelva una necesidad de la sociedad (22). En la sesión teórica se
tratarán aspectos relacionados con la concepción, diseño, identificación y definición de las funciones
de los componentes del sistema, mientras que en el componente práctico, los relacionados con la
implementación de dichos componentes sobre PLDs o SoCs.
Los estudiantes hacen una descripción funcional de alto nivel del sistema, se organizan en
grupos de trabajo (14,15), definen la función de cada uno de sus integrantes (27,14,31), establecen
estrategias de comunicación (16,31), realizan y cumplen un cronograma de actividades (25,31) que
permite resolver la necesidad en el tiempo especificado (22). Una de las estrategias de comunicación
es la realización de presentaciones orales (20), en las que cada equipo de trabajo expondrá el estado de
su proyecto, indicando las razones que se tuvieron en cuenta en cada decisión y como se resolvieron
los problemas encontrados (24). Adicionalmente, todo este proceso debe documentarse en el sitio web
del curso (wiki del portal linuxencaja) con el objetivo de crear una base de proyectos que permitan
a futuros estudiantes utilizar la experiencia obtenida (23) y cuando sea el caso dar continuidad al
proyecto.
El estudiante debe diseñar y construir placas de circuito impreso con los circuitos necesarios
para su aplicación (35) siguiendo las normas de diseño establecidas por el fabricante (resolución,
número de capas, costo) y las restricciones del circuito (capacidad de corriente, niveles de ruido,
compatibilidad electromagnética, etc). Vale la pena aclarar que durante el primer curso los estudiantes
no poseen la experiencia necesaria para realizar (sin asistencia) labores como la división de tareas,
generación de un cronograma de actividades y fijar la estrategia de comunicación, razón por la cual
el docente debe acompañarlos en este proceso.
Desarrollo del plan de innovación del Producto, 22, 23, 44, 25, 26, 45
Todo proyecto debe ser presentado como una idea innovadora; por este motivo, se debe realizar
un plan de innovación donde se especifique:
4.6 Discusión 85
Oportunidad:
• Concepto de la innovación
• ¿Qué problema pretende solucionar?
• ¿De dónde viene la idea?
• ¿Existen productos similares?
• Etapa de desarrollo.
Mercado y crecimiento
• ¿En que mercado está inmersa la innovación?
• ¿Qué alianzas son necesarias para terminar el desarrollo de la innovación?
Productos/servicios
• ¿Qué etapas de desarrollo adicionales son necesarias?
• ¿Qué productos derivados se pueden obtener?
• Canales de distribución.
Inversión
• Inversión estimada para finalizar el producto.
• Inversión necesaria para comercializar el producto,
4.6. Discusión
El método de evaluación propuesto ha demostrado durante su aplicación su eficacia en la
generación de hábitos de continuo estudio y auto-aprendizaje; sin embargo, uno de los grandes
inconvenientes para su aplicación son los malos métodos de estudio que poseen los estudiantes;
por este motivo, es necesario crear actividades que motiven a los estudiantes a realizar las lecturas
y actividades programadas en el curso. Esta situación se agrava debido a la aplicación de una
desafortunada polı́tica gubernamental en la educación media que obligaba a los centros educativos
de todo el paı́s a promover de forma automática a todos los estudiantes, fijando un máximo del 5 % de
estudiantes no promovidos, sin importar si los estudiantes poseen o no los conocimientos necesarios
para la promoción. Cuando estos estudiantes, ası́ formados, ingresan a las universidades se genera un
86 4 Plan de Estudios Para la Enseñanza/Aprendizaje de Sistemas Embebidos
choque fuerte ya que no están acostumbrados a afrontar retos, no son conscientes de sus deficiencias
y en muchos casos su nivel de conocimientos no son los esperados.
Encuestas realizadas a los estudiantes durante los últimos dos años muestran que ellos perciben
un grado de exigencia mucho mayor comparando con otras asignaturas; pero al mismo tiempo, que la
experiencia en estos cursos es muy útil para su vida profesional y que es la única asignatura que los
enfrenta a problemas reales de diseño e implementación de sistemas y trabajo en equipo; entienden
que es necesario dedicar tiempo por fuera de aula si se desea asimilar la información, son conscientes
de que la responsabilidad de adquirir este conocimiento es de ellos; manifiestan la importancia del
uso de esta tecnologı́a en la solución de problemas locales y entienden el estado de la industria digital
en el paı́s y su papel para dar solución a sus problemas.
Con la aplicación de este plan de estudios a las asignaturas del área de electrónica digital:
se elevó el nivel de los trabajos realizados en estos cursos y en trabajos de grado; la aplicación
de la metodologı́a de diseño propuesta generó hábitos que permitieron re-utilizar trabajos previos,
documentar de forma adecuada el proceso de diseño, y generar dispositivos que se ajustan a
las especificaciones; se eliminó el uso de placas de pruebas (protoboards) y placas universales
(perfboard), siendo reemplazados por circuitos impresos diseñados por los estudiantes; se eliminó el
uso de productos con tecnologı́as obsoletas (familias 74xx y 40xx) para dar paso a dispositivos
semiconductores modernos; se creó un banco de proyectos que documenta de forma detallada el
proceso de concepción, diseño e implementación de un sistema digital de función especı́fica; se
concienció a los estudiantes y profesores sobre la importancia de la creación de nuevos productos
para el desarrollo tecnológico del paı́s.
Tanto los temas como la metodologı́a del presente plan de estudio representan una forma
novedosa de enseñanza enfocada a generar en los estudiantes habilidades necesarias para crear
productos innovadores, proporcionando conocimientos actualizados y metodologı́as de diseño
modernas basadas en herramientas abiertas que permiten conocer y ejecutar el flujo de diseño
completo, trabajar en equipo y compartir los resultados con quien esté interesado. Se espera que
estas habilidades sean utilizadas por la industria para crear una oferta local de bienes y servicios
relacionados con el diseño digital y que se genere el interés necesario en algunos estudiantes para
crear empresas de diseño digital.
De la experiencia obtenida al dictar cursos de capacitación en diferentes centros de formación
a lo largo del paı́s (UDFJC, UIS, ULA, Escuela Naval Almirante Padilla (ENAP), USTA, Escuela
Colombiana de Ingenierı́a (ECI)) y en dos empresas (SAR S.A., Microensamble S.A.), se puede
decir que muchos profesionales no cuentan con las habilidades necesarias para absorber y aplicar los
conocimientos necesarios para el diseño e implementación de sistemas embebidos, debido en parte
al uso de metodologı́as de diseño obsoletas y al abandono de la implementación fı́sica por parte de
los centros de formación. De lo anterior se puede concluir que al aplicar el programa académico
propuesto se pueden generar en los estudiantes las habilidades necesarias para que puedan realizar
procesos de auto-aprendizaje, diseño e implementación de sistemas digitales, los que pueden ser
utilizados en las empresas para desarrollar sus propios productos.
Aunque en este capı́tulo se hizo una descripción detallada del proceso de aplicación de la
iniciativa CDIO a las asignaturas de pregrado, es importante que esta sea llevada a las asignaturas de
posgrado. En el DIEE de la UNAL existen dos programas de postgrado: Maestrı́a en automatización
industrial y la maestrı́a en ingenierı́a eléctrica; ninguno de estos programas tiene como lı́nea de
profundización la electrónica digital, razón por la cual no se realizó una transferencia de los
conocimientos adquiridos a estos programas de posgrado. Sin embargo, se creó una lı́nea de
investigación en el nuevo programa de maestrı́a en ingenierı́a electrónica, este programa está en las
4.6 Discusión 87
últimas etapas de su creación y se espera que reciba sus primeros estudiantes en el año 2012. La lı́nea
de investigación creada para esta maestrı́a recibe el nombre de: Desarrollo de sistemas embebidos
aplicados y las asignaturas derivadas de este estudio que serán ofrecidas son: Temas avanzados en
técnicas digitales y Diseño e implementación de sistemas embebidos.
5. El Conocimiento Como Bien Público y su
Papel en la Difusión Tecnológica
5.1. Introducción
Es indudable que el desarrollo tecnológico de un paı́s se encuentra ligado al mejoramiento
de la calidad de vida de sus habitantes. Para que en un paı́s en vı́as de desarrollo se realice una
transferencia tecnológica (y de conocimientos asociados a la tecnologı́a que se transfiere) exitosa que
permita desarrollar productos similares, y ajustados al contexto socio-económico local, es necesario
que el paı́s cuente con la capacidad de absorber las habilidades, técnicas, información y organización
asociadas a dicha tecnologı́a. Esta absorción de conocimientos debe ser realizada por un gran número
de personas para que la transferencia tenga un impacto significativo en la sociedad. La difusión de
estos conocimientos es, el punto donde fallan los canales tradicionales de transferencia de tecnologı́a
y de conocimientos, ya que restringen el acceso a un grupo especı́fico (representantes en el paı́s
de productos extranjeros; quien pueda pagar por cursos de capacitación; quienes puedan ingresar a
centros de formación consolidados). Para obtener la máxima difusión del conocimiento, es necesario
considerarlo como un bien público (no rivalidad, sin posibilidad de exclusión), y como tal, el acceso
a él, debe ser un derecho y por lo tanto, se deben garantizar los mecanismos de difusión para que
llegue a los sectores de la sociedad interesados en él. De igual forma, es un deber de los sectores que
utilizan este bien contribuir a su difusión, actualización, mejoramiento, y crecimiento.
En este estudio, el conocimiento se refiere a las ideas intangibles, información y datos de
todo tipo en el que el conocimiento es expresado u obtenido; como todo tipo de entendimiento
adquirido a través de la experiencia o estudio ya sea propio, cientı́fico, académico o no académico. El
conocimiento puede ser visto como una mercancı́a y como una fuerza constitutiva de la sociedad,
lo que evidencia la naturaleza compleja de este recurso; la adquisición y descubrimiento de
conocimiento es un proceso social y personal.
La diferencia entre esta propuesta y las existentes promovidas por los organismos gubernamen-
tales está en el énfasis en la transferencia y difusión gratuitas del conocimiento y del saber hacer en
la concepción, diseño, implementación y diseño de sistemas embebidos. La Universidad Nacional de
Colombia, como el centro educativo más importante de Colombia, tiene la obligación de cubrir este
tipo de necesidades y hacer partı́cipes de los beneficios de su actividad académica e investigativa a
los sectores sociales que conforman la nación colombiana; por este motivo, todos los resultados del
presente trabajo estarán a disposición de quien esté interesado sin restricción alguna.
En este capı́tulo se hablará de las licencias Creative Commons, una forma de licenciamiento
que permite asignar diferentes “permisos” de utilización a un determinado trabajo y pueden ser
utilizadas en productos software y hardware. Se explorará el movimiento de software libre y código
abierto (FOSS) para identificar como contribuye a la transferencia tecnológica y como millones de
usuarios a lo largo y ancho del mundo trabajan de forma conjunta para difundir, actualizar, mejorar,
y aumentar las aplicaciones disponibles. Adicionalmente, se presenta una propuesta para la creación
de un movimiento que funciona con polı́ticas similares pero centrado en el desarrollo hardware.
5.2 El Conocimiento como Bien Público 89
5.2.1. Auto-Gobierno
Ostrom [67] argumenta que la forma más eficiente de administrar un bien común es el auto-
gobierno ejercido por los beneficiarios de dicho recurso. Si estos beneficiarios son conscientes de la
importancia de un uso eficiente y racionado que garantice la existencia de este bien y toda acción o
decisión que se haga es formulada pensando en el beneficio común se crearán normas que garantizan
el beneficio de todos los usuarios y la sostenibilidad del recurso. El auto-gobierno requiere acciones
colectivas que “emergen cuando se requiere el esfuerzo de dos o más individuos para cumplir con
una meta” [68]. Otro aspecto importante de las acciones colectivas es que son voluntarias por parte
de los individuos [69]. El auto-gobierno requiere de la acción combinada de conocimiento y voluntad
unido a normas institucionales consistentes. Ostrom [70] y Baland y Platteau [71], consideran que
los atributos necesarios para que un recurso tenga una probabilidad alta de crear asociaciones de
auto-gobierno son:
Posibilidad de mejoramiento: El recurso se encuentra en un punto tal que sea inútil crear una
organización alrededor de él.
Prominencia: Los usuarios dependen del recurso para una parte importante de su sostenimiento.
Confianza y reciprocidad: Los usuarios del recurso confı́an en que los demás mantendrán las
promesas y se relacionarán entre ellos con reciprocidad.
Autonomı́a: Los usuarios pueden determinar reglas sin la intervención de autoridades externas.
Experiencia previa en organización y liderazgo local: Los usuarios poseen habilidades mı́nimas
de organización y liderazgo a través de la participación en otras asociaciones locales u
organizaciones en grupos cercanos.
90 5 El Conocimiento Como Bien Público y su Papel en la Difusión Tecnológica
De los anterior se puede decir que para que pueda emerger un auto-gobierno asociado a un
recurso debe existir un excelente canal de comunicación entre sus usuarios y que todos ellos deben
conocer y aceptar una serie de normas (creadas por ellos mismos) que fueron formuladas pensando
en el beneficio común. Un grupo de estas normas debe establecer mecanismos de resolución de
conflictos; esto es vital ya que toda la organización se basa en la confianza mutua y no puede
permitirse que las relaciones entre los usuarios se deteriore. Adicionalmente, se requieren miembros
que tengan claro que el éxito de sus acciones y el sostenimiento del recurso depende de sus acciones,
las cuales deben realizarse teniendo en cuenta el beneficio común. El conocimiento no se ve afectado
por la sustracción (uso) del mismo, todo lo contrario, el objetivo es obtener el máximo número de
usuarios; sin embargo, este conocimiento puede llegar a ser obsoleto rápidamente, y por lo tanto
inservible; para que esto no suceda, se requiere de su actualización para que refleje el estado actual
en el área de interés.
donde D es el incentivo al cambio y compara los beneficios de utilizar las reglas tradicionales
(BO) frente a los beneficios de utilizar un nuevo grupo de reglas basadas en un gobierno comunal
(BN)
D = BN − BO
Principios de diseño
El primer paso para gobernar un bien público es la identificación de los principios de diseño
del recurso. Ostrom [66] después de dirigir un gran número de estudios empı́ricos sobre gobernancia
de recursos de bienes comunes, encontró una serie de principios de diseño que hacen que el recurso
sea sostenible a lo largo del tiempo:
Los individuos que están sujetos a estas reglas pueden modificarlas y participar en su
elaboración.
Las autoridades externas deben respetar el derecho de los miembros de la comunidad a crear
sus propias reglas.
Es importante mencionar que no existe una combinación de principios que garantice el éxito, es
necesario probar con este grupo para identificar los principios generales que deben incluir los sistemas
robustos. Estos ocho puntos se encuentran fuertemente relacionados con los atributos que requiere un
recurso y un usuario de este recurso para que pueda emerger un auto-gobierno y buscan que todos los
participantes tengan pleno conocimiento de las reglas que monitorean, regulan, fijan y controlan las
actividades de los miembros.
Es interesante ver como este pensamiento se aplica a proyectos de código abierto. El software
no es un recurso tı́pico, porque no existe un costo asociado a su uso; sin embargo, es un bien público,
ya que es un recurso comunal que prospera o decae gracias a la contribución de sus miembros. Los
participantes de este tipo de recurso son un grupo de colaboradores, en lugar del grupo de posibles
propietarios. Un aporte de un usuario a mejorar el proyecto se traduce en un beneficio colectivo.
Los contribuyentes pueden ser empresas que pagan a una persona para que adicione una nueva
caracterı́stica, sin embargo, ellos pueden decidir no compartir estos cambios para tener una ventaja
competitiva.
En los proyectos de código abierto puede utilizarse una variación modificada de la ecuación de
Ostrom [76]:
BC > BN + C
92 5 El Conocimiento Como Bien Público y su Papel en la Difusión Tecnológica
Listas de discusión en donde los creadores de estas herramientas responden preguntas, y buscan
en conjunto soluciones a problemas especı́ficos
grupo de actores que producen y mantienen el software. En la Figura 5.1 se ilustra el marco definido
por Ostrom y Hess [4] para analizar el conocimiento como bien común, aplicado al movimiento
FOSS.
Características físicas
Utilidad, estructura del Campo de Accción
software y plataforma
para administrar la
colaboración Situaciones e
Acción
Contribuir
Atributos de la
Comunidad Patrones de
Interacción
Usuarios y
desarrolladores
voluntarios Actores
Usuarios,
programadores
Criterios
evaluativos
Reglas en uso
Licencias GNU/GPL
Resultados
Creación y
mantenimiento
de software
Figura 5.1.: Marco para analizar el conocimiento como bien común aplicado al movimiento FOSS.
Fuente: [4] pág 46
Reglas
Stallman [38] sostiene que las propiedades digitales del software hacen posible considerarlo
como un bien público, proporcionando a sus usuarios la libertad de utilizarlo, distribuirlo y
modificarlo. Esta filosofı́a se basa en cuatro libertades que encarnan el principio copyleft:
Libertad de estudiar como funciona el programa, y cambiarlo para hacer lo que se desee. El
acceso al código fuente es una condición para esto.
Libertad para distribuir copias de versiones modificadas. Lo que permite que la comunidad se
beneficie de estos cambios. El acceso al código fuente es una condición para esto.
Esta filosofı́a permite que los conocimientos y habilidades que el programador posee puedan
ser transferidas a programadores, empresas, instituciones académicas y sociedades; ya sea en forma
de producto, o como herramienta de enseñanza. Esta actividad representa un proceso de transferencia
tecnológica, en donde, el que suministra la tecnologı́a proporciona todos los medios para que el
receptor pueda absorberla y transformarla para satisfacer necesidades en su entorno social; sin
embargo, para que la transferencia sea exitosa deben existir personas con la disposición y capacidad
de asimilar los conocimientos asociados. Adicionalmente, Stallman ideó una forma de trabajar con las
leyes de derechos de autor que proporciona una alternativa al licenciamiento tradicional. El software
94 5 El Conocimiento Como Bien Público y su Papel en la Difusión Tecnológica
con licencia copyleft estipula que cualquier modificación que se le realice adquiere los principios de
licenciamiento del software original; lo que se conoce con el nombre de licencia tipo viral y garantiza
que las mejoras que se realicen al código inicial pueden ser utilizadas por la comunidad. La licencia
General Public License (GPL)1 (GNU General Public License) fue creada para implementar estos
principios.
Atributos de la comunidad
La comunidad FOSS está compuesta por usuarios y programadores voluntarios motivados
por intereses tecnológicos, socio-polı́ticos, económicos y académicos. Desde el punto de vista
tecnológico, resulta más efectivo en tiempo y en dinero, participar en un proyecto conjunto para
la realización de una aplicación que satisface una determinada necesidad. La principal motivación
socio-polı́tica es la creencia por parte del programador en la filosofı́a del movimiento, en la lucha
contra el monopolio del software; adicionalmente, para que el proyecto permanezca durante mucho
tiempo, es necesario que sea atractivo para vincular el mayor número de participantes y de esta forma
sobrevivir en el futuro. Las motivaciones económicas y académicas pueden ser consideradas en forma
conjunta ya que al participar en estos proyectos, los miembros adquieren o mejoran sus habilidades de
programación ya sea revisando, leyendo y entendiendo el código existente o sometiendo a la revisión
de los demás miembros sus contribuciones. Por otro lado, esta participación puede verse como una
vitrina en donde el programador muestra sus capacidades y puede ser contactado por empresas para
establecer relaciones comerciales. En los dos casos la participación es una forma de inversión y una
forma de ganar experiencia y reputación [79].
En proyectos con un gran número de personas asociadas, solo un pequeño porcentaje de ellos
realizan la mayor parte del trabajo. En la actualidad muchas empresas están participando de forma
activa en estos proyectos, aportando programadores pagados para que contribuyan con el desarrollo
y mejoramiento del software. Un estudio realizado a 25 firmas participantes en el proyecto FOSS
Linux Operating System [80] indica que la tercera parte de los programadores encuestados son
pagados por sus empleadores para participar, y que su motivación a participar es el interés propio
en estandarización, disminución de costos, estrategias para debilitar a la competencia y esfuerzos
para hacer sus productos compatibles con los productos derivados del movimiento FOSS.
El estudio en [81] indica que las motivaciones de los que participan en este tipo de proyectos
movidos por la necesidad (need-driven) y la de los aficionados (hobbyists) que participan por
diversión o como pasatiempo son muy diferentes. Las preguntas, sugerencias y contribuciones de
los participantes movidos por necesidades, alientan a los aficionados a realizar búsquedas de retos
útiles e interesantes. Los aficionados proporcionan asistencia y soporte a los que participan por
necesidad, respondiendo preguntas, creando caracterı́sticas requeridas, integrando contribuciones al
código fuente, y proporcionando servicios de mantenimiento como, por ejemplo, preservar o mejorar
la arquitectura, modularidad y compatibilidad del código. Esta interacción, es crı́tica para permitir
que los proyectos de código abierto funcionen sin un sistema formal de asignación e identificación de
tareas.
Atributos fı́sicos
Existen tres categorı́as [1] en el movimiento FOSS que pueden ser consideradas como atributos
fı́sicos:
1
[Link]
5.4 Hardware Copyleft 95
1. La utilidad del software: Como se mencionó anteriormente, para que una persona participe en
una actividad relacionada con el bien público, el costo por no hacerlo debe ser mayor que el
beneficio por participar, es decir, el software debe representar una utilidad grande para que
valga la pena participar en el proyecto.
Esta infraestructura trabaja junto con las reglas establecidas para proporcionar procesos que
direccionen nuevos trabajos; un sistema para recibir y revisar contribuciones de nuevos módulos que
pueden ser incluidos en futuras versiones. En conclusión, los proyectos FOSS evolucionan en el
tiempo como resultado de la configuración de sus reglas, atributos de la comunidad y atributos fı́sicos
relacionados con la estructura del software para hacer fácil la colaboración y herramientas efectivas
para la coordinación de equipos y manejo de contenido.
Esta propuesta presenta una visión diferente al proyecto iniciado con Qi-hardware, al incluir a
la academia y buscar un grupo donde existan desarrolladores hardware y software que contribuyan a
la creación de plataformas fı́sicas con su respectivo software de aplicación.
La figura 5.2 ilustra el marco definido por Ostrom y Hess [4] para analizar el conocimiento
como bien común, aplicado al movimiento hardware copyleft.
Características físicas
Diseños de referencia
hardware, software y Campo de Accción
aplicaciones. plataforma
para administrar la
colaboración Situación de
acción
Contribuir
Atributos de la
Comunidad Patrones de
Interacción
Usuarios, desa- Actores
rrolladores voluntarios Usuarios,
y estudiantes programadores,
aficionados,
Administradores,
Reglas en uso empresarios,
Licencias Criterios
estudiantes
GNU/GPL evaluativos
Creative Commons
CC-BY-SA
Resultados
Creación, mantenimiento de
hardware y software
(aplicaciones, configuración
básica, diseños de referencia)
documentación, tutoriales
Figura 5.2.: Marco para analizar el conocimiento como bien común aplicado al movimiento hardware
copyleft. Adaptación al hardware copyleft de: [4]
5.4.1. Reglas
Creative Commons 4 es una organización no gubernamental sin ánimo de lucro que ha
desarrollado una serie de licencias basadas en principios similares a los del movimiento de software
libre y que pueden ser aplicadas a trabajos realizados en música, arte, video, texto y notas de clase.
Para reproducir una plataforma hardware, es necesario suministrar los archivos de las herramientas
CAD de diseño y fabricación (PCB, Lista de materiales), por lo que esta iniciativa resulta adecuada
para distribuir este tipo de proyectos. Estas licencias permiten que el autor de un trabajo conserve la
propiedad intelectual (los derechos asociados a esta) pero posibilitando su copia y distribución, con la
única condición de dar créditos al autor del trabajo original y que el trabajo derivado posea la misma
licencia.
Se pueden elegir diferentes permisos dependiendo de los deseos del autor; para definir dichos
permisos Creative Commons proporciona una serie de preguntas que buscan determinar los derechos
que se desean conservar y los que desean liberar. Las preguntas claves son:
2. ¿Es permitido a los usuarios crear trabajos derivados del contenido digital? Si es permitido,
4
[Link]
5.4 Hardware Copyleft 97
¿Estas modificaciones deben tener la misma licencia que el trabajo original (esquema de
licencia viral), o deben ser distribuidos bajo un esquema de licencias diferente?
Estas preguntas son la base para definir un esquema de licencias modular. Existen cuatro
bloques constructivos para las licencias Creative Commons:
2. No comercial (NC). Se permite la distribución del trabajo sin fines comerciales, si se desea
utilizar este trabajo para obtener dinero es necesaria una autorización del autor.
3. No a trabajos derivados (ND). Permite la copia y la distribución del trabajo original sin
modificaciones.
4. Compartir de la misma forma (SA). Exige que todo trabajo derivado del uso de proyectos con
este esquema de licencias deben tener la misma licencia de los trabajos originales.
Licencia CC-BY-SA
La licencia creative commons CC-BY-SA permite compartir, copiar, distribuir, ejecutar,
comunicar públicamente la obra y hacer obras derivadas, con la condición de reconocer los créditos
de la obra original de la forma indicada por el autor sin que esto implique que se cuenta con su apoyo o
que apoya el uso que se hace de su obra; si altera o transforma esta obra, o genera una obra derivada,
debe distribuir la obra generada bajo la misma licencia. Este esquema de licencias ha sido elegido
para los productos de este estudio.
Al elegir que el resultado sea de acceso libre, conservando los derechos de autor; se proporciona
un bien público que puede ser utilizado por cualquier sector de la sociedad para suplir necesidades
propias; su naturaleza viral asegura que se agregarán nuevos proyectos a este bien; la labor de la
comunidad será definir que proyectos cumplen con los requerimientos de calidad para ser incluidos
en los repositorios públicos.
Licencia GPL
Debido a que los proyectos hardware requieren la ejecución de un software que implemente la
funcionalidad requerida, es necesario diferenciar los componentes de dichos sistemas; casi la totalidad
de las aplicaciones software tomadas como referencia para adaptar las plataformas desarrolladas
poseen la licencia GPL, por esta razón se conservarán las libertades de este tipo de licencias para
el componente software:
Libertad de estudiar como funciona el programa, y cambiarlo para hacer lo que se desee.
Caracterı́sticas
Para que un proyecto sea considerado hardware copyleft es necesario proporcionar los archivos
necesarios para cumplir con las libertades de las licencias GPL y CC-BY-SA. A modo de ver del autor
de este trabajo, la clave para garantizar dichas libertades está en suministrar la información necesaria
para modificar los proyectos; para lo que es necesario poseer los conocimientos necesarios y tener
acceso a los archivos de diseño.
Es posible reproducir un diseño realizado en cualquier herramienta Computer-Aided Design
(CAD); sin embargo, existen dos factores que lo dificultan: el uso de herramientas propietarias y la
complejidad del proyecto original. El uso de herramientas propietarias implica el pago de fuertes
sumas de dinero para adquirir licencias y la complejidad del diseño puede incrementar de forma
considerable el costo del prototipo. Es necesario reducir al máximo los costos para hacer atractiva
la fabricación de productos propios5 ; Por lo que es recomendable utilizar herramientas abiertas en el
desarrollo de los proyectos hardware copyleft, en el capı́tulo 4 se presentó una metodologı́a de diseño
que utiliza software abierto únicamente y será utilizada como referencia para el desarrollo de nuevos
productos.
Componente hardware
• Esquemáticos: Diagramas eléctricos que representen el diseño completo.
• Netlist: Archivo generado a partir del esquemático, contiene los elementos del circuito
(señales y componentes), sus interconexiones, y asociaciones con representaciones fı́sicas
(dimensiones de lı́neas, footprints).
• Layout: Representación fı́sica de la placa de circuito impreso, utiliza el netlist como
entrada,
• Archivos de fabricación: Archivos que son utilizados para la fabricación de las placas de
circuito impreso, son útiles para los usuarios que solo deseen reproducir el proyecto.
• Archivos CAD utilizados en la creación de formas especiales en las placas de circuito
impreso o fabricación de la carcasa.
• Lista de componentes Listado de los componentes utilizados en la placa de circuito
impreso.
• Aplicaciones
5.4.2. Recursos
Uno de los objetivos del presente trabajo es crear una comunidad que utilice los frutos del
presente trabajo, para adquirir conocimientos relacionados con el diseño de sistemas embebidos y
crear nuevos productos que den solución a necesidades locales. Para facilitar las tareas de vinculación
de usuarios, comunicación entre usuarios, administración y depuración del recurso, se creó el portal
público linuxencaja6 ; donde se proporcionan facilidades para: reunir la documentación existente;
proporcionar facilidades para la creación de nuevos proyectos; almacenar los archivos generados por
nuevos proyectos y mantenimiento de repositorios de código fuente y archivos de diseño de proyectos
existentes. El acceso a la información generada en el desarrollo de los proyectos existentes y a los
servicios de este portal no tiene restricciones de ningún tipo. A continuación se realiza una descripción
de los recursos con los que cuenta la comunidad linuxencaja.
Herramientas
wiki que permite la elaboración de tutoriales, documentación sobre temas relacionados con el
diseño de sistemas digitales o reportes del proceso de diseño de nuevos proyectos.
Diseños de referencia
Se cuenta con 7 tarjetas de desarrollo (ver descripción en el capı́tulo 3) que cumplen con
los requerimientos de los dispositivos hardware copyleft; estos diseños de referencia ya han sido
construidos y probados en diferentes aplicaciones por lo que su funcionalidad es garantizada; todos
ellos utilizan componentes que son fáciles de conseguir y no requieren grandes costos para su
reproducción. En los repositorios del portal linuxencaja se encuentra la información necesaria para
reproducir entender y modificar estas plataformas; ası́ como el código fuente de las siguientes
aplicaciones (que pueden ser utilizadas para estudiar su funcionamiento):
loader y blink: Aplicación que permite cargar binarios en la memoria interna del SoC (loader)
y una aplicación que despliega un mensaje por el puerto serial de la plataforma y realiza un
blink en un LED.
Aplicaciones en espacio de usuario: Ejemplos que permiten comunicarse con los drivers desde
espacio de usuario, y ejemplos de aplicaciones sencillas utilizando las facilidades del sistema
operativo Linux.
Aplicaciones para configuración: Algunas plataformas de desarrollo poseen micro-controladores
de 8 bits o FPGAs que pueden ser programados o configurados desde la misma plataforma. Se
suministra el código fuente de estas aplicaciones.
Documentación
Linuxencaja proporciona documentación y tutoriales para:
Artı́culos sobre la metodologı́a de diseño y el programa académico generados por este trabajo.
Proceso para proporcionar soporte a una plataforma embebida en el kernel de Linux.
Comunicación entre tareas hardware (implementadas en PLDs) y software (implementadas en
un SoC)
Inicialización de SoCs.
Proceso de fabricación y montaje (manual y automático) de placas de circuito impreso.
Proceso de diseño que utiliza la metodologı́a de diseño y el programa académico propuestos en
este trabajo.
Material para los cursos basados en la metodologı́a propuesta (en construcción).
Tutoriales sobre temas de interés relacionados con diseño software y hardware de sistemas
digitales.
Miembros
Linuxencaja cuenta en la actualidad con diferentes tipos de usuarios: desarrolladores software,
desarrolladores hardware, aficionados, estudiantes, industriales y administradores del servidor. La
figura 5.3 muestra los tipos de miembros que hacen parte de la comunidad linuxencaja
Los desarrolladores hardware y software se encargan de generar las plataformas de desarrollo
y las aplicaciones software que las controlan e implementan su funcionalidad; el número actual
de desarrolladores es pequeño 7 , pero va en aumento gracias a los aportes de los estudiantes. Los
7
En la actualidad los profesores Carlos Camargo, Jorge Sofrony y Jonatan Gómez de la Universidad Nacional; Jorge
Ramón de la Universidad Industrial de Santander; Cesar Pedraza de la Universidad Santo Tomás; Fredy Segura de la
Universidad de los Andes; Nelson Castillo de Google; Andrés alderón de emQbit y Rafael Zurita de la Universidad
Nacional de Camahue en Argentina
5.4 Hardware Copyleft 101
Industriales Centros de
formación
Administradores
Aficionados Estudiantes
aficionados, son personas a las que les gusta el diseño de sistemas embebidos, el desarrollo software,
y conocer el estado de la tecnologı́a; su papel es muy importante ya que por lo general, ellos se
encargan de labores de mantenimiento, depuración, participan en los foros resolviendo preguntas y
ayudan a mejorar el material existente.
Los estudiantes, son miembros temporales que pueden o no continuar siendo parte de la
comunidad después de cursar las asignaturas, sus aportes deben ser revisados con cuidado para
verificar la calidad de su trabajo (muchos proyectos no se finalizan) y solo los mejores proyectos
serán parte de los repositorios de la comunidad8 . Gracias a la vinculación de los estudiantes a la
comunidad como parte de la metodologı́a para la enseñanza de sistemas digitales presentada en el
capı́tulo 4 se han creado 2 nuevos proyectos que entran a ser parte de los recursos; lo que muestra el
éxito de esta modalidad de vinculación. Los estudiantes están vinculados a diferentes universidades,
la mayorı́a son de la Universidad Nacional de Colombia sede Bogotá. Por otro lado, gracias a los
cursos de actualización que se dictaron en la universidades Distrital e Industrial de Santander y al
curso de sistemas embebidos que se dictó en la Universidad de los Andes, existen proyectos de grado
asociados a las plataformas hardware copyleft diseñadas en esta investigación; adicionalmente, la
Universidad Industrial de Santander utilizará estas plataformas como herramientas didácticas en los
cursos del área de electrónica digital desde este año, con lo que se espera un aumento considerable en
el número de estudiantes vinculados a la comunidad linuxencaja.
La universidad de los Andes está creando un proyecto basado en los conocimientos adquiridos
en esta investigación; utilizando las técnicas de fabricación y las aplicaciones software generadas en la
realización de la familia de plataformas ECB AT91, el Centro de Microelectrónica de la Universidad
de los Andes (Centro de Microelectronica de la Universidad de los Andes (CMUA)), liderado por el
PhD Fredy Segura está diseñando y construyendo una Single Board Computer (SBC) con el fı́n de
adquirir experiencia en la fabricación de sistemas digitales; lo que representa un gran cambio en la
polı́tica de investigación de este grupo, caracterizado por su interés en la micro y nano-electrónica.
8
Durante los dos perı́odos académicos en los que se han vinculado estudiantes a la comunidad como parte de su proyecto
de curso, se han desarrollado 5 nuevas aplicaciones aplicaciones
102 5 El Conocimiento Como Bien Público y su Papel en la Difusión Tecnológica
Los industriales miembros de la comunidad se pueden dividir en dos grupos: los que hacen
pequeños aportes en las listas de discusión, y no han creado proyectos nuevos, y los que participan
activamente y aportan su trabajo a la comunidad. El primer grupo está conformado por empresas
consolidadas desde hace varios años (a excepción de la empresa emQbit) y su comportamiento es
entendible debido a su naturaleza privada. El segundo grupo esta conformado por micro-empresas
que han sido creadas por estudiantes que generaron nuevos productos con los recursos suministrados
por la comunidad y utilizan los resultados de los proyectos académicos.
Los administradores (2 personas Carlos Camargo y Andrés Calderón) son personas que cuentan
con los conocimientos necesarios para configurar servidores y realizar mantenimiento a los servicios
suministrados por el portal.
Figura 5.4.: Adaptación de la plataforma de desarrollo ECB AT91 (a) a un monitor de signos vitales
(b) Fuente: [5]
En el segundo caso, la empresa emQbit, agregó una etapa de adquisición de señales análoga,
un sistema de comunicación y un sistema de referencia geográfica basada en un Global Positioning
5.5 Flujo de Diseño Utilizando Hardware Copyleft 103
System (GPS), para crear un sistema que permite medir la calidad del servicio de energı́a eléctrica
[82], empleando 6 meses en ello.
Los casos anteriores muestran una disminución drástica del tiempo necesario para la
producción de nuevos productos comparados con el tiempo que demoró el desarrollo de la placa
utilizada como referencia. Esto es posible, gracias a la posibilidad de utilizar los archivos de diseño de
la plataforma los cuales, han pasado por un proceso de depuración y optimización, y el código fuente
de las aplicaciones necesarias para la ejecución de aplicaciones Linux (Board Support Package Board
Support Package (BSP)). Lo anterior representa un ahorro de tiempo considerable ya que el proceso
de concepción, diseño, puesta en funcionamiento y generación de aplicaciones para esta plataforma
duró 18 meses.
La figura 5.5 muestra una comparación del flujo de diseño cuando se utilizan o no plataformas
hardware copyeft
Especificación
Del sistema
Prototipado
Software Hardware
(uC, uP, DSP, SoC) (FPGA, CPLD)
Particionamiento Particionamiento
SW, simulación, HW, simulación,
compiación síntesis Elección de herramientas de desarrollo
Diseño, construcción y pruebas de la
plataforma física
Como puede apreciarse en la figura 5.5 la utilización de plataformas hardware copyleft afecta
únicamente la etapa de implementación en el proceso de diseño, esto debido a que las primeras
etapas no deben tener ninguna restricción tecnológica. Cuando se utilizan las plataformas hardware
copyleft suministradas por este trabajo es posible reducir de forma considerable las tareas necesarias
(actividades a realizar en el prototipado) para la fabricación de un prototipo funcional; ya que al
proporcionar los archivos necesarios para la modificación de las plataformas, se reduce de forma
considerable el tiempo requerido para diseñar, construir, probar la placa de circuito impreso e
implementar las funciones básicas software y hardware. Por otro lado, se suministra la información
de los componentes utilizados, lo que facilita su producción, al utilizar dispositivos que no requieren
firmas de contratos o la compra de un número muy grande de unidades. La ventaja de esta alternativa
frente al uso de plataformas de desarrollo comerciales está en la posibilidad de ajustarse a las
necesidades, lo que permite optimizar el número de componentes y reducir el costo final.
El proceso de selección de la arquitectura se limita a elegir dentro de la gama de procesadores
104 5 El Conocimiento Como Bien Público y su Papel en la Difusión Tecnológica
Tabla 5.1.: Caracterı́sticas de las plataformas de desarrollo hardware copyleft proporcionadas por el
presente estudio
Sistema Operativo
SPI/I2C/UART/
FPGA $USD
USB device
CPU $USD
CPU MHz
USB host
LCD
Plataforma
ECB ARM7 33 3.5 X X 0 - 6.5 0 NA 7.5 - 14.5 RT - eCos
ECB AT91 V1 180 18 X X X 6 9 NA 33 RT - Linux
ECB AT91 V2 180 18 X X X 6 9 20 53 RT - Linux
ECBOT 180 18 X X X 6 9 10 43 RT - Linux
ECB BF532 400 17 X 6 9 0 32 uCLinux
SIE 300 3 X X X 6 12 10 - 23 31 - 44 Linux
AndoroidStamp 454 8 X X X X 6 7 NA 21 Android
La opción más económica (De acuerdo con la tabla 5.1 es el uso de una plataforma basada
en los SoC SAM7, los cuales incluyen en el mismo sustrato las memorias volátiles y no volátiles;
la cantidad de memoria disponible es de máximo 256 kBytes para la memoria no volátil y 64
kBytes de memoria RAM, lo que puede ser suficiente para muchas aplicaciones; sin embargo, las
aplicaciones actuales que requieren capacidades multimedia, conexión a diferentes redes y manejo
de sistemas de archivos no pueden implementarse en esta arquitectura. El puerto de comunicaciones
USB host permite la conexión de una gran variedad de periféricos (audio, comunicaciones y medios
de almacenamiento) disponibles a bajos precios; reduciendo de forma considerable los costos finales.
Las FPGAs son muy costosas y elevan de forma considerable el consumo de potencia del dispositivo,
por lo que deben ser utilizadas en aplicaciones donde sea estrictamente necesario, ya sea para cumplir
con restricciones temporales o para cumplir con funcionalidades especiales.
5.6. Discusión
El uso de plataformas hardware copyleft permite ahorrar tiempo y dinero en el desarrollo de
aplicaciones proporcionando diseños de referencia modificables que pueden ser utilizados como base
para futuros desarrollos.
Las plataformas suministradas como parte del recurso de la comunidad linuxencaja cubren un
amplio rango de posibles aplicaciones y pueden ser utilizadas por cualquiera que este interesado ya
sea para aumentar los conocimientos en el diseño e implementación de sistemas digitales, o para crear
productos novedosos que satisfagan necesidades especı́ficas de la sociedad.
9
Es necesario aclarar que los procesadores utilizados en este trabajo son solo una muestra de la gran cantidad de referencias
disponibles, por lo que es posible encontrar otros procesadores más económicos que implementen la funcionalidad
deseada, las plataformas suministradas por este trabajo permiten ahorrar tiempo y dinero en la elaboración del prototipo
y no necesariamente en el costo de fabricación en grandes volúmenes
5.6 Discusión 105
Empresa
Comunidad linuxencaja ● Transferencia de conocimiento. Necesidades:
● Procesos de fabricación. de la sociedad,
Monitoreo ● Metodologías de diseño. del mercado
tecnológico ● Diseños de referencia.
Elección
de la tecnología ● Pasantías ●Creación
● Servicios
Adquisición ● Soporte
● Financiación
Adaptación ● Regalías
● Capacitación
● Personal.
● Necesidades
Absorción y
asimilación
Academia
Aplicación ● Actualización de programas académicos.
● Generación de habilidades.
Difusión ● Creación de industria.
● Creación/adaptación de metodologías/
Investigación universitaria
procesos de diseño.
● Personal
● Conocimientos
el paı́s. Esta situación privilegiada trae consigo la obligación de hacer partı́cipe a la sociedad de los
resultados de su actividad académica; por esta razón, es un deber hacer que los contenidos de esta
investigación estén disponibles a: otros centros de formación para que puedan realizar la actualización
de sus planes de estudio, profesionales que deseen mejorar sus habilidades en el diseño de sistemas
digitales y a empresas que deseen mejorar las habilidades de sus empleados.
La metodologı́a presentada en este trabajo puede ser utilizada como referencia para trabajos
futuros, ya que permite dar solución a problemas que no pueden ser resueltos por trabajos de
doctorado realizados en el exterior. Este trabajo proporciona un buen punto de partida para actualizar
los planes de estudio relacionados con la electrónica digital y con una adecuada difusión es posible
que en un tiempo relativamente corto sea aceptado por un gran número de centros de formación.
de programación gráfica SIE Blocks y la plataforma robótica SIEBOT. SIE Blocks está basado en el
proyecto openblocks [83] desarrollado en el MIT, el cual a su vez sigue el trabajo en entornos de
programación gráficos Starlogo [84]; el que busca reducir las barreras que presentan los lenguajes de
programación tradicionales al ser utilizados por principiantes.
Como parte de la aplicación de la metodologı́a propuesta se creó una lı́nea de investigación
y dos asignaturas para la nueva maestrı́a en ingenierı́a electrónica; un trabajo importante es la
formulación de proyectos de posgrado que ayuden a la consolidación de esta lı́nea de investigación
y a la aplicación de los conocimientos generados al desarrollo de proyectos que vinculen a empresas
locales y estudiantes de maestrı́a.
A. Relaciones con la industria y la
Academia.
A.1. Introducción
En este anexo se enumeraran las actividades realizadas con centros académicos y con empresas
electrónicas del paı́s; y de esta forma mostrar como este estudio modificó las conductas de los
profesionales relacionados con el área de diseño electrónico.
EmQbit Ltda es una empresa colombiana líder en investigación y desarrollo de sistemas
electrónicos en la región. Combinando creatividad y experticia técnica emQbit ofrece a la
industria y a la academia soluciones que están al nivel del estado del arte en el desarrollo de
dispositivos electrónicos. EmQbit basa su modelo en el uso de tecnologías y métodos de
fabricación de vanguardia, en la innovación y en una constante apropiación de conocimiento
y su posterior difusión en la sociedad colombiana.
EmQbit es una idea que actualmente crece como el esfuerzo de gente que cree que las
oportunidades no aparecen por si solas sino que se deben generar. EmQbit crea soluciones
de Hardware y Software a través de desarrollos basados en Linux como sistema operativo
sobre sistemas embebidos.
EmQbit busca integrar tecnologías en sistemas embebidos para generar aplicaciones que
impacten varios sectores del mercado potencial. Para esto se tienen varias estrategias
diseñadas:
• Una constante investigación por parte de todos los miembros de la compañía sobre de
las tendencias actuales del mercado.
• Canales de comunicación con nuestros clientes actuales y con los potenciales, para
mejorar las soluciones existentes y para introducir nuevos desarrollos.
• Proponer tecnologías de punta para los proyectos de nuestros clientes. Nuestra
experiencia en el área y las tecnologías modernas nos permiten entregar a nuestros
clientes soluciones de la más alta calidad
EmQbit quiere establecer un entorno de trabajo agradable, creando una empresa llamativa
para los profesionales colombianos, donde la gente se sienta a gusto trabajando,
desarrollando, generando ideas.
Existe un gran mercado en el área y sabemos que somos competitivos. A futuro emQbit
dominará el diseño y la producción de sistemas embebidos en Latinoamérica, y será un
participe importante en la producción de soluciones embebidas a nivel mundial.
1/11 emQbit, Presentación de la empresa, Bogotá Febrero 16 de 2009
Mercados
Los mercados en los que emQbit tiene un espacio son:
• Comodities: Computadoras de una board (Single Board Computers).
• Highend appliances: cámaras, medidores de calidad del servicio de suministro
eléctrico, telemedicina.
• Servicios: Desarrollo de hardware y software, consultorías.
• Video Analítico para aplicaciones en seguridad, tráfico (control, vigilancia,
amonestaciones)
• Academia: starter kits, robótica educativa, capacitación.
Productos de emQbit
2/11 emQbit, Presentación de la empresa, Bogotá Febrero 16 de 2009
1. Computadoras en una tarjeta (SBC)
EmQbit desarrolla computadoras en una sola tarjeta (SBC por sus siglas en inglés) basadas
en procesadores de 32 bits, con soporte a herramientas de desarrollo de última generación y
Sistemas Operativos de alto nivel, como Linux. Las SBCs de emQbit integran en un área
inferior a 10x10cm, procesador, memoria RAM, almacenamiento no volátil, interfaces USB,
Ethernet, interfaces análogas, entre otras.
EmQbit es la única empresa local con experiencia en el desarrollo de este tipo de
dispositivos, creó la primera SBC colombiana de 32 bits capaz de correr el sistema operativo
Linux y posteriormente desarrolló la primera SBC colombiana para codiseño de hardware y
software basada en FPGA. Actualmente se encuentran en desarrollo nuevas SBC con
procesadores más potentes y con capacidades gráficas.
Los SBC de emQbit pueden ser integrados a gran cantidad de aplicaciones como sistemas
de control y monitoreo Industriales, sistemas de seguridad electrónica, puntos de venta,
telefonía IP, etc.
ECB_AT91 V1
La V1 está basada en un procesador (de 32bits) ARM9 a 180MHz de Atmel. El bajo número
de componentes y la simpleza del circuito impreso la hacen confiable y económica. Ha sido
diseñada para ejecutar Linux como sistema operativo y para aplicaciones orientadas con
conectividad a Internet. Cuenta con interfaz Ethernet, compatibilidad con adaptadores USB/
WiFi, incluye soporte a módem de telefonía celular 3G/GSM. El puerto USB permite el uso de
memorias, cámaras y casi cualquier otro dispositivo USB. A través de un microcontrolador
AVR de 8bits es posible realizar adquisición y procesamiento digital de señales.
La V1 puede ser usada en varios sectores industriales, en generación de energía, control de
procesos de manufactura, administración de tráfico, administración de sistemas de
impresión, infraestructura de comunicación, hosting de sitios web, recolección de datos,
3/11 emQbit, Presentación de la empresa, Bogotá Febrero 16 de 2009
prueba de equipos de laboratorio, sistemas de seguimiento, sistemas de interconexión entre
redes hetereogéneas, etc. Estas con las especificaciones de la ECB_AT91 V1:
• Procesador ARM9 (Atmel AT91RM9200) @ 180 MHz
• Soporte para Linux embebido
• hasta 64MBytes de SDRAM (Soporte para 8M/16M/32M/64M)
• 1 slot para SD/MM
• 1 10/100 Interfaz Ethernet
• USB 2.0 host
• Múltiples puertos seriales
• Puertos de expansión
• Reloj respaldato por bateria
• Soporte JTAG
ECB_AT91 V2
Evolución de la V1, la V2 agrega al diseño anterior un dispositivo de hardware reconfigurable
del tipo FPGA para permitir la ejecución de algoritmos de procesamiento de señales y de
imágenes en tiempo real, encripción por hardware, implementación de coprocesadores,
codecs de audio y video, etc.
El uso del FPGA permite la creación de periféricos adicionales, tales como controladores de
vídeo, múltiples puertos seriales y MACs (Ethernet, USB o CAN). La V2 también tiene como
propósito servir como herramienta de estudio de técnicas de codiseño Hardware/Software,
en donde es posible explotar simultaneamente las capacidades de un sistema operativo
como Linux y el alto nivel de paralelismo y velocidad de una FPGA.
2. Desarrollos Basados en SBCs de emQbit
Las V1 y V2 pueden ser usado en un rango muy grande de aplicaciones. emQbit ha usado
sus SBCs como base de algunos dispositivos. Dentro de los desarrollos más importantes
podemos presentar:
4/11 emQbit, Presentación de la empresa, Bogotá Febrero 16 de 2009
Gateway
Este sistema permite tener la conexión entre dos redes hetereogéneas: la red celular
GSM/GPRS y la red Ethernet.
• Módem GSM/GPRS de 4 bandas
• Ethernet 10/100
• Linux embebido
• Procesador ARM 9
• Memoria RAM de 32MB
• Memoria no volátil de 1GB
• 3 puertos USB
• Soporte para Bluetooth
• Soporte para WiFi
Sistema de Seguimiento GPSGSM
Sistema de seguimiento vehicular GPS que utiliza la red celular GSM/GPRS para el envío de
datos.
• Módulo GPS
• Módem GSM/GPRS de 4 bandas
• Linux Embebido
• Procesador ARM9
• Memoria RAM de 32MB
• Memoria volátil de 256MB
Switch de RadioFrecuencia
Este sistema permite tener control sobre un switch de radiofrecuencia de 4 canales a través
de una red ethernet, utilizando una interfaz web o comandos SNMP.
5/11 emQbit, Presentación de la empresa, Bogotá Febrero 16 de 2009
• MiniLCD de texto
• Switch de RadioFrecuencia de 4 canales
• Controlado por los protocolos SNMP y HTTP
3. Redes Inalámbricas de Sensores (WSN)
Una red de sensores inalámbricos (WSN) está compuesta por dispositivos terminales o
nodos sensores que colectan la información del entorno. La red WSN puede conectarse a
otras redes a través de un gateway para realizar monitoreo y gestión remota. Al gateway
llega la información colectada por toda la red. En muchas ocasiones estos gateways deben
ser dispositivos computacionalmente más poderosos que los nodos, siendo implementables
con sistemas como la ECB_AT91 V1. Este tipo de redes están orientadas a la
autoconfiguración y son robustas debido a la gran cantidad de sensores que mantienen
conexiones seguras y datos redundantes en la red.
Las aplicaciones de la redes WSN se pueden clasificar en tres grupos: recolección de datos
de un entorno, monitoreo de seguridad y seguimiento de nodos. emQbit a desarrollado un
nodo para este tipo de redes, orientando su aplicación especialmente al monitoreo de
variables ambientales, tales como, temperatura, humedad relativa y luminosidad, en pro de
encontrar un nicho en el mercado de la agricultura, o en la integración con los sistemas de
monitoreo en edificios inteligentes.
Estas son las especificaciones del nodo emote:
• Transceiver CC240 a 2.4GHz
• Antena integrada Finverted en tecnología de microcintas
• Microcontrolador AVR Atmega128L
6/11 emQbit, Presentación de la empresa, Bogotá Febrero 16 de 2009
• Integración con redes Ethernet, WiFi, Bluetooth, etc.
• Implementa el estándar IEEE 802.15.4 con soporte para aplicaciones Zigbee
• Compatible con nodos MicaZ
• Operación a 2.5V4.0V
4. Sistemas para Interfaz con Humanos (HMI)
EmQbit está desarrollando dispositivos que puedan ser utilizados como sistemas de interfaz
con humanos (o computadoras de panel). El objeto de este tipo de dispositivos es el de
proporcionar una interfaz gráfica para interactuar con el usuario, como ejemplos de este tipo
de sistemas podemos nombrar los monitores de señales biológicas, Controladores y
supervisores de procesos industriales, Puntos de Venta, Sistemas de Seguridad.
La principal característica de estos dispositivos es el bajo costo, en comparación a la
utilización de computadores de escritorio, ya que estos dispositivos solo realizan una tarea
específica para la que fueron creados, lo cual los hace muy eficientes.
Las especificaciones técnicas de estos dispositivos se listan a continuación:
• Linux Embebido
• Pantalla de toque LCD a todo color de 320x340 pixeles
• Procesador ARM9
• Memoria RAM 32MB
• 2 puertos USB
• Soporte para Bluetooth
• Soporte para Wifi
5. Kits de Robótica
EmQbit cree necesario que la empresa privada colombiana se comprometa en la reducción
de la brecha tecnológica en el País. Como parte de su labor, emQbit ha creado kits de
robótica educativa que pueden ser usados dentro de gran variedad de programas
7/11 emQbit, Presentación de la empresa, Bogotá Febrero 16 de 2009
academicos, los cuales pueden ir desde cursos básicos para estudiantes de educación
media hasta cursos de pregrado y postgrado en ingenierías Eléctrica, Electrónica, Sistemas
y Mecatrónica.
ECBOT es el sistema de robotica más avanzado desarrollado por emQbit, basado en
procesadores ARM9 de 32 bits y FPGAs; capaz de ejecutar Linux embebido, posee un
sensor de imágen, comunicación WiFi, 8 sensores de proximidad, 7 entradas análogas, y la
capacidad de controlar 10 servomotores.
6. emVision
emQbit está desarrollando una cámara inteligente de red programable, en donde es posible
implementar algoritmos de procesamiento de imágenes y video usando la flexibilidad y poder
computacional que puede dar un procesador con unidad de punto flotanto combinado con un
FPGA.
Gracias a la FPGA usted podrá realizar procesamiento en tiempo real de imágenes y video
en esta cámara. La programación insitu le permite cambiar la funcionalidad de la cámara
remotamente utilizando la red, sin necesidad de estar haciendo reprogramación completa.
Debido a que la cámara corre Linux como sistema operativo, usted no necesita comprar kits
de desarrollo. Nosotros la entregamos lista y con las herramientas que usted necesitará para
usarla y programarla. Una cámara con estas características tiene mercados objetivo muy
interesantes, desde la detección y reconocimiento de rostros, pasando por el control
automático de parqueaderos, hasta la detección automática de elementos peligrosos en
espacios públicos.
8/11 emQbit, Presentación de la empresa, Bogotá Febrero 16 de 2009
Características Técnicas:
Procesador
• PowerPC de 400MHz con unidad de punto flotante de 32/64 bits
• Cachés independientes de datos e instrucciones (16K/16K)
• 128 MBytes DDR RAM
• Ethernet 100BaseT
• USB Host
FPGA
• Xilinx's Spartan3 FPGA (XC3S4000) con 4 millones de compuertas
• 96 multiplicadores (300MHz)
• 96 bloques de SRAM de doble puerto (2KBytes/bloque)
• 2 o 3 bancos de memoria DDR de 16 bits a 133MHz
Optica
• Sensor de 5 MegaPixels, 1/2.25"
• Sompatibilidad con lentes para montaje tipo C
7. Servicios
EmQbit cuenta con profesionales expertos en sistemas operativos, con conocimientos
profundos en programación, electrónica digital, arquitectura de computadores, sistema
operativo Linux y sistemas embebidos que podrán apoyar de manera efectiva sus proyectos
9/11 emQbit, Presentación de la empresa, Bogotá Febrero 16 de 2009
desarrollando tanto el Software como el Hardware y la interconexion entre ellos. emQbit
utiliza las herramientas de desarrollo Software y Hardware más utilizadas por los
desarrolladores en países industrializados y hace parte activa de las listas de discusión
aportando soporte y haciendo contribuciones a estas herramientas.
Desarrollamos hardware a la medida para sistemas embebidos y personalizamos soluciones
basadas en nuestros productos. Dada la flexibilidad de nuestros sistemas, podemos ofrecer
soluciones de hardware en tiempos cortos, que le permitirán aprovechar oportunidades de
negocio.
NUESTROS CLIENTES
En la industria
•Voting Solutions Colombia S.A.
NIT 9001462410
Avenida el Dorado # 68C61 Of 531 Bogotá
Tel: +57(1) 4273433
Bogotá, Colombia
•SAR: SISTEMAS ASESORIAS Y REDES S.A.
Contacto: Ing. Luis Fernando Samaca
NIT: 860.512.0799
CARRERA 15A No. 12484
Tel: +57(1) 6298920
Bogotá, Colombia
•TEMPERATURE@LERT
Contacto: Harry Schechter
139A Charles St., #345
Boston, MA 02114
•Onderzoeksgroep Embedded Systems
Contacto: Patrick Pelgrims
Hogeschool voor Wetenschap & Kunst
Campus de NAYER Instituut
Jan De Nayerlaan 5
10/11 emQbit, Presentación de la empresa, Bogotá Febrero 16 de 2009
B2860 SintKatelijneWaver
Belgium
•CEAROBOT
Contacto: Stefano Parusso
S.S. 352 UdineGrado Km 3,6
33050 Lauzacco
Pavia di Udine Italy
Tel +39 0432 675768
Fax +39 0432 655127
•TES America Andina
Contacto: Orlando Saavedra
NIT 8300536624
CLL 99 No 11B20
Tel: +57 300 567 6078
BOGOTA
En la Academia
•UNIVERSIDAD INDUSTRIAL DE SANTANDER
Contacto: Jorge Ramón
Tel: +57(300)3672764
BUCARAMANGA, SANTANDER, COLOMBIA
•UNIVERSIDAD DISTRITAL DE COLOMBIA
Contacto: Giovanni Bermudez
Director del Centro de investigaciones
gbermudez@[Link]
•ESCUELA NAVAL ALMIRANTE PADILLA
Contacto: Alejandro Mejía Ayala Base Naval ARC Bolivar
Tel: +57 315 752 0662
•UNIVERSIDAD SANTO TOMAS DE AQUINO
Contacto: Jaime Vitola
Prof. Facultad de Ingeniería Electrónica
Tel: +571 3164686707
•UNIVERSIDAD NACIONAL DE COLOMBIA
Contactos: Carlos Camamrgo Bareño Dpto de Ing. Eléctrica y Electrónica ext 11126
Jonatan Gómez Dpto de Ing. Sistemas e Industria
Jorge Sofrony Dpto de Ing. Mecánica y Mecatrónica
Eduardo Romero Facultad de Medicina ext 15025
11/11 emQbit, Presentación de la empresa, Bogotá Febrero 16 de 2009
A.2 Relaciones con la industria 123
A quien corresponda
Como gerente general de la empresa emQbit certifico que el profesor Carlos Iván Camargo
Bareño ha colaborado en diversas tareas de diseño, soporte y capacitación, los productos realizados
en conjunto con el profesor Camargo poseen la licencia Creative Commons BY-SA la que permite
su uso, reproducción y modificación aún para uso comercial, con el único requisito de dar crédito al
autor del trabajo original y publicar los trabajos derivados bajo la misma licencia.
Esta filosofı́a de hardware abierto es el eje de nuestra empresa, de tal forma que la mayor parte
de nuestros productos poseen la licencia CC-BY-SA; esto debido a que por un lado, gran parte de
ellos se deriva de tarjetas de desarrollo elaboradas por el profesor Camargo y por otro lado, uno de los
objetivos de la creación de emQbit es ayudar a la difusión del conocimiento necesario para diseñar e
implementar sistemas digitales que utilizan tecnologı́a de punta.
Como parte del proceso de transferencia tecnológica entre el estudio realizado por el profesor
Camargo y emQbit se realizaron 2 pasantı́as que permitieron capacitar a estudiantes en el diseño de
sistemas digitales.
Finalmente, gracias al apoyo del profesor Camargo, nuestra empresa ha podido posisionarse
como la única en Colombia que realiza el proceso de diseño completo desde la concepción hasta la
implementación de sistemas digitales que utilizan herramientas abiertas y tecnologı́a de punta. Por
esta razón, emQbit colabora en los procesos de importación de materiales y suministros necesarios
para la realización de proyectos de investigación de los departamentos de eléctrica y electrónica,
mecatrónica y sistemas de la Universidad Nacional, estos servicios son gratuitos. Adicionalmente, la
empresa ha financiado parte de los desarrollos del profesor Camargo, los cuales han sido liberados
bajo la licencia CC-BY-SA.
A.2.2. e-modust
e-modust, es una empresa creada por los egresados de la carrera de Ingenierı́a electrónica
Edison Olarte e Israel Santoyo y su principal campo de aplicación es la creación de aplicaciones para
la medición de campos eléctricos y magnéticos asociados a tormentas eléctricas [85]. Su producto
comercial registrado en Colombia es un molino de campo eléctrico [86]; en el primer prototipo se
utilizó la plataforma ECB AT91 (desarrollada en este estudio) como núcleo del sistema, encargado
de la comunicación con el sensor de campo, procesamiento de esta información y despliegue de la
misma; la comunicación con el usuario se realizó a través de un servidor Hypertext Transfer Protocol
(HTTP) utilizando conexión inalámbrica y cableada. La utilización de la plataforma ECb AT91 redujo
de forma considerable el tiempo necesario para el diseño de esta aplicación, ya que al utilizar los
archivos de diseño y los tutoriales sobre su manejo, esta empresa pudo terminar un prototipo en cerca
de 6 meses; este prototipo permitió que la empresa CODENSA invirtiera en un proyecto conjunto
con la Universidad Nacional para instalar molinos de campo en zonas donde las descargas eléctricas
deben ser monitoreadas de forma constante.
A.2.3. Importex
Importex, es una empresa creada por egresados de la Universidad Industrial de Santander y en
la actualidad es el encargado de distribuir las plataformas de desarrollo SIE, utilizadas en los cursos
de la lı́nea de electrónica digital de la Universidad Nacional de Colombia sede Bogotá y en la UIS.
Esta empresa descargó los archivos de diseño de dicha plataforma del portal linuxencaja y fabricó un
pequeño lote de 100 unidades en Taiwan, el contacto con las empresas manufactureras en este paı́s
fue proporcionado por linuxencaja y gracias a esta asociación los estudiantes de ambas universidades
pueden utilizar estas plataformas en sus cursos.
A.2.4. em-electronics
em-electronics fué una empresa creada por los ingenieros electrónicos de la Universidad
Nacional Ernesto y Alejandro Poveda; esta empesa utilizó plataformas de desarrollo abiertas (no
están en la actualidad en la página de linuxencaja) diseñadas como parte del estudio que finalizó en el
desarrollo del presente estudio, estas plataformas ayudaron a la actualización tecnológica en la carrera
de ingenierı́a electrónica de la Universidad Nacional pasando del uso de componentes discretos
(familias 74 y 40) al uso de CPLDs y FPGAs, desafortunadamente esta empresa no siguió con el
suministro de este tipo de pataformas.
A.2.5. Microensamble
Microensamble SAS es una empresa Bogotana fundada por Jorge Dominguez dedicada a
la fabricación y verificación de placas de circuito impreso y montaje automático de componentes
electrónicos, en Colombia solo existen dos empresas con la capacidad de realizar fabricación y
montaje automático de PCBs con la calidad de las empresas asiáticas, micro-ensamble es una de
ellas. La alianza con microensamble ayudó a esta empresa a ajustar los procesos de fabricación de
PCBs, este proyecto proporcionó diseños de referencia que utilizaban medidas adecuadas para este
proceso.
Por otro lado, este proyecto realizó la capacitación a empleados de microensamble en el diseño
de sistemas digitales utilizando Linux, como resultado de esta capacitación se generó un producto
A.2 Relaciones con la industria 125
que permite la comunicación segura utilizando mensajes de texto a través de la red celular.
Gracias a esta alianza, los estudiantes de la Universidad Nacional pueden realizar circuitos
impresos a bajos costos utilizando equipos adecuados para esto, lo que elimina la costumbre anterior
de realizar los PCBs de forma artesanal lo que complicaba la implementación.
A.2.6. SAR SA
Las relaciones con SAR SA. se realizaron de forma indirecta a través de la empresa emQbit;
SAR S.A. junto con su cliente y aliado Angelcom S.A, es el concesionario de la Fase I del sistema de
recaudo TransMilenio S.A en la ciudad de Bogotá D.C. Aportan la plataforma tecnológica de recaudo
para 68 estaciones actualmente en funcionamiento enen 4 vı́as troncales (Calle 80, Av. Caracas,
Avenida Jiménez, Autopista Norte y Calle 13). Adicionalmente son parte de la Unión Temporal Fase
II, concesionario de recaudo para la fase II del sistema TransMilenio, responsable de la operación de
47 estaciones, distribuidas en tres troncales en la ciudad de Bogotá (NQS, Av. De las Américas y Av.
Suba).
1
[Link]
2
[Link] Board
A. Artı́culos
A.1. Aplicaciones
A.1.1. En Hardware Evolutivo
Las plataformas desarrolladas en este trabajo fueron utilizadas como una forma novedosa y
económica de implementar algoritmos de hardware evolutivo, la posibilidad de tener una FPGA
y un procesador en la misma placa permitió la implementación de algoritmos genéticos de forma
intrı́nseca, es decir, verificando el nivel de ajuste de cada individuo a la solución requerida dentro del
mismo dispositivo. En esta área se generaron dos artı́culos:
Low Cost Platform for Evolvable-Based Boolean Synthesis Publicado en el 2nd IEEE Latin
American Symposium on Circuits and Systems LASCAS 2011.
[2] Luis Alejandro Cortés. Verification and Scheduling Techniques for Real-Time Embedded
Systems. PhD thesis, Linköpings universitet Institute of Technology, 2005.
[3] Edward F. Crawley. The CDIO Syllabus A Statement of Goals for Undergraduate Engineering
Education. URL:[Link] 2001.
[4] Charlotte Hess and Elinor Ostrom, editors. Understanding Knowledge as a Commons: From
Theory to Practice. The MIT Press, December 2006.
[6] Mark Weiser. The Computer for the 21st Century. [Link]
[Link].
[7] M. Weiser. Some computer science issues in ubiquitous computing. Commun. ACM, 1993.
[8] D. Servant. Combining amorphous computing and reactive agent-based systems: a paradigm
for pervasive intelligence? In First international joint conference on Autonomous agents and
muktiagent systems: part 1, 2002.
[10] Kenneth Arrow. Economic Welfare and the Allocation of Resources for Invention. Princeton
University Press, 1962.
[11] European Technology Platform on Smart Sistem Integration (EPoSS). European Technology
Platform on Smart Systems Integration. Strategic Research Agenda 2009. 2009.
[15] M. Odedra. Information Technology Transfer to Developing Countries: Case studies from
Kenya, Zambia and Zimbabwe. PhD thesis, London School of Economics, 1990.
[16] Innovation Associates Inc. Technology Transfer and Commercialization Partnerships Executive
Summary.
[18] V. Gigch, editor. Applied General System Theory. Harper & Row, 1978.
[19] F. Bar, F. Pisani, and M. Weber. Mobile technology appropriation in a distant mirror: baroque
infiltration, creolization and cannibalism. Seminario sobre Desarrollo Económico, Desarrollo
Social y Comunicaciones Móviles en América Latina. Buenos Aires, April 2007.
[20] Goel Cohen. Technology transfer: strategic management in developing countries. Sage
Publications inc, 2004.
[21] K. Goel and Sayers B. Modelling Global-Oriented Energy Tecnology Transfer to DCs. Sixth
Global Warning International Conference, San Francisco, 1995.
[22] M. odedra-straub. The Myths and Illusions of Technology Transfer. IFIP World Congress
Proceedings, August 1994.
[23] James A. Jolly. The Technology Transfer Process: Concepts, Framework and Methodology. The
Journal of Technology Transfer. Springer, 1977.
[24] E. Mansfield. International technological transfer: Forms, Resource Requirements, and Policies.
American Economic Review, Paper and Proceedings, 1975.
[25] A. Erdilek and A. Rapoport. Conceptual and measurement problems in international technology
transfer: a critical analysis”. Quarum Books, Westport, 1985.
[26] M. Odedra. Information Technology Transfer to Developing Countries Is it really taking place?
The 4th IFIF.TC9 International Conference on Human Choice and Computers, North Holland,
Amsterdam, Netherlands, HCC 4 held jointly with the CEC FAST Programme., 1991.
[27] C. Forero and H. Jaramillo. The access of researchers from developing countries to international
science and technology. International Social Science Journal, Volume 54, Issue 171, 2002.
[28] K. Al-Mabrouk and J. Soar. Building a Framework for Understanding and Improving
Information Technology Transfer Process in the Arab Countries. 9th IBIMA Conference:
Information Management in Modern Organisations - Trends & Challenges, 2008.
[30] K. Al-Mabrouk and J. Soar. Identification of key issues for successful technology transfer
in the Arab countries: a Delphi study. International Journal of Technology Transfer and
Commercialisation, 2009.
132 Bibliografı́a
[31] R. Janssen. Exploring the impact of culture Technology transfer to five African countries.
Master’s thesis, University of Twente, the Netherlands, 2010.
[33] Colciencias. Plan Estratégico del Programa Nacional de Desarrollo Tecnológico Industrial y
Calidad 2005 - 2015. Technical report, Colciencias, 2005.
[35] Jon Hall. POR GRANDES QUE SEAN...: ASEGURE EL FUTURO DE SU NEGOCIO. Linux
magazine,, ISSN 1576-4079(58):92, 2009.
[37] Linux Foundation. Estimating the Total Development Cost of a Linux Distribution. URL:
[Link] 2008.
[38] R. M. Stallman. The GNU Operating System and the Free Software Movement Voices from the
Open Source Revolution. O’Reilly and Associates, 1999.
[39] S. Banguero and M. Erazo. Plataforma de Desarrollo para Sistemas Embebidos Basada en el
GameBoy Advance. Universidad Industrial de Santander, 2007.
[40] C. Camargo. ECB AT91 y ECBOT Plataformas Abiertas para el desarrollo de Sistemas
Embebidos. URL: [Link]
[42] C. Camargo. ECBOT: Arquitectura Abierta para Robots Móbiles. VII conferencia
Iberoamericana en Sistemas, Cibernética e Informática, 2008.
[43] C. Camargo. ECBOT y ECB AT91 Plataformas Abiertas para el Diseño de Sistemas Embebidos
y Co-Diseño HW/SW. VIII Jornadas de Computación Reconfigurable y Aplicaciones, Madrid
España, September 2008.
[44] C. Camargo. ECBOT: Arquitectura Abierta para Robots Móviles. IEEE Colombian Workshop
on Circuits and Systems, 2007.
[46] C. Camargo. SIE: Plataforma Hardware copyleft para la Enseñanza de Sistemas Digitales. XVII
Workshop de Iberchip, Bogotá Colombia, February 2011.
[48] O. Orjuela. Sistema Embebido Para la Reproducción de Video en pantalla dde LEDs RGB.
Master’s thesis, Universidad Nacional de Colombia. Facultad de ingenierı́a, 2011.
[50] J. Duque. Voz IP Sobre un Sistema Embebido Linux. Master’s thesis, Universidad Nacional de
Colombia. Facultad de Ingenierı́a, 2011.
[51] D. Arango. Diseño e Implementación de una Plataforma de Desarrollo Para Aplicaciones que
Requieran Co-Diseño Hardware-Software Utilizando un Procesador de 32 bits. Master’s thesis,
Universidad Nacional de Colombia. Facultad de Ingenierı́a, 2009.
[52] D. Mendez. Desarrollo de una plataforma flexible para el prototipaje de aplicaciones WSN
(Wireless Network Sensors). Master’s thesis, Universidad de los Andes, 2007.
[55] C. Camargo. Linux como herramienta de Desarrollo de Sistemas Embebidos. XII Workshop de
Iberchip, San Jose, 2006.
[56] C. Camargo and O. Sanchez. Linux embebido como herramienta para realizar reconfiguración
parcial. XII Workshop Iberchip, 2006.
[57] I. Castillo, C. Camargo, and C. Perez. Automatización de un puente grúa a escala, mediante una
plataforma embebida la cual soporta multiprogramación. XII Workshop Iberchip, 2006.
[59] C. Camargo. ECBOT y ECB AT91 Plataformas Abiertas para el Diseño de Sistemas Embebidos
y Co-diseño HW-SW. VIII Jornadas de Computación Reconfigurable y Aplicaciones, 2008.
[60] C. Camargo. Hardware copyleft como Herramienta para la Enseñanza de Sistemas Embebidos.
Simposio Argentino de Sistemas Embebidos, 2011.
[61] C. Camargo. Hardware copyleft como Herramienta para la Enseñanza de Sistemas Embebidos.
Congreso Argentino de Sistemas Embebidos CASE 2011, Buenos Aires Argentina, March 2011.
[63] C. Camargo. Low Cost Platform for Evolvable-Based Boolean Synthesis. IEEE Latin American
Symposium on Circuits and Systems (LASCAS 2011), Bogotá Colombia, February 2011.
[65] Bloom B S, editor. Taxonomy of Educational Objetives, the classification of educational goals.
Mckay.
[66] Elinor Ostrom. Governing the Commons: The Evolution of Institutions for Collective Action
(Political Economy of Institutions and Decisions) (Paperback). Cambridge University Press,
November 1990.
[67] Elinor Ostrom. Reformulating the Commons. Swiss Political Science Review, Volume 6, Number
1, 2000.
[68] Sandler Todd. Collective Action: Theory and Applications. Ann Arbor: University of Michigan
Press, 1992.
[69] Ruth Meinzen-Dick, Monica Di Gregorio, and Nancy McCarthy. Methods for Study-
ing Collective Action in Rural Development. CAPRi Working Paper, no. 33. Inter-
national Food Policy Research Institute, 2033 K Street, N.W., Washington, DC 20006.
[Link] 2004.
[70] E. OSTROM. The Rudments of a theory of the Origins, Survival, and Performance of Common-
Property Institutions. BROMLEY, D.W. et al. (eds.) Making the Commons Work: Theory,
Practice, and Policy. San Francisco, CA: ICS Press, 1992.
[71] J .M. BALAND and J.P. PLATTEAU. Halting Degradation of Natural Resources. Is There a
Role for Rural Communities? Oxford: Clarendon Press, 1996.
[76] A. Cortesi. Elinor Ostrom, the commons problem and Open Source. URL:
[Link] 2009.
[78] C. M Schweik and A. Semenov. The Institutional Design of ’Open Source’ Programming:
Implications for Addressing Complex Public Policy and Management Problems. URL:
[Link] 1/schweik/, 2003.
[79] Van Wendel, R. Joode, J. A. de Bruijn, and M. J. G. van Eeten. Protecting the Virtual Commons:
Self-Organizing Open Source and Free Software Communities and Innovative Intellectual
Property Regimes. Asser Press, 2003.
[80] R. A. Ghosh, G. Robles, and R. Glott. Free/Libre and Open Source Software: Survey and
Study. Technical report University of Maastricht, The Netherlands: International Institute of
Infonomics. URL: [Link] 2002.
Bibliografı́a 135
[81] S. Shah. Motivation, Governance, and the Viality of Hybrid Forms in Open Source Software
Development. Management Science, July 2006.
[83] R. Vallarta. OpenBlocks : an extendable framework for graphical block programming systems.
MIT, 2007.
[85] D. Aranguren, H. Torres, E. Olarte, I. Santoyo, F. Amórtegui, and E. Perez. Sistema de Medición
de Tormentas Eléctricas. In Simposio Internacional sobre Calidad de la Energı́a Eléctrica
SICEL-2007, 2007.
[86] D. Aranguren, H. Torres, E. Olarte, and I. Santoyo. Molino de campo eléctrico. Registro
comercial, Colombia, 2004.
[87] C. Perez. Automatización de un puente grúa a escala mediante una plataforma embebida la
cual soporta multiprogramación. Tesis de pregrado Departamento de Ingenierı́a Electrónica
Universidad de los Andes., 2005.