Опубликован: 24.11.2024 | Доступ: свободный | Студентов: 2 / 0 | Длительность: 05:47:00
Лекция 3:

Микроконтроллер

< Лекция 2 || Лекция 3: 12345 || Лекция 4 >
Комплекс GPIO

Следующие модули являются блоками, содержащимися в комплексе GPIO:

GPIO

Это контроллер GPIO, который позволяет вам устанавливать рабочие параметры выводов ввода-вывода, например, устанавливать вывод в качестве входа или выхода, разрешать прерывания для определенных выводов, включать внутренние подтягивающие резисторы для входных выводов или обеспечивать высокую мощность возбуждения по току для выходных выводов.

UART0 и UART1

Это традиционные асинхронные последовательные порты. UART расшифровывается как универсальный асинхронный приемник-передатчик, и это классический интерфейс последовательной связи, доступный в устаревших компьютерах. Вы можете подключиться к последовательному порту вашего компьютера через интерфейс COM-порта с помощью приложения-эмулятора терминала, такого как PuTTY или Tera Term.

PWM 0, PWM1, и PWM2

ШИМ расшифровывается как широтно-импульсная модуляция, популярный метод управления мощностью электрической нагрузки путем изменения рабочего цикла сигнала, который управляет этой нагрузкой. В микроконтроллерах, ШИМ - это классическое применение модулей таймера, которые имеют приложения, связанные со временем ввода и вывода, такие как захват входных данных и сравнение выходных данных. Многие модули таймера в микроконтроллерах имеют специальную функцию ШИМ-генератора, которая позволяет программисту легко генерировать периодические цифровые сигналы. SiFive пропустил функции захвата входных данных и сравнения выходных данных и сразу перешел к реализации ШИМ-генератора. Это имеет смысл: ШИМ на сегодняшний день является наиболее широко используемым приложением модулей таймера. Это то, что позволяет вам так легко изменять яркость экрана вашего смартфона.

SPI1 and SPI2

(На диаграмме неправильно указаны SPI0 и SPI1, но это должны были быть SPI1 и SPI2.) Это два контроллера последовательного периферийного интерфейса, доступных пользователю. SPI - это простейший последовательный коммуникационный интерфейс, который состоит из сдвигового регистра для передачи и сдвигового регистра для приема. Устройство на другом конце имеет два соответствующих регистра сдвига. Микроконтроллер обычно является ведущим в этой сети, поэтому он выводит тактовый сигнал для переключения и несколько линий выбора, чтобы выбрать, к какому ведомому устройству обращаться. Таким образом, в дополнение к линии GND, SPI использует 3 сигнальные линии: MISO (Вход ведомого), MOSI (Выход ведомого) и линию синхронизации, которая управляется ведущим устройством. Ведущий также управляет подчиненными линиями выбора.

I2C

Это интерфейс между интегральными схемами, также известный как I2C или I2CB. Это более удобный интерфейс, похожий на SPI, но он использует только 2 линии для всех устройств, подключенных по шине. Эти 2 линии - SDA (линия передачи данных) и SCL (линия синхронизации). Любое устройство может управлять этими двумя линиями, и каждое устройство имеет адрес в шине, поэтому микроконтроллер может взаимодействовать со многими внешними устройствами на одной шине. Это интерфейс, используемый системой Qwiic Connect.

QSPI0

Это контроллер внешней флэш-памяти. Эта память предназначена для хранения ваших программ в тех случаях, когда внутренней энергонезависимой памяти недостаточно. SparkFun решил использовать внешнюю флэш-память, чтобы вы могли создавать большие программы с помощью Red-V Thing Plus. Поскольку внешняя флэш-память используется как часть операции выборки ядром процессора для выполнения команд, программист не имеет никакого контроля над этим модулем, кроме выбора, использовать его или нет. Это делается с помощью контактов выбора режима в микросхеме (MSEL).

Ядро RISC-V

Архитектура набора команд, реализованная нашим микроконтроллером - это RV32IMAC. Давайте обсудим, что это значит.

Являясь пятым поколением исследовательского проекта, начатого в 1980 году, RISC-V - это опытная архитектура, разработанная для достижения успеха там, где другие терпели неудачу в прошлом, учась на своих ошибках. По этой причине RISC-V был разработан как модульный ISA вместо традиционных инкрементных ISA.Это означает, что реализация RISC-V состоит из обязательного базового ISA и ряда расширений ISA, так что пользовательские процессоры могут быть адаптированы к потребностям приложения.

Соглашение об именовании пользовательских ISA состоит из букв RV (для RISC-V), за которыми следует разрядность и идентификатор модели.

Имея это в виду, RV32IMAC означает:

  • RV32I: 32-разрядный процессор с базовым ISA. Сюда входят абсолютно необходимые базовые операции.
  • M: Расширение для умножения и деления целых чисел.
  • A: Расширение атомарных команд.
  • C: Расширение команд сжатия. Это расширение является разумным дополнением к RISC-V ISA, поскольку оно обеспечивает альтернативную 16-битную кодировку для специального подмножества существующих команд.

Базовое ISA состоит всего из 47 команд, и каждое расширение добавляет несколько инструкций. Ниже, на рисунке 2.6 представлено графическое представление набора команд RV32IMAC:

Набор команд для RV32IMAC демонстрирует модульную (а не инкрементную) природу RISC-V. Обязательный базовый ISA сочетается с набором расширений.

Рис. 2.6. Набор команд для RV32IMAC демонстрирует модульную (а не инкрементную) природу RISC-V. Обязательный базовый ISA сочетается с набором расширений.

Компиляторы информируются о расширениях, включенных в целевой процессор, чтобы они генерировали наилучший возможный код. Если код содержит команды из расширений, отсутствующие в физическом процессоре, аппаратное обеспечение перехватывает и выполняет программные функции из стандартной библиотеки.

Итак, в следующий раз, когда вы увидите код ассемблера в окне дизассемблера в Freedom Studio, постарайтесь обратить внимание, что он содержит инструкции по сборке RISC-V, которые могут быть перечислены, а могут и не быть перечислены на этой диаграмме. Возможно, вы даже захотите проверить выполнение этих команд, чтобы лучше понять, что происходит.

Чтобы узнать больше о RISC-V ISA, прочтите книгу Дэвида Паттерсона и Эндрю Уотермана под названием "RISC-V Reader". Английская версия стоит очень недорого, а переводы на испанский, португальский, китайский и корейский языки можно скачать бесплатно.

< Лекция 2 || Лекция 3: 12345 || Лекция 4 >