You are on page 1of 127

MÔN HỌC

HỆ THỐNG NHÚNG
(PHẦN LÝ THUYẾT)
2
GIỚI THIỆU
1. Tên môn học: Hệ thống nhúng/Hệ thống nhúng điện tử
2. Mã môn học:
3. Số tín chỉ: 4(2,4,8): 30 tiết lý thuyết + 60 tiết thực hành
4. Mô tả môn học:
Sau khi học môn học này, sinh viên có khả năng:
Phân tích và thiết kế được các hệ thống nhúng và thực hiện
được các ứng dụng nhúng theo yêu cầu.
Biết chọn và sử dụng các công cụ cho việc phát triển hệ
thống nhúng.

Yêu cầu kiến thức:


• Ngôn ngữ lập trình; Hệ điều hành Linux. ; Kiến trúc máy tính; Vi xử lý, Vi điều
khiển và ứng dụng; Giao tiếp và ngoại vi

3
Nội dung môn học
(Phần 1: Lý thuyết)

CHƯƠNG I - Giới thiệu về hệ thống nhúng

CHƯƠNG II – Các kỹ thuật giao tiếp ngoại vi

CHƯƠNG III – Cấu trúc phần mềm HTN

CHƯƠNG IV - Thiết kế ứng dụng

(Theo nhóm đề tài)

4
Nội dung môn học
(Phần 2: Thực hành)

BÀI 1: Giới thiệu về lập trình nhúng, kítFriendly ARM

BÀI 2: Lập trình xuất nhập căn bản

BÀI 3. Lập trình xuất nhập nâng cao

BÀI 4. Các kỹ thuật lập trình nâng cao

BÀI 5: Lập trình device driver

BÀI 6: Lập trình ứng dụng đa nền tảng với QT

5
Tài liệu học tập
(Phần lý thuyết)
LT_ Tài liệu chính
 BG hệ thống nhúng, lưu hành nội bộ IUH_2018
 [a] Raj Kamal, Embedded Systems: Architecture, Programming and Design.
 [b] Zhu, Yifeng. Embedded systems with arm cortex-m microcontrollers in
assembly language and C / Yifeng Zhu. - 3rd edition. - Ballston Spa, NY : E-
Man Press LLC, 2018. [621.3815 ZHU-Y]
 [c] Embedded system design : Embedded Systems Foundations of Cyber-
Physical Systems, and the Internet of Things [CD-ROM] / edited by Peter
Marwedel. - Fourth Edition. 2021 [004.21 EMB-D] 700000201
LT_Tài liệu tham khảo
[a]. Frank Vahid and Tony Givagips, embedded-system-design-a-unified-
hardware- software-introduction, John Wiley &Sons, 2002
[b] Peter Marwedel, embedded-system-design; Spinger, 2016

6
Tài liệu học tập
(Phần thực hành)

 [a]. Tài liệu hướng dẫn Thực hành hệ thống


nhúng Friendly ARM 2440 -FET-HUI.
 Các tài liệu khác theo GV giảng dạy TH

7
Cách lấy tài liệu

 Vào ocw của khoa tham khảo các tài liệu cho các môn
liên quan đã học trên.
 Riêng môn Vi điều khiển ứng dụng các lớp
DHDTMTxx không học thì tự học bằng cách tự
học_tham khảo đầy đủ video BG:
https://ocwfet.iuh.edu.vn/course/view.php?id=160

8
CDR & Phương pháp đánh giá
PP đánh giá Bài KT/ Thi
(TL, TL, vấn (TK,
CLOs Chuẩn đầu ra học phần ELOs
đáp, thuyết GK,CK)
trình, …)
Trình bày được cấu tạo, nguyên lý hoạt al Thi viết Thi viết
1 động và biết các bước thiết kế hệ thống
nhúng
Xác định đầu vào/ra bài toán thiết kế dl Thi viết Thi viết
2 một hệ thống nhúng với các yêu cầu kỹ /tiểu luận
thuật.
Thiết kế sơ đồ khối/sơ đồ nguyên lý hệ d2 Thi viết Thi viết
thồng nhúng, xác định các mối liên kết /tiểu luận
3
vào /ra giao tiếp giữa các khối trong hệ
thống nhúng
Xây dựng và thực hiện các bước thực d3 Thi viết Thi viết
4 nghiệm /tiểu luận
5 Biết tìm kiếm và tra cứu tài liệu chuyên g4 Tiểu luận Thường
môn kỳ
Đánh giá kết quả học tập

Phương pháp đánh giá


 Lý thuyết
- Đánh giá thường kỳ 1 và 2 tỷ lệ 20%
- Đánh giá giữa kỳ tỷ lệ 30%
- Đánh giá cuối kỳ tỷ lệ 50%

 Thực hành
- Báo cáo thường kỳ 1 tỷ lệ 33%
- Báo cáo thường kỳ 2 tỷ lệ 33%
- Báo cáo thường kỳ 3 tỷ lệ 33%
10
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
NỘI DUNG C.1- GIỚI THIỆU HỆ THỐNG NHÚNG
1.1 HỆ THỐNG NHÚNG
1.1.1.
1.1.2. …
1.2 PHẦN CỨNG NHÚNG
1.2.1.
1.2.2…..
1.3 PHẦN MỀM NHÚNG
1.3.1.
1.3.2…
1.4 PHÂN LOẠI VÀ CÁC VÍ DỤ
1.4.1. Phân loại
1.4.2. Các Ví dụ

11
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG

1.1. HỆ THỐNG NHÚNG:


1.1.1.Hệ thống nhúng được hiểu như thế nào?
- Hệ thống (system): Cách thức làm việc, tổ chức hoặc thực hiện
một hoặc nhiều công việc theo một tập cố định các quy tắc,
chương trình, kế hoạch/ Hệ thống cũng là sự sắp xếp mà trong
đó tất cả đơn vị được lắp ráp (Assembly) và làm việc cùng nhau
theo chương trình, kế hoạch.
Ví dụ hệ thống:
 Hệ thống hiển thị thời gian - Đồng hồ
 Hệ thống giặt quần áo tự động - Máy giặt

12
TÓM TẮT
1. Hệ thống nhúng là một hệ thống điện tử / cơ điện được thiết kế để thực hiện một chức
năng cụ thể và là sự kết hợp của cả phần cứng và phần sụn (phần mềm).
2. Hệ thống tính toán mục đích chung/dùng chung là sự kết hợp của phần cứng chung và hệ
điều hành mục đích chung để thực thi nhiều ứng dụng khác nhau, trong khi
3. Hệ thống nhúng là sự kết hợp của phần cứng có mục đích đặc biệt và hệ điều hành /
phần sụn nhúng để thực thi một bộ ứng dụng cụ thể.
4. Dựa trên mức độ phức tạp và yêu cầu về hiệu suất, các hệ thống nhúng được phân
loại thành quy mô nhỏ, quy mô vừa và quy mô lớn / phức hợp.
5. Trong thực tế có thể được phân loại theo mục tiêu và yêu cầu của thị trường như:
6. Sự hiện diện của hệ thống nhúng là đa dạng, từ đồ chơi hệ thống điện tử đơn giản
đến hệ thống điều khiển tên lửa và bay phức tạp.
7. Hệ thống nhúng được thiết kế để phục vụ mục đích của bất kỳ một hoặc kết hợp thu
thập / lưu trữ / biểu diễn dữ liệu, xử lý dữ liệu, giám sát, điều khiển hoặc ứng dụng
giao diện người dùng cụ thể.
8. Thiết bị cầm tay (đeo theo người) được dùng để chỉ các hệ thống nhúng được tích
hợp vào các phụ kiện và đồ gia dụng. Nó hình dung mối liên kết của công nghệ nhúng
trong cuộc sống hàng ngày của chúng ta.
13
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.1. HỆ THỐNG NHÚNG:
1.1.1. Hệ thống nhúng được hiểu như thế nào?
- Hệ thống nhúng (Embedded system):
(1). Hệ thống nhúng (ES) là một hệ thống có phần mềm
được nhúng vào phần cứng máy tính, tạo ra một hệ
thống dành riêng cho: một/ nhiều ứng dụng; một phần
cụ thể của một ứng dụng/ sản phẩm; một phần của một
hệ thống lớn hơn.
(2). ES được hiểu là hệ thống điện tử chứa đựng các vi
xử lý hoặc vi điều điều khiển, nhưng ta không xem như
là các máy tính, máy tính bị ẩn hoặc nhúng vào hệ
thống.
(3). Các ES thường bị giới hạn hơn về chức năng phần
cứng và/hoặc phần mềm hơn một máy tính các nhân
(PC).
(4). ES là một hệ thống máy tính có yêu cầu về chất
lượng và độ tin cậy cao hơn so với các loại hệ thống
máy tính khác
14
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.1. HỆ THỐNG NHÚNG:
1.1.1. Hệ thống nhúng được hiểu như thế nào?
- Hệ thống nhúng (Embedded system_ES):
• Bất kỳ thiết bị nào bao gồm máy tính nhưng bản thân nó không phải là máy
tính đa năng.
• Các hệ thống tính toán có mặt ở mọi nơi, và đa số chúng ta nghĩ đến hệ thống
tính toán như là một máy tính ( PC’s; Laptops;Mainframes; – Servers)
• Có rất nhiều các hệ thống tính toán khác gọi là hệ thống tính toán nhúng
 Được thiết kế chuyên dụng và tối ưu hóa cho ứng dụng cụ thể;
 Không cần các tiện ích chung
Ví dụ:
– Hệ thống tính toán nhúng trong các thiết bị điện tử
– Rất khó để định nghĩa. Có thể coi chúng là các hệ thống tính toán ngoài PC.
– Có hàng tỷ thiết bị được sản xuất mỗi năm, so với số lượng hàng triệu của PC.
– Có lẽ chiếm đến > 50% các thiết bị gia dụng và ô-tô
15
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.1. HỆ THỐNG NHÚNG:
1.1.1. Hệ thống nhúng được hiểu như thế nào?
Có nhiều khái niệm được đề cập
- Hệ thống nhúng (Embedded System-ES) là một thuật ngữ để chỉ một
hệ thống sử dụng vi xử lý/ vi điều khiển có khả năng tự trị được “nhúng
vào” (hoạt động) trong một môi trường hay một hệ thống mẹ.
- Hệ thống nhúng là hệ thống xử lý thông tin tương tác với các quy trình
vật lý và được nhúng vào một sản phẩm lớn hơn.
- Khác với các máy tính đa chức năng, chẳng hạn như máy tính cá
nhân, hệ thống nhúng tích hợp cả phần cứng và phần mềm phục vụ
một chức năng chuyên biệt nào đó.
Một máy tính PC có phải là một ES?

16
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.1. HỆ THỐNG NHÚNG:
1.1.1. Hệ thống nhúng được hiểu như thế nào? Danh sách ES
Modems
Hệ thống chống bó (Anti-lock brakes)
Card mạng
Tự động trả lời (Automatic teller machines)
Định tuyến/chuyển mạch
Thanh toán tự động (Automatic toll systems)
Thiết bị định vị
Truyền dẫn tự động (Automatic transmission)
Máy photocopy
Xạc pin (Battery chargers)
Máy in
Máy quay KTS (Camcorders)
Điện thoại vệ tinh
Điện thoại di đông (Cell phones)
Máy quét
Trạm di động (Cell-phone base stations)
Máy giặt
Điều khiển lái (Cruise control)
Thiết bị nhận dạng giọng nói
Camera số (Digital cameras)
Hội nghị từ xa
Ổ đĩa cứng
Truyền hình
Thiết bị đọc thẻ điện tử
Bộ điều khiển nhiệt độ
Điều khiển nhà máy
Hệ thống chống trộm
Máy Fax
Đầu VCR’s, DVDs
Thiết bị nhận dạng vân tay
Điện thoại có hình
17Hệ thống an ninh tòa nhà Nguồn hình internet
Máy rửa bát
Hệ thống kiểm tra y tế …
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.1. HỆ THỐNG NHÚNG
So sánh Embedded Systems Vs General Computing Systems
General Purpose Computing System Hệ thống nhúng
 Một hệ thống là sự kết hợp của phần cứng chung và  Một hệ thống là sự kết hợp của phần cứng có mục
Hệ điều hành thông dụng để thực thi nhiều ứng dụng khác đích đặc biệt và hệ điều hành nhúng để thực thi một bộ
nhau ứng dụng cụ thể
 Chứa Hệ điều hành thông dụng (GPOS)  Có thể có/ không có hệ điều hành để hoạt động
 Người dùng có thể thay đổi các ứng dụng (có thể lập  Phần sụn của hệ thống nhúng được lập trình sẵn và
trình) (Người dùng cuối có thể cài đặt lại Hệ điều hành và người dùng cuối không thể thay đổi được.
thêm hoặc xóa các ứng dụng của người dùng)
 Hiệu suất là yếu tố quyết định chính đến việc lựa chọn
hệ thống. Luôn "Nhanh hơn là tốt hơn".  Các yêu cầu cụ thể của ứng dụng (như hiệu suất, yêu
cầu năng lượng, sử dụng bộ nhớ, v.v.) là các yếu tố quyết
định chính
 Ít hơn / không phù hợp với yêu cầu giảm công suất  Được thiết kế phù hợp để tận dụng các chế độ tiết
hoạt động, các tùy chọn cho các cấp quản lý điện năng kiệm năng lượng được hỗ trợ bởi phần cứng và Hệ điều
khác nhau. hành
 Yêu cầu phản hồi không giới hạn về thời gian  Đối với một số loại hệ thống nhúng nhất định như hệ
thống quan trọng của sứ mệnh, yêu cầu về thời gian
phản hồi là rất quan trọng
 Không cần xác định trong hành vi thực hiện
 Hành vi thực thi là tiền định đối với một số loại hệ
thống nhúng nhất định như hệ thống Thời gian thực
cứng ‟
18
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.1. HỆ THỐNG NHÚNG:
1.1.2. Các thành phần chính của ES
a. Phần cứng nhúng: Lớp phần cứng chứa tất cả các thành phần vật lý chính
nằm trên bo mạch nhúng (Vi xử lý/vi điều khiển, I/O, bộ nhớ, nguồn, …).
b. Phần mềm nhúng: phần mềm lớp ứng dung và hệ thống (phần mềm ứng
dụng, trung gian, driver, OS): thường được lưu vào bộ nhớ ROM/Flash, đảm
nhiệm việc xử lý thực hiện các nhiệm vụ/quá trình/chủ đề.
c. Hệ thống RTOS (hệ thống thời gian thực-optional): quản lý giám sát việc
chạy các phần mềm trên phần cứng nhúng và tổ chức truy cập đến tài
nguyên theo thứ tự ưu tiên của các nhiệm vụ trong hệ thống nhúng. RTOS
cung cấp một cơ chế để cho phép bộ xử lý chạy một quy trình theo lịch trình
và chuyển đổi ngữ cảnh giữa các quy trình khác nhau.

