Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод упоряд-ПОСЛЕДНЯЯ-МП.doc
Скачиваний:
35
Добавлен:
20.02.2016
Размер:
5 Mб
Скачать

8.1. Контролер прямого доступу пам'яті.

Однією з основних переваг мікропроцесорної схемотехніки є наявність у складі мікропроцесорних комплектів перепрограмувальних інтерфейсних ВІС. У попередній главі розглядалися непрограмувальні ІС, що виконують конкретні функції в МПС (ГТІ, СК) або різні режими, що набудовуються па, роботи в рамках конкретної функції (контролер ОЗУ). Настроювання на режим таких схем здійснюються апаратно – подачею потенціалів на спеціальні керуючі входи. Програмувальні ВІС більше універсальні, тому що функціонально вони орієнтовані на широкий клас зовнішніх пристроїв (контролери дисководів, дисплеїв) або здатні виконувати різні функції при обміні (контролери ПДП, переривання). Настроювання на виконання конкретної функції, операції, режиму здійснюється програмно за Допомогою звичайних команд виводу, що завантажують у ВІС перед початком роботи спеціальну командну інформацію, причому існує можливість програмного контролю за виконанням операцій обміну й функціонування ВІС Включення таких схем до складу МШС роблять її здатної до підстроювання для роботи з конкретними зовнішніми пристроями програмним шляхом. МШС, що мають у своєму составі такі схеми, одержали назву систем із твердою структурою я перепрограмувальною конфігурацією, а самі ВІС – назва функціонально орієнтованих перепрограмувальних.

Тенденція розвитку мікропроцесорних елементів іде по шляху вдосконалювання ЦП і інтерфейсних ВІС із можливістю перепрограмування на більше високому рівні. Так, у цей час широке застосування знаходять універсальні периферійні!, інтерфейси (УПН), що представляють собою не що інше, як однокристальні мікроеом – мікроконтролери, здатні виконувати будь-яку інтерфейсну функцію, включаючи обробку (передобробку) , і підключаються до МШС як співпроцесори.

Загальні принципи організації ПДП. Режим ПДП є самим швидкісним способом обміну, що реалізується за Допомогою спеціальних апаратних засобів – контролерів ПДП без використання програмного забезпечення. Для здійснення режиму ПДП контролер повинен виконати ряд послідовних операцій:

1) прийняти запит DREQ на ПДП від ВУ;

2) сформувати запит HRQ на захоплення шин для ЦП;

3) прийняти сигнал HLDA, що підтверджує цей факт після того, як ЦП увійде в стан захоплення (ШД, ША, ШУ в z-стані);

4) сформувати сигнал DACK, що повідомляє ВУ про початок виконання циклів ПДП;

5) сформувати на ША адреса комірки пам'яті, призначений для обміну;

6) виробити сигнали MR, IOW і MW, IOR, що забезпечують керування обміном;

7) по закінченні ПДП або повторити цикл ПДП, змінивши адресу, або припинити ПДП, знявши запити на ПДП.

Цикли ПДП виконуються з послідовно розташованими комірками пам'яті, тому контролер ПДП повинен мати лічильник адреси ОЗУ. Число циклів ПДП визначається спеціальним лічильником. Керування обміном здійснюється спеціальною логічною схемою, що формує залежно від типу обміну пари керуючих сигналів: MR, IOW (цикли читання), MW,

IOR (цикли запису).

Контролер ПДП використовується для реалізації прямого доступу до пам'яті по чотирьох незалежних каналах з позитивним або негативним збільшенням адреси зі швидкістю до 1,6 Мбайт/с. КПДП дозволяє реалізувати передачу пам'ять – пам'ять, має широкі можливості програмного керування й каскадування. Кожний канал може виконувати до 64К циклів ПДП і має можливість автоматичної ініціалізації, тобто повторення циклів ПДП із тими ж параметрами.

Призначення виводів КПДП.

CLK – вхід для підключення тактового генератора FCLK = 3 Мгц.

CS – вибір кристала. CS=0 дозволяє роботу КПДП.

RESET – скидання. Сигнал високого рівня переводить КПДП у вихідний стан, установлюючи в нуль регістри команд, умов, тимчасового зберігання, а також установлюючи в одиницю всі розряди маски.

READY – готовність. Вхідний сигнал, використовуваний для синхронізації роботи КПДП із повільно діючими пристроями.

HLDA – підтвердження захоплення. Вхідний сигнал, використовуваний ЦП для повідомлення КПДП про можливість виконання циклів ПДП.

DREQ3—DREQ0 – входи запитів на ПДП від зовнішніх пристроїв. Полярність запитів задається програмно. Сигнали на цих входах повинні втримуватися до приходу сигналу DACK- У вихідному стані пріоритет запитів природний, DREQ0 має найвищий пріоритет.

DB7-DB0 – двонаправлена шина даних з буфером, що має z-co-стояння. У циклах ПДП на ці лінії видається вісім старших розрядів адресного коду, які необхідно «заклацнути» на зовнішньому регістрі сигналом ADSTB. У режимі роботи зі ЦП по цих лініях здійснюється прийом/передача даних.

IOR – читання; як вхід використовується ЦП для читання вмісту внутрішніх регістрів КПДП; як вихід у режимі ПДП дозволяє видачу даних із зовнішніх пристроїв.

IOW – запис; як вхід використовується ЦП для завантаження даних у регістри КПДП; як вихід у режимі ПДП дозволяє запис даних у регістри зовнішніх пристроїв.

ЕОР – закінчення процесу. Вхід/вихід, використовуваний для вказівки закінчення процесу передачі даних у режимі ПДП. Подаючи на цей вхід сигнал низького рівня, можна припинити передачу даних. Після завершення передачі даних по одному з каналів на виході встановлюється сигнал

ЕОР = 0. По цьому сигналі (зовнішньому або внутрішньому) знімається запит і обслуговування припиняється. Якщо встановлено режим автоініціалізації, то відбувається завантаження робочих регістрів даного каналу вмістом базових регістрів, а розряди регістра маски не міняються. У режимах без автоініціалізації розряди маски й розряд ТС у слові-стані встановлюються відповідно до стану обслуженого каналу. При передачі пам'ять – пам'ять вивід ЕОР орієнтований на вихід, і по закінченні рахунку на цьому виході формується сигнал. Якщо вивід ЕОР не використовується, то він повинен бути підключений через резистор до шини живлення ( + 5 У) для запобігання формування помилкових сигналів закінчення процесу.

