Tin học văn phòng - Chương 10: Vi điều khiển ARM
Tạo ra một tần số dao động ngoài từ 10-
25MHz từ mạch dao động cơ bản và có
thể tăng lên 60 MHz để cung cấp cho CPU
ARM và thiết bị ngoại vi.
• Tần số đầu ra của PLL có thể thay đổi tự
động, cho phép thiết bị điều chỉnh theo tốc
độ thực thi để duy trì nguồn năng lượng
khi ở trạng thái rảnh rỗi
27 trang |
Chia sẻ: huyhoang44 | Lượt xem: 649 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Tin học văn phòng - Chương 10: Vi điều khiển ARM, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Chương 10. VI ĐIỀU KHIỂN ARM
NỘI DUNG:
– Giới thiệu chung về họ vi điều khiển ARM
– Cấu trúc bên trong
– Mô phỏng trên phần mềm
– Thí dụ trên board SAM7S256-Amtel
Hệ Thống máy tính 122/01/2017
22/01/2017 Hệ Thống máy tính 2
Cấu trúc ARM (viết tắt từ tên gốc là Advanced RISC
Machine) là một loại cấu trúc vi xử lý 32 bit và 64 bit
kiểu RISC được sử dụng rộng rãi trong các thiết kế
nhúng. Chúng có đặc điểm tiết kiệm năng lượng, vì
vậy các bộ CPU ARM chiếm ưu thế trong các sản
phẩm điện tử di động.
Các đặc tính của ARM bao gồm:
•Cấu trúc nạp / lưu trữ.
•Hỗ trợ tập lệnh trực giao.
•Thanh ghi lớn.
•Hầu hết các lệnh được thực hiện trong 1 chu kỳ
CPU.
•Chiều dài mã máy cố định, do đó dễ dàng thực hiện
đường ống hóa (pipeline).
ĐẶC ĐiỂM HỌ VI ĐiỀU KHIỂN ARM
• Là vi điều khiển tiên tiến xử lý 32 bít
• Được sử dụng rộng rãi trên các điện thoại
di động
• Tần số hoạt động lên đến 60MHz
• Khả năng tính toán cao, tiêu thụ nguồn
năng lượng thấp
• Có phần cứng riêng biệt để hỗ trợ cơ chế
xử lý pipeline
Hệ Thống máy tính 322/01/2017
ĐẶC ĐiỂM HỌ VI ĐiỀU KHIỂN ARM
• Cơ chế pipeline:
• Tập lệnh kiểu RISC
Hệ Thống máy tính 422/01/2017
CẤU TRÚC BÊN TRONG
• Gồm 15 thanh ghi
32 bít:
Hệ Thống máy tính 522/01/2017
CẤU TRÚC BÊN TRONG
• Hỗ trợ xử lý 2 kiểu tập lệnh
• Tập lệnh ARM 32 bít
• Tập lệnh Thumb 16 bít
Hệ Thống máy tính 622/01/2017
CẤU TRÚC BÊN TRONG
• Ưu điểm của tập lệnh thunb
– Tập lệnh THUMB cho giá trị kết quả thấp hơn
tập lệnh ARM nhưng mà các kết quả này
chiếm một tỷ lệ lớn hơn.
– Tập lệnh THUMB tiết kiệm được không gian
nhớ 30% và chạy nhanh hơn 40% so với tập
lệnh ARM.
– Tập lệnh THUMB không có điều kiện thực thi
trừ các lệnh rẽ nhánh.
Hệ Thống máy tính 722/01/2017
CẤU TRÚC BÊN TRONG
• Khi sử dụng tập lệnh thumb các thanh ghi cao
từ R8-R12 bị giới hạn truy cập:
Hệ Thống máy tính 822/01/2017
CẤU TRÚC BÊN TRONG
• Cách viết chương trình C với tập lệnh ARM và tập
lệnh THUMB:
#pragma ARM // khai báo các lệnh ARM
int main(void)
{ while(1){
THUMB_function(); //gọi đến hàm THUMB
}}
#pragma THUMB
void THUMB_function(void)
{
unsigned long i,delay;
for (i = 0x00010000;i < 0x01000000 ;i = i<<1){
for (delay = 0;delay<0x000100000;delay++){} //tạo vòng lặp
IOSET1 = i; //chuyển đến led tiếp theo
}}
Hệ Thống máy tính 922/01/2017
CẤU TRÚC BÊN TRONG
• Cách viết chương trình C với tập lệnh
ARM và tập lệnh THUMB:
Hoặc:
int ARM_FUNCTION ( int my_var) __ARM
{}
int THUMB_FUNCTION ( int my_var)
__THUMB {}
Hệ Thống máy tính 1022/01/2017
LẬP TRÌNH THANH GHI
• Một thanh ghi chức năng được điều khiển
bởi 3 thanh ghi người dùng:
Hệ Thống máy tính 1122/01/2017
MEMORY ACELARATER MODULE
(MAM)
• Là bộ nhớ nằm giữa bộ nhớ Flash và CPU
ARM, có tốc độ thực thi cao:
Hệ Thống máy tính 1222/01/2017
MEMORY ACELARATER MODULE
(MAM)
• MAM được tạo ra như là một cache đầy
đủ cho phép CPU dễ dàng truy cập trực
tiếp vào FLASH:
Hệ Thống máy tính 1322/01/2017
MEMORY ACELARATER MODULE
(MAM)
• #include "LPC21xx.h"
• void ChangeGPIOPinState(unsigned int state);
• int main(void){
• unsigned int delay,val;
• unsigned int FLASHer = 0x00010000; // Khai báo cục bộ
• IODIR0 = 0x00FF0000; // Thiết lập các chân ra
• VPBDIV = 0x02;
• MAMTIM = 0x03;
• MAMCR = 0x02;
• for(delay = 0;delay<0x100000;delay++) //tạo vòng lặp
• {;}
• ChangeGPIOPinState(FLASHer); //Đổi trạng thái các chân ra ở cổng
• FLASHer = FLASHer <<1; //Dịch đến đèn led tiếp
• if(FLASHer&0x01000000) {
• FLASHer = 0x00010000; //Lặp lại đèn đầu tiên
• }}}
• void ChangeGPIOPinState(unsigned int state)
• {
• IOSET0 = state; //set output pins
• IOCLR0 = ~state; //clear output pins
• }
Hệ Thống máy tính 1422/01/2017
PLL- Phase Locked Loop
• Tạo ra một tần số dao động ngoài từ 10-
25MHz từ mạch dao động cơ bản và có
thể tăng lên 60 MHz để cung cấp cho CPU
ARM và thiết bị ngoại vi.
• Tần số đầu ra của PLL có thể thay đổi tự
động, cho phép thiết bị điều chỉnh theo tốc
độ thực thi để duy trì nguồn năng lượng
khi ở trạng thái rảnh rỗi.
Hệ Thống máy tính 1522/01/2017
PLL- Phase Locked Loop
Hệ Thống máy tính 1622/01/2017
PLL- Phase Locked Loop
• Tần số ra của PLL là: Cclk=M x Osc
• Ngược lại PLL lại được điều khiển bởi một
dao động hoạt động hiện hành (CCO) ở
dải tần 156MHz-320MHz.
• Hằng số thứ 2 P phải được lập trình để
đảm bảo sao cho CCO được giữ một giá
trị cụ thể: Fcco = Cclk x 2 x P
• Thực nghiệm thì P=2.
Hệ Thống máy tính 1722/01/2017
PLL- Phase Locked Loop
• Khi cập nhật giá trị thanh ghi PLLCON và
PLLCFG thì phải ghi liên tiếp hai giá trị
0x000000AA và 0x00000055 cho thanh
ghi PLLFEED trong các chu kỳ liên tiếp.
• Để cài đặt PLL phải ghi các giá trị cho P
và M tới thanh ghi PLLCFG, sau đó set D0
của thanh ghi PLLCON để cho phép PLL
khởi động
Hệ Thống máy tính 1822/01/2017
PLL- Phase Locked Loop
• Thanh ghi PLLCFG:
Hệ Thống máy tính 1922/01/2017
PLL- Phase Locked Loop
• Thuật toán khởi động PLL
Hệ Thống máy tính 2022/01/2017
Bộ chia tần (VLSI Peripheral Bus
Divider)
• Thanh ghi VPBDIV được lập trình chứa số
lần giảm tốc độ
Hệ Thống máy tính 2122/01/2017
THÍ DỤ PLL
void init_PLL(void)
{
PLLCFG = 0x00000024; // Thiết lập hệ số nhân và bộ chia cho
PLL
// give 60.00 MHz
PLLCON = 0x00000001; // Kích hoạt PLL
PLLFEED = 0x000000AA; // Cập nhật thanh ghi PLLFEED
PLLFEED = 0x00000055;
while (!(PLLSTAT & 0x00000400)); // kiểm tra bít Lock
PLLCON = 0x00000003; // Kết nối tới PLL
PLLFEED = 0x000000AA; //Cập nhật các thanh ghi PLL
PLLFEED = 0x00000055;
VPBDIV = 0x00000002; //Thiết lập bus VLSI với tần số 30.000MHz
} Hệ Thống máy tính 2222/01/2017
KHỐI ĐA CHỨC NĂNG
Hệ Thống máy tính 2322/01/2017
THÍ DỤ CẤU HÌNH PINSEL CHO
NGẮT
STT Chân Kí hiệu Giá trị Loại ngắt
1 3:2 P0.1 11 EINT0
2 7:6 P0.3 11 EINT1
3 15:14 P0.7 11 EINT2
4 19:18 P0.9 11 EINT3
5 29:28 P0.14 10 EINT1
6 31:30 P0.15 10 EINT2
Hệ Thống máy tính 2422/01/2017
MÔ PHỎNG TRÊN PHẦN MỀM
• Keil ARM
• Proteus
Hệ Thống máy tính 2522/01/2017
KIT AT91SAM7S256
Hệ Thống máy tính 2622/01/2017
KIT AT91SAM7S256
Hệ Thống máy tính 2722/01/2017
Các file đính kèm theo tài liệu này:
- chuong_10_arm_0027.pdf