19
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.1. HỆ THỐNG NHÚNG:
1.1.3. Đặc điểm của ES
a.. Các chức năng chuyên dụng
b. Các giải thuật phức tạp (complex algorithms).
c. GUIs (Complex graphic user interfaces) và các giao diện người dùng khác.
d. Các hoạt động thời gian thực và đa tốc độ xác định cách thức hoạt động của
hệ thống, phản ứng với các sự kiện (events), ngắt (interrupts) và lập lịch trình
hoạt động của hệ thống trong thời gian thực. ES thực hiện các việc này bằng
cách tuân theo một kế hoạch để kiểm soát độ trễ (Latency-Độ trễ đề cập đến
khoảng thời gian chờ đợi giữa việc chạy các mã của một tác vụ hoặc quy trình
dịch vụ ngắt, và trường hợp mà tại đó nhu cầu về tác vụ hoặc ngắt từ một sự
kiện xảy ra) và đáp ứng theo đúng thời hạn (deadlines). Lưu ý: các hoạt động
khác nhau có thể diễn ra với các tốc độ khác nhau.
Ví dụ: âm thanh, video, luồng (stream) dữ liệu mạng và các sự kiện có các tốc
độ và ràng buột thời gian khác nhau.
20
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.1. Hệ thống nhúng
1.1.4. Các ràng buột yêu cầu đối
với ES
a. Bộ nhớ hệ thống có sẵn (Available system
memory).
b. Tốc độ xử lý có sẵn (Available processor
speed).
c. Nhu cầu về việc giới hạn công suất tiêu thụ
khi thực thi hệ thống liên tục trong các chu kỳ
của các tác vụ: đợi cho các sự kiện (wait for
events), chạy (run), ngừng (stop), đánh thức Nguồn hình internet

(wake-up) và ngủ (sleep). Ngoài ra, việc thiết


kế hệ thống nhúng còn có các ràng buột liên
quan đến hiệu suất, năng lượng,
d. Kích cỡ
e. Chi phí.
21
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.1. Hệ thống nhúng
1.1.4. Các ràng buột yêu cầu đối với ES
8 basic dimensions of quality
a. Performance: The primary operating
characteristics of a product.
b. Feature: Those characteristics that
supplement a product’s basic functions.
c. Reliability: The probability of a product
malfunctioning.
d. Durability: A measure of the amount of use
one gets from a product before it breaks down
e. Serviceability: Ease and time to repair after
breakdown.
f. Conformance: the degree to meet standards
g. Aesthetics: How a product looks.
h. Perceived quality: This dimension is
associated with reputation.
22
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG

1.2. THÀNH PHẦN PHẦN CỨNG NHÚNG Microprocessor system

Lớp phần cứng chứa tất cả các thành phần vật lý


chính nằm trên bo mạch nhúng (Vi xử lý/vi điều
khiển, I/O, bộ nhớ, nguồn, …).
1.2.1. Tổng quan thành phần phần cứng nhúng
a. Bộ xử lý nhúng là trái tim của hệ thống nhúng.
Vi xử lý? Vi điều khiển?
Micro-processor Micro-controller
Ưngs dung: Xử lý dữ liệu,
Các thiết bị nhúng, hệ thống
video, thị giác máy tính, máy
điều khiển, điện thoại thông
tính cá nhân, nhanh, xử lý đa
minh, sản phẩm điện tử, …
lõi, ..
Công suât xử lý: Cao Thấp
Bộ nhớ: ngoài-linh hoạt Trong-giới hạn
NL: Cao Thấp
Kích cỡ: lớn Nhỏ
Giá thành: Mắc Rẻ
I/O: cần thêm I/O ngoại vi I/O số/tương tự lập trình được
23
Nguồn hình internet
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.2. THÀNH PHẦN PHẦN CỨNG NHÚNG
Lớp phần cứng chứa tất cả các thành phần vật lý chính nằm
trên bo mạch nhúng (Vi xử lý/vi điều khiển, I/O, bộ nhớ,
nguồn, …).
Mô hình tổng quát phần cứng của một HTN có dạng:
Các khối chức năng:
- Môi trường hoạt động: nơi sử dụng HTN.
- Chấp hành: là các thiết bị công nghệ.
- Cảm biến: thiết bị đặc biệt ghi nhận thông tin công nghệ (vị
trí, vòng quay, tốc độ, nhiệt độ, áp suất, kích thước (cao, dài,
sâu) …).
-Ghép nối: là các thiết bị phối hợp, chuyển hóa các thông tin
từ cảm biến thành tín hiệu điện để số hóa.
- Các bộ số hóa (A/D) và tương tự hóa (D/A).
- Ghép nối với các hệ thống khác: liên kết các HTN khác,
mạng dữ liệu, Trung tâm điều khiển SCADA, …
- Ghép nối BUS hệ thống
***Bộ xử lý nhúng … RAM, ROM (NVRAM/FLASH)
Trong phần này chủ yếu xét ***

24 Nguồn hình internet


CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.2. Thành phần phần cứng nhúng
1.2.1. Tổng quan thành phần phần cứng nhúng
a. Bộ xử lý nhúng: gồm có hai thành phần chính:
- Đơn vị điều khiển (CU-Control Unit):
điều khiển luồng chương trình (Program Flow),
bao gồm một đơn vị nạp các câu lệnh (instruction) từ bộ nhớ. (Nguồn hình: Internet)

- Đơn vị thực thi (EU-Execution Unit): có các mạch thực hiện các lệnh liên quan
đến việc chuyển đổi dữ liệu và vận chuyển dữ liệu từ nới này tới nơi khác. EU
còn bao gồm đơn vị số học và logic (ALU-Arithmetic Logical Unit) và các mạch
để thực thi các lệnh cho một nhiệm vụ điều khiển chương trình, ngăn chặn (halt),
ngắt, nhảy tới một tập lệnh khác; gọi hoặc truy cập đến một chương trình khác.
Một bộ xử lý thực thi các chu kỳ của việc nạp và truy xuất. Các lệnh, được định
nghĩa trong tập lệnh xử lý, được truy xuất theo trình tự mà chúng được nạp từ bộ
nhớ. Bộ xử lý ở trong dạng của một chip IC, hoặc là lõi (core) của một ASIC
(Application Specific Integrated Circuit), SoC (System on Chip). Lõi là một phần
của mạch chức năng trên chip VLSI (Very Large Scale Integrated).
25
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.2.1. Tổng quan thành phần phần cứng nhúng
1.2.1.1. Bộ xử lý nhúng
Các dạng điển hình của chip hoặc lõi xử lý hệ thống nhúng:
(1). Xử lý mục đích chung/phổ thông (GPP-General Purpose
Processor): có các tập lệnh được thiết kế không xác định rõ rang tới
các ứng dụng: MP-Microprocessor, Embedded Processor).
.MP: là một chip VLSI đơn, được dùng như là bộ xử lý đa dụng khi
phần mềm nhúng lớn được lưu tại bộ nhớ ngoài của các chip (x86-
Intel, Sparc-Sun Microsystems, 68HCxxxMotorola, …)
. Embedded Processor: có các tính năng đặc biệt cho phép nó nhúng
nhiều quy trình vào hệ thống. Tính năng chính: chuyển đổi ngữ
cảnh nhanh (gọi các chương trình, dịch vụ ngắt nhanh), giảm độ trễ;
phép cộng và nhân nguyên tử 32-bit hoặc 64 bit, không có vấn đề
chia sẽ dữ liệu khi vận hành với các toán hạng lớn; Lõi RISC
Nguồn hình internet
(Reduced Instruction Set Computer) 32-bit để tính toán nhanh,
chính xác và chuyên sâu hơn bằng phần mềm nhúng (có thể sử
dụng các trình biên dịch trên chip), ví dụ: các board nhúng Arm,
Intel, …
26
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.2.1. Tổng quan thành phần phần cứng nhúng
1.2.1.1. Bộ xử lý nhúng
Các dạng điển hình của chip hoặc lõi xử lý hệ thống nhúng:
(2). ASIP (Application Specific Instruction-Set Processor): là
một bộ xử lý với tập lệnh được thiết kế cho các ứng dụng cụ thể trên
một VLSI chip, gồm:
- MC-Microcontroller: phù hợp cho các hệ thống nhúng với ứng
dụng thời gian thực (điều khiển hoặc truyền thông), bao gồm bộ
xử lý, bộ nhớ và các thành phần phần cứng khác, …Các dòng
MC điển hình: quy mô nhỏ 8/16 bit (họ 8051, PIC16F8X,
68HC11xx, …); quy mô trung bình 16-bit (8051MX, PIC16x,
PIC18x, 68HC16xx, …; quy mô lớn 32-bit (ARM Cortex, Philips
LPC 2000 series, Texas Instrument C16x, …).
- DSP-Digital Signal và Media Processor: là một lõi hoặc chip
cho các ứng dụng xử lý các tín hiệu số (xử lý ảnh, luồng dữ liệu,
mạng-đa phương tiện-lọc, loại nhiễu, mã hóa, nén, …), bao gồm
các khả năng tính toán của một vi xử lý và các đơn vị nhân và
tích lũy MAC (Multiply and Accumulate). Ví dụ các họ DSSP
TMS320xxx, SHARC, PNX …)
27 Nguồn hình internet
- - Các loại chuyên xử lý mạng, I/O, miền chuyên dụng (domain)
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.2.1. Tổng quan thành phần phần cứng nhúng
1.2.1.1. Bộ xử lý nhúng
Một chip hoặc lõi xử lý hệ thống nhúng có các dạng điển hình sau:
(3). SPP ( Single Purpose Processor): SPPs được xem như các bộ xử lý
bổ sung vào hệ thống
- Coprocessor: ví dụ được dùng cho xử lý đồ họa, dấu phẩy động (floating
point), mã hóa, giải mã, biến đổi cosine rời rạc và nghịch, các chức năng liên
kết mạng và giao thức ngăn xếp/xếp chồng TCP/IP.
- Accelerator: ví dụ như trình tăng tốc mã Java.
- Controllers: ví dụ điều khiển các thiết bị ngoại vi (peripheral), giao dịch bus và
truy cập bộ nhớ trực tiếp (direct memory accesses and buses).
(4) Các lõi GPP hoặc ASIP được tịch hợp vào hoặc một ASIC hoặc một VLSI,
hoặc một FPGA (Field Programmable Gate Array) lõi được tích hợp với các đơn
vị xử lý trong một VLSI(ASIC) chip.
(5) Bộ xử lý hệ ứng dụng cụ thể (ASSP-Application Specific System
Processor): thực hiện các nhiệm vụ xác định cụ thể độc lập và cung cấp một giải
pháp nhanh. Ví dụ: TV giải mã, set-upboxes, DVD players, …
(6) Đa lõi bộ xử lý hoặc đa bộ xử lý ….
28 Nguồn hình internet
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
 So sánh
Microprocessor Vs Microcontroller

29
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.2.1. Tổng quan thành phần phần cứng nhúng
1.2.1.2. Nguồn năng lượng (Power Source)
- Cung cấp năng lượng cho toàn hệ thống.
- Tầm điện áp hoạt động: 5.0V, 3.3 V, 2.0V, 1.5V, …
- Hoạt động ở mức điện áp thấp (Low voltage):
- Ở các thiết bị di động hoặc cầm tay, chẳng hạn như điện thoại,
khi so sánh với 5V, linh kiện CMOS 2V có mức tiêu hao năng
lượng giảm đi gần 1/6. Điều này cũng làm tăng khoảng thời
gian cần thiết cho việc sạc lại nguồn.
- Trong một hệ thống với kích cỡ nhỏ, các bộ xử lý điện áp thấp
và các mạch IO tạo ra năng lượng ít hơn.
- Các hệ thống không có nguồn cung cấp bên trong: phải kết
nối nguồn bên ngoài hoặc bằng việc dùng phương thức charge-
pump (các mạch sử dụng diode và tụ để tích lũy năng lượng
nạp từ các bus tín hiệu…).
- Phương thức quản lý tiêu hao năng lượng: kết hợp việc lập
trình thời gian thực bằng các câu lệnh Wait/Stop phù hợp, giảm
tốc độ xung Clock, tối ưu hóa mã lệnh, cho phép hoặc không
cho phép việc sử dụng cache hoặc khối bộ nhớ catche

30 Nguồn hình internet


CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.2.1. Tổng quan thành phần phần cứng nhúng
1.2.1.3. Mạch tạo xung dao động (Clock circuit)
- Điều khiển thời gian cho việc thực thi các lệnh
- Điều khiển các yêu cầu khác nhau về xung nhịp của CPU, của các bộ định thời hệ thống và các
chu kỳ máy của CPU (cho việc nạp mã lệnh và dữ liệu từ bộ nhớ và sau đó mã hóa và truy xuất
chúng tại bộ xử lý).
- Vòng khóa pha PLL: PLL thực chất là một bộ nhân tần, với đầu vào PLL là tín hiệu dao động
ngoài có tần số từ 32kHz đến 50MHz từ thạch anh, tín hiệu này được nhân lên và tạo tín hiệu
đầu ra có tần số từ 275MHz cho đến 550 MHz, kết hợp cùng khối chia tần trong LPC2378 sẽ
cung cấp tín hiệu xung clock cho lõi ARM7 và các ngoại vi. Sử dụng PLL cho phép LPC2378
hoạt động ở tần số tối đa ngay cả với bộ dao động ngoài với tần số thấp, giảm ảnh hưởng khi
có tín hiệu cao tần trong mạch.
Tần số đầu ra của PLL có thể thay đổi được trong quá trình CPU đang hoạt động, cho phép tiết
kiệm công suất trong trạng thái idle.
- Đối với các đơn vị xử lý (PU), một bộ dao động ổn định cao được yêu cầu và tín hiệu xung
nhịp xử lý đảm bảo cho việc đồng bộ các thành phần trong hệ thống.

31 Nguồn hình internet


CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.2.1. Tổng quan thành phần phần
cứng nhúng
1.2.1.4. Các bộ định thời hệ thống và
RTC(Real-time Clocks)
- Mạch định thời (timer) thì được cấu
hình phù hợp như là xung nhịp hệ
thống, có chức năng đánh dấu và tạo
các ngắt theo định kỳ của hệ thống.
- Mạch Timer cũng được cấu hình phù
hợp như là một RTC.
- Lưu ý: các MC cũng cung cấp các
mạch định thời bên trong cho việc
tính toán và định thời.
- RTC cần thiết cho việc lập trình thời
gian thực, …
32 Nguồn hình internet
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.2.1. Tổng quan thành phần phần cứng nhúng
1.2.1.5. Mạch Reset, Power-up Reset và Watchdog-Timer Reset
- .PC (Program Counter) nắm giữ địa chỉ từ nơi mã lệnh được nạp
cho việc xử lý. Đối với các bộ xử lý GPP_80x86, các IP
(Instruction pointer) nắm giữ địa chỉ. CS (code segment register)
nắm giữa địa chỉ cơ sở (base address) của code memory segment.
IP tăng khi chương trình thực thi mã lệnh.
- Reset có nghĩa là bộ xử lý bắt đầy quá trình xử các lệnh từ một
địa chỉ khởi đầu. Reset có thể được kích hoạt:
- Mạch reset ngoài, kết nối với chân reset của bộ xử lý.
- Lệnh reset từ phần mềm.
- Time-out bởi bộ định thời được lập trình (như watchdog timer)
- Khi bộ giám sát xung nhịp phát hiện ra sự suy giảm dưới một số tần số
nhất định.
- Watchdog timer là bộ định thời đặt reset lại hệ thống sau khoảng
thời gian chờ được xác định trước, nó được kích hoạt trong vài
chu kỳ đồng hồ đầu tiên sau khi bật nguồn (nó giúp cứu hệ thống
nếu một lỗi xảy ra và chương trình bị treo)
33 Nguồn hình internet
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.2.1. Tổng quan thành phần phần cứng nhúng
1.2.1.6. Bộ nhớ (Memory)
a. ROM/EPROM (erasable programmable read-only memory)/Flash:
- Lưu trữ các chương trình ứng dụng tại nơi mà bộ xử lý nạp các mã lệnh.
- Lưu trữ mã lệnh cho việc boot, khởi động, khởi tạo chuỗi và dữ liệu đầu
vào hệ thống.
- Lưu trữ mã lệnh cho hệ thống RTOS.
- Các con trỏ (địa chỉ) của các dịch vụ ngắt khác nhau (ISR)
b. RAM (nội hoặc ngoại) và RAM cho bộ đệm
- Lưu trữ các biến trong suốt quá trình thực thi chương trình
- Lưu trữ các Stacks.
- Lưu trữ các bộ đệm cho của IO.
c. EEPROM (electrically erasable programmable read-only memory) hoặc
Flash: lưu trữ các kết quả nonvolatile của quá trình xử lý.
d. Cache: lưu trữ bản sao của các lệnh và dữ liệu từ bộ nhớ chính bên ngoài
và dữ liệu tạm thời trong quá trình xử lý.
34
e. Memory stick (thẻ nhớ): dạng flash memory.
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.2.1. Tổng quan thành phần phần cứng nhúng
1.2.1.6. Bộ nhớ (Memory)
Một số dạng BN
(xem lại cấu trúc
BN ROM/RAM
/Flash/.. Trong
chương trình môn
học VXL )

