Tìm hiểu vi điều khiển họ ARM

48 960 1
Tìm hiểu vi điều khiển họ ARM

Đ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

TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI KHOA VẬT LÝ PHẠM THỊ HẢI ANH TÌM HIỂU VI ĐIỀU KHIỂN HỌ ARM KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HÀ NỘI, 2013 TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI KHOA VẬT LÝ PHẠM THỊ HẢI ANH TÌM HIỂU VI ĐIỀU KHIỂN HỌ ARM Chuyên ngành: Sư phạm kỹ thuật KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC Người hướng dẫn khoa học GV PHÙNG CÔNG PHI KHANH HÀ NỘI, 2013 LỜI CẢM ƠN Trước tiên em xin bày tỏ lòng biết ơn chân thành sâu sắc tới ThS Phùng Công Phi Khanh, người hướng dẫn tận tình thường xuyên động viên chúng em trình hoàn thiện đề tài Người dành cho em ưu thời gian học tập, nghiên cứu trình hoàn thành khóa luận tốt nghiệp Em xin cảm ơn thầy giáo, cô giáo khoa Vật lý trường Đại học sư phạm Hà Nội tạo điều kiện đóng góp ý kiến để chúng em hoàn thành tốt khóa luận tốt nghiệp Cuối em xin bày tỏ lòng biết ơn đến gia đình người thân cổ vũ, động viên, giúp đỡ em hoàn thành khóa luận Mặc dù có nhiều cố gắng kiến thức kinh nghiệm thực tế thân hạn chế nên đề tài không tránh khỏi thiếu sót Vì mong bảo đóng góp ý kiến thầy giáo, cô giáo để đề tài hoàn thiện Em xin trân trọng cảm ơn! Hà Nội, tháng năm 2013 Sinh viên thực Phạm Thị Hải Anh LỜI CAM ĐOAN Tôi xin cam đoan nội dung đề tài: “Tìm hiểu vi điều khiển họ ARM” kết cá nhân hướng dẫn ThS GVC Phùng Công Phi Khanh trình học tập nghiên cứu trường ĐHSP Hà Nội Trong trình thực khóa luận này, có tham khảo số tài liệu ghi phần tài liệu tham khảo Tôi xin cam đoan công trình riêng không trùng lặp với tác giả khác Hà Nội, tháng năm 2013 Sinh viên thực Phạm Thị Hải Anh MỤC LỤC Trang MỞ ĐẦU - NỘI DUNG - 10 Chương Cấu trúc vi điều khiển ARM 10 1.2 Cấu trúc ARM 12 1.3 Mô hình kiến trúc - 12 1.4 Mô hình thiết kế ARM - 16 1.4.1 Lõi xử lý - 16 1.4.2 Các ghi ARM - 18 1.5 Cấu trúc load-store - 19 1.6 Cấu trúc tập lệnh ARM - 19 1.6.1 Thực thi lệnh có điều kiện 19 1.6.2 Phương thức định địa - 20 1.6.3 Ngăn xếp 20 1.6.4 Tập lệnh ARM 20 Chương Giao tiếp với vi điều khiển ARM -2.1 Mô hình giao tiếp vi điều khiển ARM 25 2.2 Các giao tiếp vi điều khiển ARM - 26 2.2.1 Giao tiếp với nhớ 26 2.2.2 Giao tiếp với điều khiển tạm dừng Reset - 31 2.2.3 Giao tiếp với khối GIPO - 33 2.2.4 Giao tiếp với khối truyền/thu không đồng đa (UART) 35 Chương Đặc điểm dòng lõi xử lý ARM 39 3.1 Phân loại tính dòng lõi xử lý ARM 39 3.1.1 Phân loại dòng lõi xử lý ARM 39 3.1.2 Tính dòng lõi xử lý ARM - 40 3.2 Đặc điểm dòng lõi xử lý ARM - 42 3.2.1 Đặc điểm kiến trúc dòng lõi xử lý ARM v4T - 42 3.2.2 Đặc điểm kiến trúc dòng lõi xử lý ARM v5 - 43 3.2.3 Đặc điểm kiến trúc dòng lõi xử lý ARM v6 - 44 3.2.4 Kiến trúc dòng lõi xử lý ARM v7 - 46 KẾT LUẬN 47 TÀI LIỆU THAM KHẢO 48 KÍ HIỆU CÁC CHỮ VIẾT TẮT AHB Advanced High-performance Bus truyền liệu hiệu suất Bus cao Dynamic Random Access Bộ nhớ truy cập ngẫu nhiên Memory động Erasable Programmable Bộ nhớ để đọc có khả Read- Only Memory lập trình lại FIFO First In First Out Vào trước trước FIQ Fast Interrupt Request Yêu cầu ngắt nhanh GIPO General Purpose Đầu vào đa mục DRAM EPROM đích IEM Intelligent Energy Bộ quản lý mức tiêu thụ lượng thông minh IRQ Interrupt Request Yêu cầu ngắt MAC Multiply-Accumulate Unit Bộ tích lũy nhân RAM Random Access Memory Bộ nhớ truy nhập ngẫu nhiên ROM Read Only Memory Bộ nhớ đọc Rx Receive Nhận liệu SRAM Static Random Access Bộ nhớ truy cập ngẫu nhiên Memory tĩnh Synchronous Static Random Bộ nhớ truy cập ngẫu nhiên Access Memory đồng tĩnh Universal Asynchronous Bộ thu/phát không đồng Receiver/Transmitter đa SSRAM UART MỞ ĐẦU Lý chọn đề tài Ngày nay, kĩ thuật điện tử phát triển vũ bão nói gần thay đổi hàng ngày Sự đời vi mạch điện tử với giá thành giảm nhanh, khả lập trình ngày cao mang lại thay đổi sâu sắc ngành kĩ thuật điện tử Nó đảm nhiệm chức điều khiển tự động hóa trình sản xuất, nhiều công nghệ xuất làm tăng suất chất lượng sản phẩm Máy móc thay người nhiều công việc khó khăn dần thay người nhiều hoạt động lao động sản xuất Xuất từ năm đầu thập niên 1960, hệ thống nhúng phát triển mạnh mẽ lĩnh vực kĩ thuật điện tử công nghệ thông tin, với ứng dụng rộng rãi công nghiệp đời sống Hệ thống nhúng đời hỏi phải có cấu trúc mạnh, đáp ứng thời gian thực tốt, dung lượng nhớ lớn, khả tính toán nhanh, khả tiêu thụ lượng thấp, tính ổn định cao tính hợp sẵn nhiều ngoại vi Vi điều khiển ARM đánh giá dòng vi điều khiển mạnh, đáp ứng yêu cầu hệ thống nhúng ngày nay, sử dụng rộng rãi giới nghiên cứu phát triển Việt Nam Vì lí mà em định chọn đề tài “Tìm hiểu vi điều khiển họ ARM” Mục đích nghiên cứu Tìm hiểu vi điều khiển ARM Nâng cao kiến thức kĩ thuật vi điều khiển Nhiệm vụ nghiên cứu Tổng quan vi điều khiển họ ARM Giao tiếp với ARM Đặc điểm dòng lõi xử lý ARM Đối tượng nghiên cứu Vi điều khiển họ ARM Phạm vi nghiên cứu Nghiên cứu tổng quan vi điều khiển họ ARM Tìm hiểu số giao tiếp với vi điều khiển ARM Phương pháp nghiên cứu Nghiên cứu lý thuyết Cấu trúc khóa luận Phần 1: Mở đầu Phần 2: Nội dung cấu trúc luận văn làm chương: Chương 1: Cấu trúc vi điều khiển ARM Đôi nét lịch sử hình thành phát triển vi điều khiển ARM Cấu trúc vi điều khiển ARM Chương : Giao tiếp với vi điều khiển ARM Mô hình giao tiếp vi điều khiển ARM Các giao tiếp vi điều khiển ARM Chương 3: Đặc điểm dòng lõi xử lý ARM Phân loại tính dòng lõi xử lý ARM Đặc điểm dòng lõi xử lý ARM NỘI DUNG CHƯƠNG CẤU TRÚC VI ĐIỀU KHIỂN ARM 1.1 Đôi nét lịch sử hình thành phát triển vi điều khiển ARM Việc thiết kế ARM năm 1983 dự án phát triển công ty máy tính Acorn Nhóm thiết kế, dẫn đầu Roger Wilson Steve Furber, bắt đầu phát triển vi xử lý có nhiều điểm tương đồng với kỹ thuật MOS 6502 tiên tiến Acorn sản xuất nhiều máy tính dựa 6502, việc tạo chip bước tiến đáng kể công ty Nhóm thiết kế hoàn thành việc phát triển mẫu gọi ARM1 vào năm 1985, vào năm sau, nhóm hoàn thành sản phẩm ARM2 ARM2 có đường truyền liệu 32 bit, không gian địa 26 bit tức cho phép quản lý đến 64 Mbyte địa 16 ghi 32 bit Một ghi đóng vai trò đếm chương trình với bit có giá trị cao bit có giá trị thấp lưu giữ cờ trạng thái vi xử lý Thế hệ sau, ARM3 tạo với 4KB nhớ đệm có chức cải thiện tốt Vào năm cuối thập niên 80, hãng máy tính Apple Computer bắt đầu hợp tác với Acorn để phát triển hệ lõi ARM Công việc trở nên quan trọng Acorn nâng nhóm thiết kế trở thành công ty gọi Advanced RISC Machines Từ lý hình thành chữ viết tắt ARM Advanced RISC Machines thay Acorn RISC Machine Về sau, Advanced RISC Machines trở thành công ty ARM Limited Kết hợp tác ARM6 Mẫu công bố vào năm 1991 Apple sử dụng vi xử lý ARM 610 dựa ARM6 làm sở cho PDA hiệu Apple Newton Vào năm 1994, Acorn dùng ARM 610 làm CPU máy vi tính RiscPC họ 10 Các bit từ – bit lập trình độc lập đầu vào đầu Các bit ghi liệu thiết lập xoá dùng ghi GPIO_DATASET GIPO_DATACLR Các bit đọc ghi dùng ghi GPIO_DATAIN GPIO_DATAOUT - Các ghi GPIO: GPIO cung cấp tín hiệu đầu đầu vào đa mục đích Mỗi đường GPIO có điện trở kéo 10KΩ bên lên 3,3V Các ghi GPIO rõ bảng 2.8 Bảng 2.8: Bảng tổng quát ghi GPIO Tên ghi Trạng thái Độ dài (bit) Chức GPIO_DATASET Ghi Thiết lập đầu liệu GPIO_DATAIN Đọc Đọc chân đầu vào liệu GPIO_DATACLR Ghi Xóa đầu ghi liệu GPIO_DATAOUT Đọc Đọc chân đầu liệu GPIO_DIRN Đọc/Ghi Điều khiển hướng liệu vào/ra - Thanh ghi thiết lập đầu liệu: Vị trí GPIO_DATASET dùng để thiết lập đầu bit sau: = thiết lập bit đầu GPIO = ngắt liên kết bit đầu GPIO - Thanh ghi đọc đầu vào liệu: Dùng để đọc trạng thái hành chân GPIO từ vị trí GPIO_DATASET - Thanh ghi xóa đầu liệu: Vị trí GPIO_DATACLR dùng để xóa bit đầu GPIO độc lập sau: = xóa bit đầu GPIO = không tác động đến bit đầu GPIO 34 - Các chân đọc đầu liệu: Dùng để đọc trạng thái hành bit ghi đầu GPIO từ vị trí GPIO_DATACLR - Điều khiển hướng liệu: Thanh ghi GPIO_DIRN dùng để thiết lập hướng cho chân GPIO sau: = chân đầu = chân đầu vào (mặc định) Điều khiển hướng liệu cho bit GPIO mô tả hình 2.11 Data direction register Data register Pin/pad Read data output Read data input Hình 2.11 Điều khiển hướng liệu GPIO (1 bit) 2.2.4 Giao tiếp với khối truyền/thu không đồng đa (UART) Giao tiếp UART giao tiếp nối tiếp, có tính sau: - Cấp tín hiệu cho đầu vào điều khiển; - Điều khiển đầu tín hiệu; - Thiết lập tốc độ baud; - Truyền nhận 16 byte FIFO; - Đưa ngắt 35 Chức UART UART vi điều khiển ARM hỗ trợ hai kiểu giao tiếp giao tiếp song công giao tiếp bán song công Giao tiếp song công tức gửi nhận liệu vào thời điểm Còn giao tiếp bán song công có thiết bị truyền liệu vào thời điểm, với tín hiệu điều khiển mã định bên truyền liệu Giao tiếp bán song công thực mà hai chiều chia sẻ đường dẫn có hai đường hai thiết bị giao tiếp qua đường thời điểm Dữ liệu truyền ghi vào thành 16 byte FIFO (bộ đệm vào trước trước) bắt đầu trình truyền khung liệu với tham số xác định ghi điều khiển UART Truyền kết thúc liệu FIFO trống Trong trình thu, UART bắt đầu lấy mẫu sau nhận bit khởi động (đầu vào mức thấp) Khi word (16 bit) nhận đủ, chứa FIFO nhận Có thể không dùng chế độ FIFO Trong trường hợp này, UART cung cấp ghi giữ byte cho việc truyền nhận kênh Một bit tràn UART_RSR làm ngắt thiết lập trường hợp byte nhận trước byte đọc Có thể không sử dụng tính FIFO xảy lỗi tràn, liệu dư chứa FIFO phải đọc để xóa FIFO Thiết lập tốc độ baud UART lập trình ghi chia tốc độ bit UART_LCRM UART_LCRL Các ngắt UART Mỗi UART tạo bốn ngắt: 36 - Bộ ngắt trạng thái: dùng để xác nhận có thay đổi trạng thái Bộ ngắt xóa cách ghi vào ghi UART_ICR - Ngắt loại bỏ UART: dùng để xác nhận UART loại bỏ bit khởi động (mức thấp) phát đường thu Trạng thái xóa UART kích hoạt đường thu mức cao - Ngắt Rx (ngắt thu liệu): dùng để xác nhận trường hợp sau xảy ra:  Bộ FIFO thu kích hoạt FIFO chứa nửa nửa (8 byte nhiều byte)  Bộ FIFO thu không trống liệu cho chu kỳ 32 bit  Bộ FIFO thu bị vô hiệu liệu thu  Ngắt Rx xóa việc đọc nội dung FIFO - Ngắt Tx (ngắt truyền liệu): dùng để xác nhận trường hợp sau xảy ra:  Bộ FIFO truyền kích hoạt FIFO chứa nửa nửa  Bộ FIFO truyền bị vô hiệu hóa vùng đệm lưu trữ trống  Ngắt Tx xóa chèn vào FIFO nửa ghi vào ghi lưu trữ Dạng khung truyền Khung truyền giao tiếp UART gồm bốn thành phần, hình 2.12 Start bit Data Parity Hình 2.12 Khung truyền giao tiếp UART 37 Stop bits - Start bit (1 bit mức logic 0): bắt đầu gói tin, đồng xung nhịp clock; - Data (có thể 5,6,7 bit): liệu cần truyền; - Parity bit (1 bit: chẵn (even), lẻ (odd), mark, space): bit cho phép kiểm tra lỗi; - Stop bit (1 bit): kết thúc gói tin Tốc độ truyền - Tính đơn vị bit/giây: bps (bit per second) hay gọi tốc độ baud - Là số bit truyền giây - Tốc độ tối đa =Tần số xung nhịp clock/hằng số  VD: tần số thạch anh cho vi điều khiển 18.432MHz, số =16 -> tốc độ truyền là: 115.200 bps  Bên UART hỗ trợ ghi cho phép xác định tốc độ làm việc khác, vd: 1.200, 2.400, 4.800, 9.600, 19.200, 38.400… bps, thiết lập tốc độ baud phần mềm 38 CHƯƠNG ĐẶC ĐIỂM CÁC DÒNG LÕI XỬ LÝ ARM 3.1 Phân loại tính dòng lõi xử lý ARM 3.1.1 Phân loại dòng lõi xử lý ARM Các dòng lõi xử lý ARM có bốn kiến trúc [13], bao gồm: kiến trúc v4T, kiến trúc v5, kiến trúc v6 kiến trúc v7 Kiến trúc ARMv4T kiến trúc bản, kiến trúc ARM sau bao gồm v5, v6, v7 kế thừa từ kiến trúc ARMv4T Hình 3.1 mô tả hình thành phát triển kiến trúc lõi xử lý ARM từ kiến trúc ARMv4 đến ARMv7 Cấu hình v7-A Cortex-A8 Cấu hình v7-A Cấu hình v7-A Cortex-R4 Cortex-M3 2005 MPCore ARM1176JZ-S Kiến trúc v6 phiên mở rộng V6T2, v6Z, v6K ARM1156T2-S ARM1136J-S 2002 ARM1026EJ-S ARM968E-S ARM926EJ-S ARM966E-S ARM1020E Kiến trúc v5 phiên mở rộng V5T, v5Te, v5TEJ ARM946E-S 1999 ARM926T ARM7TDMI-S ARM9TDMI ARM720T Kiến trúc v4T ARM7TDMI 1994 Hình 3.1 Các kiến trúc lõi xử lý ARM 39 3.1.2 Tính dòng lõi xử lý ARM Tính dòng lõi xử lý ARM mô tả hình 3.2 Classic Application Embedded ARM Processors Cortex Processors Cortex Processors ARM11RP Cortex-A9 ARM926 ARM176JZ Cortex-A8 SC300 SC000 SC100 ARM968 ARM1136J Cortex-A5 Cortex-M3 Cortex-M1 ARM7TDMI ARM946 ARM1156T22 Cortex-R4 Cortex-M4 Cortex-M0 ARMv4T ARMv5TJ ARMv6 ARMv7A/R ARMv7M/ME ARMv6M ARM 32-Bit ISA Thumb 16-Bit ISA Thumb-2 Mixed ISA Thumb VFPv2 VFPv2 VFPv2 Thumb Jazelle Jazelle Jazelle NVIC TrustZone TrustZone SIMD SIMD WIC Thumb NVIC WIC NEON Hình 3.2 Tính dòng lõi xử lý ARM Trong đó: ARM 32-Bit ISA (Instruction Set Architecture): cấu trúc tập lệnh ARM 32 bit Thumb 16-Bit ISA: cấu trúc tập lệnh Thumb 16 bit thiết lập cách phân tích tập lệnh ARM 32 bit chuyển hóa tốt phù hợp với tập lệnh 16 bit, làm giảm kích thước mã Thumb: đặc tính Thumb để cải thiện mật độ biên dịch mã, xử lý thực tập lệnh 16 bit Ở chế độ có số toán hạng kèm ẩn giới hạn số khả so với chế độ tập lệnh ARM đầy đủ Trong Thumb, mã 40 nhỏ chức cho cải thiện mật độ mã tổng thể Trong trường hợp nhớ bus truyền liệu bị hạn chế 32 bit, mã Thumb cho phép tăng hiệu suất thành mã ARM 32 bit để tăng khả xử lý băng thông lớn Thumb-2: đưa để bổ sung cho giới hạn tập lệnh 16 bit Thumb với việc cung cấp thêm tập lệnh 32 bit mở rộng Mục tiêu Thumb2 đạt mật độ mã Thumb với hiệu suất tương đương tập lệnh ARM 32 bit Thumb-2 Mixed ISA: kết hợp tập lệnh 16 bit 32 bit mà không cần chế độ chuyển mạch Kết hợp tập lệnh 16 bit 32 bit thời điểm thực lệnh lệnh đơn (không gây giảm hiệu suất thực thi) VFPv2 (Vector Floating Point): thực phép tính dấu chấm động kiến trúc ARM VFPv2 có 16 ghi, hoạt động với chu kỳ đơn, khả tính toán xử lý nhanh, độ trễ thấp, có độ xác cao VFPv3 phiên nâng cấp VFPv2, VFPv3 có độ xác cao với 32 ghi số tập lệnh mở rộng NVIC (Nested Vectored Interrupt Controller): Bộ điều khiển vector ngắt lồng có khả xử lý ngắt linh hoạt nhanh chóng cho phép rút ngắn thời gian trì hoãn đáp ứng ngắt (hệ thống đáp ứng ngắt nhanh hơn) với nhiều mức ưu tiên khác Jazella: công nghệ hỗ trợ trình thông dịch mã Java, cho phép lõi ARM thực thi mã Java cấu trúc phần cứng trạng thái thực thi thứ ba với chế độ ARM Thumb hành, làm tăng tốc khả thực thi WIC (Wake-up Interrupt Controller): Bộ điều khiển đánh thức có ngắt, giúp cho hoạt động tiêu tốn lượng 41 TrustZone: Khối tăng tính bảo mật, đảm bảo đoạn mã độc hại không làm ảnh hưởng đến hệ thống SIMD (Single Instruction Multiple Data): Khối tập lệnh đơn đa liệu, khối cho phép tập lệnh hoạt động thời điểm mục liệu khác nhau, làm tăng khả xử lý liệu đặc biệt hiệu liệu dạng âm hình ảnh NEON: Công nghệ NEON mục đích tăng hiệu suất xử lý cho định dạng đa phương tiện, công nghệ phát triển mở rộng từ công nghệ SIMD, có khả làm tăng thuật toán xử lý tín hiệu mã hóa giải mã định dạng âm thanh, hình ảnh; đồ họa hai chiều, ba chiều; trò chơi; tổng hợp xử lý giọng nói, hình ảnh thoại với hiệu suất xử lý cao 3.2 Đặc điểm dòng lõi xử lý ARM 3.2.1 Đặc điểm kiến trúc dòng lõi xử lý ARM v4T Kiến trúc v4T ARM giới thiệu năm 1994, bao gồm lõi xử lý bao gồm: ARM7TDMI, ARM720T, ARM920T Kiến trúc v4T hỗ trợ tập lệnh Thumb (viết tắt T ký hiệu xử lý) Hỗ trợ lúc tập lệnh Thumb 16 bit ARM 32 bit Với tập lệnh Thumb 16 bit cho phép trình biên dịch tạo chương trình nhỏ mà tương thích với hệ thống 32 bit Điển hình kiến trúc lõi ARM7TDMI thiết kế nhằm đáp ứng ứng dụng yêu cầu hiệu suất cao, tiêu thụ lượng thấp nhỏ gọn Ý nghĩa ký hiệu “ARM7TDMI”: - T hỗ trợ tập lệnh Thumb 16 bit; - D Debug - hiệu chỉnh lỗi; - M có nghĩa “Long Multiply Support” - hỗ trợ phép toán 64 bit; - I Interface, hỗ trợ giao tiếp ngoại vi 42 ARM7TDMI hỗ trợ giải mã lỗi khối Embedded Trace Macrocell giải pháp giải mã lỗi hoàn chỉnh dành cho lõi ARM, ARM7TDMI có khả kết hợp với lõi khác nhằm tăng cường khả xử lý ARM7TDMI có kiến trúc đường ống ba tầng, kiến trúc Von Neumann, xử lý số học 32 bit Hệ thống tập lệnh 16 32 bit có khả mở rộng thông qua giao diện đồng xử lý với lõi Ở phiên mở rộng ARM720T, nhớ đệm hệ thống quản lý nhớ (MMU – Memory Management Unit) tích hợp Tiếp phiên ARM9TDMI sử dụng kiến trúc đường ống năm tầng kiến trúc Harvard 3.2.2 Đặc điểm kiến trúc dòng lõi xử lý ARM v5 Kiến trúc v5 phiên mở rộng v5T, v5TE, v5TEJ ARM giới thiệu năm 1999, bao gồm lõi xử lý: ARM1020E/1022E v5T; ARM946E-S/ARM966E-S/ARM968E-S v5TE; ARM7EJ-S/ARM92EJ-S/ ARM1026EJ-S v5TEJ Đặc tính kỹ thuật chung dòng ARMv5 mô tả bảng 3.1: Bảng 3.1: Đặc điểm kỹ thuật chung dòng ARMv5 Bộ xử lý Lõi xử lý dạng RISC 32 bit I/O Ánh xạ nhớ (Memory map I/O) Dung lượng không gian nhớ 4Gbytes Tập lệnh 16 bit, 32 bit Chế độ hoạt động Có bẩy chế độ: User, Supervisor, Abort, Undefined, System, IRQ, FIQ Cấu trúc tập lệnh Hỗ trợ tập lệnh ARM 32 bit Thumb 16 bit mở rộng Ngắt IRQ (Interrupt Request) FIQ (Fast Interrupt) 43 Phiên v5T: lệnh Thumb cải tiến, hỗ trợ CLZ (Count Leading Zero), CLZ tập lệnh hỗ trợ cho phép xác định biến đếm giảm chu kỳ lệnh, giúp giảm thời gian lệnh cộng, trừ, nhân, chia số nhị phân; giúp tăng tốc độ xử lý tín hiệu số so với công nghệ thực phép tính dấu chấm động Phiên v5TE: hỗ trợ khối xử lý tín hiệu số DSP (Digital Signal Processing) Với khối DSP, lực xử lý tính toán số tăng lên 70% Phiên v5TE-J: khối Jazelle thêm vào nhằm hỗ trợ trình thông dịch mã Java thực thi mã Java Thời gian thực thi mã Java tăng lên tám lần giảm 80% lượng tiêu thụ so với lõi xử lý không hỗ trợ khối Jazelle Tính cho phép lập trình viên thực thi mã Java cách độc lập với hệ điều hành Kiến trúc v5 sử dụng nhiều dòng ARM10, đặc biệt phiên v5TE-J Mặc dù nhiều thay đổi kiến trúc, nhiên phiên kiến trúc v5 sử dụng nhiều vi xử lý tích hợp hệ thống nên tạo linh hoạt với nhiều tính cao cấp 3.2.3 Đặc điểm kiến trúc dòng lõi xử lý ARM v6 Kiến trúc v6 phiên mở rộng v6T2, v6Z v6K ARM giới thiệu năm 2002, bao gồm lõi xử lý: ARM1136J(F)-S, ARM1156T2(F)-S(v6T2), ARM1176JZ(F)-S(v6Z), MPCore(v6K) Có nhiều bổ sung kiến trúc v6 theo hướng tạo hệ thống nhúng cao cấp phức tạp giữ ưu điểm khả tiêu thụ điện thấp Với phiên có tính đặc biệt thêm vào Kế thừa đặc điểm trội kiến trúc v4 v5, kiến trúc v6 khối ‘TEJ’ tích hợp vào lõi ARM Để đảm bảo khả tương thích ngược phần nhớ xử lý ngoại lệ kế thừa từ kiến trúc v5 Về kiến trúc v6, có năm điểm cải tiến: 44 - Quản lý nhớ: nhớ cache khối quản lý nhớ (MMUMemory Management Unit) cải tiến làm tăng hiệu suất thực thi hệ thống lên 30% so với kiến trúc cũ - Đa lõi xử lý (Multiprocessor): đáp ứng hệ thống mà yêu cầu khả tốc độ xử lý nhanh như: phương tiện giải trí cá nhân, xử lý số… Các lõi xử lý chia sẻ đồng liệu với thông qua vùng nhớ chung - Hỗ trợ xử lý đa phương tiện: tích hợp tập lệnh SIMD (Single Instruction Multiple Data) làm tăng khả xử lý liệu dạng âm hình ảnh SIMD cho phép nhà phát triển cài đặt ứng dụng phức tạp như: giải mã liệu âm hình ảnh, toán nhận dạng, hiển thị hình ảnh 3D hỗ trợ thiết bị sử dụng công nghệ không dây - Kiểu liệu: cách hệ thống sử dụng lưu trữ liệu nhớ Các hệ thống SoC (System on Chip), chip vi xử lý đơn, hệ điều hành giao diện ngoại vi USB PCI thường hoạt động dựa kiểu liệu “little endian” Một số giao thức TCP/IP hay MPEG hoạt động dựa kiểu liệu “big endian” Để tối ưu hóa khả tích hợp hệ thống, ARMv6 hỗ trợ lúc hai định dạng “little” “big” endian, gọi tắt “mixed-endian” Bên cạnh đó, ARMv6 cung cấp tập lệnh để xử lý liệu dạng “unalignment” - có kích thước liệu thay đổi Tương tự ARMv5, ARMv6 kiến trúc 32 bit, nên hỗ trợ đường truyền liệu 64 bit cao - Xử lý ngoại lệ ngắt: để thích ứng cho hệ thống xử lý thời gian thực Nhằm tăng cường tính an toàn thực thi mã chương trình, khối TrustZone tích hợp phiên v6Z Vấn đề thực thi mã an toàn xuất phát từ thực tế ngày nhiều thiết bị di động dựa tảng ARM, nhiều chương trình tải từ mạng tính an toàn đoạn 45 mã nhiều chưa kiểm chứng TrustZone đảm bảo đoạn mã độc hại không làm ảnh hưởng đến hệ thống Dòng ARM11 đại diện phổ biến kiến trúc ARMv6 Với kiến trúc đường ống tám tầng (ở ARM1156T áp dụng kiến trúc đường ống chín tầng), hệ thống dự đoán rẽ nhánh (Branch Prediction) kết trả (Return Stack) giúp ARM11 nâng cao hiệu suất thực thi lệnh Tập lệnh Thumb-2 giới thiệu hỗ trợ lệnh Thumb 16 bit 32 bit Ở phiên ARM1176JZ(F)-S bổ sung khối IEM (Intelligent Energy Management) để quản lý mức tiêu thụ lượng tốt 3.2.4 Kiến trúc dòng lõi xử lý ARM v7 Kiến trúc v7 phiên mở rộng v7-A, v7-R v7-M ARM giới thiệu vào năm 2005, đặc trưng bao gồm lõi xử lý: Cortex-A8 (v7-A), Cortex-R4 (v7-R), Cortex-M3 (v7-M) Kiến trúc v7 chia thành ba dòng dựa đặc thù ứng dụng thực tiễn: - Dòng A (viết tắt Application), lõi ARM dòng hỗ trợ cho ứng dụng đòi hỏi tính phức tạp, mức độ tương tác người dùng cao như: thiết bị cầm tay di động, máy tính, công nghệ không dây… - Dòng R (viết tắt Realtime), lõi ARM dòng hỗ trợ cho ứng dụng cần tính toán xử lý thời gian thực - Dòng M (viết tắt Microcontroller), lõi ARM dòng dành cho ứng dụng công nghiệp điện tử tiêu dùng ARM Cortex phiên khác với phiên ARM thường hay ký hiệu ARMXX ARM Cortex tốc độ hoạt động hay hệ thống ngoại vi định mà tùy thuộc vào nhà sản xuất phần cứng thiết kế hệ thống ngoại vi khác Tuy nhiên tất dùng chung lõi ARM Cortex việc lập trình truy cập phần cứng tuân theo chuẩn CMSIS 46 KẾT LUẬN Các vi điều khiển ứng dụng nhiều tự động, điều khiển công nghiệp đời sống xã hội Khi nghiên cứu đề tài nhận thấy nội dung lý thú có ý nghĩa thiết thực học tập nghiên cứu lĩnh vực ứng dụng đời sống Trong đề tài này, điều kiện thời gian cập đến vấn đề bản, công cụ để nghiên cứu tiếp cận vi điều khiển Dưới giúp đỡ bảotận tình thầy hướng dẫn, thầy cô khoa với trình học tập, nghiên cứu, hoàn thành khóa luận tốt nghiệp với đề tài nghiên cứu: “Tìm hiểu vi điều khiển họ ARM” Quá trình nghiên cứu hoàn thành khóa luận thu kết sau: - Nắm lý thuyết vi điều khiển ARM - Tìm hiểu cấu trúc vi điều khiển ARM, từ nắm số vấn đề liên quan đến vi điều khiển ARM: đặc điểm, tính ARM - Nghiên cứu số giao tiếp với ARM - Nâng cao kiến thức vi điều khiển - Nắm bước để thực nghiên cứu khoa học: phương pháp tìm tài liệu, đọc xử lí tài liệu, cách trình bày đề tài nghiên cứu nói chung cách trình bày khóa luận tốt nghiệp nói riêng Cuối mong muốn đóng góp ý kiến, giúp đỡ, cộng tác nghiên cứu để đề tài có ý nghĩa ứng dụng vào đời sống xã hội 47 TÀI LIỆU THAM KHẢO Ngô Diên Tập (1999), vi xử lý đo lường điều khiển, Nhà xuất Khoa học Kỹ thuật Hà Nội 2.Trần Quang Vinh (2005), cấu trúc máy tính, Nhà xuất Đại Học Quốc Gia Hà Nội 3.Trần Quang Vinh, Chử Văn An (2005), Nguyên lý kỹ thuật điện tử, Nhà xuất Giáo dục ARM-SoC Architecture http://www.arm.com/ 48 [...]... điều này đòi hỏi trạng thái của mỗi nhiệm vụ trong dòng chảy lệnh đơn giản, và do đó số tác vụ sẽ tăng thêm - Giảm CPI: điều này đòi hỏi mỗi lệnh cần nhiều dòng chảy lệnh hơn với tác vụ không đổi, hoặc các tác vụ cần đơn giản hơn, hoặc kết hợp cả hai lại với nhau 24 CHƯƠNG 2 GIAO TIẾP VỚI VI ĐIỀU KHIỂN ARM 2.1 Mô hình giao tiếp trong vi điều khiển ARM Vi điều khiển ARM là một hệ thống có chứa lõi vi. .. tùy theo ứng dụng người dùng ARM processor Memory controller ROM SRAM FLASHROM DRAM Interrupt controller AHB-external bridge External bus AHB arbiter AHB-APB bridge Real-time clock Serial UART ARM Controller SPI Counter / timers Peripherals Bus Hình 2.1 Mô hình giao tiếp trong vi điều khiển ARM 25 Các khối chức năng trong vi điều khiển ARM bao gồm: - Bộ xử lý ARM; - Bộ điều khiển ngắt; - Bộ phân xử bus... Asynchronous Receiver/Transmitter): Khối giao tiếp nối tiếp truyền/thu không đồng bộ đa năng 2.2 Các giao tiếp cơ bản trong vi điều khiển ARM 2.2.1 Giao tiếp với bộ nhớ Giao tiếp với bộ nhớ trong vi điều khiển ARM [7] có tính năng truy xuất dữ liệu rất nhanh Trong vi điều khiển ARM, bộ nhớ nội bộ có thể có các dạng bộ nhớ như: SSRAM, SRAM, DRAM, EPROM/Flash Bản đồ bộ nhớ chính được mô tả trong hình... lõi vi xử lý ARM với các giao tiếp hỗ trợ bên trong 6 Vi điều khiển ARM được thực thi trên hệ thống kiến trúc các bus truyền dữ liệu đa chức năng của vi điều khiển Bao gồm bộ xử lý ARM kết nối qua hệ thống bus truyền dữ liệu hiệu suất cao để đồng bộ nhanh với SRAM, các bus giao tiếp ngoài, và cầu nối tới các bus truyền ngoại vi công suất thấp, được mô tả trong hình 2.1 Thiết bị ngoại vi bên ngoài được... giao - Tập lệnh ARM- 32bit - Hầu hết các lệnh đều thực hiện trong vòng một chu kỳ đơn Trong ARM có một số tính chất mới như sau: - Hầu hết tất cả các lệnh đều cho phép thực thi có điều kiện, điều này làm giảm vi c phải vi t các tiêu đề rẽ nhánh cũng như bù cho vi c không có một bộ dự đoán rẽ nhánh - Trong các lệnh số học, để chỉ ra điều kiện thực hiện, người lập trình chỉ cần sửa mã điều kiện - Có một... phiên bản mới Những thành công quan trọng trong vi c phát triển ARM: - Giới thiệu ý tưởng về định dạng các tập lệnh được nén lại cho phép tiết kiệm năng lượng và giảm giá thành ở những hệ thống nhỏ - Giới thiệu các họ điều khiển ARM - Phát triển môi trường làm vi c ảo của ARM trên máy tính - Các ứng dụng cho hệ thống nhúng dựa trên lõi xử lý ARM ngày càng trở nên rộng rãi Hầu hết các nguyên lý của hệ thống... Reset Giới thiệu chung Bộ điều khiển tạm dừng và Reset là sự kết hợp của bốn chức năng riêng biệt: chức năng tạm dừng, chức năng xác nhận, các trạng thái Reset và bản đồ bộ nhớ Reset Hình 2.10 mô tả giao tiếp lõi xử lý ARM với bộ điều khiển tạm dừng và Reset, bộ điều khiển ngắt và bộ định thời Ý tưởng thiết kế các thiết bị ngoại vi này là làm tăng sự đồng nhất trong hệ thống ARM và làm tăng mức linh động... không đồng bộ đa năng (UART) Giao tiếp UART là giao tiếp nối tiếp, có các tính năng sau: - Cấp tín hiệu cho các đầu vào bộ điều khiển; - Điều khiển đầu ra tín hiệu; - Thiết lập tốc độ baud; - Truyền và nhận 16 byte FIFO; - Đưa ra các ngắt 35 Chức năng UART UART trên vi điều khiển ARM hỗ trợ cả hai kiểu giao tiếp là giao tiếp song công và giao tiếp bán song công Giao tiếp song công tức là có thể gửi và... Reset vi điều khiển ARM, ROM được xác định ở vị trí 0x0 và khi chuyển sang trạng thái thông thường thì RAM sẽ ở vị trí dưới cùng của bản đồ địa chỉ 30 EPROM/Flash EPROM/Flash có hai dạng, một cho 8 bit bộ nhớ mở rộng và một cho 16 bit bộ nhớ mở rộng Các bộ nhớ này có thể được truy cập cùng theo chuẩn EPROM hoặc theo chuẩn 5V Flash 2.2.2 Giao tiếp với bộ điều khiển tạm dừng và Reset Giới thiệu chung Bộ điều. .. để tạo thành kết quả hay địa chỉ bộ nhớ (ALU); - Truy cập vào bộ nhớ cho toán hạng dữ liệu nếu cần thiết (mem); - Vi t kết quả ngược lại thanh ghi (res) Kiến trúc đường ống Kiến trúc đường ống là kiến trúc cơ bản trong vi điều khiển ARM, hình 1.7 mô tả kiến trúc đường ống ba tầng để minh họa các bước thực thi lệnh: fetch – decode – excute (nhận lệnh – giải mã – thực thi) Fetch Thời gian Decode Chu kì ... Cấu trúc vi điều khiển ARM Đôi nét lịch sử hình thành phát triển vi điều khiển ARM Cấu trúc vi điều khiển ARM Chương : Giao tiếp với vi điều khiển ARM Mô hình giao tiếp vi điều khiển ARM Các giao... Tìm hiểu vi điều khiển họ ARM Mục đích nghiên cứu Tìm hiểu vi điều khiển ARM Nâng cao kiến thức kĩ thuật vi điều khiển Nhiệm vụ nghiên cứu Tổng quan vi điều khiển họ ARM Giao tiếp với ARM Đặc điểm... Đặc điểm dòng lõi xử lý ARM Đối tượng nghiên cứu Vi điều khiển họ ARM Phạm vi nghiên cứu Nghiên cứu tổng quan vi điều khiển họ ARM Tìm hiểu số giao tiếp với vi điều khiển ARM Phương pháp nghiên

