La mayor diferencia entre la comunicación multimáquina Ethernet y la comunicación uno a uno es que la primera necesita transmitir un código de dirección adicional. En la comunicación uno a uno, después de que el host envía datos, el clúster los recibe, y cuando el clúster envía datos, es reemplazado por el host para recibirlos, no se requiere código de dirección. Pero cuando un maestro se comunica con varios esclavos, cómo se puede transmitir correctamente la información enviada por el maestro a un determinado esclavo? Debe haber una dirección?
Para solucionar este problema, en el sistema de multímetros, cada esclavo tiene su número específico (también conocido como dirección o ID). Antes de transmitir datos, cada esclavo está en estado de espera para recibir. Cuando el maestro asigna un esclavo específico, el esclavo comienza a recibir o enviar datos, y la operación de especificar un esclavo con una dirección específica es en realidad enviar un código de dirección. El puerto serie de cada esclavo recibirá el código de dirección enviado por el maestro, y luego el programa primero juzgará si es la misma que su propia dirección y, si es la misma, comenzará a ejecutar el programa.
Siempre hemos mencionado los códigos de dirección en la comunicación entre varias máquinas, entonces, cómo distinguir el valor de la dirección (Dirección) y los datos (Datos) en la comunicación en serie? Este es el encanto del MCS-51 serial modo 2 y modo 3. Cuando el MCS-51 funciona en los dos modos anteriores, excepto que los datos ocupan 8 bits, hay un bit TB8 adicional al transmitir y un bit RB8 adicional al recibir. En la comunicación de varias máquinas, cuando TB8=1, significa que se transmite un código de dirección, y el código de dirección tiene 8 bits de ancho, por lo que, en teoría, se pueden conectar 28=256 máquinas esclavas en el mismo sistema. TB=0 significa que se está transmitiendo un valor de datos. En esta línea de transmisión en serie, cada dato en serie tiene un total de 11 bits, pero el estado del décimo bit se usa para distinguir la dirección o los datos, y el extremo receptor puede juzgar inmediatamente el formato a su vez. donde viene la diferencia.
En la máquina esclava, los datos entrantes generalmente se tratan como una interrupción del puerto serie. Si el bit SM2 del registro SCON se establece en 1, la interfaz serial del MCS-51 puede juzgar la dirección de la máquina multiesclavo. En este modo, el esclavo genera una solicitud de interrupción solo cuando recibe el valor de la dirección (su RB8=1).
En el programa de servicio de interrupción en serie, siempre que el valor de la dirección se vuelva a leer desde SBUF, se determina si se llama o no. Si es SÍ, saltará para ejecutar la operación establecida por el programa. Si es NO, no realizará ninguna operación y luego finalizará el programa de servicio de interrupción y volverá al programa principal. La máquina esclava específica se establece primero en SM2 y luego comienza a enviar o recibir datos, y los otros esclavos no han iniciado la transmisión, por lo que todavía es una comunicación uno a uno en este momento, pero es uno- comunicación a muchos cuando el maestro envía la dirección en la etapa inicial.
El puerto serie de la microcomputadora de un solo chip es de nivel TTL, es decir, 0-5 V, y la distancia de transmisión es de solo 5 m como máximo. Si desea una transmisión de larga distancia, también debe convertir el nivel TTL al nivel RS485. El protocolo de comunicación multicomputadora de MCS-51 puede no ser adecuado para otros tipos de microcomputadoras de un solo chip, y puede que ni siquiera sea adecuado para puertos serie de computadora, por lo que es muy necesario unificar el protocolo de comunicación multicomputadora RS485.