MOS Technology ЦРУ - MOS Technology CIA

Конфигурация контактов 6526 CIA
Начало 6526 CIA еще находилось в дорогом керамическом корпусе с золотыми контактами. Более поздние версии выпускались в более дешевой пластиковой упаковке.
CIA MOS 6526A в пластиковом корпусе

В 6526/8520 Сложный интерфейсный адаптер (ЦРУ) был Интегральная схема сделан Технология MOS. Он служил Порт ввода / вывода контроллер для 6502 семейство микропроцессоров, обеспечивающее параллельно и серийный Возможности ввода / вывода, а также таймеры и часы времени суток (TOD). Наиболее заметное использование устройства было в Коммодор 64 и Коммодор 128 (D), каждая из которых включала в себя две микросхемы ЦРУ. В Коммодор 1570 и Коммодор 1571 В каждом дисководе для гибких дисков было по одному ЦРУ. Кроме того, Amiga домашние компьютеры и Коммодор 1581 В дисководе гибких дисков использовался модифицированный вариант схемы CIA под названием 8520. 8520 функционально эквивалентен 6526, за исключением упрощенного TOD схема.

Параллельный ввод / вывод

У ЦРУ было два 8 бит двунаправленные параллельные порты ввода / вывода. У каждого порта был соответствующий регистр направления данных, что позволяло индивидуально настраивать каждую строку данных в режим ввода или вывода. Чтение этих портов всегда возвращало статус отдельных линий, независимо от заданного направления данных.

Последовательный ввод / вывод

Внутренний двунаправленный 8-битный регистр сдвига позволило ЦРУ справиться с последовательный ввод / вывод. Чип мог принимать последовательный ввод, синхронизированный от внешнего источника, и мог отправлять последовательный вывод, синхронизированный с одним из встроенных программируемых таймеров. An прерывать генерировался всякий раз, когда завершалась 8-битная последовательная передача. Удалось реализовать простой "сеть "путем соединения сдвигового регистра и тактовых выходов нескольких компьютеров вместе. Максимальный битрейт составляет 500 кбит / с для версии 2 МГц.

ЦРУ включает исправление ошибки в регистре последовательного сдвига в более ранней версии. 6522 VIA. Изначально ЦРУ предназначалось для обеспечения быстрой связи с дисководом, но в конце концов его нельзя было использовать из-за желания сохранить совместимость дисковода с диском. VIC-20; на практике прошивка 1541 привод пришлось сделать еще медленнее, чем его предшественник Vic-20, чтобы обойти поведение C64. видеопроцессор, который при рисовании экрана отключил ЦПУ в течение 40 микросекунд каждые 512 микросекунд и в этом временном интервале не может прослушивать шину, рискуя пропустить какой-то бит.[1][2]

Таймеры интервалов

Доступны два программируемых интервальных таймера, каждый с суб-микросекунда точность. Каждый таймер состоял из 16 бит только чтение предустановленный счетчик и соответствующий 16-битный только для записи защелка. Всякий раз, когда таймер запускался, защелка таймера автоматически копировалась в его счетчик, и счетчик затем уменьшался с каждым тактовым циклом до потери значимости, при которой прерывать будет сгенерирован, если ЦРУ было настроено на это.

Таймер может работать либо в «однократном» режиме с остановкой после переполнения, либо в «непрерывном» режиме, перезагружая значение защелки и начиная цикл таймера заново. В дополнение к генерации прерываний, выход таймера также может быть стробирован на второй порт ввода / вывода.

Как настроено в Коммодор 64 и Коммодор 128, время ЦРУ контролировалось системными часами Ø2, номинально МГц. Это означало, что таймеры уменьшались примерно с интервалом в одну микросекунду, а точный период времени определялся тем, использовала ли система NTSC или же PAL стандарт видео. В C-128 часы растяжения был использован, поэтому время ЦРУ не зависело от того, работала ли система в медленном или быстром режиме.

Было возможно сгенерировать относительно длинные временные интервалы, запрограммировав таймер B для подсчета потерь времени по таймеру A. Если оба таймера были загружены с максимальным значением интервала 65 535, получился бы временной интервал в один час 11 минут 34 секунды.

Часы времени дня (TOD)

Часы реального времени встроены в ЦРУ, обеспечивая устройство для измерения времени, более подходящее для человеческих потребностей, чем точность до микросекунд интервальных таймеров. Время ведется в американском 12-часовом формате AM / PM. Часы TOD состоят из четырех регистров чтения / записи: часы (бит 7 действует как флаг AM / PM), минуты, секунды и десятые доли секунды. Все регистры считываются в BCD формат, что упрощает процесс кодирования / декодирования.

