MF2713_3: Desarrollo de ‘software’/’firmware’ para dispositivos electrónicos programables

912 171 879

Categorías

DENOMINACIÓN

Desarrollo de ‘software’/’firmware’ para dispositivos electrónicos programables

CÓDIGO

MF2713_3

DESCRIPCIÓN

Módulo formativo MF2713_3: Desarrollo de ‘software’/’firmware’ para dispositivos electrónicos programables

DURACIÓN

180 horas

CAPACIDADES Y CRITERIOS DE EVALUACIÓN

C1: Definir las características y arquitecturas hardware basadas en microprocesador, microcontrolador o dispositivo electrónico programable ?FPGA- que mejor se ajusten a unas especificaciones dadas.

CE1.1 Determinar los criterios de selección de la CPU tales como la funcionalidad, el rendimiento, el consumo, la conectividad y el coste del ‘hardware’ exigible para el equipo que implementa la aplicación.
CE1.2 Elegir los sistemas embebidos, microcontroladores o dispositivos electrónicos programables FPGA según criterios de funcionalidad, rendimiento, consumo, conectividad y coste establecidos para la aplicación.
CE1.3 Elaborar un documento con los recursos necesarios para el ‘hardware’ seleccionado que incluya el tamaño de memoria (FLASH, RAM y EEPROM), puertos de entrada/salida (E/S), interfaces de comunicación, entre otros para el desarrollo de la aplicación concreta.
CE1.4 Obtener un ‘software’ para el desarrollo de la aplicación ?IDE? que permita la elaboración del código, depuración de errores, programación y configuración del dispositivo y realización de las pruebas funcionales.

C2: Representar mediante diagramas de flujo y esquemas de bloques funcionales, el proceso o algoritmo que ejecuta la aplicación, indicando la gestión de los eventos producidos y el uso de recursos del dispositivo programable.

CE2.1 Representar la estructura del programa mediante un diagrama de flujo con simbología normalizada, modelando el comportamiento del sistema programable y definiendo la respuesta del sistema ?salidas? ante los eventos que se producen ?entradas?.
CE2.2 Establecer la planificación de la ejecución de tareas y sus prioridades atendiendo al rendimiento especificado y a los recursos disponibles en el dispositivo programable.
CE2.3 Gestionar la atención a los eventos e interrupciones que se producen, teniendo en cuenta el tiempo de respuesta especificado y los recursos disponibles en el dispositivo programable.
CE2.4 Elaborar un documento con el grado de utilización de los recursos compartidos del sistema, atendiendo al uso de memorias (RAM, FLASH, EEPROM) o discos, puertos de entrada/salida (E/S), timers, interfaces de comunicaciones.
CE2.5 Elaborar un documento con el protocolo de pruebas, incluyendo la instrumentación a utilizar, el procedimiento, las mediciones y los valores umbral que deberá superar el equipo, atendiendo a las especificaciones dadas.

C3: Desarrollar programas ‘software’/’firmware’ mediante un entorno de desarrollo integrado (IDE) para la obtención de un código en lenguaje de alto nivel, compilación, depuración de errores y programación/configuración de los dispositivos.

CE3.1 Definir los tipos de datos a utilizar en el editor del código IDE, asignando distintos nombres a las constantes y variables a utilizar (texto, numéricas, arrays, estructuras o tipos avanzados de datos, entre otras).
CE3.2 Codificar el programa basado en el diagrama de flujo predefinido, utilizando el lenguaje de programación elegido, usando las estructuras de iteración (bucles) y de selección o a través de objetos, clases, atributos y métodos.
CE3.3 Implementar un sistema de control de versiones que permita la recuperación de versiones anteriores seleccionadas por fecha, incluyendo en cada versión los comentarios que describan la funcionalidad de cada una de las partes.
CE3.4 En un supuesto práctico de desarrollo de ‘software’/’firmware’ para un dispositivo electrónico:
– Elaborar un breve diagrama de bloques o de flujo, interpretando su documentación y reduciendo el tiempo de desarrollo.
– Utilizar componentes o librerías incorporándolas al código fuente.
– Codificar el ‘software’ de desarrollo de la aplicación ?IDE? mediante un editor de código en lenguaje de alto nivel.
– Compilar el código fuente obtenido, depurando los errores con la ayuda de la Herramienta IDE.
– Realizar la depuración de los errores de compilación obteniendo un código libre de errores.
– Programar/configurar el dispositivo programable ejecutando el código desarrollado.

