Đăng ký Đăng nhập
Trang chủ Đề tài thiết kế kit thực hành vi điều khiển arm – cortex m0...

Tài liệu Đề tài thiết kế kit thực hành vi điều khiển arm – cortex m0

.PDF
81
1592
124

Mô tả:

Khoa: CNKT Điện tử - Viễn thông Lớp: ĐH Điện tử - K3 LỜI CẢM ƠN Trong quá trình nghiên cứu và thực hiện đồ án em xin gửi lời cảm ơn tới hội đồng quản trị nhà trường, ban giám hiệu nhà trường cùng toàn thể các thầy cô giáo trong khoa Công Nghệ Kỹ Thuật Điện Tử Viễn Thông đã tạo điều kiện cũng như đóng góp ý kiến cho đồ án. Em xin chân thành cảm ơn thầy Th.S Đặng Văn Hiếu đã hướng dẫn tận tình và giúp đỡ em thực hiện hoàn thành đồ án trong thời gian qua. Đồng thời em xin gửi lời cám ơn tới công ty TULA và các anh chị trong công ty đã giúp đỡ cũng như cung cấp tài liệu trong thời gian hoàn thành đồ án. Qua đây em rất mong nhận được những ý kiến đóng góp của các thầy cô trong hội đồng bảo vệ đồ án tốt nghiệp để giúp em hoàn thiện hơn đồ án của mình. Em xin chân thành cảm ơn! Hà Nội, Ngày … tháng … năm … Sinh viên thực hiện Đồ án tốt nghiệp SV: Nguyễn Tâm Phúc Khoa: CNKT Điện tử - Viễn thông Lớp: ĐH Điện tử - K3 DANH MỤC TỪ VIẾT TẮT Từ viết tắt Tiếng anh Tiếng việt ARM Advanced RISC Machine Cấu trúc vi xử lí theo kiểu RISC ADC Analog Digital Converter Bộ chuyển đổi tương tự sang số AHB Advanced High-performance Bus Hiệu năng Bus cao CISC Complex Instruction Set Computer Tập lệnh máy tính phức tạp Cortex Microcontroller Software Chuẩn giao diện phần Interface Standard mềm vi điều khiển Cortex CLK Serial Clock Xung nhịp CAN Controller Area Network Điều khiển mạng liên CMSIS kết khu vực CPU Central Processing Unit Bộ xử lý trung tâm DRAM Dynamic Random Access Memory Bộ nhớ truy cập ngẫu nhiên động EEPROM Electrically Erasable Programmable Bộ nhớ chỉ đọc có thể xóa Read-Only Memory được bằng điện EPROM Erasable Programmable Read-Only Memory Bộ nhớ chỉ đọc có khả năng lập trình lại được FIFO First In First Out Vào trước ra trước GPIO General Purpose Input/Output Đầu vào/ra đa mục đích GPS Global Positioning System Hệ thống định vị toàn cầu IC Integrated Circuit Mạch tích hợp I2C Inter-Integrated Circuit Liên kết giữa các vi mạch I2S Integrated Interchip Sound Tích hợp liên chíp âm thanh LCD Liquid Crystal Display Màn hình tinh thể lỏng LIN Local Interconnect Network Mạng kết nối khu vực MCU MicroController Unit Bộ vi điều khiển NVIC Nested Vectored Interrupt Controller Vector điều khiển ngắt lồng nhau OS Operating System Hệ thống vận hành PDA Personal Digital Assistant Thiết bị cầm tay Đồ án tốt nghiệp SV: Nguyễn Tâm Phúc Khoa: CNKT Điện tử - Viễn thông Lớp: ĐH Điện tử - K3 PC Personal Computer Máy tính cá nhân PDMA Peripheral Direct Memory Access Bộ nhớ truy cập ngoại vi trực tiếp PLL Phase Lock Loop Vòng khóa pha RISC Reduced Instructions Set Computer Tập lệnh máy tính đơn giản hóa ROM Read-Only Memory Bộ nhớ chỉ đọc RAM Random Access Memory Bộ nhớ truy cập ngẫu nhiên RTC Real Time Clock Đồng hồ thời gian thực Rx Receiver Bộ nhận dữ liệu SPI Serial Peripheral Interface Giao tiếp ngoại vi nối tiếp SD Card Secure Digital Card Thẻ nhớ dữ liệu số SRAM Static Random Access Memory Bộ nhớ truy cập ngẫu nhiên tĩnh SSRAM Synchronous Static Random Access Bộ nhớ truy cập ngẫu Memory nhiên đồng bộ tĩnh Tx Transmiter Bộ truyền dữ liệu TPM Trusted Platform Module Mô-đun nền tảng đã được xác thực USB Universal Serial Bus Bus nối tiếp đa năng UART Universal Asynchronous Receiver/Transmitter Bộ thu/phát không đồng bộ đa năng VLSI Very Large Scale Integrated Tích hợp với quy mô lớn Đồ án tốt nghiệp SV: Nguyễn Tâm Phúc Khoa: CNKT Điện tử - Viễn thông Lớp: ĐH Điện tử - K3 DANH MỤC HÌNH Hình 1.1: Chíp vi điều khiển ARM .................................................................................3 Hình 1.2: Cấu trúc vi điều khiển ARM ...........................................................................4 Hình 1.3: Cấu trúc lõi ARM Cortex M0..........................................................................5 Hình 1.4: Các phiên bản ARM Cortex – A .....................................................................6 Hình 1.5: Các phiên bản ARM Cortex – R .....................................................................7 Hình 1.6: Các phiên bản ARM Cortex – M ....................................................................7 Hình 1.7: Các hãng sản xuất bộ vi xử lý dựa trên thiết kế của ARM ............................. 8 Hình 2.1: Khối điều khiển chức năng của Cortex M0 ...................................................10 Hình 2.2: Mức độ tiêu thụ điện năng của các dòng chíp MCU-32 Bit ......................... 12 Hình 2.3: Quá trình phát triển của NuMiCro ................................................................ 12 Hình 2.4: Biểu đồ phân loại dòng chip 32-bit lõi ARM Cortex-M0 ............................. 13 Hình 2.5: Tính năng nổi bật có trong các dòng ARM Cortex-M0 ................................ 13 Hình 2.6: Các khối chức năng của dòng NuMicro Mini51 ...........................................14 Hình 2.7: Tính năng các dòng M051 Base ....................................................................15 Hình 2.8: Phân chia cấu hình cho dòng NUC100 ......................................................... 15 Hình 2.9: Các khối chức năng của dòng NuMicro Nano100 ........................................16 Hình 2.10: Các khối chức năng của dòng NuMiCro NUC130/140 .............................. 17 Hình 2.11: Sự phát triển các dòng chip nhạc của Nuvoton ...........................................18 Hình 2.12: Mô-đun mô tả các chức năng trong chế độ tiết kiệm năng lượng ...............20 Hình 2.13: Nguồn dao động .......................................................................................... 21 Hình 2.14: Nguồn xung của timer .................................................................................22 Hình 2.15: Sơ đồ khối của Timer ..................................................................................23 Hình 2.16: Nguồn xung của Watchdog Timer .............................................................. 23 Hình 2.17: Sơ đồ khối của Watchdog Timer .................................................................23 Hình 2.18: Nguồn xung vào PWM ................................................................................24 Hình 2.19: Sơ đồ khối chức năng PWM .......................................................................25 Hình 2.20: Nguồn xung vào khối UART ......................................................................25 Hình 2.21: Sơ đồ khối chức năng của UART................................................................ 26 Hình 2.22: Nguồn xung vào SPI....................................................................................26 Hình 2.23: Sơ đồ khối chức năng SPI ...........................................................................27 Hình 2.25: Sơ đồ khối điều khiển USB2.0 ....................................................................29 Hình 2.26: Nguồn xung vào khối ADC .........................................................................30 Hình 2.27: Sơ đồ khối chức năng ADC.........................................................................30 Hình 2.28: Công cụ phát triển của hãng ........................................................................31 Hình 2.29: Công cụ phát triển phần mềm......................................................................31 Đồ án tốt nghiệp SV: Nguyễn Tâm Phúc Khoa: CNKT Điện tử - Viễn thông Lớp: ĐH Điện tử - K3 Hình 2.30: Các board dùng cho học tập nghiên cứu .....................................................32 Hình 2.31: Các ứng dụng của dòng chíp MCU – 32 bit lõi Cotex M0 ......................... 33 Hình 3.1: Sơ đồ khối của chíp NUC140 ........................................................................35 Hình 3.2: Sơ đồ chân của NUC140 ...............................................................................35 Hình 3.3: Các khối chính của Kit sử dụng NUC140 .....................................................44 Hình 3.4: Khối nguồn ....................................................................................................45 Hình 3.5: Khối vi xử lý ..................................................................................................46 Hình 3.6: Khối LED đơn ............................................................................................... 46 Hình 3.7: Khối LED RGB ............................................................................................. 47 Hình 3.8: Khối BUZZER .............................................................................................. 47 Hình 3.9: Khối INT và Keyboard ..................................................................................48 Hình 3.10: Khối Led 7 thanh ......................................................................................... 48 Hình 3.11: Khối RESET Circuit ....................................................................................49 Hình 3.12: Khối ADC ....................................................................................................49 Hình 3.13: Khối UART .................................................................................................50 Hình 3.14: Khối I2C ......................................................................................................51 Hình 3.15: Khối LCD ....................................................................................................51 Hình 3.16: Khối SD Inteface ......................................................................................... 52 Hình 3.17: Khối CAN và RS485 ...................................................................................53 Hình 3.18: Khối SPI ......................................................................................................53 Hình 3.19: Chế độ Push-Pull output ..............................................................................54 Hình 3.20: Chế độ Open-Drain output ..........................................................................54 Hình 3.21: Chế độ Quasi bi-direction............................................................................54 Hình 3.22: Khối GPIO ...................................................................................................55 Hình 3.23: Khối PS2......................................................................................................55 Hình 3.24: Khối WAU8822 .......................................................................................... 56 Hình 3.25: Khối ICE......................................................................................................56 Hình 3.26: Khối USB Devices ...................................................................................... 57 Hình 3.27: Mặt trước Kit thực hành vi điều khiển ARM Cortex M0 sử dụng NUC140 .......................................................................................................................................57 Hình 3.28: Mặt sau Kit thực hành vi điều khiển ARM Cortex M0 sử dụng NUC140 .58 Hình 3.28: Mô phỏng bài 1............................................................................................ 59 Hình 3.29: Mô phỏng bài 2............................................................................................ 61 Hình 3.30: Mô phỏng bài 3............................................................................................ 63 Hình 3.31: Mô phỏng bài 4............................................................................................ 64 Hình 3.32: Mô phỏng bài 5............................................................................................ 65 Đồ án tốt nghiệp SV: Nguyễn Tâm Phúc Khoa: CNKT Điện tử - Viễn thông Lớp: ĐH Điện tử - K3 MỤC LỤC LỜI MỞ ĐẦU ................................................................................................................1 CHƢƠNG 1 TỔNG QUAN VỀ VI ĐIỀU KHIỂN ARM ..........................................2 1.1 Lịch sử hình thành và phát triển của ARM .......................................................... 2 1.2 Cấu trúc cơ bản của ARM ......................................................................................3 1.3 Các dòng và các phiên bản của ARM ....................................................................6 1.3.1 Dòng A(Application).............................................................................................. 6 1.3.2 Dòng R(Real Time) ................................................................................................ 6 1.3.3 Dòng M(Microcontroller)......................................................................................7 1.4 Các hãng sản xuất dòng chip ARM .......................................................................7 1.5 Kết luận chƣơng 1....................................................................................................8 CHƢƠNG 2 VI ĐIỀU KHIỂN ARM LÕI CORTEX M0 CỦA NUVOTON ..........9 2.1 Giới thiệu về hãng Nuvoton ....................................................................................9 2.2 Vi điều khiển ARM Cortex – M0 của hãng Nuvoton ...........................................9 2.3 Đặc điểm của dòng chíp MCU – 32 bit lõi ARM Cotex M0 .............................. 10 2.4 Quá trình phát triển các dòng chíp 32 bit lõi ARM Cotex M0 của Nuvoton ...12 2.5 Các tính năng nổi bật có trong các dòng ARM Cortex-M0............................... 13 2.5.1 Dòng chíp NuMicro Mini51 ................................................................................14 2.5.2 Dòng chíp M051 ..................................................................................................14 2.5.3 Dòng chíp NUC100 ............................................................................................. 15 2.5.4 Dòng NuMicro Nano100 .....................................................................................16 2.5.5 Dòng NuMiCro NUC130/140 .............................................................................17 2.5.6 Dòng chip MCU tích hợp sẵn Voice IC trong chip: ISD9160 ........................... 18 2.6 Tính năng của ARM Cortex-M0 ..........................................................................21 2.7 Công cụ hỗ trợ phát triển các ứng dụng trên chíp ARM Cortex M0 ...............31 2.8 Các ứng dụng của dòng chíp MCU – 32 bit lõi Cotex M0 .................................32 2.9 Kết luận chƣơng 2..................................................................................................33 CHƢƠNG 3 THIẾT KẾ KIT THỰC HÀNH VI ĐIỀU KHIỂN ARM - CORTEX M0 SỬ DỤNG CHIP NUC140 CỦA NUVOTON ....................................................34 3.1 Tìm hiểu chíp vi điều khiển NUC140 ...................................................................34 3.1.1 Sơ đồ khối chức năng của chíp NUC140 ........................................................... 34 3.1.2 Sơ đồ chân kết nối của chíp NUC140 .................................................................35 3.2 Thiết kế Kit thực hành vi điều khiển ARM ........................................................ 44 3.2.1 Chức năng các khối ............................................................................................. 45 3.2.2 Hướng dẫn sử dụng kit ....................................................................................... 57 3.3 Một số bài tập cơ bản trên kit thực hành ............................................................ 58 Đồ án tốt nghiệp SV: Nguyễn Tâm Phúc Khoa: CNKT Điện tử - Viễn thông Lớp: ĐH Điện tử - K3 3.4 Kết luận chƣơng 3..................................................................................................65 KẾT LUẬN CHUNG ..................................................................................................66 TÀI LIỆU THAM KHẢO........................................................................................... 67 PHỤ LỤC Đồ án tốt nghiệp SV: Nguyễn Tâm Phúc Khoa: CNKT Điện tử - Viễn thông Lớp: ĐH Điện tử - K3 LỜI MỞ ĐẦU Ứng dụng cho các hệ thống nhúng hiện nay ngày càng trở nên phức tạp, các nhân điều khiển cần có cấu hình mạnh hơn, hệ thống cần sự linh động, tiêu tốn ít năng lượng, nhỏ gọn đáp ứng thời gian thực tốt hơn các nhân điều khiển 8 bit đang dùng. Chúng ta đa phần vẫn sử dụng nhân điều khiển 8 bit cho các ứng dụng, và như thế, vô tình đã thu hẹp khả năng điều khiển các hệ thống nhúng. Chính sự hạn chế về dung lượng bộ nhớ chương trình dữ liệu cũng đã ảnh hưởng không ít tới phạm vi ứng dụng của nó. Ngày nay để chọn được một dòng chip có thể đáp ứng được mọi yêu cầu của người dùng không còn quá khó khăn như trước, với sự cạnh tranh phát triển của các hãng sản xuất chip điện tử đã cho ra đời nhiều dòng chip với nhiều chức năng và ứng dụng đáp ứng được nhu cầu của người dùng, nổi bật nên đó là dòng chip ARM Cortex M0 của hãng Nuvoton sản xuất, dòng chíp này có hiệu suất cao, công suất thấp, tốc độ xử lý nhanh gấp nhiều lần so với các dòng chíp khác, không những thế mà nó còn có kích thước nhỏ gọn và tiết kiệm chi phí. Với những lý do trên em đã lựa chọn đề tài nghiên cứu của mình là “Thiết Kế Kit Thực Hành Vi Điều Khiển ARM – Cortex M0” Nội dung đồ án tốt nghiệp của em được trình bày gồm 3 chương như sau: Chƣơng 1: Tổng quan về vi điều khiển ARM ARM là một loại vi điều khiển 32 bit và 64 bit kiểu RISC có cấu hình mạnh mẽ, tích hợp nhiều tài nguyên phong phú, được sử dụng rộng rãi trong các thiết kế nhúng, đáp ứng được nhiều yêu cầu khắt khe và đa dạng của các hệ thống nhúng. Chƣơng 2: Tìm hiểu chíp Cortex M0 lõi ARM của Nuvoton Nuvoton là hãng sản xuất dòng chíp vi điều khiển 32 bit Cortex M0 dựa trên thiết kế của ARM. Vi điều khiển Cortex M0 lõi ARM được thiết kế nhúng tối ưu cho các ứng dụng vi xử lý MCU, dòng chíp này có nhiều giao diện ngoại vi đáp ứng tính năng mạnh mẽ và khả năng kết nối. Chƣơng 3: Thiết kế kit thực hành vi điều khiển ARM – Cortex M0 sử dụng NUC140 của Nuvoton Kit thực hành vi điều khiển ARM – Cortex M0 sử dụng chíp NUC140 của Nuvoton có đầy đủ các tính năng và giao tiếp ngoại vi phong phú, dễ dàng sử dụng và phát triển các ứng dụng. Hà Nội, Ngày tháng năm 2015 Sinh viên thực hiện Đồ án tốt nghiệp 1 SV: Nguyễn Tâm Phúc Khoa: CNKT Điện tử - Viễn thông Lớp: ĐH Điện tử - K3 CHƢƠNG 1 TỔNG QUAN VỀ VI ĐIỀU KHIỂN ARM ARM là một loại vi điều khiển 32 bit và 64 bit kiểu RISC, ARM lúc đầu được đặt tên theo công ty Acorn (ban đầu ARM có nghĩa là Acorn RISC Machine, trong đó RISC là một cách thiết kế vi xử lý) sau này do có thêm nhiều công ty cùng phát triển và một số lý do khác, người ta thống nhất gọi ARM là Advance RISC Machine. ARM được sử dụng rộng rãi trong các thiết kế nhúng. Ngày nay, hơn 75% CPU 32 bit là thuộc họ ARM, điều này khiến ARM trở thành cấu trúc 32 bít được sản xuất nhiều nhất thế giới. Bộ xử lý CPU của ARM hiện diện trong 95% smartphone, 90% ổ đĩa cứng, 40% truyền hình kĩ thuật số và set top box, 15% trong vi điều khiển, 20% trong máy tính di động và có mặt trên rất nhiều lĩnh vực, từ TV cho đến các hệ thống tự động hóa và máy móc công nghiệp. 1.1 Lịch sử hình thành và phát triển của ARM Kiến trúc ARM được phát triển lần đầu tiên vào thập niên 1980 để dùng cho máy tính để bàn, đến hiện nay nó là kiến trúc được sử dụng phổ biến nhất thế giới, vượt qua cả kiến trúc x86 của Intel, tính theo số lượng chíp được sản xuất. Do có đặc điểm tiết kiệm năng lượng nên các bộ CPU ARM chiếm ưu thế trong các sản phẩm điện tử di động, mà với các sản phẩm này việc tiêu tán công xuất thấp là một mục tiêu thiết kế quan trọng hàng đầu. Việc thiết kế ARM được bắt đầu từ năm 1983 trong một dự án phát triển của công ty máy tính Acorn, ngày 26/4/1985 mẫu sản phẩm ARM đầu tiên sản xuất tại công ty kĩ thuật VLSI, SanJose, bang Califonia được chuyển tới trung tâm máy tính Acorn ở Cambridge, Anh Quốc. Nửa thập niên sau đó, ARM được phát triển rất nhanh chóng để làm nhân máy tính để bàn của Acorn, nền tảng cho các máy tính hỗ trợ giáo dục ở Anh. Trong thập niên 1990, dưới sự phát triển của Acorn Limited, ARM đã thành một thương hiệu đứng đầu thế giới về các ứng dụng sản phẩm nhúng đòi hỏi tính năng cao, sử dụng năng lượng ít và giá thành thấp. Chính nhờ sự nổi trội về thị phần đã thúc đẩy ARM liên tục được phát triển và cho ra nhiều phiên bản mới. Những thành công quan trọng trong việc phát triển ARM ở thập niên sau này:  Giới thiệu ý tưởng về định dạng các chỉ lệnh được nén lại (thumb) cho phép tiết kiệm năng lượng và giá thành ở những hệ thống nhỏ.  Giới thiệu họ điều khiển ARM9, ARM10 và „Strong ARM‟  Phát triển môi trường làm việc ảo của ARM trên PC. Đồ án tốt nghiệp 2 SV: Nguyễn Tâm Phúc Khoa: CNKT Điện tử - Viễn thông Lớp: ĐH Điện tử - K3  Các ứng dụng cho hệ thống nhúng dựa trên nhân xử lý ARM ngày càng trở nên rộng rãi. Hình 1.1: Chíp vi điều khiển ARM Hầu hết các nguyên lý của hệ thống trên chip và cách thiết kế bộ xử lý hiện đại được sử dụng trong ARM, ARM còn đưa ra một số khái niệm mới, Việc sử dụng 3 trạng thái nhận lệnh giải mã thực thi trong mỗi chu kì máy mang tính quy phạm để thiết kế các hệ thống xử lý thực. Do đó, nhân xử lý ARM được sử dụng rộng rãi trong các hệ thống phức tạp. 1.2 Cấu trúc cơ bản của ARM Cấu trúc ARM bao gồm các đặc tính của RISC nổi bật như: Cấu trúc nạp/lưu trữ, không cho phép truy xuất bộ nhớ không thẳng hàng, tập lệnh trực giao, file thanh ghi lớn gồm 16x32-bit, chiều dài mã máy cố định là 32 bit để dễ giải mã và thực hiện pipeline, để đạt được điều này phải chấp nhận giảm mật độ mã máy. Cấu trúc ARM có một số tính chất 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 thanh ghi dịch 32-bit, có thể sử dụng với chức năng tính toán với hầu hết các lệnh số học và việc tính toán địa chỉ. - Có các kiểu định địa chỉ theo chỉ số rất mạnh - Có hệ thống con thực hiện ngắt hai mức ưu tiên đơn giản nhưng rất nhanh, kèm theo cho phép chuyển từng nhóm thanh ghi. Đồ án tốt nghiệp 3 SV: Nguyễn Tâm Phúc Khoa: CNKT Điện tử - Viễn thông Lớp: ĐH Điện tử - K3 Hình 1.2: Cấu trúc vi điều khiển ARM Điểm mạnh của bộ vi điều khiển ARM dùng tập lệnh RISC: - Kích thước miếng bán dẫn nhỏ hơn, bộ xử lý đơn giản đòi hỏi ít transistor hơn, do đó kích thước cần dùng nhỏ lại dành vùng diện tích trống để tăng các chức năng như bộ nhớ cache, chức năng quản lý bộ nhớ..vv… - Thời gian phát triển một sản phẩm ngắn hơn (do kĩ thuật đơn giản) - Cấu hình mạnh hơn: Khi ta đặt ra các chỉ lệnh phức tạp tuy nó gần gũi với ngôn ngữ cấp cao, nhưng như thế vô tình cũng làm các chỉ lệnh khác phức tạp lên và để thực thi một chỉ lệnh như vậy cần tốn nhiều chu kì xung nhịp. Trong khi đó nếu dùng RISC chỉ mất một chu kì xung nhịp cho mỗi lệnh, khi ta phân nhỏ vấn đề phức tạp thành các vấn đề đơn giản thì cách giải quyết sẽ tốt hơn. - Tốc độ tính toán cao nhờ vào việc giải mã lệnh đơn giản, nhờ có nhiều thanh ghi (ít thâm nhập bộ nhớ), và nhờ thực hiện kỹ thuật ống dẫn liên tục và có hiệu quả (các lệnh đều có thời gian thực hiện giống nhau và có cùng dạng). - Thời gian cần thiết để thiết kế bộ điều khiển là ít. Điều này góp phần làm giảm chi phí thiết kế. - Bộ điều khiển trở nên đơn giản và gọn làm cho ít rủi ro mắc phải sai sót mà ta thường gặp trong bộ điều khiển. - Có một số ít lệnh (thông thường dưới 100 lệnh ). Đồ án tốt nghiệp 4 SV: Nguyễn Tâm Phúc Khoa: CNKT Điện tử - Viễn thông Lớp: ĐH Điện tử - K3 - Có một số ít các kiểu định vị (thông thường hai kiểu: định vị tức thì và định vị gián tiếp thông qua một thanh ghi). - Có một số ít dạng lệnh (một hoặc hai) - Các lệnh đều có cùng chiều dài. - Chỉ có các lệnh ghi hoặc đọc ô nhớ mới thâm nhập vào bộ nhớ. - Dùng bộ tạo tín hiệu điều khiển bằng mạch điện để tránh chu kỳ giải mã các vi lệnh làm cho thời gian thực hiện lệnh kéo dài. - Ngoài ra các bộ xử lý RISC đầu tiên thực hiện tất cả các lệnh trong một chu kỳ máy. Lõi vi điều khiển ARM gồm các thành phần sau: - Lõi xử lý ARM là một khối chức năng được kết nối bởi các bus dữ liệu, các mũi tên thể hiện cho dòng chảy của dữ liệu, các đường thể hiện cho bus dữ liệu, các ô biểu diễn trong hình là một khối hoạt động hoặc một vùng lưu trữ. Cấu hình này cho thấy các dòng dữ liệu và các thành phần tạo nên một bộ xử lý ARM. - Tập lệnh ARM nằm trong hai nguồn thanh ghi Rn và Rm, kết quả được trả về thanh ghi đích Rd. Nguồn toán hạng được đọc từ thanh ghi đang sử dụng trên bus nội bộ A và B tương ứng. - Khối số học và logic (ALU: Arithmetic Logic) hay bộ nhân (MAC: Multiply – Accumulate Unit) lấy các giá trị từ thanh ghi Rn và Rm từ bus A, B và tính toán ra kết quả. - Mô hình thanh ghi theo kiến trúc Registry file giao tiếp với bộ nhớ thông qua các lệnh load – store và ALU để tính toán địa chỉ được lưu trong các thanh ghi. - Incrementer: bộ gia tăng cho thanh ghi địa chỉ. Data Instruction decoder Sign extend Write Read Rd R15 Register file R0 – R15 PC Result Rn A Rm B B Acc A Banrel shifter MAC N ALU Address register Incrementer ` Address Hình 1.3: Cấu trúc lõi ARM Cortex M0 Đồ án tốt nghiệp 5 SV: Nguyễn Tâm Phúc Khoa: CNKT Điện tử - Viễn thông Lớp: ĐH Điện tử - K3 1.3 Các dòng và các phiên bản của ARM Để đáp ứng yêu cầu khắt khe và đa dạng của các hệ thống nhúng, bộ xử lý ARM Cortex được chia thành 3 dòng, được biểu hiện bằng các ký tự sau tên Cortex như dòng: A (Application), R (Real - time), M (Microcontroller). ARM Cortex là một phiên bản khác với các phiên bản ARM thường hay được ký hiệu bởi ARMXX. ARM Cortex không có tốc độ hoạt động hay hệ thống ngoại vi nhất định, tùy thuộc vào nhà sản xuất phần cứng sẽ thiết kế hệ thống ngoại vi khác nhau, tuy nhiên tất cả đều dùng chung nhân ARM Cortex và việc lập trình và truy cập phần cứng phải tuân theo chuẩn CMSIS. Từ năm 1994 đến năm 2015 các bộ lõi CortexA phát triển từ A0 đến A18, CortexR phát triển từ R0 đến R7, CortexM phát triển từ M0 đến M7. 1.3.1 Dòng A(Application) Bộ vi xử lý ARM Cortex A là bộ xử lý có hiệu suất cao cung cấp một loạt các giải pháp cho các thiết bị thực hiện nhiệm vụ tính toán phức tạp, chẳng hạn như lưu trữ một nền tảng phong phú hệ điều hành (OS), và hỗ trợ nhiều ứng dụng phần mềm. Tất cả các bộ xử lý Cortex-A đặc biệt cung cấp hiệu suất 32 bit cho máy tính cao cấp, với bộ vi xử lý Cortex-A72 mới và cả Cortex-A57 và Cortex-A53 bộ xử lý kết hợp cung cấp hiệu suất 32-bit và 64-bit cho thế hệ điện thoại di động, mạng và máy chủ sản phẩm. Các bộ vi xử lý có sẵn trong đơn lõi và đa lõi cung cấp lên đến bốn đơn vị xử lý với khả năng tích hợp các khối xử lý đa phương tiện NEON. Hỗ trợ các tập lệnh ARM, Thumb và Thumb-2. Ứng dụng của dòng A bao gồm: điện thoại thông minh, netbook, eReaders, TV kỹ thuật số, home Gateway, máy chủ và mạng. Hình 1.4: Các phiên bản ARM Cortex – A 1.3.2 Dòng R(Real Time) Bộ vi xử lý Cortex R có hiệu suất vượt trội cho các ứng dụng thời gian thực, thời gian xử lý nhúng đã được phát triển cho các ứng dụng nhúng thời gian thực, Đồ án tốt nghiệp 6 SV: Nguyễn Tâm Phúc Khoa: CNKT Điện tử - Viễn thông Lớp: ĐH Điện tử - K3 nhu cầu về điện năng thấp, ngắt được cân bằng với hiệu suất vượt trội và khả năng tương thích mạnh mẽ với nền tảng hiện tại. Ứng dụng của dòng R bao gồm: hệ thống phanh ô tô, các giải pháp hệ thống truyền lực, bộ ưu trữ khối lượng, Networking và in ấn. Bộ xử lý Cortex R dành cho các hệ thống đòi hỏi khắc khe về tính thời gian thực. Hỗ trợ các tập lệnh ARM, Thumb và Thumb-2. Các bộ vi xử lý Cortex R gồm có Cortex-R4, Cortex-R5, Cortex-R7. Hình 1.5: Các phiên bản ARM Cortex – R 1.3.3 Dòng M(Microcontroller) Bộ vi xử lý ARM Cortex M tiêu thụ điện năng thấp phù hợp với các ứng dụng vi điều khiển xác định và có khả năng mở rộng, tương thích, hiệu quả, dễ sử dụng. Bộ vi xử lý ARM Cortex M được thiết kế để giúp các nhà phát triển đáp ứng nhu cầu về các ứng dụng nhúng thông minh và kết nối. ARM Cortex M cung cấp nhiều tính năng với chi phí thấp hơn, tăng khả năng kết nối, sử dụng lại mã tốt hơn và cải thiện hiệu quả năng lượng. Ứng dụng của dòng M bao gồm: vi điều khiển, thiết bị tín hiệu hỗn hợp, cảm biến thông minh, thiết bị điện tử ô tô. Bộ xử lý Cortex M Chỉ hỗ trợ tập lệnh Thumb-2. Các bộ vi xử lý Cortex M gồm có Cortex M0, Cortex M0+, Cortex M3, Cortex M4, Cortex M7. Hình 1.6: Các phiên bản ARM Cortex – M 1.4 Các hãng sản xuất dòng chip ARM Không giống như các tập đoàn sản xuất vi xử lý khác như AMD, Intel, Motorola hay Hitachi, hãng ARM chỉ thiết kế và bán các bản thiết kế của họ và Đồ án tốt nghiệp 7 SV: Nguyễn Tâm Phúc Khoa: CNKT Điện tử - Viễn thông Lớp: ĐH Điện tử - K3 không sản xuất các vi mạch CPU hoàn chỉnh. Do vậy, có khoảng vài chục hãng sản xuất các bộ xử lý dựa trên thiết kế của ARM. Sau khi cấp phép cho hơn 175 đối tác ARM được hưởng lợi từ các công cụ của bên thứ ba. Sử dụng một bộ xử lý tiêu chuẩn trong một thiết kế cho phép các đối tác ARM tạo ra các thiết bị với một cơ sở nhất quán cho phép họ tập trung vào việc tạo ra và phát tiển các thiết bị cao cấp hơn. Hình 1.7: Các hãng sản xuất bộ vi xử lý dựa trên thiết kế của ARM Một số hãng sản xuất dòng chíp ARM dựa trên thiết kế của ARM sau khi được cấp phép như NUVOTON, SAMSUNG, Atmel, TOSHIBA, Actel… 1.5 Kết luận chƣơng 1 ARM là dòng chíp 32 bit có nhiều tính năng hiện đại, chíp ARM đáp ứng được nhiều yêu cầu khắt khe và đa dạng của các hệ thống nhúng. Trải qua nhiều năm nghiên cứu và phát triển và với những ưu thế sẵn có của mình ARM đang ngày càng khẳng định vị trí của mình cũng như dần thay thế các dòng chíp khác. Nhờ sự nổi trội về thị phần đã thúc đẩy ARM liên tục được phát triển và cho ra nhiều 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 (Thumb) 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 về 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 trên chip và cách thiết kế bộ vi xử lý hiện đại được sử dụng trong ARM, ARM còn đưa ra một số khái niệm mới như giải nén động các dòng lệnh. Vì vậy lõi xử lý ARM được sử dụng rộng rãi trong các hệ thống phức tạp. ARM được dùng khá phổ biến trong các ứng dụng nhúng và các ứng dụng cầm tay nhờ vào đặc tính ưu việt là ít tiêu thụ điện năng. Hầu hết máy điện thoại di động và các thiết bị cầm tay hiện nay đều có bộ xử lý trung tâm là vi xử lý ARM. Đồ án tốt nghiệp 8 SV: Nguyễn Tâm Phúc Khoa: CNKT Điện tử - Viễn thông Lớp: ĐH Điện tử - K3 CHƢƠNG 2 VI ĐIỀU KHIỂN ARM LÕI CORTEX M0 CỦA NUVOTON Nuvoton là hãng sản xuất dòng chíp vi điều khiển 32 bit Cortex M0 dựa trên thiết kế của ARM. Vi điều khiển Cortex M0 lõi ARM được thiết kế nhúng tối ưu cho các ứng dụng vi xử lý MCU, dòng chíp này có nhiều giao diện ngoại vi đáp ứng tính năng mạnh mẽ và khả năng kết nối. 2.1 Giới thiệu về hãng Nuvoton Tập đoàn công nghệ Nuvoton là một công ty bán dẫn của đài loan được thành lập năm 2008 tách ra từ Tập đoàn Điện tử Winbond một hãng điện tử bán dẫn đứng hàng đầu thế giới có trụ sở chính tại đài loan. Nuvoton vừa là nhà sản xuất IC nhãn hiệu Nuvoton vừa là nhà cung cấp dịch vụ sản xuất IC bán dẫn. Hãng này có 3 dòng chip vi điều khiển (MCU) 4-bit, 8-bit và 32-bit (ARM Cortex). Nuvoton đảm nhiệm việc mở rộng kinh doanh dòng sản phẩm mạch tích hợp logic máy tính của Winbond, lõi công nghệ, các đối tác và khách hàng… trước khi tách ra cũng như tiếp tục đẩy mạnh sáng tạo sản phẩm và để thấu hiểu nhu cầu thị trường ứng dụng thiết bị đầu cuối, và cung cấp dịch vụ tốt hơn cho khách hàng của hãng dựa trên nền tảng hiện có. Nuvoton nắm giữ một thị phần lớn về các bộ điều khiển I/O của bo mạch chủ khi mà Nuvoton thừa hưởng nhiều năm kinh nghiệm của Winbond về lĩnh vực liên quan đến các IC logic máy tính. Hãng tiếp tục công bố thêm các sản phẩm, như là TPM (Trusted Platform Module – Modul Nền tảng đã được Xác thực) và các bộ điều khiển Sideshow v.v. để đáp ứng các yêu cầu ứng dụng đa dạng của các hệ thống máy tính. Các IC dân dụng của hãng tập trung vào thiết kế sản phẩm IC thanh nhạc (Speech ICs) và các IC đa phương tiện (Multimedia). Hãng Nuvoton đã giành được sự tin tưởng của khách hàng bằng cách thực hiện khả năng thiết kế sâu sắc. Nhằm phù hợp với giá trị của Nuvoton về mối quan hệ lâu dài với các đối tác và khách hàng, Nuvoton đã thành lập các công ty con tại Mỹ, Trung Quốc và Israel để tăng cường hỗ trợ cho các khách hàng khu vực và quản lý toàn cầu. Để cải thiện tỷ lệ năng suất, quản lý chuỗi cung ứng, và sự hài lòng của khách hàng, Nuvoton đã thực hiện một tiêu chuẩn cứng rắn về kiểm soát chu trình sản xuất và hệ thống kiểm soát chất lượng. Năm 2012, Novoton đã chỉ định công ty TULA làm nhà phân phối ủy quyền cung cấp các sản phẩm và giải pháp của hãng tại thị trường Việt Nam. 2.2 Vi điều khiển ARM Cortex – M0 của hãng Nuvoton Hiện nay, dòng chip ARM được phát triển tới lõi MCU 64 bit Cortex - M4 với nhiều tính năng nổi bật. Hãng Nuvoton bỏ qua bước phát triển cho dòng CortexM3 Đồ án tốt nghiệp 9 SV: Nguyễn Tâm Phúc Khoa: CNKT Điện tử - Viễn thông Lớp: ĐH Điện tử - K3 đi đến phát triển dòng CortexM4 để phù hợp với nhu cầu của các công nghệ tích hợp yêu cầu công nghệ cao bây giờ. Hãng đã thiết kế thành công chip MCU lõi ARM 32-bit đầu tiên từ năm 2000. Đến năm 2009 hãng cho ra đời sản phẩm chip lõi ARM Cortex-M0 đầu tiên và nhanh chóng chiếm vị trí số 1 thế giới và châu á về doanh số bán chip MCU. Dòng ARM Cortex – M0 khá đa dạng về chủng loại, cấu hình và đáp ứng nhu cầu thị trường về dòng chip 32-bit này. Vi điều khiển lõi ARM Cortex-M0 có nhiều giao diện ngoại vi đáp ứng tính năng mạnh mẽ và khả năng kết nối. Nó được phát triển để cung cấp một nền tảng chi phí thấp, đáp ứng nhu cầu thực thi của MCU với việc giảm số lượng bóng bán dẫn trong lõi ARM Cortex dẫn tới tiêu thụ điện năng thấp và giảm giá thành vi xử lý, đồng thời cung cấp hiệu năng tính toán cao. Dòng chíp MCU - 32 bit lõi ARM Cortex M0 là mẫu chip 32 bit có khả năng tiêu thụ chỉ 9 μA/MHz, thấp hơn khoảng 30% so với các chip truyền thống 8/16 bit sử dụng. Mặc dù điện năng sử dụng thấp hơn nhưng hiệu năng làm việc của chip cao hơn so với các chip đối thủ. Mục tiêu của ARM là thu hút những nhà cung cấp thiết bị cần nâng cấp sản phẩm sử dụng chip 8/16 bit di chuyển sang sử dụng chip 32 bit mới. ARM Cortex M0 được cho là phù hợp cho một loạt các thiết bị ứng dụng trong công nghiệp lẫn tiêu dùng, từ cảm biến ánh sáng phòng đến cảm biến điều khiển động cơ… Hiện tại, Freescale và NXP Semiconductor đã kí kết với ARM trong việc sử dụng Cortex M0, trong đó NXP Semiconductor là hãng sản xuất đã lựa chọn chip ARM Cortex M0 cũng sử dụng điện năng thấp cùng hiệu suất làm việc cao so với các chip 8/16 bit. 2.3 Đặc điểm của dòng chíp MCU – 32 bit lõi ARM Cotex M0 Dòng vi điều khiển ARM Cortex-M được thiết kế nhúng tối ưu hóa cho các ứng dụng vi xử lý MCU. Dòng ARM Cortex-M0 là dòng vi điều khiển lõi ARM có kích thước rất nhỏ, tiêu thụ điện năng thấp và có kiến trúc được sắp xếp hợp lý tương thích với việc sử dụng tools nạp của các hãng khác để phát triển các ứng dụng. Hình 2.1: Khối điều khiển chức năng của Cortex M0 Đồ án tốt nghiệp 10 SV: Nguyễn Tâm Phúc Khoa: CNKT Điện tử - Viễn thông Lớp: ĐH Điện tử - K3 Các bộ vi điều khiển ARM Cortex -M0 có cấu hình đa tầng, 32-bit xử lý RISC. Nó có một giao diện AHB-Lite bao gồm một thành phần NVIC và chức năng tùy chọn gỡ lỗi phần cứng. Các bộ vi điều khiển có thể thực thi mã Thumb và tương thích với bộ xử lý ARM Cortex-M khác, hỗ trợ hai chế độ chế độ Thread và chế độ Handler. Chế độ Handler được nhập như là kết quả của một ngoại vi. Một ngoại vi trả lại có thể được dùng trong chế độ Handler. Chế độ Thread được nhập vào Reset và có thể được nhập như là một kết quả của một sự trả lại ngoại vi. CPU Cortex-M0 cung cấp khả năng điều khiển ngắt ngoại lệ gọi là vector điều khiển ngắt lồng nhau (NVIC), được liên kết chặt chẽ với nhân vi xử lý để cung cấp các tính năng: hỗ trợ vector ngắt gián đoạn lồng nhau; tiết kiệm bộ vi xử lý và có khả năng phục hồi, giảm và xác định độ trễ ngắt, thay đổi mức ưu tiên năng động. Đặc điểm lõi vi điều khiển ARM Cortex M0: - ARM Cortex -M0 lõi chạy lên đến 50 MHz - Một hệ thống timer 24-bit - Hỗ trợ chế độ ngủ công suất thấp - Chu kỳ đơn 32-bit hệ số nhân phần cứng - NVIC cho 32 ngắt đầu vào, với 4 mức ưu tiên - Dây nối tiếp gỡ lỗi hỗ trợ với 2 watchpoints / 4 breakpoin Hãng Nuvoton sản xuất chip MCU 32-bit lõi ARM Cortex-M0 cung cấp nhiều tính năng hiện đại cũng như khả năng giao tiếp ngoại vi phong phú với kích thước rất nhỏ, tiêu thụ điện năng thấp nên dễ dàng phát triển các ứng dụng và tích hợp các đặc tính kỹ thuật hiện đại như: - Dung lượng bộ 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 22MHz, có thể điều chỉnh độ chính xác nhờ phần tử thạch anh bên ngoài 32,768Khz. - Khả năng hỗ trợ nạp đa năng (ISP, ICP và song song), nạp bằng tools nạp của chính hãng như NuGang, Nu-Link hoặc các tools nạp phổ biến của hãng khác như J-Link, U Link và các máy nạp rom đa năng của Elnec, Xeltek, Hilo,... - Có khả năng chống nhiễu tốt, thích hợp cho các ứng dụng dân dụng cũng như trong công nghiệp. - Dải nhiệt độ hoạt động từ -40ºC ~ +85ºC. - Cung cấp các ứng dụng mạnh mẽ và khả năng kết nối với nhiều giao diện ngoại vi. Đồ án tốt nghiệp 11 SV: Nguyễn Tâm Phúc Khoa: CNKT Điện tử - Viễn thông Lớp: ĐH Điện tử - K3 Hình 2.2: Mức độ tiêu thụ điện năng của các dòng chíp MCU-32 Bit Mặc dù cung cấp nhiều tính năng hiện đại, tích hợp nhiều khả năng giao tiếp ngoại vi, có khả năng tích hợp khối phát nhạc (Voice Unit) trên chip, tiêu thụ điện năng thấp nhưng dòng chip này vẫn có giá cả khá hợp lý cho người dùng lựa chọn để phát triển thay thế các dòng chip khác. 2.4 Quá trình phát triển các dòng chíp 32 bit lõi ARM Cotex M0 của Nuvoton Hình 2.3: Quá trình phát triển của NuMiCro - Năm 2009: bắt đầu thiết kế mẫu các dòng NUC100, NUC120, NUC130, NUC140 với các ứng dụng cơ bản như USB 2.0, CAN 2.0B, 12 bit chuyển đổi ADC. - Năm 2010: nâng cấp dòng chip MUC 8051 lên MUC 32-bit cho các ứng dụng truyền thông liên lạc và ứng dụng cho USB. - Năm 2011: ra đời dòng mới Mini51 là chip MCU có nguồn điện áp cực thấp với màn hình LCD. - Năm 2012: phát triển thêm dòng động cơ, chip MCU mật độ cao và MCU điều khiển Ethernet. - Năm 2013:phát triển thêm các dòng chip nhạc MCU ISD có tích hợp VoiceIC trên chip… Đồ án tốt nghiệp 12 SV: Nguyễn Tâm Phúc Khoa: CNKT Điện tử - Viễn thông Lớp: ĐH Điện tử - K3 2.5 Các tính năng nổi bật có trong các dòng ARM Cortex-M0 Bên cạnh các dòng 32 bit như M051(64K), NUC100(128K), NUC140(128K), NUC470(128K)... một dòng mới là NuMicro M051 gồm M052/54/58/516 để đáp ứng nhu cầu vi điều khiển 8bit/16bit của khách hàng toàn cầu với hiệu suất vi điều khiển 32 bit cao hơn. Hình 2.4: Biểu đồ phân loại dòng chip 32-bit lõi ARM Cortex-M0 Trong dòng chíp ARM Cortex M0 mỗi chíp sẽ có những tài nguyên và tính năng nổi bật khác nhau để đáp ứng từng ứng dụng và nhu cầu của người dùng. Ngoài các chức năng cơ bản của vi điều khiển, ARM Cortex M0 còn tích hợp thêm một số chức năng kết nối ngoại vi như CAN, LIN, USB… Hình 2.5: Tính năng nổi bật có trong các dòng ARM Cortex-M0 Đồ án tốt nghiệp 13 SV: Nguyễn Tâm Phúc
- Xem thêm -

Tài liệu liên quan

thumb
Năng lượng gió...
130
78479
145