35 Nguồn hình internet


CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.2.1. Tổng quan thành phần phần cứng nhúng
1.2.1.7 I/O, I/O Ports, Buses và Interfaces
a. Hệ thống ES nhận tín hiệu vào từ các thiết bị vật lý thông qua các port ngõ vào:màn hình cảm ứng, bàn
phím, cảm biến, cách mạch gia công tín hiệu, … bao gồm các mạch điều khiển để nhận tín hiệu vào.
b. Một bộ xử lý nhận dạng mỗi port ngõ vào bằng các địa chỉ bộ nhớ đệm (memory buffer addresses, port
addresses). Hệ thống sẽ nhận các ngõ vào bằng các lệnh đọc (read) tại các địa chỉ port.
c. Hệ thống gởi các bytes ngõ ra thông qua các port ngõ ra. Mỗi port ngõ ra được xác định bởi địa chỉ bộ
nhớ đệm ngõ ra. Hệ thống sẽ gởi dữ liệu tới ngõ ra bằng lệnh ghi tới địa chỉ port ngõ ra.
d. Các port mục đích chung có thể có cả hai hoạt động xuất nhập.
e. Truyền thông: nối tiếp (serial) và song song (parallel).
f. Bộ tách kênh (demultiplexer)/Bộ hợp/ghép kệnh (multiplexer): là mạch số….
g. Bộ giải mã : giải mã địa chỉ ngõ vào và kích hoạt các kênh ngõ ra được lựa chọn từ nhiều ngõ ra.
h. Bus: bao gồm một tập hợp các line để kết nối tới nhiều thiết bị, đơn vị phần cứng, hệ thống khác cho
việc truyền thông. Một bus có thể là bus serial hoặc parallel, với nhiều giao thức (protocol) khác nhau:
I2C, CAN, USB, PCI, 802.11, IrDA, Bluetooth, Zigbee, …

36
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.2.1. Tổng quan thành phần phần cứng nhúng
1.2.1.8. Các thành phần khác
a. ADC/DAC.
b. LCD/LED/Touchscreen Displays.
c. Keypad/Keyboard
d. Pulse Dialer, Modem và Transceiver

1.2.1.9. Điều khiển ngắt (Interrupt Handler)


- Hệ thống cung cấp một cơ chế xử lý ngắt cho việc thực thi các ISR (interrupt service
routine) với các nguồn ngắt từ các thiết bị vật lý, hệ thống, các lệnh phần mềm và các
ngoại lệ khác.

