Bus IEC (Commodore)
Commodore serial IEEE-488 | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Tipo | bus de periféricos | |||||||||||||||||||
Historia de producción | ||||||||||||||||||||
Diseñador | Commodore International | |||||||||||||||||||
Fecha de diseño | 1980[1] | |||||||||||||||||||
Fabricante | Varios | |||||||||||||||||||
Fecha de producción | 1980–presente | |||||||||||||||||||
Especificaciones | ||||||||||||||||||||
Longitud | 1,8 metros máximo[2] | |||||||||||||||||||
Conectable en caliente | No | |||||||||||||||||||
Externo | Sí | |||||||||||||||||||
Eléctrico |
Colector abierto de 5 V
| |||||||||||||||||||
Señal de datos |
Sí
| |||||||||||||||||||
Pines | 6 | |||||||||||||||||||
Conector | conector DIN | |||||||||||||||||||
Patillaje | ||||||||||||||||||||
Toma hembra desde el frente. | ||||||||||||||||||||
| ||||||||||||||||||||
El bus serie IEEE-488 de Commodore (bus IEC) es la interfaz de Commodore para el almacenamiento de datos principalmente en discos magnéticos y las impresoras para las computadoras personales Commodore de 8 bits, especialmente el VIC-20, C64, C128, Plus/4,[6] C16 y C65.
Descripción e historia
[editar]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 en serie simplificada de la interfaz IEEE-488, con solo unas pocas señales restantes; sin embargo, se mantuvo el diseño general del protocolo. Commodore comenzó a usar este bus con el VIC-20 (1980). La conexión a la computadora utiliza un conector DIN-6.
Velocidad de transferencia
[editar]Setup | Velocidad | Bitrate efectivo |
---|---|---|
Comodore 64 + 1541 | 400 bytes/s | 3.200 bit/s |
Commodore 64 + 1541 con Fast loader | 2560 bytes/s[4] | 20.480 bit/s |
Comodore 128 + 1571 | 5200 bytes/s[5] | 41.600 bit/s |
teórico 20 µs[7] | 6250 bytes/s | 50.000 bit/s |
Interfaz
[editar]Pin | Nombre | Función |
---|---|---|
1 | /SRQIN | Entrada de solicitud de servicio para permitir que los periféricos soliciten ser atendidos por el host (C64). Utilizado por el C128 para transferencias rápidas.[9] |
2 | GND | Tierra |
3 | /ATN | Serial ATN de entrada / salida. Establecido bajo por el host (C64) para indicar el comienzo de una transferencia de datos en serie. |
4 4 | /CLK | Serial CLK de entrada / salida. Utilizado para el apretón de manos de software. |
5 5 | /DATA | Datos en serie de entrada / salida. Transferencia de bits de datos. |
6 6 | /RESET | Restablece periféricos y también restablece un C64 anterior. |
Descripción del protocolo
[editar]Las señales del bus son un TTL colector abierto digital de un solo extremo de 5 voltios y activas cuando son negativas. Los dispositivos de bus deben proporcionar su propia potencia.
Debido a que las líneas de bus son un colector abierto eléctricamente, funciona como una puerta OR larga entre todos los controladores de línea del dispositivo. El valor lógico para ground es verdadero y viceversa. Cualquier dispositivo puede establecer una línea "verdadera". Una línea solo se vuelve "falsa" si todos los dispositivos señalan falsa.
La transmisión comienza con el hablante del bus que mantiene la línea del reloj verdadera y el oyente que mantiene 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 hablador 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).[7]
Si la línea de datos que es falsa (liberada) no es reconocida por el hablador dentro de los 200 µs, el oyente sabe que el hablador está en proceso de EOI, lo que significa que "este caracter será el último". Cuando el oyente detecta el tiempo de espera de 200 µs, debe reconocerlo tirando de la línea de datos como verdadera durante al menos 60 µs y luego liberarla. El interlocutor puede volver a transmitir nuevamente dentro de los 60 µs tirando de la línea del reloj verdadero.[7]
Los datos son ocho bits que comienzan con el bit menos significativo. La línea de datos se establece de acuerdo con el bit a enviar (1=verdadero=tierra). Una vez que se establece la línea de datos, la línea del reloj se libera en falso. Las líneas 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 hablador libera la línea de datos a falso y el oyente luego reconoce al hablador tirando la línea de datos verdadero dentro de 1000 µs. Después de esto, el hablador establece la línea del reloj como verdadera y el oyente establece la línea de datos como verdadera, por lo tanto, donde comenzó la transmisión. Si se señala un EOI al mantener la línea del reloj en falso, la transmisión finaliza y el oyente lo reconoce tirando de la línea de datos verdadero durante 200 µs.[7]
La línea ATN se establece en verdadero y los bytes se envían como todos los dispositivos anteriores, pero el byte se interpreta como uno de los comandos "Talk", "Listen", "Untalk" y "Unlisten". Eso le dice a un dispositivo específico que se convierta en un hablante u oyente. Solo los dispositivos con números de dispositivo coincidentes cambian al modo hablar y escuchar. Una dirección secundaria también puede seguir.[7]
En un nivel lógico superior, el host establecerá la línea ATN en verdadero y transmitirá los bytes "Número de dispositivo 8, escucha", "Dirección secundaria 2, abierta". A continuación, establecerá la línea ATN falsa y el host se convertirá en el hablador, manteniendo la línea del reloj verdadera. El dispositivo será el oyente, manteniendo 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 establecerá con la línea ATN verdadera, "Dispositivo número 8, sin listar". Seguido por la línea ATN verdadera y "Dispositivo número 8, escucha", "Dirección secundaria 2, datos". Luego, el host establece la línea ATN falsa y envía los datos. Cuando el host ha terminado de enviar datos, la línea ATN se establece en verdadera y se envía "Dispositivo número 8, no listado".[7]
Cuando es necesario cambiar de roles y hacer que el host sea un oyente y el dispositivo que habla, se produce después de que se ha enviado un comando de conversación al dispositivo. El host establece la línea de datos verdadero y libera la línea del reloj en falso. El dispositivo espera a que la línea del reloj se vuelva falsa y luego la pone a verdadera y libera la línea de datos a falso. Después de esta secuencia, puede seguir la interacción estándar entre hablante y oyente.[7]
Código | Sentido |
---|---|
dispositivo | 0x20 | Escucha, dispositivo (0–30) |
0x3F | Sin listar, todos los dispositivos |
dispositivo | 0x40 | Talk, dispositivo |
0x5F | Untalk, todos los dispositivos |
canal | 0x60 | Reabrir, canal (0-15) |
canal | 0xE0 | Cerrado, canal |
canal | 0xF0 | Abierto. canal |
Para leer un archivo normal del disquete número 8, el comando LOAD "filename",8,1
se emite en un Commodore 64. Eso provoca la siguiente comunicación de alto nivel:
Comando | Destino | Significado |
---|---|---|
/28 | Dispositivo | Escucha, dispositivo número 8 |
/F0 | Dispositivo | Abrir canal 0 |
Dispositivo | Enviar bytes de nombre de archivo | |
/3F | Dispositivos | Desliste todos los dispositivos |
/48 | Dispositivo | Talk, dispositivo número 8 |
/60 | Dispositivo | Reabrir canal 0 |
El dispositivo número 8 se convierte en el maestro del bus | ||
Anfitrión | Recibir datos de bytes | |
El host se convierte en el maestro del bus (operación normal) | ||
/5F | Dispositivos | Deshabilitar todos los dispositivos |
/28 | Dispositivo | Escucha, dispositivo número 8 |
/E0 | Dispositivo | Cerrar canal 0 |
/3F | Dispositivos | Desliste todos los dispositivos |
La unidad de disquete Commodore 1541 utiliza un modo más lento compatible con Commodore 64 que puede desactivarse para una velocidad más rápida mediante el comando OPEN 15,8,15,"UI-":CLOSE 15
.[11]
Numeración de dispositivos
[editar]Dispositivo | Tipo |
---|---|
0 | Teclado |
1 | Puerto de casete |
2 | RS-232 en el puerto de usuario o segundo casete en PET |
3 | Pantalla |
4–5 | Impresora |
6 | Típicamente dispositivo trazador |
7 | Segundo trazador? |
8-15 | Disco (10 – utilizado por algunas interfaces de impresora serie a paralelo) |
16-30 | Desconocido |
31 | Reservado como comando para todos los dispositivos |
El dispositivo número 0–3 no está asociado con el bus Commodore.[10]
Implementación del host
[editar]La computadora Commodore VIC-20 y las unidades de disquete Commodore 1540 y 1541 utilizan la un MOS 6522 VIA para manejar transmisiones de bus IEC. Las computadoras Commodore 64 y 128 y la unidad Commodore 1571 usan el Adaptador de interfaz complejo.
Dispositivos comunes
[editar]Dispositivo | Información |
---|---|
1541 | Disquete de 5¼ pulgadas de 170 KB |
1570 | Disquete de 5¼ pulgadas de 170 KB |
1571 | Disquete de 5¼ pulgadas de 340-410 KB |
1581 | Disquete de 3½ pulgadas de 800 KB |
Commodore MPS 801 | Impresora de matriz de puntos |
Comodore 1515[12] | Impresora de matriz de puntos |
Comodore 1520 | Impresora de bolígrafo |
Comodor VIC-1525[13] | Impresora de matriz de puntos |
Comodore VIC-1526 | Impresora de matriz de puntos MPS 802 renombrada |
Okimate 10 | Impresora de matriz de puntos |
DPS-1101[14] | Impresora de rueda de margarita |
INTERPOD | Independiente IEEE-488 + RS-232[15] |
Comodore VIC-20 | Computadora con 5 KB de RAM a 1 MHz |
Comodore 64 | Computadora con 64 KB de RAM a 1 MHz |
Commodore SX-64 | Computadora con 64 KB de RAM a 1 MHz |
Comodore 128 | Computadora con 128 KB de RAM a 2 MHz |
Comodore 16 | Computadora con 16 KB de RAM a 1-2 MHz |
Commodore Plus/4 | Computadora con 64 KB de RAM a 1,76 MHz |
Comodore 65 | Computadora con 128 KB de RAM a 3,54 MHz |
Comodore 1541
[editar]La unidad de disquete Commodore 1541 es el periférico más común utilizado con este bus y puede almacenar 170 KB.
Dispositivos
[editar]-
La unidad de disco Commodore 1541
-
Unidad de disquete VC 1571
-
Impresora Commodore MPS 802
Véase también
[editar]- Commodore DOS
- Comodore 1541
- Fast loader
- Almacenamiento de datos de cinta magnética
- IEEE-488, la versión paralela original
Referencias
[editar]- ↑ «Commodore VIC-20 History». Archivado desde el original el 14 de febrero de 2015. Consultado el 8 de enero de 2020. (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última).
- ↑ «Building the XE1541 serial cable». Consultado el 2 de abril de 2016. «(1) 6' or 1.8 meters (max) 4 conductor shielded cable (for serial connection)».
- ↑ «6526 complex interface adapter (CIA)» (pdf). 4 de marzo de 2016. Archivado desde el original el 10 de abril de 2016. Consultado el 2 de abril de 2016. «Output Low Current (Sinking); VOL < .4 v (PA0-PA7, PC, PB0-PB7, DB0-DB7) IOL 3.2 mA». (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última).
- ↑ a b «Design case history: the Commodore 64» (publicado el 16 de abril de 2012). 1985. Consultado el 2 de abril de 2016. «Programming tricks used by Epyx have yielded transfer rates of up to 2.5 kilobytes per second.»
- ↑ a b «Commodore 1571 disk drive specifications». Commodore Business Machines, Inc. October 1986. Consultado el 27 de abril de 2016.
- ↑ «Using Commodore 1541 disk drive on a Commodore + 4». 3 de octubre de 2005. Consultado el 15 de mayo de 2016. «The 1541 works with the Plus/4 just fine.»
- ↑ a b c d e f g h «How the VIC/64 Serial Bus works». 17 de abril de 2015. Consultado el 28 de abril de 2016.
- ↑ «C64 Serial I/O pinout and wiring @ old.pinouts.ru». 16 de diciembre de 2013. Consultado el 2 de abril de 2016.
- ↑ «C-64 Workshop / Pin Connections». 10 de diciembre de 2005. Consultado el 2 de abril de 2016.
- ↑ a b c «IEC-bus documentation as used for the 1541-III IEC disected». 24 de febrero de 2008. Archivado desde el original el 16 de enero de 2017. Consultado el 28 de abril de 2016.
- ↑ «VIC-1541». C64-wiki.com. 11 de marzo de 2016. Consultado el 28 de abril de 2016.
- ↑ «VIC-1515 User's manual Graphic printer by Commodore» (publicado el 5 de noviembre de 2011). April 1981. Consultado el 28 de abril de 2016.
- ↑ «VIC-1525 Graphics Printer User Manual». Commodore Computer. Consultado el 22 de febrero de 2015.
- ↑ «Commodore DPS-1101 Daisy Wheel Printer».
- ↑ «Interpod IEEE-488 Interface». April 2008. Consultado el 28 de abril de 2016.
Enlaces externos
[editar]- «Saving with 64HDD / XE1541 cable length...». lemon64.com.
- «Design case history: the Commodore 64». IEEE Spectrum. Marzo de 1985.
- «Serial Bus signal description». uwaterloo.ca.
- «IEC disected». zimmers.net. 24 de febrero de 2008. Archivado desde el original el 16 de enero de 2017. «IEC disected». zimmers.net. 24 de febrero de 2008. Archivado desde el original el 16 de enero de 2017. – – Documentación de bus IEC tal como se utiliza para el IEC 1541-III diseccionado