Bài giảng Hệ thống nhúng

MỤC LỤC

CHƢƠNG 1 - TỔNG QUAN . 6

1.1 Tổng quan . 6

1.1.1 Hệ thống nhúng . 6

1.1.2 Hệ thống thời gian thực . 6

1.1.3 Lĩnh vực ứng dụng của hệ thống nhúng . 7

1.2 Kiến trúc hệ thống nhúng . 7

1.3 Thiết kế hệ thống nhúng . 10

1.4 Mô hình hệ thống nhúng . 12

Chƣơng 2 - HỆ THỐNG PHẦN CỨNG . 13

2.1 Tổng quan . 13

2.1.1 Bộ nhớ . 13

2.1.2 Các thành phần kết nối . 13

2.2 Hệ vi xử lý . 14

2.2.1 Tổng quan . 14

2.2.2 Kiến trúc vi xử lý . 16

2.2.3 Sự thực thi . 17

2.3 Bộ nhớ . 24

2.3.1 Tổng quan . 24

2.3.2 Bộ nhớ ROM . 25

2.3.3 Bộ nhớ RAM . 26

2.3.4 Quản lý bộ nhớ . 27

2.4 Thiết bị ngoại vi . 28

2.4.1 Tổng quan . 28

2.4.2 Vào ra nối tiếp . 30

2.4.3 Vào ra song song . 31

2.5 Bus . 33

2.5.1 Bus địa chỉ . 33

2.5.2 Bus dữ liệu . 33

2.5.3 Bus điều khiển . 34

Chƣơng 3 – PHẦN MỀM NHÚNG . 35

3.1 Tổng quan . 35

3.2 Trình điều khiển thiết bị . 35

3.2.1 Tổng quan . 35

3.2.2 Ngắt . 36

3.2.3 Bộ nhớ . 37

3.2.4 Bus . 38

- 2 -3.3 Hệ điều hành trong các hệ thống nhúng . 38

3.3.1 Tổng quan . 38

3.3.2 Tiến trình . 40

3.3.3 Quản lý tiến trình . 40

3.3.4 Quản lý bộ nhớ . 42

3.4 Phần mềm ứng dụng . 45

3.4.1 Middleware . 45

3.4.2 Application . 46

Chƣơng 4 – THIẾT KẾ HỆ THỐNG NHÚNG THEO CÁC HỌ VI XỬ LÝ . 47

4.1 Tổng quan . 47

4.2 Họ vi xử lý AT89C. 48

4.2.1 Tổng quan . 48

4.2.2 Kiến trúc họ vi xử lý AVR . 49

4.2.3 Tập lệnh . 50

4.2.4 Sự thực thi . 52

4.2.5 Thiết kế ứng dụng . 54

4.3 Họ vi xử lý AVR . 57

4.3.1 Tổng quan . 57

4.3.2 Kiến trúc họ . 58

4.3.3 Tập lệnh của AVR . 59

4.3.4 Sự thực thi . 59

4.3.5 Thiết kế ứng dụng . 61

4.4 Họ vi xử lý ARM . 64

4.4.1 Tổng quan . 64

4.4.2 Kiến trúc họ . 64

4.4.3 Tập lệnh . 65

4.4.4 Sự thực thi . 65

4.4.5 Thiết kế ứng dụng . 66

pdf72 trang | Chuyên mục: Kỹ Thuật Lập Trình Nhúng | Chia sẻ: dkS00TYs | Lượt xem: 4256 | Lượt tải: 1download
Tóm tắt nội dung Bài giảng Hệ thống nhúng, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
Dạng lệnh là: 
Tên lệnh Địa chỉ 1 Địa chỉ 2 Địa chỉ Đích Địa chỉ kế tiếp 
Ví dụ: 
ADD d, s1, s2, next_i ;d := s1 +s2 
Cấu trúc chỉ lệnh có 3 địa chỉ: 
Dạng lệnh: 
Tên lệnh Địa chỉ 1 Địa chỉ 2 Địa chỉ Đích 
Ví dụ: 
ADD d, s1, s2 ; d := s1 + s2 
Cấu trúc chỉ lệnh có 2 địa chỉ: 
Dạng lệnh: 
Tên lệnh Địa chỉ 1 Địa chỉ Đích 
Ví dụ: 
ADD d, s1 ; d := d + s1 
Cấu trúc chỉ lệnh có 1 địa chỉ: 
Dạng lệnh: 
Tên lệnh Địa chỉ 1 
Ví dụ: 
ADD s1 ; accumulator := accumulator + s1 
Cấu trúc chỉ lệnh không truy cập địa chỉ: 
Dạng lệnh: 
Tên lệnh 
Ví dụ 
ADD ; top_of_stack := top_of_stack +next_on_stack 
4.4.4 Sự thực thi 
Cũng nhƣ hầu hết các bộ xử lý dùng tập lệnh RISC khác, ARM cũng sử dụng cấu trúc 
load-store. Điều đó có nghĩa là: tất cả các chỉ lệnh đều đƣợc thực hiện trên 
thanh ghi. Chỉ có lệnh copy giá trị từ bộ nhớ vào thanh ghi hoặc chép lại giá trị từ 
thanh ghi vào bộ nhớ mới có ảnh hƣởng tới bộ nhớ. Các bộ xử lý CISC cho phép giá 
trị trên thanh ghi có thể cộng với giá trị trong bộ nhớ, đôi khi còn cho phép giá trị trên bộ nhớ 
có thể cộng với giá trị trên thanh ghi. ARM không hỗ trợ cấu trúc lệnh dạng „từ bộ nhớ đến bộ 
nhớ‟. Vì thế, tất cả các lệnh của ARM có thể thuộc 1 trong 3 loại sau: 
- 66 - 
 Chỉ lệnh xử lý dữ liệu: chỉ thay đổi giá trị trên thanh ghi. 
 Chỉ lệnh truyền dữ liệu: copy giá trị từ thanh ghi vào bộ nhớ và chép giá trị từ bộ 
nhớ vào thanh ghi. 
 Chỉ lệnh điều khiển dòng lệnh: Bình thƣờng, ta thực thi các chỉ lệnh chứa trong một 
vùng nhớ liên tiếp, chỉ lệnh điều khiển dòng lệnh cho phép chuyển sang các địa chỉ 
khác nhau khi thực thi lệnh, tới những nhánh cố định, hoặc là lƣu 
và trở lại địa chỉ để phục hồi chuỗi lệnh ban đầu hay 
là đè lên vùng code của hệ thống . 
4.4.5 Thiết kế ứng dụng 
 Trong phần này chúng ta sẽ tìm hiểu phƣơng pháp lập trình hợp ngữ với ARM. 
Xét chƣơng trình sau: 
AREA HelloW,CODE,READONLY ;Khai bao vung code 
SWI_SwiteC EQU &0 ;Ki tu xuat o R0 
SWI_Exit EQU &11 ;Ket thuc chuong trinh 
ENTRY ;Diem bao hieu vao chuong trinh 
START ADR R1,TEXT ;R1 chi den vung dia chi cua TEXT 
LOOP LDRB R0,[R1],#1 ;R0:=[R1];R1:=R1+1 
CMP R0,#0 ;R0 chi toi gia tri cuoi hay chua 
SWINE SWI_WriteC ;Neu chua ket thuc in 
BNE LOOP ;thi quay nguoc lai vong lap 
SWI SWI_Exit ;Quay ve lai chuong trinh quan ly 
TEXT ="Hello World",&0a,&0d,0 ;Khai bao doan Text 
END ;Chuong trinh ket thuc 
Cách tổ chức và thực thi tập lệnh của ARM: Cách tổ chức của nhân ARM không thay 
đổi nhiều trong khoảng 1983-1995:đến ARM7-sử dụng dòng chảy lệnh sử dụng 3 tác vụ. Từ 
1995 trở về sau, đã xuất hiện một vài nhân ARM mới đƣợc giới thiệu có dòng chảy lệnh sử 
dụng 5 tác vụ. 
Hình 4.5 Chỉ lệnh một chu kì máy sử dụng dòng chảy lệnh có 3 tác vụ 
- 67 - 
Thời gian để bộ xử lý thực thi một chƣơng trình là: 
Trong đó CPI là số xung nhịp trung bình cần cho mỗi chỉ lệnh, Ninst là số chỉ lệnh thực 
thi một chƣơng trình, fclk là tần số xung nhịp. Với công thức trên, ta có 2 cách để 
giảm thời gian thực thi một chƣơng trình: 
+ Tăng tần số xung nhịp: điều này đòi hỏi trạng thái của mỗi tác vụ trong dòng chảy 
lệnh là đơn giản, và, do đó, số tác vụ sẽ tăng thêm. 
+ Giảm CPI: điều này đòi hỏi mỗi chỉ lệnh cần nhiều dòng chảy lệnh hơn với tác vụ 
không đổi, hoặc các tác vụ cần đơn giản hơn, hoặc kết hợp cả 2 lại với nhau. 
ARM đƣa ra cấu trúc mỗi dòng chảy lệnh có 5 tác vụ, với cách mô phỏng tựa nhƣ cấu 
trúc von Neumann, với vùng nhớ dữ liệu và chƣơng trình riêng biệt. Từ cấu trúc lệnh có 3 tác 
vụ đƣợc chia nhỏ lại thành 5 tác vụ cũng làm cho mỗi chu kì xung nhịp sẽ thực hiện một công 
việc đơn giản hơn ở mỗi trạm, cho phép có thể tăng chu kì xung nhịp của hệ thống. Sự tách 
rời bộ nhớ chƣơng trình và bộ nhớ dữ liệu <cache chứa các chỉ lệnh I-cache và cache chứa dữ 
liệu D-cache là tách rời nhau> cũng cho phép giảm đáng kể tài nguyên chiếm của mỗi chỉ 
lệnh trong một chu kì máy. 
Câu hỏi cuối chƣơng 
1. Trình bày các đặc điểm của họ vi xử lý AT89C 
2. Nêu kiến trúc chung của họ vi xử lý AT89C 
3. Trình bày về các lệnh logic của AT89C 
4. Trình bày các thanh ghi của Timer trong vi xử lý AT89C 
5. Trình bày các chế độ hoạt động của Timer trong AT89C 
6. Trình bày về bộ nhớ và các cổng trong họ vi xử lý AVR 
7. Nêu các bƣớc để lập trình cho AVR với CodeVision 
8. Trình bày các đặc điểm của các lệnh trong vi xử lý AVR 
9. Phân tích sự khác nhau giữa dòng chảy lệnh có 3 tác vụ và dòng chảy lệnh có 5 tác vụ 
Hình 4.6 Dòng chảy lệnh 3 tác vụ 
- 68 - 
ĐỀ THI THAM KHẢO 
Đề số 1 
Câu 1: Trình bày các phƣơng pháp biểu diễn kiến trúc của hệ thống nhúng. 
Câu 2: Phân tích đặc điểm, chức năng của hệ thống bus địa chỉ trong hệ thống nhúng. 
Câu 3: Trình bày về trình điều khiển ngắt. 
Câu 4: Nêu các bƣớc lập trình cho AVR với CodeVision 
Đề số 2 
Câu 1: Thế nào là Soft Real Time System, cho ví dụ. 
Câu 2: Nêu cấu tạo, đặc điểm các loại bộ nhớ RAM. 
Câu 3: Trình bày những đặc điểm của hệ điều hành trong các hệ thống nhúng. 
Câu 4: Trình bày về các chế độ hoạt động của Timer trong vi xử lý AT89C 
Đề số 3 
Câu 1: Thế nào là Hard Real Time System, cho ví dụ. 
Câu 2: Nêu cấu tạo, đặc điểm các loại bộ nhớ ROM. 
Câu 3: Nêu và phân tích các điều kiện cần của RMS. 
Câu 4: Nêu kiến trúc chung của họ vi xử lý AT89C 
Đề số 4 
Câu 1: Trình bày về mô hình phát triển hệ thống nhúng Spiral. 
Câu 2: Nêu các cơ chế quản lý bộ nhớ với hệ thống nhúng. 
Câu 3: Thế nào là tiến trình, trình bày về quản lý tiến trình trong hệ thống. 
Câu 4: Nêu đặc điểm của tập lệnh của vi xử lý ARM. 
Đề số 5 
Câu 1: Trình bày về mô hình phát triển hệ thống nhúng Water Fall và các ƣu khuyết 
điểm của nó so với các phƣơng pháp truyền thống. 
Câu 2: Nêu những ƣu điểm của phƣơng pháp vào ra song song. 
Câu 3: So sánh các hệ thống đơn tiến trình và các hệ thống đa tiến trình. 
Câu 4: Trình bày về hoạt động của các cổng trong vi xử lý AVR. 
Đề số 6 
Câu 1: Tại sao ta sử dụng phƣơng pháp phân lớp để biểu diễn kiến trúc hệ thống nhúng? 
Câu 2: Trình bày những đặc điểm phần cứng của một hệ thống nhúng. 
Câu 3: Thế nào là MiddleWare software, Application software? Cho ví dụ. 
Câu 4: Nêu sự thực thi của các lệnh trong vi xử lý ARM. 
GỢI Ý ĐÁP ÁN 
Đề số 1 
Câu 1: Trình bày các cấu trúc có thể đƣợc dùng để biểu diễn kiến trúc của hệ thống 
nhúng. 
Gợi ý 
 Module 
- 69 - 
 Component and Connector 
 Allocation 
Câu 2: Phân tích đặc điểm, chức năng của hệ thống bus địa chỉ trong hệ thống nhúng. 
Gợi ý 
 Vị trí 
 Độ rộng bus 
 Cấu tạo 
 Nhiệm vụ 
Câu 3: Trình bày về trình điều khiển ngắt. 
Gợi ý 
 Ngắt Level Triggered 
 Ngắt Edge Triggered 
 Các chức năng chính của trình điều khiển 
Câu 4: Nêu các bƣớc lập trình cho AVR với CodeVision 
Gợi ý 
Trình bày các bƣớc làm việc với Code Vision Wizard trong Code Vision 
Đề số 2 
Câu 1: Thế nào là Soft Real Time System, cho ví dụ. 
Gợi ý: 
Trình bày về các hệ thống thời gian thực trong đó sai khác về thời gian không gây hậu 
quả lớn về tài sản, con ngƣời. 
Câu 2: Nêu cấu tạo, đặc điểm các loại bộ nhớ RAM. 
Gợi ý 
 Trình bày về các loại SDRAM, DRAM … 
 Cấu tạo các ô nhớ và đặc điểm 
 Phƣơng pháp truy cập đến các phần tử nhớ 
Câu 3: Trình bày những đặc điểm của hệ điều hành trong các hệ thống nhúng. 
Gợi ý 
Câu 4: Trình bày về các chế độ hoạt động của Timer trong vi xử lý AT89C 
Đề số 3 
Câu 1: Thế nào là Hard Real Time System, cho ví dụ. 
Gợi ý 
 Trình bày những hệ thống mà trong đó việc sai khác về thời gian sẽ dẫn đến những 
