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
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:
- Bài giảng Hệ thống nhúng.pdf