Estoy desarrollando un protocolo UART para asegurar la comunicación entre dos placas (la placa maestra y la placa esclava). La placa esclava incluye muchos sensores y los actuadores y la placa maestra ordenará esta placa mediante un conjunto de comandos como GET_SENSOR_VALUE
y SET_MOTOR_SPEED
etc. Se ejecutarán muchas funciones en mi proyecto y se realizará un control permanente de los valores de los sensores ( Ejemplo: la tarjeta maestra obtendrá el valor de temperatura cada 5 segundos, obtendrá el nivel de la batería cada 5 segundos, habilitará la ventilación cuando la temperatura sea alta ...). Todos los equipos están conectados a la placa esclava (sensores y actuadores) y la función principal de la placa maestra es la supervisión.
He estado leyendo algunos artículos sobre especificaciones y diseño de sistemas integrados y descubrí que lo primero que hay que hacer antes de comenzar es elegir el núcleo: RTOS o GPOS (Bare metal).
Mi pregunta es: en mi caso, si elijo RTOS (en la placa maestra), ¿debo implementar mis necesidades como tareas / funciones separadas?
- temperature_task
- Humedad_tarea
- battery_task
- motor_task
- ventilación_tareas
En caso afirmativo, ¿admite UART el tiempo de cambio de contexto de alta velocidad? ejemplo:
00:00 temperature_task: GET_TEMPERATURE
si temp > threshhold envía START_VENTILATION
00:01 battery_task: GET_LEVEL
if level < threshhold enviar TURN_OFF_SYSTEM
00:02 humedad_tarea: GET_HUMIDITY
si nivel < threshhold enviar DO_SOMETHING
00:03 temperature_task: GET_TEMPERATURE
si temp > threshhold envía START_VENTILATION
00:04 battery_task: GET_LEVEL
if level < threshhold enviar TURN_OFF_SYSTEM
00:05 humedad_tarea: GET_HUMIDITY
si nivel < threshhold enviar DO_SOMETHING