Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Замечание о сетевых устройствах



Сетевые устройства имеют атрибуты как блочных, так и символьных устройств и зачас­тую рассматриваются как особый класс устройств. Подобно символьным устройствам, на физическом уровне данные передаются последовательно. При этом данные упаковы­ваются в пакеты и передаются на и сетевой контроллер с него с помощью прямого досту­па к памяти (обсуждается в подразд. 5.2.9) как для блочных устройств.

Сетевые устройства только упоминаются в этой главе, но из-за своей сложности они выходят за пределы рассмотрения этой книги.


Резюме



Устройства таймера

Таймер - это устройство ввода-вывода, считающее сердцебиение системы. Без концепции прошедшего времени Linux вообще не смог бы функционировать. Гл. 7, «Планирование и синхронизация ядра», описывает системный таймер и таймер реального времени.

Терминальные устройства

Ранние терминалы были телетайпными машинами (отсюда и произошло имя tty для драйвера последовательного порта). Консольное устройство было разработано в середи­не прошлого века с целью отправки и приема текста по телеграфным сетям. В ранних 60-х телетайп превратился в ранний стандарт RS-232 и стал использоваться во множестве появляющихся микрокомпьютеров. В терминалах 70-х телетайп использовался для связи компьютеров. Настоящие терминалы стали редкостью. Популярные на мейнфреймах и мини-компьютерах в 70-х, терминалы были заменены на компьютерах 80-х программ­ными эмуляторами терминалов. Сам терминал (зачастую называемый «глупым» терми­налом) представлял собой обычные монитор и клавиатуру, подключенные по последова­тельной линии к мейнфрейму. В отличие от ПК они достаточно умны для отправки и по­лучения текстовых данных.

Главная консоль (настраиваемая при загрузке) является первым терминалом, появив­шимся в системе Linux. Обычно после нее запускается графический интерфейс, а далее при необходимости используется оконный эмулятор терминала.

Прямой доступ к памяти (DMA)

Контроллер DMA является аппаратным устройством, расположенным между устройст­вом ввода-вывода и (обычно) высокопроизводительной шиной системы. Назначение кон­троллера DMA заключается в перемещении большого массива данных без вмешательства процессора. Контроллер DMA без задействования процессора может быть запрограм­мирован на перемещение блоков данных в основную память и из нее. На уровне реги­стров контроллер DMA получает адреса источника и назначения и длину, необходимые для выполнения задачи. Затем, пока основной процессор бездействует, контроллер может посылать порцию данных из устройства в память, из памяти в память и из памяти на устройство.

Многие контроллеры (дисковый, сетевой и графический) имеют встроенный DMA-движок, позволяющий передавать большие объемы данных без участия процессора.

Резюме

Эта глава описывает, как ядро Linux обрабатывает ввод и вывод. То есть мы рассмотрели следующие вопросы:



Глава 5* Ввод-Вывод


Выполнили обзор аппаратуры, используемой ядром Linux для выполнения низ­коуровневых операций ввода и вывода, таких, как мосты и шины.

Рассмотрели, как Linux представляет интерфейсы для блочных устройств.

Мы рассмотрели различные планировщики Linux и очереди запросов: безопераци­онный, предельный и предварительный.

Проект: сборка драйвера параллельного порта

Этот проект представляет вашему вниманию основы контроллера параллельного порта и во что сливаются ранее описанные функции ввода-вывода. Параллельный порт обычно интегрирует в Superio часть чипсета и является хорошим примером для написания осно­вы драйвера символьного устройства. Этот драйвер, или динамически загружаемый модуль (module), не особенно полезен, хотя и годится для дальнейшего усовершенство­вания. Так как мы адресуем устройство на уровне регистров, этот модель может исполь­зоваться на системах PowerPC для доступа к вводу-выводу, как описано в документации по отображению в память.

Наш параллельный драйвер устройства использует стандартные open (), close () и, что самое главное, интерфейс ioctl () для иллюстрации архитектуры и внутренней работы драйвера устройства. Мы не будем использовать в этом проекте функции read () и write (), так как функция ioctl () может возвращать значения регистров. (Так как наш драйвер устройства является загружаемым модулем, мы будем называть его просто модулем.)

Мы начнем с краткого описания того, как общаться с параллельным портом, а затем перейдем к рассмотрению основных операций нашего драйвера устройства. Мы исполь­зуем интерфейс ioctl () для обращения к отдельным регистрам в устройстве и создадим приложение для взаимодействия с нашим модулем.

Аппаратное обеспечение параллельного порта

Любой поиск в сети о параллельном порте выдает огромный массив информации. Так как нашей целью в этой главе является описание модулей Linux, мы коснемся только основ этого устройства.

В этом проекте мы будем экспериментировать на х86-системе. Структуру драйвера лег­ко портировать на PowerPC; для этого нужно просто обратиться к другому устройству на уровне ввода-вывода. Несмотря на то что параллельный порт существует на многих встро­енных реализациях PowerPC, он слабо распространен на десктопах (таких, как G4 и G5).

Для настоящего общения с регистрами параллельного порта мы используем inb () и outb(). Мы легко можем использовать readbO и writebO, доступные в io.h на обеих архитектурах - х86 и РРС. Макросы readb () и writeb () являются хорошим выбором для аппаратно-независимой реализации, так как они обращаются к низкоуровне­вым функциям ввода-вывода, используемым на х86 и РРС.


Резюме



