stringtranslate.com

Интел 8253

Интел С8253
Программируемый интервальный таймер Intel 8253. Intel 8254 имеет такую ​​же распиновку.

Intel 8253 и 8254 это программируемые интервальные таймеры (PIT), которые выполняют функции синхронизации и счета с помощью трех 16-битных счетчиков. [1]

Семейство 825x в первую очередь было разработано для процессоров Intel 8080/8085 , но позже использовалось в x86-совместимых системах. Чипы 825x или эквивалентная схема, встроенная в более крупную микросхему, встречаются во всех IBM PC-совместимых и советских компьютерах, таких как Vector-06C .

В компьютерах, совместимых с ПК, каналу таймера 0 назначено IRQ -0 (аппаратное прерывание с наивысшим приоритетом). Канал таймера 1 назначен на обновление DRAM (по крайней мере, в ранних моделях до 80386). Канал таймера 2 назначен на динамик ПК .

Вариант Intel 82c54 (c для логики CMOS ) обрабатывает тактовые сигналы с частотой до 10 МГц. [1]

История

8253 описан в публикации Intel «Каталог данных компонентов» 1980 года. 8254, описанный как надстройка 8253 с более высокими тактовыми частотами, имеет «предварительные» данные в «Каталоге данных компонентов» Intel 1982 года.

8254 реализован в HMOS и имеет команду «Read Back», недоступную в 8253, и позволяет чередовать чтение и запись одного и того же счетчика. [2]

Совместимость с современными ПК, либо при использовании процессоров SoC , либо при южном мосте , обычно реализует полную совместимость с 8254 для обеспечения обратной совместимости и взаимодействия. [3] Команда обратного чтения является важной функцией ввода-вывода для взаимодействия с многоядерными процессорами и графическими процессорами.

Варианты

Существует военная версия Intel M8253 с температурным диапазоном от -55 °C до +125 °C, которая также имеет допуск по мощности ±10% 5 В. [4] Доступная версия CMOS 82C53 была передана на аутсорсинг компании Oki Electronic Industry Co. , Ltd. [5] Доступная версия корпуса Intel 82C54 была в 28-контактном PLCC образца первого квартала 1986 года. [6]

Функции

Блок-схема Intel 8253

Таймер имеет три счетчика, пронумерованных от 0 до 2. [7] Каждый канал можно запрограммировать на работу в одном из шести режимов. После программирования каналы работают независимо. [1]

Каждый счетчик имеет два входных контакта — «CLK» ( тактовый вход) и «GATE» — и один контакт «OUT» для вывода данных. Три счетчика представляют собой 16-битные счетчики обратного счета, независимые друг от друга, и могут легко считываться процессором . [8]

Режим работы PIT изменяется путем установки вышеуказанных аппаратных сигналов. Например, для записи в регистр управляющего слова необходимо установить CS =0, RD =1, WR =0, A1=A0=1.

Для инициализации счетчиков микропроцессор должен записать в этот регистр управляющее слово (CW). Это можно сделать, установив правильные значения для выводов блока логики чтения/записи, а затем отправив управляющее слово в блок буфера данных/шины.

Регистр управляющего слова содержит 8 бит, обозначенных D7..D0 (D7 — старший бит ). Декодирование довольно сложное. Большинство значений задают параметры для одного из трех счетчиков:

Однако есть еще две формы:

При установке PIT микропроцессор сначала отправляет в PIT управляющее сообщение, затем сообщение подсчета. Процесс подсчета начнется после того, как PIT получит эти сообщения и, в некоторых случаях, если он обнаружит нарастающий фронт входного сигнала GATE. Формат байта состояния. Бит 7 позволяет программному обеспечению отслеживать текущее состояние вывода OUT. Бит 6 указывает, когда счетчик можно прочитать; когда этот бит равен 1, счетный элемент еще не загружен и не может быть прочитан процессором. Биты с 5 по 0 совпадают с последними битами, записанными в регистр управления.

Режимы работы

Биты D3, D2 и D1 управляющего слова задают режим работы таймера. Всего существует 6 режимов; для режимов 2 и 3 бит D3 игнорируется, поэтому отсутствующие режимы 6 и 7 являются псевдонимами режимов 2 и 3.

Все режимы чувствительны к входу GATE, при этом высокий уровень GATE вызывает нормальную работу, но эффекты низкого уровня GATE зависят от режима:

Режим 0 (000): Прерывание по счетчику терминалов

Режим 0 используется для генерации точной временной задержки под управлением программного обеспечения. В этом режиме счетчик начнет считать от начального значения COUNT, загруженного в него, вплоть до 0. Скорость счета равна входной тактовой частоте.