37
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.2.2. Kiến trúc bộ VXL
1.2.2.1 Giới thiệu một số kiến trúc bộ VXL
Kiến trúc cơ bản của bộ xử lý chip đơn MC, họ 8051 (Intel) điển
hình/cổ điển: có đặc trưng kiến trúc:
- Clock: 12 MHz.
- ALU: 8 bit. Bus nội: 8 bit
- Kiến trúc CISC.
- Có các lệnh đối với các bít có tính năng đặc biệt
- PC (Program counter -bộ đếm chương trình): với giá trị
reset ban đầu là 0x0000
- SP (stack pointer Con trỏ ngăn xếp): giá trị khởi đầu: 0x07
- Kiến trúc bộ nhớ kiểu Harvard.
- RAM trên chip: 128 bytes.
- Thanh ghi chức năng đặc biệt (SFR-Special function register), từ
trạng thái xử lý (PSW-processor status word), bộ tích lũy Acc
(Accumulator), thanh ghi B, con trỏ ngăn xếp (SP-stack pointer),
và các thanh ghi cho IO nối tiếp, các timer, các port I/O và ngắt
(interrupt).
- Có Onchip ROM (có thể mở rộng, 8951 có EEPROM/Flash 8K.
- Hai chân ngắt ngoài (external interrupt) Nguồn hình internet
- 4 Port 8 bit, 2 timer, một UART, ADC, …

38
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.2.2. Kiến trúc bộ VXL
1.2.2.1 Giới thiệu một số kiến trúc
bộ VXL
Kiến trúc cơ bản của bộ xử lý chip
đơn MC, dòng PIC (Microchip) điển
hình
( được trình bày trong môn học
VXL SV tự nhắc lại)

39 Nguồn Datasheet PIC


CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.2.2. Kiến trúc bộ VXL
1.2.2.1 Giới thiệu một số kiến trúc bộ VXL
Kiến trúc của bộ xử lý ARM Cotex MX/cores điển hình

Nguồn hình internet

40
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.2.2. Kiến trúc bộ VXL
1.2.2.2 Kiến trúc hệ VXL
a. Mô hình gồm:
 Address bus: Bộ xử đặt ra địa chỉ
byte/word của câu lệnh để truy xuất
tới bộ nhớ hệ thống.(1 chiều)
 Data bus: Bộ xử lý đặt ra địa chỉ câu
lệnh, nó nhận lại lệnh thông qua bus
dữ liệu. Khi bộ xử lý đặt ra địa chỉ
của dữ liệu, nó nhận dữ liệu cũng
thông qua bus dữ liệu và lưu dữ liệu
trong bộ nhớ. (2 chiều)
 Control bus: đặt ra các tín hiệu để
điều khiển thời gian của các hoạt hoạt
động khác nhau trong suốt sự liên kết,
các tín hiệu này đồng bộ với với các
hệ thống con. (2 chiều)
41 Nguồn hình internet
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.2.2. Kiến trúc bộ VXL
1.2.2.2 Kiến trúc hệ VXL
b. Truy cập lệnh/dữ liệu

42 Luồng thông tin cho việc nạp câu lệnh


CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.2.2. Kiến trúc bộ VXL
1.2.2.2 Kiến trúc hệ VXL
c. Thiết lập địa chỉ hoạt động
Mô hình kết nối:

Nguồn hình internet

43
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.2.2. Kiến trúc bộ VXL
1.2.2.2 Kiến trúc hệ VXL
c. Thiết lập địa chỉ hoạt động:
Các thông số
- Không gian nhớ:
- Số đường địa chỉ:
- Giải mã địa chỉ BN:(dùng nhiều PP)
 Dùng cổng NAND
 Dùng bộ giải mã 74LS138, 74LS139

44 Nguồn hình internet


CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG

So sánh sự khác biệt của bộ vi xử lý 8/16/32 bít?

So sánh bộ vi xử lý có kiến trúc RISC với CISC?

45
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.2.2. Kiến trúc bộ VXL
1.2.2.2 Kiến trúc hệ VXL
c. Thiết lập địa chỉ hoạt động:
 Ví dụ 1: Dùng EPROM 2764 (8K*8) để ghép thành bộ nhớ 64 K cho 8088
 Phân tích:
 Địa chỉ bắt đầu F0000H => địa chỉ kết thúc: FFFFFH
 Cần ghép 8 EPROM 2764 vì 64=8*8K
Thiết lập một hệ thống 8 bit với không gian
các vùng địa chỉ được thiết lập như sau:
Vùng nhớ IC7 từ 0FFFFFH- 0FE000H
…………………………………………
Vùng nhớ IC2 từ 0F5FFFH- 0F4000H
Vùng nhớ IC1 từ 0F3FFFH- 0F2000H
Vùng nhớ IC0 từ 0F1FFFH- 0F0000H

46
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG

c. Thiết lập địa chỉ hoạt động:


Sử dụng

 Sơ đồ:

47
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
Phân tích như sau:

c. Thiết lập địa chỉ hoạt động: - Vùng I/O 8K (213): cần 13 đường địa chỉ: A0-
 Mở rộng
A12, 8 bit dữ liệu: D0-D7
- Vùng ADC 8K: A0-A12 và D0-D7
 Ví dụ 2: Thiết lập một hệ thống nhúng 8 bit với - Vùng Rom: A0-A12 và D0-D7
các vùng địa chỉ được thiết lập như sau: - Vùng Ram 32K(215): A0-A14 và D0-D7
- Vùng chức năng đặc biệt E000H-FFFFH(8K) - Vùng chức năng đặc biệt: A0-A12 và D0-D7
- Vùng Ram: 6000H-DFFFH (32K)  Như vậy
- Vùng Rom: 4000H-5FFFH(8K) - Có 5 vùng chức năng khác nhau cần bộ giải mã
- Vùng ADC:2000H-3FFFH (8K) địa chỉ: lựa chọn mạch giải mã 3 sang 8 (dư 03),
- Vùng thiết bị I/O: 0000H-1FFFH (8K) hoặc 2 sang 4????

Thiết lập một hệ thống nhúng 8 bit với các vùng


địa chỉ được thiết lập như sau:

48
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
c. Thiết lập địa chỉ hoạt động
Ví dụ 3: Thiết lập bộ nhớ mở rộng RAM 8K-8bit cho hệ nhúng – trường hợp chỉ có RAM
ngoài 2K-8bit- lưu ý ký hiệu:
- RAM 2K: 210x2 (2n, n=11) ngăn nhớ, cần 11 đường địa chỉ: A0-A10
- RAM 8 bit (m=8) độ dài ngăn nhớ: 8 đường dữ liệu : D0-D7
- Tạo RAM 8 K-8bit (2n+k, n=11, k=2) : cần 13 đường địa chỉ: A0-A12; cần 4 RAM (k=2)
- Cần bộ giải mã địa chỉ cho 4 RAM, sử dụng chịp giải mã địa chỉ: loại 2->4.

Ví dụ 4: Thiết lập (giải mã địa chỉ) bộ nhớ mở rộng RAM 8K-32bit và ROM 4K-8bit cho hệ
nhúng – trường hợp chỉ có RAM ngoài 2K-32bit và ROM 4K-16bit
- RAM 2K: 210x2 (n1=11), cần 11 đường địa chỉ: A0- A10
- RAM 32 bit (m1=32) cần 32 đường dữ liệu : D0-D31
- Tạo RAM 8 K (k1=2) Cần kết nối tới 4 RAM 2 K.
- ROM 4K: (n2=12) cần 12 đường địa chỉ A0-A11
- ROM 8 bit (m2 = 8): cần 8 đường dữ liệu: D0-D7.
- Tạo ROM 16 bit (q=2): cần 02 ROM, thêm D8-D15?
- Cần bộ giải mã địa chỉ cho 4 RAM, 2 ROM: sử dụng
chip giải mã 3->8?
- Việc dùng chung các đường địa chỉ và dữ liệu thì được thực hiện ra sao?
49
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
 Mô hình kết nối BN ROM/RAM với CPU 8085

50 Nguồn hình internet


CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
 Mô hình kết nối BN ROM/RAM với CPU 8088/8086

51 Nguồn hình internet


CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG

1.2.2. Kiến trúc bộ VXL


1.2.2.3 I/O và ngắt
I/O (Input/Output) của Bús và của Device, việc kết nối
được thể hiện:

52 Nguồn hình internet


CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG

1.2.2. Kiến trúc bộ VXL


1.2.2.3 I/O và ngắt
Ngắt: Mô dun được tích hợp
Nguồn hình internet
sẵn bên trong VXL/VĐK, có
nhiệm vụ cung cấp một cơ chế
xử lý ngắt cho việc thực thi
các ISR (interrupt service
routine) với các nguồn ngắt từ
các thiết bị vật lý, hệ thống,
các lệnh phần mềm và các
ngoại lệ khác.
Cơ chế hoạt động ntn?
53
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.2. Thành phần phần cứng nhúng
1.2.3 Kiến trúc bộ xử lý nâng cao
Mô hình

54
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.2. Thành phần phần cứng nhúng
1.2.3 Kiến trúc bộ xử lý nâng cao
Các tính năng chung hiện diện trong hầu hết các bộ xử lý:
a. Fixed Instruction Cycle Time: thời gian để bộ xử lý thực hiện một lệnh đơn giản (ví dụ 1us đối với
8051 – 12MHz, 0.9us/MHz đối với ARM9; nếu các ứng dụng cần tốc độ xử lý nhanh, ARM9
l00MHz là phù hợp, nếu các ứng dụng yêu cầu tốc độ xử lý thấp hơn, 8051, 68HC11 hoặc 80196 là
phù hợp).
b. Internal bus width: một ALU nhận tín hiệu vào thông qua internal bus. Các bits trong một toán hạng
đơn được đưa tới ALU thì bằng với bus width. Ví dụ: một bus width 32 bits sẽ có thể đọc hoặc ghi
một số nguyên 32 bits và sẽ xử lý nhanh hơn khoản 4 lần so với bus width 8 bit. Bus width 32 bit vì
thế rất cần thiết cho các lệnh hệ thống điều khiển và xử lý tín hiệu.
c. Program counter (PC) and reset value: số lượng các bit PC quyết định kích cỡ lớn nhất có thể của bộ
nhớ vật lý. Các reset-value đảm bảo cho người thiết kế về địa chỉ khởi động chương trình khi hệ
thống reset hởi được power up.
d. Stack-pointer bits and initial reset value: Giá trị con trỏ ngăn xếp (stack pointer) phải trỏ đến địa chỉ
của các từ được lưu trữ tại ngăn xếp. Những địa chỉ này phải nằm trong những địa chỉ được cấp phát
cho ngăn xếp trong bộ nhớ. Người thiết kế phần mềm xác định giá trị đặt lại (reset) ban đầu và đặt
con trỏ ngăn xếp bắtầu cho phù hợp.
55
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.2. Thành phần phần cứng nhúng
1.2.3 Kiến trúc bộ xử lý nâng cao
a. Các đơn vị cấu trúc chung trong kiến trúc của một bộ xử lý
- CU, EU, ALU
- MAR: (Memory address register): lưu giữ địa chỉ dạng byte/word để được nạp từ bộ nhớ ngoàiBộ
xử lý sẽ thiết lập địa chỉ của lệnh hoặc dữ liệu tới MAR trước khi nó khởi động chu kỳ nạp.
- MDR (Memory data register): lưu giữ một byte/word được nạp (hoặc được gởi) đến/từ một bộ nhớ
ngoài/ các thiết bị IO
- System bus: (Internal, Address, Data, Control).
- BIU (Bus interface unit): Đơn vị giao tiếp giữa các đơn vị bên trong bộ xử lý và các bus bên ngoài.
- IR (Instruction register): đưa tuần tự các mã lệnh (opcode) tới đơn vị xử lý (EU) của bộ xử lý.
- ID (Instruction decoder): mã hóa các lệnh nhận được tại IR và chuyến nó tới CU.
- ARS (Application register set): tập các thanh ghi on-chip được dùng trong suốt quá trình xử lý của
tập lệnh cho một chương trình ứng dụng/một cửa sổ thanh ghi/tập con các thanh ghi với mỗi tập con
lưu trữ các biến tĩnh của một hoạt động định tuyến phần mềm hoặc một file thanh ghi được kết hợp
với một đơn vị ALU/FLPU
- PC (Program counter): tạo một chu kỳ lệnh bằng việc gởi địa chỉ tới bộ nhớ thông qua MAR, nó tự
động tăng lên sau mỗi lệnh được nạp.
- SP (Stack pointer): con trỏ tới một địa chỉ, tương ứng với một ngăn xếp trong bộ nhớ.
56
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.2. Thành phần phần cứng nhúng
1.2.3 Kiến trúc bộ xử lý nâng cao
b. Các đơn vị cấu trúc chung trong kiến trúc của một bộ xử lý nâng cao
- IQ (Instruction queue): chứa các lệnh đã được xếp hằng sẵn để IR không phải đợi…
- PFCU: (Prefetch control unit): điều khiển việc tìm nạp trước dữ liệu vào I và D-cache..
- I-cache (Instruction cache): tuần tự lưu trữ các lệnh trong FIFO
- D-cache (Data cache): lưu trữ các dữ liệu đã được nạp trước từ bộ nhớ ngoài.
- BT cache (Branch target cache): Nó tạo điều kiện cho sự sẵn sàng của tập lệnh tiếp theo khi gặp phải
lệnh rẽ nhánh như jump, loop hoặc call. Đơn vị tìm nạp của nó báo trước một lệnh rẽ nhánh tại Icache.
- MMU (Memory management unit): quản lý các bộ nhớ chứa các lệnh và dữ liệu đã sẵn sàng.
- SRS (System register set): Một tập các thanh ghi được dùng trong quá trình xử lý các lệnh.
- FLPU (Floating point processing unit): Một đơn vị tách biệt với ALU để xử lý dấu phẩy động, rất cần
thiết trong việc xử lý các hàm toán học trong bộ vi xử lý hoặc DSP.
- FRS (Floating point register set): Bộ thanh ghi dành riêng để lưu trữ số dấu phẩy động ở định dạng
tiêu chuẩn và được FLPU sử dụng cho dữ liệu và ngăn xếp của nó.
- MAC (Multiply and accumulate unit): nhân các hệ số của một chuỗi và tích lũy các đơn vị này trong
quá trình tính toán.
- AOU (Atomic operation unit): Nó cho phép một lệnh người dùng, khi được chia thành một số lệnh của
bộ xử lý được gọi là hoạt động nguyên tử, kết thúc trước khi một quá trình xảy ra ngắt. Điều này ngăn
chặn các vấn đề phát sinh từ dữ liệu được chia sẻ giữa các quy trình và tác vụ khác nhau.
57
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.2. Thành phần phần cứng nhúng
1.2.3 Kiến trúc bộ xử lý nâng cao
c. Đặc điểm các mạch của bộ xử lý nâng cao
- Kiến trúc RISC
- Cải thiện hiệu quả bằng việc thực hiện hầu hết các lệnh trong một chu kỳ xung nhịp đơn.
- Dùng đa hợp các tập thanh ghi, cửa sổ (window) và các files.
- Giảm tối đa sự phụ thuộc vào việc truy cập bộ nhớ ngoài cho dữ liệu, giảm số lượng các
chế độ định địa chỉ cho các lệnh số và logic.
- Bao gồm một đơn vị FPU (floating point unit), các hàm toán học xử lý FRS nhanh hơn và
chính xác hơn khi thực hiện bằng một bộ xử lý số nguyên ALU.
- Bao gồm đơn vị Instruction pipelining unit, giúp cải thiện hiệu quả việc xử lý lệnh trong
nhiều giai đoạn xử lý. Pipelining cho phép một bộ xử lý xếp chồng về thời gian trong việc
thực thi một vài lệnh để có thể tăng tốc xử lý các lệnh được thực thi trong cùng một khoản
thời gian. Cho phép Hệ thống có thể được tích hợp các thành phần đơn vị xử lý siêu đường
ống/ Siêu vô hướng…

58
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
 Cấu trúc và họat động của Pipeline Tham khảo giái trình

 Hoạt động pipeline 5 gia đoạn Nguồn hình internet

59
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG

So sánh sự khác biệt của bộ vi xử lý 8/16/32 bít?

So sánh bộ vi xử lý có kiến trúc RISC với CISC?

Pipeline là gì? Trình bày quá trình hoạt động của “5 stage pipeline” (có vẽ

hình minh họa cụ thể)?

60
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.2. Thành phần phần cứng nhúng
1.2.4 ARM (Advanced RISC
Machine)
a. Các đặc điểm chính của ARM
- Kiến trúc 32 bit nhưng cũng hỗ trợ
các loại data 8/16 bit (Hỗ trợ các
lệnh 16 bit ở chế độ Thumb, hỗ trợ
tăng tốc xử lý Jazelle Java-8bit).

Nguồn hình internet


61
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.2. Thành phần phần cứng nhúng
1.2.4 ARM (Advanced RISC Machine)
a. Các đặc điểm chính của ARM
-Có thể lập trình dữ liệu LITTLE ENDIAN hoặc BIG ENDIAN
- Thể hiện sự lợi thế khi sử dụng RISC (so với CISC) nhằm thực
hiện chương trình nhanh hơn cũng như là giảm độ dài mã lệnh.
- ARM7 và ARM9 có một sự kết nối các tính năng cửa RISC và
CISC. Hỗ trợ một tập lệnh dựa vào các chế độ định địa chỉ phức
tạp. Có một RISC core cho việc xử lý. Ngoài ra, ARM còn bao
gồm một đơn vị biên dịch được tích hợp sẵn, cho phép ban đầu
có thể biên dịch các lệnh CISC thành dạng lệnh RISC, để sau đó
có thể được thực hiện bởi core RISC của bộ xử lý.
- ARM7 có kiến trúc bộ nhớ kiểu Princeton (Von-Neumann),
ARM9 có kiến trúc bộ nhớ kiểu Harvard. (SV tự so sánh)
- ARM có các thanh ghi từ R0-R15, R15 cũng là một PC. R14
là một thanh ghi liên kết. ARM cũng có CPSR (Current
Program Status Register) và SPSR (saved program status reg.)
- Các công cụ gỡ lỗi (debug) và theo dõi (trace) của ARM
nhanh chóng gỡ lỗi phần mềm thời gian thực, đồng thời theo
dõi việc thực thi lệnh và dữ liệu chương trình liên quan ở tốc
độ lõi tối đa. Nguồn hình internet
62
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.2. Thành phần phần cứng nhúng
1.2.4 ARM (Advanced RISC Machine)
a. Các đặc điểm chính của ARM
-Có sẵn nhiều lựa chọn về công cụ phát triển và mô hình mô phỏng của môi trường EDA hàng đầu
và hỗ trợ việc gỡ lỗi thuận tiện cho thiết kế SoC.
- Các core của ARM có thể tương thích với các phiên bản cao hơn. Có thể kể đến, các core ARM 7
thì tương thích với các bộ xử lý ARM9/9E và ARM10, cũng như với kiến trúc Intel Xcale;
- Thumb là một tập lệnh tiêu chuẩn công nghiệp, cho phép thực hiện 32 bit với chi phí hệ thống
8/16 bit về nhu cầu bộ nhớ. Điều này giúp tiết kiệm bộ nhớ thông thường lên đến 35%, so với mã
32 bit tương đương, trong khi vẫn giữ được tất cả các lợi ích của hệ thống 32 bit (chẳng hạn như
quyền truy cập vào không gian địa chỉ 32 bit đầy đủ). Không có chi phí chung (về thời gian và bộ
nhớ) trong việc di chuyển giữa Thumb và trạng thái ARM bình thường của mã. Hai trạng thái
tương thích trên cơ sở bình thường. Điều này cho phép người thiết kế mã kiểm soát hoàn toàn hiệu
suất và tối ưu hóa kích thước mã.

63
Nguồn hình internet
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.2. Thành phần phần cứng nhúng
1.2.4 ARM (Advanced RISC Machine)
a. Các đặc điểm chính của ARM
 ARM một một công nghệ quản lý năng lượng thông minh, thực hiện các giải thuật nâng cao để tối ưu hóa việc cân bằng giữa
khối lượng công việc của bộ xử lý và mức tiêu hao năng lượng, tối đa hóa đáp ứng của hệ thống, làm việc được với hệ điều
hành và mobile OS.
 Các bộ xử lý ARM dùng AHB (Advanced High Performance Bus – AMBA Advanced Microcontroller Bus Architecture)
interface. AMBA là một mã nguồn mở được thiết lập cho các kết nối trên chip. AMBA đóng vai trò như một khuôn khổ cho
các thiết kế SoC và phát triển các lõi IP. Nó cung cấp một Back plane hiệu suất cao và hoàn toàn đồng bộ (Back plane có bộ
điều khiển bổ sung, có thể truy cập lẫn nhau thông qua một bus chung khác, khác với bus hệ thống). Multilayer AHB trong
phiên bản ARM926EJ-S và tất cả họ ARM10 đều thể hiện một nâng cấp đáng kể, làm giảm dộ trễ khi truy cập và làm tăng
bang thông truy cập ở một hệ thống multi-master (việc truy cập của multicontrollers trên bus như là master)

64
Nguồn hình internet
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.2. Thành phần phần cứng nhúng
1.2.4 ARM (Advanced RISC Machine)
b. Giới thiệu và phân biệt các tính năng chính của ARM 7, 9 và 11

65
Nguồn hình internet
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.2. Thành phần phần cứng nhúng
1.2.5 SHARC
- SHARC (Analog Devices), kiến trúc Harvard, single chip computer.
- 32 bit không gian địa chỉ cho truy cập 16GB/20GB/24GB theo cấu hình kích thước (word)
trong bộ nhớ.
- Cung cấp 2 cấu hình kích thước word: 32 bit và 48 bit
- Bao gồm 2 bộ đầy đủ của 16 thanh ghi mục đích chung (cho phép thực hiện hệ điều hành
đa nhiệm/đa luồng trong ch.trình)
- Các thanh ghi ( R0-R15 hoặc F0-F15, tùy thuộc vào việc có được sử dụng cho cấu hình
hoạt động số nguyên hay cấu hình dấu chấm động hay không.
- Các thanh ghi 32-bit + một vài thanh ghi là 48 bit, có thể truy cập như bộ đôi 16 / 32 bit.
- Cung cập bộ nhớ lớn trên chip (1MB)
- Cung cấp bộ nhớ off-chip bên ngoài.- Bộ nhớ on/off chip có thể được cấu hình các word
32/48 bit.
- Cho phép bộ nhớ ch.trình có thể cấu hình cho các section của bộ nhớ chương trình và dữ
liệu.
-66 Có 48 word lệnh 48 bit và word dữ liệu 32 bit cho các hoạt động số thực và dấu chấm
động, 40-bit mở rộng cho dấu chấm động.
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.2. Thành phần phần cứng nhúng
1.2.5 SHARC
- Chức năng của SHARC như một bộ
xử lý VLIW (Very large instruction
word).
- Kính thước word là 48 bit cho các
lệnh, 32 bit cho các số nguyên và dấu
chấm động tiêu chuẩn, 40 bit cho dấu
chấm động mở rộng (nhỏ hơn là 16/8
bit phải được lưu trữ như dữ liệu đầy
đủ 32 bit).
- Cung cấp các lệnh cho các hoạt động
số nguyên (hạn chế tới một giá trị tối
đa-xử lý đồ họa)
- Cho phép các hoạt động song song.

(SV Tìm hiểu thêm TigerSHARC và DSP,


…)
67
Nguồn hình internet
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG

1.2. Thành phần phần cứng nhúng


1.2…X. SoC
 SV tự tham khảo giáo trình

68
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.2. Thành phần phần cứng nhúng
1.2.6 Một số lưu ý
a. Lựa chọn bộ vi xử lý
Một số lưu ý khi lựa chon bộ vi xử lý cho hệ thống nhúng:
1. Tập lệnh (Instruction Set)
2. Số bit tối đa trong một toán hạng (8, 16, 32-trong một phép toán số học đơn hoặc logic).
3. Tần số clock ở MHz và tốc độ xử lý của triệu lệnh/1 giây (MIPS) hoặc một Dhrystonehiệu
xuất của việc xử lý (đo lường thời gian mà chương trình có thể thực thi trong 1 giây).
4. Khả năng xử lý để giải quyết các thuật toán phức tạp để đáp ứng với các yêu cầu về
thờigian (deadlines) cho việc xử lý.
Cần chú ý: các MP hoặc GPP thường được dùng bởi vì:
- Xử lý dựa trên các lệnh có sẵn trong tập tập lệnh mục đích chung được xác định trước, dẫn
đến việc phát triển hệ thống được nhanh chóng
- Một khi board và các I/O được thiết kế cho một GPP, thì có thể được dùng cho một hệ thống
mới bằng cách thay đổi phần mềm nhúng ở ROM.
- Tính sẵn sàng của trình biên dịch (Compiler) tạo điều kiện phát triển phần mềm nhúng bằng
các ngôn ngữ lập trình cấp cao.
- Tính sẵn sàng của việc các APIs chuyên dụng (Application Program Interfaces) đã được kiểm
tra (well-tested) và gỡ rối (debugged) tốt, và các mã lệnh được thiết kế trước đây cho các ứng
dụng khác tạo điều kiện cho việc phát triển các hệ thống mới được nhanh chóng.
69
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.2. Thành phần phần cứng nhúng
1.2.6 Một số lưu ý
a. Lựa chọn bộ vi xử lý
- Bộ xử lý có thể hoạt động ở tốc độ cao, tốc độ xử lý các lệnh trên giây?
- Lựa chọn bộ xử lý có hiệu quả tính toán cao:
- Pipeline, Superscalar
- Pre-fetch cache unit, caches, các file register, MMU
- Kiến trúc RISC?
- Yêu cầu về register-window, cung cấp việc chuyển đổi ngữ cảnh trong một hệ thống đa nhiệm.
- Một hệ thống nhúng tiết kiệm điện yêu cầu một bộ xử lý có tính năng tự động tắt (autoshut down) có
thể lập trình cho các đơn vị của nó và khả năng lập trình để vô hiệu hóa việc sử dụng bộ đệm (cache)
khi nhu cầu xử lý đối với một hàm hoặc tập lệnh không bị giới hạn bởi thời hạn thực thi. Bộ xử lý sử
dụng các tập lệnh Stop, Sleep và Wait và thiết kế bộ đệm đặc biệt.
- Các chế độ để truy cập bộ nhớ nhanh chóng.
- Bộ xử lý với AOU cung cấp các giải pháp phần cứng tới các vấn đề dữ liệu được chia sẽ, năng lực và
kỹ năng lập trình đặc biệt,
- Lập trình hợp ngữ, trình biên dịch, các chế độ lưu trữ big-endian/little-endian, …
- Khả năng bộ nhớ, …
70
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG

1.2. Thành phần phần cứng nhúng


 So sánh các mô hình kiến trúc hệ vi xử lý:

von Neumann vs. Harvard

71
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.2. Thành phần phần cứng nhúng
1.2.6 Một số lưu ý
b. Lựa chọn bộ vi xử lý cho yêu cầu ứng dụng
Yêu cầu Máy dân dụng, Nén, thu thập Truyền nhận Xử lý tín hiệu
Hệ thu thập dữ âm thanh, hình dữ liệu mạng âm thanh, hình
liệu-điều khiển ảnh, gateway, .. đa port, ảnh, các hệ
thiết bị Routers, mã thống điện thoại
hóa giải mã di động,…

Bộ xử lý MC MP Multi-Pro. MC+DSP/Multi
Chu kỳ lệnh (us) 0.5-1 0.01-0.04 0.0005-0.001 0.0001-0.0005
Hiệu suất Thấp Vừa Cao Rất cao
Bus nội (bit) 8 32 32 64
CISC/RISC - R R R
PC, SP 16 32 32 32
Stack(ext.)/Int. Int.
Ext. Ext./Int. Int.
Memory
72
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.2. Thành phần phần cứng nhúng
1.2.6 Một số lưu ý
b. Lựa chọn bộ vi xử lý cho yêu cầu ứng dụng
Yêu cầu Máy dân dụng, Nén, thu thập Truyền nhận Xử lý tín hiệu
Hệ thu thập dữ âm thanh, hình dữ liệu mạng âm thanh, hình
liệu-điều khiển ảnh, gateway, .. đa port, ảnh, các hệ
thiết bị Routers, mã thống điện
hóa giải mã thoại di động,
On-chip AOU - - Cần -
Pipelined/super. Không Cần Cần Cần
Off-chip RAM Không Cần Cần Cần
On-chip Reg. Không Cần Cần Cần
Windows và
files
Interrupts Int. Ext. Ext. Ext.
Instruction and
73
data caches
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.2. Thành phần phần cứng nhúng
1.2.6 Một số lưu ý
b. Lựa chọn bộ vi xử lý cho yêu cầu ứng dụng
Yêu cầu Máy dân dụng, Nén, thu thập Truyền nhận Xử lý tín hiệu
Hệ thu thập dữ âm thanh, hình dữ liệu mạng âm thanh, hình
liệu-điều khiển ảnh, gateway, .. đa port, ảnh, các hệ
thiết bị Routers, mã thống điện
hóa giải mã thoại di động,
On-chip
Cần, đủ Không Không Không
Flash/EPROm
Ext. Interrupts 1-16 1-2 128-256 16-32
Bit manipulation
Sử dụng Sử dụng nhiều Sử dụng nhiều Sử dụng nhiều
instructions
Floating point Không Cần Không Cần
Streams of data Không Hầu như không Có thể Cần
DMA control Không Không Cần Có thể
8051,
80x86, 80860, ARM9, DSPs,
68HC11/12/16, ARM7, Sunspare
80960, … …
74 PIC16, …
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.2. Thành phần phần cứng nhúng
1.2.6 Một số lưu ý
b. Lựa chọn bộ vi xử lý cho yêu cầu ứng dụng
Yêu cầu Máy dân dụng, Nén, thu thập âm Truyền nhận Xử lý tín hiệu âm
Hệ thu thập dữ thanh, hình ảnh, dữ liệu mạng thanh, hình ảnh,
liệu-điều khiển gateway, .. đa port, các hệ thống điện
thiết bị Routers, mã thoại di động,
hóa giải mã
Multi-
Bộ xử lý MC MP MC+DSP/Multi
Processor
Int.
4-32kB - - -
ROM/EPROM
Int. EEPROM 256-512kB - - -
Int. RAM 256-512kB - - -
Ext.
Không 64kB 64kB 64MB
ROM/EPROM
Ext.
Không/64-128kB Cần Cần Cần (GB)-thẻ nhớ
EEPROM/Flash
Ext. RAM Không Cần Cần Cần
75
QUESTION AND ANSWER

76
Trong hệ thống nhúng thì bộ vi xử lý là thành phần trung tâm của thiết bị.
Trình bày cấu tạo, chức năng hoạt động các khối bên trong vi xử lý. Nêu và
giải thích từng bước cách thức vi xử lý thực hiện một Câu x lệnh.
Cần Hãy vẽ các sơ đồ khối chức năng của bộ vi xử lý
Hãy vẽ mô hình thao tác thực hiện câu x lệnh
• Khối thưc̣ thi (Execu on Unit -EU) bao gồm 3 khối con bên trong:
o Khối điều khiển (Control Unit -CU)…
o Các thanh ghi lưu trữ dữ liêụ , điạ chı ̉….
o Khối xử lý số hoc̣ và đaị số (ALU)….
……..

• Khối tuần tự bao gồm 3 khối con bên trong:


o Thanh ghi chứ a Câu x lêṇ h (Instruction Register -IR) ….
o Thanh ghi giải mã Câu x lêṇ h (Instruction Decoder -ID) ….
o Bô ̣đếm chương trı̀nh (Program Counter -PC) ….
……
• Khối bus giao ếp bao gồm 3 khối bên trong:
o Bus dữ liêụ (data) ….
o Bus điều khiển (control) ….
o Bus điạ chı ̉ (address) ….
………
• Quy trıǹ h vxl/vdk thưc̣ hiêṇ 1 Câu x lệnh như sau:
o PC xác điṇh Câu x lêṇh sẽ đươc̣ thưc̣ hiêṇ
o Mã lêṇh (opcode) có điạ chı ̉ xác điṇh bởi PC sẽ nap̣ vào IR…
o ID sau đó thưc̣ hiêṇ giải mã Câu x lêṇh nhâṇ đươc̣ từ IR……
o Kết quả từ ID đưa qua khối thưc̣ thi (EU) và thưc̣ hiện…..
• o PC tăng thêm 1 đơn vi ̣thưc̣ hiêṇ Câu x lêṇ h kế ếp.
77 ………
Trong quá trình thiết kế hệ thống nhúng, các đơn vị phần cứng điển hình là những thành
phần chính yếu. Em hãy trình bày cấu tạo, chức năng hoạt động của chúng.

Cần
 Nguồn điện : cung cấp năng lượng với sự tách biêṭ về dây dẫn cho các thành phần như:
vxl/vđk, I/O, xung Clock, bô n
̣ hớ, các đơn vi ạ nalog, ... Quản lý tiêu hao năng lượng giúp
ết kiêṃ năng lượng êu thu c̣ ho các thiết bị,̣ đặc biệt di động và dùng pin.
 Mạch tạo xung Clock và Real-timer Clock…
 Mạch Reset: gồm có, power-on reset, Reset từ bên trong/ bên ngoài vxl/vđk, Reset do
WDT
 Bô ̣nhớ :
o RAM chứ a các thanh ghi, biến khai báo, các stack, làm bô ̣đêṃ lưu trữ các dữ liêụ về
thoaị, text, hı̀nh ảnh.
o ROM chứ c trı̀nh khởi đôṇ g hê ̣thống (Image)
o Flash/EEPROM chứ a kết quả xử lý
o Caches: lưu trữ taṃ thời các Câu x lệnh, data, … giúp tăng tốc độ xử lý.
 Mạch điều khiển ngắt (Interrupt)
 Mạch giải mã địa chỉ: sử dụng ghép kênh/phân kênh/ giải mã điạ chı ̉
 Mạch giao ếp truyền thông IO
 Nối ếp…
 Song song
 Keypad, ADC, DAC, …
 …..

78
Câu hỏi: Sau khi đã xác định các thông số/ đặc điểm kỹ thuật của hệ thống nhúng,
hãy trình bày tổngquan các bước thiết kế hệ thống nhúng mà cả phần cứng và phần
mềm đồng thiết kế.
Cần
Việc thiết kế đồng thời phần cứng/phần mềm bao gồm 6 nhiêṃ vu như sau:
 Quản lý tác vụ cấp đồng thời: là việc xác định các tác vụ trong hệ thống nhúng. Những nhiệm vụ này
có thể khác nhau từ những thông số, sáp nhập hoặc phân tách các tác vụ.
 Chuyển đổi cấp cao: được chứng minh rằng có rất nhiều tối ưu hóa biến đổi cấp cao có thể được áp
dụng cho các chi tiết kỹ thuật. Ví dụ, vòng lặp (loops) có thể thay đổi cho nhau để truy cập đến các
phần tử mảng ở địa chỉ gần (local address). Ngoài ra, phép tính số học dấu chấm động có thể thường
xuyên được thay thế bằng phép tính số học dấu chấm tĩnh mà không có bất kỳ tổn thất đáng kể trong
sự tương đồng.
 Phân vùng phần mềm / phần cứng: trong trường hợp tổng quát, một số chức năng đã được thực hiện
bởi phần cứng đặc biệt do yêu cầu tính toán. Phân vùng phần cứng / phần mềm riêng biệt là hoạt
động ánh xạ các hoạt động cho cả phần cứng và phần mềm.
 Biên dịch: những phần của đặc tả kỹ thuật được ánh xạ tới phần mềm phải được biên dịch. Hiệu quả
của các mã được tạo ra được cải thiện nếu biên dịch khai thác kiến thức về bộ vi xử lý (và bộ nhớ)
phần cứng. Vì vậy, có trình biên dịch đặc biệt cho các hệ thống nhúng "hardware-aware"…..
 Lập kế hoạch: còn gọi là lập bản đồ sắp đặt thời gian vận hành phải được thực hiện trong một số bối
cảnh.
Các lịch trình có thể xấp xỉ trong suốt sự phân chia phần cứng / phần mềm, trong quản lý tác vụ cấp
đồng thời và cũng có thể trong quá trình biên dịch. Các lịch trình chính xác có thể thu được cho mã
cuối cùng….
 Thăm dò không gian thiết kế: một vài thiết kế đáp ứng các đặc tính kỹ thuật. Thăm dò không gian
thiết kế là quá trình phân tích các tập hợp các mẫu thiết kế có thể, sau đó một thiết kế được lựa
chọn…..
79
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG

1.3. Phần mềm


1.3.1. Tổng quan
Các thành phần phần mềm tiêu chuẩn (tái sử dụng lại) gồm:
- OS
- Phần mềm thời gian thực (real-time databases)
- Middlewares

80
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.3. Phần mềm
1.3.2 lập lịch trình thực thi tasks trong OS
Lập lịch trình (Scheduling) các nhiệm vụ yêu cầu kiến thức về thời gian thực thi của các
nhiệm vụ với các ràng buộc về mặt thời gian.
- Worst-case execution time (WCET): là giới hạn trên về thời gian thực hiện tác vụ (task).
- Tính toán chính xác WCET là khó, chỉ có thể tính toán đối với các ch.trình/tác vụ nhất định.
- WCET được có thể được yêu cầu đối với cả phần cứng/
- WCET có thể xác định dựa vào các ràng buộc về thời gian trong
quá trình tổng hợp.
- Hai cách tiếp cận để giải quyết:
1). Ước tính các giá trị hiệu suất và chi phí: các giải thuật sẽ tập trung vào:
- Phần mềm
- Phần cứng
2). Chính xác các giá trị hiệu suất và chi phí: điều này chỉ có thể thực
hiện nếu các tool tổng hợp cho phần mềm (Compiler) và phần cứng có
sẵn. Nhưng vấn đề về chi phí thời gian là phải tính tới.

