LẬP TRÌNH VI ĐIỀU KHIỂN ATMEGA 128 VÀ MÔ PHỎNG TRÊN PROTEUS CHO HỆ ĐIỀU HÀNH NHÚNG THỜI GIAN THỰC FREERTOS - Pdf 20

Đồ án:
LẬP TRÌNH VI ĐIỀU KHIỂN ATMEGA 128 VÀ MÔ
PHỎNG TRÊN PROTEUS CHO HỆ ĐIỀU HÀNH
NHÚNG THỜI GIAN THỰC FREERTOS
Đồ án vi điều khiển
Đặt vấn đề
Ngày nay, cùng với sự phát triển chung của công nghệ, lĩnh vực hệ điều
hành đã có những bước tiến dài trong quá trình hình thành và phát triển
của mình. Từ sự khởi đầu đơn giản có bản quyền trên máy tính cá nhân
như Hệ điều hành DOS, tiến lên các phiên bản Windows như win3.1 rồi
win95, win 98 mới đây nhất là hệ điều hành đa nhiệm thời gian thực
Win7, bên cạnh đó phải kể đến các hệ điều hành mã nguồn mở như
Max OS, Linux, Ubuntu hiện nay đã xuất hiện những hệ điều hành
dành cho điện thoại đi động như Windown Mobile, và đặc biệt trong
lĩnh vực điện tử có những hệ điều hành chuyên biệt cho các chip xử lý
như VxWork, uCLinux,FreeRTOS, OpenRTOS và SAFERTOS Trong
đó cần phải nói đến FreeRTOS, với tính thời gian thực và các ưu điểm
đã giải quyết nhiều yêu cầu trong công nghệ vi xử lý. Để làm rõ điều
này, đề tài của em trình bày 3 phần:
PHẦN I : MỞ ĐẦU
PHẦN NÀY TRÌNH BÀY VỀ TÌNH HÌNH NGHIÊN CỨU VỀ ĐỀ
TÀI NÀY TRONG VÀ NGOÀI NƯỚC, MỤC TIÊU CỦA ĐỀ TÀI
PHẦN II: GIỚI THIỆU HĐH NHÚNG THỜI GIAN THỰC
FREERTOS VÀ VI ĐIỀU KHIỂN ATMEGA 128
PHẦN NÀY TRÌNH BÀY NGUYÊN LÝ HỆ ĐIỀU HÀNH NÓI
CHUNG VÀ GIẢI THÍCH CÁC KHÁI NIỆM, TRÌNH BÀY VỀ
FREERTOS VÀ VĐK ATMEGA 128
PHẦN III: CÁC BƯỚC THIẾT KẾ ỨNG DỤNG MINH HỌA
Khoa Điện
2
Đồ án vi điều khiển

THIS PRESENTATION AS MANAGER DEVICES AND
EXPLANATION Ò GERENAL CONCEPTS, FREERTOS AND
PRESENTATION OF VDK ATMEGA 128
PART III: THE STEP DESIGN APPLICATIONS Minh Hoa
THIS STEP PRESENTATION OF DESIGN APPLICATIONS ON
OS FREERTOS
PART IV: THE RESULTS OF ASSESSMENT AND DAT
THIS YET ACHIEVED RESULTS AND GENERAL
ASSESSMENT
Khoa Điện
5
Đồ án vi điều khiển
PHẦN I : MỞ ĐẦU
I.1 TỔNG QUAN TÌNH HÌNH NGHIÊN CỨU NGOÀI NƯỚC
Ngoài nước : đề tài đang được nghiên cứu rất mạnh mẽ có thể nói hệ
thống nhúng được sử dụng trong rất nhiều lĩnh vực, rất nhiều mặt hàng từ
các thiết bị cao cấp như vệ tinh, tên lửa, tàu con thoi đến các thiết bị tiêu
dùng như lò vi ba, máy sấy, máy hút bụi…
Thị trường hệ thống nhúng có tiềm năng phát triển vô cùng lớn. Theo các
nhà thông kê trên thế giới thì số chip xử lý trong các máy PC và các server,
các mạng LAN, WAN, Internet chỉ chiếm không đầy 1% tổng số chip vi xử
lý có trên thế giới. Hơn 99% số vi xử lý còn lại nằm trong các hệ thống
nhúng.
Tại Châu Á, Nhật Bản đang dẫn đầu về thị trường nhúng và là một trong
những thị trường phần mềm nhúng hàng đầu thế giới. Đây được coi là thị
trường đầy hứa hẹn với các đối tác chuyên sản xuất phần mềm nhúng như
Trung Quốc, Indonesia, Nga, Ireland, Israel, và cả Việt Nam.
I.2 TỔNG QUAN TÌNH HÌNH NGHIÊN CỨU TRONG NƯỚC
Trong nước: Hệ thống nhúng mới được quan tâm trong thời gian gần
đây. Các doanh nghiệp làm phần mềm nhúng cũng chưa nhiều, mới có một