На выводе OUT устанавливается низкий уровень после записи управляющего слова, и счет начинается через один такт после программирования COUNT. OUT остается низким до тех пор, пока счетчик не достигнет 0, после чего OUT будет установлен на высокий уровень до тех пор, пока счетчик не будет перезагружен или не будет записано управляющее слово. Счетчик переходит во 0xFFFFвнутренний режим и продолжает считать, но вывод OUT больше никогда не меняется. Сигнал Gate должен оставаться активным на высоком уровне для нормального счета. Если Gate становится низким, подсчет приостанавливается и возобновляется, когда он снова становится высоким.

Первый байт нового счетчика при загрузке в регистр счетчика останавливает предыдущий счетчик.

Режим 1 (001): программируемый один снимок.

В этом режиме 8253 можно использовать как моностабильный мультивибратор . Вход GATE используется в качестве триггерного входа.

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

После записи управляющего слова и начального счета счетчик включается. Результатом триггера является загрузка счетчика и установка низкого уровня на выходе OUT при следующем импульсе CLK, тем самым запуская одновибрационный импульс. Начальный отсчет N приведет к получению одноразового импульса длительностью N циклов CLK.

Однократный сигнал допускает повторный запуск, поэтому выход OUT будет оставаться низким в течение N импульсов CLK после любого запуска. Однократный импульс можно повторить, не переписывая тот же отсчет в счетчик. GATE не влияет на OUT. Если новый счетчик записывается в счетчик во время одноразового импульса, текущий одноразовый импульс не затрагивается, пока счетчик не будет перезапущен. В этом случае в счетчик загружается новое значение счетчика, и одноразовый импульс продолжается до тех пор, пока не истечет новый счетчик.

Режим 2 (X10): генератор ставок

В этом режиме устройство действует как счетчик деления на n, который обычно используется для генерации прерывания часов реального времени.

Как и в других режимах, процесс подсчета начнет следующий такт после отправки COUNT. OUT будет оставаться высоким до тех пор, пока счетчик не достигнет 1, и станет низким на один тактовый импульс. В следующем цикле счетчик перезагружается, выход OUT снова становится высоким, и весь процесс повторяется.

Время между высокими импульсами зависит от заданного значения счетчика в регистре счетчика и рассчитывается по следующей формуле:

Значение для загрузки в счетчик =

Обратите внимание, что значения в регистре COUNT находятся в диапазоне от 1; регистр никогда не достигает нуля.

Режим 3 (X11): генератор прямоугольных импульсов

Этот режим аналогичен режиму 2. Однако длительность высоких и низких тактовых импульсов на выходе будет отличаться от режима 2.

Предположим , что число загружено в счетчик (сообщение COUNT), выходной сигнал будет высоким для счетчиков и низким для счетчиков. Таким образом, период будет считаться, и если он нечетный, дополнительный полупериод тратится с высоким уровнем OUT.

Режим 4 (100): Стробоскоп, запускаемый программным обеспечением

После загрузки управляющего слова и COUNT выходной сигнал будет оставаться высоким до тех пор, пока счетчик не достигнет нуля. Затем счетчик будет генерировать низкий импульс в течение 1 тактового цикла (строб) – после этого выходной сигнал снова станет высоким.

Низкий уровень GATE приостанавливает отсчет, который возобновляется, когда GATE снова становится высоким.

Режим 5 (101): Стробоскоп с аппаратным запуском

Этот режим аналогичен режиму 4. Однако процесс счета запускается входом GATE.

После получения управляющего слова и COUNT выходной сигнал будет установлен на высокий уровень. Как только устройство обнаружит нарастающий фронт на входе GATE, оно начнет отсчет. Когда счетчик достигнет 0, выходной сигнал станет низким на один такт, после чего он снова станет высоким, чтобы повторить цикл при следующем нарастающем фронте сигнала GATE.

Программирование IBM ПК

8253 использовался в компьютерах, совместимых с IBM PC, с момента их появления в 1981 году. [9] В настоящее время этот PIT не включается в качестве отдельного чипа в ПК x86. Скорее, его функциональность включена в состав южного моста чипсета материнской платы . В современном наборе микросхем это изменение может проявиться в виде заметно более быстрого доступа к регистрам PIT в адресном пространстве ввода-вывода x86 .

