itmo500
.pdfРис. 67. Передача данных с тактами неготовности.
В отличие от предыдущего рисунка здесь хорошо видно, что во втором и третьем тактах шины сигнал HREADY равен нулю. Такты неготовности используются для того, чтобы синхронизировать быстрое главное устройство и более медленное подчиненное.
Рис. 68. Пример различных типов обмена на шине.
В зависимости от состояния сигнала HTRANS[1:0] может быть выделено четыре типа передач на шине:
1.IDLE. Передача данных не требуется.
2.BUSY. Позволяет вставлять IDLE циклы в середину пакетной передачи.
3.NONSEQ. Индицирует начало одиночной или пакетной передачи. Адрес установленный в предыдущем цикле шины игнорируется.
120
4.SEQ. Показывает, что адрес в новом цикле шины инкрементируется на 1, а сигналы на шине управления такие же.
Тип пакетной передачи определяется сигналом HBURST[2:0]. Существует
8вариантов пакетной передачи:
1.SINGLE (000) – одиночная передача.
2.INCR (001) – инкрементная передача с неизвестной длиной.
3.WRAP4 (010) – циклическое окно на 4 адреса.
4.INCR4 (011) – инкрементная передача на 4 адреса.
5.WRAP8 (100) – циклическое окно на 8 адресов.
6.INCR8 (101) – инкрементная передача на 8 адресов.
7.WRAP16 (110) – циклическое окно на 16 адресов.
8.INCR16 (111) – инкрементная передача на 16 адресов.
Режим WRAP (циклическое окно) позволяет работать циклически, по кругу, в заданном окне адресов. Режим INCR предполагает простой инкремент (прибавление на единицу) адреса в каждом цикле шины.
Рис. 69. Пример использования режима WRAP4.
121
Рис. 70. Пример использования режима INCR4.
При передаче данных сигнал HWRITE становится активным (переводится в логическую «1»). В зависимости от состояния линий HSIZE[2:0] передаваться за один раз может 8, 16, 32, 64, 128, 256, 512 или 1024 бита данных. Эти биты (HSIZE) работают совместно с сигналами HBURST.
Рис. 71. Выбор подчиненного устройства с помощью сигналов HSEL.
Сигнал HPROT[3:0] определяют уровень защиты передаваемой информации: код операции, доступ к данным, пользовательский доступ, привилегированный доступ и так далее.
Выбор подчиненного устройство происходит с помощью декодера адреса, формирующего сигналы HSEL.
122
Сигнал HREADY используется для информирования главного устройства о завершении или продолжении передачи данных. Если уровень этого сигнала активный, то передача данных завершена.
Рис. 72. Пример использования сигнала HRESP.
Сигнал HRESP[1:0] используется для подтверждения транзакции. Его значениями могут быть: OKAY – транзакция завершена успешно, ERROR – ошибка, RETRY – повторить попытку, SPLIT – данные переданы не полностью.
Сигналы HWDATA[31:0] используются для передачи данных от главного устройства к подчиненным.
Сигналы HRDATA[31:0] используются для передачи данных от подчиненных устройств к главным.
Арбитраж используется для того, чтобы только один мастер имел доступ к шине в один момент времени. Рассмотрим основные сигналы:
•HBUSREQx – запрос шины у арбитра шины.
•HLOCKx – сигнал, выставляемый мастером и означающий захват шины.
•HGRANTx – сигнал, выставляемый арбитром и обозначающий, что мастер получил доступ к шине.
•HMASTER[3:0] – сигнал показывающий номер мастера, захватившего шину.
123
Рис. 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.
124
Система с шиной AMBA ASB (AHB) обычно содержит следующие компоненты:
•ASB-ведущий (мастер). Мастер инициирует операции чтения и записи посредством подачи адреса и управляющих сигналов. Только один мастер в определенный момент времени может быть активным.
•ASB-ведомый (слейв). Ведомый отвечает на операции чтения и записи в заданном адресном пространстве. Ведомый сигнализирует активному мастеру в случае успешного, ошибочного обмена данными или в случае ожидания.
•ASB-дешифратор. Выполняет дешифровку адресов и выбирает соответствующего ведомого. Дешифратор также гарантирует, что шина остается в рабочем состоянии, когда никакого обмена не производится.
•ASB-арбитр. Арбитр гарантирует, что только одному мастеру в данный момент времени позволяется инициировать обмен данными. И хотя протокол разрешения доступа к общей шине зафиксирован, любой алгоритм разрешения конфликтов может быть реализован в зависимости от требований области применения.
Вшине возможны три основных состояния:
•NONSEQUENTIAL (N-TRAN)– используется для одиночных передач или первой передачи данных в пакете.
•SEQUENTIAL (S-TRAN) – используется при пакетной передаче данных.
•ADDRESS-ONLY – используется, если нет необходимости в передаче данных.
125
Рис. 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 активен, разрешение на захват шины не выдается.
126
Рис. 76. Арбитраж в мультимастерном режиме работы шиныAMBA ASB.
Интерфейс подчиненного устройства на шине AMBA ASB имеет следующий вид:
Рис. 77. Интерфейс подчиненного устройства дляAMBA ASB.
3.6.3 Периферийный интерфейсAMBA APB
Интерфейс AMBA APB (Advanced Peripheral Bus) является частью иерархии интерфейсов AMBA и предназначен для объединения периферии, используемой в микроконтроллерах. Интерфейс AMBA APB используется практически во всех современных микроконтроллерах с ядромARM.
127
Цель создания интерфейса – минимизация потребляемой мощности и упрощение архитектуры вычислительной системы.
Рис. 78. Типичный микроконтроллер с периферийными контроллерами, подключенными к шинеAMBA
APB.
Интерфейс AMBA APB инкапсулирован в одном подчиненном устройстве шин AMBA AHB или AMBA ASB. При использовании шины APB потребление энергии значительно меньше, чем при прямом подключении контроллеров к системной шине. Интерфейс APB имеет смысл использовать с такими устройствами, в которых не требуется высокая пропускная способность шины и пакетный режим работы. Примерами таких устройств могут быть: контроллеры последовательного канала, таймеры, контроллеры I2C, SPI, ЦАП, АЦП, часов реального времени, сторожевого таймера и так далее.
Рис. 79. Фрагмент одной из шинAPB в микроконтроллере NXP LPC 1768 на базе Cortеx-M3.
Единственным главным устройством (мастером) на шине APB является мост. Все остальные устройства (контроллеры) являются подчиненными устройствами.
128
ИнтерфейсAMBA APB может находиться в одном из трёх состояний:
•IDLE – устройство не готово, шина находится в исходном состоянии.
•SETUP – запущен процесс инициализации устройства.
•ENABLE – устройство готово к обмену.
Рис. 80. Три состояния шиныAMBA APB.
Если требуется что-то передать по шине, мы должны выбрать устройство, с которым мы будем общаться, с помощью сигнала PSELx. После получения сигнала устройство производит инициализацию и выставляет на шину сигнал
PENABLE.
Циклы чтения и записи имеют вид, показанный на рисунке ниже.
Рис. 81. Цикл записи данных в шинеAMBA APB.
129