81
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.3. Phần mềm
1.3.3. Lập lịch trình trong các hệ thống thời gian thực (RTC)
Phân loại:
Aperiodic scheduling:

82
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.3. Phần mềm
1.3.3. Lập lịch trình trong các hệ thống thời gian thực (RTC)
Phân loại:
+ Thời hạn cứng và mềm (soft and hard deadlines)
- Soft-deadline: thường dựa vào các phần mở rộng cho các OS chuẩn.
- Ví dụ: việc cung cấp tác vụ và các mức ưu tiên khi gọi OS
- Hard-deadline: sử dụng các bộ lập lịch trình động (dynamic) và tĩnh (static)

83
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.3. Phần mềm
1.3.3. Lập lịch trình trong các hệ thống thời gian thực
Phân loại:
+ Thời hạn cứng và mềm
(soft and hard deadlines)
- Soft-deadline:
- Hard-deadline:

84
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.3. Phần mềm
1.3.3. Lập lịch trình trong các
hệ thống thời gian thực
Phân loại:
+ Tác vụ Periodic và Aperiodic
(Định kỳ và không định kỳ)
- Periodic: các tác vụ phải được
thực ở mỗi đơn vị p của thời gian,
p gọi là chu kỳ. (Periodic task =
job)
- Aperiodic: các tác vụ không là
periodic thì gọi là aperiodic
- Việc yêu cầu BXL tại các thời gian
không dự đoán được gọi là
sporadic (có các quy định khoản
thời gian tối thiểu giữa các lần yêu
cầu BXL)
85
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.3. Phần mềm
1.3.3. Lập lịch trình trong các
hệ thống thời gian thực
Phân loại:
+ Preemptive (ưu tiên trước) and
non-preemptive (không ưu tiên
trước):
- Các bộ lập lịch không ưu tiên
dựa trên giả định rằng các tác vụ
được thực hiện cho đến khi chúng
được hoàn thành. Do đó, thời
gian phản hồi cho các sự kiện bên
ngoài có thể khá
dài nếu một số tác vụ có thời gian
thực hiện lớn.
- Bộ lập lịch ưu tiên phải được sử
dụng nếu một số tác vụ có thời
gian thực hiện dài hoặc nếu thời
gian phản hồi cho các sự kiện bên
ngoài được yêu cầu ng
86
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.3. Phần mềm
1.3.3. Lập lịch trình trong
các hệ thống thời gian thực
Phân loại:
+ Lập lịch trình Static và Dynamic
- Dynamic: đưa ra các quyết định tại thời điểm run-time (phát sinh thêm chi phí.
- Static: đưa ra quyết định tại thời điểm thiết kế. Dựa trên việc lập kế hoạch thời gian bắt
đầu của các tasks và tạo các bảng thời gian bắt đầu được chuyển tiếp tới một bộ điều phối
(dispatcher) đơn giản.
- • Dispatcher: không đưa ra quyết định mà chỉ có trách nhiệm bắt đầu các nhiệm vụ theo
lịch trình trong bảng, được điều khiển thường bằng bộ timer.
- Các hệ thống được điều khiển hoàn toàn bằng bộ timer còn được gọi là hệ thống kích
hoạt hoàn toàn theo thời gian (TT-Entirely time trigger system).
- Cấu trúc kiểm soát thời gian của hệ thống TT được thiết lập offline, đươc mã hóa trong
TDL (hình, Task-Descriptor List)- chứa lịch trình theo chu kỳ cho tất cả hoạt động (bao
gồm các quan hệ ưu tiên ràng buộc lẫn nhau.)
- Thuận lợi: Để đáp ứng các ràng buộc về thời gian trong các hệ thống hard real-time, khả
năng dự đoán hành vi của hệ thống là quan trọng nhất; lập lịch trước thời gian chạy
thường là phương tiện thực tế duy nhất.
- Điểm yếu: Phản ứng kém đối với các sự kiện sporadic
87
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG

1.3. Phần mềm


1.3.3. Lập lịch trình trong
các hệ thống thời gian thực
Phân loại:
+ Centralized và Distributed
- Centralized: Lập lịch trình đa xử lý có thể được thực thi trên một bộ xử lý.
- Distributed: thực thi trong một tập hợp các bộ xử lý.
+ Độ phức tạp và thể loại của việc kiểm tra lập lịnh trình
+ Mono- và multi-processor scheduling
- Thuật toán lập lịch đơn giản xử lý trường hợp của các bộ xử lý đơn lẻ, trong khi các thuật toán phức
tạp hơn xử lý các hệ thống bao gồm nhiều bộ xử lý.
- Có thể phân biệt giữa thuật toán cho hệ thống đa xử lý đồng nhất và thuật toán cho hệ thống đa xử lý
không đồng nhất.
- Hệ thống đa xử lý không đồng nhất: có thể xử lý thời gian thực thi theo mục tiêu cụ thể và cũng có
thể được áp dụng cho các hệ thống phần cứng/phần mềm hỗn hợp, trong đó một số tác vụ được ánh xạ
tới phần cứng.
+ Online-Offline Scheduling
+ Cost function: Maximum lateness: được định nghĩa là sự khác biệt giữa thời gian hoàn thành và thời
hạn, tối đa hóa tất cả các nhiệm vụ (ML là negative nếu các nhiệm vụ được hoàn thành trước thời hạn
deadlines.
88
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.3. Phần mềm
1.3.3. Lập lịch trình trong các hệ thống thời gian thực
Aperiodic scheduling:
a. Không có ràng buộc ưu tiên (no precedence constraints)
- ci là thời gian thực thi của Ti (task), di là khoản thời gian deadline (thời gian giữa Ti trở nên khả dụng
và thời gian cho đến khi Ti hoàn thành việc thực thi).
- li là thời gian laxity: li = di - ci (if li = 0, Ti bắt đầu ngay tức thì sau khi nó được cho phép thực thi.
- Giả sử trường hơp các hệ thống duy nhất một bộ xử lý, các tác vụ bắt đầu thực thi tại cùng thời điểm
(không có preemption), dựa vào luật Jackson: “Cho trước một tập gồm n tác vụ độc lập, bất kỳ thuật
toán nào thực hiện các tác vụ theo thứ tự thời hạn (deadlines)
không giảm dần là tối ưu để giảm thiểu độ trễ (lateness) tối đa.”. Giải thuật này gọi là
EDD (Earliest Due Date), EDD yêu cầu tất cả tác vụ phải được sắp xếp theo các
deadlines. Nếu các deadlines được biết trước, EDD có thể triển khai như một thuật toán lập lịch trình
static.

89
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.3. Phần mềm
1.3.3. Lập lịch trình trong các hệ thống thời gian thực
Aperiodic scheduling:
a. Không có ràng buộc ưu tiên (no precedence constraints) (tt)
Trong trường hợp, các arrive times là khác đối với các hệ thống đơn bộ xử lý, xử lý preemption sẽ có thể khả
năng làm giảm độ trễ tối đa .
- EDF (Earliest Deadline First): là giải thuật tối ưu làm tối thiểu hóa độ trễ lớn nhất. (Horn, 1974): Cho một tập
hợp gồm n tác vụ độc lập với thời gian đến tùy ý, bất kỳ thuật toán nào tại bất kỳ thời điểm nào thực hiện tác
vụ với thời hạn tuyệt đối sớm nhất trong số tất cả các tác vụ sẵn sàng là tối ưu để giảm thiểu độ trễ tối đa.
- EDF yêu cầu rằng, mỗi khi có nhiệm vụ sẵn sàng mới, nhiệm vụ đó sẽ được đưa vào hàng đợi các nhiệm vụ đã
sẵn sàng, được sắp xếp theo thời hạn của chúng. Do đó, EDF là một thuật toán lập lịch động.
- Nếu một tác vụ mới đến được chèn vào đầu hàng đợi, thì tác vụ hiện đang thực thi sẽ được ưu tiên. Nếu
danh sách đã sắp xếp được sử dụng cho hàng đợi, độ phức tạp của EDF là O(n2). Mảng nhóm có thể được sử
dụng để giảm thời gian thực hiện

90
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.3. Phần mềm
1.3.3. Lập lịch trình trong các hệ thống thời gian thực
Aperiodic scheduling:
a. Không có ràng buộc ưu tiên (no precedence constraints) (tt)
- Xét ví dụ EDF: Nếu tại thời điểm 4s, tác vụ T2 có
deadline sớm nhất. Vì vậy nó ưu tiên T1. Tại thời điểm 5s, T3 đến. Do thời hạn muộn
hơn nên nó không ưu tiên T2.
 

- Nếu tại t = 0, T1 với deadline nhỏ nhất sẽ


được ưu tiên trước. Tại t = 1, T2 lại được
ưu tiên, …
91
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.3. Phần mềm
1.3.3. Lập lịch trình trong các hệ thống
thời gian thực
Aperiodic scheduling:
a. Không có ràng buộc ưu tiên (no
precedence constraints) (tt)
Xét ví dụ EDF: lưu ý vấn đề overload tạm thời
của BXL

92
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.3. Phần mềm
1.3.3. Lập lịch trình trong các hệ
thống thời gian thực
Aperiodic scheduling:
a. Không có ràng buộc ưu tiên (no
precedence constraints) (tt)
- LL(Least Laxity): các mức ưu tiên task là
một tính năng đơn suy giảm của laxity,
laxity ít hơn thì độ ưu tiên cao hơn (li)
LL cũng là một chính sách lập lịch trình tối
ưu cho các hệ thống đơn xử lý theo nghĩa
là nó sẽ tìm thấy một lịch trình nếu có.
Do các ưu tiên động của nó, nó không
thể được sử dụng với một hệ điều hành
tiêu chuẩn chỉ cung cấp các ưu tiên cố
định.
Lập lịch trình LL yêu cầu kiểm tra định
kỳ và (ngược lại với lập lịch trình
EDF) kiến thức về thời gian thực hiện
(và tính đến thời gian đó)
93
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.3. Phần mềm
1.3.3. Lập lịch trình trong các hệ thống thời gian thực
Aperiodic scheduling:
a. Không có ràng buộc ưu tiên (no precedence constraints) (tt)
- Nếu preemption không được phép
• Có thể phải để BXL không hoạt động (idle) vào các thời điểm nhất định để hoàn thành
tác vụ với ‘deadlines sớm’ đến muôn.
• Ví dụ: xét ở quá trình periodic, T1 có exc-time là 2, period là 4 và deadline là 4. T2 bắt
đầu tại 4n+1, với deadline và exe-time là 1, giả sử T1 và T2 không được đồng xử lý.
Để tránh bị lỡ , người lập lịch trình cần có kiến thức về tương lai. Nếu không có kiến thức
về thời gian đến trước, thì không có thuật toán trực tuyến nào có thể quyết định có giữ bộ
xử lý ở chế độ chờ hay không .

94
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.3. Phần mềm
1.3.3. Lập lịch trình
trong các hệ thống thời gian thực
Aperiodic scheduling:
b. với ràng buộc ưu tiên ( with precedence constraints)
- Xét ví dụ: các tác vụ phụ thuộc, T3 có thể thực thị nếu các vụ T2 và T1 hoàn thành và gởi
tin đến T3. Đây là một lịch trình hợp lệ. Đối với lịch trình static, lịch trình này có thể
được lưu giữ trong một bảng, bộ Dispatcher điều phối thời gian thực hiện các tác vụ được
bắt đầu và thời điểm các thông báo phải được trao đổi.
- LDF (Latest Deadline First): thuật toán tối ưu để tối thiểu hóa độ trễ lớn nhất trong
trường hợp các arrive-times đến đồng thời.
- LDF dựa trên thứ tự tổng tương thích với thứ tự từng phần được mô tả bởi biểu đồ
nhiệm vụ. LDF đọc biểu đồ nhiệm vụ và, trong số các nhiệm vụ không có sự kế nhiệm,
chuyển nhiệm vụ có deadlines cuối cùng vào một hàng đợi. Sau đó, nó lặp lại quá trình này
cho các tác vụ còn lại. Trong thời gian chạy, các tác vụ được thực thi theo thứ tự tổng thể
đã tạo. LDF thì tối ưu cho bộ xử lý đơn.
- Trường hợp thời gian đến không đồng bộ có thể được xử lý bằng EDF đã sửa đổi thuật
toán. Ý tưởng chính là chuyển đổi vấn đề từ một tập hợp các nhiệm vụ phụ thuộc đã cho
thành một tập hợp các nhiệm vụ độc lập với các tham số thời gian khác nhau. Thuật toán
này một lần nữa tối ưu cho các hệ thống đơn bộ xử lý
95
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.3. Phần mềm
1.3.3. Lập lịch trình trong các hệ thống thời gian thực
Periodic scheduling:
a. Tổng quan
- Đối với lịch trình định kỳ, điều tốt nhất mà chúng ta có thể làm là thiết kế một thuật
toán sẽ luôn tìm ra lịch trình nếu có. Một bộ lập lịch được xác định là tối ưu nếu nó sẽ
tìm thấy một lịch trình nếu có.
- {Ti}: tập hợp các tác vụ, mỗi Ti (job) có cùng exc-time. Pi period của Ti , ci là exe-time,
di khoảng deadline, li là laxity. là mức sử dụng tích lũy cho một tập hợp n quá trình (
nghĩa là thời gian thực hiện tích lũy của các quy trình này chia cho period của chúng):

- Giả sử exe-times là bằng nhau đối với một số lượng m qua trình thì:
96
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.3. Phần mềm
1.3.3. Lập lịch trình trong các hệ thống thời gian thực
Periodic scheduling:
b. Các tác vụ độc lập
+ RM (Rate monotonic): giải thuật lập lịch trình cho các quá trình độc lập periodic:
- Tất cả tasks có hard deadlines là periodic và độc lập.
- di = pi
- ci là hằng và được biết ở các tasks.
- Thời gian được yêu cầu cho việc chuyển đổi ngữ cảnh là không đáng kể.
- Đối với một bộ xử lý đơn và n-tasks, mức sử dụng tích lũy là:

Khi n lớn :
li

97
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.3. Phần mềm
1.3.3. Lập lịch trình trong các hệ thống thời gian thực
Periodic scheduling:
b. Các tác vụ độc lập
+ RM (Rate monotonic): giải thuật lập lịch trình cho các quá trình độc lập periodic:
- Mức ưu tiên của các tác vụ hàm giảm dần đơn điệu của tác vụ (các tác vụ với period ngắn
hơn có ưu tiên cao hơn). RM là một cơ chế lập lịch trình ưu tiên với các ưu tiên được xác
định (fixed), tối ưu cho mono-processor.
Ví du: T1-T2-T3 có
period là 2, 6, 6,
exe_time là 0.5, 2, 1.

Ví du: T1 p, e là 5 và 3,
T2 p e là 8 và 3.

98
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.3. Phần mềm
1.3.3. Lập lịch trình trong các hệ thống thời gian thực
Periodic scheduling:
b. Các tác vụ độc lập
+ EDF: mở rộng thực hiện đối với các trường hợp d khác p
- EDF tối ưu nếu điều kiện cần bằng 1.

99
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.3. Phần mềm
1.3.3. Lập lịch trình trong các hệ thống thời gian thực
Periodic scheduling:
c. Các tác vụ phụ thuộc: có khó hơn do
- Cần thêm tài nguyên bổ sung.
- Phân vùng lập lịch thành các phần tĩnh và động. Với cách tiếp cận này, càng nhiều quyết
định càng tốt được đưa ra tại thời điểm thiết kế và chỉ còn lại tối thiểu các quyết định
trong thời gian chạy.
c. Các sự kiện Sporadic
- Chúng ta có thể kết nối các sự kiện Sporadic (lẻ tẻ) với các ngắt và thực hiện chúng ngay
lập tức nếu mức độ ưu tiên ngắt của chúng là cao nhất trong hệ thống. Tuy nhiên, hành vi
thời gian khá khó đoán sẽ dẫn đến sự tác động tới tất cả các nhiệm vụ khác.
- Do đó, các máy chủ tác vụ Sporadic đặc biệt được sử dụng để thực thi theo các khoảng
thời gian đều đặn và kiểm tra các tác vụ Sporadic đã sẵn sàng. Bằng cách này, các nhiệm
vụ Sporadic về cơ bản được biến thành các nhiệm vụ periodic, do đó cải thiện khả năng
dự đoán của toàn bộ hệ thống

100
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG

1.3. Phần mềm


1.3. 4. Các giao thức truy cập nguồn tài nguyên
1.3.4.1 Priority inversion (Đảo ngược ưu tiên)
- Có những trường hợp trong đó các tác vụ phải được cấp quyền truy
cập độc quyền vào các tài nguyên, chẳng hạn như các biến hoặc thiết
bị dùng chung chung để tránh hành vi chương trình không xác định
hoặc không mong muốn.
- Các phần chương trình trong đó yêu cầu quyền truy cập độc quyền
như vậy được gọi là các phần quan trọng (critical sections). Các hệ
điều hành thường cung cấp các nguyên hàm để yêu cầu và giải
phóng quyền truy cập độc quyền vào các tài nguyên, còn được gọi là
các nguyên hàm mutex.
- Các tác vụ không được cấp quyền truy cập độc quyền phải đợi cho
đến khi tài nguyên được giải phóng. Theo đó, thao tác phát hành
phải kiểm tra các tác vụ đang chờ và tiếp tục tác vụ có mức ưu tiên
cao nhất.
- Chúng ta sẽ gọi thao tác yêu cầu P(S) và thao tác giải phóng V(S),
101
trong đó S tương ứng với tài nguyên cụ thể được yêu cầu.
- Các phần critical sections nên ngắn gọn.
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.3. Phần mềm
1.3. 4. Các giao thức truy cập nguồn tài nguyên
1.3.4.1 Priority inversion (Đảo ngược ưu tiên)
- Đối với các critical section (CS), có hiệu ứng đảo ngược ưu tiên.

- Giả sử T1 có mức ưu tiên cao hơn T2. Tại t0 T2 đi vào CS sau khi yêu cầu truy cập độc
quyền tới vài nguồn tài nguyên thông qua P(S). Tại t1 , T1 đã sẵn sàng và ưu tiên T2. Tại t2 T1
không dành được quyền truy cập độc quyền vào tài nguyên đang được T2 sử dụng và bị
chặn. T2 tiếp tục truy cập và sau một thời gian giải phóng tài nguyên. Hoạt động phát hành
kiểm tra các tác vụ đang chờ xử lý có mức độ ưu tiên cao hơn và ưu tiên T2.
Trong thời gian T1 bị chặn, tác vụ có mức độ ưu tiên thấp hơn đã chặn tác vụ có mức độ ưu
102tiên cao hơn một cách hiệu quả. Hiệu ứng này được gọi là đảo ngược ưu tiên.
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.3. Phần mềm
1.3. 4. Các giao thức truy cập nguồn tài nguyên
1.3.4.1 Priority inversion (Đảo ngược ưu tiên)

- Giả định rằng các nhiệm vụ T1, T2 và T3 đã được đưa ra. T1 có mức ưu tiên cao nhất, T2 có
mức ưu tiên trung bình và T3 có mức ưu tiên thấp nhất. Hơn nữa, định rằng T1 và T3 yêu
cầu sử dụng độc quyền một số tài nguyên thông qua hoạt động P(S). Bây giờ, hãy để T3 ở
trong phần quan trọng của nó khi nó bị T2 chiếm ưu thế. Khi T1 chiếm trước T2 và cố gắng
sử dụng cùng một tài nguyên mà T3 đang có quyền truy cập độc quyền, nó sẽ chặn và cho
phép T2 tiếp tục. Miễn là T2 đang tiếp tục, T3 không thể giải phóng nguồn.
Do đó, T2 đang chặn T1 một cách hiệu quả mặc dù mức độ ưu tiên của T1 cao hơn T2. Trong
ví dụ này, đảo ngược ưu tiên tiếp tục miễn là T2 thực thi. Do đó, khoảng thời gian của tình
huống đảo ngược ưu tiên không giới hạn bởi độ dài của bất kỳ phần quan trọng.. //
103
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.3. Phần mềm nhúng (Embedded Software)
1.3.1. Final Machine Implementable Software (FMIS)
 Bộ xử lý hệ thống nhúng thực thi phần mềm dành riêng cho một ứng dụng nhất định của hệ
thống đó. Dữ liệu và các mã lệnh trong giai đoạn cuối cùng được đặt tại ROM hoặc bộ nhớ
Flash cho tất các nhiệm vụ khi hệ thống được thực thi. Phần mềm cũng được gọi là ROM
IMAGE (Giống như một hình ảnh, là một chuỗi và sự sắp xếp các pixels duy nhất, phần mềm
nhúng cũng là một vị trí và cách sắp xếp các byte duy nhất cho các lệnh và dữ liệu).
 Mỗi mã lệnh hoặc dữ liệu chỉ thể hiện ở dạng các bits hoặc bytes. Vì vậy, Mỗi file Machine
Implementable Software giống như một bảng của các địa chỉ và các bytes dữ liệu tại mỗi địa chỉ
của bộ nhớ hệ thống. Bảng này được đọc như là ROM image (bao gồm chương trình boot-up,
con trỏ địa chỉ ngăn xếp, con trỏ địa chỉ bộ đếm chương trình, chương trình ứng dụng, ISR,
RTOS, các địa chỉ vector và dữ liệu ngõ vào.
 FMIS cho một sản phẩm được nhúng vào bộ nhớ lập trình được (Flash /Rom /Prom) như là ảnh
của một frame. Bytes tại mỗi địa chỉ phải được định nghĩa để tạo Rom image.
 Bằng cách thay đổi Rom image, nền tảng (platform) phần cứng giống nhau sẽ làm việc khác
nhau và có thể được dùng cho toàn bộ các ứng dụng khác nhau hoặc cho các cập nhật mới của
cùng một hệ thống .

104
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.3. Phần mềm nhúng (Embedded Software)
1.3.1. Final Machine Implementable Software (FMIS)

105 Nguồn hình internet


CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.3. Phần mềm nhúng (Embedded Software)
1.3.2. Mã hóa của phần mềm trong các mã máy (machine codes)
- Định nghĩa các địa chỉ và các bytes/bits tương ứng cho mỗi địa
chỉ.
- Việc cấu hình cụ thể cho các thiết bị/hệ thống con, việc mã hóa
dựa vào mã máy được xử dụng. Ví dụ: trong một bộ truyền/nhận
dữ liệu sử dụng các giao thức mạng và các bus cụ thể, thì việc đặt
mã máy và bits nhất định để cấu hình cho nó truyền t/h với tốc độ
megabyte cụ thể/ giây.
- Lưu ý: việc mã hóa dạng mã máy nếu có thể thực hiện được thì
được thực hiện chỉ trong các tình huống cụ thể bởi do yếu tố thời
gian và người lập trình bước đầu tiên phải nắm/hiểu được tập lệnh
106 bộ xử lý và sau đó ghi nhớ các lệnh và mã máy của bộ xử lý.
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.3. Phần mềm nhúng
1.3.3. Phần mềm dùng ngôn ngữ hợp ngữ chuyên dụng của bộ xử lý
a. Một chương trình hoặc một phần nhỏ cụ thể có thể được mã hóa bằng ngôn ngữ hợp ngữ
thông qua việc sử dụng một Assembler (phần mềm được dùng cho việc phát triển mã
hợp ngữ) sau khi hiểu rõ về bộ xử lý và tập lệnh của nó.
b. Quá trình của việc chuyển đổi một chương trình hợp ngữ vào trong file phần mềm mã
máy và cuối cùng thu được một file ROM image như sau:
- Assembler dịch phần mềm hợp ngữ thành các mã máy (machine codes).
- Linker: bộ linker liên kết những mã này với các mã được yêu cầu khác (các mã sẽ được
liên kết tại các địa chỉ phân biệt trong các địa chỉ có sẵn của hệ thống, cho file nhị phân
cuối cùng-file.exe).
- Loader: chương trình loader thực hiện nhiệm vụ phân bổ lại các mã sau khi tìm thấy
các địa chỉ bộ nhớ vật lý có sẵn tại một thời điểm nhất định (tìm, địa chỉ bắt đầu thích
hợp, đặt các mã vào bộ nhớ sau khi đọc file.exe).
- Locator: định vị các mã này thành một ROM image. Các mã được đặt vĩnh viễn tại các
địa chỉ thực sự có sẵn trong Rom.
- Cuối cùng, hoặc là một device programmer sẽ nhập file ROM image và ghi image vào
bộ nhớ Flash hoặc Prom; hoặc một mặt nạ (mask) được tạo cho ROM của hệ thống nhúng
107 từ file ROM image – cung cấp ROM ở dạng chip IC.
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.3. Phần mềm nhúng (Embedded Software)
1.3.3. Phần mềm bằng ngôn ngữ hợp ngữ chuyên dụng
(Assembly) của bộ xử lý
Mô hình chuyển đổi một chương trình Assembly vào image ROM

Nguồn hình internet

108
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.3. Phần mềm nhúng (Embedded Software)
1.3.4. Phần mềm bằng ngôn ngữ lập trình cấp cao
 Lập trình/mã hóa bằng hợp ngữ thì rất tốn thời gian trong hầu hết các trường hợp.
 Phần mềm lập trình được phát triển thành một ngôn ngữ lập trình cấp cao: C, C++, Visual C++
hoặc Java (có thể có thêm tính năng bổ sung các lệnh hợp ngữ khi sử dụng một số tính năng
dành riêng cho bộ xử lý và mã hóa cho một phần cụ thể).
 Các lớp (layers) khác nhau trong phần mềm nhúng với ngôn ngữ C:
 Các lệnh bộ xử lý
 Chức năng chính
 Dịch vụ ngắt
 Multiple tasks (đa nhiệm/xử lý song song)
 Kernel and Scheduler (lịch trình)
 Các hàm thư viện chuẩn, các hàm stack và giao thức thực hiện.
 Quá trình xử lý việc chuyển đổi một chương trình C thành ROM image: Một trình biên dịch
(Compiler) được sử dụng để tạo ra file các mã đối tượng; Nó kết hợp các mã dựa theo tập lệnh
bộ xử lý và các thông số kỹ thuật khác; Trình biên dịch C cho các hệ thống nhúng, như là bước
cuối cùng của quá trình biên dịch, sử dụng mã tối ưu hóa các mã trước khi liên kết; Sau khi biên
dịch, bộ linker liên kết các mã đối tượng và các mã cần thiết khác; các bước tiếp theo tương tự
như như chương trình hợp ngữ để tạo ra ROM image cho phần cứng mục tiêu.
109
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.3. Phần mềm nhúng (Embedded Software)
1.3.4. Phần mềm bằng ngôn ngữ lập trình cấp cao
Mô hình chuyển đổi một chương trình C vào image ROM

Nguồn hình internet

110
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.3. Phần mềm nhúng (Embedded Software)
1.3.5. Mô hình chương trình cho việc thiết kế phần mềm
 Các mô hình khác nhau được dung trong các quá trình thiết kế phần mềm nhúng:
 Mô hình chương trình tuần tự (Sequential Program)
 Mô hình chương trình hướng đối tượng (Object Oriented Program).
 Các mô hình: Lưu đồ điều khiển và luồng dữ liệu (Control and Data flow graph);
Lưu đồ dữ liệu đồng bộ (Synchronous Data Flow-SDF); Lưu đồ đa luồng (Multi
Thread Graph-MTG).
 Mô hình Máy trạng thái hữu hạn cho đường dẫn dữ liệu ( Finite State Machine
for data path).
 Mô hình đa luồng (Multithreaded Model) cho việc xử lý đồng thời của các quá
trình hoặc các chủ đề hoặc các nhiệm vụ.

111
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.3. Phần mềm nhúng (Embedded Software)
1.3.6. Phần mềm cho việc xử lý đồng thời và lập lịch trình cho đa nhiệm vụ
và ISRs bằng cách sử dụng một RTOs
 Một chương trình hệ thống nhúng thường được thiết kế bằng cách dùng phương thức xử lý
đa nhiệm hoặc đa luồng. Đa nhiệm vụ được xử lý thường bởi OS không theo phương thức
tuần tự mà là đồng thời. Các nhiệm vụ xử lý đồng thời có thể bị ngắt bởi việc thực thi ISR,
theo các mức độ ưu tiên cho các nhiệm vụ (priority tasks)
 OS cung cấp quá trình, bộ nhớ, các thiết bị, các IOs và việc quản lý hệ thống file. Một hệ
thống file xác định các cách mà một file được tạo, gọi, định danh, sử dụng, sao chép, lưu
hoặc xóa, mở và đóng. File hệ thống là phần mềm cho việc sử dung các file trên một đĩa, bộ
nhớ flash, thẻ nhớ.
 Phần mềm OS có chức năng lập lình trình cho toàn bộ các quá trình (các nhiệm vụ, ISRs và
các trình điều khiển thiết bị - device drivers) trong hệ thống. Chính vì hoạt động của các tác
vụ và ISRs phải có các ràng buột về thời gian thực và các thời hạn để hoàn thành các nhiệm
vụ, RTOs sẽ được yêu cầu trong hệ thống nhúng.
 RTOS cung cấp các chức năng giao tiếp giữa các quá trình và điều khiển việc truyền các
thông điệp và tín hiệu cho một tác vụ. Một số RTOs tiêu biểu: OS uCOS-II, VxWorks,
112 Windows CE, OSEK, Linux/RTLinux, QNX, …
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.3. Phần mềm nhúng (Embedded Software)
1.3.7. Phần mềm cho các trình điều khiển /quản lý thiết bị
a. Một ES thực hiện việc điều khiển đa thiết bị vật lý và thiết bị ảo
 Physical devices: timers, keyboards, display, memory, ports,…
 Vitural devices: một tập tin/file (của việc ghi nhận được mở,
đọc, ghi, đóng và lưu như một luồng/dòng (stream) của các
bytes hoặc words); một ống (pipe-cho việc gởi và nhận một
stream của bytes từ một nguồn đến đích); Một socket (cho việc
gởi và nhận một stream của các bytes giữa phần mềm client và
server, và giữa nguồn và đích của các hệ thống tính toán); Một
đĩa RAM (cho việc dùng RAM theo cachs tương tự với việc ghi
file trên đĩa).
b. Trình điều khiển thiết bị (device driver): là phần mềm cho các
hoạt động mở, kêt nối hoặc ràng buột, đọc, ghi và đóng hoặc điều
khiển của thiết bị (là phần mềm được viết bằng ngôn ngữ lập trình
cấp cao). Trình điều khiển thiết bị thực thi sau việc lập trình thanh
ghi điều khiển (hoặc từ) của thiết bị ngoại vi hoặc thiết bị ảo. Việc
lập trình này được gọi là khởi tạo hoặc đăng ký hoặc phần đính kèm
Nguồn hình internet
thiết bị (trình điều khiển đọc thanh ghi trạng thái, nhận đầu vào và
ghi đầu ra, nó thực hiện trên một ngắt đến hoặc từ thiết bị).
113
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.3. Phần mềm nhúng (Embedded Software)
1.3.7. Phần mềm cho các trình điều
khiển/quản lý thiết bị
c. Một driver điều khiển có 03 chức năng sau:
- Khởi tạo, được kích hoạt bởi đặt các bits thích hợp tại các thanh
ghi điều khiển hoặc từ (word).
- Gọi một ISR khi ngắt hoặc khi thiết lập một cờ trạng thái trong
thanh ghi trạng thái và chạy (điều khiển) ISR.
- Reset cờ trạng thái sau một dịch vụ ngắt.
Một driver có thể được thiết kế cho các hoạt động bất đồng bộ
hoặc đồng bộ.
d. Việc dùng các chức năng của OS, mã hóa trình điều
khiển thiết bị có thể được thực hiện sao cho phần cứng bên dưới
được ẩn càng nhiều càng tốt. Sau đó, một API (Giao diện lập trình
ứng dụng) được xây dựng và dùng để xác định phần cứng một cách
riêng biệt. Điều này làm cho trình điều khiển có thể sử dụng được
khi phần cứng của thiết bị thay đổi trong một hệ thống.
114 Nguồn hình internet
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.3. Phần mềm nhúng (Embedded Software)
1.3.7. Phần mềm cho các trình điều
khiển/quản lý thiết bị
e. Một trình điều khiển thiết bị sẽ truy cập đến các thiết bị
tại các địa chỉ được xác định rõ ràng-OS cũng cung cấp các mã cho
các địa chỉ port hệ thống và cho các cơ chế truy cập phần cứng.
f. Phần mềm/Trình quản lý thiết bị (Device manager software)
cung cấp code cho việc phát hiện ra sự hiện diện của các thiết bị,
cho việc khởi tạo và kiểm tra các thiết bị đang hiện diện.
- Gồm phần mềm cho việc phân bổ và đăng ký các địa chỉ port (có
thể là một thanh ghi hoặc bộ nhớ) cho các thiết bị khác nhau tại các
địa chỉ phân biệt khác nhau, gồm các mã cho việc phát hiện bất kỳ
xung đột nào xảy ra.
- Bảo đảm rằng mọi thiết bị đều có thể truy cập đến một tác vụ tại
bất cứ thời điểm nào.
- Đảm bảo cho các thiết bị ảo cũng có thể có được sự phân bổ các
115 chỉ. Nguồn hình internet
địa
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG

1.3. Phần mềm nhúng (Embedded Software)


1.3.8. Hệ điều hành và hệ thống thời gian thực (RTOS)
a. Hệ điều hành:
 Phần mềm đa nhiệm (đa nhân xử lý - đa luồng)
 Lập kế hoạch nhiều nhiệm vụ,
 Quản lý: tiến trình, bộ nhớ, thiết bị, cổng I/O, mạng lưới
(bus), hệ thống tập tin, thời gian, sự kiện , chức năng,
truyền thông giữa các vi xử lý, chia sẻ bộ nhớ, bảo mật,
GUIs,... ...
116
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.3. Phần mềm nhúng (Embedded Software)
1.3.8. Hệ điều hành và hệ thống thời gian thực (RTOS)
b. Real Time Operating System (RTOS)
• Phần mềm nhúng thường được thiết kế cho xác định hiệu
năng, công việc, và thời gian trễ trong ISR được thêm vào
ngoài các tính năng của hệ điều hành.
• Thực hiện nhiều hành động và kiểm soát nhiều thiết bị và
ISRs với quy định ràng buộc về thời gian thực và thời hạn
hoàn thành.
• Phân bổ ưu tiên nhiệm vụ và ISRs, lập kế hoạch ưu tiên
trước cho chúng
117
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.3. Phần mềm nhúng (Embedded Software)
1.3.9. Các công cụ phần mềm cho việc thiết kế một hệ thống nhúng.
a. Trình soạn thảo (Editor): tạo source file code (C hoặc Assembly)
b. Phiên dịch (Interpreter): cho việc dịch các lệnh (line-by-line)-> các mã máy
c. Trình biên dịch (Compiler): tạo ra một file object (dùng tập hợp các mã hoàn
chỉnh, có thể bao gồm các mã, hàm, biểu thức từ thư viện).
d. Asembler/Cross Asembler
e. Simulator: mô phỏng tất cả các tính năng của một mạch hệ thống nhúng, mô
phỏng quá trình xử lý của các mã lệnh của bộ xử lý.
f. Source-code engineering software: để hiểu mã nguồn, điều hướng và duyệt,
chỉnh sửa, gỡ lỗi, cấu hình và biên dịch.
g. Stethoscope (ống nghe): theo dõi (/ghi lại theo thời gian) thay đổi của các
biến và tham số chương trình.
h. Trace scope (vết): theo dõi sự thay đổi của các modules và các tác vụ theo
thời gian.
i. Integrated development environment: là một môi trường phần mềm và phần
cứng bao gồm các việc mô phỏng, soạn thảo, biên dịch, RTOs, Assemblers,
gỡ lỗi, Stethoscope, tracer, emulators, phân tích logic, ghi code vào PROM
hoặc Flash.
j. Quản lý dự án (project): quản lý các tập tin tương ứng với các giai đoạn thiết
kế một cách có trật tự.
118
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.5. Hệ thống nhúng
1.5.1. Phân loại hệ thống nhúng (có thể theo qui mô hoạc cách khác)
a. Quy mô nhỏ: thường được thiết kế với một chip MC đơn 8/16 bit; Phần cứng và mềm ít
phức tạp. Sử dụng công cụ ISE cho việc soạn thảo, biên dịch, gỡ lỗi, …. Phần mềm
được lưu trong bộ nhớ có sẵn của hệ thống…
b. Quy mô trung bình: thường được thiết kế với một chip đơn hoặc một vài chip 16/32
MC, hoặc các DSPs, hoặc các RISCs. Hệ thống này cũng có thể sử dụng các bộ xử lý
đơn có sẵn và Ips cho các chức năng khác nhau (ASSPs và IPs cũng có thể phải được
cấu hình thích hợp bởi phần mềm hệ thống trước khi được tích hợp vào bus hệ thống).
Hệ thống này có cả phần cứng và phần mềm phức tạp. Đối với việc thiết kế phần mềm
phức tạp, các công cụ lập trình được dùng thường là: C/C++/Visual C++/Java, RTOS,
công cụ source code engineering, simulator, debugger và ISE.
c. Quy mô phức tạp: các hệ thóng nhúng có phần cứng lớn và phần mềm phức tạp, có thể
cần vài IPs, ASIPs, các bộ xử lý có thể mở rộng hoặc cấu hình được, các mảng logic có
thể lập trình được. Thường đường dùng cho các ứng dụng tiên tiến (cutting-edge
application) mà các ứng dụng này cần việc thiết kế đồng thời phần cứng –mềm và các
thành phần để được tích hợp vào hệ thống cuối cùng. Chúng thường bị ràng buột bởi các
tốc độ xử lý có sẵn ở các đơn vị phần cứng.
- Các chức năng phần mềm như các giải thuật mã hóa, giải mã chuyển đổi cosine rời thuận
nghịch, giao thức TCP/IP và các chức năng điều khiển mạng đều ddowcj thực hiện bên
trong phần cứng để tăng cường tốc độ xử lý. Phần mềm sẽ thực hiện một vài tính năng của
tài nguyên phần cứng. Các công cụ phát triển hệ hệ thống có thể không có sẵn do ràng
119buột về chi phí., …
CHƯƠNG 1-GIỚI THIỆU HỆ THỐNG NHÚNG
1.5. Ví dụ về hệ thống nhúng
1.5.2. Các ví dụ
(1). Máy bán hàng tự động.
(2). Smart Card.
(3). Digital Camera
(4). Robot
…..

120
Bài tập
 Sinh viên đọc tài liệu tham khảo (Raj Kamal, Embedded
Systems: Architecture, Programming and Design.) trên mạng
hoặc OCW để xem các ví dụ hệ thống nhúng. Sau đó tự đề xuất
một hệ thống nhúng (nêu rõ các yêu cầu và tính năng), và phân
tích các đặc điểm kỹ thuật của hệ thống nhúng đề xuất:
- Phần cứng
- Phần mềm
- Sơ đồ khổi kết nối phần cứng.
- Các chức năng của phần mềm nhúng/
- Lựa chọn phần cứng và phần mềm để đáp ứng yêu cầu ứng
dụng.
 Sinh viên nộp bài theo quy định trên hệ thống Elearning OCW
(Giảng viên sẽ tạo phần giao và nộp bài tập sau buổi học).

121
Câu hỏi

1. a. Trình bày ngắn gọn về các đơn vị phần cứng điển hình trong HTN
b. Cho biết kiến trúc tổng quát các đơn vị bên trong vi xử lý như sau:
hãy:
+ Liệt kê và giải thích chức năng các đơn vị cấu trúc thông dụng trong vi xử lý.
+ Liệt kê và giải thích chức năng các đơn vị cấu trúc nâng cao trong vi xử lý

122
Câu hỏi
2. Tập lệnh kiểu RISC, CISC là gì? Nêu các ưu điểm và nhược điểm của chúng.
3. Kiến trúc bộ nhớ Harvard, Von Neumann là gì? Nêu các ưu điểm và nhược
điểm của chúng.
3) Pipeline là gì? Trình bày quá trình hoạt động của 5 stage pipeline (minh họa
cụ thể)
4) Bộ nhớ đệm (Cache) là gì? Có mấy loại Cache? Tại sao vi xử lý/ vi điều
khiển cần có Cache?
5. Các bài tập về giải mã địa chỉ bộ nhớ (trong bài giảng làm cho hết).
6. Trình bày ngắn gọn về thiết bị Bán Socola tự động (ACVM)
+ Chức năng (function) Thành phần HTN (component) Phần cứng
(Hardward), Phần mềm (Software) -> Sơ đồ khối.
7. Trình bày ngắn gọn về thiết bị Smart card.
8. Trình bày ngắn gọn về thiết bị Digital Camera
9) Trong hệ thống nhúng thì vi xử lý là thành phần trung tâm của thiết bị. Trình bày cấu
tạo, chức năng hoạt động các khối bên trong vi xử lý. Nêu và giải thích từng bước cách
123thức vi xử lý thực hiện một Câu x lệnh.
11) Trong quá trình thiết kế hệ thống nhúng, các đơn vị phần cứng điển hình là những thành phần chính
yếu. Em hãy trình bày cấu tạo, chức năng hoạt động của chúng.
12). Sau khi đã xác định các thông số/ đặc điểm kỹ thuật của hệ thống nhúng, hãy trình bày tổng
quan các bước thiết kế hệ thống nhúng mà cả phần cứng và phần mềm đồng thiết kế.
Câu hỏi them:
a) Các tiêu chí phân loại hệ thống nhúng? Tại sao HTN có sự khác nhau?
b) Hãy tóm tắt đặc tả kiến trúc CPU kiểu Von Neumman và kiến trúc CPU kiểu Harvard? Hai kiến
trúc này khác nhau ở điểm nào ? Kiến trúc nào thích hợp hơn khi chọn để thiết kế một hệ thống
nhúng ?
c) Nêu (vẽ ) mô hình tổng quát phần cứng của một hệ thống nhúng ?

