Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Answers.docx
Скачиваний:
23
Добавлен:
16.09.2019
Размер:
393.72 Кб
Скачать

1.23. Архитектура и принцип работы часов реального времени rtc и cmos памяти. Возможности программирования

1.23. АРХІТЕКТУРА ТА ПРИНЦИП РОБОТИ ГОДИННИКА РЕАЛЬНОГО ЧАСУ RTC ТА CMOS ПАМ'ЯТІ. МОЖЛИВОСТІ ПРОГРАМУВАННЯ. В состав IBM PC AT входят часы реального времени Real Time Clock (RTC) и 64 байта неразрушающейся оперативной КМОП памяти (CMOS), питающиеся от автономного источника питания. При включении ПЭВМ содержимое CMOS анализируется POST, который извлекает из нее конфигурацию системы и текущие дату и время. Часы реального времени RTC и CMOS память выполнены на базе микросхемы МС146818 фирмы Motorola, упрощенная структурная схема которой представлена на рис. 1.

Назначение сигналов следующее: -CE - разрешение кристалла (выход дешифратора адреса); DS - строб данных; AS - адресный строб; R/W - чтение/запись; SQW - выходные прямоугольные импульсы – меандр (в IBM PC  AT  не  используются); IRQ - запрос на прерывание от RTC; PS - сигнал состояния  питания (используется для контроля достоверности данных); CKOUT - синхросигнал, который может использоваться как  входной синхросигнал микропроцессора.

Основная часть RTC - задающий генератор (внутренний или внешний) с частотой  4.194304 МГц, 1.048576 МГц и делитель частоты, у которого выход последнего каскада (1 Гц) управляет часами.

Для доступа к данным CMOS используются порты 70h и 71h,  причем адрес регистра подается в 70h порт, а данные  читаются/пишутся через 71h порт.

Адреса CMOS с 10h по 20h защищены контрольной суммой,  хранящейся по адресам 2Eh-2Fh. Поэтому изменения содержимого этих  адресов  необходимо  сопровождать  пересчетом  и  изменением   контрольной суммы.

Порт 70h применяется не только для задания адреса CMOS, но и для разрешения или запрещения NMI  (немаскируемого  прерывания). Если  бит 7 равен 0,  то NMI разрешается,  если 1 - запрещается.

Все данные RTC хранятся в двоично - десятичном формате (BCD). Байты будильника 1h, 3h, 5h служат для создания времени  выработки сигнала прерывания от RTС. Каждый байт  может  содержать  конкретное значение времени (секунды и минуты в пределах 0-59, а часы в пределах 0-23) и "безразличное" значение -  код  в  пределах C0h-FFh, т.е. два старших разряда содержат 1.

При конкретном задании времени прерывание вырабатывается  раз в сутки (2 раза при 12-ти часовом времени). Если байт  часов  содержит "безразличный" код, прерывание каждый час; если  байт  часов и минут "безразличны", прерывание каждую минуту; и  при  всех "безразличных" байтах - каждую секунду.

0Ah - Регистр A состояния RTC: 0Bh - Регистр B состояния RTC: 0Ch - Регистр С состояния RTC: биты состояния прерываний, только для чтения. При чтении из регистра все разряды сбрасываются. 0Dh - Регистр D состояния RTC. Бит 7=1, если CMOS получает питание; 0=нет питания от автономного источника. 0Eh - Байт результатов начального тестирования: 0Fh - Байт состояния перезагрузки. Этот байт считывается  после сброса ЦП, чтобы определить не был ли  сброс  вызван  для  вывода 80286 из защищенного режима.

1.24. Архитектура системного таймера и назначения каналов таймера. Режимы работы каналов таймера. Возможности программирования

1.24.  АРХІТЕКТУРА СИСТЕМНОГО ТАЙМЕРА ТА ПРИЗНАЧЕННЯ КАНАЛІВ ТАЙМЕРА. РЕЖИМИ РОБОТИ КАНАЛІВ ТАЙМЕРА. МОЖЛИВОСТІ ПРОГРАМУВАННЯ.

Все компьютеры IBM содержат 3-х  канальное  16-ти  разрядное устройство, называемое системным таймером. Таймер реализуется на микросхеме Intel 8253 (для IBM PC и IBM XT) или 8254 (для IBM AT и IBM PS/ 2).  Структурная схема системного таймера представлена на рис. 5.1. Таймеры 8253 и 8254 состоят из трех независимых каналов. Каждый канал содержит регистры: -состояния канала RS (8 разрядов); -управляющего слова PSW (6 разрядов); -буферный регистр OL (16 разрядов); -регистр счетчика CE (16 разрядов); -регистр констант пересчета CR (16 разрядов). Каналы таймера подключаются к внешним устройствам при помощи трех линий: GATE  - управляющий вход; CLOCK - вход тактовой частоты; OUT   - выход таймера.

