- •Оглавление
- •Организация системы ввода-вывода вычислительной системы ...... 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 Соглашения по читаемости программ
- •Литература
Приложение в. Проектирование и разработка программы
Одним из основных компонентов отчета в лабораторных работах №№5-6 является модель написанной программы. Что под этим понимается?
Сложность задачи, которую необходимо решить в этих лабораторных работах, требует ознакомления с понятием процесса проектирования программного обеспечения. В упрощенном виде к основным этапам традиционного потока проектирования ПО можно отнести:
Разработку технического задания и спецификаций (в данном случае они уже представлены и предложены в виде варианта задания).
Архитектурное проектирование (по-другому, системное или концептуальное проектирование).
Разработку программного обеспечения (непосредственная реализация, т.е. кодирование).
Отладку и тестирование.
Создание рабочей документации (в данном случае это отчет).
Ввод в эксплуатацию, сопровождение (в данном случае это демонстрация преподавателю выполненной работы и ее защита).
Вопросам технологий проектирования программного обеспечения в частности и вычислительных систем в целом, проблемам в различных подходах к проектированию и разработке систем, так называемому «кризису сложности» в вычислительной технике посвящено множество статей и книг [28, 30, 40, 41, 42, 43, 49, 64, 69, 14, 15, 20, 25]. Однако недостаточное качество, многократно заваленные сроки выполнения, высокая стоимость до сих пор являются характерными чертами систем такого рода.
В данной работе Вам настоятельно рекомендуется не пропускать этап архитектурного проектирования, т.е. продумать, как Вы будете решать поставленную задачу, а потом уж приступать к кодированию придуманного. Что это Вам даст? Грамотное системное проектирование
Существенно сократит время реализации ПО в частности и срок выполнения работы в целом (примерное временное соотношение этапа №2 и этапа №3 – «80% к 20%»).
Сделает Вашу программу прозрачной, простой для понимания, предсказуемой, значит, легко отлаживаемой.
Повысит качество.
Сократит ресурсоемкость.
Добавит в Вашу программу возможность наращивания функциональности, модифицируемости и дальнейшего развития (если, конечно, критерий повторного использования учитывался на этапе проектирования).
Сделает более доступным анализ разработанного ПО.
и т.д.
Этап архитектурного проектирования обычно тесно связан с вопросом описания разрабатываемой системы. Недостатком вербального описания программного обеспечения является низкая степень формализации, т.е. практическая невозможность математического доказательства правильности тех или иных утверждений, выраженных таким способом. Блок-схема алгоритма, применяющаяся для описания сравнительно несложных программ, уже не дает никакого эффекта в крупных проектах. Еще в работах Дейкстры и Вирта, а далее в работах Йордона, Росса и др. было предложено описывать программные системы в виде совокупности структурных и поведенческих составляющих. Система разрабатывалась на основе декомпозиции (разделения) общих сущностей на более частные. Была предложена так называемая «абстракция», т.е. выделение существенных для проектировщика деталей проекта и сокрытие второстепенных.
Что такое структура и поведение? Структура системы – это совокупность частей (элементов и подсистем) и связи между ними. Поведение системы – это изменение структурных составляющих (подсистем и элементов), а также связей между ними во времени.
Для описания двух этих понятий, люди издавна используют графические изображения. К сожалению, пока не существует способа изображения на одной картинке всей структуры или поведения вычислительной системы. Приходится рассматривать и структуру, и поведение с разных позиций.
Структура может быть представлена следующими способами:
Совокупность блоков системы и интерфейсов (объект A соединен с объектом B с помощью интерфейса I2C).
Совокупность объектов и зависимостей (объект «дом» зависит от объекта «электростанция»).
Схема наследования классов (класс X происходит от классов Y и Z).
Схема включения классов (агрегация, класс Q включает в себя объекты S и D).
Поведение можно представить в виде:
Конечного автомата [96].
Временной диаграммы (процессограммы, диаграммы взаимодействий и т.п.).
Потоковой диаграммы (DFD, CFD и т.п.).
Эти перечни не претендуют на полноту. В книгах по проектированию вычислительных систем можно найти другие способы описания структуры и поведения или, так называемых, нотаций [30].
Требуемая в отчете модель программы – это и есть ее архитектурное описание. В случае прохождения этапа архитектурного проектирования представить эту модель не составляет труда.
Чтобы проанализировать и оценить логику работы программы (решения поставленной задачи), организацию работы с периферийными устройствами, алгоритмы управления в прикладной и системной части необходимо оторваться от строчек кода (абстрагироваться) и посмотреть на программу в целом, панорамно, по уровням. Поэтому Вам нужно выделить основные сущности Вашей программы и способы (каналы) их взаимодействия – соответственно получается модель первого уровня. Потом (на втором уровне) необходимо представить модели каждой из выделенных сущностей: чаще всего это может быть модель функционирования драйвера клавиатуры, последовательного канала, звукового излучателя, шины I2C, основного прикладного алгоритма и т.д. с выделением потока данных и/или управления (команд). Например, в лабораторной работе № 4 «Клавиатура» для представления задачи сканирования клавиатуры (это лишь часть драйвера клавиатуры) прекрасно подходят конечные автоматы (FSM) [30, 85, 96]. Также могут быть применены сети процессов Кана, DFD и другие перечисленные ранее способы описания структуры и поведения системы. Рекомендуется ознакомиться с этими нотациями, но можно использовать и свой способ описания, – главное, чтобы он удовлетворял перечисленным выше требованиям.