A3 -А0 – адресні входи/виходи. Використовуються як вхідні в режимі роботи зі ЦП і для адресації до каналів і регістрів каналів КПДП. У режимі ПДП є виходами, по яких передаються чотири молодших розряди адреси ОЗУ.

А7 -А4 – адресні виходи, на які в режимі ПДП передаються відповідні розряди адреси ОЗУ. У режимі роботи зі ЦП переходять в z-co-стояння.

HRQ – вихід запиту захоплення на керування системною шиною. Запит на ПДП ЦП.

DACK3-DACK0 – підтвердження ПДП. Вихідні лінії, на які видаються повіКмлення для ВУ про можливість виконання циклів ПДП. Полярність сигналу задається програмно. Після сигналу RESET на виходах DACK установлюється нуль.

AEN – дозвіл адреси. AEN = 1 установлюється на час видачі восьми старших розрядів адреси ОЗУ на лінії DB7-DB0.

ADSTB – строб адреси. Вихід, на якому формується імпульс (строб), що здійснює запис старших розрядів (А15 -А8) адреси ОЗУ із шин DB7-DB0 у зовнішній буферний регістр.

MEMR – читання з пам'яті. Вихід, використовуваний у режимі ПДП для керування операцією читання з пам'яті.

MEMW – запис на згадку. Вихід, використовуваний у режимі ПДП для керування операцією запису на згадку.

Ucc – шина живлення ( + 5 У).

GND – загальний.

Структура КПДП. Контролер включає чотири канали, кожний з яких складається із чотирьох 16-розрядних регістрів.

Регістр поточної адреси CAR зберігає поточна адреса комірки пам'яті при виконанні циклу ПДП. Після виконання циклу ПДП уміст цього регістра збільшується або зменшується на одиницю. Воно може бути прочитане або завантажене за Допомогою двох команд уведення – виводу. Вміст CAR може бути оновлене по сигналі ЕОР, якщо запрограмовано режим автоініціалізації.

Регістр циклів ПДП CWR зберігає число слів, призначених для передачі. При завантаженні цього регістра необхідно пам'ятати, що завантажується константа, що, повинна бути на одиницю більше числа слів, необхідних для передачі. При виконанні циклів ПДП регістр працює в режимі лічильника, що віднімає. Розряд ТС регістра стану встановлюється в одиницю при переході з нульового стану в стан FFFFH. Читання й запис умісту регістра здійснюються двома послідовно виконуваними командами уведення – виводу. Уміст CWR може бути оновлене при автоініціалізації по сигналі ЕОР або в регістрі зберігається значення FFFFH.

Регістр зберігання базової адреси BAR і регістр зберігання базового числа циклів ПДП WCR зберігають базові значення адреси й числа циклів ПДП, беруть участь в автоініціалізації. При початковому завантаженні контролера ПДП вихідними параметрами відбувається одночасний запис у регістри CAR, BAR, CWR і WCR. У процесі виконання циклів ПДП уміст BAR і WCR не змінюється. Прочитати стан цих регістрів неможливо.

Крім того, кожний канал має 6-розрядний регістр режиму MR, що визначає режим його роботи. При завантаженні цього регістра в молодших розрядах Dl, D0 вказується код номера каналу. Призначення розрядів MR показане на мал. 6.4. За Допомогою розрядів D2, D3 задається один з типів передачі – читання, запис, перевірка. Ці розряди можуть приймати будь-які значення при D6D7 =11. Розряд D4 визначає режим автозавантаження. Якщо D4=l, то за умови автозавантаження CAR і CWR завантажуються параметрами BAR і WCR відповідно. Розряд D5 визначає режим зміни CAR.

Якщо D5 = 0, після кожного циклу ПДП відбувається збільшення вмісту CAR; якщо D5=l – то зменшення. Розряди D6, D7 визначають режими роботи каналу – передача по запиті, одиночна передача, блокова передача, контролер у режимі каскадування.

Контролер ПДП включає три функціональних блоки, які виконують функції керування. Буфер шини даних служить для узгодження роботи контролера зі ЦП. Деякі сигнали, що забезпечують ці функції, використовуються для керування передачею даних у циклах ПДП. Блок керування контролером при передачі пам'ять – пам'ять включає один 8-розрядний регістр TR тимчасового зберігання даних, що забезпечує зберігання байта в циклі передачі пам'ять – пам'ять на час зміни адреси. Останнє завантажене в цей регістр слово зберігається там до надходження сигналу RESET. Блок керування режимом ПДП виробляє необхідні сигнали керування при передачі даних у циклах ПДП. Включає два 8-розрядних і два 4-розрядних регістри.

Регістр команд CR визначає основні параметри роботи каналу. Завантаження CR здійснюється командою виводу від ЦП, а скидання – по сигналі RESET або команді загального скидання. Призначення розрядів регістра показане на мал. 6.5. Розряди D0, Dl використовуються для завдання режимів роботи каналів 0 і 1 у режимі пам'ять – пам'ять. Розряд D2 ініціалізує контролер для виконання ПДП, розряд D3 визначає режим виконання циклів ПДП. Якщо D3=l, цикли ПДП виконуються із пропуском одного такту при зміні адреси в межах молодшого байта. Розряд D4 установлює режим пріоритетів. Якщо D4=l, запиту обслуженого каналу привласнюється щонайнижчий пріоритет – це режим обертання пріоритету. Розряд D5 установлює режим подовженого циклу запису. Якщо D5=l, сигнали IOW і MEMW виробляються з подвійною тривалістю. Розрядами D6, D7 програмуються рівні запитів на ПДП (DREQ) і сигналів підтвердження ПДП (DACK).

Регістр умов SR, розряди D3—D0 якого встановлюються апарат-але при виникненні сигналу ТС, тобто після закінчення циклів ПДП або по зовнішньому сигналу ЕОР. Ці розряди скидаються (установлюються в нуль) сигналом RESET, а також після виконання команди читання вмісту цього регістра. Розряди D4-D7 установлюються програмно при необхідності обслуговування по відповідному каналі. Призначення розрядів SR показане на мал. 6.6.

