Inicio Instrumentación De PIC16F877 a PIC16F18877, veinte años de evolución de PIC

De PIC16F877 a PIC16F18877, veinte años de evolución de PIC

“La gran versatilidad de los productos de NI ha sido fundamental para adaptarse a las necesidades del proyecto. La solución dota al sistema de un control de movimiento automatizado integrado con la monitorización de los datos adquiridos, cumpliendo así con los objetivos planteados al inicio del proyecto.” – Iván Torrano, Mondragon Unibertsitatea  


El Reto   

Desarrollar un sistema de captación y monitorización de datos aerodinámicos combinado con un control de posicionamiento de 4 ejes. La información se monitoriza en tiempo real mientras se almacena para su posterior análisis. Se debe controlar el posicionamiento del sensor de velocidad en tres direcciones y el modelo a analizar debe rotar variando así el ángulo de incidencia con respecto a la dirección del viento.   


La Solución
  

El uso del controlador NI cRIO-9031 junto con el módulo de interfaz de 4 ejes SISU 1004 ha resultado ser una solución eficaz para realizar control del sistema de posicionamiento. Además, el empleo de una arquitectura de proyecto de NI LabVIEW ha permitido integrar la adquisicion de datos realizada en un chasis NI cDAQ-9174 con el control de movimiento en un mismo entorno gráfico.   


Introducción   

Los túneles de viento son la técnica experimental más común en el campo de la aerodinámica y sirven para estudiar el comportamiento de un cuerpo ante la acción del viento. Existen numerosos sistemas de medición que permiten obtener datos de presión, de velocidad y de las fuerzas de resistencia ejercidas por el viento sobre el objeto de estudio. Es de vital importancia el correcto posicionamiento tanto de los sensores de velocidad y presión como del modelo en sí para garantizar la repetibilidad y precisión de los datos obtenidos. La solución adoptada mediante el software y hardware de NI propociona robustez y fiabilidad en el sistema de control de movimiento. Además, la facilidad y rapidez en el set-up del equipo de adquisión de datos reduce los tiempos de puesta a punto de cada ensayo.   


Objetivos  

El principal objetivo es el de desarrollar un sistema que cumpla dos condiciones: 1. Controlar posicionamiento de los sensores y/o del modelo para estudiar diferentes posiciones y configuraciones de manera rápida y precisa. 2. Monitorizar y registrar los datos provenientes de sensores de velocidad, presión, temperatura y de la balanza dinamométrica. Por último, se pretende integrar estas dos funcionalidades en un mismo entorno para facilitar el uso del sistema de adquisición y control.   


Descripción del sistema de adquisición y control  
 

La Figura 1 proporciona una vista general del túnel de viento. En la parte central se aprecia la zona de pruebas donde se instala el modelo. En la parte superior se dispone de un sistema de guiado de 3 ejes. Cada eje está accionado por un motor paso a paso Nema 23 con driver integrado de la serie NI ISM 7400 que permite posicionar el sensor de velocidad (la sonda de Pitot o el anemómetro de hilo caliente) en cualquier punto (x,y,z) del espacio. En la parte inferior de la zona de pruebas un cuarto motor acciona un plato divisor que permite girar el modelo a distintos ángulos de incidencia. Sobre el plato divisor se monta la balanza dinamométrica que mide las fuerzas de resistencia transmitidas a través del soporte del modelo.   


Hardware
  

Muestra esquemáticamente el sistema de adquisición y control. El controlador embebido NI cRIO-9031 es el encargado de controlar en tiempo real los motores junto con el módulo de interfaz de 4 ejes SISU 1004. Cada motor está alimentado por una fuente NI PS-12, y se conecta al SISU 1004 mediante los terminales SISU RJ- 45. Adicionalmente se dispone de un chasis NI cDAQ-9174 de 4 slots que se conecta por USB al PC. Para adquirir las señales provenientes de los sensores que emplean los siguiente módulos; NI 9215 para la sonda de Pitot, NI 9201 para la balanza dinamométrica y NI 9219 para el sensor de temperatura RTD y el anemómetro.   


Software
 

Los siguientes programas han sido utilizados: – NI LabVIEW: La estructura de proyecto ha permitido comunicar el cDAQ y cRIO con el PC generando un solo entorno gráfico desde el que se controla el movimiento a la vez que se monitorizan los resultados. La programación del código mediante el empleo de una máquina de estados posibilita la sincronización de las tareas. Por ejemplo, en la Figura 3 se muestra el proyecto generado en el cual se sincronizan diferentes estados como; Leer la coordenada de un archivo de texto, desplazamiento a dicha coordenada, adquisición de datos, etc. De este modo se puede automatizar el proceso para realizar contornos 2D de velocidad, estudios de capa límite, medir la evolución de la estela turbulenta desarrollada por el objeto de estudio o cualquier otro barrido en el espacio. – NI LabVIEW Real-Time y NI Lab- VIEW FPGA: Estas plataformas son imprescindibles para compilar las trayectorias generadas y realizar el control y feedback en tiempo real de los motores. – NI SoftMotion: La librería de movimientos programados para el desarrollo simplificado del perfil de movimiento ha sido de gran utilidad para el desarrollo de trayectorias predefinidas.

