1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu Hệ nhúng Đại Học Bách Khoa Hà Nội

367 2,5K 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 367
Dung lượng 6,02 MB

Nội dung

Sau khi kết thúc môn học này, sinh viên có thể• Trình bày kiến trúc tổng thể và hoạt động của một hệ thống nhúng bất kỳ• Trình bày được kiến trúc vi điều khiển• Biết sử dụng các môi trường phát triển và lập trình firmware cho hệ nhúng• Biết lập trình ứng dụng ghép nối trên máy tính• Nắm bắt một số công nghệ mới Chương 1: Tổng quan hệ thống nhúngChương 2: Quy trình phát triển hệ thống nhúngChương 3: Vi điều khiển và lập trình firmwareChương 4: Hệ điều hành nhúngChương 5: Phần mềm điều khiển trên PCChương 6: Giới thiệu công nghệ mới

Trang 2

Mục tiêu môn học

 Sau khi kết thúc môn học này, sinh viên có thể

• Trình bày kiến trúc tổng thể và hoạt động của một

hệ thống nhúng bất kỳ

• Trình bày được kiến trúc vi điều khiển

• Biết sử dụng các môi trường phát triển và lập

trình firmware cho hệ nhúng

• Biết lập trình ứng dụng ghép nối trên máy tính

• Nắm bắt một số công nghệ mới

Trang 3

Tài liệu tham khảo

Tài liệu tham khảo chính:

• Embedded C Micheal J.Pont (8051)

• Building Embedded Linux System, Karim

Yaghmour

• Linux Device Driver, Jonathan Corbet

• ARM System Developer Guide-Designing and

Optimizing System Software, Andrew N.Sloss

• Embedded Systems Architecture: A

Comprehensive Guide for Engineers and

Programmers, Tammy Noergaard

Trang 4

Nội dung môn học

Chương 1: Tổng quan hệ thống nhúng

Chương 2: Quy trình phát triển hệ thống nhúng Chương 3: Vi điều khiển và lập trình firmware Chương 4: Hệ điều hành nhúng

Chương 5: Phần mềm điều khiển trên PC

Chương 6: Giới thiệu công nghệ mới

Trang 5

Nội dung chương 1

Chương 1: Tổng quan hệ thống nhúng

1.1 Khái niệm hệ nhúng

1.2 Kiến trúc tổng thể hệ thống nhúng

Trang 6

1.1 Khái niệm hệ nhúng

Máy tính nhúng (Embedded Computer)

 Được đặt trong thiết bị khác (bao gồm cả phần

cứng và các kết cấu cơ khí) để điều khiển thiết bị

Trang 9

Ví dụ

Cấu tạo bên trong một con chuột máy tính

Chuột, bàn phím máy tính được trang bị bộ vi điều khiển 8bit

-Bắt chuyển động, bắt

phím

-Mã hóa, kết nối với

máy tính

Trang 11

Ví dụ

Máy in, máy photocopy

-Vi điều khiển Intel,

Motorola, ARM…

-Kết nối máy tính

Trang 13

Ví dụ

Máy ảnh kỹ thuật số

-Vi điều khiển DIGIC II Image Processor

Trang 15

Ví dụ

Point of Sales System

-Vi xử lý Intel X86

-OS: Windows XP Embedded

Trang 16

Ví dụ

Systems DL2 Digital Media Server: tạo hiệu ứng ánh sáng trên sân khấu

-Vi xử lý Intel X86

-OS: Windows XP Embedded

Trang 17

Ví dụ

Tektronix Logic Analyser

-Vi xử lý Intel X86

-OS: Windows XP

Trang 18

Ví dụ

Cánh tay robot

-Vi xử lý Intel X86

-OS: Windows XP Embedded & others

Trang 20

-Tự động hoàn toàn

theo các kịch bản được thiết lập

Trang 21

Việt Nam???

Robot đánh bóng bàn

ToSy

-Vi xử lý hiệu năng cao

-Trí tuệ nhân tạo

-Cơ khí chính xác

Trang 25

Kiến trúc tổng thể

Trang 26

Ví dụ - Hệ nhúng Mini2440

Trang 27

KIT mini2440

 Hardware Layer

Trang 28