Все компьютеры, совместимые с ПК, работают с PIT с тактовой частотой 105/88 = 1,193 ·18  МГц, что составляет 13 частоты цветовой синхронизации NTSC , которая получается в результате деления системной тактовой частоты (14,31818 МГц) на 12. Это пережиток самых первых ПК CGA . – они извлекли все необходимые частоты из одного кристалла кварца , и чтобы сделать возможным телевизионный выход, этот генератор должен был работать на частоте, кратной частоте цветовой поднесущей NTSC. Эта частота, разделенная на 2 16 (наибольший делитель, на который способен 8253), дает прерывание таймера ≈18,2 Гц, используемое в MS-DOS и связанных с ним операционных системах.

В оригинальных компьютерах IBM счетчик 0 использовался для генерации прерывания хронометража. Счетчик 1 используется для запуска обновления памяти DRAM . Счетчик 2 используется для генерации тональных сигналов через динамик ПК .

Новые материнские платы включают дополнительные счетчики через расширенный интерфейс конфигурации и питания (ACPI), счетчик на локальном расширенном программируемом контроллере прерываний и высокоточный таймер событий . Сам ЦП также обеспечивает функцию счетчика меток времени .

На ПК адрес таймера 0 (чип) находится на порте 40h..43h, а второй таймер 1 (чип) — на порту 50h..53h.

На компьютерах x86 многие BIOS видеокарт и системные BIOS перепрограммируют второй счетчик для собственного использования. Перепрограммирование обычно происходит во время изменения видеорежима, когда может выполняться видеоBIOS, а также во время изменения режима управления системой и состояния энергосбережения, когда может выполняться системный BIOS. Это предотвращает любое серьезное альтернативное использование второго счетчика таймера во многих системах x86.

Как указано выше, канал 0 реализован как счетчик. Обычно начальное значение счетчика устанавливается путем отправки байтов в регистры порта управления, а затем порта ввода-вывода данных (значение 36h отправляется в порт 43h, затем младший байт в порт 40h и снова порт 40h для старшего байта). . Счетчик считает до нуля, а затем отправляет аппаратное прерывание (IRQ 0, INT 8) в ЦП . Затем счетчик сбрасывается до исходного значения и начинает обратный отсчет снова. Максимально возможная частота прерываний составляет чуть больше половины мегагерца. Самая медленная возможная частота, которая также обычно используется компьютерами под управлением MS-DOS или совместимыми операционными системами, составляет около 18,2 Гц. В этих операционных системах реального режима BIOS накапливает количество полученных вызовов INT 8 по адресу 0040:006c реального режима, который может быть прочитан программой.

По мере обратного отсчета таймера его значение также можно прочитать напрямую, дважды прочитав порт ввода-вывода: сначала для младшего байта, а затем для старшего байта. Однако в свободно работающих приложениях-счетчиках, таких как ПК x86, необходимо сначала записать в регистр управления команду фиксации нужного канала, чтобы оба считываемых байта принадлежали одному и тому же значению.

Согласно документу Microsoft от 2002 года, «поскольку чтение и запись на это оборудование [8254] требуют связи через порт ввода-вывода, программирование занимает несколько циклов, что непомерно дорого для ОС. По этой причине апериодическая функциональность не используется». на практике." [10]

Смотрите также

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

  1. ^ abc «Программный интервальный таймер Intel 82C54 CHMOS» (PDF) (технические данные). Архивировано из оригинала (PDF) 3 июня 2015 года . Проверено 26 ноября 2012 г.
  2. ^ Дипали А. Годзе; Атул П. Годзе (2007). Усовершенствованные микропроцессоры . Технические публикации. п. 74. ИСБН 978-81-89411-33-6.
  3. ^ http://pdf.datasheetcatalog.com/datasheet/Intel/mXvqwzr.pdf [ пустой URL-адрес PDF ]
  4. ^ Корпорация Intel, «Фокусные компоненты: военная разведка: таймеры, EPROM, безвыводные носители чипов», Solutions, март/апрель 1983 г., стр. 12.
  5. ^ Корпорация Intel, «NewsBit: Intel лицензирует Oki на версии CMOS нескольких продуктов», Solutions, июль/август 1984 г., стр. 1.
  6. ^ Эшборн, Джим; «Усовершенствованная упаковка: небольшое дело имеет большое значение», корпорация Intel, Solutions, январь/февраль 1986 г., стр. 2
  7. ^ «8254/82C54: Введение в программируемый интервальный таймер» . Корпорация Интел. Архивировано из оригинала 22 ноября 2016 года . Проверено 21 августа 2011 г.
  8. ^ «Техническое описание MSM 82c53» (PDF) .
  9. ^ «Рекомендации по обеспечению поддержки мультимедийного таймера» . Майкрософт . 20 сентября 2002 года . Проверено 13 октября 2010 г.
  10. ^ Рекомендации по обеспечению поддержки мультимедийного таймера

дальнейшее чтение

Внешние ссылки