13. Trình bày ưu điểm, nhược điểm giao tiếp không đồng bộ nối tiếp.
14. Trình bày ưu điểm, nhược điểm giao tiếp đồng bộ nối tiếp. Trình tự các bước thực hiện cho một mô
hình cụ thể
15. Trình bày ưu điểm, nhược điểm giao tiếp song song. Trình tự các bước thực hiện cho một mô hình cụ
thể .
16. Vẽ hình minh họa và trình bày các bước tiến hành giao tiếp bắt tay nối tiếp. Trình tự các bước thực
hiện cho một mô hình cụ thể
17. Vẽ hình minh họa và trình bày các bước tiến hành giao tiếp bắt tay song song. Trình tự các bước thực
hiện cho một mô hình cụ thể
18. Vẽ hình minh họa kết nối và trình bày cách thức giao tiếp SPI giữa 1 Master và 3 Slaves.
19. Vẽ hình minh họa kết nối và trình bày cách thức giao tiếp I2C giữa 1 Master và 3 Slaves.

124
Máy bán hàng tự động là một hệ thống nhúng ứng dụng rộng rãi trong cuộc sống.
Với các yêu cầu kỹ thuật của máy bán chocolate tự động, hãy:
a. Xác định các yêu cầu đầu vào và đầu ra của thiết bị bán hàng.
b. Xây dựng sơ đồ khối của thiết bị dựa trên vi điều khiển tùy chọn và các thiết bị
ngoại vi cần thiết
Gợi ý:
a) Xác định các yêu cầu đầu vào và đầu ra của thiết bị bán hang
• Phím nhấn ma trận dùng cho giao tiếp với người sử dụng: tra cứu thông tin, ra yêu cầu.
• Hiển thị LCD dùng hiển thị các menu, text, hình ảnh, thông tin sản phẩm, thời gian. LCD có thể sử dụng màn hình
cảm ứng.
• Nơi nhâṇ đồng xu mua sản phẩm
• Nơi sản phẩm đẩy ra ngoài cho người sử dụng và tiền dư lại
• Port kết nối Internet thông báo người bán hàng biết tình trạng thiết bị.
[ sơ đồ khối chức năng mô tả a)]
b) Xây dựng sơ đồ khối (nguyên lý)
Lựa chọn VĐK và TB ngoại vi (phần cứng) SV lý giải)
 Vi điều khiển họ ARM7.
 RAM và ROM sử dụng tích hợp bên trong ARM./ hoặc….
 Bộ nhớ bên ngoài (Flash ROM) dùng chứa đựng các thông tin về sản phẩm, hình ảnh, các Câu x
