Протокол шины AMBA (1) — понимание протокола шины APB в одной статье.
Протокол шины AMBA (1) — понимание протокола шины APB в одной статье.

0.Обзор автобуса AMBA

Шина AMBA (Advanced Microcontroller Bus Architecture) — это открытый стандарт шины на кристалле, предложенный ARM. Он не зависит от процессора и технологии обработки и обладает характеристиками высокой скорости и низкого энергопотребления.

Интерфейсы необходимы для подключения различных модулей в системном чипе;

Шина служит общим каналом связи между подсистемами;

Его преимущества: низкая стоимость, удобство и простота в использовании.

Недостатки: подвержены узким местам в производительности.

История развития автобуса АМБА:

Язык кода:javascript
копировать
AMBA 1.0 : ASB, APB
AMBA 2.0 : AHB, ASB, APB
AMBA 3.0 : AMBA Advanced eXiensibele Interface (AXI)
AMBA 4.0 : ...

Автобусная система AMBA включает в себя следующие три автобуса:

  1. AHB: усовершенствованная высокопроизводительная шина, используемая для высокопроизводительных модулей с высокой тактовой частотой.
  2. ASB: Расширенная системная шина для высокопроизводительных системных модулей.
  3. APB: расширенная периферийная шина, используемая для медленных периферийных модулей.

Типичная система AMBA приведена ниже:

В качестве примера возьмем проект архитектуры системы SOC:

Шину AHB/ASB с шиной APB необходимо соединить через мост.

1. Знакомство с шиной APB

Применительно к медленным периферийным устройствам, таким как UART, клавиатура и т. д., арбитр и декодер в системе шины AHB не требуются. Арбитр — арбитр, решающий, какой Мастер будет работать. Декодер — это декодер, который определяет, какому ведомому устройству ведущий будет передавать данные.

1.1 Основные сигналы интерфейса

Видно, что интерфейс шины APB в основном включает в себя системные сигналы, сигналы адреса, сигналы направления, сигналы данных и сигналы управления этапом передачи.

2. Введение в передачу по шине APB (временная часть)

2.1 Государственный автомат

С точки зрения конечного автомата APB требуется 2 цикла для передачи каждого фрагмента данных, и передача данных APB не подходит для конструкций модулей с конвейерной архитектурой.

2.2 Операция записи

На следующем рисунке показаны основные операции записи APB.

  1. существовать T1 час, ограниченное состояние машина Введите настройки по умолчаниюиз IDLE состояние;
  2. существовать T2 Когда адрес данных, сигнал управления чтением и записью и изданные сработают на положительном фронте существующей частоты, начинается подготовка к записи изданных. Этот цикл является только что упомянутым состоянием НАСТРОЙКИ. Схема декодирования, существующая в этом состоянии, будет декодировать APB, подлежащий записи, в соответствии с адресом данных. Раб, что соответствует S из PSEL Сигнал будет 0 Изменять 1;
  3. существовать T3 час, ограниченное состояние машина войдет ENABLE Статус, ПЕНАБЛ Сигнал существует. Это состояние будет установлено на 1;
  4. существовать T4 Когда частота запускается по положительному фронту, PENABLE Сигнал будет 1 Изменять 0, в то время как PSEL Сигнал существования также будет заменен на 1 Изменять 0. Для снижения энергопотребления Изданные адреса APB и сигнал управления чтением-записью существуют до доставки следующих данных.,Никаких изменений не будет.

2.3 Операция чтения

Из рисунка видно, что, за исключением того, что сигнал записи действителен в обратном направлении, временная диаграмма операции чтения APB очень похожа на временную диаграмму операции записи, поэтому мы не будем объяснять ее подробно здесь.

Важно отметить, что после T3, то есть после входа в цикл ENABLE, APB должен подготовить данные для чтения M, чтобы M мог правильно прочитать данные при запуске по положительному фронту тактового сигнала T4 в конце цикл ENABLE Чтение.

3.Интерфейс APB-AHB

3.1 Операция чтения

Когда частота очень высока, данные в ENABLE CYCLE не могут быть напрямую сопоставлены с шиной AHB. Их необходимо заблокировать в мосту APB на Т4, и их выборка может осуществляться только ведущим устройством AHB на Т5. Хотя требуется еще один период ожидания (всего 2, HREADY противодавляет два такта), общая производительность также улучшается за счет увеличения частоты.

T1: Начать передачу по шине AHB;

T2: Адрес выбирается шиной APB. Если передача предназначена для периферийного устройства, этот адрес будет декодирован в сигнал выбора и отправлен на периферийное устройство. T2 — это ЦИКЛ НАСТРОЙКИ AHB.

T3: APB ENALBE CYCLE, PENABLE поднимается на высокий уровень, и данные считываются.

T4: Считанные данные напрямую передаются на шину AHB и выбираются ведущим устройством AHB по нарастающему фронту.

3.2 Операция записи

Запись отдельных блоков данных на шину APB не требует циклов ожидания. Мост APB отвечает за выборку адресов и данных и сохранение их значений во время операций записи.

T1: AHB начинает передавать адрес данных, а также сигналы управления чтением и записью (HADDR и HWRITE).

T2: Болт моста APB принимает адрес данных, а также сигналы управления чтением и записью, отправленные AHB, и в то же время переходит в состояние ENABLE конечного автомата APB.

T3~: Последующие действия чтения и записи точно такие же, как действия чтения и записи APB, представленные ранее, поэтому мы не будем здесь вдаваться в подробности.

На следующем рисунке представлена ​​временная диаграмма передачи пакетной записи:

Хотя первая передача может обрабатывать состояния ожидания с нулевым состоянием, последующие передачи на периферийную шину потребуют состояния ожидания для выполнения каждой передачи.

В мосту APB требуются 2 адресных регистра. При обработке операции записи блока данных может быть зарегистрирован адрес следующего блока данных.

3.3 Обратная работа

На рисунке ниже показана временная последовательность обратной передачи, соответственно запись, чтение, запись и чтение.

Если за операцией записи следует операция чтения, для завершения операции чтения потребуется 3 цикла ожидания. Обычно операция чтения, за которой следует операция записи, не выполняется, поскольку ЦП читает инструкции между ними.

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose