El SCC , abreviatura de Serial Communication Controller (controlador de comunicación en serie ), es una familia de circuitos integrados de controladores de puerto serie fabricados por Zilog . Los principales miembros de la familia son el Z8030/Z8530 y el Z85233.
Desarrollado a partir de los dispositivos Zilog SIO anteriores (Z8443), el SCC agregó una serie de modos serie-paralelo que permitieron la implementación interna de una variedad de protocolos de capa de enlace de datos como Bisync , HDLC y SDLC .
El SCC se puede configurar como un puerto RS-232 convencional para controlar sistemas antiguos o, alternativamente, como un puerto RS-422 para obtener un rendimiento mucho mayor, hasta 10 Mbit/s. Los detalles de implementación generalmente limitan el rendimiento a 5 Mbit/s o menos.
Uno de los usuarios más famosos del SCC fue la línea de computadoras Apple Macintosh SE , que utilizó el Z8530 para implementar dos puertos seriales en la parte posterior de los primeros diseños, etiquetados "módem" e "impresora".
Las comunicaciones seriales tradicionales normalmente se implementan utilizando un dispositivo conocido como UART , que traduce los datos del formato paralelo interno del bus de la computadora a serial y viceversa. Esto permite que la computadora envíe datos serialmente simplemente haciendo una escritura paralela regular a un registro de E/S , y el UART los convertirá a formato serial y los enviará. Generalmente había diferentes UART para cada arquitectura de computadora, con el objetivo de ser lo más económico posible. Un buen ejemplo es el Zilog Z-80 SIO de 1977, diseñado para funcionar con el ampliamente utilizado Zilog Z80 para proporcionar dos puertos seriales con velocidades relativamente altas de hasta 800 kbit/s. El SIO es técnicamente un USART , ya que entiende protocolos sincrónicos. [1]
El SCC es esencialmente una versión actualizada del SIO, con más lógica interna para permitirle implementar directamente una serie de protocolos comunes de capa de enlace de datos . Para empezar, el SCC incluía una implementación de hardware de la comprobación de redundancia cíclica (CRC), que le permitía comprobar, marcar y rechazar datos incorrectos sin el apoyo del ordenador anfitrión. Los protocolos de nivel superior incluían BiSync , HDLC y SDLC . HDLC es más conocido en su implementación en el protocolo LAPM orientado a módem , parte de V.42 . Al trasladar la implementación de estos protocolos al hardware, el SCC facilitó la implementación de sistemas de redes de área local , como SNA de IBM , sin la necesidad de que la CPU del host se encargara de estos detalles.
Cuando se utiliza en modo serial tradicional, el SCC se puede configurar para utilizar 5, 6, 7 u 8 bits/carácter, 1, 1+1 ⁄ 2 , o 2 bits de parada, paridad impar, par o nula, y señales de interrupción detectadas o generadas automáticamente. En los modos síncronos, los datos se podían enviar opcionalmente con codificación NRZ , NRZI o FM, así como con decodificación Manchester, aunque la codificación Manchester debía manejarse en lógica externa.
La velocidad de transmisión del SCC podía cronometrarse desde tres fuentes. Para comunicaciones básicas de estilo RS-232, el SCC incluía un reloj interno de 300 Hz que podía multiplicarse por 1, 16, 32 o 64, lo que proporcionaba velocidades de datos de entre 300 y 19.200 bit/s. Alternativamente, podía utilizar el reloj del bus proporcionado por la plataforma anfitriona y luego dividir ese reloj por 4, 8, 16 o 32 (los dos últimos solo en la implementación original de NMOS ). Cuando se utilizaba en una máquina que funcionaba con el reloj común de 8 MHz, esto permitía velocidades de hasta 2 Mbit/s. Finalmente, el SCC también incluía entradas para la provisión de un reloj externo. Esto funcionaba de manera similar al reloj del host, pero podía usarse para proporcionar cualquier señal de reloj de referencia, independientemente de la plataforma anfitriona. En este modo, el reloj podía dividirse como en el caso interno, o multiplicarse por 2 para velocidades aún mayores, hasta 32,3 Mbit/s en algunas versiones. El uso del reloj externo facilitó la implementación de adaptadores LAN, que normalmente funcionaban a velocidades independientes de la computadora host.
Las primeras implementaciones utilizaban buffers de recepción de sólo 3 bytes de profundidad y un buffer de envío de un solo byte. Esto significaba que el rendimiento en el mundo real estaba limitado por la capacidad de la plataforma anfitriona de vaciar continuamente los buffers en su propia memoria. Con comunicaciones de tipo red, el propio SCC podía hacer que el remitente remoto detuviera la transmisión cuando los buffers estuvieran llenos y, de ese modo, evitar la pérdida de datos mientras el host estuviera ocupado. Con la serie asíncrona convencional esto no era posible; en Macintosh Plus esto limitaba el rendimiento del RS-232 a unos 9600 bit/s o menos, y a tan sólo 4800 bit/s en los modelos anteriores.
La mayoría de los modelos SCC estaban disponibles en versiones de paquete doble en línea (DIP) o de portador de chip (PLCC).
Modelo original implementado en NMOS con una interfaz "Z-Bus" multiplexada que coincidía con las CPU Zilog Z8000 /Z16C00/ 8086
Funcionalmente idéntico al Z8030, pero utiliza un "Bus universal" no multiplexado diseñado para permitir el uso con cualquier CPU o plataforma host, incluido el Z-80.
Versiones del Z8030 y Z8530 con el soporte sincrónico eliminado, lo que produce un diseño más parecido al SIO original [2]
Implementaciones CMOS de los Z8030 y Z8530. Plug compatible con las versiones anteriores, agregando la velocidad 2x cuando se utiliza con el reloj externo y una serie de correcciones de errores y mejoras en los protocolos de la capa de enlace.
Implementaciones CMOS actualizadas de Z80C30 y Z85C30, también conocidas como ESCC
Versión actualizada del Z85230 (solamente), también conocido como EMSCC