hỏi và trả lời thường gặp khi sử dụng thiết bị. …..
 RTC sử dụng tích hợp bên trong ARM….
 TCP/IP Port có thể sử dụng module SIM giao tiếp trong ARM thông qua chuẩn UART……
 Module đọc các mệnh giá đồng xu khác nhau, từ đó xuất ra các bits dữ liệu đưa vào VĐK theo
chuẩn song song 8 bits. ….
 ……….
 Hệ thống nguồn cung cấp. ……
Chọn thành phần phần mềm
Sơ đồ khối cho thiết bi

125
Thẻ thông minh (smart card) là một hệ thống nhúng ứng dụng rộng rãi trong cuộc
sống. Với các yêu cầu kỹ thuật của thẻ thông minh, , hãy:
a. Xác định các yêu cầu đầu vào và đầu ra của thiết bị bán hàng.
b. Xây dựng sơ đồ khối của thiết bị dựa trên vi điều khiển tùy chọn và các thiết bị
ngoại vi cần thiết
Gợi ý:
a) Xác định các yêu cầu đầu vào và đầu ra của thiết bị thẻ thông minh
Có 2 loaị thẻ thông minh: loaị thẻ có ếp xúc vớ i thiết bi đ
̣ oc̣ thẻ thông qua các chân giao ếp
với SIM; và loaị card không ếp xúc. (SV tự tìm hiểu)
a) Xây dựng sơ đồ khối (nguyên lý)
Lựa chọn VĐK và TB ngoại vi (phần cứng) - SV lý giải)
 +Vi xử lý hoăc̣ vi điều khiển…. Cụ thể
