Đồ án tốt nghiệp điện tử viễn thông ứng dụng lập trình điều khiển động cơ bước sử dụng chip ARM cortex m3 STM32F103RC

20 847 1
Đồ án tốt nghiệp điện tử viễn thông ứng dụng lập trình điều khiển động cơ bước sử dụng chip ARM cortex m3 STM32F103RC

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

MỤC LỤC Lời Mở Đầu Chƣơng TỔNG QUAN VỀ CORTEX 1.1 Các phiên kiến trúc ARM 1.2 Bộ xử lí Cortex đơn vị xử lí trung tâm Cortex 1.3 Đơn vị xử lí trung tâm Cortex (Cortex CPU) 1.3.1 Kiến trúc đường ống (Pipline) 1.3.2 Mô hình lập trình (Programmer’s model) 1.3.2.1 Thanh ghi XPSR 1.3.3 Các chế độ hoạt động CPU 1.3.4 Tập lệnh Thumb-2 1.3.5 Bản đồ nhớ (Memory Map) 1.3.6 Truy cập nhớ không xếp hàng (Unaligned Memory Accesses) 11 1.3.7 Dải Bit (Bit Banding) 12 1.4 Bộ xử lí Cortex 13 1.4.1 Bus 14 1.4.2 Ma trận Bus 14 1.4.3 Timer hệ thống (System timer) 14 1.4.4 Xử lí ngắt (Interrupt Handling) 15 1.4.5 Bộ điều khiển vector ngắt lồng (Nested Vector Interrupt Controller) 15 1.4.5.1 Nhập thoát khỏi ngoại lệ NVIC (NVIC Operation Exception Entry And Exit) 16 1.4.5.2 Các chế độ xử lí ngắt cao cấp (Advanced Interrupt Handling Modes) 17 1.4.5.2.1 Quyền ưu tiên ngắt (Interrupt Pre-emption) 17 1.4.5.2.2 Kỹ thuật Tail Chaining NVIC 17 1.4.5.3 Cấu hình sử dụng NVIC 19 1.4.5.3.1 Bảng vector ngắt (Exception Vector Table) 19 1.5 Các chế độ lượng 24 1.5.1 Cách vào chế độ lượng thấp CPU Cortex 24 1.5.2 Khối hỗ trợ gỡ lỗi CoreSight 26 Chƣơng KIẾN TRÚC HỆ THỐNG CỦA ARM CORTEX 28 2.1 Cấu trúc nhớ 28 2.2 Tối đa hiệu 29 2.2.1 Vòng Khóa Pha (Phase Lock Loop) 30 2.2.2 Cấu hình cho bus 32 2.2.3 Flash Buffer 33 2.2.4 Direct Memory Access 34 Chƣơng NGOẠI VI 39 3.1 Ngoại vi đa dụng 39 3.1.1 Các cổng I/O đa dụng 39 3.1.1.1 Chức thay (Alternate Function) 41 3.1.1.2 Event Out 42 3.1.2 Ngắt ngoại (EXTI) 42 3.1.3 ADC 43 3.1.3.1 Thời gian chuyển đổi nhóm chuyển đổi 44 3.1.3.2 Analogue WatchDog 46 3.1.3.3 Cấu hình ADC 47 3.1.3.4 Dual mode 48 3.1.4.1 Cả hai khối ADC hoạt động chế độ Regular Injected 49 3.1.4.2 Cả hai khối hoạt động chế độ Regular Injected xen kẽ 49 3.1.4.3 Hoạt động xen kẽ nhanh chậm Regular 50 3.1.4.4 Chế độ kích hoạt thay 50 3.2.1 Khối Capture/Compare 52 3.2.2 Khối Capture 53 3.2.3 Chế độ PWM Input 54 3.2.4 Chế độ PWM 55 3.2.5 Chế độ One Pulse 56 3.3 Đồng hoá định thời 56 3.4 RTC ghi Backup 58 3.5 Kết nối với giao tiếp khác 59 3.5.1 SPI 59 3.5.2 I2C 60 3.5.3 USART 61 3.5.4 CAN 63 3.5.5 USB 65 Chƣơng LẬP TRÌNH ĐIỀU KHIỂN ĐỘNG BƢỚC SỬ DỤNG ARM-STM32F103 67 4.1 Giới thiệu Kit STM32 STM32F103 67 4.1.1 Mạch CPU 68 4.1.2 Mạch giao tiếp RS232 qua USART1 69 4.1.3 Mạch cấp nguồn USB 69 4.1.4 Mạch giao tiếp với LCD, nạp gỡ nỗi chương trình qua JTAG, mạch giao tiếp CAN/ PS2 70 4.1.5 Mạch thẻ nhớ SD/MMC qua giao tiếp SPI 70 4.2 Điều khiển động bước với Kit STM32 STM32F103 70 4.2.1.Thiết kế mạch Motor Driver: 70 4.2.2 Chương trình điều khiển Step Motor: 71 Kết Luận 74 Tài liệu tham khảo: 75 Lời Mở Đầu Ngày với phát triển ngành điện tử ứng dụng điện tử giúp sáng tạo người trở thành thực Các lĩnh vực sống áp dụng thiết bị điện tử dường nhìn đâu gia đình thiết bị điện tử Ngành điện tử ứng dụng điện tử tạo chỗ đứng khẳng định tầm quan trọng nhu cầu người Với ứng dụng cho hệ thống nhúng ngày trở nên phổ biến: từ ứng dụng đơn giản điều khiển chốt đèn giao thông định thời, đếm sản phẩm dây chuyền sản xuất, điều khiển tốc độ động điện chiều, thiết kế biển quảng cáo dùng Led ma trận, đồng hồ thời gian thực Đến ứng dụng phức tạp hệ thống điều khiển robot, kiểm soát nhà máy hệ thống kiểm soát máy lượng hạt nhân Các hệ thống tự động trước sử dụng nhiều công nghệ khác hệ thống tự động hoạt động nguyên lý khí nén, thủy lực, rơle điện, mạch điện tử số, thiết bị máy móc tự động cam chốt khí Các thiết bị, hệ thống chức xử lý mức độ tự động thấp so với hệ thống tự động đại xây dựng tảng hệ thống nhúng Trong nhiều năm trước, dòng vi điều khiển 8051 sinh viên dùng nhiều với tính đơn giản, dễ sử dụng; AVR sử dụng nhiều thi Robocon nhờ tốc độ sử lý cao, ổn định; PIC với ưu tốc độ cao, chi phí thấp nghiên cứu, sử dụng nhiều, đặc biệt thi lập trình tay nghề khu vực giới Nhưng vài năm trở lại đây, dòng vi điều khiển mới, ngày nắm vị trí quan trọng lĩnh vực đòi hỏi tốc độ xử lý cao điện tử viễn thông, sản xuất dòng diện thoại di động smartphone, giám sát, an ninh… Đó họ vi điều khiển ARM Với nhiều hệ đời, với nhiều tính , công dụng khác Với nhiều tính vượt trội ARM xu lựa chọn dòng vi điều khiển Việt Nam nên đề tài nghiên cứu khoa học này, giúp đỡ Thầy Nguyễn Huy Dũng, em thực đề tài nghiên cứu Ứng dụng lập trình điều khiển động bước sử dụng chip ARM Cortex M3 STM32F103RC Chƣơng TỔNG QUAN VỀ CORTEX Bộ xử lý Cortex hệ lõi nhúng từ ARM Cortex thừa kế ưu điểm từ xử lí ARM trước đó, lõi xử lý hoàn chỉnh, bao gồm xử lí trung tâm Cortex hệ thống thiết bị ngoại vi xung quanh, Cortex cung cấp phần xử lí trung tâm hệ thống nhúng Để đáp ứng yêu cầu khắt khe đa dạng hệ thống nhúng, xử lý Cortex gồm nhánh, biểu ký tự sau tên Cortex sau:  Cortex-A : vi xử lý dành cho hệ điều hành ứng dụng người dùng phức tạp Hỗ trợ tập lệnh ARM, Thumb Thumb2  Cortex-R : xử lí dành cho hệ thống đòi hỏi khắc khe tính thời gian thực Hỗ trợ tập lệnh ARM, Thumb, Thumb-2  Cortex-M : xử lí dành cho dòng vi điều khiển, tối ưu hóa cho ứng dụng nhạy cảm chi phí Chỉ hỗ trợ tập lệnh Thumb-2 Con số nằm cuối tên Cortex cho biết mức độ hiệu suất tương đối, với thấp cao Hiện dòng Cortex-M mức hiệu suất cao mức STM32 dựa xử lý Cortex-M3 1.1 Các phiên kiến trúc ARM Hinh 1.1.Các phiên kiến trúc lõi ARM Tính đến thời điểm phiên kiến trúc lõi ARM ARMv7 (Trước ARMv4, ARMv5, ARMv6) Bộ xử lý Cortex-M3 dựa kiến trúc ARMv7 M khả thực tập lệnh Thumb-2 1.2 Bộ xử lí Cortex đơn vị xử lí trung tâm Cortex Hình 1.2 Kiến trúc vi xử lí ARM Cortex-M3 Thuật ngữ xử lí Cortex (Cortex processor) đơn vị xử lí trung tâm Cortex (Cortex CPU) sử dụng để phân biệt nhúng lõi Cortex hoàn chỉnh xử lí trung tâm RISC nội (internal RISC CPU) 1.3 Đơn vị xử lí trung tâm Cortex (Cortex CPU) Trung tâm xử lý Cortex CPU RISC 32-bit CPU phiên đơn giản hóa từ mô hình lập trình (programmer’s model) ARM7/9 , tập lệnh phong phú với hỗ trợ tốt cho phép toán số nguyên, khả thao tác với bit tốt khả đáp ứng thời gian thực tốt 1.3.1 Kiến trúc đƣờng ống (Pipline) CPU Cortex thực thi hầu hết lệnh chu kì đơn Giống CPU ARM7 ARM9, việc thực thi đạt với đường ống ba tầng Tuy nhiên Cortex-M3 khả dự đoán việc rẽ nhánh để giảm thiểu số lần làm rỗng (flush) đường ống Hinh 1.3 Kiến trúc đường ống ARM Cortex-M3 1.3.2 Mô hình lập trình (Programmer’s model) CPU Cortex xử lý dựa kiến trúc RISC, hỗ trợ kiến trúc nạp lưu trữ (load and store architecture) Để thực lệnh xử lý liệu, toán hạng phải nạp vào tập ghi trung tâm, phép tính liệu phải thực ghi kết sau lưu lại nhớ Hinh 1.4 Kiến trúc load store ARM Cortex-M3 Tập ghi bao gồm mười sáu ghi 32-bit  Các ghi R0-R12 ghi đơn giản, dùng để chứa biến chương trình  Thanh ghi R13 dùng trỏ ngăn xếp (stack pointer) Trong CPU Cortex hai ngăn xếp gọi main stack process stack  Thanh ghi R14 gọi ghi liên kết (link register) Thanh ghi sử dụng để lưu trữ địa trở gọi thủ tục (call a procedure) thực Điều cho phép CPU Cortex thực nhanh việc nhập thoát khỏi thủ tục (fast entry and exit to a procedure)  Thanh ghi R15là bộđếm chương trình (Program Counter) Hinh 1.5 Mô hình lập trình ARM Cortex-M3 1.3.2.1 Thanh ghi XPSR Ngoài tập ghi trung tâm ghi riêng biệt gọi ghi trạng thái chương trình (Program Status Register) XPSR chứa số vùng chức quan trọng ảnh hưởng đến việc thực thi CPU Cortex Hinh 1.6 Thanh ghi trạng thái chương trình CPU Cortex  Năm bit đầu cờđiều kiện gán biệt hiệu (aliased) ghi trạng thái chương trình ứng dụng Bốn cờ N, Z, C, V (Negative, Zero, Carry Overflow) thiết lập xóa tùy thuộc vào kết lệnh xử lýdữ liệu Bit Q sử dụng lệnh toán học DPS để biến đạt giá trị tối đa giá trị tối thiểu  Giống tập lệnh ARM32-bit, lệnh Thumb-2 thực mã điều kiện lệnh phù hợp với trạng thái cờ ghi trạng thái chương trình ứngdụng (Application Program Status Register) Nếu mã điều kiện lệnh không phù hợp, lệnh ngang qua đường ống lệnh NOP (lệnh không làm cả) Điều đảm bảo lệnh qua đường ống cách trơn tru giảm thiểu làm rỗng đường ống 1.3.3 Các chế độ hoạt động CPU Bộ xử lý Cortex hai chế độ hoạt động: chế độ Thread chế độ Handler CPU chạy chế độ Thread thực thi chế độ ngắt xảy chuyển sang chế độ Handler thực thi ngắt đặc biệt (exceptions) Ngoài ra, CPU Cortex thực thi mã chế độ đặc quyền không đặc quyền (privileged or nonprivileged mode) Trong chế độ đặc quyền, CPU quyền truy cập tất lệnh Trong chế độ không co đặc quyền, số lệnh bị cấm truy cập (như lệnh MRS MSR cho phép truy cập vào xPSR trường nó) Ngoài ra, việc cập ghi điều khiển hệ thống vi xử lý Cortex bị cấm Cách sử dụng ngăn xếp (stack) cấu hình Ngăn xếp (main stack-R13) sử dụng hai chế độ Thread Handler Chế độ Handler cấu hình để sử dụng ngăn xếp trình (process stack-R13 banked register) Hình 1.7.Mô hình hoạt động chế độ Thread Handler Sau reset, xử lý Cortex chạy cấu hình phẳng (flat configuration) Cả hai chế độ Thread Handler thực thi chế độ đặc quyền (privileged mode), đó, giới hạn quyền truy cập vào tài nguyên xử lý Cả hai chế độ Thread Handler sử dụng ngăn xếp 1.3.4 Tập lệnh Thumb-2 Các CPU ARM7 ARM9 thực thi hai tập lệnh: ARM 32-bit Thumb 16-bit Điều cho phép người phát triển để tối ưu hoá chương trình cách lựa chọn tập lệnh sử dụng cho thủ tục khác nhau: lệnh 32-bit để tăng tốc độ xử lí lệnh 16-bit để nén mã chương trình CPU Cortex thiết kế để thực thi tập lệnh Thumb-2, pha trộn lệnh 16-bit 32-bit Tập lệnh thumb-2 cải tiến 26% mật độ mã so với tập lệnh ARM 32-bit 25% hiệu suất so với tập lệnh Thumb 16-bit Tập lệnh Thumb2 số lệnh nhân cải tiến, thực chu kì đơn khả thực phép chia phần cứng từ 27 chu kỳ Hình 1.8.Đồ thị biểu diễn hiệu xử lý Cortex Điểm chuẩn xử lý Cortex (Cortex processor benchmark) cho mức độ thực 1,25 DMIPS/MHz, cao so với ARM7 (0.95 DMIPS/MHz với tập lệnh ARM 0.74 DMIPS/MHz với tập lệnh Thumb) ARM9 1.3.5 Bản đồ nhớ (Memory Map) Bộ xử lý Cortex-M3 lõi vi điều khiển tiêu chuẩn hóa, đồ nhớ xác định Mặc dù nhiều bus nội, đồ nhớ không gian địa Gbyte tuyến tính Bản đồ nhớ chung cho tất thiết bị dựa lõi Cortex Hình 1.9.Bản đồ nhớ tuyến tính 4Gbyte xử lý Cortex-M3 Một Gbyte nhớ chia cho vùng mã (code region) vùng SRAM (SRAM region) Không gian mã tối ưu hóa để thực thi từ bus I-Code Tương tự, SRAM nối đến bus D-Code Mặc dù mã nạp thực thi từ SRAM, lệnh lấy cách sử dụng bus hệ thống, phải chịu thêm trạng thái chờ (an extra wait state) Tức mã chạy SRAM chậm so với từ nhớ Flash chip (on-chip) nằm vùng mã Vùng 0,5 Gbyte nhớ vùng ngoại vi chip, tất thiết bị ngoại vi cung cấp nhà sản xuất vi điều khiển đặt vùng Vùng Mbyte gồm SRAM (màu vàng nhạt) vùng ngoại vi (màu hồng nhạt) định địa theo bit, sử dụng kỹ thuật gọi dải bit (bit banding) Từ tất SRAM thiết bị ngoại vi người dùng (user peripherals) STM32 đặt vùng này, tất vị trí nhớ vùng STM32 10 thao tác theo word-wide bitwise Không gian địa Gbyte phân cho nhớ ngoài- ánh xạ SRAM thiết bị ngoại vi (external RAM external Device) Vùng 0,5 Gbyte cuối phân cho thiết bị ngoại vi bên xử lí Cortex khu vực dành cho cải tiến tương lai nhà sản xuất chip cho xử lý Cortex Tất ghi xử lý Cortex đặt vị trí cố định cho tất vi điều khiển dựa lõi Cortex Điều cho phép mã chương trình dễ dàng chuyển biến thể STM32 khác vi điều khiển dựa lõi Cortex nhà sản xuất chip khác 1.3.6 Truy cập nhớ không xếp hàng (Unaligned Memory Accesses) Tập lệnh ARM7 ARM9 khả truy cập biến dấu không dấu kích thước byte, half word (thường 2byte) word (thường 4byte) Điều cho phép CPU hỗ trợ biến số nguyên mà không cần đến thư viện phần mềm hỗ trợ, thường yêu cầu vi điều khiển 16-bit Tuy nhiên, phiên CPU ARM trước gặp bất lợi chỗ, truy cập liệu kích thước word half word Điều hạn chế khả trình liên kết trình biên dịch (compiler linker) việc đóng gói liệu vào SRAM số SRAM bị lãng phí (Việc lãng phí lên đến 25% tùy thuộc vào kết hợp biến sử dụng) Bộ xử lí Cortex-M3 truy cập nhớ không xếp hàng, việc đảm bảo SRAM sử dụng cách hiệu Hình 1.10.Khả truy cập nhớ không xếp hàng xử lý Cortex-M3 so với phiên CPU ARM trước 11 CPU Cortex chế độ định địa cho word, half word byte, truy cập nhớ không xếp hàng (unaligned memory) Điều cho phép trình liên kết trình biên dịch tự xếp liệu chương trình nhớ Việc bổ sung hỗ trợ tính dải bit (bit banding) vào CPU Cortex cho phép cờ chương trình đóng gói vào biến word half-word sử dụng byte cho cờ 1.3.7 Dải Bit (Bit Banding) Các phiên CPU ARM7 ARM9 trước thực thao tác bit nhớ SRAM vùng nhớ thiết bị ngoại vi cách dùng phép toán AND OR Điều đòi hỏi thao tác đọc sửa đổi ghi (READ MODIFY WRITE operation), thao tác tốn nhiều chu để thiết lập xoá bit riêng biệt cần nhiều không gian mã cho bit Hình 1.11.Thao tác đọc sửa đổi ghi ARM7 ARM9 kỹ thuật dải bit xử lý Cortex-M3 Kỹ thuật dải Bit cho phép xử lí Cortex-M3 thao tác bit giữ số lượng bóng bán dẫn mức tối thiểu Để khắc phục hạn chế thao tác bit CPU ARM7 ARM9, đưa lệnh chuyên dụng để thiết lập xoá bit, xử lý Boolean đầy đủ, điều làm tăng kích thước phức tạp CPU Cortex Thay vào đó, kỹ thuật gọi dải bit cho phép thao tác bit trực tiếp phần không gian nhớ thiết bị ngoại vi SRAM, mà không cần lệnh đặc biệt Các khu vực định địa bit 12 đồ nhớ Cortex bao gồm vùng bit band (lên đến 1Mbyte nhớ thực ghi ngoại vi) vùng biệt hiệu bit band (bit band Alias region) chiếm đến 32Mbyte đồ nhớ Dải Bit hoạt động cách ánh xạ bit vùng bit band tới địa word vùng Alias Vì vậy, cách thiết lập xoá địa word đặt biệt hiệu (aliased word address) thiết lập xoá bit nhớ thực Hình 1.12.Dải bit vùng nhớ SRAM ngoại vi Dải Bit hỗ trợ 1Mb khu vực SRAM ngoại vi Nó bao gồm tất tài nguyên STM32 Kỹ thuật Bit Banding cho phép thực thao tác bit riêng lẻ mà không cần lệnh đặc biệt nào, điều giữ cho kích thước tổng thể lõi Cortex nhỏ Trong thực tế, cần phải tính toán địa word nằm vùng Bit Band Alias cho vị trí nhớ định không gian nhớ thiết bị ngoại vi SRAM Công thức để tính toán alias address sau:  Địa khu vực Bit Band Alias = Bit band alias base address + bit word offset  bit word offset = Byte offset from bit band base x 0x20 + bit number x 1.4 Bộ xử lí Cortex Bộ xử lí Cortex tạo thành từ CPU Cortex kết hợp với nhiều thiết bị ngoại vi Bus, system timer… 13 1.4.1 Bus Bộ vi xử lý Cortex-M3 thiết kế dựa kiến trúc Harvard với bus mã bus liệu riêng biệt Chúng gọi bus Icode Dcode Cả hai bus truy cập mã liệu phạm vi nhớ từ 0x00000000-0x1FFFFFFF Một bus hệ thống bổ sung sử dụng để truy cập vào không gian điều khiển hệ thống Cortex phạm vi 0x20000000 0xDFFFFFFF 0xE0100000 - 0xFFFFFFFF Hệ thống gỡ lỗi chip Cortex thêm cấu trúc bus gọi bus ngoại vi riêng 1.4.2 Ma trận Bus Bus hệ thống bus liệu kết nối với vi điều khiển bên thông qua tập bus tốc độ cao xếp ma trận bus Nó cho phép số đường dẫn song song bus Cortex bus chủ (bus master) khác bên DMA đến nguồn tài nguyên chip SRAM thiết bị ngoại vi Nếu hai bus chủ (ví dụ CPU Cortex kênh DMA) cố gắng truy cập vào thiết bị ngoại vi, phân xử nội giải xung đột cho truy cập bus vào ngoại vi mức ưu tiên cao Tuy nhiên, STM32 khối DMA thiết kế để làm việc hòa hợp với CPU Cortex 1.4.3 Timer hệ thống (System timer) Lõi Cortex đếm xuống 24-bit, với tính tự động nạp lại (auto reload) giá trị đếm tạo kiện ngắt đếm xuống zero Nó tạo với dụng ý cung cấp đếm thời gian chuẩn cho tất vi điều khiển dựa Cortex Đồng hồ SysTick sử dụng để cung cấp nhịp đập hệ thống cho RTOS, để tạo ngắt tính chu kì để phục vụ cho tác vụ lập lịch Thanh ghi trạng thái điều khiển SysTick đơn vị không gian điều khiển hệ thống Cortex-M3 cho phép chọn nguồn xung clock cho SysTick Bằng cách thiết lập bit CLKSOURCE, đồng hồ SysTick chạy tần số tần số hoạt động CPU Khi bit xóa, SysTick chạy tần số 1/8 CPU 14 Hình 1.13 Các ghi trạng thái điều khiển SysTick Đồng hồ SysTick ba ghi Giá trị giá trị tải (current value reload value) nên khởi tạo với chu kì đếm Thanh ghi trạng thái điều khiển bit cho phép (ENABLE bit) để bắt đầu chạy đếm thời gian bit TICKINT cho phép tín hiệu ngắt 1.4.4 Xử lí ngắt (Interrupt Handling) Một cải tiến quan trọng lõi Cortex so với CPU ARM trước cấu trúc ngắt xử lý ngắt ngoại lệ (exception handling) 1.4.5 Bộ điều khiển vector ngắt lồng (Nested Vector Interrupt Controller) NVIC (Nested Vector Interrupt Controller) đơn vị tiêu chuẩn bên lõi Cortex Điều nghĩa tất vi điều khiển dựa lõi Cortex cấu trúc ngắt, nhà sản xuất chip ST, Atmel, Luminary NXP Hình 1.14 Cấu trúc NVIC xử lí Cortex 15 NVIC thiết kế để độ trễ đáp ứng ngắt thấp Đây đặc điểm thân NVIC tập lệnh Thumb-2, cho phép thực thi lệnh nhiều chu kì (multi-cycle instructions) lệnh tải lưu trữ nhiều liệu ( load and store multiple instruction) ngắt thực thi Do độ trễ đáp ứng ngắt xác định, với nhiều đặc điểm xử lí ngắt tiên tiến, hỗ trợ tốt cho ứng dụng thời gian thực Như tên gọi nó,NVIC thiết kế để hỗ trợ ngắt lồng (nested interrupts) trênSTM32 có16 cấp độ ưu tiên ngắt Mặc dù NVIC đơn vị đạt chuẩn bên 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 vào NVIC cấu hình vi điều khiển thiết kế NVIC ngắt không che mặt nạ (non-maskable interrupt) 240 đường tín hiệu ngắt bên kết nối với ngoại vi người dùng Ngoài thêm 15 nguồn ngắt bên lõi Cortex, sử dụng để xử lý ngắt nội ngoại lệ lõi Cortex Bộ NVIC STM32 tổng hợp với tối đa 43 đường ngắt che mặt nạ (maskable interrupt lines) 1.4.5.1 Nhập thoát khỏi ngoại lệ NVIC (NVIC Operation Exception Entry And Exit) Khi ngắt sinh thiết bị ngoại vi, NVIC kích khởi CPU Cortex phục vụ ngắt Khi CPU Cortex vào chế độ ngắt nó, đẩy tập ghi vào vùng ngăn xếp (stack) Thao tác thực vi chương trình (microcode), không cần viết thêm lệnh mã ứng dụng Trong khung ngăn xếp (stack frame) lưu trữ, địa bắt đầu trình dịch vụ ngắt lấy bus Icode (instruction bus) Vì vậy, thời gian từ lúc ngắt sinh lệnh trình dịch vụ ngắt thực thi 12 chu kỳ 16 Hình 1.15 Stack frame chế độ ngắt Khi kết thúc trình phục vụ ngắt, khung ngăn xếp khôi phục tự động vi chương trình (microcode), song song với thao tác địa trở lấy về, để chương trình tiếp tục thực sau 12 chu kỳ Hình 1.16 Đáp ứng thời gian ngắt xảy Cortex-M3 1.4.5.2 Các chế độ xử lí ngắt cao cấp (Advanced Interrupt Handling Modes) Với khả xử lý ngắt đơn nhanh, NVIC thiết kế để xử lý hiệu nhiều ngắt ứng dụng đòi hỏi khắc khe tính thời gian thực NVIC số phương pháp xử lý thông minh nhiều nguồn ngắt, cho độ trễ ngắt tối thiểu để đảm bảo ngắt mức ưu tiên cao phục vụ 1.4.5.2.1 Quyền ưu tiên ngắt (Interrupt Pre-emption) NVIC thiết kế phép ngắt mức ưu tiên cao dành quyền ưu (pre-empt) so với ngắt mức ưu tiên thấp chạy 1.4.5.2.2 Kỹ thuật Tail Chaining NVIC Nếu ngắt mức ưu tiên cao chạy đồng thời ngắt mức 17 ... nghiên cứu Ứng dụng lập trình điều khiển động bước sử dụng chip ARM Cortex M3 STM32F103RC Chƣơng TỔNG QUAN VỀ CORTEX Bộ xử lý Cortex hệ lõi nhúng từ ARM Cortex thừa kế ưu điểm từ xử lí ARM trước... lĩnh vực sống áp dụng thiết bị điện tử dường nhìn đâu gia đình có thiết bị điện tử Ngành điện tử ứng dụng điện tử tạo chỗ ứng khẳng định tầm quan trọng nhu cầu người Với ứng dụng cho hệ thống... 63 3.5.5 USB 65 Chƣơng LẬP TRÌNH ĐIỀU KHIỂN ĐỘNG CƠ BƢỚC SỬ DỤNG ARM- STM32F103 67 4.1 Giới thiệu Kit STM32 STM32F103 67 4.1.1 Mạch CPU 68

Ngày đăng: 06/09/2017, 09:06

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan