Đề tài: NGHIÊN CỨU HỆ ĐIỀU HÀNH NHÚNG THỜI GIAN THỰC FREERTOS pot - Pdf 12

ĐẠI HỌC THÁI NGUYÊN
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO BÀI TẬP LỚN
MÔN:Kỹ Thuật Vi Điều Khiển
Đề tài:
NGHIÊN CỨU HỆ ĐIỀU HÀNH NHÚNG THỜI
GIAN THỰC FREERTOS
Thành viên tham gia : Phạm Ngọc Thạch
Ngô Hữu Hưng
Giáo viên hướng dẫn : Phạm Quốc Thịnh
Thái nguyên, tháng 11 năm 2009
MỤC LỤC
TÓM TẮT KẾT QUẢ B 5
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: 5
PHẦN I : MỞ ĐẦU 5
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

THIS STEP PRESENTATION OF DESIGN
APPLICATIONS ON OS FREERTOS 6
PART IV: THE RESULTS OF ASSESSMENT AND DAT
THIS YET ACHIEVED RESULTS AND GENERAL
ASSESSMENT 6
PHẦN I : MỞ ĐẦU 7
I.1 TỔNG QUAN TÌNH HÌNH NGHIÊN CỨU NGOÀI NƯỚC 7
I.2 TỔNG QUAN TÌNH HÌNH NGHIÊN CỨU TRONG NƯỚC 7
I.3 MỤC TIÊU ĐỀ TÀI 7
II.1 TỔNG QUAN HỆ ĐIỀU HÀNH 8
II.2 GIỚI THIỆU VI ĐIỀU KHIỂN ATmega 128 12
II.3 GIỚI THIỆU HỆ ĐIỀU HÀNH NHÚNG THỜI GIAN THỰC FreeRTOS 33
Hình 3.1: Thiết kế mô phỏng ứng dụng 44
III.2 LỰA CHỌN CẤU HÌNH CHO HĐH QUA FreeRTConfig.h 45
III.3 VIẾT PHẦN ỨNG DỤNG BẰNG AVR Studio 47
III.4 DỊCH PHẦN ỨNG DỤNG THÀNH FILE .hex 47
III.5 DÙNG MẠCH NẠP VÀO VI ĐIỀU KHIỂN 48
3
4
Tìm Hiểu Hệ Điều Hành Nhúng Thời Gian Thực
TÓM TẮT KẾT QUẢ B
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,

FreeRTOS, and OpenRTOS SAFERTOS. In which need FreeRTOS
mention, with real-time and solved many advantages required in
microprocessor technology. To illustrate this, she presented the topic of
three parts:
PART I: TO TOP
PRESENTATION OF THIS SITUATION RESEARCH ON THIS
TOPIC AT HOME AND ABROAD, OBJECTIVES OF THEMES
PART II: ABOUT TIME AVAILABILITY OF OS FREERTOS VI AND
CONTROL ATMEGA 128
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 Công Nghệ Thông Tin-Đại Học Thái Nguyên
6
Tìm Hiểu Hệ Điều Hành Nhúng Thời Gian Thực
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.

Hệ điều hành là một phần quan trọng của hầu hết các hệ thống máy tính. 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 đó.
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
Khoa Công Nghệ Thông Tin-Đại Học Thái Nguyên
8
Tìm Hiểu Hệ Điều Hành Nhúng Thời Gian Thực
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). Tuy nhiên hai mục tiêu này
cũng có phần tương phản vì vậy lý thuyết về hệ điều hành tập trung vào việc tối

các công việc sao cho CPU luôn luôn phải trong tình trạng làm việc .
Khoa Công Nghệ Thông Tin-Đại Học Thái Nguyên
9
Tìm Hiểu Hệ Điều Hành Nhúng Thời Gian Thự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 tiến trình đang được thi hành cùng lúc.
Hệ điều hành chia xẻ phức tạp hơn hệ điều hành đa chương. Nó phải có các chức
năng : quản trị và bảo vệ bộ nhớ, sử dụng bộ nhớ ảo. Nó cũng cung cấp hệ thống
tập tin truy xuất on-line…
Hệ điều hành chia xẻ là kiểu của các hệ điều hành hiện đại ngày nay.
II.1.2.4 Hệ thống song song
Ngoài các hệ thống chỉ có một bộ xử lý còn có các hệ thống có nhiều bộ xử lý

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.
An toàn : Nếu một vị trí trong hệ thống phân tán bị hỏng, các vị trí khác vẫn
tiếp tục làm việc.
Thông tin liên lạc với nhau :Có nhiều lúc , chương trình cần chuyển đổi dữ
liệu từ vị trí này sang vị trí khác. Ví dụ trong hệ thống Windows, thường có sự
chia xẻ và chuyển dữ liệu giữa các cửa sổ. Khi các vị trí được nối kết với nhau
trong một hệ thống mạng, việc trao đổi dữ liệu diễn ra rất dễ. Người sử dụng có
thể chuyển tập tin hay các E_mail cho nhau từ cùng vị trí hay những vị trí khác.
II.1.2.6 Hệ thống xử lý thời gian thực
Hệ thống xử lý thời gian thực được sử dụng khi có những đòi hỏi khắt khe về
thời gian trên các thao tác của bộ xử lý hoặc dòng dữ liệu, nó thường được
dùng điều khiển các thiết bị trong các ứng dụng tận hiến (dedicated). Máy tính
phân tích dữ liệu và có thể chỉnh các điều khiển giải quyết cho dữ liệu nhập.
Một hệ điều hành xử lý thời gian thực phải được định nghĩa tốt, thời gian xử lý
nhanh. Hệ thống phải cho kết quả chính xác trong khoảng thời gian bị thúc ép

-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 vi, rồi đến
dòng AVR ( chẳn hạn AT90S8535, AT90S8515,…) có kích thước bộ nhớ vào
loại trung bình và mạnh hơn là dòng Mega ( như ATmega32, ATmega128,…)
với bộ nhớ có kích thước vài Kbyte đến vài trăm Kb cùng với các bộ ngoại vi đa
dạng được tích hợp trên chip, cũng có dòng tích hợp cả bộ LCD trên chip ( dòng
LCD AVR ). Tốc độ của dòng Mega cũng cao hơn so với các dòng khác. Sự khác
nhau cơ bản giữa các dòng chình là cấu trúc ngoại vi, còn nhân thì vẫn như nhau.
Khoa Công Nghệ Thông Tin-Đại Học Thái Nguyên
12
Tìm Hiểu Hệ Điều Hành Nhúng Thời Gian Thực
Hình 1.2. Đặt biệt, năm 2008, Atmel lại tiếp tục cho ra đời dòng AVR
mới làXmegaAVR, với những tính năng mạnh mẽ chưa từng có ở các dòng AVR
trước đó. Có thể nói XmegaAVR là dòng MCU 8 bit mạnh mẽ nhất hiện nay.
Hình1.2 Các dòng AVR khác nhau: Tiny, AVR và Mega
Cấu trúc cơ bản của vi điều khiển AVR được thể hiện ở hình 1.2.
Hình 1.3 Cấu trúc của Vi điều khiển AVR
Khoa Công Nghệ Thông Tin-Đại Học Thái Nguyên
13
Tìm Hiểu Hệ Điều Hành Nhúng Thời Gian Thực
II.2.2 CẤU TRÚC BỘ NHỚ VÀ CỔNG VÀO – RA

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.
Bộ nhớ SRAM có dụng lượng 4 K bytes, Bộ nhớ SRAM có hai chế độ hoạt
động là chế độ thông thường và chế độ tương thích với ATmega103, muốn thiết
lập bộ nhớ SRAM hoạt động theo chế độ nào ta sử dụng bit cầu chì M103C
(M103C fuse bit (9) ).
Bộ nhớ SRAM ở chế độ bình thường : Ở chế độ bình thường bộ nhớ SRAM
được chia thành 5 phần: Phần đầu là 32 thanh ghi chức năng chung (General
Khoa Công Nghệ Thông Tin-Đại Học Thái Nguyên
14
Tìm Hiểu Hệ Điều Hành Nhúng Thời Gian Thực
Purpose Register ) R0 đến R31 có địa chỉ từ $0000 tới $001F. Phần thứ 2 là
không gian nhớ vào ra với 64 thanh ghi vào ra ( I/O Register ) có địa chỉ từ
$0020 tới $005F. Phần thứ 3 dùng cho vùng nhớ dành cho các thanh ghi vào ra
mở rộng ( Extended I/O Registers ) có địa chỉ từ $0060 tới $00FF. Phần thứ 4 là
vùng SRAM nội với 4096 byte có địa chỉ từ $0100 tới $10FF. Phần thứ 5 là vùng
nhớ SRAM ngoài ( External SRAM ) bắt đầu từ địa chỉ $1100, vùng SRAM mở
rộng này có thể mở rộng lên đến 64 K byte. Khi nói bộ nhớ SRAM có dung
lượng 4 K byte là nói tới phần thứ 4 ( SRAM nội ). Nếu tính cả các thanh ghi thì
bộ nhớ SRAM trong chế độ bình thường sẽ là 4.25 K byte = 4352 byte.
Bộ nhớ SRAM ở chế độ tương thích ATmega103 : Ở chế này bộ nhớ
SRAM cơ bản cũng giống ở chế độ bình thường, ngoại trừ phần thứ 3 là vùng
nhớ dành cho các thanh ghi vào ra mở rộng không tồn tại, ngoài ra kích thước
của phần SRAM nội ( internal RAM ) chỉ có 4000 byte so với 4096 byte ở chế độ
bình thường. Hình 2.2 thể hiện sơ đồ bộ nhờ dữ liệu ở cả hai chế độ : Bình
thường và tương thích ATmega103. Từ hình 2.2 ta thấy nếu cấu hình để bộ nhớ
SRAM hoạt động ở chế độ tương thích ATmega103 thì ta sẽ bị mất đi 160 thanh
ghi vào ra mở rộng ( extended I/O Register ), là những thanh ghi đóng vai trò
quan trọng trong các chế độ hoạt động của vi điều khiển.
Hình 1.4: Bản đồ bộ nhớ dữ liệu

