Red de conocimiento informático - Material del sitio web - La realización de la comunicación entre múltiples microcontroladores de nivel inferior y la computadora host a través del puerto serie

La realización de la comunicación entre múltiples microcontroladores de nivel inferior y la computadora host a través del puerto serie

Utilice una PC para comunicarse con múltiples 51 microcontroladores a través de RS232.

En la comunicación multimáquina, para garantizar una comunicación confiable entre el host y el esclavo seleccionado, es necesario asegurarse de que el puerto serie tenga la función de identificación. Hay un bit en el registro de control del puerto serie SCON llamado SM2, que es un bit de control configurado para la comunicación entre múltiples máquinas. El proceso de comunicación entre múltiples máquinas puede ser el siguiente:

1 Primero, la máquina esclava se inicializa, activa la interrupción y le permite recibir en el modo 2 o 3 (modo de comunicación asíncrona de 9 bits). Configure los bits SM2 y REN para permitir la recepción. Luego, cuando SM2 = 1, solo cuando el noveno bit de datos recibidos (RB8) sea igual a 1 (se recibe la trama de dirección), los primeros 8 bits de datos se envían al receptor. Se establece SBUF, RI y se genera una interrupción. Si el noveno bit de datos recibido es 0, la trama de datos recibida se descarta.

2 En este momento, el host puede enviar primero la dirección del esclavo a cada sistema esclavo. El puerto serie de cada esclavo recibe los datos del noveno bit RB8 como 1. Como SM2 = 1, se configura RI y. cada esclavo La máquina interrumpe en consecuencia En el programa de servicio de interrupción, se juzga si la dirección enviada por el host coincide con la dirección local (esta dirección la establece el escritor del software. Si coincide, SM2 se borra y está listo para recibir datos). . Si no coincide, mantenga SM2=1.

3 En el tercer paso, el host comienza a enviar la trama de datos. En este momento, el esclavo con la dirección anterior coincide, SM2=0, y los datos enviados por el host RB8 = 0, de modo que solo el esclavo coincidente con SM2 = 0 puede generar una interrupción de recepción de datos, activar el bit de bandera de interrupción RI e ingresar a la rutina de servicio de interrupción para recibir datos. Debido a que SM2=1 y RB8=0, otros esclavos no pueden activar el indicador de interrupción RI y no pueden ingresar a la interrupción, por lo que los datos recibidos se pierden y no se procesan. Esto garantiza la exactitud de esta comunicación de datos.

Consulte los materiales de referencia para obtener detalles del procedimiento.