Facilita enormemente la configuración de los ejes, lo que supone una puesta a punto del sistema sencilla. Además, la opción de simular dichas trayectorias en ejes virtuales de Solidworks permite verificar de antemano que no hay colisiones con el modelo ni con las paredes del túnel de viento.   


Conclusiones  
 

La gran versatilidad de los productos de NI ha sido fundamental para adaptarse a las necesidades del proyecto. La solución dota al sistema de un control de movimiento automatizado integrado con la monitorización de los datos adquiridos, cumpliendo así con los objetivos planteados al inicmayoría de desarrolladores de PIC en lenguaje C; después de todo, éste es precisamente el tipo de detalles que los compiladores tienen que abstraer. Ésta es una de las razones por las cuales las cifras en MIPS del viejo microcontrolador ‘877 no se pueden comparar directamente con las cifras en MIPS de los nuevos núcleos F1 de la tabla 1.  


Cambios en las interrupciones  

El otro elemento de la arquitectura que ha experimentado una mejora significativa es el sistema de gestión de interrupciones. Si bien el nuevo núcleo del PIC16F1 mantiene el diseño de interrupciones original de vector único, se ha añadido un nuevo conjunto de cuatro registros sombra para agilizar las secuencias de guardar y recuperar el contexto de las interrupciones. El listado 1 muestra el prólogo / epílogo tradicional de PIC16: El prólogo y epílogo estándar de interrupciones solía necesitar hasta 56 ciclos de reloj. Con el nuevo mecanismo de registro sombra del PIC16F1 la necesidad de dos secuencias se elimina por completo y el coste de una interrupción se reduce a los cuatro ciclos básicos requeridos para la derivación de la CPU. El resultado es un considerable aumento de la velocidad de respuesta del microcontrolador o de sus prestaciones en tiempo real de hasta un orden de magnitud.  


Flexibilidad  

Si se observa detalladamente la parte de abajo de la tabla 1 se puede ver otro dato interesante: el número de E/S de aplicación general disponibles para los dos dispositivos es diferente pese a la alegada compatibilidad entre patillas. Resulta que los nuevos dispositivos multiplexan tres patillas más, que anteriormente se reservaban para un oscilador de cristal y un reinicio externo, y que ahora están disponibles de forma opcional como E/S de aplicación general.  Pero solo si se estudia más a fondo la hoja de datos se encuentra la verdadera pepita de oro: ¡TODAS las entradas/ salidas de los periféricos digitales ahora están multiplexadas en cada patilla del dispositivo! Esta característica se denomina selección de patilla de periférico (Peripheral Pin Select, PPS) y ofrece un enorme salto en cuanto a flexibilidad a los dispositivos PIC16F18877 y a algunas familias PIC16F1 similares.

De forma parecida, el módulo de conversión A/D de los nuevos dispositivos PIC16F1 ahora se combina con un multiplexor de entrada analógico de [muy] gran tamaño que convierte hasta 35 de las mismas patillas en posibles entradas analógicas.  Esto significa en la práctica que cada señal analógica y/o digital dirigida hacia/ desde el microcontrolador ahora se puede enrutar de forma óptima en la placa de circuito impreso para controlar ruido, aumentar la robustez, simplificar y agilizar el trazado, y posiblemente para reducir el número de capas y vías, contribuyendo así en última instancia a reducir el coste.  


Periféricos independientes del núcleo  

Por desgracia el análisis de cada fila de la tabla 1 no revelará nunca el auténtico alcance del cambio de las características realizados en los dispositivos PIC16F1 de última generación: la presencia de periféricos independientes del núcleo (Core Independent Peripherals, CIP). Más que cada una de las funciones de los periféricos (SMT, HLT, CWG, NCO, CLC, etc.), acerca de las cuales podríamos (y así hemos hecho) escribir libros enteros y que en la nueva hoja de datos ocupan la mayoría de las 400 páginas añadidas, lo que importa es la filosofía de diseño que hay detrás.  

Los nuevos periféricos son diferentes porque están diseñados para interconectarse directamente entre sí y para desempeñar funciones autónomas con independencia del núcleo. La figura 1 muestra un ejemplo en el cual se configure un cierto número de periféricos analógicos para interconectar y formar una función de fuente de alimentación (topología elevadora CC/CC de 500 kHz) capaz de controlar una cadena de LED aplicando un control de corriente constante y una señal de atenuación PWM de 16 bit sin la intervención del núcleo del microcontrolador añadida a la configuración inicial.

