Red de conocimiento informático - Aprendizaje de código fuente - Ejemplo de sistema de tarjeta de adquisición de datos

Ejemplo de sistema de tarjeta de adquisición de datos

En algunos sitios industriales, los equipos son propensos a fallar después de un funcionamiento prolongado. Para monitorear estos equipos, generalmente se utilizan dispositivos de adquisición de datos para recopilarlos.

Adquisición de datos

p>

Operación Los datos en tiempo real se envían a la PC y los datos se analizan a través de un software específico que se ejecuta en la PC para determinar el estado del equipo operativo actual y luego tomar las medidas correspondientes. Los dispositivos de adquisición de datos de uso común en la actualidad utilizan principalmente un mecanismo secuencial de tarea única en el diseño del software de su sistema. Esto crea el problema de una mala seguridad del sistema. Esto no está permitido para dispositivos de adquisición de datos con alta estabilidad y requisitos de tiempo real, por lo que es necesario introducir un sistema operativo integrado. A continuación se utiliza μC/OSII como plataforma del sistema operativo y se explora el desarrollo de un sistema de adquisición de datos de alto rendimiento basado en el procesador de la serie ARM7. El sistema operativo integrado μC/OSII (sistema operativo de microcontrolador) es un núcleo de sistema operativo multitarea preventivo en tiempo real de código abierto diseñado específicamente para el desarrollo de software y sistemas de microcontroladores. Es un programa en segundo plano que se ejecuta por primera vez después de iniciar el microcontrolador. Como marco de todo el sistema, recorre todo el funcionamiento del sistema. Para los sistemas de adquisición de datos que requieren alto tiempo real y estabilidad, la introducción de μC/OSII sin duda mejorará enormemente su rendimiento.

Las características de μC/OSII se pueden resumir en los siguientes aspectos: código fuente abierto, estructura de código clara y clara, comentarios detallados, bien organizado, buena portabilidad, se puede cortar y solidificar. El kernel es preventivo y puede gestionar hasta 60 tareas. μC/OSII tiene cientos de aplicaciones desde la primera versión (μC/OS) en 1992. Es un kernel que ha demostrado ser fácil de usar, estable y confiable. Existen muchos estudios y aplicaciones sobre μC/OSII. El sistema utiliza el S3C4510B de Samsung como puente para comunicarse entre el sistema y la computadora host. S3C4510B es un microcontrolador RISC de 16/32 bits rentable basado en sistemas de aplicaciones Ethernet. Tiene las siguientes características principales:

El hardware incluye un núcleo de procesador ARM7TDMIRISC de 16/32 bits diseñado por ARM. El ARM7TDMI es un núcleo 16/32 de bajo consumo y alto rendimiento, que es más adecuado para aplicaciones sensibles al precio y al consumo de energía. S3C4510B amplía una serie completa de dispositivos periféricos de uso general basados ​​en el contenido principal ARM7TDMI.

Los recursos en el chip incluyen 2 canales HDLC con descriptores de búfer; 2 canales UART; 2 canales GDMA; 18 puertos de E/S programables. También hay controladores de interrupción; controladores DRAM/SDRAM; controladores de ROM/SRAM y FLASH; un árbitro de bus de sistema interno de 32 bits; un controlador de memoria externo y otros circuitos de control lógico.

Estos proporcionan excelentes recursos físicos para el trasplante μC/OSII.

En términos de soporte de software, tiene un entorno de depuración y edición de código de soporte ADS12 y función de depuración en línea JTAG, de modo que el software del chip S3C4510B se puede escribir directamente en C, lo que facilita la implantación de μC/OSII. posible.

El circuito de conversión A/D de alta velocidad de 12 bits utiliza AD574 de AnalogDevices y la salida de este circuito tiene una función de bloqueo de tres estados. El circuito de preprocesamiento incluye un transformador de corriente y voltaje, un circuito de aislamiento y un circuito de muestreo síncrono, que puede convertir la señal en un valor que coincida con el AD574 para su procesamiento posterior. El circuito de comunicación utiliza una interfaz Ethernet de uso común para conectarse a la computadora host, y la interfaz 232 se puede usar como respaldo, de modo que el dispositivo se puede usar como un sistema portátil y también puede monitorear el equipo en tiempo real a través de la red. . En la parte del software, el programa de la parte S3C4510B y el programa de control CPLD deben escribirse por separado. El primero se puede dividir en trasplante μC/OSII y escritura de varias aplicaciones, mientras que el segundo se implementa en lenguaje VHDL.