C4: Desarrollar programas para el dispositivo programable que le permitan interaccionar con dispositivos locales y con equipos remotos.

CE4.1 Configurar periféricos internos del dispositivo programable como puertos digitales de entrada y salida, temporizadores, conversor analógico/digital (A/D) y digital/analógico (D/A), modulación por ancho de pulsos (PWM?Pulse Width Modulation), comparadores analógicos, reloj de tiempo real, entre otros, a través de llamadas a las librerías proporcionadas por el IDE o de terceros para interactuar con dispositivos o equipos externos.
CE4.2 Conectar dispositivos de interfaz de usuario externos de entrada (pulsadores y teclados) y de salida (ledes, displays y?LCD) a los puertos de entrada/salida digital, programándose a través de llamadas a las librerías proporcionadas por el IDE o de terceros.
CE4.3 Conectar unos sensores analógicos externos unidos a puertos conversores A/D, programándose para la obtención del valor digital de las magnitudes físicas que se pretenden medir.
CE4.4 Conectar sensores digitales externos acoplados a buses digitales de tipo SPI, i2C, UART o 1?wire, entre otros programándose para la obtención del valor digital de las magnitudes físicas que se quieren medir.
CE4.5 Conectar unos actuadores externos a puertos de salida digitales de tipo SPI, i2C, PWM o UART, entre otros, programándose para el control de servomotores, motores paso a paso, motores de corriente continua (DC), relés, electroválvulas, entre otros.
CE4.6 Implementar comunicaciones por cable con otros dispositivos o equipos a través de protocolos RS232, RS485, USB y Ethernet, usando las librerías disponibles en el IDE o de terceros, programándose los comandos para establecer la conexión entre ambos equipos.
CE4.7 Implementar comunicaciones inalámbricas con otros dispositivos o equipos a través de protocolos Bluetooth, WIFI, entre otros, haciendo uso de las librerías disponibles para establecer la conexión entre ambos.

C5: Planificar procesos funcionales de los dispositivos programables, garantizando el cumplimiento de las especificaciones definidas en el proyecto que permita su posterior producción.

CE5.1 Ejecutar las pruebas para la verificación funcional, utilizando la instrumentación requerida según el protocolo de pruebas y los criterios de calidad definidos en la organización, generando un documento que registre todos los parámetros y medidas obtenidas.
CE5.2 Verificar el rendimiento del equipo desarrollado, midiendo parámetros (latencia, capacidad de procesamiento de datos, ocupación de espacio de almacenamiento, ancho de banda en comunicaciones, consumo, temperatura de funcionamiento), realizándose pruebas de estabilidad térmica y de ausencia de bloqueos en la ejecución del programa, evitando la paralización de la actividad del dispositivo.
CE5.3 En un supuesto práctico de verificación funcional de un dispositivo electrónico cumpliendo las especificaciones definidas en el proyecto:
– Monitorizar el consumo del equipo estableciendo políticas que permitan deshabilitar los circuitos no activos sin descuidar la operatividad del sistema.
– Generar un fichero histórico que registre los detalles de la ejecución del programa, estableciendo una trazabilidad en la búsqueda de errores en el sistema y permitiendo conocer las causas que alteran el funcionamiento o resetear el sistema.
– Programar un timer (temporizador) de vigilancia anti bloqueo (watchdog timer) que provoque el reset (reinicio) del sistema en caso de bloqueo.
– Implementar un sistema de comunicaciones en el dispositivo programable que permita su ejecución en segundo plano para permitir la actualización del código firmware (OTA), la monitorización de los parámetros del sistema y el mantenimiento del dispositivo desde equipos conectados remotamente.

Capacidades cuya adquisición debe ser completada en un entorno real de trabajo.
C3 respecto a CE3.4 y C5 respecto a CE5.3.

