- •Оглавление
- •Организация системы ввода-вывода вычислительной системы ...... 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.6 Внутрисистемный интерфейс amba
AMBA (Advanced Microcontroller Bus Architecture) – шина, разработанная фирмой ARM для организации эффективного взаимодействия компонентов устройств, построенных на базе ядер фирмы. Шина AMBA – стандартная встроенная ASIC-шина, обеспечивающая быстрое модульное проектирование систем при упрощении многократного использования схемотехники и тестов.
ARM также обеспечивает возможность использования библиотеки PrimeCell периферии, которая соответствует AMBA стандарту и обеспечивают простую разработку ASIC и ASSP. При использовании AMBA с синтезируемыми версиями периферийных устройств, аппаратные средства системы и программное обеспечение могут быть разработаны на начальном этапе проектирования и, следовательно, может быть снижен риск ошибок проектирования конечной системы [6].
Согласно спецификации AMBA Rev 2.0 (AMBA Specification (Rev 2.0)) типовая шина AMBA 2 содержит высокоскоростную системную магистральную шину (AHB или ASB) и шину периферии (APB).
Рис. 60. Типовая вычислительная система на базе AMBA.
Системная шина соединяет встраиваемые процессоры, такие как ARMядра, с высокопроизводительной периферией, контроллерами DMA, встроенными памятью и интерфейсами.
Шина периферии работает с упрощенным протоколом и разработана для организации интерфейса с периферийными устройствами общего назначения или дополнительными периферийными устройствами. С системной шиной она соединяется через мост (bridge), способствующий снижению потребления системы.
В спецификации шины AMBA 2 определена методология тестирования, обеспечивающая быстрое тестирование модулей и кэш.
Фирмой ARM разработан набор макроячеек периферийных компонентов, которые фирма на основе лицензионных соглашений предоставляет заказчикам. Периферийные компоненты фирмы ARM, библиотека которых получила наименование PrimeCell, представляют собой готовые к применению программные макроячейки (IP-блоки), при разработке которых обращалось внимание на возможность многократного их использования. Применяя
PrimeCell периферию разработчик существенно экономит время и стоимость разработки за счет концентрации усилий на создании именно системы на кристалле, а не на разработке сначала необходимой периферии и лишь затем системы. В настоящее время в библиотеку входят:
Контроллеры статической памяти (SRAM).
Контроллеры динамической памяти (DDR, DDR2).
Контроллеры прямого доступа к памяти.
Контроллеры прерываний (VIC, Advanced VIC).
UART, синхронные последовательные интерфейсы (SPI), часы реального времени, средства ввода-вывода общего назначения (GPIO), интерфейсы смарт-карт, контроллеры цветных ЖКИ.
Рис. 61. Инструментальная система CoreLinkT AMBA Designer, предназначенная для разработки микроконтроллеров и СнК на базе ядра ARM с шинами AMBA AHB и AMBA APB.
Ведутся работы по дальнейшему расширению библиотеки.
Производительность устройств класса "система-на-кристалле" (СнК) в значительной мере зависит от эффективности взаимодействия всех встроенных компонентов и от эффективности их взаимодействия с внешним, относительно прибора, миром. В первую очередь это связано с различием в быстродействии встроенных компонентов, в особенностях организации интерфейсов.
Рис. 62. Пример простой системы на базе ARM7 с шинами AHB и APB, прилагаемый к CoreLinkT AMBA Designer.
Для разработки микроконтроллеров и СнК на базе AMBA существуют специальные инструментальные средства. Например, CoreLinkT AMBA Designer [5] позволяет скомпоновать СнК из готовых IP компонентов. В состав IP-компонентов входят:
Контроллер памяти.
Арбитр.
Матрица.
Подчиненный контроллер (32 и 64 бита).
Тестовый контроллер. Мост AHB-APB.
Контроллер SRAM.
Подчиненный контроллер для APB.
Сторожевой таймер для APB.
Таймеры для APB.
Другие IP-компоненты.
3.6.1 Внутрисистемный интерфейс AMBA AHB Внутрисистемный интерфейс AHB (Advanced High-performance Bus – расширенная высокопроизводительная шина) предназначен для объединения быстродействующих, высокопроизводительных модулей, работающих на высоких тактовых частотах.
Рис. 63. Схема типичного микроконтроллера на базе шины AMBA-AHB.
Рис. 64. Пример использования шины AMBA AHB в микроконтроллере NXP LPC1768 на базе Cortex-M3.
AHB позволяет соединить ядро микропроцессора с внутренними и внешними модулями памяти, контроллерами ПДП, быстродействующими сетевыми контроллерами Fast Ethernet, контроллерами USB-2.0 и т.д.
Рис. 65. Схема взаимодействия главных и подчиненных устройств, подключенных к шине AMBA AHB.
На рисунке показан фрагмент структуры микроконтроллера NXP LPC1768, выполненного на базе ядра ARM Cortex-M3. На схеме видно, что шиной AHB объединены вместе практически все элементы микроконтроллера, требующие большой скорости обмена данными. Через два моста, к шине AHB подключены две независимые шины APB, к которым подключаются сравнительно медленные периферийные устройства (UART, I2C, таймеры и так далее).
На рисунке шина AHB названа Matrix (матрица). Такое название справедливо, так как на самом деле шина является коммутатором, матрицей, связывающей несколько устройств попарно друг с другом в различные моменты времени. На рисунке ниже можно посмотреть реализацию шины AHB.
Мы видим, что арбитр шины управляет мультиплексорами, к которым подключены шины адреса и шины записи данных из главных устройств (Master) в подчиненные (Slave). Декодер управляет мультиплексором, через который считываются данные с подчиненных устройств. Хорошо видно, что для записи и чтения существуют раздельные шины.
Рис. 66. Простой обмен данными на шине AMBA AHB.
Опишем простой вариант обмена данными на шине AMBA AHB:
Главное устройство выставляет адрес и управляющие сигналы по фронту сигнала HCLK.
Подчиненное устройство считывает значения с шины адресы (HADDR) и шины управления (Control) на следующем фронте HCLK.
После считывания адреса и данных подчиненное устройство может выдать ответ на шину в этом же цикле (сигнал HREADY активен).
Главное устройство считывает данные, выставленные подчиненным устройством в третьем цикле шины.
Подчиненное устройство может вставлять такты неготовности, используя сигнал HREADY (см. рисунок выше). Такт неготовности – это такой такт, во время которого обмен по шине не производится вследствие отсутствия готовых данных у одного из устройств.
Рис. 67. Передача данных с тактами неготовности.
В отличие от предыдущего рисунка здесь хорошо видно, что во втором и третьем тактах шины сигнал HREADY равен нулю. Такты неготовности используются для того, чтобы синхронизировать быстрое главное устройство и более медленное подчиненное.
Рис. 68. Пример различных типов обмена на шине.
В зависимости от состояния сигнала HTRANS[1:0] может быть выделено четыре типа передач на шине:
IDLE. Передача данных не требуется.
BUSY. Позволяет вставлять IDLE циклы в середину пакетной передачи.
NONSEQ. Индицирует начало одиночной или пакетной передачи. Адрес установленный в предыдущем цикле шины игнорируется.
SEQ. Показывает, что адрес в новом цикле шины инкрементируется на 1, а сигналы на шине управления такие же.
Тип пакетной передачи определяется сигналом HBURST[2:0]. Существует 8 вариантов пакетной передачи:
SINGLE (000) – одиночная передача.
INCR (001) – инкрементная передача с неизвестной длиной.
WRAP4 (010) – циклическое окно на 4 адреса.
INCR4 (011) – инкрементная передача на 4 адреса.
WRAP8 (100) – циклическое окно на 8 адресов.
INCR8 (101) – инкрементная передача на 8 адресов.
WRAP16 (110) – циклическое окно на 16 адресов.
INCR16 (111) – инкрементная передача на 16 адресов.
Режим WRAP (циклическое окно) позволяет работать циклически, по кругу, в заданном окне адресов. Режим INCR предполагает простой инкремент (прибавление на единицу) адреса в каждом цикле шины.
Рис. 69. Пример использования режима WRAP4.
Рис. 70. Пример использования режима INCR4.
При передаче данных сигнал HWRITE становится активным (переводится в логическую «1»). В зависимости от состояния линий HSIZE[2:0] передаваться за один раз может 8, 16, 32, 64, 128, 256, 512 или 1024 бита данных. Эти биты (HSIZE) работают совместно с сигналами HBURST.
Рис. 71. Выбор подчиненного устройства с помощью сигналов HSEL.
Сигнал HPROT[3:0] определяют уровень защиты передаваемой информации: код операции, доступ к данным, пользовательский доступ, привилегированный доступ и так далее.
Выбор подчиненного устройство происходит с помощью декодера адреса, формирующего сигналы HSEL.
Сигнал HREADY используется для информирования главного устройства о завершении или продолжении передачи данных. Если уровень этого сигнала активный, то передача данных завершена.
Рис. 72. Пример использования сигнала HRESP.
Сигнал HRESP[1:0] используется для подтверждения транзакции. Его значениями могут быть: OKAY – транзакция завершена успешно, ERROR – ошибка, RETRY – повторить попытку, SPLIT – данные переданы не полностью.
Сигналы HWDATA[31:0] используются для передачи данных от главного устройства к подчиненным.
Сигналы HRDATA[31:0] используются для передачи данных от подчиненных устройств к главным.
Арбитраж используется для того, чтобы только один мастер имел доступ к шине в один момент времени. Рассмотрим основные сигналы:
HBUSREQx – запрос шины у арбитра шины.
HLOCKx – сигнал, выставляемый мастером и означающий захват шины.
HGRANTx – сигнал, выставляемый арбитром и обозначающий, что мастер получил доступ к шине.
HMASTER[3:0] – сигнал показывающий номер мастера, захватившего шину.
Рис. 73. Пример арбитража.
На рисунке видно, что в первом такте шины главное устройство выставляет сигнал запроса шины HBUSREQx. В третьем такте арбитр подтверждает захват шины сигналом HGRANTx. На четвертом такте арбитр выставляет сигнал HMASTER с номером главного устройства, захватившего шину.
3.6.2 Системный интерфейс AMBA ASB AMBA ASB (Advanced System Bus) является системным интерфейсом и предназначен для использования в высокопроизводительных 16- и 32разрядных микроконтроллерах. Интерфейс позволяет связать процессор, встроенную и внешнюю память. В AMBA ASB заложена тестовая инфраструктура. AMBA ASB использовался в микроконтроллерах с процессорными ядрами ARM7TDMI, ARM 920 и ARM940. В настоящее время этот интерфейс используется сравнительно редко, вместо него обычно используют более производительный AMBA AHB.
В AMBA ASB поддерживается множество ведущих устройств и пакетная передача. Шина ASB является более простой, по сравнению с AMBA AHB. Коренными отличиями является двусторонняя шина данных (в AHB для данных есть отдельные шины, предназначенные для записи и чтения), более узкая шина данных (32 разряда), не поддерживается раздельная (SPLIT) передача данных.
Рис. 74. Типичная система, построенная на базе AMBA ASB.
Система с шиной AMBA ASB (AHB) обычно содержит следующие компоненты:
ASB-ведущий (мастер). Мастер инициирует операции чтения и записи посредством подачи адреса и управляющих сигналов. Только один мастер в определенный момент времени может быть активным.
ASB-ведомый (слейв). Ведомый отвечает на операции чтения и записи в заданном адресном пространстве. Ведомый сигнализирует активному мастеру в случае успешного, ошибочного обмена данными или в случае ожидания.
ASB-дешифратор. Выполняет дешифровку адресов и выбирает соответствующего ведомого. Дешифратор также гарантирует, что шина остается в рабочем состоянии, когда никакого обмена не производится. ASB-арбитр. Арбитр гарантирует, что только одному мастеру в данный момент времени позволяется инициировать обмен данными. И хотя протокол разрешения доступа к общей шине зафиксирован, любой алгоритм разрешения конфликтов может быть реализован в зависимости от требований области применения.
В шине возможны три основных состояния:
NONSEQUENTIAL (N-TRAN)– используется для одиночных передач или первой передачи данных в пакете.
SEQUENTIAL (S-TRAN) – используется при пакетной передаче данных.
ADDRESS-ONLY – используется, если нет необходимости в передаче данных.
Рис. 75. Одиночная (NONSEQUENTIAL) передача данных.
Рассмотрим основные сигналы шины:
BCLK – сигнал тактового генератора.
BD[31:0] – шина данных.
BA[31:0] – шина адреса.
BWRITE – сигнал запись/чтение.
BTRAN[1:0] – тип передачи (NONSEQUENTIAL, SEQUENTIAL, ADDRESS-ONLY).
BSIZE[1:0] – размер передаваемых данных.
DSELx – выбор устройства.
Рассмотрим взаимодействие нескольких главных устройств через арбитр шины:
Главное устройство выставляет сигнал AREQx, означающий запрос на захват шины.
Арбитр считывает запрос от главного устройства.
Если сигнал BLOCK пассивен, то арбитр разрешает захват шины главному устройству, выставляя сигнал AGNTx. В противном случае, если сигнал BLOCK активен, разрешение на захват шины не выдается.
Рис. 76. Арбитраж в мультимастерном режиме работы шины AMBA ASB.
Интерфейс подчиненного устройства на шине AMBA ASB имеет следующий вид:
Рис. 77. Интерфейс подчиненного устройства для AMBA ASB.
