Bộ xử lý Cortex
Bộ xử lí Cortex được tạo thành từ CPU Cortex kết hợp với nhiều thiết bị ngoại vi như Bus, system timer…
a. Bus
Bộ vi xử lý Cortex-M3 được thiết kế dựa trên kiến trúc Harvard với bus mã và bus dữ liệu riêng biệt . Chúng được gọi là các bus Icode và Dcode. Cả hai bus đều có thể truy cập mã và dữ liệu trong phạm vi bộ nhớ từ 0x00000000 – 0x1FFFFFFF. Một bus hệ thống bổ sung được sử dụng để truy cập vào không gian điều khiển hệ thống Cortex trong phạm vi 0x20000000 – 0xDFFFFFFF và 0xE0100000 – xFFFFFFFF. Hệ thống gỡ lỗi trên chip của Cortex có thêm một cấu trúc bus được gọi là bus ngoại vi riêng.
b. Ma trận Bus
Bus hệ thống và bus dữ liệu được kết nối với vi điều khiển bên ngoài thông qua một tập các bus tốc độ cao được sắp xếp như một ma trận bus. Nó cho phép một số đường dẫn song song giữa bus Cortex và các bus chủ (bus master) khác bên ngoài như DMA đến các nguồn tài nguyên trên chip như SRAM và các thiết bị ngoại vi. Nếu hai bus chủ (ví dụ CPU Cortex và một kênh DMA) cố gắng truy cập vào cùng một thiết bị ngoại vi, một bộ phân xử nội sẽ giải quyết xung đột và cho truy cập bus vào ngoại vi có mức ưu tiên cao nhất.
c. Timer hệ thống (System timer)
Lõi Cortex có một bộ đếm xuống 24-bit, với tính năng tự động nạp lại (auto reload) giá trị bộ đếm và tạo sự kiện ngắt khi đếm xuống zero. Nó được tạo ra với dụng ý cung cấp một bộ đếm thời gian chuẩn cho tất cả vi điều khiển dựa trên Cortex. Đồng hồ SysTick được sử dụng để cung cấp một nhịp đập hệ thống cho một RTOS, hoặc để tạo ra một ngắt có tính chu kì để phục vụ cho các tác vụ được lập lịch. Thanh ghi trạng thái và điều khiển của SysTick trong đơn vị không gian điều khiển hệ thống Cortex-M3 cho phép chọn các nguồn xung clock cho SysTick.
d. Xử lí ngắt (Interrupt Handling)
Một trong những cải tiến quan trọng của lõi Cortex so với các CPU ARM trước đó là cấu trúc ngắt của nó và xử lý các ngắt ngoại lệ (exception handl ing). CPU ARM7 và ARM9 có hai đường ngắt: ngắt nhanh (fast interrupt-FIQ) và ngắt đa dụng (general purpose interrupt hay còn gọi là interrupt request-RIQ). Hai đường tín hiệu ngắt này phục vụ tất cả các nguồn ngắt bên trong một vi điều khiển, trong khi kỹ thuật được sử dụng là như nhau, nhưng việc thực hiện lại khác biệt giữa các nhà sản xuất chip.
e. Bộ điều khiển vector ngắt lồng nhau (Nested Vector Interrupt 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ẽ có cùng một cấu trúc ngắt, bất kể nhà sản xuất chip là ST, Atmel, Luminary 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.
Hình 1: Cấu trúc của NVIC trong bộ xử lí Cortex
Còn tiếp...
BÀI VIẾT LIÊN QUAN:
Bài báo đăng Tạp chí ngành cơ khí Việt Nam
The paper presents the researched results on design and manufacture of ...
Sửa lỗi USB hoặc thẻ nhớ SD không thể format ở Windows 10
Nếu bạn đang gặp phải vấn đề với việc format USB hay thẻ nhớ SD thì bài viết ...