Теорія операційної системи

:: Меню ::

Головна
Представлення даних в обчислювальних системах
Машинні мови
Завантаження програм
Управління оперативною пам'яттю
Сегментна і сторінкова віртуальна пам'ять
Комп'ютер і зовнішні події
Паралелізм з точки зору програміста
Реалізація багатозадачності на однопроцесорних комп'ютерах  
Зовнішні пристрої
Драйвери зовнішніх пристроїв
Файлові системи
Безпека
Огляд архітектури сучасних ОС

:: Друзі ::

Карта сайту
 

:: Статистика ::

 

 

 

 

 

Т образный костыль ссылка. | залы для поминок на годовщину поминальный обед поминки

Прості зовнішні пристрої

  У кішки чотири ноги -
Вхід, вихід, земля і живлення

Мабуть, найпростішим з мислимих (а також і з використовуваних) зовнішніх пристроїв є порт виводу. Такі пристрої є стандартним компонентом більшості мікропроцесорних систем. В мікропроцесорів перших поколінь порти реалізувалися окремими мікросхемами, в сучасних мікроконтроллерів вони зазвичай інтегровані в один кристал з процесором.
Портом виводу є регістр і декілька вихідних контактів, званих на жаргоні мікроелектронщиків "ногами". У літературі вхідні і вихідні контакти мікросхем зазвичай називають просто входами і виходами. Кількість виходів порту, як правило, відповідає, і ніколи не перевершує кількості бітів в регістрі. Якщо в біт регістра записаний нуль, напруга на виході порту буде низькою, а якщо одиниця, то, відповідно, високим. Більшість сучасних мікропроцесорних комплектів використовують так звані ТТЛ-совместимые напруга коли нулю відповідає напруга 0 В, а одиниці — 5 В або, при роботі від джерела живлення з нижчою напругою, напруга цього самого джерела (мал. 9.3).

Мал. 9.3. Принципова схема ТТЛ-совместимых вихідних каскадів порту виводу (тут і далі Vss — висока напруга живлення, Vdd — нуль)

Оскільки і усередині процесора для представлення нулів і одиниць також використовується висока і низька напруга, порт корисний перш за все тим, що має регістр — щоб утримати напругу на виході, npouecconv досить один раз встановити значення регістра.
Крім того, користь від порту полягає в тому, що підтримка напряжені на виході може зажадати пропускання через цей вихід струму. Порти сучасних мікроконтроллерів мають внутрішній опір близько 200 Ом і здатні без шкоди для себе пропустити через вивід струм до 25 ма. Виводи шин адреси і даних мікропроцесорів, як правило, розраховані на набагато менші струми. Крім того, порти часто мають вбудовані механізми захисту від короткого замикання, статичної електрики і так далі
Вживання порту виводу багатообразні. Наприклад, до нього можна приєднати світлодіод і отримати лампочку, миганням якої можна програмно управляти (такі діоди часто використовуються при відладці програм для мікроконтроллерів — замість діагностичного друку).

Приєднавши до виведення порту динамік, можна видавати різні звуки — втім, щоб вийшов саме звук, а не одиночне клацання, центральний процесор повинен періодично записувати у відповідний біт порту то нуль, то одиницю. Застосовуючи широко-імпульсну модуляцію (тобто маніпулюючи відносною тривалістю періодів високої і низької напруги) в такий спосіб можна генерувати не лише прямокутний меандр, але і сигнали складнішої форми і, відповідно, звуки різного тембру. Використовуючи змінний період, можна генерувати сигнали з частотою, не кратній тактовій частоті центрального процесора або таймера, вживаного для синхронізації (приклад 6.1). Змінюючи період сигналу за допомогою достатній складних алгоритмів, можна навіть отримувати відношення тактової частоти і частоти сигналу, рівне ірраціональному числу.

Втім, сигнали, породжені за допомогою вищеперелічених прийомів, складатимуться не лише з сигналу заданого тембру і частоти, по і з гармонік тактової частоти. Якщо остання частота досить висока, з цим можна змиритися сподіваючись на те, що динамік не зможе се відтворити, а слухач — уловити.
Крім того, до виведення порту можна приєднати зовнішню цифрову, аналогову або електромеханічну схему (наприклад, кроковий електродвигун), яка виконуватиме якусь корисну роботу. Таким чином, порт виводу, як правило, не є зовнішнім пристроєм сам по собі, а служить інтерфейсом між мікропроцесором і власне зовнішнім пристроєм.
Інший настільки ж простий пристрій — це порт введення . Порт введення також складається з регістра і декількох вхідних ліній, відповідних бітам реги~ стр (мал. 9.4). Біт регістра має значення 0, якщо на вхід подано нізко6 напругу (точніше кажучи, якщо під час останнього циклу тактового генератора порту на вхід було подано низьку напругу) і, навпаки, одиницю — якщо високе. Зрозуміло, що напруга практично ніколи не відповідає в точності 0 або 5 В, тому в специфікаціях портів введення завжди вказують діапазон напруги, яка вважається нулем (наприклад, від 0 до 0.2 В) і одиницею (наприклад, від 4.5 до 5 В), для проміжної ж напруги значення відповідного біта не визначене (а на практиці визначається випадковими чинниками). Регістр порту введення часто називають регістром-клямкою (latch register), бо основна його функція — зафіксувати напругу на входах в певний момент часу і передати їх центральному процесору у вигляді однозначний (хай і негарантовано правильно) певних значень.

Мал. 9.4. Порт введення

Розробники мікросхем часто поєднують входи портів введення і виходи портів виводу, створюючи таким чином комбінований пристрій — порт введення-виводу . Такий пристрій має бути істотно складніше, ніж проста комбінація порту введення і порту виводу. Якщо порт виводу намагається встановити на певному виході високу напругу, а інший Пристрій намагається встановити низьке, відповідно до закону Ома це приведе до виникнення електричного струму. Внутрішній опір типового мпкроконтроллерного порту складає близько 200 Ом. При різниці напруги в 5 В це відповідає згадуваному вище гранично Допустимому струму в 25 ма: таким чином, пристрій з нульовим внутрішнім опором все-таки може виставити нуль, але спроба зробити це на декількох лініях одночасно приведе до перевантаження схем живлення контроллера. У будь-якому випадку, великі струми приводять до втрат енергії і розігрівання схеми, тому без крайньої необхідності їх краще уникати. Якщо ми хочемо використовувати одні і ті ж "ноги" мікросхеми як для введення, так і для виводу, ми повинні мати можливість контрольованого включення вихідних каскадів порту виводу.
Вихідні каскади, що відключаються, називаються трістабільнимі, а третє, відключене, достаток виходу — високоїмпедансним. Трістабільниє виходи використовуються не лише для реалізації двонаправлених контактів мікросхем, але і для підключення пристроїв до шини: пристрій, перейшов шиї в третій достаток, визволяє шину і дозволяє якомусь іншому задатчику виставляти на ній свої дані. Для управління перекладом виходів у високоїмпедансноє достаток, порт введення-виводу повинен мати ще один регістр, званий регістром або маскою напряму даних (data direction register) (мал. 9.5).

Мал. 9.5. Принципова схема порту введення-виводу

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

 

:: Реклама ::

 

:: Посилання ::


 

 

 


Copyright © Kivik, 2017