Регістр запитів RR. Контролер може обслуговувати запити на ПДП, формовані як апаратно – по входах DREQ, так і програмно – по стані розрядів (регістрів) запитів RR. Кожний розряд цього регістра відповідає запиту по одному з каналів. Розряди цього регістра не маскуються й установлюються роздільно програмно або сигналами ТС і ЕОР. Програмна

установка цих розрядів здійснюється командою, формат якої представлений на мал. 6.7. Скидання всіх розрядів RR здійснюється сигналом RESET. Для обробки програмного запиту контролер повинен бути запрограмований у режимі блокової передачі.

Регістр маски MASK, за Допомогою якого можуть бути замасковані сигнали DREQ кожного каналу. Розряди MASK можуть бути встановлені спеціальною командою одночасно (мал. 6.8) або роздільно (мал. 6.9). Крім того, якщо канал не запрограмований на режим автозавантаження, після появи сигналу ЕОР відповідний розряд регістра встановлюється в одиницю. Всі розряди MASK установлюються в нулі сигналом RESET або командою CMR (Clear Mask Register).

Режими роботи ПДП. Контролер ПДП може працювати у двох основних режимах: зі ЦП і виконання циклів ПДП. У режимі роботи зі ЦП контролер сприймається їм як зовнішній пристрій, а після завантаження керуючих слів переходить у пасивний стан S1. У цьому стані контролер перебуває доти, поки на вхід одного з каналів не надійде запит на ПДП DREQ або цей запит не буде виставлений програмно від ЦП. Виявивши запит на ПДП, контролер переходить у стан S0 і виставляє сигнал запиту на

захоплення системної шини HRQ, очікуючи від ЦП сигналу підтвердження захоплення HLDA. При одержанні сигналу HLDA контролер починає виконувати цикли ПДП.

Розрізняють чотири робітники стану при виконанні цих циклів: S1 – S4. Якщо при виконанні циклів ПДП на вхід READY, подати нуль, контролер між тактами S2/S3 і S4 виконує такти очікування SW. Стан SW характеризується активністю ліній передачі даних. При передачі інформації в режимі пам'ять – пам'ять необхідно виконати два повних цикли читання й запису, тому для передачі одного слова контролер виконує два цикли ПДП по чотирьох такту в кожному: S11-S14 для читання з пам'яті й S21 – S24 для запису на згадку.

У пасивному стані відбувається опитування входів запитів на ПДП і можливо взаємодію зі ЦП за Допомогою звичайних команд уведення – виводу. Тому що взаємодія зі ЦП КПДП частіше здійснює словом із двох байтів, то для правильного їхнього вибору контролер використовує внутрішній тригер, що вказує на операцію з молодшим або старшим байтом слова. Цей тригер скидається сигналом RESET або командою загального скидання, указуючи на операцію з молодшим байтом. Після виконання операції з молодшим байтом він установлюється в одиницю, указуючи старший байт.

Контролер може бути запрограмований для виконання наступних чотирьох режимів роботи ПДП. У режимі одиночної передачі здійснюється передача одного байта, при цьому вміст лічильника циклів ПДП (CWR) зменшується, а вміст адресного регістра (CAR) зменшується або збільшується на одиницю. Біт закінчення передачі (ТС) у регістрі умов установлюється в одиницю, коли вміст CWR прийме значення FFFFH. Вхід DREQ повинен підтримуватися в активному стані до приходу сигналу DACK- Якщо DREQ залишається активним і після передачі одного байта, сигнал HRQ знімається, а новий цикл передачі можливий із приходом чергового сигналу HLDA.

У режимі блокової передачі цикли ПДП здійснюються до моменту встановлення біта ТС у регістрі умов, тобто коли лічильник циклів ПДП CWR прийме значення FFFFH або передача зупиниться по зовнішньому сигналі ЕОР. Цикли передачі можуть бути відновлені, якщо канал був запрограмований на автоініціалізацію.

У режимі передачі на вимогу цикли ПДП тривають доти, поки не встановиться розряд ТС у регістрі умов або не прийде сигнал ЕОР, або не зніметься сигнал DREQ. У цьому режимі передача може здійснюватися, поки зовнішній пристрій не закінчить передачу інформації. Автоініціалізацію в цьому режимі можна здійснювати після закінчення передачі сигналом ЕОР, зовнішнім або вироблюваним по ознаці ТС.

Режим передачі пам'ять – пам'ять дозволяє здійснювати переміщення блоків інформації в поле оперативної пам'яті. Для реалізації цього режиму використовуються параметри каналів 0 і 1.

Передача ініціалізується програмно установкою DREQ у каналі 0. Після приходу сигналу HLDA=1 контролер за чотири такти зчитує дані з комірки пам'яті з адресою з регістра CAR каналу 0 і записує їх у регістр тимчасового зберігання TR, потім за чотири такти записує ці дані в комірку пам'яті з адресою з CAR каналу 1. Коли вміст регістра циклів ПДП CWR прийме значення FFFFH, установиться розряд ТС і передача закінчиться. Канал 0 може бути запрограмований на передачу інформації без зміни адреси, що дозволяє заповнити осередку блоку ОЗУ константою. У цьому режимі зовнішній сигнал ЕОР, сприйманий контролером, використовується при пошуку потрібних кодів у поле адрес ОЗУ. Режим передачі пам'ять – пам'ять може бути ініційована сигналом AEN без використання сигналу DACK.

У випадку каскадування виводи HRQ і HLDA додаткової схеми підключаються до виводів DREQ і DACK основної схеми (мал. 6.12). У цьому випадку сигнали запитів на ПДП проходять через схеми пріоритетів ВІС КПДП більше високого рівня. При цьому ніякі інші сигнали основної схеми у формуванні циклів ПДП не беруть участь. Інші контролери можуть бути підключені як до вільних входів запитів основної схеми, так і до входів підлеглої схеми.

Типи передачі ПДП. У всіх режимах ПДП можливі три основних типи передачі. Запис даних – здійснюється передача даних від зовнішнього пристрою до ОЗУ. Контролер у цьому випадку активізує сигнали MEMW і IOR. Читання даних – здійснюється передача даних від ОЗУ до зовнішнього пристрою, активізуються сигнали MEMR і IOW. У випадку перевірки або

псевдо передачі контролер виконує дії такі ж, як у циклі зчитування/запису, але сигнали керування не виробляються. У цьому випадку сигнал READY не сприймається. Крім того, контролер може бути запрограмований для виконання додаткових функцій.

Автоініціалізація здійснюється, якщо встановлено відповідний розряд у регістрі умов, і по сигналі ЕОР. При автоініціалізації вміст базових регістрів BAR і WCR завантажується в регістри поточних значень CAR і CWR. Розряди маски при цьому не міняються. Після автоініціалізації контролер готовий до роботи й відновляє дія із приходом чергового сигналу DREQ. Для автоініціалізації обох каналів у режимі пам'ять – пам'ять регістри циклів ПДП CWR повинні програмуватися ідентично.

Контролер може бути запрограмований для обслуговування каналів з жорстко заданими пріоритетами або з їхньою циклічною зміною. При жорстко заданому пріоритеті найвищий пріоритет установлюється за каналом з меншим номером. При циклічній зміні найнижчий пріоритет привласнюється каналу після його обслуговування. Це дозволяє обслужити всі канали по черзі.

Для зменшення часу передачі даних передбачена можливість виконання циклів ПДП за два такти. У цьому випадку (мал. 6.11) із циклу ПДП віддаляються такти S1 і S3 на час зміни адреси по вісьмох молодших розрядах (А7 -АТ), які формуються тільки при зміні коду на старших розрядах А15 -А8. Використання цієї операції в режимах блокової передачі й передачі на вимогу дозволяє значно скоротити загальний час передачі даних. Така операція називається стиском у часі.

Програмування контролера. Програмування контролера здійснюється від ЦП командами уведення – виводу й можливо тільки в пасивному стані або при наявності на вході HLDA напруги низького рівня, якщо навіть є присутнім сигнал HRQ. Початкову ініціалізацію контролера необхідно здійснити відразу ж після включення напруги живлення по всіх каналах, якщо навіть вони не використовуються, завантажуючи команди й константи.

Адреси внутрішніх регістрів контролера визначаються кодом на виводах A3 -А0. У табл. 6.1 показані коди на A3 -А0, що відповідають виконуваним командам ЦП, а в табл. 6.2 – коди на A3 -А0, що відповідають адресам регістрів КПДП. Тому що константи завжди представлені 16-розрядним словом, їхнє завантаження вимагає виконання двох послідовних операцій виводу з однаковим кодом.

Внутрішній тригер управляє послідовністю уведення. Спочатку завантажується молодший байт, потім старший.

Підключення контролера до системної шини. Для зменшення числа виводів на корпус ВІС вісім старших розрядів адреси видаються в такті S1 на виводи шини даних і повинні бути «замкнути» на зовнішньому регістрі БР, виходи якого підключаються до старших розрядів шини адреси. Запис у зовнішній регістр здійснюється сигналом ADSTB. Лінія AEN використовується для того, щоб розряди адреси залишалися діючими на ША протягом трьох тактових періодів циклу ПДП. Лінії А7 -А0 підключаються безпосередньо до ША. Сигнали MEMR, MEMW, IOR, HOW управляють у циклах ПДП відповідно ОЗУ й буфером зовнішнього пристрою.

8.2. Програмувальний таймер

Програмувальний таймер (ПТ) призначений для генерації часозадающих функцій, програмно-керованих тимчасових затримок з можливістю програмного контролю їхнього виконання. Програмувальні таймери застосовуються в МШС, використовуваних у завданнях керування й виміру в реальному масштабі часу з тактовою частотою до 8 Мгц.

Програмувальний таймер включає три незалежних канали, кожний з яких може бути запрограмований на роботу в одному із шести режимів для двійкової або двоїчно-десяткової системи зчислення.

Призначення виводів.

CS – вибірка кристала. Сигнал управляє вхідним буфером BD. При CS = 0 дозволяється робота буфера.

RD – читання. Сигнал RD = 0 орієнтує вхідний буфер BD на вивід. ПТ видає інформацію в ЦП.

WR – запис. Сигнал WR = 0 орієнтує вхідний буфер BD на уведення. ПТ приймає інформацію від ЦП.

АТ, А1 – адресні входи, по яких здійснюється адресація до одного з каналів:

АТ = А1 =00 – адреса каналу 0;

АТ=А1 =01 – адреса каналу 1;

АТ=А1 = 10 – адреса каналу 2;

АТ = А1 = 11 -ознака завантаження керуючого слова або команд.

CLK2-GATA0 – входи тактових сигналів для керування лічильником/таймером. Зріз сигналу на вході CLK. приводить до зменшення вмісту лічильника/таймера РЄ на одиницю.

GATA2-GATAO – входи дозволу рахунку. При GATA=1 дозволяється виконання функцій; для деяких режимів роботи дозволяється надходження тактових сигналів на вхід лічильника/таймера, для інших (імпульсний генератор і генератор меандру) відкривається вихідний буфер OUT.

OUT2-OUT0 – виходи лічильника/таймера.

Структурна схема ПТ (мал. 6.17) включає:

  • буфер шини даних (BD) і логічні схеми керування читанням/записом;

  • дешифратор DS, за Допомогою якого вибирається один із трьох каналів або формується ознака завантаження керуючих слів або команд;

  • три ідентичних канали COUNT2-COUNT0, що реалізують запрограмовану функцію.