Para la parte S3C4510B, las tareas del sistema se dividen según las funciones implementadas por todo el dispositivo y sus requisitos, y se asignan prioridades a cada tarea según las necesidades reales. El sistema se puede dividir aproximadamente en las siguientes tareas: inicializar los parámetros de control CPLD; leer FIFO; comunicación TCP/IP con la computadora host; comunicación en serie con la computadora host.

Para cada tarea, es necesario escribir los programas de aplicación correspondientes. Las tecnologías clave en la parte de diseño del software son:

(1) Al trasplantar el kernel μC/OSII al S3C4510B, el μC debe modificarse razonablemente de acuerdo. a las características del procesador /OSII's tres archivos relacionados con el procesador: OS_CPUH, OS_CPU_AASM, OS_CPU_C.C. El objetivo principal es cambiar las instrucciones de ensamblaje en el archivo a instrucciones de ensamblaje ARM7 y reescribir los valores iniciales de los registros en el archivo de acuerdo con las características de la CPU.

(2) Problema de configuración de la memoria. Para el diseño de la capacidad de la memoria, se debe considerar exhaustivamente el tamaño del código del kernel μC/OSII y del código de la aplicación. Cada tarea se ejecuta de forma independiente y se debe proporcionar un espacio de pila (RAM) independiente para cada tarea. La fórmula de cálculo para la cantidad total de RAM es:

La cantidad total de RAM = el requisito de RAM de la aplicación. + el área de datos del kernel El requisito de RAM + la suma de los requisitos de cada pila de tareas + la pila máxima requerida para el anidamiento de interrupciones.

(3) Implementación del protocolo TCP/IP en μC/OSII. Para cumplir con los requisitos para el intercambio directo de información entre dispositivos integrados y la red de Internet, la pila de protocolos LwIP se trasplantó a μC/OSII.

LwIP es una pila de protocolos TCP/IP de código abierto para sistemas integrados desarrollado por Adam Dunkels del Instituto Suizo de Ciencias de la Computación y otros. LwIP significa protocolo IP ligero (ligero). LwIP se puede migrar al sistema operativo o ejecutarse de forma independiente sin un sistema operativo. El objetivo de la implementación de LwIP TCP/IP es reducir el uso de RAM manteniendo las funciones principales del protocolo TCP. Generalmente, solo requiere decenas de k de RAM y aproximadamente 40 k de ROM para ejecutarse, lo que hace que la pila del protocolo LwIP sea adecuada. para la incrustación de gama baja utilizada en el sistema.

Las características de LwIP incluyen: soporte para reenvío de IP en múltiples interfaces de red; soporte para protocolo ICMP; incluida la extensión experimental de UDP (Protocolo de datagramas de usuario), que incluye control de congestión, estimación de RTT, recuperación rápida y reenvío rápido; TCP (Protocolo de control de transmisión); proporciona una interfaz de devolución de llamada interna dedicada (rawAPI) para mejorar el rendimiento de la aplicación.

LwIP puede agregar fácilmente funciones de administración de red y comunicación de red al sistema bajo programación μC/OSII. La pila de protocolos LwIP se diseñó teniendo en cuenta futuros problemas de portabilidad. Separó todas las partes relacionadas con el hardware, el sistema operativo y los compiladores y las colocó en el directorio /src/arch. Por lo tanto, la implementación de LwIP en μC/OSII consiste en modificar los archivos en este directorio, y otros archivos generalmente no deben modificarse. En el controlador, basado principalmente en el registro de función especial de control de Ethernet en S3C4510B, se escriben las funciones de envío y recepción de paquetes de la interfaz de red, la inicialización y la rutina de servicio de interrupción externa para el controlador de Ethernet.