Los CIP ofrecen asistencia de hardware al microcontrolador con el fin de evitar cuellos de botella del sistema provocados por la CPU. Cuando los CIP se conectan entre sí para desempeñar una función, las interrupciones no solo se ejecutan con mayor rapidez sino que además se eliminan por completo de la aplicación.   El resultado es un diseño más equilibrado en el que la eficiencia y el paralelismo de hardware configurable se adapta a la flexibilidad de software. Además hay otros CIP (no mostrados en la figura) que se encuentran disponibles en otros microcontroladores PIC y permiten a los diseñadores escoger la solución que se ajusta mejor a sus necesidades.


Robustez

Una parte significativa de los nuevos módulos de hardware del PIC16F18877 se destina a potenciar la robustez del microcontrolador. El circuito supervisor tradicional se sustituye por un sistema con ventana que ofrece numerosas opciones escalables. El circuito de reinicio por tensión inadecuada (brown-out reset, BOR) tiene varios umbrales, modos de bajo consumo y un circuito CRC SCAN dedicado que se puede utilizar para supervisar constantemente, en segundo plano, la integridad del contenido de la memoria, sin que ello afecte a las prestaciones del microcontrolador.


Bajo consumo

Además de mantener la capacidad de trabajar a 5V y de suministrar corrientes continuas aún más elevadas a sus E/S (hasta 50mA), las características eléctricas del dispositivo PIC16F18877 nos aporta unas cifras de consumo en modo activo mucho más bajas (aproximadamente en un factor cuatro) cuando se trabaja en todo el rango de tensiones (1,8V – 5,5V).

El consumo de corriente en modo pasivo (espera) son incluso más impresionantes ya que prometen una reducción de casi dos órdenes de magnitud (100x). Una vez más, solo un análisis detallado de la hoja de datos del dispositivo revelará novedades sobre las características que amplían la capacidad para controlar el consumo con mucha más precisión, ofreciendo muchos modos intermedios (entre ellos idle y doze). También un nuevo conjunto de registros (PMD) aumentan la capacidad de controlar el consumo para que cada periférico alcance el máximo nivel de flexibilidad.


Todo depende de las herramientas

Sin embargo, todas las nuevas funciones descritas antes podrían ser irrelevantes en el mundo del diseño moderno, en el cual el coste del diseño viene determinado por el plazo de comercialización, en el cual los ciclos de diseño son continuos y todas las aplicaciones están conectadas. La función más importante de los nuevos dispositivos PIC16F18877 podría ser la disponibilidad de herramientas de desarrollo rápido para automatizar y acelerar la generación de código en un orden de magnitud respecto a lo que era antes posible.

Los microcontroladores PIC de última generación cuentan con el soporte del MPLAB® Code Configurator (MCC). Es una herramientas que puede acelerar el tedioso proceso de inicializar el periférico de cada dispositivo en unos minutos en lugar de horas, y algunos afirman que pueden eliminar por completo la necesidad de leer la hoja de datos (o al menos una buena parte de ese tiempo). A ello hay que añadir un completo paquete de herramientas basadas en la nube, MPLAB Xpress, disponible para la fase de evaluación y desarrollo de prototipos, con el fin de que sea tan rápida y sencilla como abrir un navegador y cargar una sola página web. Ha desaparecido la necesidad de descargar un entorno de desarrollo integrado (integrated development environment, IDE) y un compilador, lo cual añade hasta centenares de megabytes. También ha desaparecido el tiempo necesario para su instalación y su mantenimiento para que estuvieran correctamente configurados y actualizados. Cualquiera puede evaluar un nuevo modelo de microcontrolador abriendo, personalizando y creando un proyecto (muestra) en unos minutos en lugar de horas.


¡Se va a perder una gran oportunidad!

El compromiso de Microchip de no abandonar los productos mientras haya demanda ofrece a los diseñadores la capacidad de tomar el control de su ciclo de innovación. Todo desarrollador está en condiciones de decidir si quiere revisar un diseño existente y cuándo hacerlo, o bien simplemente mantenerlo como está y centrarse en lugar de ello en crear nuevos productos que pueden aportar nuevas oportunidades de negocio y nuevos ingresos.

No obstante, al lanzar un nuevo diseño es importante ser consciente de que al seleccionar el mismo microcontrolador de confianza y auténtico (popular) podría significar perder muchas funciones y posibilidades nuevas. Es posible que la consistencia de la compañía a lo largo de los años y su obsesivo compromiso con la compatibilidad [retroactiva] pueda hacerle creer que las arquitecturas de los microcontroladores PIC no han cambiado mucho a lo largo de estas décadas, pero eso no podría estar más lejos de la realidad.

Los CIP han dado la vuelta al viejo paradigma del control embebido y las nuevas herramientas en la nube y para generación de código pueden mejorar enormemente la eficiencia del proceso de diseño. ¡La próxima vez que tenga la oportunidad de seleccionar un microcontrolador para una nueva aplicación, dedique unos minutos a conocer la familia de microcontroladores PIC más reciente* o seguro que se perderá algo muy importante! (*Pista: El número de referencia empieza por PIC16F1 seguido de cuatro dígitos)


Etiquetas
pic 16f877