KIT mini2440

 System Software Layer

• Hệ điều hành: Linux, Windows CE, Android

• Bootloader: Nboot, Uboot, Supervivi

Trang 31

Mô hình lập trình hệ thống nhúng

•Host: hệ thống chứa môi trường phát triển

•Target: hệ nhúng cần phát triển ứng dụng

Trang 32

Mô hình lập trình hệ thống nhúng

•Host: hệ thống chứa môi trường phát triển

Trang 33

Đặc trưng hệ thống nhúng

 Thường bị giới hạn về tài nguyên: hiệu năng bộ

xử lý, dung lượng bộ nhớ…

 Thỏa mãn yêu cầu về độ tin cậy và khả năng

chịu lỗi cao, yêu cầu về tính thời gian thực

(Realtime)

Trang 34

Thảo luận

Trang 35

Nội dung chương 2

Chương 2: Quy trình phát triển hệ thống nhúng

2.1 Tìm hiểu phân tích yêu cầu

Trang 36

 Điều gì xảy ra nếu không có qui trình phát triển

hệ thống hoặc qui trình không tốt?

Trang 37

2 Qui trình phát triển hệ thống nhúng

Trang 38

2.1 Tìm hiểu phân tích yêu cầu

 Giống như quá trình tìm hiểu phân tích yêu cầu đối với phần mềm

 Tuy nhiên, đối với hệ nhúng thường chú trọng

nhiều hơn đến performance

• Tốc độ CPU

• Bộ nhớ hỗ trợ

• Realtime?

Trang 39

2.1 Tìm hiểu phân tích yêu cầu

• Yêu cầu của người sử dụng (khách hàng)

Theo cách nhìn của người sử dụng

Chưa rõ ràng, chi tiết (đôi khi là mập mờ)

 Đầu ra

• Bản đặc tả yêu cầu người dùng

Yêu cầu hệ thống dưới góc nhìn của người thiết

kế, phát triển hệ thống

Chi tiết, rõ ràng tất cả các yêu cầu của người sử dụng

Trang 41

Mô hình vòng đời thiết kế và phát triển

Trang 42

Mô hình vòng đời thiết kế và phát triển

• Quá trình thiết kế và phát triển hệ thống gồm 4

giai đoạn: Tạo bản thiết kế, thực thi hệ thống,

kiểm thử hệ thống, và bảo trì hệ thống

• Giai đoạn tạo bản thiết kế là giai đoạn quan

trọng nhất và quyết định đến thành công dự

án

Trang 43

Quá trình tạo bản thiết kế hệ nhúng

 Quá trình thiết kế cần trải qua 6 giai đoạn chính sau đây:

• Giai đoạn 1: Nắm vững kiến thức nền tảng

• Giai đoạn 2: Hiểu được vòng đời thương mại của sản phẩm (architecture business cycle - ABC)

• Giai đoạn 3: Xây dựng thiết kế tổng quan

• Giai đoạn 4: Thiết kế chi tiết

• Giai đoạn 5: Tài liệu hóa các thiết kế

• Giai đoạn 6: Phân tích và đánh giá thiết kế

Trang 44

Giai đoạn 1: Nắm vững kiến thức nền tảng

cứng lẫn phần mềm

 Hiểu tổng quan về toàn bộ hệ thống mình tham gia

Trang 45

Giai đoạn 2: Nắm được ABC của sản phẩm

Trang 46

Giai đoạn 2: Nắm được ABC của sản phẩm

 Từ Architecture Business Cycle của hệ nhúng có thể suy ra:

• Hệ nhúng không chỉ được thiết kế trên cơ sở các yêu cầu về mặt kỹ thuật mà còn phụ thuộc rất

nhiều yếu tố khác

• Ví dụ: Cùng là thiết kế một chiếc TV

Technical requirement là hoàn toàn giống nhau

Tuy nhiên mỗi hãng khác nhau lại cho ra một thiết

kế riêng của mình

Trang 47

Giai đoạn 2: Nắm được ABC của sản phẩm

• Bước 1: Liệt kê tất cả các ảnh hưởng có thể tác động đến yêu cầu của hệ thống (không chỉ có các yếu tố kỹ thuật)