2. Thanh Ghi EEAR ( EEARH và EEARL )
Khoa Công Nghệ Thông Tin-Đại Học Thái Nguyên
16
Tìm Hiểu Hệ Điều Hành Nhúng Thời Gian Thực
EEAR là thanh ghi 16 bit lưu giữ địa chỉ của các ô nhớ của EEPROM,
thanh ghi EEAR được kết hợp từ 2 thanh ghi 8 bit là EEARH và thanh ghi
EEARL. Vì bộ nhớ EEPROM của ATmega128 có dung lượng 4 Kbyte = 4096
byte = 212 byte nên ta chỉ cần 12 bit của thanh ghi EEAR , 4 bit từ 15 -12 được
dự trữ, ta nên ghi 0 vào các bit dự trữ này.
3. Thanh Ghi EEDR
Đây là thanh ghi dữ liệu của EEPROM, là nơi chứa dữ liệu ta định ghi vào hay
lấy ra từ EEPROM.
4. Thanh Ghi EECR
Đây là thanh ghi điều khiển EEPROM, ta chỉ sử dụng 4 bit đầu của thanh ghi
này, 4 bit cuối là dự trữ, ta nên ghi 0 vào các bit dự trữ. Sau đây ta xét chức năng
của từng bit.
Bit 3 – EERIE: EEPROM Ready Interrupt Enable : Đây là bit cho
phép EEPROM ngắt CPU, khi bit này được set thành 1 và ngắt toàn cục được
cho phép ( bằng cách set bit I trong thanh ghi SREG lên 1 ) thì EEPROM sẽ tạo
ra một ngắt với CPU khi bit EEWE được xóa, điều này có nghĩa là khi các ngắt
được cho phép ( bit I trong thanh ghi SREG và bit EERIE trong thanh ghi EECR
được set thành 1 ) và quá trình ghi vào ROM vừa xong thì sẽ tạo ra một ngắt với
CPU, chương trình sẽ nhảy tới véc tơ ngắt có địa chỉ là $002C để thực thi chương
trình phục vụ ngắt ( ISR ). Khi bit EERIE là 0 thì ngắt không được cho phép.
Bit 2 – EEMWE: EEPROM Master Write Enable : Khi bit EEMWE
và bit EEWE là 1 sẽ ra lệnh cho CPU ghi dữ liệu từ thanh ghi EEDR vào
EEPROM, địa chỉ của ô nhớ cần ghi trong EEPROM được lưu trong thanh ghi
Khoa Công Nghệ Thông Tin-Đại Học Thái Nguyên
17
Tìm Hiểu Hệ Điều Hành Nhúng Thời Gian Thực

nghĩa là khi ta thay đổi hướng của một chân nào đó thì nó không làm ảnh hưởng
tới hướng của các chân khác. Tất cả các chân của các cổng ( port ) điều có điện
trở kéo lên ( pull-up ) riêng, ta có thể cho phép hay không cho phép điện trở kéo
lên này hoạt động.
Điện trở kéo lên là một điện trở được dùng khi thiết kế các mạch điện tử
logic. Nó có một đầu được nối với nguồn điện áp dương (thường là Vcc hoặc
Vdd) và đầu còn lại được nối với tín hiệu lối vào/ra của một mạch logic chức
năng. Điện trở kéo lên có thể được lắp đặt tại các lối vào của các khối mạch logic
để thiết lập mức logic lối vào của khối mạch khi không có thiết bị ngoài nối với
lối vào. Điện trở kéo lên cũng có thể được lắp đặt tại các giao diện giữa hai khối
mạch logic không cùng loại logic, đặc biệt là khi hai khối mạch này được cấp
nguồn khác nhau. Ngoài ra, điện trở kéo lên còn được lắp đặt tại lối ra của khối
Khoa Công Nghệ Thông Tin-Đại Học Thái Nguyên
18
Tìm Hiểu Hệ Điều Hành Nhúng Thời Gian Thực
mạch khi lối ra không thể nối nguồn để tạo dòng, ví dụ các linh kiện logic TTL
có cực góp hở. Đối với họ logic lưỡng cực với nguồn nuôi 5 Vdc thì giá trị của
điện trở kéo lên thường nằm trong khoảng 1000 đến 5000 Ohm, tùy theo yêu cầu
cấp dòng trên toàn giải hoạt động của mạch. Với lôgíc CMOS và lôgíc MOS
chúng ta có thể sử dụng các điện trở có giá trị lớn hơn nhiều, thường từ vài ngàn
đến một triệu Ohm do dòng rò rỉ cần thiết ở lối vào là rất nhỏ.
II.2.2.2. CÁCH HOẠT ĐỘNG :
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à 1, thì 8 chân tương ứng của
portA là PA1, PA2, … PA7 ( tương ứng với các chân số 50, 49, …44 của vi điều
khiển ) được thiết lập thành ngõ ra.

