ENCICLOPEDIA DE RADIOELECTRÓNICA E INGENIERÍA ELÉCTRICA Cómo conectar un microcontrolador y una computadora vía RS-232. Enciclopedia de radioelectrónica e ingeniería eléctrica. Enciclopedia de radioelectrónica e ingeniería eléctrica. / Microcontroladores Este artículo pretende ser un ejemplo de la implementación del desarrollo de un dispositivo microcontrolador controlado por una computadora personal a través de un canal serie. Está destinado a quienes aún no tienen experiencia en este tipo de desarrollos. Una vez que comprenda cómo la PC controla el microcontrolador, muestra, procesa y almacena la información recibida de él, podrá aplicar este conocimiento a sus propios desarrollos. Además, el dispositivo descrito también tiene un valor independiente: es un voltímetro digital controlado, cuyos resultados de medición, antes de mostrarse, pueden ser procesados por una computadora según un algoritmo predeterminado y también guardados en un archivo en el disco duro. de su PC, visto e impreso. Todo esto hace que el dispositivo descrito sea la base de un sistema simple para recopilar, procesar y documentar datos, útil para ingenieros electrónicos que no tienen un nivel suficiente de conocimiento de la tecnología de microcontroladores para un desarrollo independiente. introducción El objetivo de este trabajo era desarrollar y crear un dispositivo de medición sencillo basado en un microcontrolador, todavía el más común en la actualidad, de la familia x51, que pudiera intercambiar información con una computadora personal. Se suponía que el dispositivo implementaría un medidor de voltaje, que luego podría complementarse con varios accesorios que convierten otras cantidades físicas medidas directamente en voltaje. Un dispositivo de este tipo permitiría realizar fácilmente una serie de mediciones controladas por un ordenador, así como acumular los resultados y procesarlos por ordenador. Sometido a cambios no fundamentales, podría convertirse fácilmente en un sistema de monitoreo y control remoto de equipos u otros instrumentos y dispositivos. Descripción general del dispositivo. Parte eléctrica del dispositivo. El dispositivo (Fig. 1) es esencialmente un voltímetro digital. En la entrada del voltímetro hay un amplificador operacional (DA1), que tiene una alta impedancia de entrada. Al amplificador operacional le sigue un ADC (DD2), que nos permite digitalizar el voltaje de interés para su posterior transmisión al microcontrolador. El microcontrolador DD3 es el principal elemento de control del dispositivo, ya que lee información del ADC y se comunica con una computadora personal a través de un canal en serie. El dispositivo también incluye convertidores de potencia para generar +5 V para la parte digital y para generar +/-10 V para el amplificador operacional, así como un chip de conversión de nivel (lógico <0> y <1> a -15: +15 V y viceversa) para intercambiar información a través de un canal serie como RS232.
El valor enviado a la computadora se encuentra en el rango 0...4095 (que corresponde a la profundidad de bits del ADC), 0 corresponde al nivel de entrada 0V, 4095 - nivel 5V, la relación es lineal. El tipo de cambio de información se puede seleccionar por debajo de 9600 baudios o superior, hasta 115 200 baudios. En computadoras bastante antiguas, como 386 y anteriores, el límite superior es mucho más bajo: 19200 baudios. Esto se debe a que los chips de puerto serie que se encuentran en estas computadoras no fueron diseñados para velocidades más altas. Descripción de fichas Convertidor de fuente de alimentación MAX680 Los amplificadores operacionales normalmente requieren un suministro bipolar (por ejemplo, +10 V y -10 V con respecto a tierra). Los radioaficionados que no están familiarizados con la base elemental moderna suelen utilizar un transformador con dos devanados secundarios (o uno, pero con un grifo en el medio), dos condensadores de filtro, dos estabilizadores, etc., para obtener dicha tensión. Si tiene a su disposición un voltaje estabilizado de 5 V, y el amplificador operacional utilizado, que requiere una fuente de alimentación bipolar, puede costar solo +7:10 V y consumir 1:2 mA, entonces los dos devanados y los dos estabilizadores mencionados no serán necesarios. . Es suficiente utilizar el microcircuito MAX680 de Maxim (tenga en cuenta que Linear Technology y otras empresas conocidas producen microcircuitos similares). A la entrada del microcircuito se aplica una tensión Uin de 3:5 a 6:10 V (según el tipo), en sus salidas se generan tensiones iguales a aproximadamente +2Uin. Lo destacable es que, en primer lugar, para generar estos voltajes, además del MAX8 o LT680 de 1026 pines, solo se necesitan 4 pequeños condensadores electrolíticos (ver Fig. 1), y en segundo lugar, cuando cambia el voltaje de entrada, duplicar las salidas. cambio de fase, que prácticamente no tiene ningún efecto en la señal de salida del amplificador operacional. Para obtener información más detallada sobre dichos microcircuitos, el autor recomienda consultar las descripciones de propiedad correspondientes. ADC MAX1241 En los últimos años, los microcircuitos controlados a través de un canal en serie han recibido un amplio desarrollo en la tecnología de microcontroladores. Uno de estos chips es el ADC MAX12 de 1241 bits. Como en el caso del MAX680, el MAX1241 tiene muchos análogos exactos y aproximados (MAX187 de Maxim, LTC1286, LTC1298 de Linear Technology, AD7894 de Analog Devices y muchos otros). MAX1241 está empaquetado en un paquete de 8 pines, se alimenta con un voltaje de 2,7 a 5 V y consume una corriente de aproximadamente 5 mA. Requiere el uso de una fuente de tensión de referencia externa (en este caso se utiliza un diodo zener de precisión KR142EN19, que genera una tensión de 2,50 V) y utiliza sólo 3 líneas para la comunicación con el microcontrolador. El funcionamiento del MAX1241 se ilustra mediante los diagramas de sincronización que se muestran en la Fig. 2. Antes de que comience la conversión y el intercambio, el microcontrolador debe mantener la entrada CS# MAX1241 en un solo estado. Para iniciar la conversión, se debe aplicar un nivel cero lógico a esta entrada. El proceso de conversión a MAX1241 tarda poco menos de 8 µs. Durante todo el tiempo de conversión, MAX1241 mantiene un nivel lógico de 0 en su salida DOUT. Una vez completada la conversión, MAX1241 cambia la salida DOUT a un estado único.
Antes de iniciar la conversión, el microcontrolador en la entrada SCLK del MAX1241 debe establecer el nivel lógico cero. Cuando se completa el proceso de conversión dentro del ADC, el microcontrolador debe generar una secuencia de al menos 12 pulsos positivos en la entrada SCLK (Fig. 2). El flanco del primer pulso prepara el MAX1241 para la transmisión de datos. A medida que el pulso cae en DOUT, el duodécimo bit más significativo aparece como un cero o uno lógico. El microcontrolador lee este bit, forma el flanco del segundo pulso en SCLK y, después de un tiempo, su caída. A medida que cae el segundo pulso, aparece el undécimo bit en DOUT, que luego es leído por el microcontrolador, etc. Al caer el duodécimo pulso, el primer bit menos significativo se establece en la salida DOUT. La caída del decimotercer pulso lleva a DOUT al estado cero, que es donde estaba antes de que la entrada CS# se estableciera en 12. Al transferir CS# al estado único, el microcontrolador informa al MAX1 que el proceso de lectura del resultado de la conversión se ha completado. El MAX13 puede realizar la siguiente conversión aproximadamente 1 µs después de configurar CS# en 1241. Los algoritmos de funcionamiento del LTC1286, LTC1298 de Linear Technology y AD7894 de Analog Devices difieren ligeramente de los descritos para el MAX1241. Puede familiarizarse con ellos con más detalle consultando las descripciones de las empresas correspondientes. Convertidor de nivel MAX202E Para pocos es un secreto que en la lógica estándar uno está representado por un nivel de voltaje de 2,4 a 5 V y cero, de 0 a 0,8 V. Sin embargo, es posible que los principiantes no sepan que cuando se transmite a través de un canal RS-232, cero y uno están codificados con señales del mismo valor (de 5 a 12 V), pero de diferente signo. En el marco de este artículo, no pretendemos explicar por qué es costumbre hacer esto y no de otra manera; nos limitaremos a indicar este hecho. Dado que las señales lógicas estándar deben convertirse en señales de otro nivel para su transmisión a través de RS-232, es necesario proporcionar medios de conversión adecuados en el circuito. Hace unos 10 años, para este fin se utilizaban cascadas especialmente diseñadas de tres o cuatro transistores, un par de diodos y casi una docena de resistencias. Ahora la situación ha cambiado significativamente: los principales fabricantes de chips producen convertidores completamente completos que requieren una cantidad mínima de elementos adicionales. Estos incluyen el MAX202E de MAXIM y el AD232 de Analog Devices, que es completamente idéntico a él, hasta el pinout. En el interior, ambos microcircuitos contienen un convertidor de voltaje de +5 V a +10 V, idéntico al MAX680 descrito anteriormente, y cascadas que convierten señales lógicas de nivel estándar en señales de nivel según el estándar RS-232. Cada uno de los microcircuitos mencionados contiene convertidores de nivel lógico para dos receptores y dos transmisores. Usaremos solo un canal transceptor. Modo de funcionamiento del MK con un canal serie. Como saben (ver, por ejemplo, los números 10 y 11 de la revista Radio de 1994), los microcontroladores de la familia x51 tienen cuatro modos de funcionamiento del transceptor. Nos interesará el modo 1 como el más sencillo y aceptable. El modo 1 se caracteriza por los siguientes parámetros:
Este es un modo conveniente para programar: se requiere muy poco código de programación para configurar y operar el transceptor. Aunque, si lo deseas, puedes utilizar otros modos de funcionamiento. El propósito de este artículo es describir un determinado dispositivo que tiene la capacidad de comunicarse con una computadora personal. No describiremos aquí exactamente cómo funciona el transceptor. Esta información se puede obtener de las revistas de radio mencionadas u otra literatura. Rutinas básicas para MK Las principales rutinas para el microcontrolador serán: leer datos del ADC, inicializar el UART, recibir un byte y enviar un byte. Lectura de datos de ADC Configuración de una PC para intercambiar información a través de un canal serie. Para configurar su PC para intercambiar información a través de un canal serie, debe hacer lo siguiente:
Un ejemplo de código diseñado para una tasa de cambio de 9600 bps para un resonador de cuarzo con una frecuencia de resonancia de 11,059 MHz:
GET_VOLT: SETB DOUT ; ENTRADA DE DATOS PERMITIDA DESDE ADC SETB CS; ESTABLECER ESTADO INICIAL ADC CLR SCLK ; ESTABLECER ESTADO INICIAL ADC CLR CS ; REPORTADO PARA LEER DATOS MUL AB; 4 MKS A 12 MHz\ MUL AB ; 4 EEI | MULAB; 4 ISS} ESPERAR EL FIN; | DIGITACIONES MUL AB ; 4 MKS/MOV R0,#12; LEER 12 BITS GET_VC: SETB SCLK ; \NOP; | NOP; | CLR SCLK; }HAN GENERADO UN PULSO DE LECTURA BIT NOP ; | NOP; /MOV C, DOUT; LEER BIT MOV A, R2 ; \RLC A; | MOV R2,A ; | MOV A, R3; } EMPUJE UN BIT EN LA PALABRA ; |RESULTADO-R3R2 RLC A; | MOV R3,A ; / DJNZ R0, GET_VC ; BUCLE ANL A,#0FH MOV R3,A ; BITS ALTOS BORRADOS R3R2 SETB CS ; NO QUIERO LEER EN VOZ ALTA ; (BITS RESTANTES = 0) MUL AB ; 4 MKS A 12 MHz \ MUL AB ; 4 EEI | MULAB; 4 EEI | MULAB; 4 µs }MIN DEMORA ; | ANTES SIGUIENTE MULAB; 4 EEI | MULAB; 4 EEI/RET Esta subrutina se llama primero en el programa principal del microordenador. En principio, ni siquiera es necesario formalizarlo como una subrutina. Recibir y enviar un byte Las rutinas para recibir y enviar bytes a través de un canal serie son muy sencillas.
SERINIT: PELÍCULA, #0 ; Deshabilitar todas las interrupciones MOV TMOD, #20H ; Configure el modo 2 para el temporizador 1 MOV TH1, #REL96 ; Valor para el contador de recarga automática MOV TL1, #REL96 ; Valor de contador inicial para 9600 bps; con SMOD = 0 ANL PCON, #7FH; Borrado SMOD MOV SCON, #50H; Modo para 8 bits de datos y tasa de baudios; dependiente del temporizador SETB TR1; Temporizador de inicio/setter 1 RET donde REL96 es una constante igual a 0FDh Puede leer un byte del puerto de E/S SBUF solo cuando el bit RI del registro de control/estado SCON está establecido, lo que indica la presencia de un byte en el búfer de recepción. Después de leer este byte, se debe restablecer el bit RI. Después de escribir un byte en el puerto de E/S, debe esperar hasta que se establezca el bit TI, lo que indicará el final del envío del byte a la línea. Entonces también será necesario restablecer el bit TI. Subrutina para recibir un byte en el acumulador:
OBTENER: JNB RI, OBTENER MOV A, SBUF CLR RI RET Subrutina para enviar un byte desde el acumulador:
PONER: MOV SBUF, ENVIAR: JNB TI, ENVIAR CLR TI RET También cabe señalar que el microordenador no tiene ningún medio para detectar errores de entrada/salida. Para organizar la verificación en forma de software y hardware, se puede ampliar el número de líneas de entrada/salida a través de las cuales se transmitirán señales adicionales, y a partir de ellas será posible determinar los estados en los que se encuentran los participantes del diálogo, así como identificar errores. Puede aumentar la confiabilidad de la recepción/transmisión de información de otra manera: transmita otro bit con ocho bits de datos: el bit de paridad, calculado de manera similar al indicador de paridad en la palabra de estado del programa (bit 0 PSW). Sólo debe calcularse para un byte transmitido o recibido. Después de recibir el byte y el bit de paridad, debes compararlos para ver si coinciden entre sí. Si no coinciden, ha habido un error de E/S. Para transmitir el noveno bit de información adicional, debe utilizar el modo 9 o 2 del temporizador/contador. Programa general para MK. Diagrama de estado del dispositivo El programa general de microcomputadora se basa en el algoritmo que se describe a continuación. El algoritmo es bastante complicado, porque... Aun así, es necesario identificar de alguna manera, al menos mediante programación, los errores de entrada/salida y responder a su aparición. Para mayor claridad, se adjunta un dibujo al algoritmo descrito en palabras comunes: el llamado diagrama de estado del dispositivo (Fig. 3), que muestra los cuatro estados principales del dispositivo desde el punto de vista del intercambio de información con la computadora.
Estipulemos de antemano el hecho de que nuestra microcomputadora es la esclava y la computadora personal es la maestra en el intercambio de datos. Es decir, el dispositivo por sí solo, sin órdenes del PC, no debería hacer nada. Está completamente subordinado al ordenador de control. Se eligió una computadora personal como host por la sencilla razón de que tiene más potencia y puede controlar el dispositivo sin problemas. Además, puede proporcionar al usuario más funciones de servicio. Estado uno - Espera El dispositivo se encuentra en este estado inmediatamente después de conectar la tensión de alimentación. Aquí espera una solicitud de inicialización de la computadora, que se expresa cuando la computadora envía el carácter NUL. El dispositivo, a su vez, debe, en respuesta a la solicitud recibida, habilitar y configurar, si es necesario, módulos y recursos adicionales, y luego, si todo salió bien, enviar el símbolo ACK a la computadora. En caso de error deberá enviar NAK. Se produce así la primera “comunicación” de los dos “interlocutores”. Si lo desea, deben "intercambiar saludos" o "dar la mano". Si el dispositivo se inicializa correctamente y luego envía el carácter ACK, pasa automáticamente al siguiente estado. Esta transición está indicada por la flecha 1 en el diagrama. Estado listo En este estado, nuestra microcomputadora espera una solicitud de la PC para enviar el valor medido leído desde el ADC. La solicitud es el carácter XON. Al aceptar este símbolo, el dispositivo entra en un nuevo estado: Enviando. La transición corresponde a la flecha 2. Estado de envío Al llegar aquí, el microcontrolador lee un número binario de doce bits del ADC utilizando el método especificado anteriormente y lo envía en partes a la computadora. Esta implementación convierte el número binario en un equivalente hexadecimal de tres caracteres, como <1FF> para el número decimal 511. Primero se envía <1>, luego Una vez que el valor se transfiere a la computadora, la microcomputadora pasa al siguiente estado siguiendo la flecha 4. Estado enviado Este estado es el último y, por así decirlo, cierra el círculo de un único acto de comunicación entre el dispositivo y la computadora. Aquí se espera que la computadora confirme que ha aceptado correctamente el valor que se le dirigió. Hay varias opciones posibles para la respuesta del PC al número enviado: puede responder con una recepción exitosa con el símbolo XOFF, lo que significará que no se necesitan más valores por ahora, o puede responder con el símbolo XON, lo que significa que se necesita un valor más. Si se acepta XOFF, el dispositivo vuelve al estado Listo (transición 7 en el diagrama). Si se recibe el símbolo XON, el dispositivo vuelve a estar en estado de envío (transición 5) y repite la lectura del ADC con la posterior transmisión del número a la línea. El único caso no considerado fue cuando al PC no le gustó lo que recibió: por ejemplo, en lugar de caracteres en el rango <0>...<9>, ... Las transiciones indicadas por las flechas 3 y 8 en el diagrama quedaron sin describir. Si la computadora encuentra un error de E/S grave o necesita dejar de comunicarse con el dispositivo, simplemente enviará un NUL de inicialización, que inicializará el dispositivo y lo pondrá en el estado Listo. Aquellos. Cualquiera que sea el estado en el que se encuentre nuestro dispositivo, debe responder a la solicitud de inicialización de la misma manera que durante la inicialización (consulte Estado de espera del elemento). Si el microordenador recibe algún símbolo o solicitud inesperado o incorrecto, siempre debe responder con el símbolo NAK. Esta estrategia es ventajosa, ya que dicha organización del programa para el dispositivo facilita la realización de varias tareas a la vez: la microcomputadora y la PC no podrán jugar con un teléfono roto, en primer lugar, y, en segundo lugar, podrán hacerlo de manera simple y efectiva. “comunicarse” entre sí con un amigo. Pasemos a la PC. Programa general para PC. diagrama de estado de la PC Básicamente, el programa general para una computadora no diferirá en nada del utilizado en un microcontrolador. El algoritmo será similar y el diagrama de estado será similar. Inicialización del primer estado Aquí es donde llega la computadora cuando el usuario presiona una tecla en su teclado que corresponde a aceptar un solo valor. En este estado, la computadora envía un carácter de inicialización NUL al dispositivo y espera una respuesta con un carácter ACK o NAK. Si se recibió un ACK, entonces la inicialización fue normal y puede continuar trabajando; vaya al siguiente estado siguiendo la flecha 2 en el diagrama. Si se recibe un NAK, la operación debería detenerse y la computadora debería ingresar al estado final Listo en la flecha 1. Estado listo En este estado, la computadora se prepara para recibir los caracteres que conformarán el valor solicitado al microcomputador. Hay dos solicitudes para enviar un valor. La primera es una solicitud de valor normal; corresponde al carácter XON. La segunda solicitud es una solicitud para reenviar el último valor. Esto es necesario si el valor no se aceptó completamente dentro de un tiempo objetivo o si se aceptaron caracteres incorrectos que no estaban dentro de los rangos de <0> a <9> y de a Luego, después de prepararse para recibir símbolos de valor, se produce una de las dos solicitudes anteriores a nuestro dispositivo, luego la computadora se mueve a lo largo de la flecha 4 al estado de recepción de valor. Estado de recepción Aquí la PC simplemente lee tres caracteres del valor medido y convertido por el ADC. Como se indicó anteriormente, hay una cantidad objetiva de tiempo que la computadora espera por un personaje. Si el personaje no fue leído durante este tiempo, entonces esta situación se interpreta como errónea, es decir. se produjo un error de E/S. Por cierto, a velocidades de intercambio de información bastante altas (más de 19200 bps) o cuando se trabaja en el sistema operativo MS-Windows (cualquier versión), a menudo sucede que la computadora recibe solo dos de los tres caracteres que se le envían, y a veces incluso menos: uno. Para evitar que la computadora se "cuelgue" (esperando indefinidamente por un carácter faltante o omitido), se introduce algo de tiempo para limitar esta espera. Desafortunadamente, el hardware no detecta estas omisiones. Esta implementación define dos tipos de tiempos de espera que el usuario puede especificar mediante el teclado. El primer tipo es el tiempo de espera para el primero de tres caracteres. Permite que el dispositivo pueda medir, digitalizar con tranquilidad, sin prisas, el número que necesitamos y convertirlo en un equivalente simbólico. Y el segundo tipo es un límite de tiempo para enviar el segundo y tercer carácter. Pasemos ahora a posibles transiciones del estado receptor a otros estados. Si los 3 caracteres del valor no se recibieron dentro del tiempo asignado, entonces la computadora debe pedirle a nuestro dispositivo que le envíe el valor nuevamente. Esta situación corresponde a la transición según la flecha 5, es decir la computadora realiza una solicitud con el símbolo NAK y vuelve al estado Listo. Si durante el proceso de recepción la computadora detectó un error de entrada/salida (y la PC tiene la capacidad de simplemente analizar el registro de estado del puerto serie), entonces es mejor restaurar tanto la computadora como la microcomputadora a su estado original, es decir. repetir la inicialización. Por tanto, la flecha 3 también está presente en el diagrama. Y finalmente, si la computadora ha recibido los tres caracteres del dispositivo, pasa al estado de análisis del valor recibido, al estado Recibido según la flecha 8. Publicación: cxem.net 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: ▪ Chip (contador de electricidad trifásico) ADE7752 ▪ Al abordar un vuelo, muestre un dispositivo que funcione ▪ El peligro mortal del polvo ordinario ▪ Kit de memoria G.Skill Ripjaws 4 DDR4-2800 Feed de noticias de ciencia y tecnología, nueva electrónica
Materiales interesantes de la Biblioteca Técnica Libre: ▪ sección del sitio Los descubrimientos científicos más importantes. Selección de artículos ▪ artículo Lo cambiamos todo. expresión popular ▪ artículo ¿De qué sufría Dalton? Respuesta detallada ▪ artículo Kermek con muescas. Leyendas, cultivo, métodos de aplicación. ▪ El artículo Confetti desaparece del paquete. Secreto de enfoque
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 |