• Bước 2: Phân loại các yếu tố ảnh hưởng: yếu tố nào là kỹ thuật, yếu tố nào là yếu tố kinh doanh, yếu tố con người…

• Bước 3: Từ 2 bước trên  thu thập yêu cầu cho

hệ thống

• Bước 4: Xác định các thành phần phần cứng,

phần mềm có thể thỏa mãn yêu cầu hệ thống

Trang 48

Giai đoạn 2: Nắm được ABC của sản phẩm

 Trên thực tế, hầu hết các hệ nhúng đều dùng

các đặc trưng chung của ABCs là tiêu chí đầu

tiên để thu thập requirement

Time-to-Thời gian phát triển sản phẩm

Cost Giá thành của sản phẩm

Device lifetime Vòng đời của sản phẩm ngoài thị

trường, vòng đời của sản phẩm thực tế…

Trang 49

Giai đoạn 2: Nắm được ABC của sản phẩm

User-Dễ sử dụng, giao diện thân thiện đẹp mắt…

Modifiability Khả năng dễ dàng sửa đổi, nâng cấp

Security Tính bảo mật của hệ thống, khả năng

chống bẻ khóa, chống hacker…

Reliability Hệ thống có bị hỏng hóc, ngừng hoạt

động đột ngột? Khi có sự cố xảy ra hệ thống phản ứng thế nào…

Portability Khả năng phần mềm có thể chạy trên

nhiều phần cứng khác nhau, hay phần cứng có tương thích với nhiều nền tảng phần mềm khác nhau

Trang 50

Giai đoạn 2: Hiểu ABCs của hệ nhúng

Trang 51

Giai đoạn 2: Hiểu ABCs của hệ nhúng

Các Ảnh

hưởng

Đặc trưng Mô tả

Industry Standards Các chuẩn công nghiệp, có thể do thị

trường qui định (Ví dụ: chuẩn TV, chuẩn cho các thiết bị y tế, chuẩn mạng…) Quality

Assurance

Testability Xem trong phần technical ở trên

Availability Khi nào thì hệ thống sẵn sàng cho việc

test Schedule Xem trong phần business ở trên

QA standards ISO 9000, ISO 9001…

Customer Cost Giá của thiết bị, giá vận hành bảo trì…

User friendliness

Xem trong phần bussiness ở trên

Performance Xem trong phần technical ở trên

Trang 52

Xác định các thành phần phần cứng, mềm

mềm thỏa mãn requirements

• Liệt kê các kịch bản thỏa mãn mỗi yêu cầu

• Đưa ra các chiến lược (cách giải quyết) cho mỗi kịch bản ở trên

• Dựa vào các chiến lược ở trên đưa ra các chức năng cần thiết phải có trong hệ thống, từ đó liệt

kê các phần cứng và phần mềm

Trang 53

Liệt kê các kịch bản thỏa mãn yêu cầu

 Ví dụ kịch bản thõa mãn yêu cầu về performance

Trang 54

Liệt kê các kịch bản thỏa mãn yêu cầu

 Ví dụ kịch bản thỏa mãn yêu cầu về tính

testability của hệ thống

Trang 55

Đưa ra các chiến lược giải quyết các kịch bản

 Ví dụ chiến lược giải quyết kịch bản thỏa mãn

yêu cầu performance

Trang 56

Đưa ra các chiến lược giải quyết các kịch bản

 Ví dụ chiến lược giải quyết kịch bản thỏa mãn

yêu cầu testability

Trang 57

Giai đoạn 3: Xây dựng thiết kế tổng quan

phần mềm mà hệ thống cần có

 Mối quan hệ giữa các thành phần với nhau

 Thường tiến hành thiết kế theo kiểu top-down và đưa ra mô hình phân tầng

• Phân rã hệ thống thành các chức năng con

• Phân rã các chức năng con thành các chức năng nhỏ hơn nữa

Trang 58

Giai đoạn 3: Xây dựng thiết kế tổng

quan (basic design)

 Ví dụ: Thiết kế TV set-top box

Trang 59

Giai đoạn 3: Xây dựng thiết kế tổng quan

 Sau khi có mô hình phân tầng, tiến hành chọn

Trang 60

Chọn lựa các thành phần phần cứng và

