600007 г. Владимир, ул. 16 лет Октября, д. 68А, литер "Ф", этаж 2, помещение 12
+7 (4922) 53-10-31
info@skb-proton.ru

Что такое вложенное векторное управление прерываниями NVIC

Преобразователи частоты

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

Прерывание может быть запущено как внутри микроконтроллера (MCU), так и извне, с помощью периферийного устройства. Прерывание предупреждает центральный процессор (CPU) о возникновении такого события, как событие, зависящее от времени (например, прошло заданное количество времени или достигнуто определенное время), изменении состояния или начале или окончании процесса.

Другой метод мониторинга временного события или изменения состояния называется “опросом”. При опросе периодически проверяется статус таймера или изменение состояния. Недостатками опроса являются риск чрезмерной задержки между фактическим изменением и его обнаружением, возможность вообще пропустить изменение, а также увеличение времени обработки и требуемой мощности.

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

Вложенное векторное управление прерываниями (NVIC) — это метод определения приоритетности прерываний, повышения производительности микроконтроллера и уменьшения задержки прерывания. NVIC также предоставляет схемы реализации для обработки прерываний, которые возникают при выполнении других прерываний или когда центральный процессор находится в процессе восстановления своего предыдущего состояния и возобновления приостановленного процесса.

Термин “вложенный” относится к тому факту, что в NVIC может быть определено несколько прерываний (до нескольких сотен в некоторых процессорах), и каждому прерыванию присваивается приоритет, причем “0” является наивысшим приоритетом. Кроме того, наиболее критичное прерывание можно сделать немаскируемым, что означает, что оно не может быть отключено (замаскировано).

Одна из функций NVIC заключается в обеспечении того, чтобы прерывания с более высоким приоритетом завершались до прерываний с более низким приоритетом, даже если прерывание с более низким приоритетом запускается первым. Например, если регистрируется* или выполняется прерывание с более низким приоритетом и возникает прерывание с более высоким приоритетом, центральный процессор остановит прерывание с более низким приоритетом и сначала обработает прерывание с более высоким приоритетом.

* Регистр — это специальная, выделенная схема памяти внутри центрального процессора, которая может записываться и считываться гораздо быстрее, чем обычная память. Регистр используется для хранения такой информации, как результаты вычислений, состояния выполнения процессора или другая важная информация о программе.

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

Термин “вектор” во вложенном векторном управлении прерываниями относится к способу, с помощью которого центральный процессор находит программу, или ISR, для выполнения при возникновении прерывания. Вложенное векторное управление прерываниями использует векторную таблицу, которая содержит адреса ISR для каждого прерывания. Когда срабатывает прерывание, процессор получает адрес из векторной таблицы.

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

Авторское изображение: Arm Limited

Вам также может понравиться: