Do các khối chức năng của Atmega64L rất nhiều lên em chỉ đề cập đến các khối chức năng sử dụng trong luận văn này.
2.1.4.1.Lõi CPU của Atmega64L
Trong mục này sẽ mô tả tổng quát về cấu trúc lõi CPU của AVR.
Chức năng chính của lõi CPU là đảm bảo cho chương trình hoạt động. CPU
phải có khả năng truy cập vào bộ nhớ, thực hiện tính toán, điều khiển ngoại vi
và quản lý ngắt. Sơ đồ khối của CPU:
ĐH Công Nghệ - ĐHQG Hà Nội Khóa luận tốt nghiệp
___________________________________________________________________________ ____________________________________________
Các bộ xử lý AVR có kiến trúc Harvard, nghĩa là có bộ nhớ dữ liệu và bộ nhớ chương trình tách biệt nhau. Hình trên minh họa sơ đồ khối CPU của
AVR. Bus dữliệu dùng cho bộ nhớ dữ liệu là 1 bus 8 bit, cho phép nối hầu hết
các bộ phận ngoại vi với tệp thanh ghi ( register file). Bus dữ liệu dùng cho bộ
nhớ chương trình có độ rộng 16 bit và chỉ nối với thanh ghi lệnh.
a. Khối số học logic ALU
Khối số học (ALU) thực hiện các thao tác như thao tác bit, phép tính số
học và lôgic trên nội dung của các thanh ghi và ghi ngược kết quả vào tệp thanh ghi trên thanh ghi đã được chỉ định. Các thao tác này được thực hiện
trong một chu kỳ đồng hồ đơn lẻ. Mỗi một thao tác ALU đều làm ảnh hưởng đến các cờ trong thanh ghi trạng thái (STATUS), tùy thuộc vào lệnh.
b. Thanh ghi trạng thái SREG
Thanh ghi triạng thái có chứa 8bit cờ, đóng vai trò báo hiệu trạng thái
hiện tại của bộ xử lý. Tất cả các bit đó dược xóa bởi chương trình. Các địa chỉ
I/O của thanh ghi trang thái là $3F( địa chỉ bộ nhớ là $57).
Thanh ghi trạng thái không được lưu trữ bằng máy (machine) trong thời
gian diễn ra một thao tác ngắt. Lệnh trong một đoạn chương trình ngắt có thể
xủa đổi bít cờ trạng thái, và vì thế chương trình của người dùng phải lưu trữ
và khôi phục thanh ghi trạng thái trong thời gian có một ngắt.
c. Tập thanh ghi đa năng
Tất cả các bộ điều khiển AVRđều có 32 thanh ghi đa năng. Một số trong
các thanh ghi này còn có các chức năng riêng, bổ sung. Các thanh ghi dược đặt tên từ R0 đến R31. Tệp thanh ghi được tách thành 2 phần, mỗi phần có 16 thanh ghi, đánh số từ R0 đến R15 và R16 đến R31. Tất cả truy nhập trong
ĐH Công Nghệ - ĐHQG Hà Nội Khóa luận tốt nghiệp
___________________________________________________________________________ ____________________________________________
d. Thanh ghi con trỏ ngăn xếp SP
Thanh ghi này có độ rộng bằng 1 byte đối với các bộ xử lý có đến 256
byte bộ nhớ SRAM và bằng 2byte (được gọi là SPH và SPL) đối với các bộ xử
lý có bộ nhớ . Thanh ghi này sử dụng để chỉ đến vùng trong bộ nhớ SRAM ở đỉnh của ngăn xếp. Ngăn xếp được sử dụng để lưu trữ địa chỉ mà bộ xử lý trả
trở lại trong thời gian một ngắt và gọi thủ tục . Bởi vì SP được khởi tạo về
$0000 khi rết, nên chương trình người dùng cần phải khởi tạo SP cho thích
hợp, bởi vì địa chỉ bắt đầu của bộ nhắ SRAM không phải là $0000 mà là $60.
Ngăn xếp sắp xếp theo thứ tự từ trên xuống dưới trong địa chỉ bộ nhớ, nghĩa
là, việc đẩy một giá trị lên trên ngăn xếp sẽ làm cho SP giảm đi một giá trị. Khi
kéo một giá trị khỏi ngăn xếp sẽ làm tăng SP thêm một giá trị.
e. Việc thực thi lệnh
Bộ xử lý AVR được điều khiển bởi đồng hồ hệ thống, đồng hồ này có thể ở bên ngoài hoặc, nếu có tồn tại và được phép, một đồng hồ RC bên trong có thể được sử dụng. Đồng hồ hệ thống này không qua bất kỳ bộ chia nào và
được sử dụng trục tiếp cho tất cả các thao tác truy nhập bên trong bộ xử lý.
Bộ xử lý có một đường ống (pipeline) 2 tầng, và lệnh tìm nạp giải mã được
ĐH Công Nghệ - ĐHQG Hà Nội Khóa luận tốt nghiệp
___________________________________________________________________________ ____________________________________________
Hình 10: Tìm nạp/ giải mã lệnh và việc thực thi lệnh.
Cứ mỗi lần lệnh được tìm nạp, nếu đây là một lệnh liên quan đến ALU, nó
có thể được thực thi bởi khối ALU như được minh họa tren hình 3-5 cho một
chu trình đơn lẻ.
Hình 11: Việc thực thi của ALU bao gồm tìm/nạp thực thi, và ghi ngược lại vào thanh ghi.
Mặt khác, việc truy nhập bộ nhớ SRAM chiếm mất 2 chu kỳ, như dược
minh họa ở hình dưới. Nguyên nhân là việc truy nhập bộ nhớ SRAM sử dụng
một thanh ghi con trỏ dùng cho địa chỉ bộ nhớ SRAM. Thanh ghi con trỏ này chỉ là một trong các thanh ghi con trỏ (các cặp thanh ghi X, Y hoặc Z) có trên chip. Chu trình đồng hồ thứ nhất được cần đến để truy nhập tệp thanh ghi và
để thao tác trên thanh ghi con trỏ (các lệnh truy nhập bộ nhớ SRAM cho phếp tăng địa chỉ trước/ sau thao tác trên thanh ghi con trỏ). Ở thời điểm kết thúc
của chu kỳ đồng hồ thứ nhất, khối ALU thực hiện phép tính này, và sau đó địa
chỉ này được sử dụng để truy nhập ô nhớ SRAM và để ghi vào ô nhớ này ( hoặc đọc ra rừ đó vòa thanh ghi đích), như được minh họa hình dưới.
ĐH Công Nghệ - ĐHQG Hà Nội Khóa luận tốt nghiệp
___________________________________________________________________________ ____________________________________________
Hình 12: Các chu trình truy nhập dữ liệu lên thanh ghi SRAM trên chip.