phần mềm

 Cách phổ biến nhất để tiến hành lựa chọn các

thành phần phần cứng và phần mềm là lập bảng phân tích đặc trưng cho mỗi yêu cầu của từng

sản phẩm

Trang 61

Ví dụ: Chọn ngôn ngữ lập trình

MHP: Multimedia home platform

ATVEF: Advanced Television

Enhancement Forum

Trang 63

vxWork Tornado

IDE, Singer step

debugger…

BSP Device

driver, graphics, networking

x86, MIPS, ARM, PPC

Hard real-time, priority based

Linux Depend on

vendor for developme

nt IDE, gcc…

Depend on vendor, some with

no BSP

Device driver, graphics, networking

Depend

on vendor (x86,

ARM…)

Depend on vendor, some are hard real- time, some are soft

Window

CE

Visual studio

BSP Device

driver, graphics, networking

x86, ARM…

Real time …

Trang 64

Giai đoạn 4: Thiết kế chi tiết

 Có nhiều kỹ thuật thiết kế kiến trúc hệ thống

 Kỹ thuật thông dụng và được ưa dùng nhất là

mô hình “4+1”

Trang 65

Mô hình cấu trúc “4+1”

 “4”: Đưa ra thiết kế cấu trúc hệ thống từ 4 góc

nhìn khác nhau

 Thành phần “+1”: đóng vai trò đánh giá và đảm bảo 4 cấu trúc trên đồng nhất

Trang 66

Mô hình cấu trúc “4+1”

Cấu trúc 1: logical structure là cấu trúc module của

hệ thống (sơ đồ khối) đưa ra các thành phần phần cứng phần mềm, mối quan hệ giữa thành phần

Cấu trúc 2: process structure đối với các hệ thống

có hệ điều hành, cấu trúc process giải quyết các yêu cầu phi chức năng như performance, system

integrity, resource availability…

Trang 67

Mô hình cấu trúc “4+1”

trường phát triển hệ thống: IDE, debugger, ngôn ngữ lập trình… Cấu trúc này đưa ra cách

mapping hệ thống phần cứng và phần mềm vào trong môi trường phát triển

ra cách đồng bộ hệ thống phần mềm với hệ

thống phần cứng

Trang 68

Giai đoạn 5: Tài liệu hóa các thiết kế

 Các chuẩn để viết các tài liệu thiết kế rất đa dạng tùy

thuộc vào từng ngành công nghiệp, từng công ty hay

các nhóm phát triển…

 Thông thường quá trình tài liệu hóa thường có 2 bước

• Bước 1: Viết overview về hệ thống, gồm có các cấu trúc nào, các mối quan hệ giữa các cấu trúc

• Bước 2: Viết chi tiết cho từng cấu trúc cụ thể

 Không có template chuẩn để viết các tài liệu cho hệ

thống embedded, tuy nhiên có thể dùng các ngôn ngữ

mô hình hóa thông dụng

• UML

Trang 69

Giai đoạn 5: Tài liệu hóa các thiết kế

Trang 70

Giai đoạn 6: Phân tích và đánh giá thiết kế

bởi một nhóm

nhóm thiết kế, phát triển để đảm bảo tính khách quan và tránh bị tư duy theo lối mòn

Trang 71

2.3 Thực thi hệ thống nhúng

 Quá trình thực thi hệ thống nhúng thường trải

qua các giai đoạn sau

Giai đoạn 1: Cài đặt môi trường phát triển

Giai đoạn 2: Thiết kế mạch phần cứng

Giai đoạn 3: Porting hệ điều hành, viết firmware

Giai đoạn 4: Viết phần mềm điều khiển, giao tiếp

trên PC

Trang 72

Giai đoạn 1: Cài đặt môi trường phát triển

 Cài đặt IDE

 Compiler, cross compiler

 Thiết lập kết nối host-target

Trang 73

Giai đoạn 2: Thiết kế mạch phần cứng

 Thiết kế sơ đồ nguyên lý

 Thiết kế sơ đồ mạch in

 Đặt mạch, hàn thiết bị lên mạch

Trang 74

Giai đoạn 3: Porting hệ điều hành, viết

firmware

 Đối với các hệ nhúng có hệ điều hành

• Porting hệ điều hành

• Cài đặt các driver cần thiết

 Đối với các hệ không có hệ điều hành

• Viết firmware

Giao tiếp với các ngoại vi

Giao tiếp với máy tính

Trang 75

Giai đoạn 4: Viết phần mềm điều khiển

giao tiếp trên PC

 Phần mềm trên PC đóng vai trò điều khiển, hoặc cập nhật dữ liệu cho board mạch cứng

 Ngay cả với các hệ nhúng hoạt động độc lập,

thường vẫn cần viết phần mềm trên PC để giao tiếp với board mạch cứng

• Test các chức năng mạch

• Giả lập các môi trường thực tế

• …

Trang 76

• Viết các test case

• Tiến hành test, và phản hồi tới đội phát triển

Trang 77

2.4 Kiểm thử hệ thống nhúng

 Ở đây xin đưa ra một số lưu ý và trình tự kiểm

thử thông dụng

1) Sau khi thiết kế xong mạch phần cứng, kiểm tra

thông mạch  đảm bảo mạch phần cứng không

có vấn đề như bị đứt dây ngầm, chập các điểm…

2) Kiểm tra module nguồn  Đảm bảo module

nguồn cấp đúng mong muốn, không bị quá dòng, quá áp…

3) Kiểm tra IC chính (IC sẽ được nạp firmware)

Trang 78

4) Kiểm tra các ngoại vi

5) Kiểm tra firmware và phần mềm trên PC

Trang 79

2.5 Triển khai bảo trì hệ thống nhúng

 Qui trình triển khai bảo trì bao gồm các bước sau

• Lập kế hoạch triển khai

• Cung cấp tài liệu hướng dẫn vận hành, sử dụng,

tổ chức đào tạo vận hành hệ thống

• Ghi nhận các lỗi phát sinh

• Tiến hành sửa chữa đảm bảo hệ thống vận hành đúng theo yêu cầu thực tế

Trang 80

Bài tập thảo luận

trình phát triển hệ nhúng: bắt yêu cầu và thiết kế tổng quan

Trang 81

Nội dung chương 3

Chương 3: Vi điều khiển và lập trình firmware

3.1 Tổng quan vi điều khiển

3.2 Vi điều khiển họ 8051

3.3 Vi điều khiển ARM

Trang 82

3.1 Tổng quan vi điều khiển

Vi điều khiển <> Vi xử lý

Vi điều khiển: Computer On Chip (bao gồm cả CPU, Bộ nhớ, cổng vào ra)

Trang 83

Tổng quan vi điều khiển

 Một số dòng vi điều khiển phổ biến hiện nay

• 8051 (AT89C51, AT89S51, AT89S52)

• AVR (ATMEGA8, ATMEGA16…)

• PIC (PIC16F877A, PIC18F4550, PIC18F2550…)

• ARM (ARM7, ARM9, ARM Cortex-Mx, ARM

Cortex-Ax)

• …

Trang 85

3.2 Vi điều khiển họ 8051

 Kiến trúc vi điều khiển 8051

 Lập trình firmware cho vi điều khiển 8051

Trang 86

3.2.1 Kiến trúc vi điều khiển 8051

Do hãng Intel thiết kế năm

Trang 87

Đóng vỏ vi điều khiển 8051

Trang 88

Kiến trúc vi điều khiển 8051

Trang 89

Các thanh ghi của 8051

 Các thanh ghi dùng để lưu tạm thời dữ liệu hoặc địa chỉ

 Các thanh ghi này chủ yếu là thanh ghi 8 bit

• Thanh ghi A : thanh ghi tích lũy

• Thanh ghi R0->R7

• Thanh ghi con trỏ dữ liệu DPTR (16 bit)

• Thanh ghi bộ đếm chương trình PC (16bit)

Trang 90

3.2.2 Lập trình vi điều khiển 8051

 Giới thiệu về lập trình hợp ngữ

 Lập trình C

Trang 91

Giới thiệu lập trình hợp ngữ

 Ngôn ngữ máy:

• Chỉ được biểu diễn bằng số nhị phân

• Bộ vi xử lý chỉ hiểu được các chương trình mã máy