Параллельный порт на системах х86 обычно является частью устройства Superio или может быть отдельной (PCI) картой, добавляемой в систему. Если вы перейдете на страницу настройки BIOS, мы увидите, что параллельный порт (порты) отображается в системное пространство ввода-вывода. Для систем х86 параллельный порт может располагаться по адресам 0x278, 0x378 или ОхЗЬс и использует IRQ 7. Это базовый адрес устройства. У парал­лельного порта есть три 8-битовых регистра, начинающихся с базового адреса, которые по­казаны в табл. 5.2. Для примера мы будем использовать базовый адрес 0x378.

Таблица 5.2. Регистры параллельного порта


Бит


Адрес порта ввода-вывода


 

Регистр данных (вывод) D7 D6 D5 D4 D3 D2 Dl DO 0x378 (base+0)
Регистр состояния (ввод) Busy* АСК Paper Select Error end       0x379 (base+1)
Управляющий регистр (вывод)     Select8 Init Auto feed8 Strobe* 0x379 (base+2)

Низкий активный сигнал.

Регистр данных содержит 8 бит для записи со штырьков разъема. Регистр состояния содержит входные сигналы с разъема.

Управляющий регистр посылает специфические управляющие сигналы на разъем. Разъем параллельного порта имеет 25-пиновый D-порт (DB-25). Табл. 5.3 демон­стрирует, как эти сигналы передаются на отдельные штырьки разъема.

Таблица 5.3. Набор сигналов на штырьках параллельного разъема


Имя сигнала

Строб (Strobe)

DO

Dl

D2

D3

D4

D5


Номер штырька

1 2 3 4 5 6 7



Глава 5 • Ввод-Вывод


Таблица 5.3. Набор сигналов на штырьках параллельного разъема (Окончание)

 

D6
D7
Подтверждение (Acknowledge)
Занят (Busy)
Бумага закончилась (Paper End)
Внутренний выбор (Select In)
Автонасыщение (Auto feed)
Ошибка (Error)
Инициализация (Initialize)
Выбор (Select)
Земля (Ground) 18-25

ВНИМАНИЕ! Параллельный порт является чувствительным к статическому электричеству и перегрузкам. Не используйте свой интегрированный (встроенный в материнскую плату) параллельный порт:

• если вы точно уверены в своем умении обращаться с оборудованием;

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

Мы настойчиво рекомендуем использовать карту адаптера параллельного порта для этого и других экспериментов

Для операций ввода мы используем переключатель D7 (штырек 9), для подтвержде­ния (штырек 10) и D6 (штырек 8), для занято (штырек 11) с резисторами по 470 Ом. Для мониторинга вывода мы будем использовать индикаторы LED с данными штырьков с DO по D4 с резисторами максимального ограничения 470 Ом. Для этой цели можно исполь­зовать старый кабель от принтера или 25-пиновый разъем D-Shell «nana» из ближайшего магазина электроники.

ПРИМЕЧАНИЕ. Хороший программист уровня регистров всегда должен знать как можно больше об аппаратном обеспечении, с которым он работает. Сюда входит отыскание перечня данных для вашего драйвера параллельного порта. В этом перечне данных вы можете найти текущие ограничения/утечки драйвера. На многих сайтах в сети выложены интерфейсные решения для работы с параллельным портом, включая изолированные, расширяемые системы сигналов и резисторов усиления и ослабления. И несмотря на то что они находятся за преде­лами рассмотрения данной книги, вам стоит с ними ознакомиться самостоятельно.


Резюме



Этот модуль адресует параллельный порт с помощью функций outb () и inb (). Вспомните гл. 2, «Исследовательский инструментарий», в которой описано, что в зависи­мости от платформы компиляции эти функции корректно реализуют инструкции in и out для х86 и инструкции lbz и stb для отображаемого в память ввода-вывода на Pow­erPC. Этот встроенный код можно найти в файле /io. h соответствующей платформы.


Поделиться:



Популярное:

  1. Выбор сетевых программных средств
  2. Гидравлический режим и надежность работы тепловых сетей. Теоретическое обоснование и методика построения пьезометрического графика, расчет требуемых напоров сетевых и подпиточных насосов.
  3. Глава 3. Расчет параметров сетевых графиков
  4. Е28-3-24. Установка анкерных плит для заякоревания несущих, сетевых и расчалочных канатов
  5. Замечание. В таблице w - задает ширину поля, m - задает количество ведущих нулей, d - задает количество цифр в дробной части и e - задает значение показателя степени.
  6. Исторический очерк развития сетевых технологий
  7. Методы расчета сетевых графиков
  8. Определение расчетного количества подпиточной воды. Подбор сетевых и подпиточных насосов для расчетного режима.
  9. ОПРЕДЕЛЕНИЕ РАСЧЕТНЫХ ПАРАМЕТРОВ И ВЫБОР ОБОРУДОВАНИЯ ИСТОЧНИКА ТЕПЛА: ТИПОВЫХ КОТЛОВ, БАКОВ АККУМУЛЯТОРОВ, СЕТЕВЫХ И ПОДПИТОЧНЫХ НАСОСОВ
  10. Организация хранения данных на устройствах с прямым и последовательным доступом
  11. ПОДБОР СЕТЕВЫХ И ПОДПИТОЧНЫХ НАСОСОВ


Последнее изменение этой страницы: 2016-03-25; Просмотров: 787; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.019 с.)
Главная | Случайная страница | Обратная связь