Чтение из регистров всегда возвращает время дня. Чтобы избежать ошибки переноса при получении времени, чтение регистра часов немедленно остановит обновление регистра, не влияя на точность внутреннего хронометража. Как только будет прочитан регистр десятых, обновление возобновится. Можно читать любой регистр, кроме регистра часов, «на лету», что делает практическое применение текущих часов TOD в качестве таймера. Однако при считывании регистра часов необходимо впоследствии прочитать регистр десятых долей. В противном случае все регистры TOD останутся «замороженными».

Установка времени включает в себя запись соответствующих значений BCD в регистры. Доступ для записи в регистр часов полностью остановит часы. Часы не запустятся снова, пока значение не будет записано в регистр десятых долей. Из-за порядка, в котором регистры появляются в системе карта памяти, простой цикл - это все, что требуется для записи регистров в правильном порядке. Допускается запись только в регистр десятых долей, чтобы «подтолкнуть» часы к действию, при этом после аппаратного сброса часы начнутся с 1: 00: 00.0.

В дополнение к функциям хронометража, TOD можно настроить для работы в качестве будильник, организовав для него создание запрос на прерывание в любое желаемое время. Из-за ошибки во многих 6526 (см. Также список ошибок ниже), прерывание прерывания сигнала тревоги не всегда происходит, когда секундная составляющая времени сигнала тревоги равна нулю. В обходной путь - установить значение десятых долей будильника на 0,1 секунды.

Внутренняя схема часов TOD разработана для работы с тактовым сигналом 50 или 60 Гц, который можно недорого получить от источника питания от сети. AC, что дает стабильный хронометраж с небольшим долгосрочным дрейфом. Возможность работать с обеими частотами линии электропередачи позволила использовать одну версию 6526 в компьютерах, эксплуатируемых в странах с сетью электропитания 50 или 60 Гц. Важно отметить, что вопреки распространенному мнению, NTSC или же PAL видеостандарты не связаны напрямую с частотой электросети. Кроме того, некоторые компьютеры не получали свою тактовую частоту TOD от источника питания от сети. Например, оба NTSC и PAL варианты Коммодор SX-64 используйте часы TOD с частотой 60 Гц, поставляемые с помощью специального кристалла. КЕРНАЛ операционная система в Коммодор 64 например, будет определять видеостандарт во время запуска системы, но не пытается ни идентифицировать предоставленную тактовую частоту TOD, ни правильно инициализировать CIA на машинах с приводом от 50 Гц. Таким образом, это ответственность любого прикладного программного обеспечения, которое хочет использовать любую функцию TOD CIA для определения предоставленной частоты и соответствующей установки флага CIA (s). В противном случае часы могут быстро отклониться от правильного времени.

Версия 8520 ЦРУ, использованная в Amiga и Коммодор 1581 диск, изменил часы времени дня на 24-битный двоичный счетчик, заменив BCD формат 6526. Однако другое поведение было аналогичным.

Версии

ЦРУ было доступно в 1 МГц (6526), ​​2 МГц (6526A) и 3 МГц (6526B) версии. Пакет был JEDEC -стандартный 40-контактный керамика или же пластик ОКУНАТЬ. 8520 CIA, с его модифицированными часами времени, использовался в Amiga компьютеры.

Встроенная в Commodore уменьшенная (всего 4 регистра) логика, подобная CIA, за меньшую стоимость Коммодор 1571 внутри C128DCR (см. Коммодор 128 ) в матрице ворот под названием 5710, которая также содержит другие функции. 5710 CIA имеет последовательные часы для быстрого последовательного интерфейса, жестко подключенные к эквивалентному таймеру A CIA6526, значение 5, что приводит к битовому времени передачи 5 мкс. Это отличается от того, что раньше было значением таймера A, равным 6, в 6526 CIA в оригинале. Коммодор 1571. 5710 CIA не содержит таймер или регистры управления таймером. Он содержит только два регистра порта и регистр для управления последовательным переключателем и его событием.

Опечатки

В дополнение к вышеупомянутой ошибке прерывания будильника, многие CIA выявили дефект, при котором деталь не могла сгенерировать аппаратное обеспечение таймера B. прерывать если регистр управления прерываниями (ICR) был прочитан за один или два такта до того момента, когда действительно должно было произойти прерывание. Этот дефект, а также логические ошибки в предоставленной Commodore (8-битной) операционной системе, вызывали частые псевдо-ошибки.RS-232 ошибки в Коммодор 64 и Коммодор 128 компьютеры при работе на более высоких бод тарифы.

Рекомендации

  1. ^ Perry, Tekla S .; Уоллич, Пол (март 1985). «История разработки: Commodore 64» (PDF). IEEE Spectrum: 48–58. ISSN  0018-9235. Архивировано из оригинал (PDF) на 2012-05-13. Получено 2011-11-12.
  2. ^ статьи на c64-wiki.com

внешняя ссылка