20
Tìm Hiểu Hệ Điều Hành Nhúng Thời Gian Thực
DDRA $1A $3A
PINA $19 $39
PORTB $18 $38
DDRB $17 $37
PINB $16 $36
PORTC $15 $35
DDRC $14 $34
PINC $13 $33
PORTD $12 $32
DDRD $11 $31
PIND $10 $30
PORTE $03 $23
DDRE $02 $22
PINE $01 $21
PORTF Không có $62
DDRF Không có $61
PINF $00 $20
PORTG Không có $65
DDRG Không có $64
PING Không có $63
II.2.3 BỘ ĐỊNH THỜI CỦA ATmega128
ATmega128 có 4 bộ định thời , bộ định thời 1 và 3 là bộ định thời 16 bit, bộ
định thời 0 và 2 là bộ định thời 8 bit. Dưới đây là mô tả chi tiết của 4 bộ định
thời.
1. BỘ ĐỊNH THỜI 1.
Khoa Công Nghệ Thông Tin-Đại Học Thái Nguyên
21
Tìm Hiểu Hệ Điều Hành Nhúng Thời Gian Thực

Điều khiển cách hoạt động của ngõ ra so sánh (compare output) của lần lượt các
chân OCnA, OCnB và OCnC. Nếu một hay cả hai bit COMnA1:0 được set lên 1
thì ngõ ra OCnA sẽ ưu tiên hơn chức năng port I/O thông thường mà nó kết nối
tới . Nếu một hay cả hai bit COMnB1:0 được set lên 1 thì ngõ ra OCnB sẽ ưu
tiên hơn chức năng port I/O thông thường mà nó kết nối tới . Nếu một hay cả hai
bit COMnC1:0 được set lên 1 thì ngõ ra OCnC sẽ ưu tiên hơn chức năng port I/O
thông thường mà nó kết nối tới, điều này có nghĩa là mỗi một chân của vi điều
khiển có thể thực hiện nhiều chức năng khác nhau, bình thường các chân OCnA,
OCnB, OCnC hoạt động như các chân vào ra thông thường, nhưng khi bộ định
thời đang hoạt động ở các chế độ có sử dụng tới chức năng so sánh khớp
(compare match) như các chế độ CTC, PWM,…của bộ định thời thì hành vi của
chân ngõ ra OCnA, OCnB, OCnC sẽ do bộ định thời điều khiển. Trong các chế
độ PWM, khi giá trị các thanh ghi dùng để so sánh (OCRnX, ICRn) có giá trị
bằng với TOP, thì sự kiện so sánh khớp (compare match) bị bỏ qua. Tuy vậy các
chân OCnX vẫn bị set hay xóa (tùy vào các bit COMnX 1:0) ở BOTTOM.
Khoa Công Nghệ Thông Tin-Đại Học Thái Nguyên
23
Tìm Hiểu Hệ Điều Hành Nhúng Thời Gian Thực
Hình 1.7. Hành vi của các chân OCnX (X=A, B, C; n=1, 3) phụ thuộc vào các
thiết lập của các bit COMnA1:0, COMnB1:0, COMnC1:0 trong chế độ non-
PWM
Hình 1.8. Hành vi của các chân OCnX (X=A, B, C; n=1, 3) phụ thuộc vào các
thiết lập của các bit COMnA1:0, COMnB1:0, COMnC1:0 tromg chế độ Fast-
PWM
Bit 1:0 – WGMn1:0: Waveform Generation Mode : Kết hợp với các bit
WGMn3:2 tìm trong thanh ghi TCCRnB , những bit này cho phép ta lựa chọn
chế độ thực thi của bộ định thời, nhờ đó có thể điều khiển việc đếm tuần tự của
bộ đếm. Giá trị bộ đếm lớn nhất là TOP và dạng sóng tạo ra ở chân OCnX (X=A,
B, C; n=1, 3) được sử dụng cho nhiều mục đích khác nhau (bảng 61). Các chế độ
thực thi được hỗ trợ bởi khối Timer/counter là : Normal mode ( counter ), Clear


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