Serial Port

Материал из C64 WIKI по русски.
Перейти к: навигация, поиск

Описание

Последовательный интерфейс на C64

Serial bus (IEC или CBM шина) это стандартный интерфейс для подключения внешних устройств таких как дисководы или принтеры. Технически это commodore-ориентированный вариант параллельной шины IEEE-488/IEC-625, поэтому его часто называют IEC шина или CBM шина. Этот вариант интерфейса не совместим с RS232, который является стандартом последовательного интерфейса для IBM-совместимых персональных компьютеров.

Поскольку последовательные порты используются для подключения только двух устройств (например RS232) шина IEC это последовательная шина. Для подключения большего количества устройств у большинства периферийных устройств существуют петлевые разъемы. Теоретически можно подключить до 31 устройства (номера устройства от 0 до 31, номер 31 зарезервирован для UNTALK/UNLISTEN). Тем не менее операционная система C64 можно использовать только номера устройств от 4 до 30, потому что 0-3 зарезервированы системой. Практически потолок в районе 8 подключенных устройств. Причина этого в том что микросхемы 7406 в C64 могут работать с максимальной нагрузкой по току 40 mA, а любое устройство подключенное к последовательной шине забирает 5mA.

Выбор устройства с которым будет происходить обмен данными определяется по номеру устройства. это число от 4 до 30 должно быть установлено на устройстве, и должно быть уникальным. Стандартный номер принтера 4, первого дисковода 8.

Тайминги шины заданы довольно плотно. Так что если PC подключен соответствующим кабелем (смотрите X1541) к дисководу и передает данные - или наоборот (т.е. PC эмулирует дисковод для C64) все должно работать хорошо. но если вы используете многозадачную ОС (Windows, Linux, и.т.п.) это не будет работать без сложной схемы с собственным интеллектом из-за за превышения максимально допустимой задержки всего в несколько микросекунд (особенно при использовании fast loader. По этой причине такое программное обеспечение как 64HDD и 1541EMU работает только под DOS.

В стандартном режиме (LOAD, немодифицированные KERNAL-подпрограммы) последовательная шина способна передавать 400 байт/с при использовании VIC-1541 и приблизительно 650 байт/с при использовании SD2IEC. С JiffyDOS и VIC-1541 приблизительно 2.4 Кбайт/с, а с JiffyDOS и SD2IEC достигает 8.6 Кбайт/с. Теоретически максимальная скорость может достигать 20-25 Кбайт/с[1].

Назначение контактов

Последовательный интерфейс это 6-контактный разъём DIN (DIN 45322).

Расположение контактов


Контакт Описание Направление сигнала Примечание
1 SERIAL SRQ Вход Входящий сервисный запрос, в C128 "Fast Serial Clock"
2 GND - Земля (0V)
3 SERIAL ATN Выход Внимание, для выбора устройства перед началом/окончанием передачи
4 SERIAL CLK Вход/Выход Синхросигнал (для передачи данных)
5 SERIAL DATA Вход/Выход Данные
6 SERIAL RESET Выход(/Вход) Сброс, в VIC-20 не используется

Описание сигналов

  • Внимание: многие fast loader'ы используют эти сигналы по своему! Здесь описано назначение контактов действительное только для стандартного использования шины.
  • Все сигналы (кроме GND) в активном состоянии имеют низкий уровень. Если неактивны имеют высокий уровень напряжения около 5V.
  • С точки зрения электроники, все сигналы с "открытым коллектором", для сохранения поведения шины.


SRQ: Serial Service Request in

Любое устройство может перевести этот сигнал в активное состояние что бы запросить обмена данными с компьютером. C64 не использует этот сигнал, но он связан с дорожкой чтения порта магнитофона (хотя с помощью этого можно проверить наличие сигнала, но не его уровень).
C128 использует этот вывод как "Fast Serial Clock" для дисководов VIC-1571/VIC-1581.

ATN: Serial Attention out

Если этот сигнал активен и байты передаются, все подключенные устройства воспринимают их как команды. Как только C64 делает активным сигнал ATN, все остальные устройства ждут передачи адреса(номера устройства). Устройство с указанным адресом должно ответить в течении определенного времени, в противном случае C64 считает что устройство отсутствует, и выдает сообщение об ошибке. Следом за номером устройства отправляется второй адрес, сигнал ATN остается в активном состоянии. После передачи первого "нормального" байта сигнал переводится обратно в неактивное состояние.

CLK: Serial Clock in/out

Этот сигнал является синхронизирующим для передаваемых данных. Синхросигнал генерируется на устройстве которое передает данные. Принимающие устройство получает сигнал CLK перед принятием действительного бита данных.

DATA: Serial Data in/out

Данные передаются через этот выход последовательно бит за битом. Передача байта начинается с нулевого бита LSB и заканчивается 7-м битом MSB.

RESET: Serial Reset

Этот сигнал производит сброс подключенного устройства. Ранние модели C64 позволяли его использовать в качестве способа сброса компьютера (Reset-кнопка), в более поздних моделях это стало невозможно. Поэтому кнопка сброса теперь подключается в user port.

Расширения

  • Можно увеличить количество подключенных устройств на шине. Для этого в некоторых устройствах должны быть удалены резисторы 1kΩ. Внимание: если они будут удалены во всех устройствах шина работать не будет.
  • Питание устройств с низким потреблением через Serial Bus.

Ссылки

Wikipedia: CBM-Bus

Ссылки

  1. What is sd2iec's speed?

Оригинал статьи на С64-WIKI.COM