hậu quả nghiêm trọng về tài sản và ngƣời. 
Câu 2: Nêu cấu tạo, đặc điểm các loại bộ nhớ ROM. 
Gợi ý 
 Trình bày về các loại ROM … 
 Cấu tạo các ô nhớ và đặc điểm 
 Phƣơng pháp truy cập đến các phần tử nhớ 
Câu 3: Nêu và phân tích các điều kiện cần của RMS. 
Gợi ý 
- 70 - 
 Trình bày đơn sử dụng 
 Trình bày về đa sử dụng 
Câu 4: Nêu kiến trúc chung của họ vi xử lý AT89C 
Gợi ý 
 Sơ đồ khối 
 Mô tả các khối 
 Mô tả các chân 
Đề số 4 
Câu 1: Trình bày về mô hình phát triển hệ thống nhúng Spiral. 
Gợi ý 
 Sơ đồ khối 
 Trình bày các phase của mô hình 
 So sánh với mô hình warterfall 
Câu 2: Nêu các cơ chế quản lý bộ nhớ với hệ thống nhúng. 
Gợi ý 
 Trình bày về phân cấp bộ nhớ trong hệ thống nhúng 
 Trình bày về Memory Management 
Câu 3: Thế nào là tiến trình, trình bày về quản lý tiến trình trong hệ thống. 
Gợi ý 
 Định nghĩa chƣơng trình, tiến trình 
 Đơn tiến trình 
 Đa tiến trình 
Câu 4: Nêu đặc điểm của tập lệnh của vi xử lý ARM. 
Gợi ý 
 Kích thƣớc lệnh 
 Dạng lệnh 
 Kiểu thực thi 
Đề số 5 
Câu 1: Trình bày về mô hình phát triển hệ thống nhúng Water Fall và các ƣu khuyết 
điểm của nó so với các phƣơng pháp truyền thống. 
Gợi ý 
 Sơ đồ khối 
 Trình bày các phase của mô hình 
 So sánh với mô hình Spiral 
Câu 2: Nêu những ƣu điểm của phƣơng pháp vào ra song song. 
Gợi ý 
 Tốc độ 
 Cấu tạo dây 
 Kết nối với thiết bị ngoại vi 
Câu 3: So sánh các hệ thống đơn tiến trình và các hệ thống đa tiến trình. 
Gợi ý 
- 71 - 
 Độ phức tạp của thuật toán quản lý 
 Hiệu suất của hệ thống 
Câu 4: Trình bày về hoạt động của các cổng trong vi xử lý AVR. 
Gợi ý 
 Vị trí, cấu tạo 
 Các thanh ghi 
 Các chế độ hoạt động 
Đề số 6 
Câu 1: Tại sao ta sử dụng phƣơng pháp phân lớp để biểu diễn kiến trúc hệ thống nhúng? 
Gợi ý 
 Vị trí, cấu tạo 
 Các thanh ghi 
 Các chế độ hoạt động 
Câu 2: Trình bày những đặc điểm phần cứng của một hệ thống nhúng. 
Gợi ý 
 Trình bày sự khác nhau giữa hệ thống thƣờng và hệ thống nhúng 
 Các hạn chế về bộ nhớ 
 Hạn chế về kích thƣớc 
 Hạn chế về năng lƣợng 
 …. 
Câu 3: Thế nào là MiddleWare software, Application software? Cho ví dụ. 
Gợi ý 
 Trình bày vị trí, chức năng của MiddleWare 
 Trình bày vị trí, chức năng của Application 
 So sánh hai kiểu phần mềm này 
Câu 4: Nêu sự thực thi của các lệnh trong vi xử lý ARM. 
Gợi ý 
 Trình bày chỉ lệnh xử lý dữ liệu 
 Trình bày chỉ lệnh truyền dữ liệu 
 Trình bày chỉ lệnh điều khiển dòng 

File đính kèm:

  • pdfBài giảng Hệ thống nhúng.pdf
Tài liệu liên quan