Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 13 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
13
Dung lượng
596,63 KB
Nội dung
Môn học: Hệ Thống Nhúng BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HCM KHOA ĐIỆN - ĐIỆN TỬ BỘ MÔN KỸ THUẬT MÁY TÍNH - VIỄN THÔNG - BÁO CÁO MÔN HỌC HỆ THỐNG NHÚNG ĐỀ TÀI: TÌMHIỂUKIT FRDM-KL46Z GVHD : Th.S Đậu Trọng Hiển TP HỒ CHÍ MINH – 11/2016 Môn học: Hệ Thống Nhúng Môn học: Hệ Thống Nhúng I Giới thiệu ARM Cortex M0: Đặc trưng dòng chip MCU 32-bit lõi ARM Cortex-M0: đa dạng chủng loại,cấu hình đáp ứng nhu cầu thị trường dòng chip 32-bit Vi điều khiển lõi ARMCortex-M0 có nhiều giao diện ngoại vi đáp ứng tính mạnh mẽ khả kết nối.Nó phát triển để cung cấp tảng chi phí thấp, đáp ứng nhu cầu thực thi MCU với việc giảm số lượng bóng bán dẫn lõi ARM Cortex dẫn tới tiêu thụ điện thấp giảm giá thành vi xử lý, đồng thời cung cấp hiệu tính toán cao Dòng vi điều khiển ARM Cortex-M thiết kế nhúng tối ưu hóa cho ứng dụng vi xử lý MCU Dòng ARM Cortex-M0 dòng vi điều khiển lõi ARM có kích thước nhỏ nhất, tiêu thụ điện thấp có kiến trúc xếp hợp lý tương thích với việc sử dụng tools nạp hãng khác để phát triển ứng dụng Hãng Nuvoton sản xuất chip MCU 32-bit lõi ARM Cortex-M0 với kích thước nhỏ, tiêu thụ điện thấp tích hợp đặc tính kỹ thuật đại như: • • • • • • • • • CPU Cortex-M0 cung cấp khả điều khiển ngắt ngoại lệ gọi vector điều khiển ngắt lồng (NVIC), liên kết chặt chẽ với nhân vi xử lý để cung cấp tính năng: hỗ trợ vector ngắt gián đoạn lồng nhau; tiết kiệm vi xử lý có khả phục hồi; giảm xác định độ trễ ngắt; thay đổi mức ưu tiên động Dung lượng nhớ Flash ROM lớn (tối đa 128KB Flash) Dải điện áp rộng từ 2.5V~5.5V Tích hợp sẵn nhiều ngoại vi như: UART, USB, ISP, I2C, I2S, PWM, LCD… Tích hợp thạch anh nội lên đến 48MHz, điều chỉnh độ xác nhờ phần tử thạch anh bên 32,768Khz Khả hỗ trợ nạp đa (ISP, ICP song song), nạp tools nạp hãng NuGang, Nu-Link tools nạp phổ biến hãng khác J-Link, U-Link máy nạp rom đa Elnec, Xeltek, Hilo, Có khả chống nhiễu tốt, thích hợp cho ứng dụng dân dụng công nghiệp Dải nhiệt độ hoạt động từ -40ºC ~ +85ºC Cung cấp ứng dụng mạnh mẽ khả kết nối với nhiều giao diện ngoại vi Môn học: Hệ Thống Nhúng Môn học: Hệ Thống Nhúng Hình vẽ mô tả mức độ tiêu thụ điện dòng chip MCU-32 bit này: Hình Tiêu thụ điện dòng chip MCU-32 bit Mặc dù cung cấp nhiều tính đại, tích hợp nhiều khả giao tiếp ngoại vi, có khả tích hợp khối phát nhạc (Voice Unit) chip, tiêu thụ điện thấp dòng chip có giá hợp lý cho người dùng lựa chọn để phát triển thay dòng chip khác Môn học: Hệ Thống Nhúng Môn học: Hệ Thống Nhúng II MTB (Micro Trace Buffer): Đúng tên gọi chức khối MTB nơi lưu trữ dấu vết nhớ đệm RAM, dấu vết cỏ nghĩa trình làm việc MCU ghi lại-quá trình debug thay đổi biến, giá trị,… câu lệnh Hình Minh họa MTB(Micro Trace Buffer) Môn học: Hệ Thống Nhúng Môn học: Hệ Thống Nhúng III Debug interface: MTB công cụ biên dịch ARM tìm đến để lấy thông tin lên cửa sổ debug cho người lập trình theo dõi, chức khối debug interface Hình ảnh minh họa debug interface: Hình Minh interface Hình Minh họa Debug interface Micro Trace Buffer Môn học: Hệ Thống Nhúng họa Debug Môn học: Hệ Thống Nhúng IV Interrupt Controller - Bộ điều khiển vector ngắt lồng (NVIC) Interupt Controller Cortex-M0 hỗ trợ đến 32 ngắt ngoại, ngắt ngoại lệ ngắt nội Cụ thể sau: Ngắt từ 1-15 ngắt nội lưu chip hệ thống người lập trình gọi sử dụng không phép chỉnh sửa hay thêm vào Còn 32 ngắt ngoại từ số 16 đến 47 lưu chip thiết bị nhớ thông qua I/O Hình Các lệnh ngắt ARM Cortex-M0 NVIC (Nested Vectored Interrupt Controller) thành phần tích hợp vi xử lý Cortex-M0 có khả xử lý ngắt linh hoạt nhanh chóng Trong cài đặt chuẩn, cung cấp NMI (Non-Maskable Interrupt) 32 ngắt vật lý đa dụng với mức ưu tiên pre-emption Nó cấu hình từ đến 240 ngắt vật lý với tối đa 256 mức độ ưu tiên Môn học: Hệ Thống Nhúng Môn học: Hệ Thống Nhúng Môn học: Hệ Thống Nhúng Môn học: Hệ Thống Nhúng Môn học: Hệ Thống Nhúng Môn học: Hệ Thống Nhúng Bộ vi xử lý Cortex-M0 sử dụng bảng vector tái định vị được, dùng để chứa địa hàm xử lý ngắt Khi nhận ngắt, xử lý lấy địa từ bảng vector thông qua bus chương trình Bảng vector ngắt đặt địa reset, di chyển đến vị trí khác cách lập trình ghi điều khiển Để giảm bớt số cổng tăng tính linh hoạt hệ thống, vi xử lý CortexM0 chuyển từ mô hình ngoại lệ ghi theo dõi vi xử lý ARM7 sang mô hình ngoại lệ dựa stack Khi có ngoại lệ xuất đếm chương trình (Program Counter), ghi trạng thái chương trình (Program Status Register), ghi liên kết (Link Register) ghi đa dụng từ R0-R3, R12 bị đẩy vào ngăn xếp Trong bus liệu đẩy ghi lên vùng ngăn xếp bus chương trình xác định vector ngoại lệ từ bảng vector nạp lệnh mã chương trình xử lí ngoại lệ Sau hoàn tất việc lưu trữ liệu ngăn xếp nạp lệnh, chương trình phục vụ ngắt xử lý lỗi thực thi, ghi phục hồi tự động để chương trình bị ngắt tiếp tục thực bình thường Vì thực hoạt động ngăn xếp phần cứng nên ta không cần viết đoạn hợp ngữ để thực thao tác ngăn xếp cho hàm xử lý ngắt truyền thống dựa ngôn ngữ C, giúp việc phát triển ứng dụng dễ dàng nhiều NVIC hỗ trợ ngắt lồng nhau, cho phép ngắt xử lý trước ngắt khác dựa mức độ ưu tiên Nó hỗ trợ cấu hình mức ưu tiên động cho ngắt Độ ưu tiên thay đổi phần mềm thời gian chạy (run time) Các ngắt xử lý bị khóa hàm xử lý ngắt hoàn thành, đó, độ ưu tiên ngắt thay đổi mà không cần lo đến chuyện trùng lặp Trong trường hợp ngắt nối đuôi nhau, hệ thống cũ lặp lại hai lần việc lưu trạng thái hoàn thành khôi phục, dẫn đến độ trễ cao Bộ vi xử lý Cortex-M0 đơn giản hóa việc chuyển đổi ngắt hoạt động chờ cách cài đặt công nghệ tail-chaining phần cứng NVIC Tailchaining đạt độ trễ thấp nhiều cách thay chuỗi thao tác pop push vốn 30 chu kỳ xung nhịp thao tác nạp lệnh đơn giản chu kỳ Trạng thái vi xử lý tự động lưu ngắt bắt đầu xử lý phục hồi kết thúc, chu kỳ so với việc thực thi phần mềm, nâng cao hiệu suất đáng kể hệ thống hoạt động 100MHz Môn học: Hệ Thống Nhúng Môn học: Hệ Thống Nhúng Hình Tail chaining NVIC NVIC cài đặt cách thức quản lý lượng vi xử lý CortexM0 tích hợp chế độ ngủ Chế độ Sleep Now gọi hai lệnh WFI (Wait For Interrupt) WFE (Wait For Event) đặt nhân vi xử lý vào trạng thái lượng thấp chờ ngoại lệ (exception) Chế độ Sleep On Exit đặt hệ thống vào chế độ lượng thấp thoát khỏi hàm xử lý ngắt có độ ưu tiên thấp Nhân vi xử lý trạng thái ngủ gặp ngoại lệ Vì thoát khỏi chế độ ngắt nên trạng thái hệ thống không phục hồi Bit SLEEPDEEP ghi điều khiển hệ thống thiết lập sử dụng để khoá cổng (clock gate) lõi vi xử lý thành phần hệ thống khác để tiết kiệm điện NVIC tích hợp đếm SysTick 24-bit đếm ngược (count-down timer) sử dụng để định thời tạo ngắt, cung cấp nhịp đập để hệ điều hành thời gian thực hoạt động tác vụ lập lịch • Đơn vị bảo vệ nhớ (MPU) MPU thành phần tùy chọn vi xử lý Cortex-M0, nâng cao độ tin cậy hệ thống nhúng cách bảo vệ liệu quan trọng hệ điều hành sử dụng khỏi ứng dụng khác, tách biệt độc lập tác vụ thực thi cách không cho phép truy cập vào liệu nhau, vô hiệu hoá quyền truy cập vào số vùng nhớ, cho phép vùng nhớ định nghĩa đọc (read only) phát truy cập nhớ phá vỡ hệ thống MPU cho phép ứng dụng chia nhỏ thành tiến trình Mỗi tiến trình có nhớ (code, liệu, ngăn xếp, heap) thiết bị riêng, có quyền truy cập vào nhớ thiết bị chia sẻ MPU có quy tắc (rule) truy cập người dùng đặc quyền bao gồm việc thực thi mã mức đặc quyền thích hợp quyền sở hữu nhớ thiết bị mã Môn học: Hệ Thống Nhúng 10 Môn học: Hệ Thống Nhúng đặc quyền mã người dùng MPU chia nhớ thành vùng riêng biệt thực việc bảo vệ cách ngăn truy cập trái phép MPU chia nhớ thành tối đa vùng vùng chia thành vùng Kích thước vùng 32 byte tăng gấp đôi dần tối đa gigabyte Các vùng đánh số thứ tự Có thể xác định đồ nhớ (memory map) mặc định để truy cập đặc quyền Việc truy cập đến địa nhớ không xác định vùng MPU không phép tạo ngoại lệ lỗi quản lí nhớ (Memory Management Fault Exception) Quy tắc bảo vệ vùng nhớ dựa vào loại tác vụ (đọc, viết thực thi) đặc quyền mã thực việc truy cập Mỗi vùng bao gồm bit quy định loại truy cập phép hành động phép bus MPU hỗ trợ vùng chồng lên (overlapping regions), tức có giao vùng địa Vì kích thước vùng bội số nên vùng chồng lên có vùng nằm hoàn toàn vùng Do đó, hoàn toàn có khả xảy trường hợp nhiều vùng nằm trọn vùng trường hợp chồng lồng Trong trường hợp địa tra cứu nằm vùng chồng kết trả vùng có số thứ tự cao • Gỡ lỗi (Debug) theo vết (Trace) Việc gỡ lỗi hệ thống dựa vi xử lý Cortex-M0 thực thông qua DAP (Debug Access Port), cổng SWD (Serial Wire Debug) sử dụng đường tín hiệu cổng SWJ-D (Serial Wire JTAG Debug) sử dụng giao thức JTAG SW Các SWJ-DP mặc định để chế độ JTAG reset chuyển giao thức với chuỗi điều khiển cụ thể cung cấp phần cứng gỡ lỗi bên Hành động debug kích hoạt kiện khác breakpoints, watchpoints, điều kiện lỗi yêu cầu debug từ bên Khi kiện debug xảy ra, vi xử lý Cortex-M0 vào chế độ tạm dừng (halt mode) chế độ theo dõi debug Trong chế độ tạm dừng, vi xử lí ngưng thực thi hoàn toàn chương trình Chế độ hỗ trợ chạy bước Lúc này, ngắt phát sinh bị trì hoãn đáp ứng, thực thi bước, bị che (masked) nên ngắt bên bị bỏ qua trình debug Trong chế độ theo dõi debug, hàm xử lý ngoại lệ thực thi để thực việc gỡ lỗi cho phép exception có độ ưu tiên cao Môn học: Hệ Thống Nhúng 11 Môn học: Hệ Thống Nhúng diễn Chế độ hỗ trợ chạy bước Bộ FPB (Patch Flash and Breakpoint ) có breakpoint chương trình breakpoint nạp liệu, chuyển lệnh/dữ liệu từ nhớ mã đến nhớ hệ thống Bộ FPB có sáu comparator để so sánh lệnh lấy từ nhớ mã Mỗi comparator kích hoạt để định vị lại mã chương trình đến vùng nhớ hệ thống, thực breakpoint phần cứng cách trả lệnh breakpoint cho vi xử lý Nó có hai comparator với nhiệm vụ tương tự cho liệu Bộ DWT (Data Watchpoint and Trace) có bốn comparator cấu hình thành watchpoint phần cứng Khi sử dụng cấu hình này, comparator lập trình để so sánh địa truy cập liệu đếm chương trình Các DWT comparator cấu hình để kích hoạt kiện lấy mẫu PC, kiện lấy mẫu địa liệu làm cho ETM (Embedded Trace Macrocell) phát gói kích hoạt dòng lệnh truy vết ETM thành phần tùy chọn để hỗ trợ việc theo vết lệnh để đảm bảo tái cấu trúc lại việc thực chương trình mà ảnh hưởng cách tối thiểu đến nhớ ETM cho phép truy vết theo thời gian thực việc thực thi lệnh truyền liệu cách nén thông tin truy vết từ nhân xử lý để giảm thiểu yêu cầu băng thông Hình Hệ thống theo vết Cortex-M0 Bộ vi xử lý Cortex-M0 thực việc theo vết liệu DWT ITM (Trace Instrumentation Macrocell) DWT cung cấp số liệu thống kê việc thực lệnh tạo kiện watchpoint để gọi debug ETM kiện hệ thống ITM công cụ truy vết ứng dụng hỗ trợ cách gỡ lỗi kiểu "printf" Môn học: Hệ Thống Nhúng 12 Môn học: Hệ Thống Nhúng cho hệ điều hành theo vết kiện ứng dụng Nó chấp nhận gói truy vết phần cứng từ DWT phần mềm theo dõi kích thích từ lõi vi xử lý phát thông tin chẩn đoán hệ thống định kỳ Bộ TPIU (Trace Port Interface Unit) chấp nhận thông tin truy vết từ ETM ITM, sau hòa trộn chúng, định dạng lại phát thông qua SWV (Serial Wire Viewer) đến phân tích truy vết bên SWV cho phép tạo profile cho kiện hệ thống cách đơn giản hiệu cách xuất dòng liệu thông qua pin Mã hóa Manchester UART định dạng hỗ trợ cho SWV • Ma trận bus giao diện liên kết Ma trận bus vi xử lý Cortex-M0 kết nối xử lý giao diện debug đến bus bên ngoài, ICode, DCode giao diện hệ thống dựa AMBA AHBLite 32 bit, bus cho ngoại vi (Private Peripheral Bus) dựa AMBA APB 32 bit Ma trận bus đảm nhiệm việc truy cập liệu không thẳng hàng vùng bit-banding Giao diện ICode 32 bit lấy lệnh từ vùng nhớ chương trình truy cập CM0Core Tất lần nạp lệnh có độ rộng từ (WORD), với số lượng lệnh lấy từ tùy thuộc vào loại mã thực vị trí nhớ Giao diện DCode 32 bit truy cập liệu từ vùng nhớ mã chương trình truy cập CM0Core DAP Giao diện hệ thống 32 bit lấy lệnh truy cập liệu vùng nhớ hệ thống giống bus DCode, truy cập CM0Core DAP PPB cho phép truy cập vào thành phần bên hệ thống Cortex-M0 Môn học: Hệ Thống Nhúng 13 ... trình mà ảnh hưởng cách tối thiểu đến nhớ ETM cho phép truy vết theo thời gian thực việc thực thi lệnh truyền liệu cách nén thông tin truy vết từ nhân xử lý để giảm thiểu yêu cầu băng thông Hình... Môn học: Hệ Thống Nhúng Môn học: Hệ Thống Nhúng III Debug interface: MTB công cụ biên dịch ARM tìm đến để lấy thông tin lên cửa sổ debug cho người lập trình theo dõi, chức khối debug interface