Кожний канал включає:

  • 16-розрядний буферний регістр OL, службовець для запам'ятовування й зберігання миттєвого значення лічильника РЄ, що у будь-який час може бути записано командою Засувка або Читання стану каналу. Після виконання цих команд уміст OL може бути лічене в ЦП без зупинки подальшого рахунку в регістрі РЄ;

  • 16-розрядний лічильник/таймер РЄ, що працює в режимі вирахування. Зміна вмісту РЄ здійснюється по зрізі сигналу CLK. при GATA= 1;

  • 16-розрядний регістр констант перерахування CR, службовець для зберігання констант перерахування. Уміст CR завантажується в РЄ для рахунку залежно від запрограмованого режиму;

  • 8-розрядний регістр стану каналу RS, уміст якого можна зчитувати в ЦП за Допомогою команди RBC – Читання стану каналу. Уміст цього регістра є словом стану каналу.

  • 8-розрядний регістр керуючого слова RSW, призначений для його зберігання. Слово завантажується в RCW командою OUT з адресою, що формує на входах АТ, А1 код 11. Вибір конкретного каналу здійснюється за Допомогою двох старших розрядів самого керуючого слова.

Схема керуючої логіки каналу CL здійснює керування входом/виходом лічильника/таймера залежно від запрограмованого режиму.

За правилами завантаження лічильника/таймера РЄ вмістом регістра CR всі шість режимів роботи ПТ можна розділити на три групи.

1.Режими 0, 4 – режими однократного виконання функцій. Константи з CR передаються в РЄ по першому тактовому сигналі CLK. при GATA = = 1. Із приходом наступних сигналів на вході CLK. відбувається зменшення вмісту РЄ. Якщо під час рахунку на вхід GATA подати нуль, то це приведе до зупинки рахунку. Новий позитивний сигнал на GATA не викликає перезавантаження лічильника/таймера, а тільки дозволяє продовження рахунку. По закінченні рахунку виконання дій закінчується. При необхідності повторення функції потрібне нове програмування – завантаження нової константи.

2. Режими 1,5 – режими з перезапуском. Тут характерна можливість повторення запрограмованих функцій без нового перепрограмування. Завантажена константа зберігається в CR, а її передача в РЄ здійснюється по фронті сигналу GATA незалежно від завершення рахунку.

3. Режими 2, 3 – режими автозавантаження. Завантаження РЄ вмістом CR здійснюються автоматично при виконанні умов рахунку (імпульсний генератор і генератор меандру), оскільки це режими із зацикленням рахунку. Вихід OUT відкривається позитивним сигналом на GATA.

Програмування. ПТ ставиться до класу функціонально орієнтованих програмно керованих інтерфейсних ВІС, тому перед початком роботи в нього необхідно завантажити керуюче слово (ВУС) і константу перерахування. ВУС задає один із шести режимів роботи, тип рахунку (двійковий або двоїчно-десятковий), порядок завантаження й розмірність (один або два байти) константи. Число-імпульсна функція формується на виході OUT при GA-ТА=1. Формування функції здійснюється за допомогою лічильника-таймера РЄ, що працює в режимі лічильника, що віднімає, по зрізі сигналу CLK.

Програміст може опитати стан каналів ПТ із поміччю спеціальних команд Засувка (Читання на лету) (CLC) абоЧитання стану каналу (RBC). Ці команди дозволяють, не перериваючи рахунку, опитати стан лічильника/таймера РЄ. Крім того, команда RBC дозволяє прочитати вміст регістра стану каналу, розряди якого несуть інформацію про запрограмований режим, стан виходу OUT і прапора «відновлення».

Керуюче слово CW. Формат ВУС показаний на мал. 6.19. Керуючі слова завантажуються в регістри RSW каналів ПТ по командах виводу, що формує на входах ПТ куркульки А0А1 = 11, CS=0, WR = 0, RD = 1. Керуючі слова завантажуються в той канал ПТ, адреса якого вказується в самому форматі ВУС, і зберігаються там в усі час роботи або до наступного програмування. Завантаження ВУС повинна передувати завантаженню констант.

У форматі ВУС можна виділити чотири функціональні поля: SC, RW, М, BCD, за Допомогою яких задаються основні параметри роботи каналу.

Поле SC (розряди D7, D6) визначає адреса регістра RSW конкретного каналу. Якщо в цьому полі втримується код 11, то завантажується інформація, що, сприймається ПТ як команда Читання стану каналу (див. далі опис команди RBC).

Поле RW (розряди D5, D4) визначає розмірність і порядок завантаження констант. Якщо в поле RW задані коди 01 або 10, то розмір константи визначений відповідно старшим або молодшим байтом. Якщо в поле RW заданий код 11, то розмір константи два байти; спочатку завантажується молодший байт, потім старший. Якщо в поле RW заданий код 00, то завантажується байт, що, сприймається як команда Засувка (див. далі опис команди CLC).

Поле М (розряди D3 – D1) задає один із шести режимів роботи каналу:

режим 0 (000) – переривання від таймера;

режим 1 (001) -програмувальний мультивібратор, що чекає;

режим 2 (ХІ0) -імпульсний генератор частоти;

режим 3 (ХН) – генератор імпульсів зі шпаруватістю два;

режим 4 (100) -програмно-запускається одновібратор;

режим 5 (101) -апаратно-запускається одновибратор.

У режимах 2, 3 розряд D3 може приймати будь-яке значення. (докладно робота каналів у відповідних режимах буде розглянута далі).

Поле BCD (розряд D0) визначає тип рахунку. При D0 = 0 константа задається у двійковому коді й може приймати значення в діапазоні 0-65 536. При D0= 1 константа задається у двоїчно-десятковому коді в діапазоні 0-9999.

Після завантаження ВУС необхідно завантажити в канали константи перерахування. Константа перерахування завантажується в ПТ також по командах виводу, але з адресою, що формує на входах АТ, А1 код відповідного каналу (00, 01, 10). Константа може бути задана байтом (старшим або молодшим) або 16-розрядним словом (як це визначено полем RW керуючого слова) і представлена двійковим або двоїчно-десятковим кодом (як визначено полем BCD). Порядок завантаження каналів керуючими словами й константами строго визначений. Можливі два варіанти. Перший припускає завантаження в будь-якій послідовності спочатку всіх ВУС, потім констант перерахування. Другий припускає завантаження керуючого слова для будь-якого каналу, а потім константи перерахування для цього ж каналу.

Загальними й обов'язковими вимогами для завантаження ВУС і констант є наступні: 1) завантаження ВУС повинна випереджати завантаження константи; 2) завантаження констант завжди повинна виконуватися до кінця, як визначено розрядами RW1, RWO у форматі ВУС.

