doc:cbm:io:iec:how_serial_bus_works
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
doc:cbm:io:iec:how_serial_bus_works [2020/10/20 23:01] – eek | doc:cbm:io:iec:how_serial_bus_works [2023/11/12 23:43] (current) – eek | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | //This article appeared in [[https:// | + | //This article appeared in [[https:// |
====== HOW THE VIC/64 SERIAL BUS WORKS ====== | ====== HOW THE VIC/64 SERIAL BUS WORKS ====== | ||
Line 11: | Line 11: | ||
===== GROUND RULES ===== | ===== GROUND RULES ===== | ||
To understand the workings of this bus, you must work through a few concepts. Later, we'll get | To understand the workings of this bus, you must work through a few concepts. Later, we'll get | ||
- | technical for this who want it. | + | technical for those who want it. |
The bus, like the IEEE, has two modes of operation: Select mode, in which the computer calls all devices and asks for a specific device to remain connected after the call (" | The bus, like the IEEE, has two modes of operation: Select mode, in which the computer calls all devices and asks for a specific device to remain connected after the call (" | ||
Line 28: | Line 28: | ||
All wires connect to all devices. The wires don't go "one way"; any device can put a ground on a signal line, and all other devices will see it. Indeed, that's the secret of how it works: each wire serves as a common signal bus. | All wires connect to all devices. The wires don't go "one way"; any device can put a ground on a signal line, and all other devices will see it. Indeed, that's the secret of how it works: each wire serves as a common signal bus. | ||
- | When no device puts a ground on a signal line, the voltage rises to almost five volts. We call this the " | + | When no device puts a ground on a signal line, the voltage rises to almost five volts. We call this the " |
- | * A line will become " | + | * A line will become " |
- | * A line will become " | + | * A line will become " |
Remember that we have several lines, but the important ones for information transmission are the | Remember that we have several lines, but the important ones for information transmission are the | ||
Line 52: | Line 52: | ||
If the Ready for Data signal isn't acknowledged by the talker within 200 microseconds, | If the Ready for Data signal isn't acknowledged by the talker within 200 microseconds, | ||
- | So if the listener sees the 200 microsecond time-out, it must signal "OK, I noticed the EOI" back to the talker, I does this by pulling the Data line true for at least 60 microseconds, | + | So if the listener sees the 200 microsecond time-out, it must signal "OK, I noticed the EOI" back to the talker. It does this by pulling the Data line true for at least 60 microseconds, |
The talker will then revert to transmitting the character in the usual way; within 60 microseconds it will pull the Clock line true, and transmission will continue. | The talker will then revert to transmitting the character in the usual way; within 60 microseconds it will pull the Clock line true, and transmission will continue. | ||
Line 65: | Line 65: | ||
Now, for each bit, we set the Data line true or false according to whether the bit is one or zero. As soon as that's set, the Clock line is released to false, signalling "data ready." | Now, for each bit, we set the Data line true or false according to whether the bit is one or zero. As soon as that's set, the Clock line is released to false, signalling "data ready." | ||
- | Once the talker has signalled "data ready," | + | Once the talker has signalled "data ready," |
The listener plays a passive role here; it sends nothing, and just watches. As soon as it sees the Clock line false, it grabs the bit from the Data line and puts it away. It then waits for the clock line to go true, in order to prepare for the next bit. | The listener plays a passive role here; it sends nothing, and just watches. As soon as it sees the Clock line false, it grabs the bit from the Data line and puts it away. It then waits for the clock line to go true, in order to prepare for the next bit. | ||
Line 82: | Line 82: | ||
If EOI was sent or received in this last transmission, | If EOI was sent or received in this last transmission, | ||
- | [DIAGRAM] | + | {{: |
===== ATTENTION! ===== | ===== ATTENTION! ===== | ||
Line 89: | Line 89: | ||
Normally, the computer is the only device that will pull ATN true. When it does so, all other devices drop what they are doing and become listeners. | Normally, the computer is the only device that will pull ATN true. When it does so, all other devices drop what they are doing and become listeners. | ||
- | Signals sent by the computer during an ATN period look like ordinary characters - eight bits with the usual handshake - but they are not data. They are " | + | Signals sent by the computer during an ATN period look like ordinary characters - eight bits with the usual handshake - but they are not data. They are " |
- | + | ||
- | [DIGRAM] | + | |
An example might help give an idea of the nature of the communications that take place. To open for writing a sequential disk file called " | An example might help give an idea of the nature of the communications that take place. To open for writing a sequential disk file called " |
doc/cbm/io/iec/how_serial_bus_works.1603234868.txt.gz · Last modified: 2020/10/20 23:01 by eek