itmo500
.pdfМИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ, МЕХАНИКИ И ОПТИКИ
А.О. Ключев, Д.Р. Ковязина, Е.В. Петров, А.Е. Платунов
ИНТЕРФЕЙСЫ ПЕРИФЕРИЙНЫХ УСТРОЙСТВ
Учебное пособие
Санкт-Петербург
2010
Ключев А.О., Ковязина Д.Р., Петров Е.В., Платунов А.Е. Интерфейсы периферийных устройств. – СПб.: СПбГУ ИТМО, 2010. – 290 с.
Учебное пособие посвящено вопросам организации интерфейсов периферийных устройств. В пособии рассматриваются: организация системы ввода-вывода, способы обмена информацией между устройствами вычислительной системы, аппаратные интерфейсы вычислительных систем. В приложениях к учебному пособию помещены справочные данные и задания к выполнению лабораторных работ с использованием учебного лабораторного стенда SDK-1.1.
Для подготовки бакалавров и магистров по направлению 23.01.00 «Информатика и вычислительная техника»; по программам подготовки магистров 23.01.00.33 «Проектирование встроенных вычислительных систем» и 23.01.00.34 «Системотехника интегральных вычислителей. Системы на кристалле».
Рекомендовано к печати ученым советом факультета КТиУ, протокол №15
от 16.11.2010 г.
В 2009 году Университет стал победителем многоэтапного конкурса, в результате которого определены 12 ведущих университетов России, которым присвоена категория «Национальный исследовательский университет». Министерством образования и науки Российской Федерации была утверждена Программа развития государственного образовательного учреждения высшего профессионального образования «Санкт-Петербургский государственный университет информационных технологий, механики и оптики» на 2009–2018 годы.
©Санкт-Петербургский государственный университет информационных технологий, механики и оптики, 2010
© А.О. Ключев, Д.Р. Ковязина, Е.В. Петров,
А.Е. Платунов, 2010.
Оглавление |
|
ВВЕДЕНИЕ..................................................................................................................................................... |
8 |
1 ОРГАНИЗАЦИЯ СИСТЕМЫ ВВОДА-ВЫВОДА ВЫЧИСЛИТЕЛЬНОЙ СИСТЕМЫ...... |
10 |
1.1 ОСНОВЫ АРХИТЕКТУРНОЙ ОРГАНИЗАЦИИ ВЫЧИСЛИТЕЛЬНОЙ СИСТЕМЫ ...................... |
10 |
1.1.1 Принципы Фон-Неймановской архитектуры.................................................. |
11 |
1.1.2 Достоинства и недостатки Принстонской архитектуры................................ |
12 |
1.1.3 Достоинства и недостатки Гарвардской архитектуры ................................... |
13 |
1.2ОРГАНИЗАЦИЯ ВЫЧИСЛИТЕЛЬНОЙ СИСТЕМЫ. ЭЛЕМЕНТЫ ВЫЧИСЛИТЕЛЬНОГО ЯДРА И
|
СИСТЕМЫ ВВОДА-ВЫВОДА .............................................................................................. |
15 |
|
|
1.2.1 |
Процессор и память........................................................................................... |
16 |
|
1.2.2 |
Контроллер ввода-вывода................................................................................. |
19 |
|
1.2.3 |
Процессор ввода-вывода................................................................................... |
20 |
|
1.2.4 |
Интерфейс и протокол....................................................................................... |
21 |
|
1.2.5 |
Порт ввода-вывода............................................................................................. |
23 |
1.3 |
ПРИНЦИПЫ ОРГАНИЗАЦИИ СИСТЕМ ВВОДА-ВЫВОДА ..................................................... |
28 |
|
|
1.3.1 Организация СВВ универсальных ЭВМ......................................................... |
29 |
|
|
1.3.2 Организация СВВ управляющих ЭВМ............................................................ |
30 |
|
2 СПОСОБЫ ОБМЕНА ИНФОРМАЦИЕЙ МЕЖДУ УСТРОЙСТВАМИ |
|
||
ВЫЧИСЛИТЕЛЬНОЙ СИСТЕМЫ .............................................................................................. |
50 |
||
2.1 |
СИНХРОННЫЙ ОБМЕН ДАННЫМИ.................................................................................... |
50 |
|
2.2 |
АСИНХРОННЫЙ ОБМЕН ДАННЫМИ С ПРОГРАММНОЙ ПРОВЕРКОЙ ГОТОВНОСТИ............ |
51 |
|
2.3 |
АСИНХРОННЫЙ ОБМЕН ДАННЫМИ С АППАРАТНОЙ ПРОВЕРКОЙ ГОТОВНОСТИ............... |
53 |
|
|
2.3.1 |
Система прерываний ......................................................................................... |
53 |
|
2.3.2 |
Классификация прерываний............................................................................. |
54 |
|
2.3.3 Функции системы прерываний и их реализация............................................ |
56 |
|
|
2.3.4 |
Аппаратный полинг........................................................................................... |
59 |
|
2.3.5 |
Характеристики систем прерываний............................................................... |
60 |
|
2.3.6 |
Контроллер прерываний 8259A........................................................................ |
61 |
2.4 |
ОРГАНИЗАЦИЯ ОБМЕНА В РЕЖИМЕ ПРЯМОГО ДОСТУПА.................................................. |
62 |
|
|
2.4.1 Общие принципы организации ПДП............................................................... |
63 |
|
|
2.4.2 |
DMA-контроллеры персонального компьютера............................................. |
65 |
3 АППАРАТНЫЕ ИНТЕРФЕЙСЫ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ..................................... |
68 |
||
3.1 |
ХАРАКТЕРИСТИКИ АППАРАТНЫХ ИНТЕРФЕЙСОВ ............................................................ |
68 |
|
3.2 |
ФУНКЦИИ АППАРАТНЫХ ИНТЕРФЕЙСОВ.......................................................................... |
74 |
|
3.3 |
КЛАССИФИКАЦИЯ АППАРАТНЫХ ИНТЕРФЕЙСОВ............................................................. |
78 |
|
3.4 |
ПОНЯТИЕ ИНТЕРФЕЙСНЫХ СИСТЕМ................................................................................ |
80 |
|
3.5 |
РЕАЛИЗАЦИЯ АППАРАТНЫХ ИНТЕРФЕЙСОВ: ПРОБЛЕМЫ И ТЕХНИЧЕСКИЕ РЕШЕНИЯ...... |
80 |
3
|
3.5.1 |
Электромагнитные помехи ............................................................................... |
80 |
|
3.5.2 |
Характеристики линии связи............................................................................ |
82 |
|
3.5.3 |
Виды линий связи.............................................................................................. |
85 |
|
3.5.4 |
Сбалансированная схема................................................................................... |
86 |
|
3.5.5 |
Симметричная и несимметричная схема передачи сигналов........................ |
88 |
|
3.5.6 |
Виды кодирования............................................................................................. |
92 |
|
3.5.7 |
Приемопередатчик последовательного интерфейса....................................... |
97 |
|
3.5.8 |
Особенности параллельных интерфейсов..................................................... |
101 |
|
3.5.9 |
Мультиплексирование, конвейеризация, блочная передача ........................ |
102 |
|
3.5.10 |
Устройства гальванической изоляции в аппаратных интерфейсах............. |
103 |
|
3.5.11 Горячее подключение и автоконфигурирование........................................... |
111 |
|
3.6 |
ВНУТРИСИСТЕМНЫЙ ИНТЕРФЕЙСAMBA..................................................................... |
113 |
|
|
3.6.1 |
Внутрисистемный интерфейсAMBA AHB .................................................. |
117 |
|
3.6.2 |
Системный интерфейсAMBA ASB................................................................ |
124 |
|
3.6.3 |
Периферийный интерфейсAMBA APB......................................................... |
127 |
3.7 |
СИСТЕМНЫЕ ИНТЕРФЕЙСЫ ........................................................................................... |
131 |
|
|
3.7.1 |
Интерфейс PCI ................................................................................................. |
131 |
|
3.7.2 |
Интерфейс PCI Express.................................................................................... |
142 |
3.8 |
СТАНДАРТНЫЕ ПЕРИФЕРИЙНЫЕ ИНТЕРФЕЙСЫ ............................................................. |
144 |
|
|
3.8.1 |
Интерфейс SCSI ............................................................................................... |
144 |
|
3.8.2 |
Интерфейс SAS ................................................................................................ |
148 |
|
3.8.3 |
Сравнение SAS и параллельного SCSI .......................................................... |
149 |
|
3.8.4 |
Сравнение SAS и SATA................................................................................... |
149 |
3.9 |
МАЛЫЕ ПЕРИФЕРИЙНЫЕ ИНТЕРФЕЙСЫ......................................................................... |
150 |
|
|
3.9.1 |
Интерфейс RS-232 ........................................................................................... |
150 |
|
3.9.2 |
Интерфейс SPI.................................................................................................. |
161 |
|
3.9.3 |
Интерфейс Centronics ...................................................................................... |
167 |
|
3.9.4 |
Интерфейс SATA.............................................................................................. |
172 |
3.10 |
КОНТРОЛЛЕРНЫЕ СЕТИ.................................................................................................. |
175 |
|
|
3.10.1 Интерфейс RS-485 ........................................................................................... |
175 |
|
|
3.10.2 Интерфейс 1-Wire ............................................................................................ |
180 |
|
|
3.10.3 Интерфейс I2C .................................................................................................. |
182 |
|
|
3.10.4 Интерфейс USB................................................................................................ |
194 |
|
3.11 |
СЕТИ ПЕРЕДАЧИ ДАННЫХ СИСТЕМ ОБРАБОТКИ ДАННЫХ. БЕСПРОВОДНЫЕ СЕНСОРНЫЕ |
||
|
СЕТИ .............................................................................................................................. |
|
198 |
|
3.11.1 Сети передачи данных..................................................................................... |
198 |
|
|
3.11.2 Беспроводные сенсорные сети....................................................................... |
198 |
4
ПРИЛОЖЕНИЕ А. СИСТЕМА ВВОДА-ВЫВОДА УЧЕБНОГО ЛАБОРАТОРНОГО СТЕНДА |
|||
|
|
SDK-1.1.................................................................................................................. |
203 |
А.1 |
НАЗНАЧЕНИЕ СТЕНДА.................................................................................................... |
203 |
|
А.2 |
СОСТАВ СТЕНДА............................................................................................................ |
203 |
|
А.3 |
ВЫЧИСЛИТЕЛЬНОЕ ЯДРО И СИСТЕМА ВВОДА-ВЫВОДА ................................................. |
204 |
|
|
А.3.1 |
МикроконтроллерADuC812 ........................................................................... |
205 |
|
А.3.2 |
Внешняя память программ и данных............................................................. |
206 |
|
А.3.3 |
Порты ввода-вывода........................................................................................ |
207 |
|
А.3.4 |
Расширитель портов ввода-вывода................................................................ |
209 |
|
А.3.5 |
Периферийные устройства, подключенные к расширителю портов ввода- |
|
|
|
вывода............................................................................................................... |
209 |
|
А.3.6 |
Аналоговый ввод-вывод.................................................................................. |
212 |
|
А.3.7 |
I2C-устройства.................................................................................................. |
213 |
|
А.3.8 |
Последовательные и параллельные интерфейсы.......................................... |
214 |
ПРИЛОЖЕНИЕ Б. КОМПЛЕКС ЛАБОРАТОРНЫХ РАБОТ ДЛЯ УЧЕБНОГО |
|
||
|
|
ЛАБОРАТОРНОГО СТЕНДА SDK-1.1 ........................................................... |
216 |
Б.1 |
ЛАБОРАТОРНАЯ РАБОТА №1 «ДИСКРЕТНЫЕ ПОРТЫ ВВОДА-ВЫВОДА» ........................ |
216 |
|
|
Б.1.1 |
Задание.............................................................................................................. |
216 |
|
Б.1.2 |
Порты ввода-вывода........................................................................................ |
216 |
|
Б.1.3 |
Описание работы ............................................................................................. |
217 |
|
Б.1.4 |
Требования к выполнению работы................................................................. |
218 |
|
Б.1.5 |
Содержание отчета .......................................................................................... |
219 |
|
Б.1.6 |
Литература........................................................................................................ |
219 |
|
Б.1.7 |
Варианты заданий............................................................................................ |
219 |
Б.2 |
ЛАБОРАТОРНАЯ РАБОТА №2 «ТАЙМЕРЫ. СИСТЕМА ПРЕРЫВАНИЙ» ............................ |
223 |
|
|
Б.2.1 |
Задание.............................................................................................................. |
223 |
|
Б.2.2 |
Таймеры-счетчики........................................................................................... |
223 |
|
Б.2.3 |
Описание работы ............................................................................................. |
224 |
|
Б.2.4 |
Особенности обработки прерываний в стенде SDK-1.1 .............................. |
226 |
|
Б.2.5 |
Требования к выполнению работы................................................................. |
230 |
|
Б.2.6 |
Содержание отчета .......................................................................................... |
230 |
|
Б.2.7 |
Литература........................................................................................................ |
230 |
|
Б.2.8 |
Варианты заданий............................................................................................ |
230 |
Б.3 |
ЛАБОРАТОРНАЯ РАБОТА №3 «ПОСЛЕДОВАТЕЛЬНЫЙ ИНТЕРФЕЙС RS-232. UART» .... |
233 |
|
|
Б.3.1 |
Задание.............................................................................................................. |
233 |
|
Б.3.2 |
Особенности последовательного интерфейса в микроконтроллере с ядром |
|
|
|
MCS-51.............................................................................................................. |
233 |
5
|
Б.3.3 |
Организация буферизированного последовательного ввода-вывода в стенде |
|
|
|
SDK-1.1 ............................................................................................................. |
234 |
|
Б.3.4 |
Организация программы................................................................................. |
235 |
|
Б.3.5 |
Организация обработчика прерывания UART .............................................. |
236 |
|
Б.3.6 |
Описание работы ............................................................................................. |
237 |
|
Б.3.7 |
Требования к выполнению работы................................................................. |
238 |
|
Б.3.8 |
Содержание отчета .......................................................................................... |
238 |
|
Б.3.9 |
Литература........................................................................................................ |
239 |
|
Б.3.10 Варианты заданий............................................................................................ |
239 |
|
Б.4 |
ЛАБОРАТОРНАЯ РАБОТА №4 «КЛАВИАТУРА»................................................................ |
243 |
|
|
Б.4.1 |
Задание.............................................................................................................. |
243 |
|
Б.4.2 |
Матричная клавиатура..................................................................................... |
243 |
|
Б.4.3 |
Описание работы ............................................................................................. |
248 |
|
Б.4.4 |
Требования к выполнению работы................................................................. |
251 |
|
Б.4.5 |
Содержание отчета .......................................................................................... |
251 |
|
Б.4.6 |
Литература........................................................................................................ |
252 |
|
Б.4.7 |
Варианты заданий............................................................................................ |
252 |
Б.5 |
ЛАБОРАТОРНАЯ РАБОТА №5 «ЖИДКОКРИСТАЛЛИЧЕСКИЙ ИНДИКАТОР»..................... |
254 |
|
|
Б.5.1 |
Задание.............................................................................................................. |
254 |
|
Б.5.2 |
Описание работы ............................................................................................. |
254 |
|
Б.5.3 |
Требования к выполнению работы................................................................. |
258 |
|
Б.5.4 |
Содержание отчета .......................................................................................... |
258 |
|
Б.5.5 |
Литература........................................................................................................ |
258 |
|
Б.5.6 |
Варианты заданий............................................................................................ |
258 |
Б.6 |
ЛАБОРАТОРНАЯ РАБОТА №6 «ПОСЛЕДОВАТЕЛЬНЫЙ ИНТЕРФЕЙС I2C»........................ |
262 |
|
|
Б.6.1 |
Задание.............................................................................................................. |
262 |
|
Б.6.2 |
Описание работы ............................................................................................. |
262 |
|
Б.6.3 |
Требования к выполнению работы................................................................. |
267 |
|
Б.6.4 |
Содержание отчета .......................................................................................... |
267 |
|
Б.6.5 |
Литература........................................................................................................ |
268 |
|
Б.6.6 |
Варианты заданий............................................................................................ |
268 |
ПРИЛОЖЕНИЕ В. ПРОЕКТИРОВАНИЕ И РАЗРАБОТКА ПРОГРАММЫ.............................. |
275 |
||
ПРИЛОЖЕНИЕ Г. ТРЕБОВАНИЯ К ОФОРМЛЕНИЮ ПРОГРАММ НА ЯЗЫКЕ СИ.......... |
278 |
||
Г.1 |
СОГЛАШЕНИЯ ПО ИДЕНТИФИКАТОРАМ ......................................................................... |
278 |
|
|
Г.1.1 |
Подбор идентификаторов................................................................................ |
278 |
|
Г.1.2 |
Написание идентификаторов.......................................................................... |
278 |
Г.2 |
СОГЛАШЕНИЯ ПО САМОДОКУМЕНТИРУЕМОСТИ ПРОГРАММ......................................... |
279 |
6
Г.2.1 |
Комментарии.................................................................................................... |
279 |
Г.2.2 |
Спецификация функций.................................................................................. |
279 |
Г.2.3 Спецификация программного файла или модуля......................................... |
280 |
|
Г.3 СОГЛАШЕНИЯ ПО ЧИТАЕМОСТИ ПРОГРАММ.................................................................. |
281 |
|
Г.3.1 |
Лесенка ............................................................................................................. |
281 |
Г.3.2 Длина строк программного текста................................................................. |
282 |
|
Г.3.3 |
Прочие рекомендации...................................................................................... |
282 |
ЛИТЕРАТУРА............................................................................................................................................. |
|
284 |
КАФЕДРА ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ.................................................................................... |
290 |
7
Введение
При изучении систем ввода-вывода и интерфейсов периферийных устройств необходимо представлять основные принципы построения средств вычислительной техники, которые во многом определяются той элементной базой, на которой строятся вычислительные системы общего и специализированного назначения. С этой точки зрения весь период развития вычислительной техники от первого компьютера до современных вычислительных машин можно разбить на два этапа. Первый – это этап до появления современных интегральных схем и микропроцессоров. Второй – после их появления и начала выпуска персональных компьютеров (ПК).
На первом этапе компьютеры разрабатывались и изготавливались на своей собственной элементной базе, их устройства (процессор, ОЗУ, устройства управления и т.п.) имели архитектуру и структуру, присущую только данному компьютеру или одному семейству, связь между устройствами и узлами осуществлялась с помощью интерфейсов, используемых только этим типом вычислительной машины. Стандарты применялись, но в основном касались ПУ, а не внутренних устройств. Поэтому машины разных фирм были не совместимы по элементной базе, устройствам и конструктивам. Это относилось как к большим, так и к малым вычислительным машинам. Это машины типа БЭСМ-1 (2,6), «Урал», «Наири», IBM 360 (370) , ЕС ЭВМ-1033 (1040, 1060), DEC PDP-11, СМ-1 (2,3,4) и т.д. Каждый тип компьютера был в определенной степени уникален.
На втором этапе изменился принцип построения вычислительной техники. Она стала основываться на правиле трех «М»: модульность, микропрограммируемость и магистральность. Модуль представляет собой функционально полное и конструктивно законченное устройство, серийно выпускаемое и программно (микропрограммно) управляемое (настраиваемое). Вычислительные системы собираются на основе этих модулей с помощью каналов связи – универсальных или специализированных интерфейсов.
На втором этапе существенно возросла роль стандартизации, без которой разработка и выпуск вычислительных систем общего назначения стал просто невозможен, а специализированного назначения – практически невозможен.
В последнее время существенно возросли роль и значение систем вводавывода и интерфейсов вследствие усиления значимости коммуникационной составляющей по сравнению с вычислительной составляющей в информационно-управляющих системах.
Учебное пособие посвящено рассмотрению роли и места систем вводавывода и интерфейсов в вычислительных системах, изложению принципов их построения и функционирования. Оно содержит материалы о современных стандартных внутрисистемных, системных, периферийных интерфейсах, а также лабораторные работы, способствующие изучению этих материалов, приобретению студентами навыков проектирования и низкоуровневого
8
программирования подсистем ввода-вывода микропроцессорных систем различного назначения на примере программирования учебного лабораторного стенда SDK-1.1.
Учебное пособие предназначено для студентов, специализирующихся в области вычислительной техники и программирования. Знание интерфейсов позволит разработчику аппаратуры более грамотно подойти к выбору варианта, соответствующего поставленной задаче. Знания материалов этого пособия необходимы системным интеграторам. Без этих знаний они не смогут подобрать требуемый набор устройств и оптимально объединить их в систему. Сведения учебного пособия помогут системным программистам разрабатывать собственные драйверы периферийных устройств или адаптировать чужие разработки.
9