+ ROM chứa chương trı̀nh khởi đôṇg…..
+ EEPROM chứ a dữ liêụ người sử duṇg: PIN code, data…..
+ RAM chứa các thanh ghi taṃ, stack….
+ Timer và Điều khiển ngắt
+ Bô ̣điều chế cao tần 16MHz giúp thu phát dữ liêụ không dây…..
+ Giao diêṇ I/O: giao diêṇ kết nối uart vớ i máy đoc̣ thẻ…….
+ Charge pump giúp tái taọ laị năng lươṇ g từ bô ṭ hu phát không dây và cung cấp cho hê ṭ hống.
……….
 Hệ thống nguồn cung cấp. ……
Chọn thành phần phần mềm

Sơ đồ khối cho thiết bi yêu cầu

126
Máy ảnh kỹ thuật số (digital camera) là một hệ thống nhúng ứng dụng rộng rãi
trong cuộc sống. Với các yêu cầu kỹ thuật của máy ảnh kỹ thuật số, , hãy:
a. Xác định các yêu cầu đầu vào và đầu ra của thiết bị bán hàng.
b. Xây dựng sơ đồ khối của thiết bị dựa trên vi điều khiển tùy chọn và các thiết bị
ngoại vi cần thiết
Gợi ý:
a) Xác định các yêu cầu đầu vào và đầu ra của thiết bị bán hang
• Các nút nhấn cho phép vâṇ hành camera, với các chức năng như: chup̣ , quay, xóa, ảnh trước, ảnh sau,…
• Các cảm biến hı ̀nh ảnh có thể cấu hı ̀nh nhiều mức đô p
̣ hân giải khác nhau: VGA, 2Mpixel, 4Mpixel, 6Mpixel, ….
• Đèn Flash giúp tăng cườ ng đô ̣ánh sáng khi cần thiết.
• Các ảnh xem trước và sau khi chup̣ đươc̣ hiển thi ̣lên LCD. LCD cũng hiển thi ̣GUI menu và giúp ngườ i sử duṇg
tương tác với thiết bi ̣dễ dàng hơn.
• Camera có thể kết nối với máy in, máy ́nh. ……
……..
b) Xây dựng sơ đồ khối (nguyên lý)
Lựa chọn VĐK và TB ngoại vi (phần cứng) SV lý giải)
 LCD sceen giúp người sử duṇg điều chı ̉nh khung hı ̀nh trước khi chup̣ .
Ngoài ra, nó hiển thi ḷ ại hı ̀nh ảnh sau khi
chup̣ ……
 Khi nhấn nút chup̣ , self-Timer có thể đươc̣ kı ́ch hoaṭ, đèn flash có thể đươc̣ kı ́ch hoaṭ.
 Charge Coupled Device (CCD) là cảm biến hıǹ h ảnh daṇg tương tư,̣ ́n hiêṇ đươc̣ đưa đến bô A ̣ DC cho ra các
chuỗi bit nhi p ̣ hân….
 Bô x̣ ử lý tín hiêụ số (CCDDSP) dùng cho xử lý ảnh như: nén hıǹ h ảnh và lưu laị daṇ g JPEG
 ……….
 Hệ thống nguồn cung cấp. ……
Chọn thành phần phần mềm
……………..
Sơ đồ khối cho thiết bi

127

You might also like