Thiết kế kit thực hành vi điều khiển arm – cortex m0
- 81 trang
- file .pdf
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
CMSIS 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
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 Bộ nhớ chỉ đọc có khả
Memory 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 Bộ thu/phát không đồng
Receiver/Transmitter 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
R15 Rd
Register file R0 – R15
PC
Result
A Rm B B
Rn
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
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
CMSIS 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
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 Bộ nhớ chỉ đọc có khả
Memory 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 Bộ thu/phát không đồng
Receiver/Transmitter 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
R15 Rd
Register file R0 – R15
PC
Result
A Rm B B
Rn
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