SlideShare a Scribd company logo
1 of 46
Download to read offline
CHƯƠNG 1:
GIỚI THIỆU HỆ THỐNG NHÚNG
Nội dung
• 1.1 Định nghĩa Hệ thống nhúng
• 1.2 Bộ Vi xử lý nhúng
• 1.3 Các đơn vị phần cứng điển hình trong
hệ thống nhúng
• 1.4 Phần mềm nhúng
• 1.5 Các ví dụ hệ thống nhúng
1.1. Hệ thống nhúng
• Định nghĩa:
– Hệ thống:
• 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.
1.1. Hệ thống nhúng
• Định nghĩa:
– Ví dụ về hệ thống
– Hệ thống hiển thị thời gian - Đồng hồ (Clock)
• Trình tự hoạt động giây, phút, giờ, ngày,
tháng, năm.
– Hệ thống giặt quần áo tự động - Máy giặt
• Trình tự hoạt động giặt, xả, vắt, sấy.
1.1. Hệ thống nhúng
• Định nghĩa:
– Hệ thống nhúng
• (1) “Hệ thống nhúng 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). “Một hệ thống nhúng là một hệ thống có phần
mềm chuyên dụng, mục đích nhúng vào trong phần
cứng máy tính.”
1.1. Hệ thống nhúng
• Định nghĩa:
– Hệ thống nhúng
• (3). “Hệ thống nhúng là một máy tính chuyên dụng
dựa trên hệ thống cho ứng dụng hoặc sản phẩm.
Nó có thể là một hệ thống độc lập hoặc một phần
của hệ thống lớn. Hệ thống nhúng là phần mềm
nhúng vào một ROM (Read Only Memory) hoặc bộ
nhớ flash”
• (4). “Đó là thiết bị bất kỳ, bao gồm một máy tính có
khả năng lập trình nhưng bản thân nó không có ý
định trở thành một máy tính mục đích chung.”
1.1. Hệ thống nhúng
• Ví dụ: máy tính là hệ thống nhúng hay không?
– Một bộ vi xử lý
– Một bộ nhớ lớn bao gồm hai loại:
– Bộ nhớ chính: bộ nhớ bán dẫn - RAM, ROM và
caches (truy cập nhanh)
– Bộ nhớ thứ cấp [(bộ nhớ từ tính nằm trong đĩa
cứng, đĩa mềm và băng từ, bộ nhớ quang học
trong CD-ROM hoặc Card nhớ (trong máy tính di
động)] sử dụng chứa các chương trình, mà
chương trình được sử dụng khác nhau có thể tải
vào bộ nhớ chính và có thể thực thi (chạy).
1.1. Hệ thống nhúng
• Ví dụ một máy tính
– Đơn vị I/O như: màn hình cảm ứng, modem, fax
và modem v.v. Đơn vị ngõ vào như bàn phím,
chuột, số hóa, máy quét, v.v. Đơn vị ngõ ra như
màn hình LCD, màn hình video, máy in, v.v.
– Các đơn vị liên kết như Card Ethernet, máy chủ
đầu cuối dựa trên bộ vi xử lý, bus-driver, v.v.
– Hệ điều hành (OS).
– Giao diện người dùng phổ thông và phần mềm
ứng dụng, chủ yếu là trong bộ nhớ thứ cấp.
1.1. Hệ thống nhúng
• Ba thành phần nhúng chính trong hệ thống nhúng
– Phần cứng nhúng
– Phần mềm nhúng
– Hệ điều hành thời gian thực (optional)
1.1. Hệ thống nhúng
• Hệ thống nhúng thời gian thực –RTOS
– Xử lý song song
– Lập lịch tác vụ
– Xử lý phân quyền ưu tiên
– Bị ràng buộc deadline kết thúc quá trình
1.1. Hệ thống nhúng
• Các đặc điểm hệ thống nhúng phức tạp
– Các chức năng chuyên dụng
– Các giải thuật phức tạp chuyên dụng
– GUI và giao diện người dùng
– Hoạt động thời gian thực
– Latency
– Nhiều tốc độ (rates) khác nhau
1.1. Hệ thống nhúng
• Những ràng buộc của thiết kế hệ thống nhúng
– Bộ nhớ hệ thống sẵn có
– Tốc độ xử lý sẵn có
– Năng lượng tiêu thụ
– Hiệu suất
– Kích cỡ
– Chi phí sản xuất
1.2. Bộ vi xử lý nhúng
• Bộ vi xử lý:
– Bộ phận điều khiển (Control Unit -CU)
– Bộ phận thực thi (Execution Unit -EU)
– Mạch số học và đơn vị logic (ALU)
– Tập lệnh xử lý
1.2. Bộ vi xử lý nhúng
• Cân nhắc thiết kế hệ thống
– Tập lệnh
– Khả năng xử lý để giải quyết độ phức tạp các
thuật toán trong thời gian giới hạn (deadline) của
khả năng xử lý
– Số bit tối đa trong toán hạng (8 hoặc 16 hoặc 32
bit)
– Chiều rộng bus bên trong/ bus bên ngoài
– Tốc độ xử lý: MIPS, MFLOPS, Dhrystone
1.2. Bộ vi xử lý nhúng
• Vi xử lý với tập lệnh cho ứng dụng cụ thể
– Application Specific Instruction-Set Processor –
ASIP
• Vi xử lý có lõi GPP hoặc ASIP
– GPP hoặc ASIP tích hợp vào Mạch tích hợp ứng
dụng cụ thể (ASIC), hoặc SoC
– Vi mạch quy mô cực lớn (VLSI) /lõi FPGA tích hợp
với bộ xử lý đơn vị (s) trong một chip VLSI (ASIC).
• Vi xử lý hệ thống ứng dụng cụ thể
– ASSP: Application Specific System Processor
1.3. Các đơn vị phần cứng điển
hình trong hệ thống nhúng
• Nguồn điện
– Nguồn cung cấp riêng biệt với sự tách biệt dây
dẫn điện cung cấp cho I/O, xung Clock, bộ vi xử
lý cơ bản, bộ nhớ, và các đơn vị analog
– Nguồn cung cấp từ giao diện
– Charge pump
– Quản lý tiêu hao năng lượng
1.3. Các đơn vị phần cứng điển
hình trong hệ thống nhúng
• Nguồn điện
– Quản lý tiêu hao năng lượng
• Lập trình thông minh thời gian thực bằng các
câu lệnh Wait và Stop
• Giảm tốc độ xung Clock thông minh trong một
số tập lệnh cụ thể
• Tối ưu hóa các dòng mã lệnh
• Cho phép (enable) và vô hiệu hóa (disable)
thông minh việc sử dụng caches hoặc khối bộ
nhớ cache
1.3. Các đơn vị phần cứng điển
hình trong hệ thống nhúng
• Mạch xung Clock và đơn vị xung Clock
– Mạch tạo xung
– PLL
– Real Time Clock (RTC)
• Reset Circuit
– Reset khi Power-up
– Mạch Reset bên ngoài / bên trong
– Reset dựa trên Timeout của Watchdog Timer
1.3. Các đơn vị phần cứng điển
hình trong hệ thống nhúng
• Memory
– ROM/ EPROM/ Flash
• Lưu trữ chương trình “ứng dụng”, nơi mà vi xử
lý được nạp các mã lệnh
• Lưu giữ mã lệnh cho hệ thống khởi động, khởi
tạo, nhập dữ liệu ban đầu và các chuỗi ký tự.
• Lưu trữ Codes cho RTOS.
• Lưu trữ các con trỏ (địa chỉ) của nhiều loại
chương trình con.
1.3. Các đơn vị phần cứng điển
hình trong hệ thống nhúng
• Memory
– RAM nội bộ, RAM ngoài và buffer RAM
• Lưu trữ các biến (Variables) trong suốt quá
trình chạy chương trình,
• Lưu giữ các Stacks,
• Lưu trữ đầu vào hay đầu ra của bộ đệm, ví dụ
như cho Speech, Image, Video, Text.
1.3. Các đơn vị phần cứng điển
hình trong hệ thống nhúng
• Memory
– Các chức năng của EEPROM hoặc Flash
• Lưu trữ kết quả non-volatile (không bị mất dữ
liệu khi không có nguồn điện cung cấp) của các
kết quả xử lý tính toán.
– Các chức năng của Caches
• Lưu trữ các bản sao của các câu lệnh, dữ liệu
và câu lệnh rẽ nhánh trước từ memory bên
ngoài
• Lưu trữ tạm thời các kết quả trong việc ghi trở lại
(write-back) của Caches trong suốt quá trình xử
lý nhanh
1.3. Các đơn vị phần cứng điển
hình trong hệ thống nhúng
• Đơn vị truyền thông IO
– Trình điều khiển (Driver) truyền thông
• Ethernet Network
• Serial bus
• Parallel bus
– ADC, DAC
– Modem
– Wireless
1.4. Phần mềm nhúng
• ROM image
– Phần mềm cho thiết bị
• Các Byte tại mỗi địa chỉ được xác định cho
việc tạo image ROM.
• Bằng cách thay đổi ROM image, cùng một nền
tảng phần cứng có thể hoạt động khác nhau
và có thể được sử dụng cho các ứng dụng
hoàn toàn khác nhau hoặc nâng cấp mới từ hệ
thống tương tự.
1.4. Phần mềm nhúng
• ROM image
– ROM image riêng biệt trong một hệ thống nhúng
riêng biệt
• Các thành phần phần cứng giữa các các hệ
thống khác nhau có thể tương đồng nhưng
phần mềm là yếu tố làm cho một hệ thống độc
nhất và khác biệt với các hệ thống khác.
– Nén (compress) Codes và dữ liệu
1.4. Phần mềm nhúng
• Ngôn ngữ lập trình
– Ngôn ngữ mã máy (machine language/ machine
code)
• Lập trình viên xác định các địa chỉ và các byte
hoặc bit tương ứng tại mỗi địa chỉ bằng
phương pháp thủ công.
• Được sử dụng trong việc cấu hình cụ thể một
số thiết bị vật lý đặc biệt hoặc hệ thống con
như: hệ thống thu phát, machine code- dựa
trên mã hóa được sử dụng.
1.4. Phần mềm nhúng
• Ngôn ngữ lập trình
– Mã hợp ngữ (Assembly)
• Cần thiết cho việc hiển thị câu lệnh cụ thể của
Processor.
• Đòi hỏi sự hiểu biết về vi xử lý và tập lệnh.
• Một chương trình hoặc một phần nhỏ cụ thể
được mã hóa trong hợp ngữ thông qua
Assembler (phần mềm sử dụng cho phát triển
mã hợp ngữ).
1.4. Phần mềm nhúng
• Ngôn ngữ lập trình
– Mã hợp ngữ
(Assembly)
– Ba bước khi sử dụng
ngôn ngữ Assembly:
'Assembler', 'Linker' và
'Locator' sau cùng là
nạp vào ROM
1.4. Phần mềm nhúng
• Ngôn ngữ lập trình
– Ngôn ngữ lập trình C hoặc C ++ hoặc Visual C++
hay Java
• Phần mềm ứng dụng - Lập trình ở các lớp
(Layers) khác nhau
• Các lệnh vi xử lý
• Chức năng chính, chức năng nhiệm vụ và
chức năng thư viện
• Làm đoạn chương trình dịch vụ gián đoạn
• Lịch trình (Scheduler) dùng cho hệ đa nhiệm/
xử lý song song
1.4. Phần mềm nhúng
• Ngôn ngữ lập trình
– Compiler: là trình biên dịch tạo ra một tập tin
đối tượng (Object). Sử dụng mối liên kết và
định vị, các tập tin image cho ROM được tạo
ra cho các phần cứng mục tiêu (target).
– C /C++ và Java là các ngôn ngữ thường
được sử dụng như các phần mềm lập trình.
1.4. Phần mềm nhúng
• Qui trình chuyển đổi một chương trình C vào image
ROM
1.4. Phần mềm nhúng
• Mô hình chương trình
– Mô hình lập trình tuần tự
– Mô hình lập trình hướng đối tượng
– Lưu đồ điều khiển và luồng dữ liệu
• Synchronous Data Flow --SDF
• Multi Thread Graph --MTG
– Máy trạng thái (Finite State Machine --FSM) cho
đường dữ liệu
– Mô hình đa luồng: xử lý đồng thời các quy trình
(process) hay chủ đề (thread) hay tác vụ (task)
1.4. Phần mềm nhúng
• Trình điều khiển thiết bị
– Thiết bị vật lý/ thiết bị ảo
– Thiết bị vật lý - bàn phím, màn hình LCD hoặc
màn hình cảm ứng, thẻ nhớ (bộ nhớ flash), thiết
bị mạng không dây, cổng song song và Card
mạng …
– Các thiết bị ảo - đường ống xử lý (pipe), tập tin,
đĩa RAM, socket, …
1.4. Phần mềm nhúng
• Trình điều khiển thiết bị
– Device Driver là phần mềm cho việc kiểm soát (cấu
hình), nhận và gửi một byte hoặc một luồng các
byte đến/đi thiết bị
– Một tập hợp các chức năng phổ thông, chẳng hạn
như: tạo ra -create(), mở -open(), kết nối -
connect(), lắng nghe -listen(), chấp nhận -accept(),
đọc -read(), ghi -write(), đóng -close(), xóa -delete()
để sử dụng bởi các ngôn ngữ cấp cao.
– Mỗi chức năng phổ thông gọi là phần mềm đặc biệt
(đoạn chương trình gián đoạn dịch vụ), giúp cho
việc điều khiển một chức năng thiết bị hoặc thiết bị
đầu vào hoặc đầu ra.
1.4. Phần mềm nhúng
• Trình điều khiển thiết bị
– Gọi một ISR (Interrupt Handler Routine) trên gián
đoạn phần cứng hoặc phần mềm
– Đặt các bits/ Word thích hợp vào bộ điều khiển
thanh ghi.
– Thiết lập cờ trạng thái trong thanh ghi trạng thái
cho việc gián đoạn, do đó thực thi ISR, Reset lại
cờ trạng thái sau khi thực thi đoạn chương trình
gián đoạn dịch vụ.
1.4. Phần mềm nhúng
• Trình quản lý thiết bị
– Cung cấp codes cho việc phát hiện sự hiện diện
của các thiết bị, cho khởi tạo (cấu hình) và cho
các thử nghiệm (test) các thiết bị đang hiện diện
– Phân bổ và đăng ký các Cổng (Port) hoặc mã
(Codes) thiết bị và dữ liệu tại các địa chỉ bộ nhớ
cho nhiều loại thiết bị khác nhau.
– Tránh xung đột giữa các địa chỉ được phân bổ
1.4. Phần mềm nhúng
• Hệ điều hành (OS) đa nhiệm và hệ thống thời gian
thực (RTOS)
– Xử lý đồng thời/song song các quá trình, nhiệm
vụ hay chủ đề: một hệ thống gồm hai hoặc nhiều
hơn tiến trình đồng thời được thực hiện.
1.4. Phần mềm nhúng
• Hệ điều hành (OS) đa nhiệm và hệ thống thời gian
thực (RTOS)
– 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ý: quy 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,... ...
1.4. Phần mềm nhúng
• Hệ điều hành (OS) đa nhiệm và hệ thống thời gian
thực (RTOS)
– 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
1.4. Phần mềm nhúng
• Hệ điều hành (OS) đa nhiệm và hệ thống thời gian
thực (RTOS)
– RTOS và các tiến trình đồng thời
• OS cung cấp xác định hiệu suất trong quá
trình xử lý đồng thời và thực hiện với yêu cầu
thời gian nghiêm ngặt cứng (hard) hoặc mềm
(soft) với sự phân bổ ưu tiên và chiếm quyền
đầu tiên.
– RTOS là cần thiết khi các nhiệm vụ cho các hệ
thống có chế độ thời gian thực và có thời hạn để
hoàn thành nhiệm vụ.
1.4. Phần mềm nhúng
• Hệ điều hành (OS) đa nhiệm và hệ thống thời gian
thực (RTOS)
• Các RTOSes quan trọng
– OS uCOS-II
– VxWorks
– Windows CE
– OSEK
– Linux 2.6.24 hoặc RTLinux
– QNX
1.4. Phần mềm nhúng
• Phần mềm công cụ
– (1). Trình soạn thảo (Editor),
– (2). Phiên dịch (Interpreter),
– (3). Trình biên dịch (Compiler),
– (4). Assembler và Cross Assembler, Integrated
Development Environment -IDE,
– (5). Bản mẫu (Prototyper)
1.4. Phần mềm nhúng
• Công cụ phát triển phần mềm ứng dụng
– Công cụ mã nguồn kỹ thuật
– Ống nghe (stethosope) (theo dõi các chuyển đổi
giữa các tác vụ như là một chức năng theo thời
gian)
– Quan sát dấu vết (trace scope) (quan sát sự thay
đổi của tham số là hàm theo thời gian)
1.4. Phần mềm nhúng
• Công cụ phát triển phần mềm ứng dụng
– Simulator: để mô phỏng các vi xử lý và yếu tố
phần cứng trên một máy chủ PC, chạy và kiểm
tra các module thực thi.
– Quản lý dự án: để quản lý các tập tin được liên
kết với giai đoạn thiết kế dự án và giữ một số
phiên bản của tập tin nguồn trong một cách có
trật tự.
1.5. Các ví dụ về hệ thống nhúng
• Viễn thông -Telecom
• Card thông minh,
• Tên lửa và vệ tinh,
• Mạng máy tính,
• Điện tử số tiêu dùng,
• Tự động –Automotion
• Etc.
1.5. Các ví dụ về hệ thống nhúng
• Automatic Chocolate Vending Machine (ACVM)
– Mục 1.10.2 Tiếng Anh
• Smart Card
– Mục 1.10.3 Tiếng Anh
Bài tập
• Xem tài liệu tiếng Anh
– [1] Digital Camera
– [2] Mobile Phone
– [3] Mobile Computer
– [4] A set of robot

More Related Content

Similar to Chappter 1 - Embedded system presentation.pdf

Các thuật ngữ viết tắt trong tin học
Các thuật ngữ viết tắt trong tin họcCác thuật ngữ viết tắt trong tin học
Các thuật ngữ viết tắt trong tin học
Rosie2505
 
Bai1laprapcaidat ttth
Bai1laprapcaidat ttthBai1laprapcaidat ttth
Bai1laprapcaidat ttth
ut1101833
 
Giao trinh cau truc phan cung pc
Giao trinh cau truc phan cung pcGiao trinh cau truc phan cung pc
Giao trinh cau truc phan cung pc
Bảo Bối
 
Chuong2 cautruchedieuhanh
Chuong2 cautruchedieuhanhChuong2 cautruchedieuhanh
Chuong2 cautruchedieuhanh
Hai Nguyen
 
Giaotrinh hedieuhanh
Giaotrinh hedieuhanhGiaotrinh hedieuhanh
Giaotrinh hedieuhanh
Hai Nguyen
 
Bai1-Tongquan.pptx
Bai1-Tongquan.pptxBai1-Tongquan.pptx
Bai1-Tongquan.pptx
HuyTin20
 
De cuong btht (cdcq)
De cuong btht (cdcq)De cuong btht (cdcq)
De cuong btht (cdcq)
Đinh Luận
 
Báo cáo chuyên đề công nghệ mới
Báo cáo chuyên đề công nghệ mớiBáo cáo chuyên đề công nghệ mới
Báo cáo chuyên đề công nghệ mới
Phạm Ái
 
Chuong 2 cac thanh_phan_cua_httt
Chuong 2 cac thanh_phan_cua_htttChuong 2 cac thanh_phan_cua_httt
Chuong 2 cac thanh_phan_cua_httt
vo nhan
 

Similar to Chappter 1 - Embedded system presentation.pdf (20)

Chuong2 nmth
Chuong2 nmthChuong2 nmth
Chuong2 nmth
 
Các thuật ngữ viết tắt trong tin học
Các thuật ngữ viết tắt trong tin họcCác thuật ngữ viết tắt trong tin học
Các thuật ngữ viết tắt trong tin học
 
Bai1laprapcaidat ttth
Bai1laprapcaidat ttthBai1laprapcaidat ttth
Bai1laprapcaidat ttth
 
Bai 04 vi xu ly cpu
Bai 04  vi xu ly cpuBai 04  vi xu ly cpu
Bai 04 vi xu ly cpu
 
Giao trinh cau truc phan cung pc
Giao trinh cau truc phan cung pcGiao trinh cau truc phan cung pc
Giao trinh cau truc phan cung pc
 
Tailieu.vncty.com he dieu hanh
Tailieu.vncty.com   he dieu hanhTailieu.vncty.com   he dieu hanh
Tailieu.vncty.com he dieu hanh
 
APP-V Present - Vietnamese
APP-V Present - VietnameseAPP-V Present - Vietnamese
APP-V Present - Vietnamese
 
Bao cao vdk_va_pic
Bao cao vdk_va_picBao cao vdk_va_pic
Bao cao vdk_va_pic
 
Chuong2 cautruchedieuhanh
Chuong2 cautruchedieuhanhChuong2 cautruchedieuhanh
Chuong2 cautruchedieuhanh
 
Giaotrinh hedieuhanh
Giaotrinh hedieuhanhGiaotrinh hedieuhanh
Giaotrinh hedieuhanh
 
Bai1-Tongquan.pptx
Bai1-Tongquan.pptxBai1-Tongquan.pptx
Bai1-Tongquan.pptx
 
IC3 GS4: Phần Cứng Máy Tính
IC3 GS4: Phần Cứng Máy TínhIC3 GS4: Phần Cứng Máy Tính
IC3 GS4: Phần Cứng Máy Tính
 
Bai tap3
Bai tap3Bai tap3
Bai tap3
 
Chc6b0c6a1ng 12
Chc6b0c6a1ng 12Chc6b0c6a1ng 12
Chc6b0c6a1ng 12
 
Chc6b0c6a1ng 12
Chc6b0c6a1ng 12Chc6b0c6a1ng 12
Chc6b0c6a1ng 12
 
De cuong btht (cdcq)
De cuong btht (cdcq)De cuong btht (cdcq)
De cuong btht (cdcq)
 
Chuong 1. cnpm
Chuong 1. cnpmChuong 1. cnpm
Chuong 1. cnpm
 
Cấu trúc hệ điều hành
Cấu trúc hệ điều hànhCấu trúc hệ điều hành
Cấu trúc hệ điều hành
 
Báo cáo chuyên đề công nghệ mới
Báo cáo chuyên đề công nghệ mớiBáo cáo chuyên đề công nghệ mới
Báo cáo chuyên đề công nghệ mới
 
Chuong 2 cac thanh_phan_cua_httt
Chuong 2 cac thanh_phan_cua_htttChuong 2 cac thanh_phan_cua_httt
Chuong 2 cac thanh_phan_cua_httt
 

Chappter 1 - Embedded system presentation.pdf

  • 1. CHƯƠNG 1: GIỚI THIỆU HỆ THỐNG NHÚNG
  • 2. Nội dung • 1.1 Định nghĩa Hệ thống nhúng • 1.2 Bộ Vi xử lý nhúng • 1.3 Các đơn vị phần cứng điển hình trong hệ thống nhúng • 1.4 Phần mềm nhúng • 1.5 Các ví dụ hệ thống nhúng
  • 3. 1.1. Hệ thống nhúng • Định nghĩa: – Hệ thống: • 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.
  • 4. 1.1. Hệ thống nhúng • Định nghĩa: – Ví dụ về hệ thống – Hệ thống hiển thị thời gian - Đồng hồ (Clock) • Trình tự hoạt động giây, phút, giờ, ngày, tháng, năm. – Hệ thống giặt quần áo tự động - Máy giặt • Trình tự hoạt động giặt, xả, vắt, sấy.
  • 5. 1.1. Hệ thống nhúng • Định nghĩa: – Hệ thống nhúng • (1) “Hệ thống nhúng 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). “Một hệ thống nhúng là một hệ thống có phần mềm chuyên dụng, mục đích nhúng vào trong phần cứng máy tính.”
  • 6. 1.1. Hệ thống nhúng • Định nghĩa: – Hệ thống nhúng • (3). “Hệ thống nhúng là một máy tính chuyên dụng dựa trên hệ thống cho ứng dụng hoặc sản phẩm. Nó có thể là một hệ thống độc lập hoặc một phần của hệ thống lớn. Hệ thống nhúng là phần mềm nhúng vào một ROM (Read Only Memory) hoặc bộ nhớ flash” • (4). “Đó là thiết bị bất kỳ, bao gồm một máy tính có khả năng lập trình nhưng bản thân nó không có ý định trở thành một máy tính mục đích chung.”
  • 7. 1.1. Hệ thống nhúng • Ví dụ: máy tính là hệ thống nhúng hay không? – Một bộ vi xử lý – Một bộ nhớ lớn bao gồm hai loại: – Bộ nhớ chính: bộ nhớ bán dẫn - RAM, ROM và caches (truy cập nhanh) – Bộ nhớ thứ cấp [(bộ nhớ từ tính nằm trong đĩa cứng, đĩa mềm và băng từ, bộ nhớ quang học trong CD-ROM hoặc Card nhớ (trong máy tính di động)] sử dụng chứa các chương trình, mà chương trình được sử dụng khác nhau có thể tải vào bộ nhớ chính và có thể thực thi (chạy).
  • 8. 1.1. Hệ thống nhúng • Ví dụ một máy tính – Đơn vị I/O như: màn hình cảm ứng, modem, fax và modem v.v. Đơn vị ngõ vào như bàn phím, chuột, số hóa, máy quét, v.v. Đơn vị ngõ ra như màn hình LCD, màn hình video, máy in, v.v. – Các đơn vị liên kết như Card Ethernet, máy chủ đầu cuối dựa trên bộ vi xử lý, bus-driver, v.v. – Hệ điều hành (OS). – Giao diện người dùng phổ thông và phần mềm ứng dụng, chủ yếu là trong bộ nhớ thứ cấp.
  • 9. 1.1. Hệ thống nhúng • Ba thành phần nhúng chính trong hệ thống nhúng – Phần cứng nhúng – Phần mềm nhúng – Hệ điều hành thời gian thực (optional)
  • 10. 1.1. Hệ thống nhúng • Hệ thống nhúng thời gian thực –RTOS – Xử lý song song – Lập lịch tác vụ – Xử lý phân quyền ưu tiên – Bị ràng buộc deadline kết thúc quá trình
  • 11. 1.1. Hệ thống nhúng • Các đặc điểm hệ thống nhúng phức tạp – Các chức năng chuyên dụng – Các giải thuật phức tạp chuyên dụng – GUI và giao diện người dùng – Hoạt động thời gian thực – Latency – Nhiều tốc độ (rates) khác nhau
  • 12. 1.1. Hệ thống nhúng • Những ràng buộc của thiết kế hệ thống nhúng – Bộ nhớ hệ thống sẵn có – Tốc độ xử lý sẵn có – Năng lượng tiêu thụ – Hiệu suất – Kích cỡ – Chi phí sản xuất
  • 13. 1.2. Bộ vi xử lý nhúng • Bộ vi xử lý: – Bộ phận điều khiển (Control Unit -CU) – Bộ phận thực thi (Execution Unit -EU) – Mạch số học và đơn vị logic (ALU) – Tập lệnh xử lý
  • 14. 1.2. Bộ vi xử lý nhúng • Cân nhắc thiết kế hệ thống – Tập lệnh – Khả năng xử lý để giải quyết độ phức tạp các thuật toán trong thời gian giới hạn (deadline) của khả năng xử lý – Số bit tối đa trong toán hạng (8 hoặc 16 hoặc 32 bit) – Chiều rộng bus bên trong/ bus bên ngoài – Tốc độ xử lý: MIPS, MFLOPS, Dhrystone
  • 15. 1.2. Bộ vi xử lý nhúng • Vi xử lý với tập lệnh cho ứng dụng cụ thể – Application Specific Instruction-Set Processor – ASIP • Vi xử lý có lõi GPP hoặc ASIP – GPP hoặc ASIP tích hợp vào Mạch tích hợp ứng dụng cụ thể (ASIC), hoặc SoC – Vi mạch quy mô cực lớn (VLSI) /lõi FPGA tích hợp với bộ xử lý đơn vị (s) trong một chip VLSI (ASIC). • Vi xử lý hệ thống ứng dụng cụ thể – ASSP: Application Specific System Processor
  • 16. 1.3. Các đơn vị phần cứng điển hình trong hệ thống nhúng • Nguồn điện – Nguồn cung cấp riêng biệt với sự tách biệt dây dẫn điện cung cấp cho I/O, xung Clock, bộ vi xử lý cơ bản, bộ nhớ, và các đơn vị analog – Nguồn cung cấp từ giao diện – Charge pump – Quản lý tiêu hao năng lượng
  • 17. 1.3. Các đơn vị phần cứng điển hình trong hệ thống nhúng • Nguồn điện – Quản lý tiêu hao năng lượng • Lập trình thông minh thời gian thực bằng các câu lệnh Wait và Stop • Giảm tốc độ xung Clock thông minh trong một số tập lệnh cụ thể • Tối ưu hóa các dòng mã lệnh • Cho phép (enable) và vô hiệu hóa (disable) thông minh việc sử dụng caches hoặc khối bộ nhớ cache
  • 18. 1.3. Các đơn vị phần cứng điển hình trong hệ thống nhúng • Mạch xung Clock và đơn vị xung Clock – Mạch tạo xung – PLL – Real Time Clock (RTC) • Reset Circuit – Reset khi Power-up – Mạch Reset bên ngoài / bên trong – Reset dựa trên Timeout của Watchdog Timer
  • 19. 1.3. Các đơn vị phần cứng điển hình trong hệ thống nhúng • Memory – ROM/ EPROM/ Flash • Lưu trữ chương trình “ứng dụng”, nơi mà vi xử lý được nạp các mã lệnh • Lưu giữ mã lệnh cho hệ thống khởi động, khởi tạo, nhập dữ liệu ban đầu và các chuỗi ký tự. • Lưu trữ Codes cho RTOS. • Lưu trữ các con trỏ (địa chỉ) của nhiều loại chương trình con.
  • 20. 1.3. Các đơn vị phần cứng điển hình trong hệ thống nhúng • Memory – RAM nội bộ, RAM ngoài và buffer RAM • Lưu trữ các biến (Variables) trong suốt quá trình chạy chương trình, • Lưu giữ các Stacks, • Lưu trữ đầu vào hay đầu ra của bộ đệm, ví dụ như cho Speech, Image, Video, Text.
  • 21. 1.3. Các đơn vị phần cứng điển hình trong hệ thống nhúng • Memory – Các chức năng của EEPROM hoặc Flash • Lưu trữ kết quả non-volatile (không bị mất dữ liệu khi không có nguồn điện cung cấp) của các kết quả xử lý tính toán. – Các chức năng của Caches • Lưu trữ các bản sao của các câu lệnh, dữ liệu và câu lệnh rẽ nhánh trước từ memory bên ngoài • Lưu trữ tạm thời các kết quả trong việc ghi trở lại (write-back) của Caches trong suốt quá trình xử lý nhanh
  • 22. 1.3. Các đơn vị phần cứng điển hình trong hệ thống nhúng • Đơn vị truyền thông IO – Trình điều khiển (Driver) truyền thông • Ethernet Network • Serial bus • Parallel bus – ADC, DAC – Modem – Wireless
  • 23. 1.4. Phần mềm nhúng • ROM image – Phần mềm cho thiết bị • Các Byte tại mỗi địa chỉ được xác định cho việc tạo image ROM. • Bằng cách thay đổi ROM image, cùng một nền tảng phần cứng có thể hoạt động khác nhau và có thể được sử dụng cho các ứng dụng hoàn toàn khác nhau hoặc nâng cấp mới từ hệ thống tương tự.
  • 24. 1.4. Phần mềm nhúng • ROM image – ROM image riêng biệt trong một hệ thống nhúng riêng biệt • Các thành phần phần cứng giữa các các hệ thống khác nhau có thể tương đồng nhưng phần mềm là yếu tố làm cho một hệ thống độc nhất và khác biệt với các hệ thống khác. – Nén (compress) Codes và dữ liệu
  • 25. 1.4. Phần mềm nhúng • Ngôn ngữ lập trình – Ngôn ngữ mã máy (machine language/ machine code) • Lập trình viên xác định các địa chỉ và các byte hoặc bit tương ứng tại mỗi địa chỉ bằng phương pháp thủ công. • Được sử dụng trong việc cấu hình cụ thể một số thiết bị vật lý đặc biệt hoặc hệ thống con như: hệ thống thu phát, machine code- dựa trên mã hóa được sử dụng.
  • 26. 1.4. Phần mềm nhúng • Ngôn ngữ lập trình – Mã hợp ngữ (Assembly) • Cần thiết cho việc hiển thị câu lệnh cụ thể của Processor. • Đòi hỏi sự hiểu biết về vi xử lý và tập lệnh. • Một chương trình hoặc một phần nhỏ cụ thể được mã hóa trong hợp ngữ thông qua Assembler (phần mềm sử dụng cho phát triển mã hợp ngữ).
  • 27. 1.4. Phần mềm nhúng • Ngôn ngữ lập trình – Mã hợp ngữ (Assembly) – Ba bước khi sử dụng ngôn ngữ Assembly: 'Assembler', 'Linker' và 'Locator' sau cùng là nạp vào ROM
  • 28. 1.4. Phần mềm nhúng • Ngôn ngữ lập trình – Ngôn ngữ lập trình C hoặc C ++ hoặc Visual C++ hay Java • Phần mềm ứng dụng - Lập trình ở các lớp (Layers) khác nhau • Các lệnh vi xử lý • Chức năng chính, chức năng nhiệm vụ và chức năng thư viện • Làm đoạn chương trình dịch vụ gián đoạn • Lịch trình (Scheduler) dùng cho hệ đa nhiệm/ xử lý song song
  • 29. 1.4. Phần mềm nhúng • Ngôn ngữ lập trình – Compiler: là trình biên dịch tạo ra một tập tin đối tượng (Object). Sử dụng mối liên kết và định vị, các tập tin image cho ROM được tạo ra cho các phần cứng mục tiêu (target). – C /C++ và Java là các ngôn ngữ thường được sử dụng như các phần mềm lập trình.
  • 30. 1.4. Phần mềm nhúng • Qui trình chuyển đổi một chương trình C vào image ROM
  • 31. 1.4. Phần mềm nhúng • Mô hình chương trình – Mô hình lập trình tuần tự – Mô hình lập trình hướng đối tượng – Lưu đồ điều khiển và luồng dữ liệu • Synchronous Data Flow --SDF • Multi Thread Graph --MTG – Máy trạng thái (Finite State Machine --FSM) cho đường dữ liệu – Mô hình đa luồng: xử lý đồng thời các quy trình (process) hay chủ đề (thread) hay tác vụ (task)
  • 32. 1.4. Phần mềm nhúng • Trình điều khiển thiết bị – Thiết bị vật lý/ thiết bị ảo – Thiết bị vật lý - bàn phím, màn hình LCD hoặc màn hình cảm ứng, thẻ nhớ (bộ nhớ flash), thiết bị mạng không dây, cổng song song và Card mạng … – Các thiết bị ảo - đường ống xử lý (pipe), tập tin, đĩa RAM, socket, …
  • 33. 1.4. Phần mềm nhúng • Trình điều khiển thiết bị – Device Driver là phần mềm cho việc kiểm soát (cấu hình), nhận và gửi một byte hoặc một luồng các byte đến/đi thiết bị – Một tập hợp các chức năng phổ thông, chẳng hạn như: tạo ra -create(), mở -open(), kết nối - connect(), lắng nghe -listen(), chấp nhận -accept(), đọc -read(), ghi -write(), đóng -close(), xóa -delete() để sử dụng bởi các ngôn ngữ cấp cao. – Mỗi chức năng phổ thông gọi là phần mềm đặc biệt (đoạn chương trình gián đoạn dịch vụ), giúp cho việc điều khiển một chức năng thiết bị hoặc thiết bị đầu vào hoặc đầu ra.
  • 34. 1.4. Phần mềm nhúng • Trình điều khiển thiết bị – Gọi một ISR (Interrupt Handler Routine) trên gián đoạn phần cứng hoặc phần mềm – Đặt các bits/ Word thích hợp vào bộ điều khiển thanh ghi. – Thiết lập cờ trạng thái trong thanh ghi trạng thái cho việc gián đoạn, do đó thực thi ISR, Reset lại cờ trạng thái sau khi thực thi đoạn chương trình gián đoạn dịch vụ.
  • 35. 1.4. Phần mềm nhúng • Trình quản lý thiết bị – Cung cấp codes cho việc phát hiện sự hiện diện của các thiết bị, cho khởi tạo (cấu hình) và cho các thử nghiệm (test) các thiết bị đang hiện diện – Phân bổ và đăng ký các Cổng (Port) hoặc mã (Codes) thiết bị và dữ liệu tại các địa chỉ bộ nhớ cho nhiều loại thiết bị khác nhau. – Tránh xung đột giữa các địa chỉ được phân bổ
  • 36. 1.4. Phần mềm nhúng • Hệ điều hành (OS) đa nhiệm và hệ thống thời gian thực (RTOS) – Xử lý đồng thời/song song các quá trình, nhiệm vụ hay chủ đề: một hệ thống gồm hai hoặc nhiều hơn tiến trình đồng thời được thực hiện.
  • 37. 1.4. Phần mềm nhúng • Hệ điều hành (OS) đa nhiệm và hệ thống thời gian thực (RTOS) – 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ý: quy 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,... ...
  • 38. 1.4. Phần mềm nhúng • Hệ điều hành (OS) đa nhiệm và hệ thống thời gian thực (RTOS) – 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
  • 39. 1.4. Phần mềm nhúng • Hệ điều hành (OS) đa nhiệm và hệ thống thời gian thực (RTOS) – RTOS và các tiến trình đồng thời • OS cung cấp xác định hiệu suất trong quá trình xử lý đồng thời và thực hiện với yêu cầu thời gian nghiêm ngặt cứng (hard) hoặc mềm (soft) với sự phân bổ ưu tiên và chiếm quyền đầu tiên. – RTOS là cần thiết khi các nhiệm vụ cho các hệ thống có chế độ thời gian thực và có thời hạn để hoàn thành nhiệm vụ.
  • 40. 1.4. Phần mềm nhúng • Hệ điều hành (OS) đa nhiệm và hệ thống thời gian thực (RTOS) • Các RTOSes quan trọng – OS uCOS-II – VxWorks – Windows CE – OSEK – Linux 2.6.24 hoặc RTLinux – QNX
  • 41. 1.4. Phần mềm nhúng • Phần mềm công cụ – (1). Trình soạn thảo (Editor), – (2). Phiên dịch (Interpreter), – (3). Trình biên dịch (Compiler), – (4). Assembler và Cross Assembler, Integrated Development Environment -IDE, – (5). Bản mẫu (Prototyper)
  • 42. 1.4. Phần mềm nhúng • Công cụ phát triển phần mềm ứng dụng – Công cụ mã nguồn kỹ thuật – Ống nghe (stethosope) (theo dõi các chuyển đổi giữa các tác vụ như là một chức năng theo thời gian) – Quan sát dấu vết (trace scope) (quan sát sự thay đổi của tham số là hàm theo thời gian)
  • 43. 1.4. Phần mềm nhúng • Công cụ phát triển phần mềm ứng dụng – Simulator: để mô phỏng các vi xử lý và yếu tố phần cứng trên một máy chủ PC, chạy và kiểm tra các module thực thi. – Quản lý dự án: để quản lý các tập tin được liên kết với giai đoạn thiết kế dự án và giữ một số phiên bản của tập tin nguồn trong một cách có trật tự.
  • 44. 1.5. Các ví dụ về hệ thống nhúng • Viễn thông -Telecom • Card thông minh, • Tên lửa và vệ tinh, • Mạng máy tính, • Điện tử số tiêu dùng, • Tự động –Automotion • Etc.
  • 45. 1.5. Các ví dụ về hệ thống nhúng • Automatic Chocolate Vending Machine (ACVM) – Mục 1.10.2 Tiếng Anh • Smart Card – Mục 1.10.3 Tiếng Anh
  • 46. Bài tập • Xem tài liệu tiếng Anh – [1] Digital Camera – [2] Mobile Phone – [3] Mobile Computer – [4] A set of robot