- •Оглавление
- •Организация системы ввода-вывода вычислительной системы ...... 10
- •Способы обмена информацией между устройствами
- •Аппаратные интерфейсы вычислительных систем ..................................... 68
- •Интерфейс rs-485 ........................................................................................... 175
- •Введение
- •Организация системы ввода-вывода вычислительной системы
- •Основы архитектурной организации вычислительной системы
- •1.1.2 Достоинства и недостатки Принстонской архитектуры
- •1.1.1 Принципы Фон-Неймановской архитектуры
- •1.1.3 Достоинства и недостатки Гарвардской архитектуры
- •Организация вычислительной системы. Элементы вычислительного ядра и системы ввода-вывода
- •1.2.1 Процессор и память
- •1.2.2 Контроллер ввода-вывода
- •1.2.3 Процессор ввода-вывода
- •1.2.4 Интерфейс и протокол
- •1.2.5 Порт ввода-вывода
- •1.2.5.1 Адресное пространство портов ввода-вывода: единое с оперативной памятью и раздельное
- •1.2.5.2 Организация конфигурируемых параллельных портов вводавывода
- •Принципы организации систем ввода-вывода
- •1.3.1 Организация свв универсальных эвм
- •1.3.2.1 Порты ввода-вывода
- •1.3.2.2 Дискретные порты ввода-вывода
- •1.3.2.3 Однонаправленные порты
- •1.3.2.4 Двунаправленные порты и порты с альтернативной функцией
- •1.3.2.7 Устройства сопряжения с объектом (усо) управляющих эвм
- •Способы обмена информацией между устройствами вычислительной системы
- •Программно управляемые:
- •В режиме прямого доступа (без участия центральных процессоров).
- •Синхронный обмен данными
- •Асинхронный обмен данными с программной проверкой готовности
- •Асинхронный обмен данными с аппаратной проверкой готовности
- •2.3.1 Система прерываний
- •2.3.4 Аппаратный полинг
- •2.3.5 Характеристики систем прерываний
- •2.3.6 Контроллер прерываний 8259a
- •Организация обмена в режиме прямого доступа
- •2.4.1 Общие принципы организации пдп
- •Аппаратные интерфейсы вычислительных систем
- •Характеристики аппаратных интерфейсов
- •Функции аппаратных интерфейсов
- •Классификация аппаратных интерфейсов
- •Системные интерфейсы.
- •Стандартные периферийные интерфейсы.
- •Малые периферийные интерфейсы.
- •Понятие интерфейсных систем
- •Реализация аппаратных интерфейсов: проблемы и технические решения
- •3.5.1 Электромагнитные помехи
- •3.5.2 Характеристики линии связи
- •3.5.3.1 Коаксиальный кабель
- •3.5.3.2 Витая пара
- •3.5.3.3 Плоский кабель
- •3.5.3.4 Полосковые линии связи
- •3.5.5 Симметричная и несимметричная схема передачи сигналов
- •3.5.5.1 Дифференциальный сигнал
- •3.5.5.3 Симметричная передача сигнала
- •3.5.6.1 Потенциальный код без возвращения к нулю
- •3.5.6.2 Метод биполярного кодирования с альтернативной инверсией
- •3.5.6.3 Потенциальный код с инверсией при единице
- •3.5.6.4 Биполярный импульсный код
- •3.5.6.5 Манчестерский код
- •3.5.6.6 Потенциальный код 2b1q
- •3.5.7 Приемопередатчик последовательного интерфейса
- •3.5.8 Особенности параллельных интерфейсов
- •3.5.9 Мультиплексирование, конвейеризация, блочная передача
- •3.5.10.2 Реализация гальванической изоляции дискретного выхода модуля ввода-вывода sdx-09
- •3.5.10.3 Реализация гальванической изоляции дискретного входа модуля ввода-вывода sdx-09
- •3.5.10.4 Реализация гальванической изоляции rs-232 в контроллере sdk-1.1
- •3.5.10.5 Технология iCoupler фирмы Analog Devices
- •3.5.11 Горячее подключение и автоконфигурирование
- •3.5.11.1 Горячее подключение
- •3.6 Внутрисистемный интерфейс amba
- •3.6.3 Периферийный интерфейс amba apb
- •Idle – устройство не готово, шина находится в исходном состоянии.
- •3.7 Системные интерфейсы
- •3.7.1 Интерфейс pci
- •3.7.2 Интерфейс pci Express
- •3.8 Стандартные периферийные интерфейсы
- •3.8.1 Интерфейс scsi
- •3.8.1.8 Команды scsi
- •3.8.3 Сравнение sas и параллельного scsi
- •3.8.4 Сравнение sas и sata
- •3.9 Малые периферийные интерфейсы
- •3.9.1 Интерфейс rs-232
- •3.9.1.1 Сигнальные линии последовательного интерфейса
- •3.9.1.2 Управление потоком
- •3.9.1.3 Разъемы и кабели
- •3.9.1.4 Формат последовательной передачи данных
- •3.9.1.5 Работа с последовательным каналом
- •3.9.2.1 Типы подключения к шине spi
- •3.9.2.2 Режимы работы шины spi
- •3.9.2.3 Достоинства шины spi
- •3.9.2.4 Недостатки шины spi 1. Больше линий, чем в i2c.
- •3.9.3 Интерфейс Centronics
- •3.9.4.1 Физический интерфейс Serial ata
- •3.10 Контроллерные сети
- •3.10.1 Интерфейс rs-485
- •3.10.1.1 Согласование и конфигурация линии связи
- •3.10.1.2 Защитное смещение
- •(Верхняя диаграмма), передача данных (средняя диаграмма), приѐм данных от устройства (нижняя диаграмма).
- •3.10.3 Интерфейс i2c
- •3.10.3.1 Концепция шины i2c
- •3.10.3.2 Реализация монтажного и и монтажного или
- •3.10.3.3 Принцип работы шины i2c
- •3.10.3.5 Подтверждение
- •3.10.3.6 Синхронизация
- •3.10.3.7 Форматы обмена данными по шине i2c (7-битный адрес)
- •3.10.3.8 Арбитраж
- •3.10.3.9 Достоинства шины i2c
- •3.10.4.1 Модель передачи данных
- •3.10.4.2 Протокол
- •3.11 Сети передачи данных систем обработки данных. Беспроводные сенсорные сети
- •3.11.1 Сети передачи данных
- •3.11.2 Беспроводные сенсорные сети
- •Приложение а. Система ввода-вывода учебного лабораторного стенда sdk-1.1
- •А.2 Состав стенда
- •А.3 Вычислительное ядро и система ввода-вывода
- •А.3.5.1 Матричная клавиатура
- •А.3.5.2 Жидкокристаллический индикатор
- •А .3.5.3 Светодиодные индикаторы
- •А.3.5.4 Звукоизлучатель
- •А.3.5.5 Дискретные входы-выходы
- •Приложение б. Комплекс лабораторных работ для учебного лабораторного стенда sdk-1.1 б.1 Лабораторная работа № 1 «Дискретные порты ввода-вывода»
- •Б.2 Лабораторная работа № 2 «Таймеры. Система прерываний»
- •Б.2.3.2 Пояснения для вариантов заданий с использованием звукового излучателя
- •(Слева) на принципиальной электрической схеме контроллера sdk-1.1
- •Б.3 Лабораторная работа № 3 «Последовательный интерфейс rs-232. Uart»
- •Б.4 Лабораторная работа № 4 «Клавиатура»
- •Б.5 Лабораторная работа № 5 «Жидкокристаллический индикатор»
- •Б.6 Лабораторная работа № 6 «Последовательный интерфейс i2c»
- •Приложение в. Проектирование и разработка программы
- •Приложение г. Требования к оформлению программ на языке Си г.1 Соглашения по идентификаторам
- •Г.2 Соглашения по самодокументируемости программ
- •Г.3 Соглашения по читаемости программ
- •Литература
3.9.2.3 Достоинства шины spi
Скорость передачи выше, чем у I2C, SMBus. Предельная простота протокола передачи на физическом уровне обуславливает высокую надежность и быстродействие передачи. Предельное быстродействие шины SPI измеряется десятками мегагерц и, поэтому, она идеальна для потоковой передачи больших объемов данных и широко используется в высокоскоростных ЦАП/АЦП, драйверах светодиодных дисплеев и микросхемах памяти.
Протяженность SPI сравнима с интерфейсами RS-232, RS-485, CAN.
Полнодуплексный обмен.
Протокол передачи битовый, а значит, гибкий для реализации и назначения:
Не ограничен передачей 8-битовых слов (можно и 12-битовые, и 16битовые).
Можно выбирать размер, содержимое и назначение пакетов передачи, т.е. определяется прикладной задачей, а не ограничивается стандартом (в отличие от I2C).
Очень простая аппаратная реализация интерфейса:
Пониженное энергопотребление по сравнению с I2C (никаких pullupрегистров).
Никаких механизмов арбитража (разрешения конфликтных ситуаций) и соответствующих им состояний отказа.
Ведомые устройства используют сигналы тактирования ведущего и не нуждаются в точных источниках тактирования.
Ведомый не нуждается в уникальном адресе по сравнению с I2C. Все линии шины SPI являются однонаправленными, что существенно упрощает решение задачи преобразования уровней и гальванической изоляции микросхем.
3.9.2.4 Недостатки шины spi 1. Больше линий, чем в i2c.
Нет адресации в протоколе обмена, для каждого нового ведомого устройства требуется отдельная сигнальная линия выбора (SS).
Никакой аппаратной реализации подтверждения наличия ведомого устройства, т.е. ведущий может «разговаривать» с пустотой и не знать об этом.
Может быть только один мастер (нет режима мультимастера, в отличие от I2C). 5. Никакой аппаратной поддержки управления потоком данных.
6. Как такового стандарта не существует, например, как у I2C. Протокол
I2C является более стандартизованным, поэтому, пользователь I2Cмикросхем более защищен от проблем несовместимости выбранных компонентов.
3.9.3 Интерфейс Centronics
Порт параллельного интерфейса был введен в персональный компьютер для подключения принтера – отсюда и пошло его название LPT-порт (Line PrinTer – построчный принтер). Традиционный, он же стандартный, LPT-порт называется стандартным параллельным портом (Standard Parallel Port, SPP), или SPP-портом, и является однонаправленным портом, через который программно реализуется протокол обмена Centronics. Название и назначение сигналов разъема порта соответствуют интерфейсу Centronics. SPP-порт ориентирован на вывод данных, хотя с некоторыми ограничениями позволяет и вводить данные. Скорость передачи данных может варьироваться и достигать 1,2 Мбит/с.
Существуют различные модификации LPT-порта: двунаправленный, ЕРР, ЕСР и др., расширяющие его функциональные возможности, повышающие производительность и снижающие нагрузку на процессор. Поначалу они являлись фирменными решениями отдельных производителей, позднее был принят стандарт IEEE 1284.
К LPT-портам подключают принтеры, плоттеры, сканеры, коммуникационные устройства и устройства хранения данных, а также электронные ключи, программаторы и прочие устройства. Иногда параллельный интерфейс используют для связи между двумя компьютерами.
Таблица 8. Упрощѐнная таблица сигналов интерфейса Centronics.
Контакты DB-25 IEEE 1284-A |
Контакты Centronics IEEE 1284-B |
Обозначение |
Примечание |
Функция |
1 |
1 |
Strobe |
Маркер цикла передачи (выход) |
Управление |
2 |
2 |
Data 1 |
Сигнал 1 (выход) |
Данные |
3 |
3 |
Data 2 |
Сигнал 2 (выход) |
Данные |
4 |
4 |
Data 3 |
Сигнал 3 (выход) |
Данные |
5 |
5 |
Data 4 |
Сигнал 4 (выход) |
Данные |
6 |
6 |
Data 5 |
Сигнал 5 (выход) |
Данные |
7 |
7 |
Data 6 |
Сигнал 6 (выход) |
Данные |
8 |
8 |
Data 7 |
Сигнал 7 (выход) |
Данные |
9 |
9 |
Data 8 |
Сигнал 8 (выход) |
Данные |
10 |
10 |
Acknowledge |
Готовность принять (вход) |
Состояние |
11 |
11 |
Busy |
Занят (вход) |
Состояние |
12 |
12 |
Paper End |
Нет бумаги (вход) |
Состояние |
13 |
13 |
Select |
Выбор (вход) |
Состояние |
14 |
14 |
Auto Feed |
Автоподача (выход) |
Управление |
15 |
32 |
Error |
Ошибка (вход) |
Состояние |
16 |
31 |
Init |
Инициализация (выход) |
Управление |
17 |
36 |
Select In |
Управление печатью (выход) |
Управление |
18-25 |
16-17, 19-30 |
GND |
Общий |
Земля |
С внешней стороны порт имеет 8-битную шину данных, 5-битную шину сигналов состояния и 4-битную шину управляющих сигналов, выведенные на разъем-розетку DB-25S. В LPT-порте используются логические уровни ТТЛ, что ограничивает допустимую длину кабеля из-за невысокой помехозащищенности ТТЛ-интерфейса. Гальваническая развязка отсутствует, схемная земля подключаемого устройства соединяется со схемной землей компьютера. Из-за этого порт является уязвимым местом компьютера, страдающим при нарушении правил подключения и заземления устройств. Поскольку порт обычно располагается на системной плате, в случае его «выжигания» зачастую выходит из строя и его ближайшее окружение вплоть до выгорания всей системной платы.
Адаптер SPP-порта содержит три 8-битных регистра, расположенных по соседним адресам в пространстве ввода-вывода, начиная с базового адреса порта BASE (3BCh, 378h или 278h).
Data Register (DR) – регистр данных, адрес=ВА5Е. Данные, записанные в этот регистр, выводятся на выходные линии Data[7:0]. Данные, считанные из этого регистра, в зависимости от схемотехники адаптера соответствуют либо ранее записанным данным, либо сигналам на тех же линиях, что не всегда одно и то же. Status Register (SR) – регистр состояния (только чтение), адрес=ВА5Е+1. Регистр отображает 5-битный порт ввода сигналов состояния принтера и флаг прерывания: состояние готовности принтера, сигнал о конце бумаги в принтере, сигнал о включении принтера, сигнал о любой ошибке принтера и др.
Control Register (СR) – регистр управления, адрес=ВА5Е+2, допускает запись и чтение. Регистр связан с 4-битным портом вывода управляющих сигналов, для которых возможно и чтение; выходной буфер обычно имеет тип «открытый коллектор». При помощи этого регистра можно подавать такие сигналы, как сигнал аппаратного сброса принтера, сигнал на автоматический перевод строки по приему байта и возврата каретки (CR), сигнал стробирования выходных данных и др.
Перечислим шаги процедуры вывода байта по интерфейсу Centronics с указанием требуемого количества шинных операций процессора:
Вывод байта в регистр данных (1 цикл IOWR#).
Ввод из регистра состояния и проверка готовности устройства (сигнал Busy). Этот шаг зацикливается до получения готовности или до срабатывания программного тайм-аута (минимум 1 цикл IORD#).
По получению готовности выводом в регистр управления устанавливается строб данных, а следующим выводом строб снимается. Обычно, чтобы переключить только один бит (строб), регистр управления предварительно считывается, что к двум циклам IOWR# добавляет еще один цикл IORD#.
Видно, что для вывода одного байта требуется 4-5 операций ввода-вывода с регистрами порта (в лучшем случае, когда готовность обнаружена по первому чтению регистра состояния). Отсюда вытекает главный недостаток вывода через стандартный порт – невысокая скорость обмена при значительной загрузке процессора. Порт удается разогнать до скоростей 100-150 Кбайт/с при полной загрузке процессора, что недостаточно для печати на лазерном принтере. Другой недостаток функциональный – сложность использования в качестве порта ввода.
Все перечисленные недостатки помог решить стандарт на параллельный интерфейс IEEE 1284, принятый в 1994 году. Он определяет 5 режимов обмена данными, метод согласования режима, физический и электрический интерфейсы. Согласно IEEE 1284, возможны следующие режимы обмена данными через параллельный порт:
Режим совместимости (Compatibility Mode) – однонаправленный (вывод) по протоколу Centronics. Этот режим соответствует SPP-порту.
Полубайтный режим (Nibble Mode) – ввод байта в два цикла (по 4 бита), используя для приема линии состояния. Этот режим обмена подходит для любых адаптеров, поскольку задействует только возможности стандартного порта.
Рис. 98. Передача данных в Nibble Mode.
Байтный режим (Byte Mode) – ввод байта целиком, используя для приема линии данных. Этот режим работает только на портах, допускающих чтение выходных данных (Bi-Directional или PS/2 Туре 1).
Рис. 99. Передача данных в байтовом режиме.
Режим ЕРР (ЕРР Mode) – двунаправленный обмен данными (ЕРР означает Enhanced Parallel Port). Управляющие сигналы интерфейса генерируются аппаратно во время цикла обращения к порту. Эффективен при работе с устройствами внешней памяти и адаптерами локальных сетей.
Режим ЕСР (ЕСР Mode) – двунаправленный обмен данными с возможностью аппаратного сжатия данных по методу RLE (Run Length Encoding) и использования FIFO-буферов и DMA (ЕСР означает Extended Capability Port). Управляющие сигналы интерфейса генерируются аппаратно. Эффективен для принтеров и сканеров (здесь может использоваться сжатие) и различных устройств блочного обмена.
В настоящее время стандарт IEEE 1284 не развивается. Окончательная стандартизация параллельного порта совпала с началом внедрения интерфейса USB, который позволяет подключать также и комбинированные аппараты (сканер-принтер-копир) и обеспечивает более высокую скорость печати и надежную работу принтера. Также, альтернативой параллельному интерфейсу является сетевой интерфейс Ethernet.
Протокол EPP
Enhanced Parallel Port – улучшенный параллельный порт, который был разработан компаниями Intel, Xircom и Zenith Data Systems задолго до принятия стандарта IEEE 1284. Этот протокол предназначен для повышения производительности обмена по параллельному порту, впервые был реализован в чипсете Intel 386SL (микросхема 82360) и впоследствии принят множеством компаний как дополнительный протокол параллельного порта. Версии протокола, реализованные до принятия IEEE 1284, отличаются от нынешнего стандарта (см. ниже). Протокол ЕРР обеспечивает четыре типа циклов обмена: запись данных, чтение данных, запись адреса, чтение адреса.
Рис. 100. Цикл записи данных EPP.
Назначение циклов записи и чтения данных очевидно. Адресные циклы используются для передачи адресной, канальной и управляющей информации. Циклы обмена данными отличаются от адресных циклов применяемыми стробирующими сигналами.
Рис. 101. Обратная передача и приѐм данных по протоколу ECP.
Протокол ЕСР
Extended Capability Port – порт с расширенными возможностями, который был предложен Hewlett Packard и Microsoft для связи с ПУ типа принтеров или сканеров. Как и ЕРР, данный протокол обеспечивает высокопроизводительный двунаправленный обмен данными хоста с ПУ. Протокол ЕСР в обоих направлениях обеспечивает два типа циклов:
Циклы записи и чтения данных.
Командные циклы записи и чтения.
Командные циклы подразделяются на два типа: передача канальных адресов и передача счетчика RLC (Run-Length Count).
В отличие от ЕРР вместе с протоколом ЕСР сразу появился стандарт на программную (регистровую) модель его адаптера, изложенный в документе
"The IEEE 1284 Extended Capabilities Port Protocol and ISA Interface Standard" компании Microsoft. Этот документ определяет свойства протокола, не заданные стандартом IEEE 1284:
Компрессия данных хост-адаптером по методу RLE.
Буферизация FIFO для прямого и обратного каналов.
Применение DMA и программного ввода-вывода.
3.9.4 Интерфейс SATA SATA (Serial ATA) – последовательный интерфейс обмена данными с накопителями информации. SATA является развитием параллельного интерфейса ATA (IDE), который после появления SATA был переименован в PATA (Parallel ATA) [37].
Параллельный интерфейс АТА исчерпал свои ресурсы пропускной способности, достигшей 100 МБ/с в режиме UltraDM A Mode 5. Для дальнейшего повышения пропускной способности интерфейса (но, конечно же, не самих устройств хранения, которые имеют гораздо меньшие внутренние скорости обмена с носителем) было принято решение о переходе на последовательный интерфейс. Цель перехода – улучшение и удешевление кабелей и коннекторов, улучшение условий охлаждения устройств внутри системного блока (избавление от широкого шлейфа), обеспечение возможности разработки компактных устройств, облегчение конфигурирования устройств пользователем. Попутно расширяется адресация блоков (предельная емкость адресации АТА – 137 Гбайт). Сейчас уже ведутся работы над новой спецификацией Serial ATA II с большей пропускной способностью и специальными средствами для поддержки сетевых устройств хранения. Приведенная ниже информация относится к версии 1.0.
Интерфейс Serial ATA является хост-центрическим, в нем определяется только взаимодействие хоста с каждым из подключенных устройств, а взаимодействие между ведущим и ведомым устройствами, свойственное традиционному интерфейсу АТА, исключается. Программно хост видит множество устройств, подключенных к контроллеру, как набор каналов АТА, у каждого из которых имеется единственное ведущее устройство. Имеется возможность эмуляции пар устройств (ведущее–ведомое) на одном канале, если такая необходимость возникнет. Программное взаимодействие с устройствами Serial ATA практически совпадает с прежним, набор команд соответствует ATA/ATAPI-5. В то же время аппаратная реализация хост-адаптера Serial ATA сильно отличается от примитивного (в исходном варианте) интерфейса АТА. В параллельном интерфейсе АТА хост-адаптер был простым средством, обеспечивающим программное обращение к регистрам, расположенным в самих подключенных устройствах. В Serial ATA ситуация иная: хост-адаптер имеет блоки так называемых «теневых» регистров (Shadow Registers), совпадающих по назначению с обычными регистрами устройств АТА. Каждому подключенному устройству соответствует свой набор регистров. Обращения к этим теневым регистрам вызывают процессы взаимодействия хост-адаптера с подключенными устройствами и исполнение команд.
В стандарте рассматривается многоуровневая модель взаимодействия хоста и устройства, где прикладным уровнем является обмен командами, информацией о состоянии и хранимыми данными. На физическом уровне для передачи информации между контроллером и устройством используются две пары проводов. Данные передаются кадрами, транспортный уровень формирует и проверяет корректность информационных структур кадров (Frame Information Structure, FIS). Для облегчения высокоскоростной передачи на канальном уровне данные кодируются по схеме 8В/10В (8 бит данных кодируются 10битным символом) и скремблируются, после чего по физической линии передаются по простейшему методу NRZ (уровень сигнала соответствует передаваемому биту). Между канальным и прикладным уровнем имеется транспортный уровень, отвечающий за доставку кадров. На каждом уровне имеются свои средства контроля достоверности и целостности.
В первом поколении Serial ATA данные по кабелю передаются со скоростью 1500 Мбит/с, что с учетом кодирования 8В/10В обеспечивает скорость 150 МБ/с (без учета накладных расходов протоколов верхних уровней). В дальнейшем планируется повышать скорость передачи, и в интерфейсе заложена возможность согласования скоростей обмена по каждому интерфейсу в соответствии с возможностями хоста и устройства, а также качеством связи. Хост-адаптер имеет средства управления соединениями, программно эти средства доступны через специальные регистры Serial ATA.
В стандарте предусматривается управление энергорежимом интерфейсов. Каждый интерфейс кроме активного состояния может находиться в состояниях PARTIAL и SLUMBER с пониженным энергопотреблением, для выхода из которых требуется заметное время (10 мс).
Команды, требующие передачи данных, могут исполняться в различных режимах обмена. Обращение в режиме программно управляемого ввода-вывода и традиционный способ обмена по DMA (legacy DMA) выполняется аналогично привычному интерфейсу АТА. Однако внутренний протокол обмена между хост-адаптером и устройствами позволяет передавать между ними разноплановую информацию (структуры FIS определены не только для команд, состояния и собственно хранимых данных). В приложении D к спецификации описывается весьма своеобразный способ обмена по DMA, который предполагается основным (First-party DMA) для устройств Serial ATA. В традиционном контроллере DMA адаптера АТА для каждого канала имеется буфер, в который перед выполнением операции обмена загружают дескрипторы блоков памяти, участвующей в обмене. Теперь же предполагается, что адресная информация, относящаяся к оперативной памяти хост компьютера, будет доводиться до устройства хранения, подключенного к адаптеру Serial ATA. Эта информация из устройства хранения при исполнении команд обмена выгружается в контроллер DMA хост-адаптера и используется им для формирования адреса текущей передачи. Мотивы и полезность этого нововведения не совсем понятны; расплатой за некоторое упрощение хостадаптера (особенно многоканального) является усложнение протокола и расширение функций, выполняемых устройством хранения. Все-таки более привычно традиционное разделение функций, при котором задача устройств внешней памяти – хранить данные, не интересуясь тем, в каком месте оперативной памяти компьютера они должны находиться при операциях обмена.