Регистр счетчика CE работает в режиме вычитания.  Его содержимое  уменьшается  по заднему фронту сигнала CLOCK при условии, что на входе GATE установлен уровень логической 1. В зависимости от  режима  работы  таймера при достижении счетчиком CE нуля тем или иным способом меняется выходной сигнал OUT. Буферный регистр  OL  предназначен  для запоминания текущего содержимого регистра счетчика CE без остановки  процесса  счета. После  запоминания  буферный регистр доступен программе для чтения. Регистр констант  пересчета  CR  предназначен  для  хранения констант пересчета и может загружаться в регистр счетчика, если это требуется в текущем режиме работы таймера. Содержимое регистра CR изменяется  только  при  перезагрузке счетчика или при перепрограммировании режима (записи управляющего слова). При перепрограммировании содержимое CR устанавливается в нуль. Регистр состояния канала RS хранит текущее состояние  канала и  может  быть  прочитан для выбранного канала командой "обратное чтение".Регистр управляющего слова PSW хранит управляющую информацию канала и задает его режим работы до следующего  перепрограммирования. Системный генератор  импульсов  (СГИ)  независимо  от типа и производительности компьютера IBM вырабатывает импульсы  одной и той же частоты - 1 193180 Гц.

В компьютерах IBM PC/XT/AT/PS2 задействованы все  три канала таймера.

Канал 0 используется в системных часах времени  суток.  Этот канал работает в режиме 3 (описание режимов см.  в п.5.2.) и используется  как генератор импульсов с частотой примерно 18,2 Гц. Канал 1 используется для регенерации содержимого  динамической  памяти компьютера,  поэтому его лучше не трогать.  Выходная линия канала OUT связана с микросхемой прямого доступа  к памяти (DMA), и  ее импульс заставляет DMA регенерировать память. Канал использует режим 2 таймера. Канал 2 связан с громкоговорителем (динамиком)  компьютера и может быть использован для генерации различных звуков или музыки либо как генератор случайных чисел.  Канал  использует  режим  3 таймера.

Каждый канал таймера может работать в одном из шести режимов.

Режим 0 - прерывание терминального счета. После загрузки PSW сигнал OUT устанавливается в 0.  Запись константы не  влияет  на OUT.  Счет разрешается сигналом GATE=1 и запрещается GATE=0. При GATE=1 и фронту первого CLK константа счета N загружается  из CR в CE,  а по второму CLK начинается счет. OUT удерживается в нуле до конца счета,  т.е. на время (N+1)*T сек. после чего возвращается в  1.  Изменение GATE не влияет на OUT,  но при GATE=0 счет приостанавливается, а при GATE=1 возобновляется без перезагрузки CE. Загрузка  нового  управляющего слова при новой константе возобновляет цикл.

Режим 1 - программируемый ждущий мультивибратор.  На  выходе OUT формируется  сигнал низкого уровня длительностью T=Tclk*N (N - константа пересчета;  Tclk - период синхроимпульсов). Счет начинается (OUT  устанавливается  в  0)  по  положительному фронту GATE, и OUT становится равен 1 по завершению счета. Данный режим является режимом с перезапуском,  т.е. по каждому положительному фронту GATE содержимое CR передается в CE и  перезапускает  его, даже если предыдущий счет не завершен до конца. Загрузка во время счета новой константы не влияет на длительность текущего  импульса до новой перезагрузки.

Режим 2  -  импульсный  генератор  частоты.  Канал выполняет функцию программируемого делителя входной частоты  Fclk .  Сразу после загрузки PSW выход OUT становится равным 1 и при удержании GATE=1 сигнал OUT держится в состоянии 1 в течении времени (N-1)*Tclk, после  чего переходит в 0 и удерживается в этом состоянии на время Tclk.  По окончании указанного цикла выполняется  автозагрузка CE из CR и цикл повторяется.  При подаче GATE=0 OUT устанавливается в 1, счет прекращается и возобновляется при GATE=1 с начального значения. При загрузке новой константы в CR во время счета текущий цикл не меняется, изменится длительность следующего цикла.

Режим 3 - генератор меандра.  Режим аналогичен режиму 2,  но на выходе   формируются   импульсы   длительностью   полупериода N/2*Tclk при четном N. При нечетном N положительный импульс (OUT=1) имеет  длительность  (N+1)/2*Tclk,  а  отрицательный импульс(OUT =0) имеет длительность (N-1)/2*Tclk. Генератор не работает,если N=3.

Режим 4 - программно формируемый строб.  Сигнал OUT устанавливается равным 1 после загрузки PSW  и  удерживается  до  конца счета, после чего на выходе OUT устанавливается 0 на период Tclk и возвращается  в  1,  т.о.  цикл  работы   имеет   длительность (N+1)*Tclk сек. По действию сигнала GATE и режиму работы (однократное выполнение функции) он аналогичен режиму 0. Режим 5 - аппаратно формируемый строб.  По выходному сигналу режим аналогичен режиму 4 (OUT=1 после  загрузки  PSW  до  конца счета и OUT=0 в течении Tclk после окончания счета),  а по действию GATE режиму 1,  т.е.  запуск счета выполняется по переднему фронту сигнала GATE.

Каждый канал таймера программируется отдельно  и  независимо от других.  При  программировании  канала необходимо послать ему управляющее слово (старшие 2 разряда управляющего слова указывают номер канала, а остальные 6 разрядов защелкиваются в регистре PSW выбранного канала),  после чего загружается регистр констант пересчета CR. Так как 16-ти разрядные регистры констант CR отображаются через 8-ми разрядные порты,  то загрузка CR выполняется в соответствии с указаниями управляющего слова. Таймеру соответствуют 4 порта ввода/вывода со следующими адресами:  40h - канал 0;  41h - канал 1; 42h - канал 2; 43h - управляющее слово.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]