Otras Capacidades:
Adaptarse a la organización de la empresa integrándose en el sistema de relaciones técnico?laborales.
Ejecutar las instrucciones que recibe responsabilizándose de la labor que desarrolla, comunicándose de manera eficaz con la persona adecuada en cada momento.
Mostrar una actitud de respeto hacia los compañeros, procedimientos y normas de la empresa.
Cumplir las medidas que favorezcan el principio de igualdad de trato y de oportunidades entre hombres y mujeres.
Valorar el talento y el rendimiento profesional con independencia del sexo.
Aplicar de forma efectiva el principio de igualdad de trato y no discriminación en las condiciones de trabajo entre mujeres y hombres.

CONTENIDOS

1 Características y arquitecturas ‘hardware’ basadas en microprocesadores, microcontroladores o dispositivos electrónicos programables

Criterios de selección de la CPU: funcionalidad, consumo, rendimiento, entre otros. Memorias FLASH, RAM, EEPROM, entre otras. Puertos de entrada/salida (E/S). Interfaces de comunicación.
Tarjetas basadas en procesadores embebidos Single Board Computer (SBC). Tarjetas basadas em microcontroladores (monocore, multicore). Configuración del dispositivo electrónico programable.

2 Representación del proceso de ejecución de la aplicación del dispositivo programable

Estructura del programa. Diagramas de flujo. Simbología. Comportamiento y respuesta del sistema.
Planificación de tareas del dispositivo programable. Gestión de eventos e interrupciones. Entornos para el desarrollo del código de la aplicación ?IDE?. Lenguajes de programación C/C++, Python, entre otros. Sistemas operativos Linux. Distribuciones para sistemas embebidos. ‘Software’ para edición de diagramas de flujo o modelos UML. ‘Software’ para la grabación del código en memoria flash no volátil tipo SD/MMC.
Tipología de averías. Previsión de averías. inspecciones y revisiones periódicas. Histórico de averías.
Herramientas, equipos, instrumentos de medida, certificación y equipos técnicos auxiliares.
Técnicas de diagnóstico: pruebas, medidas y procedimientos.
Tipos de mantenimiento. Mantenimiento predictivo. Mantenimiento preventivo. Mantenimiento correctivo. Concepto de mantenimiento proactivo.

3 Elaboración de códigos en lenguajes de alto nivel para programar/configurar el dispositivo

Tipos de datos, constantes y variables (texto, numéricas, arrays, estructuras o tipos avanzados de datos, entre otros) en lenguaje de alto nivel. Iteraciones. Estructuras de iteración (bucles) y de selección. Manejo de objetos, clases, atributos y métodos.
Componentes. Librerías del código IDE y/o de terceros. Programación/configuración del dispositivo programable. Ejecución del código desarrollado. Sistemas de control de versiones para recuperación de códigos anteriores por selección de fecha.

4 Configuración de periféricos del dispositivo programable

Periféricos internos del dispositivo programable (puertos digitales de entrada y salida,
temporizadores, conversor analógico/digital (A/D) y digital/analógico (D/A). modulación por ancho de pulsos (Pulse Width Modulation?PWM) y comparadores analógicos. Dispositivos de interfaz de usuario externos de entrada (pulsadores y teclados) y de salida (leds, displays y pantallas de cristal líquido?Liquid Cristal Display?LCD). Sensores analógicos externos (conversores A/D). sensores digitales externos con protocolos SPI, i2C, UART o 1?wire. Actuadores externos con protocolos SPI, i2C o UART 8servomotores, motores paso a paso, motores de corriente continua, relés, electroválvulas, entre otros). Comunicaciones por cable con protocolos RS232, RS485, USB y Ethernet. Comunicaciones inalámbricas con protocolos WIFI, Mqtt y Bluetooth.

5 Organización de los procesos de producción de los dispositivos programables

Especificaciones técnicas de los equipos y herramientas. Multímetro, osciloscopio, datalogger, analizador lógico, analizador de espectro, analizador de protocolos de comunicación, sonda lógica, sonda térmica, termómetro. Protocolo de pruebas. Criterios de calidad (parámetros y medidas obtenidas). Pruebas de estabilidad térmica y ausencia de bloqueos en el programa. Ficheros históricos de ejecución del programa. Trazabilidad y búsqueda de errores. Actualización del código firmware (OTA).

SI QUIERES APRENDER MÁS…

TE LLAMAMOS Y TE LO EXPLICAMOS TODO

    Echale un vistazo a nuestros cursos