Bộ ñiều khiển vector ngắt lồng nhau (Nested Vector Interrupt

Một phần của tài liệu Kiến trúc cơ bản của STM32 ARM Cortex m3 (Trang 30 - 32)

Controller)

NVIC (Nested Vector Interrupt Controller) là một ñơn vị tiêu chuẩn bên trong lõi Cortex. Điều này có nghĩa là tất cả các vi ñiều khiển dựa trên lõi Cortex sẽ

hoặc NXP... Vì vậy, mã ứng dụng và hệñiều hành có thể dễ dàng ñược chuyển từ vi ñiều khiển này sang vi ñiều khiển khác và lập trình viên khác không cần phải tìm hiểu một tập các thanh ghi hoàn toàn mới. NVIC cũng ñược thiết kế ñể có một ñộ trễ khi ñáp ứng ngắt rất thấp. Đây là một ñặc ñiểm của chính bản thân bộ NVIC và của tập lệnh Thumb-2, nó cho phép thực thi các lệnh nhiều chu kì (multi-cycle instructions) như lệnh tải và lưu trữ nhiều dữ liệu ( load and store multiple instruction) có thểñược ngắt khi ñang thực thi. Do ñó ñộ trễ khi

ñáp ứng ngắt là xác ñịnh, với nhiều ñặc ñiểm xử lí ngắt tiên tiến, nó hỗ trợ rất tốt cho các ứng dụng thời gian thực. Như tên gọi của nó, NVIC ñược thiết kế ñể hỗ trợ các ngắt lồng nhau (nested interrupts) và trên STM32 có 16 cấp ñộưu tiên ngắt. Cấu trúc ngắt NVIC ñược thiết kếñể hoàn toàn lập trình bằng ANSI C và không cần bất kỳ macro Assembler hoặc các chỉ dẫn (directives) non- ANSI.

Hình 2.11. Cấu trúc của NVIC trong bộ xử lí Cortex

Mặc dù NVIC là một ñơn vịñạt chuẩn bên trong lõi Cortex, ñể giữ cho số bóng bán dẫn ở mức tối thiểu, số ñường tín hiệu ngắt ñi vào NVIC có thể cấu hình khi vi ñiều khiển ñược thiết kế. NVIC có một ngắt không che mặt nạ (non- maskable interrupt) và hơn 240 ñường tín hiệu ngắt bên ngoài và có thể ñược kết nối với ngoại vi người dùng. Ngoài ra còn có thêm 15 nguồn ngắt bên trong lõi Cortex, ñược sử dụng ñể xử lý các ngắt nội ngoại lệ trong lõi Cortex. Bộ

NVIC của STM32 ñược tổng hợp với tối ña là 43 ñường ngắt che mặt nạ

(maskable interrupt lines).

Một phần của tài liệu Kiến trúc cơ bản của STM32 ARM Cortex m3 (Trang 30 - 32)

Tải bản đầy đủ (PDF)

(112 trang)