El bus serie Commodore ( bus IEC ) es la interfaz de Commodore para impresoras y almacenamiento de datos principalmente en discos magnéticos para computadoras domésticas Commodore de 8 bits : VIC-20 , Commodore 64 , Commodore 128 , Plus/4 , [7] Commodore 16. , y Comodoro 65 .
La interfaz paralela IEEE-488 utilizada en la línea de computadoras Commodore PET (1977) era demasiado costosa, por lo que se desarrolló una versión de costo reducido, que consistía en una versión serial simplificada de la interfaz IEEE-488, con solo unas pocas señales restantes. ; sin embargo, se mantuvo el diseño del protocolo general. Commodore empezó a utilizar este autobús con el VIC-20 (1980). La conexión al ordenador utiliza un conector DIN-6 (DIN 45322).
Las señales del bus son digitales TTL de 5 voltios de colector abierto de un solo extremo y activas cuando están bajas. Los dispositivos de bus deben proporcionar su propia energía.
Debido a que las líneas de bus son de colector abierto eléctricamente, funciona como una puerta OR larga entre todos los controladores de línea de dispositivos. El valor lógico de terreno es verdadero y viceversa. Cualquier dispositivo puede establecer una línea "verdadera". Una línea sólo se vuelve "falsa" si todos los dispositivos indican falso.
La transmisión comienza cuando el hablante del bus mantiene la línea de Reloj verdadera y los oyentes mantienen la línea de Datos verdadera. Para comenzar, el hablante libera la línea del Reloj a falso. Cuando todos los oyentes del bus están listos para recibir, liberan la línea de datos a falso. Si el hablante espera más de 200 μs sin que la línea del reloj se vuelva verdadera (estado inactivo), los oyentes deben realizar End-or-Identify (EOI). [3]
Si el hablante no reconoce que la línea de datos es falsa (liberada) dentro de 200 μs, el oyente sabe que el hablante está en el proceso de EOI, lo que significa que "este carácter será el último". Cuando el oyente detecta el tiempo de espera de 200 μs, debe reconocerlo tirando de la línea de datos verdadera durante al menos 60 μs y luego liberarla. El hablante puede volver a transmitir nuevamente dentro de 60 μs colocando la línea del reloj en verdadero. [3]
Los datos son ocho bits comenzando con el bit menos significativo. La línea de datos se configura según el bit a enviar (1=verdadero=tierra). Una vez configurada la línea de datos, la línea de reloj se libera a falso. Las líneas de reloj y datos se mantendrán estables durante al menos 20 μs (excepto el Commodore 64 que necesita 60 μs). Después de que se hayan enviado 8 bits, el hablante libera la línea de datos a falso y el oyente luego reconoce al hablante tirando de la línea de datos a verdadero dentro de 1000 μs. Después de esto, el hablante establece la línea de reloj como verdadera y el oyente establece la línea de datos como verdadera, por lo que regresa al lugar donde comenzó la transmisión. Si se señala una EOI manteniendo la línea de Reloj en estado falso, la transmisión finaliza y el oyente reconoce esto tirando de la línea de Datos en estado verdadero durante 200 μs. [3]
La línea ATN se establece en verdadero y los bytes se envían como arriba a todos los dispositivos, pero el byte se interpreta como uno de los comandos "Hablar", "Escuchar", "Dejar de hablar" y "Dejar de escuchar". Eso le dice a un dispositivo específico que se convierta en hablante o en oyente. Sólo los dispositivos con números de dispositivo coincidentes cambian al modo de hablar y escuchar. También puede seguir una dirección secundaria. [3]
En un nivel lógico superior, el host configurará la línea ATN en verdadero y transmitirá los bytes "Número de dispositivo 8, escuchar", "Dirección secundaria 2, abrir". A continuación, establecerá la línea ATN como falsa y el anfitrión se convertirá en el hablante, manteniendo la línea del Reloj como verdadera. El dispositivo será el oyente y mantendrá la línea de datos verdadera. El host transmitirá el comando de apertura específico y lo finalizará con una secuencia de señal EOI. Después de esto, el host configurará con la línea ATN verdadera, "Dispositivo número 8, no escuchar". Seguido por la línea ATN verdadera y "Dispositivo número 8, escuchar", "Dirección secundaria 2, datos". Luego, el host configura la línea ATN como falsa y envía los datos. Cuando el host ha terminado de enviar datos, la línea ATN se establece en verdadero y se envía el "Dispositivo número 8, no escuchar". [3]
Cuando es necesario cambiar roles y hacer que el host sea un oyente y el dispositivo un hablante, esto ocurre después de que se ha enviado un comando de conversación al dispositivo. El host establece la línea de Datos como verdadera y libera la línea de Reloj como falsa. El dispositivo espera a que la línea de Reloj cambie a falso y luego la lleva a verdadero y libera la línea de Datos a falso. Después de esta secuencia puede seguir la interacción estándar entre el hablante y el oyente. [3]
Para leer un archivo normal desde el dispositivo de disquete número 8, el comando LOAD "filename",8,1
se emite en un Commodore 64 . Eso provoca que se lleve a cabo la siguiente comunicación de alto nivel:
La unidad de disquete Commodore 1541 utiliza un modo compatible con Commodore 64 más lento que se puede desactivar para una velocidad más rápida usando el comando OPEN 15,8,15,"UI-":CLOSE 15
. [11]
Los dispositivos número 0 a 3 no están asociados con el bus Commodore. [10]
La computadora VIC-20 y las unidades de disquete Commodore 1540 y 1541 utilizan MOS Technology 6522 VIA para manejar transmisiones de bus IEC. Las computadoras Commodore 64 y 128 y la unidad Commodore 1571 utilizan el Adaptador de interfaz complejo .
(1) Cable blindado de 4 conductores de 6' o 1,8 metros (máx.) (para conexión en serie)
Corriente baja de salida (hundimiento); VOL < 0,4 v (PA0-PA7, PC, PB0-PB7, DB0-DB7) LIO 3,2 mA
Los trucos de programación utilizados por
Epyx
han producido velocidades de transferencia de hasta 2,5 kilobytes por segundo.[ enlace muerto ]
El 1541 funciona perfectamente con el Plus/4.