• Con người rất khó khăn để tạo lập hay đọc hiểu chương trình ngôn ngữ máy

 Hợp ngữ (Assembly Language):

• Là ngôn ngữ lập trình bậc thấp (gần ngôn ngữ máy nhất)

• Được xây dựng trên cơ sở ký hiệu tập lệnh của bộ vi xử lý tương ứng

• Phụ thuộc hoàn toàn vào bộ vi xử lý cụ thể

 Ngôn ngữ lập trình bậc cao:

• Gần với ngôn ngữ tự nhiên hơn

• Được xây dựng độc lập với cấu trúc của máy tính

Trang 92

Tập lệnh

 Mỗi bộ xử lý/ vi điều khiển có một tập lệnh xác định

(mang tính kế thừa trong cùng một dòng họ)

 Tập lệnh thường có hàng chục đến hàng trăm lệnh

 Mỗi lệnh là một chuỗi số nhị phân mà bộ xử lý/ vi điều

khiển hiểu được để thực hiện một thao tác xác định

 Các lệnh được mô tả bằng các kí hiệu gợi nhớ  các

lệnh hợp ngữ

 Ví dụ: Lệnh ADD A, #3Ah

0 0 1 0 0 1 0 0 0 0 1 1 1 0 1 0

Trang 93

Khuôn dạng của một lệnh máy

 Mã thao tác (Operation Code - Opcode): mã hóa cho thao tác mà CPU phải thực hiện

hoặc nơi chứa toán hạng mà thao tác sẽ tác

Trang 95

Các chế độ địa chỉ

 Chế độ định địa chỉ thanh ghi

• Sử dụng thanh ghi để lưu trữ dữ liệu cần thao tác

• Thanh ghi nguồn và đích phải phù hợp về kích

Trang 96

Các chế độ địa chỉ

 Chế độ địa chỉ trực tiếp

• Toán hạng (nguồn hoặc đích) là địa chỉ của ô nhớ

• Trước địa chỉ ô nhớ không có dấu #

• Ví dụ:

MOV A, 35h ;Dữ liệu trong ô nhớ có địa chỉ

; 35h được chuyển vào thanh ghi A

Trang 97

Các chế độ địa chỉ

 Chế độ định địa chỉ gián tiếp thanh ghi

• Địa chỉ ô nhớ chứa dữ liệu được chứa trong

thanh ghi R0 hoặc R1

• Trước thanh ghi R0 hoặc R1 phải chèn thêm ký

tự “@” để biểu thị cho chế độ địa chỉ này

• Ví dụ:

MOV A,@R0 ;chuyển dữ liệu trong ô nhớ có

;địa chỉ được chỉ ra trong thanh

;ghi R0 vào thanh ghi A

Trang 99

Tập lệnh vi điều khiển 8051

Lệnh số học

Ngày đăng: 29/07/2014, 10:17

HÌNH ẢNH LIÊN QUAN

Sơ đồ nguyên lý của một bit cổng - Tài liệu Hệ nhúng  Đại Học Bách Khoa Hà Nội
Sơ đồ nguy ên lý của một bit cổng (Trang 119)
Bảng vector ngắt - Tài liệu Hệ nhúng  Đại Học Bách Khoa Hà Nội
Bảng vector ngắt (Trang 154)
Sơ đồ khối - Tài liệu Hệ nhúng  Đại Học Bách Khoa Hà Nội
Sơ đồ kh ối (Trang 175)
Sơ đồ chân - Tài liệu Hệ nhúng  Đại Học Bách Khoa Hà Nội
Sơ đồ ch ân (Trang 176)
Sơ đồ phân cấp hệ thống - Tài liệu Hệ nhúng  Đại Học Bách Khoa Hà Nội
Sơ đồ ph ân cấp hệ thống (Trang 246)
Sơ đồ đấu nối tín hiệu bắt tay bằng phần - Tài liệu Hệ nhúng  Đại Học Bách Khoa Hà Nội
u nối tín hiệu bắt tay bằng phần (Trang 281)
Sơ đồ kết nối bus USB - Tài liệu Hệ nhúng  Đại Học Bách Khoa Hà Nội
Sơ đồ k ết nối bus USB (Trang 306)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w