Red de conocimiento informático - Aprendizaje de código fuente - Organización del software del sistema de control del robot docente.

Organización del software del sistema de control del robot docente.

La plataforma de software se basa en el sistema operativo multitarea en tiempo real UC/OS II trasplantado al S3C44B0X. Es un kernel preventivo en tiempo real basado en prioridades que proporciona principalmente funciones como gestión de tareas, programación de procesos, comunicación entre tareas y gestión de memoria. Tiene las características de código fuente abierto y buena portabilidad. Utiliza un mecanismo preventivo de múltiples tareas y puede admitir 56 tareas de usuario. Su función de gestión de interrupciones proporciona 255 niveles de anidamiento de interrupciones. Gestión de tareas múltiples A través de uC/OS II, las tareas se encuentran en uno de cinco estados: inactiva, en espera (en pausa), lista, en ejecución e interrumpida. Hay cuatro tareas de usuario en este sistema: Tarea 1: recibir comandos de la computadora host; Tarea 2: planificación de trayectoria; Tarea 3: monitoreo del estado del sistema; Tarea 4: envío y visualización del estado del sistema. La prioridad de las tareas disminuye en secuencia. El intercambio de información y el intercambio de recursos entre tareas se completan a través de buzones de correo. El controlador principal recibe las instrucciones de posición y velocidad desde la computadora host a través de la Tarea 1. Dado que las instrucciones enviadas por la computadora superior son aleatorias y la computadora inferior tiene que procesar otras cosas además de las instrucciones de la computadora superior, para garantizar que las instrucciones no se pierdan durante el movimiento, se toman dos medidas: Primero , transfiera la tarea Establecida como la tarea de usuario de mayor prioridad, el procesador host permite la interrupción de recepción de UART1 y establece la profundidad de activación del búfer de recepción en 12 bytes según la longitud de la instrucción. (Según sea necesario, la longitud de la instrucción enviada por la computadora superior a la computadora inferior aquí es de 12 bytes por cuadro, y la profundidad de activación de recepción UART de S3C44B0X se puede configurar en 4, 8, 12 o 16 bytes mediante programación de software). Cuando la computadora host no envía instrucciones, la tarea está en estado suspendido. Cuando la computadora host envía un comando de 12 bytes, se activa la interrupción UART. Active la Tarea 1 y ponga la rutina del servicio de interrupción en el estado listo. Debido a que tiene la prioridad más alta, se puede ejecutar inmediatamente y recibir instrucciones de la computadora host desde el búfer de recepción. Esto evita la situación en la que el procesador principal responde con frecuencia a las interrupciones cuando un solo byte desencadena una interrupción, y la situación en la que los comandos se pierden en el modo de programación front-end y backend sin un sistema operativo en tiempo real. Task2 realiza la planificación general de la misión y la solución de cinemática inversa del robot en el sistema de coordenadas mundial en función de la información de posición actual y la información de obstáculos del robot proporcionada por el sensor, así como las instrucciones recibidas de la computadora host, y genera el ángulo desplazamiento que cada articulación debe girar en el siguiente tiempo y velocidad angular, y luego escrito en el registro correspondiente de LM629 a través del bus. La prioridad de esta tarea es solo menor que la Tarea 1 y el ciclo de ejecución es de 100 milisegundos. Task3 procesa principalmente información del sensor y tiene un ciclo de ejecución de 100 milisegundos. Incluye obtener la información actual del codificador a través del registro de estado de LM629, luego obtener la información de la posición actual del robot mediante cálculo cinemático, obtener la información actual del obstáculo alrededor del robot a través del sensor ultrasónico y obtener la información de sobrecalentamiento y sobrecorriente de la fuente de alimentación. amplificador a través del LMD18200. Además, algunos estados operativos de la computadora inferior, como la posición actual, información de obstáculos, etc., también deben enviarse a la computadora superior y mostrarse en el módulo LCD. Esta tarea la completa la Tarea 4, que tiene la prioridad más baja y un ciclo de ejecución de 300 milisegundos.

El software del sistema se ha depurado en ADS1.2. Debido a que no hay MMU (unidad de administración de memoria) en ARM7TDMI, su sistema operativo y programa de usuario deben compilarse juntos para generar un archivo. Este aspecto es diferente del concepto en DOS o Windows. Su sistema operativo y sus programas de usuario están separados y pueden existir varias aplicaciones en el host al mismo tiempo. Además, en ADS1.2, puede utilizar el lenguaje C para el desarrollo de software y utilizar bibliotecas matemáticas para acortar el ciclo de desarrollo de software.