ENCICLOPEDIA DE RADIOELECTRÓNICA E INGENIERÍA ELÉCTRICA Interfaz del controlador PIC con una computadora. Enciclopedia de radioelectrónica e ingeniería eléctrica. Enciclopedia de radioelectrónica e ingeniería eléctrica. / Microcontroladores Al desarrollar un dispositivo sobre un microcontrolador (MC), muchas veces surge el problema de su conexión con una computadora para el intercambio de información. En la mayoría de los casos, se requiere el modo bidireccional a un tipo de cambio relativamente bajo. En el mejor de los casos, el MK puede tener una interfaz en serie, pero la mayoría de las veces debe elegirse entre los baratos que no están equipados con dicha interfaz. Por ejemplo, el PIC16F84A MK de Microchip, que es muy popular últimamente, no tiene esa interfaz. El artículo considera una variante de la implementación del software de la interfaz serial tanto desde el lado de la MC como desde el lado de la computadora. Para comunicarse con el dispositivo en el MK, puede usar el puerto paralelo (LPT) o serial (COM) de la computadora. Es más fácil trabajar con el primero: puede usar una cantidad relativamente mayor de señales de entrada y salida, cuyos niveles son compatibles con TTL. La desventaja de este puerto es que si en DOS o Linux las operaciones de E / S simples son suficientes para usarlo, entonces para el funcionamiento correcto en Windows, se requiere un estricto cumplimiento del protocolo de transferencia de datos, que no es efectivo cuando se trabaja con MK. También es posible controlar directamente líneas individuales del puerto LPT, pero esto requiere la instalación de un controlador especial. La "desventaja" del puerto LPT se puede considerar que en la mayoría de las computadoras es solo uno y, por regla general, está ocupado por la impresora. Las principales ventajas del puerto COM son que la interfaz de programación (API) estándar de Windows le permite controlar directamente algunas líneas de salida y controlar las de entrada, y también tiene la función de esperar algún evento asociado al puerto COM. Su ventaja es que el estándar RS-232, según el cual se realizan los puertos COM, permite conectar y desconectar cables durante el funcionamiento del dispositivo (conexión en caliente). Además, casi siempre una computadora tiene un puerto COM libre. La desventaja del puerto es que el nivel de la señal es diferente de TTL, en el que el nivel lógico bajo corresponde a un voltaje de -12 y el nivel lógico alto corresponde a +12 V. La implementación de la interfaz RS-232 estándar requeriría que el MC observara estrictamente los intervalos de tiempo entre las señales de salida. En una situación real, el resonador de cuarzo del microcontrolador puede no corresponder a la frecuencia de transmisión de datos, y el propio MC suele estar ocupado con algo más importante que la formación de intervalos de tiempo precisos. Como resultado, resulta más fácil implementar programáticamente una opción de intercambio síncrono en serie, cuando cada bit de datos es confirmado por un pulso de sincronización. El diagrama esquemático de la interfaz propuesta se muestra en la fig. una. Los divisores resistivos R232R1 y R4R2 se utilizan para convertir los niveles de RS-5 a TTL. Los diodos VD1 y VD2 son necesarios para no pasar un voltaje negativo correspondiente a un cero lógico. La señal TTL de salida del MK no necesita convertirse y puede alimentarse directamente a las líneas de entrada del puerto COM. La resistencia R3 limita la corriente de salida del MK en caso de un posible cortocircuito accidental. Como puede ver en el diagrama, se requieren cuatro cables para comunicarse con la computadora. La computadora inicia el intercambio de datos emitiendo pulsos de reloj en la línea DTR, configurando los datos transmitidos en la línea RTS y recibiendo los datos recibidos en la línea CTS. La computadora y MK pueden cambiar los datos solo cuando el nivel lógico de la señal de sincronización es bajo. Esta implementación de la interfaz le permite implementar un modo dúplex de transmisión de datos. Los números de pin XS1 en el diagrama son para un conector DB-25F que utiliza un cable de módem estándar. Consulte la Tabla 1 para ver los números de pin de otros conectores y cuando utilice un cable de módem nulo. XNUMX. La frecuencia de los pulsos de sincronización debe elegirse de manera que se garantice que el MC tenga tiempo para procesar los datos de la computadora, respondiendo a cada pulso de sincronización. Los bits de información se transmiten secuencialmente. Al final de la transmisión de bits de un byte, sigue la transmisión de bits del siguiente byte, transmitiéndose primero el bit de información más significativo. Para llevar la interfaz a su estado original (configurando el número del byte transmitido a 0), la computadora debe iniciar sesión. 1 en la línea de reloj para cambiar el estado de la línea de datos. La MCU emite un nuevo bit de datos en la línea CTS en la caída de los pulsos de polaridad positiva en la entrada del reloj DTR y lee los datos de la línea RTS en el borde ascendente de los pulsos de polaridad positiva. El intercambio se puede interrumpir en cualquier momento deteniendo el suministro de pulsos de sincronización. El diagrama de tiempo del intercambio de datos se muestra en la fig. 2. Al implementar la interfaz, se recomienda pasar valores de control en algunos bytes para verificar la exactitud de los datos transmitidos. El código fuente del procedimiento para MK PIC16F84A [1] en lenguaje C, que implementa la interfaz propuesta, se presenta en la Tabla. 2. La llamada al procedimiento link() se encuentra en el ciclo principal del programa y se llama constantemente durante la operación del MK para controlar el estado de la interfaz. Todas las variables utilizadas por el procedimiento se declaran como globales. En cada llamada, lee los estados de las líneas de entrada de la interfaz (RB6 y RB7) y los compara con sus estados en la llamada anterior. Bajo ciertas condiciones (caída de sincronización, borde de sincronización, restablecimiento de interfaz), las acciones se realizan de acuerdo con la lógica de la interfaz. El código fuente del procedimiento para una computadora en Pascal (Delphi) se da en la Tabla. 3. Aquí, el procedimiento de enlace se llama una vez para realizar el acto de intercambio de información con el MC. Antes de llamarlo, es necesario llenar el búfer pasado obuf. Al final del procedimiento, los datos recibidos estarán en la matriz ibuf. El procedimiento abre el puerto COM especificado de la computadora y, utilizando las funciones de la API de Windows [2], controla el estado de las líneas de salida y sondea las líneas de entrada. Una vez que se completa el intercambio de información, el puerto se cierra. En el procedimiento de enlace, los retrasos de tiempo se implementan mediante la función sleep(). Sus valores se calculan o seleccionan experimentalmente por la ausencia de pérdida de bits durante el intercambio de datos entre el MC y la computadora. El ejemplo muestra los retrasos para el intercambio con un controlador PIC con un resonador de cuarzo a una frecuencia de 4 MHz, que, además, realiza otros trabajos útiles. Si el procedimiento de intercambio tarda demasiado, se puede mover a un subproceso separado de la ejecución del sistema operativo para que se ejecute en paralelo con el programa principal [2]. Si el intercambio de información requiere lectura y escritura por separado, es posible distribuir las matrices de datos transmitidos y recibidos a diferentes direcciones, como se muestra en la Fig. 2. En MK, es conveniente construir la formación de datos transmitidos y el uso de datos recibidos en forma de procedimientos de carga () y descarga (), llamados antes de la transmisión y al recibir el siguiente byte, respectivamente. El primero de ellos debe devolver el valor del byte transmitido por su número en el paquete de información transmitido, el segundo recibe el valor del byte recibido y su número en el paquete y debe usar estos valores para cambiar los registros MK, escribir en EEPROM, etc. La implementación de estos procedimientos para procesar un paquete de información de tamaño 4 bytes (Tabla 4) se muestra en la Tabla. 5. Se da un ejemplo de un programa para MK para el compilador C2C [3]. El procedimiento para una computadora se puede usar en un programa escrito en Borland Delphi 3 y superior. Literatura
Autor: S.Kuleshov, Kurgan Ver otros artículos sección Microcontroladores. Lee y escribe útil comentarios sobre este artículo. Últimas noticias de ciencia y tecnología, nueva electrónica: Cuero artificial para emulación táctil.
15.04.2024 Arena para gatos Petgugu Global
15.04.2024 El atractivo de los hombres cariñosos.
14.04.2024
Otras noticias interesantes: ▪ Adaptador WLan de bajo perfil de ELECOM ▪ Apple crea interfaz 3D para iPhone y iPad ▪ Despertador inteligente EzLarm ▪ Reciclaje de mascarillas desechables en combustible ▪ Placa de desarrollo LAUNCHXL-CC2650 BLE/ZigBee/6LoWPAN para IoT Feed de noticias de ciencia y tecnología, nueva electrónica
Materiales interesantes de la Biblioteca Técnica Libre: ▪ sección del sitio Modelado. Selección de artículos ▪ Artículo La unión hace la fuerza. expresión popular ▪ artículo ¿Qué galaxia está más cerca de nosotros? Respuesta detallada ▪ artículo Soya java perenne. Leyendas, cultivo, métodos de aplicación. ▪ artículo Prefijo de retención de línea. Enciclopedia de radioelectrónica e ingeniería eléctrica.
Deja tu comentario en este artículo: Todos los idiomas de esta página Hogar | Biblioteca | Artículos | Mapa del sitio | Revisiones del sitio www.diagrama.com.ua |