Programación de microcontroladores modernos: un nuevo curso de MIREA, Samsung y dispositivos sin cable

Hola giktayms Con esta media silla, Master Gambes ... Con esta publicación, nosotros, el proyecto Samsung IoT Academy y Unwired Devices, estamos lanzando una serie de publicaciones basadas en el nuevo curso práctico sobre programación de microcontroladores basado en el núcleo Cortex-M3, que se impartirá mañana en el Instituto de Tecnologías de la Información de la Universidad Tecnológica de Moscú (también conocido como MIREA).

El propósito del curso es presentar a los estudiantes microcontroladores modernos basados ​​en el núcleo Cortex-M3 y darles habilidades básicas de programación para ellos en lenguaje C bajo el sistema operativo. Requisitos para los estudiantes: familiaridad con el lenguaje C (no necesariamente en microcontroladores) y una comprensión básica de la electrónica (en el nivel de capacidad para conectar un LED).

imagen

Inicialmente, el programa IoT Academy se concibió como un nivel bastante alto: los estudiantes deberían trabajar con módulos de transferencia de datos listos para usar para redes LoRa y 6LoWPAN, en los que el firmware con soporte para los sensores necesarios y la lógica necesaria para trabajar con ellos ya estaban cargados. De hecho, el curso es configurar estos módulos y escribir software de alto nivel para procesar datos entrantes en la plataforma Samsung Artik + Tizen.

Sin embargo, como lo ha demostrado la práctica, muchos estudiantes están interesados ​​en profundizar más en lo que sucede dentro de los microcontroladores. Al mismo tiempo, en este momento, con cursos de capacitación sobre controladores Cortex-M combinados con sistemas operativos, todo es bastante malo: de hecho, nueve de cada diez de estos cursos se dedican a escribir una aplicación simple usando StdPeriphLib y / o CubeMX, con la mitad del texto sobre problemas de inicialización controlador y su periferia.

Sin embargo, la realidad moderna se ve diferente: en la mayoría de los proyectos comerciales (hablaremos de estas estadísticas en el próximo artículo, no se toma desde el techo), ya se utilizan RTOS, que brindan abstracción de hardware del hardware, virtualización de recursos de hardware, multitarea y muchas otras cosas útiles

Lo que es especialmente interesante, el uso de RTOS puede reducir significativamente el umbral de entrada, y es precisamente allí donde a menudo radica el problema principal. El principio principal de los programas educativos, el desarrollo de lo simple a lo complejo, al estudiar los microcontroladores modernos en la primera lección, se descompone en el esquema de sincronización STM32 (página A4 en su totalidad con una fuente no demasiado grande) y la necesidad de escribir media página de código solo para hacer que el microcontrolador se inicie. Sí, puede hacer una serie de conferencias, comenzando con patrones de ensamblador, registros y reloj, pero seamos honestos: los estudiantes que no estaban seriamente interesados ​​en estudiar este tema desde el principio solo llegarán al final bajo la amenaza de aprobar un examen.

Sí, los generadores de código resuelven el problema del umbral de entrada, pero también nos llevan a trabajar con la caja negra, privándonos de nuestra comprensión de la estructura interna del sistema. Pero los RTOS modernos distribuidos en códigos fuente, por un lado, le permiten comenzar rápidamente con cosas bastante simples y, por otro lado, puede profundizar en la estructura interna del sistema a medida que estudia varios matices.

En diciembre del año pasado, ya llevamos a cabo una lección de prueba, grabada en YouTube , que les dice a los estudiantes un poco sobre lo que son los microcontroladores modernos y sobre cómo encender un LED en ellos. Debo decir que el éxito fue impresionante: comenzamos a las diez y media de la mañana, mientras que no había una sola persona en la audiencia con experiencia en programación con STM32 y solo unos pocos con experiencia con Arduino, pero terminamos a las cinco de la tarde en el laboratorio de la Academia IoT, donde algunos de los estudiantes Ya comencé a escribir juguetes con botones y reglas RGB en STM32.

Como resultado, nosotros - Dispositivos no cableados, Samsung IoT Academy y MIREA IT Institute - llegamos a la conclusión de que es hora de tomar un curso completo de introducción práctica para trabajar con microcontroladores modernos. Y lo hicieron.

El curso comienza a impartirse a los estudiantes del Instituto de TI MIREA mañana, 3 de marzo, y será un ciclo de 6 conferencias y 5 clases prácticas con una profundización gradual en temas relacionados con los controladores.

Además, el instituto grabará en video todas las conferencias y grabará selectivamente lecciones prácticas; en el blog IoT de la Academia Samsung, se publicarán notas adaptadas al uso de los paneles ST Nucleo-L152, disponibles para todos a un precio de 1200-1400 rublos, y en Los repositorios github de dispositivos no cableados mostrarán el código utilizado en el aula.

En todos los ejercicios prácticos, utilizaremos solo el código base del sistema operativo. Por lo tanto, aunque una pila completa para redes LoRa está disponible para los estudiantes, en la última lección la tarea no será usarla, sino escribir su propio protocolo de transferencia de datos y garantizar su protección contra ataques importantes.

No usaremos StdPeriphLib, CubeMX e incluso LL; si necesitamos hablar sobre el funcionamiento del microcontrolador, hablaremos sobre registros y CMSIS. El código OS HAL también usa nada más que CMSIS.

Entonces, ¿qué se incluirá en el curso?

0. Conferencia introductoria. Microcontroladores modernos, herramientas de programación, sistemas operativos en tiempo real. Familia de controladores STM32.

1. Multitarea en sistemas operativos integrados. Sistemas multitarea preventivos y no preventivos. Hilos, temporizadores, interrupciones.

Práctica: escribir una aplicación simple que funcione con botones y LED enviando mensajes de interrupciones a una secuencia separada.

2. Puertos e interfaces de E / S SPI, I2C, UART. Reloj, interfaces síncronas y asíncronas, implementación de hardware y software.

Práctica: dispositivo de controlador de sensor de luz TI OPT3001 (I2C) y trabajar con él desde una aplicación de usuario. Agregar al controlador la función de generar una interrupción en un umbral establecido por el usuario.

3. Trabajar con señales analógicas y cuasi-analógicas. PWM, ADC, DAC. Métodos para generar una señal analógica. Digitalización de señales, frecuencia de muestreo y teorema de Kotelnikov.

Práctica: ajuste el brillo de la lámpara usando PWM de acuerdo con el valor de la señal analógica entrante. Digitalización de una señal analógica variable en el tiempo y carga de los valores recibidos en UART.

4. Ahorro de energía. Modos de operación del núcleo del procesador: RUN, SLEEP, STOP, STANDBY. Despertar de fuentes externas e internas. Al guardar el estado de RAM del controlador, los registros de respaldo RTC. Trabaja con modos de bajo consumo en el sistema operativo.

Práctica: aplicación "en reposo" de un contador de pulsos con sondeo periódico del estado de un GPIO dado y acumulación de valores. Guardar el valor acumulado en EEPROM y registros de respaldo.

5. Redes de datos inalámbricas. Trabaja con el canal de radio LoRa. Protección de datos transmitidos de ataques típicos.

Práctica: mensajes entre dos microcontroladores utilizando el controlador del transceptor LoRa SX1276. Cifrado de mensajes, protección contra falsificación de mensajes, protección contra ataques repetidos.

6. Lección práctica adicional en forma libre. Pregunta-respuesta, consultas sobre proyectos propios de los alumnos.

¿Crees que algo importante y necesario se ha perdido? Escribe sobre esto en los comentarios.

Source: https://habr.com/ru/post/es410765/


All Articles