Стан лічильника/таймера РЄ можна прочитати трьома способами.

1. Читання по звичайних командах уведення дозволяє прочитати стан лічильника таймера РЄ в будь-який момент часу. Виконується за Допомогою звичайних команд уведення з адресою, що формує на входах АТ, А1 код відповідного каналу. Необхідною умовою для виконання цієї операції є зупинка рахунку перед виконанням команд читання, тобто GATA = 0. Операцію читання необхідно виконувати до кінця, тобто не можна прочитати тільки один байт РЄ, якщо константа задана 16-розрядним словом. Спочатку зчитується молодший байт, потім старший.

2. Читання по команді CLC (Засувка). Команда CLC дозволяє прочитати стан лічильника/таймера РЄ в будь-який момент часу без зупинки рахунку. Для цього програміст повинен завантажити цю команду в ПТ у певний момент часу. Команда завантажується в ПТ так само, як ВУС, тобто по команді виводу з адресою, що формує на входах АТ, А1 код 11.

Розряди D7, D6 задають адреса замикаємого каналу. Ці розряди не можуть приймати значення 11, що є кодом команди RBC. Розряди D5, D4 є кодом команди CLC і приймають значення 00. Розряди D3 – D0 не беруть участь в операції й можуть приймати будь-яке значення. Таким чином, існує три команди CLC, що відрізняються кодом у розрядах D7, D6:

CLCO = OOOOx X X X замикається канал 0; CLC1 =0100х X X X замикається канал 1; CLC2 = 10оох X X X замикається канал 2.

Після завантаження команди CLC виконується операція читання так само, як у першому способі, з тими ж необхідними умовами, крім зняття сигналу GATA. Фактично команда CLC записує стан лічильника/таймера РЄ в буферний регістр OL, з якого інформація зчитується без порушення продовження рахунку. Інформація з OL може бути лічена в будь-який час. Необхідно пам'ятати, що якщо операція читання не виконана або виконана не до кінця, те нова команда CLC не сприймається. Прочитати стан регістра OL можна тільки після виконання хоча б одного циклу в РЄ.

3. Команда RBC (Читання стану каналу) дозволяє в будь-який момент часу прочитати слово стану каналу (SW), тобто вміст регістра RS, а також виконати засувку одного або декількох каналів одночасно. Формат команди RBC представлений на мал. 6.21. Вона завантажується в ПТ так само, як ВУС, тобто по команді виводу з адресою, що формує код А0А1 = 11. Старші розряди (D7D6= 11) є кодом, по якому ПТ розпізнає інформацію на вході як команду RBC.

Команда RBC може виконувати дві операції: 1) Засувку, що аналогічно команді CLC, і 2) Читання регістра стану каналу. Ці операції задаються незалежно кодами D5 = 0, D4 = 0. Можливе сполучення операцій. При D5D4=11 операцій немає. Особливістю цієї команди є можливість виконання операцій одночасно в декількох каналах. Установка коду D3D2D1 = 111 визначає операцію з відповідним каналом.

Наприклад, команда RBC= 11001110 одночасно замикає/перезаписує стан регістрів РЄ всіх трьох каналів у власні регістри OL, а також стан каналів в RS і робить їх доступними для читання. Ця команда еквівалентна трьом командам CLC. Як і при команді CLC, нове «замикання» можливо тільки після повного зчитування вмісту OL.

Слово-Стан каналу SW. Кожний канал має регістр слова-стану RS. Формат слова стану показаний на мал. 6.22, з якого видно, що у процесі роботи каналу змінюються тільки два старших розряди слова стану: D7 і D6. Інші розряди відповідають розрядам раніше завантаженого керуючого слова, що дозволяє контролювати правильність його завантаження.

Розряд D7 слова стану каналу несе інформацію про стан виходу каналу OUT у момент виконання команди RBC. Розряд D6 є прапором відновлення регістра констант CR. Цей прапор особливо необхідний для режимів 1 і 5, він дозволяє визначити, чи відбулося завантаження константи з регістра CR у РЄ чи ні. Нагадаємо, що для цих режимів завантаження здійснюється апаратно – по фронті сигналу GATA. Тому якщо прапор відновлення встановлений у нуль, те це означає, що раніше завантажена константа перезаписана з CR у РЄ й по ній здійснюється операція рахунку. У цьому випадку можна зробити завантаження нової константи, не порушуючи попереднього рахунку. По фронті наступного сигналу GATA починається рахунок з новою константою.

Зміна стану прапора відновлення при роботі й програмуванні можна проілюструвати наступним прикладом:

при записі ВУС прапор FN – 1;

при записі констант в CR FN = 1;

при завантаженні константи в РЄ FN = 0.

Підключення ПТ до МШС здійснюється за Допомогою ліній CS, RD,

WR, АТ, А1 за загальними правилами підключення интерфейсних ВІС до системної шини МШС на базі МПК К1810. На мал. 6.23 показана схема підключення ПТ до шини МШС. Входи RD, WR орієнтують вхідний буфер ПТ на прийом або видачу, тому підключаються до відповідних виходів ЦП (I/OR, I/OW), на яких формується сигнал низького рівня при виконанні команд уведення – виводу. Вивід CS є входом дозволу вибору ПТ.

Нульовий потенціал на ньому дозволяє роботу вхідного буфера ПТ. Цей вхід використовується для адресації ПТ, він підключається або до однієї з вільних шин адреси (принцип роздільної дешифрації), або до виходу дешифратора ВУ. Виводи АТ, А1 є входами адрес внутрішніх регістрів ПТ, вони підключаються до шин адреси, не зайнятим в адресації ПТ, звичайно до АТ,

A1 шини адреси МШС. Тимчасова діаграма сигналів CLK,WR,GATA,OUT показана на мал. 6.24, а залежність станів сигналів на входах ПТ і виконуваних операцій ПТ зі ЦП – у табл. 6.3.

Функціонування. Як ми вже відзначали, канали ПТ незалежно можуть бути запрограмовані на роботу в одному із шести режимів.

