Подключение периферийных устройств и расширение системы
Протокол шины AMBA [AHB bus protocol]
Спецификация шины AMBA AHB является частью спецификации шины, спецификация шины AMBA - это спецификация шины, предложенная компанией ARM, используемая в большинстве проектов С-н-К, которая обеспечивает AHB (Advanced High-performance Bus), ASB (Advanced System Bus), APB (Advanced Peripheral Bus).
AHB используется для подключения высокопроизводительной системной конфигурации с высокой тактовой частотой, для типичных приложений, таких как ядерная и высокоскоростная системная ОЗУ ARM, флэш-память NAND, DMA, мосты.
APB для подключения внешних устройств, в соответствии с требованиями к производительности, учитывает низкое энергопотребление.
ASB - это альтернатива AHB.
Преимущество шины AHB заключается в том, что она может быть подключена к микроконтроллеру (CPU), чипу оперативной памяти с высокой пропускной способностью, интерфейсу внешней памяти с высокой пропускной способностью, шине DMA master, имеет различные контроллеры интерфейса AHB и т.д. Вместе они образуют отдельную шинную систему, не только это, но и могут быть подключены с помощью системная шина APB AHB-мост APB. AHB может стать полноценным каркасом С-н-К.
AMBA AHB - это высокопроизводительный шинный интерфейс. AMBA AHB реализует функции, необходимые для высокопроизводительных систем с высокой тактовой частотой, в том числе:
- пакетная передача данных;
- разделенная транзакции;
- однотактная передачи с передачей обслуживания;
- операции с одним тактовым фронтом;
- отсутствие Z-состояния на шине;
- поддержка "широких" шин данных (64/128 бит);
- конвейеризация обмена данными;
- устройство управления шиной может поддерживать несколько (до 16).
Наиболее распространенными подчиненными устройствами AHB являются устройства внутренней памяти, интерфейсы внешней памяти и периферийные устройства с высокой пропускной способностью.
Хотя периферийные устройства с низкой пропускной способностью могут выступать в качестве подчиненных устройств AHB, они обычно размещаются на расширенной периферийной шине AMBA (APB) из соображений производительности системы. Соединение между высокопроизводительными AHB и APB осуществляется с помощью AHB slave, называемого APB bridging.
Шина AHB содержит ведущие устройства (master), ведомые устройства (slave) и инфраструктурные устройства. К инфраструктурным устройствам относятся - арбитр, мультиплексор данных, блоки управления, мультиплексор адреса.
Ведущий(Master):
- инициирует операцию на шине (чтение/запись);
- допускается наличие только одного мастера на шине в текущий момент времени.
Ведомый(Slave):
- отвечает на запросы операций;
- выбирается по адресу, назначенному устройству.
Арбитр (arbiter):
- гарантирует наличие одного ведущего на шине.
Дешифратор (decoder):
- определяет активные устройства в зависимости от их адресов.
Шину условно можно разделить на три составляющих:
- шина записи данных (HWDATA);
- шина чтения данных (HRDATA);
- шина контроля адреса (HADDR).
| Сигнал | Источник | Приемник | Описание |
|---|---|---|---|
| HCLK | clock source | Все модули | Тактовый сигнал шины, тактирование по фронту |
| HRESETn | reset controller | Все модули | Сигнал сброса. Активный уровень - низкий |
| HADDR[31:0] | Master | Decoder mux to slave arbiter | 32-битная шина адреса |
| HTRANS[1:0] | Master | mux to slave | Тип текущей транзакции NONSEQ, SEQ, IDLE, BUSY |
| HWRITE | Master | mux to slave | 1 - запись, 0 - чтение |
| HSIZE[2:0] | Master | mux to slave | Размер транзакции в байтах, до 1024 байт |
| HBURST[2:0] | Master | mux to slave | Тип пакета 4,8,16, с инкрементом / без |
| HPROT[3:0] | Master | mux to slave | Сигналы управления защитой, требуемые ведомым устройством с функцией защиты |
| HWDATA[31:0] | Master | mux to slave | Шина записи данных. Ведущий>ведомый |
| HRDATA[31:0] | Slave | mux to master | Шина чтения данных. Ведомый> Ведущий |
| HREADY | Slave | mux to master arbiter | Высокий уровень: ведомый показывает конец передачи низкий: ведомому необходимо продлить цикл передачи |
| HRESP[1:0] | Slave | mux to master arbiter | Состояние передачи ведомого (OKAY, ERROR, RETRY, SPLIT) |
| HSELx | Decoder | slave | Сигнал выбора ведомого |
| Сигнал | Источник | Направление | Описание |
|---|---|---|---|
| HBUSREQx | Master | arbiter | запрос главного арбитра для получения сигнала запроса правильного использования шины, до 16 ведущих |
| HLOCKx | Master | arbiter | Если вы хотите быть ведущим в шине и во время передачи не хотите проиграть, вам нужно послать сигнал арбитру блокировки |
| HGRANTx | arbiter | master | Сигнал авторизации, текущий наивысший приоритет шины x. Когда HGRANTx и READY одновременно высокие, ведущий в праве опрашивать системную шину |
| HMASTER [3:0] | arbiter | slave has a split function | Arbiter for the ID assigned each a master, which pointed out that the main ongoing transmission equipment, split the information provided |
| HMASTLOCK | arbiter | slave has a split function | о указывает на то, что текущий мастер выполняет заблокированную операцию |
| HSPLITx[15:0] | Slave | arbiter | От устройства, чтобы сообщить арбитру об этом сигнале, с помощью которого ведущее устройство, запущенное в очередной раз, попытается разделить передачи, каждая из которых соответствует ведущему устройству |

