Предмет:
Тип роботи:
Лабораторна робота
К-сть сторінок:
24
Мова:
Українська
GP_RST і двома вхідними - готовність пристрою GP_RDX та запит переривання GPJNT.
У мікросхемі PCI2040 є також шість ліній вводу—виводу загального призначення (GPIO0—GPI05), проте при включеній шині GP дві з них зайняті згаданими вище сигналами управління: GPIO4 — GP_WR, GPIO5 — GP_RD. Інші чотири можна конфігурувати як входи або виходи в будь-якому поєднанні. Лінії GPIO2 і GPIO3 при необхідності можуть служити додатковими входами запитів переривання.
Х1 - краєвий роз'єм PCI-платы стандартного розміру. Роз’єми Х2 - Х4 серії PBD служать для з'єднання з адаптером функціональної частини пристрою, що розробляється. Утворюється так звана "мезонинна" конструкція — плата адаптера і функціональна розташовані паралельно один одному на відстані, визначеній висотою зістикованих роз'ємів. Це дає можливість при необхідності замінювати функціональну плату, не змінюючи інтерфейс PCI., проте при необхідності функціональна частина пристрою може бути встановлена на основній платі. На розм’ем Х2 виведені поступаючі з материнської плати живлячі напруги +5В, +12 В і -12 В. Напряжение +3,3 В, відсутнє на деяких материнських платах, але необхідне для живлення мікросхеми DD1, одержане за допомогою інтегрального стабілізатора DA1. Напруга 3,3 В з його виходу також виведено на колодку Х2.
Оскільки стабілізатор регульований, його вихідна напруга задана за допомогою резисторів R1 і R2 з допустимим відхиленням від номінала ±1 %. Якщо застосувати стабілізатор з фіксованою вихідною напругою 3,3 В, наприклад LM1117Т-3.3, резистор R2 необхідно видалити, а R1 замінити перемичкою. Резистор R3 служить навантаженням виходу GP_RST мікросхеми DD1.
На друкарській платні адаптера рекомендується заблокувати всі ланцюги живлення великим числом не показаних на схемі конденсаторів - керамічних емністью 0,1 мкФ і оксидних місткістю 22...47 мкФ на відповідну напругу. Їх бажано підключити між лініями живлення і загальним провідником в безпосередній близькості від виводів мікросхеми DD1 і роз'ємів.
Настройку мікросхеми PCI2040 проводять програмно через регістри конфігураційного простору PCI. Основні з них приведені нижче (в дужках вказаний зсув адреси і розрядність регістра):
Ідентифікатор виготівника (0x00, 16) містить код 0x104С.
Ідентифікатор пристрою (0x02, 16) містить код 0хАС60. За кодами в цих двох регістрах програма пізнає пристрій на шині PCI.
Команда PCI (0x04, 16). Записом лог. 1 в розряди 0 і 1 цього регістра дозволяють доступ периферійного пристрою до пристроїв вводу - виводу і пам'яті комп'ютера, аналогічні значення в розрядах 6 і 8 дозволяють обробку помилок.
Базова адреса шини GP (0x18, 32). Число в цьому регістрі задає початкову адресу області пам'яті комп'ютера, на яку відображена ця шина, Управління (0х4С, 16). Щоб включити шину GP, в розряд 5 цього регістра необхідно записати балку. 1.
Програма що працює з системою шукає на шині PCI пристрій з ідентифікаційними кодами мікросхеми PCI2040 і ініціалізує його. Послідовність операцій ініціалізації виглядає таким чином. Допоміжна програма lin_adr.exe встановлює режим лінійної адресації для всієї пам'яті, включаючи фізично відсутню. Після успішного завершення пошуку на шині РСІ пристрою з ідентифікатором виготівника 0x104С і ідентифікатором пристрою 0хАС60 програма дозволяє йому (записом коду 0x03 в регістр команди) доступ до адресних просторів пам'яті і вводу—виводу. Записом коду 0x20 в регістр управління вона включає шину GR.
Записавши нульовий код в регістр функції, встановлюють для всіх ліній GPIO режим вводу—виводу. Встановлює базовий адрес шини GP рівним 0x80000000, що відповідає межі 2 Гбайт. На цьому ініціалізація, закінчена. Далі програма або драйвер дозволяє користувачу виводити на шину GP і читати з неї довільні дані. Є можливість читати і змінювати стан ліній GPIO0—GPIО3.
Обмін даними між комп'ютером і пристроями, підключеними до шини GP адаптера, виконується за допомогою звичних машинних команд звернення до пам'яті. Часові діаграми циклів запису і читання приведені на рис 8. Логічні рівні сигналів в заштрихованих зонах — довільні. Якщо базова адреса задана рівним 0x80000000. звернення до елементу пам'яті комп'ютера за адресою 0x80000060 приведе до установки на шині адреси GPAO—GPA5 значення 0х2С (два молодші розряди адреси не враховуються).
Лініями вводу/виводу GPIO0— GPIO5 управляють через наступні регістри (в дужках - зсув адреси):
Функція (0x44). При лог. 1 в розрядах 2 і 3 цього регістра лінії GPIO2 і GPIO3 служать входами запитів переривання. Якщо тут лог. 0, вони звичайні входи або виходи.
Вхідні дані (0x45). Значення розрядів цього регістра відображають рівні поданих на лінії GPIO0—GPI05 зовнішніх сигналів.
Напрямок (0x46). лог. 1 в будь-якому з шести молодших розрядів регістра робить відповідну лінію вихідною, лог. 0 — вхідний. При включеній шині GP лог. 1 в розрядах 4 і 5 регістра встановлюються автоматично. Примусове перемикання ліній GPI04 або GPI05 на ввід приводить до обнулення розряду 5 в регістрі управління (зсув 0х4С) і переводу шини GP в пасивний стан.
Вихідні дані (0x47). Рівні на вихідних лініях відповідають записаному в цей регістр коду.
Тип переривання (0x48). Від стану розрядів 2 і 3 цього регістра залежать умови, при яких по сигналах, поданих на входи GPI02 або GPI03, будуть сформовані запити переривання: лог. 0 — при низькому рівні, лог. 1 — при зміні рівня.
Прикладом простого функціонального пристрою, зв'язаного з шиною PCI через описаний адаптер, е пристрій на зображений на рис. 9. Регістр DD1 служить вхідним буфером, регістр DD2 -виходом. Резистори R1 і R2 встановлені необхідні логічні рівні на вході С мікросхеми DD1 і на лінії GP_RDY шини адаптера.
Оскільки шина адреси GPA0—GPA5 в даному випадку не задіяна, тестова програма може читати стан входів D0—D7 мікросхеми DD1 і управляти станом виходів Q0—Q7 мікросхеми DD2 при зверненні до них по будь-якій з 64-х можливих адрес.
З'єднати з адаптером відому мікросхему паралельного інтерфейсу КР580ВВ55 і одержати таким чином 24 лінії вводу—виводу можна по схемі, показаній на рис. 10. В даному випадку використані дві з шести ліній шини даних. Порту А мікросхеми DD2 в адресному просторі комп'ютера відповідають комірки 0x8000000, порту В - 0x8000004 порту C - 0x8000008, регістру керуючого слова - 0x800000C.
Щоб зробити тривалість імпульсів запису (GP_WR) і читання (GP_RD) достатньої для нормальної роботи досить "повільної" мікросхеми КР580ВВ55, передбачений одновібратор на мікросхемі DD1. Його запускає негативний перепад рівня на лінії GP_CS. Високий логічний рівень вихідного імпульсу одновібратора на лінії GP_RDY служить для адаптера ознакою неготовності пристрою до завершення операції запису або читання, внаслідок чого всі сигнали управління мікросхемою DD2 до закінчення імпульсу залишаються "замороженими". При вказаних на схемі номіналах резистора R2 і конденсатора С1 одновібратор генерує імпульс тривалістю приблизно 400 нс. Це необхідний для надійної роботи мікросхеми КР580ВВ55 мінімум.
а)
б)
Рис. 8. Часові діаграми роботи адаптера в режимах запису (а) та читання (б).
Рис. 9. Підключення до адаптера мікросхеми К1533ИР 33Рис. 10. Підключення до адаптера мікросхеми К580ВВ55.