У режимі 0 – переривання від таймера – низький рівень сигналу на виводі OUT установлюється відразу ж після завантаження ВУС. Завантаження константи не робить впливу на цей вихід. Рахунок дозволяється позитивним сигналом на вході GATA. Зміна стану лічильника/таймера РЄ здійснюється по зрізі сигналу CLK, причому по першому тактовому сигналі відбувається завантаження РЄ константою з CR, і тільки другий тактовий сигнал бере участь у рахунку. Після відліку завантаженого числа встановлюється сигнал OUT = = 1. Таким чином, сигнал OUT = 0 утримується на час N-(-1 тактових періодів, де N – завантажена константа.

Якщо під час рахунку зняти сигнал GATA, то рахунок припиняється, уміст лічильника/таймера зберігається. Новий позитивний сигнал на вході GATA викликає продовження рахунку без перезавантаження РЄ вмістом CR. Завантаження нової константи під час рахунку приводить: при записі молодшого байта – до зупинки поточного рахунка, а при записі старшого – до запуску нового циклу рахунку.

Контроль лічильника (виконання команд CLC, RBC) у цьому режимі можливий тільки після хоча б одного циклу рахунку. На мал. 6.25 показана тимчасова діаграма роботи ПТ у режимі 0.

У режимі 1 – програмувального мультивібратора, що чекає, – на виході OUT формується сигнал низького рівня тривалістю T=TCLKN, де tclk – період тактових імпульсів; N – константа. На виході OUT по позитивному фронті сигналу GATA установлюється нульовий сигнал, що змінюється після закінчення рахунку. Режим 1 є режимом з перезапуском. По кожному фронті сигналу на вході GATA регістр РЄ перезавантажується вмістом CR. Це означає, що один раз завантажена константа бере участь у рахунку щораз по фронті сигналу GATA, причому по фронті першого сигналу GATA прапор відновлення встановлюється в нуль.

Якщо під час рахунку в ПТ завантажується нова константа, то вона встановлює прапор відновлення в одиницю, але не впливає на поточний рахунок. Новий рахунок починається тільки по фронті наступного сигналу GATA. Виконання команд CLC і RBC можливо тільки після виконання хоча б одного циклу рахунку.

Тимчасова діаграма роботи ПТ у режимі 1 показана на мал. 6.26.

У режимі 2 – імпульсні генератори частоти – канал працює як дільник вхідної частоти fclk Ha N. Відразу ж після завантаження ВУС на виході OUT установлюється одиничний сигнал. При GATA=1 на виході OUT із частотою fclk/n установлюється нульовий сигнал на час одного періоду CLK- Режим 2 є режимом з автозавантаженням, тобто після закінчення циклу рахунку РЄ автоматично перезавантажується й рахунок повторюється. Перезавантаження каналу новою константою не впливає на поточний рахунок, новий рахунок починається по закінченні попередні. При GATA = 0 на виході OUT установлюється напруга високого рівня й рахунок зупиняється. При сигналі GATA = = 1 рахунок триває, що дозволяє синхронізувати роботу каналу із зовнішніми подіями. Виконання команд CLC і RBC можливо для цього режиму після закінчення двох циклів рахунку.

Тимчасова діаграма роботи ПТ у режимі 2 показана на мал. 6.27 для трьох різних варіантів.

Режим 3 – генератори імпульсів зі шпаруватістю два – аналогічний режиму 2, за тим виключенням, що на виході OUT формуються імпульси із тривалістю напівперіодів, рівної – iclk ПРИ парних N; —-—TCLK для позитивних і —-—tclk Для негативних напівперіодів при непарних N.

Јi Цей режим є режимом з автозавантаженням, тобто перезавантаження РЄ константою з CR виконується автоматично після закінчення циклу рахунку. Перезавантаження константи під час рахунку не впливає на поточний рахунок, новий рахунок починається по закінченні попередні. Зняття сигналу GATA припиняє рахунок, установка його продовжує цикл рахунку. У цьому режимі канал може працювати тільки з константою більше трьох. Виконання команд CLC і RBC можливо тільки після двох циклів рахунку.

Тимчасова діаграма роботи ПТ у режимі 3 показана на мал. 6.28.

У режимі 4 – одновібратори, що запускається – по закінченні відліку числа, завантаженого в лічильник/таймер, на виході OUT установлюється нульовий сигнал на час одного періоду сигналу CLK. Високий рівень сигналу на виході OUT установлюється відразу ж після завантаження ВУС. Сигнал високого рівня на вході GATA дозволяє рахунок, причому першим тактовим сигналом відбувається завантаження лічильника/таймера РЄ константою з CR, а другий тактовий сигнал починає злічення. Таким чином, сигнал тривалістю, рівної періоду тактової частоти, установлюється на виході OUT через N+1 тактових періодів. Якщо під час рахунку знімається сигнал GATA, то рахунок припиняється, поточне значення РЄ лічильника/таймера зберігається. Новий позитивний сигнал на GATA викликає продовження злічення. Це режим одноразового виконання функції. Завантаження нової константи під час рахунку приводить: при записі молодшого байта до зупинки поточного злічення, а при записі старшого – до запуску нового циклу злічення.

Виконання команд CLC і RBC можливо тільки після закінчення одного циклу рахунку.

Тимчасова діаграма роботи ПТ у режимі 4 показана на мал. 6.29.

Режим 5 – одновібратора, що запускається – аналогічний режиму 4 по способі формування сигналу на виході OUT і режиму 1 по дії сигналу GATA.

На виході OUT установлюється сигнал нульового рівня на час одного періоду CLK після відліку завантаженої в РЄ константи. Завантаження в РЄ константи з CR здійснюється по фронті сигналу GATA. Із цього треба, що по фронті GATA відбувається нове завантаження РЄ з CR, причому перший фронт GATA установлює прапор відновлення в нуль.

Якщо під час рахунку в канал завантажується нова константа, то ця операція встановлює прапор відновлення в одиницю, але не впливає на поточний рахунок. Новий рахунок починається тільки по фронті наступного сигналу GATA. Виконання команд CLC і RBC можливо тільки після виконання хоча б одного циклу рахунку.

Тимчасова діаграма роботи ПТ у режимі 5 показана на мал. 6.30.

З опису режимів ПТ видно, що таймер може реалізувати всі основні часозадаючі функції, широко використовувані в цифровій техніці, за Допомогою яких виконуються як традиційні функції, пов'язані з керуванням МШС, так і специфічні, вимірювальні функції, наприклад для виміру частоти. На закінчення необхідно відзначити, що при конструктивній сумісності таймерів до 580 ВІ 53 і до 181 ВІ 54 останнього крім поліпшеної частотної характеристики має більше широкі функціональні можливості, особливо при реалізації паралельних процесів.

10 Розрахунок адресного просторів пам'яті й портів введення- виведення (Приклад)

У даній схемі необхідно розрахувати адресний простір пам'яті для 110Кбайт ОЗУ й 90Кбайт ПЗУ, а також адресний простір уведення - висновку для таймера, контролера переривань, одного порту уведення й трьох портів висновку. Для ОЗУ використовуємо мікросхему ДО537РУ17, для ПЗУ - ДО558РФ4. Ємність мікросхем - 8Кбайт, мінімальний адресуемый обсяг інформації - 1байт.

Тому що необхідно забезпечити роботу, як зі словом, так і з окремим байтом, підключимо мікросхеми попарно, причому 8 старших розрядів шини даних підключаємо до однієї мікросхеми, 8 молодших до іншої. Таким чином, одержуємо певну кількість пар мікросхем, до складу яких входять старша й молодша мікросхеми. Забезпечення вибору потрібної мікросхеми забезпечується сигналами А0 і BHE (табл. 2). Ці сигнали, проходячи через інвертори, підключаються до виходу CS2 старшой і молодшій мікросхемі відповідно.

На кожну пару мікросхем необхідно виділити 16До адреси з адресного простору. Щоб довідатися, скільки пар мікросхем знадобиться в цьому випадку, для ОЗУ поділимо 110/16=6.875, округляючи до більшого одержимо 7 пар мікросхем, для ПЗУ поділимо 90/16=5.625, округляючи до більшого одержимо 6 пар мікросхем.

У таблицях 7 і 8 для кожної з 14 мікросхем ОЗУ й 12 ПЗУ, відповідно, позначені адреси першої й останньої комірки пам'яті в шестнадцатеричном і двійковому форматах. У старших мікросхемах всі адреси непарні, тобто А0=0, у молодших - непарні, тобто А0=1. На адресні клеми мікросхем пам'яті А 0-А12 подаються адреси із шини адреси А 1-А13. Для вибору потрібної пари використовується дешифратор DD42. На його адресні клемы А 0-А3 подаються сигнали із шини адреси А 14-А17.

Таблиця 7

№Лін

Стар.

Млад.

A19-A14

A13-A1

A0

A19-A14

A13-A1

A0

DD42 (A17-A14)

1

00000

00001

000000

0000000000000

0

000000

0000000000000

1

0000

 

03FFE

03FFF

000000

1111111111111

0

000000

1111111111111

1

2

04000

04001

000001

0000000000000

0

000001

0000000000000

1

0001

 

07FFE

07FFF

000001

1111111111111

0

000001

1111111111111

1

3

08000

08001

000010

0000000000000

0

000010

0000000000000

1

0010

 

0BFFE

0BFFF

000010

1111111111111

0

000010

1111111111111

1

4

0C000

0C001

000011

0000000000000

0

000011

0000000000000

1

0011

 

0FFFE

0FFFF

000011

1111111111111

0

000011

1111111111111

1

5

10000

10001

000100

0000000000000

0

000100

0000000000000

1

0100

 

13FFE

13FFF

000100

1111111111111

0

000100

1111111111111

1

6

14000

14001

000101

0000000000000

0

000101

0000000000000

1

0101

 

17FFE

17FFF

000101

1111111111111

0

000101

1111111111111

1

7

18000

18001

000110

0000000000000

0

000110

0000000000000

1

0110

 

1BFFE

1BFFF

000110

1111111111111

0

000110

1111111111111

1

Таблиця 8

№Лін

Стар.

Млад.

A19-A14

A13-A1

A0

A19-A14

A13-A1

A0

DD42 (A17-A14)

1

E8000

E8001

111010

0000000000000

0

111010

0000000000000

1

1010

 

EBFFE

EBFFF

111010

1111111111111

0

111010

1111111111111

1

2

EC000

EC001

111011

0000000000000

0

111011

0000000000000

1

1011

 

EFFFE

EFFFF

111011

1111111111111

0

111011

1111111111111

1

3

F0000

F0001

111100

0000000000000

0

111100

0000000000000

1

1100

 

F3FFE

F3FFF

111100

1111111111111

0

111100

1111111111111

1

4

F4000

F4001

111101

0000000000000

0

111101

0000000000000

1

1101

 

F7FFE

F7FFF

111101

1111111111111

0

111101

1111111111111

1

5

F8000

F8001

111110

0000000000000

0

111110

0000000000000

1

1110

 

FBFFE

FBFFF

111110

1111111111111

0

111110

1111111111111

1

6

FC000

FC001

111111

0000000000000

0

111111

0000000000000

1

1111

 

FFFFE

FFFFF

111111

1111111111111

0

111111

1111111111111

1

У таблиці 9 показаний розподіл адресного простору пристроїв уведення - висновку для даної системи. Тому що цих пристроїв небагато, можна ідентифікувати їх по двох перших розрядах шестнадцатеричного адреси. Причому старший розряд ідентифікує пристрій, до якого звертаються, а молодший - конкретний порт пристрою. Таким чином, порти уведення мають адреси 00-0F, висновку - 10-1F, контролер переривань - 20-2F, таймер - 30-3F. Старший розряд адреси подається на дешифратор DD43, молодший на DD44. Дешифратор DD44 необхідний тільки для портів уведення - висновку, тому що інші пристрої мають убудовані дешифратори.

Таблиця 9

Прилад.

. Адрес

A19-A0

DD44 (A1-A0)

DD43 (A5-A4)

PIC

00000000000000100000

--

10

00021

00000000000000100001

PIT

00030

00000000000000110000

--

11

00031

00000000000000110001

00032

00000000000000110010

00033

00000000000000110011

IN1

00000

00000000000000000000

00

00

OUT1

00010

00000000000000010000

00

01

OUT2

00011

00000000000000010001

10

OUT3

00012

00000000000000010010

11