Ngày đăng: 30/11/2015, 22:02

Từ khóa liên quan

Mục lục

  • KÍ HIỆU CÁC CHỮ VIẾT TẮT

  • MỞ ĐẦU

  • NỘI DUNG

  • CHƯƠNG 1. CẤU TRÚC VI ĐIỀU KHIỂN ARM

    • 1.1. Đôi nét về lịch sử hình thành và phát triển vi điều khiển ARM

    • 1.2. Cấu trúc cơ bản ARM

    • 1.3. Mô hình kiến trúc

    • 1.4. Mô hình thiết kế ARM

      • 1.4.1. Lõi xử lý

      • 1.4.2. Các thanh ghi của ARM

      • 1.5. Cấu trúc load-store

      • 1.6. Cấu trúc tập lệnh của ARM

        • 1.6.1. Thực thi lệnh có điều kiện

        • 1.6.2. Phương thức định địa chỉ

        • 1.6.3. Ngăn xếp

        • 1.6.4. Tập lệnh ARM

        • CHƯƠNG 2. GIAO TIẾP VỚI VI ĐIỀU KHIỂN ARM

          • 2.1. Mô hình giao tiếp trong vi điều khiển ARM

          • 2.2. Các giao tiếp cơ bản trong vi điều khiển ARM

            • 2.2.1. Giao tiếp với bộ nhớ

            • 2.2.2. Giao tiếp với bộ điều khiển tạm dừng và Reset

            • 2.2.3. Giao tiếp với khối GIPO

            • 2.2.4. Giao tiếp với khối truyền/thu không đồng bộ đa năng (UART)

            • CHƯƠNG 3. ĐẶC ĐIỂM CÁC DÒNG LÕI XỬ LÝ ARM

              • 3.1. Phân loại và tính năng các dòng lõi xử lý ARM

                • 3.1.1. Phân loại các dòng lõi xử lý ARM

                • 3.1.2. Tính năng các dòng lõi xử lý ARM

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

Tài liệu liên quan