Jump to content

Интел 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 и имеет команду «обратное чтение», недоступную в 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]

  • Буфер шины данных содержит логику для буферизации шины данных между микропроцессором и внутренними регистрами. Он имеет 8 входных контактов, обычно обозначаемых как D7..D0, где D7 — старший разряд .
  • Логика чтения/записи имеет 5 контактов, которые перечислены ниже. « X » означает, что X является активным низким сигналом.

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

  • Регистр управляющего слова содержит запрограммированную информацию, которая будет отправлена ​​(микропроцессором ) на устройство. Он определяет, как логически работает каждый канал PIT. Каждый доступ к этим портам занимает около 1 мкс.

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

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

  • Два старших бита (если не 11) выбирают регистр счетчика, к которому применяется команда.
  • Следующие два бита (если не 00) выбирают формат, который будет использоваться для последующего доступа к чтению/записи регистра счетчика. Обычно для этого параметра устанавливается режим, в котором доступ чередуется между наименее значимыми и наиболее значимыми байтами. Одно из различий между 8253 и 8254 заключается в том, что у первого был один внутренний бит, который влиял как на чтение, так и на запись, поэтому, если формат был установлен на 2-байтовый, чтение lsbyte привело бы к тому, что последующая запись была бы направлена ​​​​в мсбайт. В 8254 для чтения и записи использовались отдельные биты.
  • Следующие три бита определяют режим, в котором будет работать счетчик.
  • Младший бит определяет, будет ли счетчик работать в двоичном или двоичном формате . (Подсчет BCD почти никогда не используется и может быть неправильно реализован в эмуляторах или южных мостах.)

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

  • Зафиксируйте счетчик для данного таймера. При следующем чтении вместо возврата значения счетчика в момент чтения будет возвращено значение счетчика в момент команды фиксации. После завершения чтения последующие операции чтения вернут текущий счетчик. При использовании команды latch режим и статус BCD не изменяются.
  • (только 8254) Фиксирует состояние и/или счетчик для нескольких таймеров. Это позволяет выполнять несколько одновременных команд фиксации с использованием растрового изображения. Кроме того, в дополнение к счетчику можно считывать текущую конфигурацию канала.
8253/8254 управляющее слово
Бит №/имя Краткое описание
D7
СК1
Д6
СК2
Д5
RW1
Д4
RW0
Д3
М2
Д2
М1
Д1
М0
Д0
двоично-десятичный код
0 0 формат режим двоично-десятичный код Установить режим счетчика 0
0 1 формат режим двоично-десятичный код Установить режим счетчика 1
1 0 формат режим двоично-десятичный код Установить режим счетчика 2 (на порту 42h)
1 1 считать статус С2 С1 С0 х Команда обратного чтения (только 8254)
прилавок 0 0 — х — Значение счетчика фиксации. При следующем чтении счетчика будет прочитан снимок значения.
прилавок 0 1 режим двоично-десятичный код Чтение/запись только младшего байта значения счетчика
прилавок 1 0 режим двоично-десятичный код Чтение/запись только старшего байта значения счетчика
прилавок 1 1 режим двоично-десятичный код 2×Чтение/2×Запись младшего байта, затем старшего байта значения счетчика
прилавок формат 0 0 0 двоично-десятичный код Режим 0: Прерывание по счетчику терминалов
прилавок формат 0 0 1 двоично-десятичный код Режим 1: Аппаратный перезапуск однократного действия
прилавок формат х 1 0 двоично-десятичный код Режим 2: Генератор ставок
прилавок формат х 1 1 двоично-десятичный код Режим 3: прямоугольная волна
прилавок формат 1 0 0 двоично-десятичный код Режим 4: Стробоскоп, запускаемый программным обеспечением
прилавок формат 1 0 1 двоично-десятичный код Режим 5: стробоскопический сигнал с аппаратным запуском (с возможностью повторного запуска)
прилавок формат режим 0 Счетчик — 16-битный двоичный счетчик (0–65535).
прилавок формат режим 1 Счетчик представляет собой 4-значный двоично-десятичный счетчик (0–9999).
1 1 считать статус С2 С1 С0 х Команда обратного чтения (только 8254)
1 1 0 0 С2 С1 С0 х При следующем чтении выбранных счетчиков будет считано зафиксированное состояние, а затем произведен подсчет.
1 1 0 1 С2 С1 С0 х При следующем чтении выбранных счетчиков будет считан зафиксированный счетчик.
1 1 1 0 С2 С1 С0 х При следующем чтении выбранных счетчиков будет считано зафиксированное состояние.
1 1 1 1 С2 С1 С0 х Ничего не делать (ничего не фиксировать ни на одном, ни на всех счетчиках)
1 1 считать статус 0 0 0 х Ничего не делать (счетчик блокировок и/или состояние счетчиков отсутствуют)
1 1 считать статус 1 С1 С0 х Команда обратного чтения применяется к счетчику 2.
1 1 считать статус С2 1 С0 х Команда обратного чтения применяется к счетчику 1.
1 1 считать статус С2 С1 1 х Команда обратного чтения применяется к счетчику 0.

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

8254 слово состояния
Бит №/имя Краткое описание
D7
Выход
Статус
Д6
нулевой
считать
Д5
RW1
Д4
RW0
Д3
М2
Д2
М1
Д1
М0
Д0
двоично-десятичный код
0 Выходной вывод – 0.
1 Выходной контакт – 1.
0 Счетчик можно прочитать
1 Счетчик устанавливается
формат режим двоично-десятичный код Биты режима счетчика, определенные для регистра управляющего слова.

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

[ редактировать ]

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

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

  • Режимы 0 и 4: Счет приостанавливается, пока GATE находится на низком уровне, и возобновляется, когда GATE находится на высоком уровне.
  • Режимы 1 и 5: Начинается отсчет по нарастающему фронту сигнала GATE. GATE может перейти в низкий уровень, не влияя на подсчет, но другой нарастающий фронт перезапустит счет с самого начала.
  • Режимы 2 и 3: низкий уровень GATE немедленно устанавливает высокий уровень OUT (не дожидаясь тактового импульса) и сбрасывает счетчик (при следующем спаде тактового импульса). Когда 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 МГц. 1 3 частоты 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]

См. также

[ редактировать ]
  • LAPIC предоставляет программируемый таймер
  • HPET
  1. ^ Jump up to: а б с «Программный интервальный таймер Intel 82C54 CHMOS» (PDF) (техническое описание). Архивировано из оригинала (PDF) 3 июня 2015 года . Проверено 26 ноября 2012 г.
  2. ^ Дипали А. Годзе; Атул П. Годзе (2007). Усовершенствованные микропроцессоры . Технические публикации. п. 74. ИСБН  978-81-89411-33-6 .
  3. ^ «Интел» (PDF) . pdf.datasheetcatalog.com .
  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. ^ Рекомендации по обеспечению поддержки мультимедийного таймера

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

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: e09456d6ef9f5bd9510159e5384d4c51__1721162100
URL1:https://arc.ask3.ru/arc/aa/e0/51/e09456d6ef9f5bd9510159e5384d4c51.html
Заголовок, (Title) документа по адресу, URL1:
Intel 8253 - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)