Một hệ thống máy tính thường được chia làm bốn phần chính : phần cứng,
hệ điều hành, các chương trình ứng dụng và người sử dụng.
Phần cứng bao gồm CPU, bộ nhớ, các thiết bị nhập xuất, đây là những
tài nguyên của máy tính. Chương trình ứng dụng như các chương trình
dịch, hệ thống cơ sở dữ liệu, các trò chơi, và các chương trình thương mại.
Các chương trình này sử dụng tài nguyên của máy tính để giải quyết các
yêu cầu của người sử dụng. Hệ điều hành điều khiển và phối hợp việc sử
dụng phần cứng cho những ứng dụng khác nhau của nhiều người sử dụng
khác nhau. Hệ điều hành cung cấp một môi trường mà các chương trình có
thể làm việc hữu hiệu trên đó.
Khoa Điện
8
Đồ án vi điều khiển
Hình 1.1 Mô hình trừu tượng của hệ thống máy tính
Hệ điều hành có thể được coi như là bộ phân phối tài nguyên của máy
tính. Nhiều tài nguyên của máy tính như thời gian sử dụng CPU, vùng bộ
nhớ, vùng lưu trữ tập tin, thiết bị nhập xuất v.v… được các chương trình
yêu cầu để giải quyết vấn đề. Hệ điều hành hoạt động như một bộ quản lý
các tài nguyên và phân phối chúng cho các chương trình và người sử dụng
khi cần thiết. Do có rất nhiều yêu cầu, hệ điều hành phải giải quyết vấn đề
tranh chấp và phải quyết định cấp phát tài nguyên cho những yêu cầu theo
thứ tự nào để hoạt động của máy tính là hiệu quả nhất. Một hệ điều hành
cũng có thể được coi như là một chương trình kiểm soát việc sử dụng máy
tính, đặc biệt là các thiết bị nhập xuất.
Tuy nhiên, nhìn chung chưa có định nghĩa nào là hoàn hảo về hệ điều
hành. Hệ điều hành tồn tại để giải quyết các vấn đề sử dụng hệ thống máy
tính. Mục tiêu cơ bản của nó là giúp cho việc thi hành các chương trình dễ
dàng hơn. Mục tiêu thứ hai là hỗ trợ cho các thao tác trên hệ thống máy
tính hiệu quả hơn. Mục tiêu này đặc biệt quan trọng trong những hệ thống
nhiều người dùng và trong những hệ thống lớn(phần cứng + quy mô sử

dụng đĩa để lưu các dữ liệu nhập cũng như xuất.
Khoa Điện
10
Đồ án vi điều khiển
II.1.2.2 Hệ thống xử lý theo lô đa chương
Khi có nhiều công việc cùng truy xuất lên thiết bị, vấn đề lập lịch cho
các công việc là cần thiết. Khía cạnh quan trọng nhất trong việc lập lịch là
khả năng đa chương. Đa chương (multiprogram) gia tăng khai thác CPU
bằng cách tổ chức các công việc sao cho CPU luôn luôn phải trong tình
trạng làm việc .
Ý tưởng như sau : hệ điều hành lưu giữ một phần của các công việc ở nơi
lưu trữ trong bộ nhớ . CPU sẽ lần lượt thực hiện các phần công việc này.
Khi đang thực hiện, nếu có yêu cầu truy xuất thiết bị thì CPU không nghỉ
mà thực hiện tiếp công việc thứ hai…
Với hệ đa chương hệ điều hành ra quyết định cho người sử dụng vì
vậy, hệ điều hành đa chương rất tinh vi. Hệ phải xử lý các vấn đề lập lịch
cho công việc, lập lịch cho bộ nhớ và cho cả CPU nữa.
II.1.2.3 Hệ thống chia xẻ thời gian
Hệ thống chia xẻ thời gian là một mở rộng logic của hệ đa chương. Hệ
thống này còn được gọi là hệ thống đa nhiệm (multitasking). Nhiều công
việc cùng được thực hiện thông qua cơ chế chuyển đổi của CPU như hệ đa
chương nhưng thời gian mỗi lần chuyển đổi diễn ra rất nhanh.
Hệ thống chia xẻ được phát triển để cung cấp việc sử dụng bên trong của
một máy tính có giá trị hơn. Hệ điều hành chia xẻ thời gian dùng lập lịch
CPU và đa chương để cung cấp cho mỗi người sử dụng một phần nhỏ trong
máy tính chia xẻ. Một chương trình khi thi hành được gọi là một tiến trình.
Trong quá trình thi hành của một tiến trình, nó phải thực hiện các thao tác
nhập xuất và trong khoảng thời gian đó CPU sẽ thi hành một tiến trình
khác. Hệ điều hành chia xẻ cho phép nhiều người sử dụng chia xẻ máy tính
một cách đồng bộ do thời gian chuyển đổi nhanh nên họ có cảm giác là các

Khoa Điện
12
Đồ án vi điều khiển
Một ví dụ về hệ thống xử lý đối xứng là version Encore của UNIX cho máy
tính Multimax. Hệ thống này có hàng tá bộ xử lý. Ưu điểm của nó là nhiều
tiến trình có thể thực hiện cùng lúc . Một hệ thống đa xử lý cho phép nhiều
công việc và tài nguyên được chia xẻ tự động trong những bộ xử lý khác
nhau.
Hệ thống đa xử lý không đồng bộ thường xuất hiện trong những hệ thống
lớn, trong đó hầu hết thời gian hoạt động đều dành cho xử lý nhập xuất.
II.1.2.5 Hệ thống phân tán
Hệ thống này cũng tương tự như hệ thống chia xẻ thời gian nhưng các
bộ xử lý không chia xẻ bộ nhớ và đồng hồ, thay vào đó mỗi bộ xử lý có bộ
nhớ cục bộ riêng. Các bộ xử lý thông tin với nhau thông qua các đường
truyền thông như những bus tốc độ cao hay đường dây điện thoại.
Các bộ xử lý trong hệ phân tán thường khác nhau về kích thước và chức
năng. Nó có thể bao gồm máy vi tính, trạm làm việc, máy mini, và những
hệ thống máy lớn. Các bộ xử lý thường được tham khảo với nhiều tên khác
nhau như site, node, computer v.v tùy thuộc vào trạng thái làm việc của
chúng.
Các nguyên nhân phải xây dựng hệ thống phân tán là:
Chia xẻ tài nguyên : Một người sử dụng A có thể sử dụng máy in laser
của người sử dụng B và người sử dụng B có thể truy xuất những tập tin của
A. Tổng quát, chia xẻ tài nguyên trong hệ thống phân tán cung cấp một cơ
chế để chia xẻ tập tin ở vị trí xa, xử lý thông tin trong một cơ sở dữ liệu
phân tán, in ấn tại một vị trí xa, sử dụng những thiết bị ở xa đểõ thực hiện
các thao tác.
Tăng tốc độ tính toán : Một thao tác tính toán được chia làm nhiều phần
nhỏ cùng thực hiện một lúc. Hệ thống phân tán cho phép phân chia việc
tính toán trên nhiều vị trí khác nhau để tính toán song song.

14
Đồ án vi điều khiển
II.2.1 TỔNG QUAN
Những Tính Năng Chính Của ATmega128:
- ROM : 128 Kbytes
-SRAM: 4Kbytes
-EEPROM : 4Kbytes
- 64 thanh ghi I/O
-160 thanh ghi vào ra mở rộng
-32 thanh ghi đa mục đích.
- 2 bộ định thời 8 bit (0,2).
-2 bộ định thời 16 bit (1,3).
-Bộ định thời watchdog
-Bộ dao động nội RC tần số 1 MHz, 2 MHz, 4 MHz, 8 MHz
-ADC 8 kênh với độ phân giải 10 bit (Ở dòng Xmega lên tới 12 bit )
-2 kênh PWM 8 bit
-6 kênh PWM có thể lập trình thay đổi độ phân giải từ 2 tới 16 bit
-Bộ so sánh tương tự có thể lựa chọn ngõ vào
-Hai khối USART lập trình được
-Khối truyền nhận nối tiếp SPI
-Khối giao tiếp nối tiếp 2 dây TWI
-Hỗ trợ boot loader
-6 chế độ tiết kiệm năng lượng
-Lựa chọn tần số hoạt động bằng phần mềm
-Đóng gói 64 chân kiểu TQFP.
-Tần số tối đa 16MHz
-Điện thế : 4.5v - 5.5v.
Vi điều khiển AVR do hãng Atmel ( Hoa Kì ) sản xuất được gới thiệu lần
đầu năm 1996. AVR có rất nhiều dòng khác nhau bao gồm dòng Tiny AVR
( như AT tiny 13, ATtiny 22…) có kích thước bộ nhớ nhỏ, ít bộ phận ngoại

Bộ Nhớ Chương Trình : Bộ nhớ chương trình của AVR là bộ nhớ
Flash có dung lượng 128 K bytes. Bộ nhớ chương trình có độ rộng bus là
16 bit. Những địa chỉ đầu tiên của bộ nhớ chương trình được dùng cho
bảng véc tơ ngắt. Cần để ý là ở vi điều khiển ATmega128 bộ nhớ chương
trình còn có thể được chia làm 2 phần : phần boot loader ( Boot loader
program section ) và phần ứng dụng ( Application program section ).
Phần boot loader chứa chương trình boot loader. Chương trình Boot
loader là một phần mềm nhỏ nạp trong vi điều khiển và được chạy lúc khởi
động. Phần mềm này có thể tải vào trong vi điều khiển chương trình của
người sử dụng và sau đó thực thi chương trình này. Mỗi khi reset vi điều
khiển CPU sẽ nhảy tới thực thi chương trình boot loader trước, chương
trình boot loader sẽ dò xem có chương trình nào cần nạp vào vi điều khiển
hay không, nếu có chương trình cần nạp, boot loader sẽ nạp chương trình
vào vùng nhớ ứng dụng (Application program section ), rồi thực thi chương
trình này. Ngược lại, boot loader sẽ chuyển tới chương trình ứng dụng có
sẵn trong vùng nhớ ứng dụng để thực thi chương trình này.
Phần ứng dụng (Application program section ) là vùng nhớ chứa
chương trình ứng dụng của người dùng. Kích thước của phần boot loader
và phần ứng dụng có thể tùy chọn. Thể hiện cấu trúc bộ nhớ chương trình
có sử dụng và không sử dụng boot loader, khi sử dụng phần boot loader ta
Khoa Điện
18
Đồ án vi điều khiển
thấy 4 word đầu tiên thay vì chỉ thị cho CPU chuyển tới chương trình ứng
dụng của người dung (là chương trình có nhãn start ) thì chỉ thị CPU nhảy
tới phần chương trình boot loader để thực hiện trước, rồi mới quay trở lại
thực hiện chương trình ứng dụng.
Bộ Nhớ Dữ Liệu : Bộ nhớ dữ liệu của AVR chia làm 2 phần chính là
bộ nhớ SRAM và bộ nhớ EEPROM. Tuy cùng là bộ nhớ dữ liệu nhưng hai
bộ nhớ này lại tách biệt nhau và được đánh địa chỉ riêng.

A : Chế độ bình thường
B: Chế độ tương thích ATmega103
Trong vùng nhớ vào ra mở rộng ( $0060 - $00FF ) chỉ có 6 lệnh sau là có
thể được sử dụng, là : ST / STS / STD và LD / LDS / LDD.
Lệnh CBI và SBI chỉ có thể làm việc với 32 thanh ghi thấp hơn trong vùng
nhớ vào ra , tức các thanh ghi I/O có địa chỉ từ $20 tới $3F ( địa chỉ
Khoa Điện
20
Đồ án vi điều khiển
SRAM ). 64 thanh ghi vào ra trong vùng nhớ vào ra ( phần số 2 ) có 2 kiểu
chọn địa chỉ : Nếu xem chúng là vùng nhớ vào ra thì địa chỉ sẽ là $00 -
$3F, khi sử dụng các lệnh in, out … ta phải sử dụng địa chỉ này. Nếu xem
chúng như là một phần của bộ nhớ SRAM thì sẽ có địa chỉ là $0020 -
$005F, khi ta dùng các lệnh như LD, ST… ta phải sử dụng kiểu địa chỉ này.
Tiệp ghanh ghi ( register file ) : Tiệp 32 thanh ghi đa chức năng
( $0000 - $001F ) đã được nói ở trên, ngoài chức năng là các thanh ghi đa
chức năng, thì các thanh ghi từ R26 tới R31 từng đôi một tạo thành các
thanh ghi 16 bit X, Y, Z được dùng làm con trỏ trỏ tới bộ nhớ chương trình
và bộ nhớ dữ liệu ( Hình 1.4 ). Thanh ghi con trò X, Y có thể dung làm con
trỏ trỏ tới bộ nhớ dữ liệu, còn thanh ghi Z có thể dùng làm con trỏ trỏ tới bộ
nhớ chương trình. Các trình biên dịch C thường dùng các thanh ghi con trỏ
này để quản lí Data stack của chương trình C.
Bộ nhớ EEPROM : Đây là bộ nhớ dữ liệu có thể ghi xóa ngay trong
lúc vi điều khiển đang hoạt động và không bị mất dữ liệu khi nguồn điện
cung cấp bị cắt. Có thể ví bộ nhớ dữ liệu EEPROM giống như là ổ cứng
( Hard disk ) của máy vi tính. Với vi điều khiển ATmega128, bộ nhớ
Khoa Điện
21
Đồ án vi điều khiển
EEPROM có kích thước là 4 Kbyte. EEPROM được xem như là một bộ

EEDR vào EEPROM, địa chỉ của ô nhớ cần ghi trong EEPROM được lưu
trong thanh ghi EEAR . Khi bit này là 0 thì không cho phép ghi vào
EEPROM. Bit EEMWE sẽ được xóa bởi phần cứng sau 4 chu kì máy.
Bit 1 – EEWE: EEPROM Write Enable : Bit này vừa đóng vai trò
như một bit cờ, vừa là bit điều khiển việc ghi dữ liệu vào EEPROM. Ở vai
trò của một bit điều khiển nếu bit EEMWE đã được set lên 1 thì khi ta set
bit EEWE lên 1 sẽ bắt đầu quá trình ghi dữ liệu vào EEPROM. Trong suốt
quá trình ghi dữ liệu vào EEPROM bit EEWE luôn giữ là 1. Ở vai trò của
một bit cờ khi quá trình ghi dữ liệu vào EEPROM hoàn tất, phần cứng sẽ tự
Khoa Điện
23
Đồ án vi điều khiển
động xóa bit này về 0. Trước khi ghi dữ liệu vào EEPROM ta cần phải biết
chắc là không có quá trình ghi EEPROM nào khác đang xảy ra, để biết
được điều này ta cần kiểm tra bit EEWE. Nếu bit EEWE là 1 tức là
EEPROM đang được ghi, ta phải chờ cho cho quá trình ghi vào EEPROM
hoàn tất thì mới ghi tiếp.
Bit 0 – EERE: EEPROM Read Enable : Khi bit này là 1, sẽ cho
phép đọc dữ liệu từ EEPROM, dữ liệu từ EEPROM có địa chỉ lưu trong
thanh ghi EEAR lập tức được chuyển vào thanh ghi EEDR. Khi bit EERE
là 0 thì không cho phép đọc EEPROM. Trước khi đọc dữ liệu từ EEPROM
ta cần biết chắc là không diễn ra quá trình ghi EEPROM bằng cách kiểm
tra bit EEWE. Để ý là sau khi quá trình đọc EEPROM hoàn tất, bit EERE
sẽ được tự động xoá bởi phần cứng. Nếu EEPROM đang được ghi thì ta
không thể đọc được dữ liệu từ EEPROM. Khi bắt đầu quá trình đọc dữ liệu
từ EEPROM, CPU sẽ tạm nghỉ 4 chu kì máy trước khi thực hiện lệnh kế
tiếp.
II.2.3 CỔNG VÀO RA
II.2.3.1 GIỚI THIỆU
Cổng vào ra là một trong số các phương tiện để vi điều khiển giao tiếp

a. Thanh Ghi DDRx.
Đây là thanh ghi 8 bit ( có thể đọc ghi ) có chức năng điều khiển
hướng của cổng (là lối ra hay lối vào ). Khi một bit của thanh ghi này được
set lên 1 thì chân tương ứng với nó được cấu hình thành ngõ ra. Ngược lại,
nếu bit của thanh ghi DDRx là 0 thì chân tương ứng với nó được thiết lập
thành ngõ vào. Lấy ví dụ: Khi ta set tất cả 8 bit của thanh ghi DDRA đều là
Khoa Điện
25

Trích đoạn PHẦN III CÁC BƯỚC THIẾT KẾ ỨNG DỤNG MINH HỌA
Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status