HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNGKHOA CÔNG NGHỆ THÔNG TIN I --- ---BÁO CÁO BÀI TẬP LỚN HỌC PHẦN HỆ ĐIỀU HÀNH Đề 2: Tìm hiểu tổng quan hệ thống nhúng và các bộ xử lý nhúng: Xét một
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN I
-
-BÁO CÁO BÀI TẬP LỚN HỌC PHẦN HỆ ĐIỀU HÀNH
Đề 2: Tìm hiểu tổng quan hệ thống nhúng và các bộ xử lý nhúng: Xét một hệ thống nhúng dùng bộ xử lý ARM để phân tích cấu trúc, hoạt động của hệ thống và các đặc điểm ứng dụng
Giảng viên bộ môm: Đinh Xuân Trường
Nhóm lớp: 02
Thành viên nhóm 09:
Dương Thị Thanh Tâm B20DCCN588
HÀ NỘI - 2022
0
Trang 2LỜI CẢM ƠN
Lời đầu tiên, xin trân trọng cảm ơn thầy đã tạo điều kiện thuận lợi và
tận tình hướng dẫn chúng em trong quá trình học tập cũng như trong
việc hoàn thành báo cáo bài tập lớn
Xin cảm ơn các thầy đã đọc báo cáo và cho chúng em những nhận
xét quý báu, chỉnh sửa những sai sót của tôi trong bản thảo báo cáo
Do giới hạn kiến thức nên bài báo của chúng em vẫn còn nhiều thiếu
sót và hạn chế, kính mong sự chỉ dẫn và đóng góp của thầy để bài
báo cáo bài tập lớn học phần Hệ điều hành của chúng em được hoàn
thiện hơn Xin chân thành cảm ơn!
1
Trang 3Thành viên tham gia và đóng góp:
Vũ Nguyệt Hà - B20DCCN216
Dương Thị Thanh Tâm - B20DCCN588
Nguyễn Thị Ánh - B20DCCN084
Vũ Văn Tiến - B20DCCN600
2
Trang 4Mục lục
Phần I: Hệ thống nhúng và các bộ xử lý nhúng 4
1.Gi i thi u chungớ ệ 4
2.Khái ni m h thốống nhúngệ ệ 5
3.L ch s phát tri nị ử ể 5
4.Đ c đi mặ ể 6
5.Phân lo i h thốống nhạ ệ úng 7
6 ng d ng c a h thốống nhúngỨ ụ ủ ệ 8
7.Kiếốn trúc CPU-Các b x lý nhúngộ ử 9
8.Thiếốt b ngo i viị ạ 10
Phần II: Bộ xử lí ARM 11
1.Gi i thi u chungớ ệ 11
1.1 B x lý ARMộ ử 11
1.2 Tính năng c a b x lý ARMủ ộ ử 12
1.3 Câốu trúc ARM 12
2.Ho t đ ngạ ộ 14
3.Đ c đi m c a h thốống nhúngặ ể ủ ệ 15
4 ng d ng b x lý ARMỨ ụ ộ ử 16
Phần III: Một số tài kiệu tham khảo 17
3
Trang 5Nội dung Phần I: Hệ thống nhúng và các bộ xử lý nhúng
1.Giới thiệu chung
Hệ thống nhúng được biết đến là yếu tố quan trọng trong sự phát triển của lĩnh vực công nghệ và nền sản xuất công nghiệp hiện đại Bởi vì các hệ thống nhúng được ứng dụng nhiều và đã trở nên phổ biến trong hầu hết các thiết bị điện tử, các hệ thống dây chuyền máy móc sản xuất và khuynh hướng này vẫn còn tiếp tục cho đến nay Với một hệ thống nhúng, sẽ thường đảm nhận một chức năng chuyên biệt, hoạt động với mức tiêu thụ điện năng rất ít Chính vì hệ thống chỉ đảm nhận một số nhiệm vụ chuyên biệt nên các nhà thiết kế có thể tối ưu hóa hệ thống nhúng làm cho kích thước hệ thống được giảm thiểu tối đa, và rất phù hợp với không gian nhỏ so với các thành phần khác trong hệ thống mẹ Điều này khiến giá thành hệ thống rất rẻ, hệ thống đã trở thành giải pháp hữu hiệu để kiểm soát các thiết bị và rất hấp dẫn để xây dựng các hệ thống chuyên dụngVới một hệ thống nhúng, sẽ thường đảm nhận một chức năng chuyên biệt, hoạt động với mức tiêu thụ điện năng rất ít
Hệ thống nhúng có tính hoạt động ổn định nên cũng rất bảo trì, cũng chính lý
do này, nên dễ dàng tích hợp vào các thiết bị mà không cần dịch vụ người dùng cuối
Và khả năng xử lý của các hệ thống nhúng phát triển mạnh mẽ
Hầu hết các chuyên gia đều nhận định hệ thống nhúng đang sở hữu tiềm năng phát triển rất mạnh mẽ Thống kê trên thế giới ghi nhận, trong các server, máy PC, mạng WAN,mạng LAN,internet số chip chỉ chiểm không đầy 10% trong tổng số các chip vi xử lý trên thế giới Theo đó 99% vi xử lý ở trong hệ thống nhúng
Hình 1: Các loại của hệ thống nhúng
4
Trang 62.Khái niệm hệ thống nhúng
Hệ thống nhúng (Tiếng Anh: embedded system) là một thuật ngữ để chỉ một hệ thống có khả năng tự trị được nhúng vào trong một môi trường hay hệ thống mẹ Đó là các hệ thống tích hợp cả phần cứng và phần mềm phục vụ các bài toán chuyên dụng trong nhiều lĩnh vực công nghiệp, tự động hoá điều khiển, quan trắc và truyền tin Đặc điểm của các hệ thống nhúng là hoạt động ổn định và có tính năng tự động hoá cao
Hệ thống nhúng thường được thiết kế để thực hiện một chức năng chuyên biệt nào đó 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, một hệ thống nhúng chỉ thực hiện một hoặc một vài chức năng nhất định, thường đi kèm với những yêu cầu cụ thể và bao gồm một số thiết bị máy móc và phần cứng chuyên dụng
mà ta không tìm thấy trong một máy tính đa năng nói chung Vì hệ thống chỉ được xây dựng cho một số nhiệm vụ nhất định nên các nhà thiết kế có thể tối ưu hóa nó nhằm giảm thiểu kích thước và chi phí sản xuất Các hệ thống nhúng thường được sản xuất hàng loạt với số lượng lớn Hệ thống nhúng rất đa dạng, phong phú về chủng loại Đó
có thể là những thiết bị cầm tay nhỏ gọn như đồng hồ kĩ thuật số và máy chơi nhạc MP3, hoặc những sản phẩm lớn như đèn giao thông, bộ kiểm soát trong nhà máy hoặc
hệ thống kiểm soát các máy năng lượng hạt nhân Xét về độ phức tạp, hệ thống nhúng
có thể rất đơn giản với một vi điều khiển hoặc rất phức tạp với nhiều đơn vị, các thiết
bị ngoại vi và mạng lưới được nằm gọn trong một lớp vỏ máy lớn
Các thiết bị PDA hoặc máy tính cầm tay cũng có một số đặc điểm tương tự với
hệ thống nhúng như các hệ điều hành hoặc vi xử lý điều khiển chúng nhưng các thiết
bị này không phải là hệ thống nhúng thật sự bởi chúng là các thiết bị đa năng, cho phép sử dụng nhiều ứng dụng và kết nối đến nhiều thiết bị ngoại vi
3.Lịch sử phát triển
Những cột mốc quan trọng trong lịch sử đánh dấu sự phát triển của hệ thống nhúng:
Năm 1960, hệ thống nhúng lần đầu tiên được sử dụng để phát triển hệ thống hướng dẫn Apollo bởi Charles Stark Draper tại MIT
Năm 1965, Autonetics đã phát triển D-17B, máy tính được sử dụng trong
hệ thống dẫn đường tên lửa Minuteman
Năm 1968, hệ thống nhúng đầu tiên cho một chiếc xe được phát hành
5
Trang 7Texas Instruments đã phát triển bộ vi điều khiển đầu tiên vào năm 1971 Năm 1987, hệ điều hành nhúng đầu tiên VxWorks, được phát hành bởi Wind River
Windows của Microsoft được nhúng CE vào năm 1996
Cuối những năm 1990, hệ thống Linux nhúng đầu tiên xuất hiện Thị trường nhúng đạt 140 tỷ đô la vào năm 2013
Các nhà phân tích đang dự đoán một thị trường Nhúng lớn hơn 40 tỷ đô
la vào năm 2030
4.Đặc điểm
Hình 2: Đặc điểm của hệ thống nhúng
Hiệu suất thời gian thực
Phải có tính khả dụng và độ tin cậy, độ ổn định cao
Được phát triển dựa trên hệ điều hành thời gian thực
Được thiết kế cho một nhiệm vụ cụ thể
Nó phải được kết nối với các thiết bị ngoại vi để kết nối các thiết bị đầu vào và đầu ra
Giao diện người dùng (nếu cần thiết)
Bộ nhớ hạn chế, chi phí thấp, tiêu thụ ít điện năng
Nó không cần bất kỳ bộ nhớ phụ nào trong máy tính
6
Trang 85.Phân loại hệ thống nhúng
Có một số loại hệ thống nhúng về cơ bản là giống nhau nhưng lại khác nhau về yêu cầu chức năng của chúng
Hệ thống nhúng di động (Mobile embedded systems) là các hệ thống có kích thước nhỏ được thiết kế dành cho các thiết bị di động như máy ảnh
kỹ thuật số, điện thoại di động
Hệ thống nhúng kết nối mạng lưới (Networked embedded systems) được kết nối với một mạng để cung cấp đầu ra cho các hệ thống khác Ví dụ bao gồm hệ thống an ninh gia đình và hệ thống điểm bán hàng (POS)
Hệ thống nhúng độc lập (Standalone embedded systems) là một hệ thống nhúng không phụ thuộc vào hệ thống máy chủ Giống như bất kỳ hệ thống nhúng nào, chúng thực hiện một nhiệm vụ chuyên biệt Tuy nhiên, chúng không nhất thiết phải thuộc về một hệ thống chủ, không giống như các hệ thống nhúng khác Máy tính hoặc máy nghe nhạc MP3 là một
ví dụ
Hệ thống nhúng thời gian thực (Real-time embedded systems) cung cấp đầu ra cần thiết trong một khoảng thời gian xác định Chúng thường được sử dụng trong các lĩnh vực y tế, công nghiệp và quân sự vì chúng đảm nhận trách nhiệm cho các nhiệm vụ quan trọng, nghiêm ngặt về thời gian Hệ thống kiểm soát giao thông là một ví dụ
Ngoài ra, hệ thống nhúng cũng có thể được phân loại theo yêu cầu hiệu suất của chúng:
Các hệ thống nhúng quy mô nhỏ (Small-scale embedded systems) thường sử dụng không quá một bộ vi điều khiển 8-bit
Các hệ thống nhúng quy mô trung bình (Medium-scale embedded systems) sử dụng một bộ vi điều khiển lớn hơn (16-32 bit) và thường liên kết các bộ vi điều khiển với nhau
Các hệ thống nhúng quy mô phức tạp (Sophisticated-scale embedded systems) thường sử dụng một số thuật toán dẫn đến sự phức tạp của phần mềm và phần cứng và có thể yêu cầu phần mềm phức tạp hơn, bộ xử lý
có thể cấu hình và mảng logic có thể lập trình được
7
Trang 9Một số kiến trúc phần mềm hệ thống nhúng phổ biến, chúng trở nên cần thiết khi các hệ thống nhúng phát triển và phức tạp hơn về quy mô Bao gồm:
Các vòng điều khiển đơn giản (Simple control loops) gọi các chương trình con, chương trình này quản lý một phần cụ thể của phần cứng hoặc lập trình nhúng
Hệ thống điều khiển ngắt (Interrupt controlled systems) bao gồm hai vòng lặp là vòng lặp chính và vòng lặp thứ cấp Sự gián đoạn trong các vòng lặp sẽ kích hoạt các tác vụ
Đa nhiệm tác vụ (Cooperative multitasking) thực chất là một vòng điều khiển đơn giản nằm trong một giao diện lập trình ứng dụng (API - Application Programming Interface)
Đa nhiệm ưu tiên hoặc đa luồng (Preemptive multitasking or
multithreading) thường được sử dụng với RTOS và có các chiến lược đồng bộ hóa và chuyển đổi tác vụ
6.Ứng dụng của hệ thống nhúng
Các ứng dụng cơ bản của hệ thống nhúng mà ta có thể dễ dàng thấy được như trong các thẻ thông minh, mạng máy tính, vệ tinh, viễn thông, thiết bị điện tử tiêu dùng kỹ thuật
số, tên lửa, v.v
Hệ thống nhúng được ứng dụng trong ngành công nghiệp ô tô như điều khiển động
cơ, kiểm soát,theo dõi hành trình, việc bảo an toàn cho thân xe, sự an toàn cho động cơ, điều khiển robot trong các chuyền lắp ráp, trình đa phương tiện trên
ô tô, hệ thống giải trí trên ô tô, truy cập E-com, kết nối với điện thoại di động, v.v … Các hệ thống nhúng trong viễn thông thuộc các mạng lưới viễn thông, ứng dụng điện toán di động và hệ thống truyền thông không dây, v.v
8
Trang 10Các hệ thống nhúng ứng dụng trong thẻ thông minh thuộc các hệ thống ngân hàng, hệ thống ứng dụng điện thoại di động và bảo mật
Hệ thống nhúng ứng dụng trong vệ tinh và tên lửa thuộc các đơn vị quốc phòng, truyền thông và hàng không vũ trụ
Các hệ thống nhúng trong hệ thống mạng và các thiết bị ngoại vi máy tính nằm trong các ứng dụng xử lý hình ảnh, hệ thống mạng lưới, các máy in, các thẻ mạng, màn hình và các vật hiển thị
Các hệ thống nhúng ứng dụng trong các thiết bị điện tử tiêu dùng kỹ thuật số có thể thấy được như đầu DVD, các loại tivi với độ phân giải cao và máy ảnh kỹ thuật
Xu hướng phát triển: Ngành công nghiệp cho các hệ thống nhúng dự kiến sẽ tiếp tục phát triển nhanh chóng, được thúc đẩy bởi sự phát triển liên tục của Trí tuệ nhân tạo (AI – Artificial Intelligence), Thực tế ảo (VR – Virtual reality) và Thực tại tăng cường (AR – Augmented reality), học máy (Machine learning), học sâu (Deep learning) và Internet vạn vật (IoT – Internet of things)
Theo báo cáo năm 2018 do QYResearch công bố, thị trường toàn cầu cho ngành công nghiệp hệ thống nhúng được định giá 68,9 tỷ đô la trong năm 2017 và dự kiến sẽ tăng lên 105,7 tỷ đô la vào cuối năm 2025
7.Kiến trúc CPU-Các bộ xử lý nhúng
Hình 3: Cấu trúc cơ bản của 1 hệ thống nhúng
Các bộ xử lý trong hệ thống nhúng có thể được chia thành 2 loại: Vi xử ký và vi điều khiển Các vi điều khiển thường có các thiết bị ngoại vi được tích hợp trên chip nhằm giảm kích thước của hệ thống Có rất nhiều loại kiến trúc CPU được sử dụng trong thiết kế hệ nhúng như ARM, MIPS, Coldfire/68k, PowerPC, x86, PIC, 8051,
9
Trang 11Atmel AVR, Renesas H8, SH, V850, FR-V, M32R, Z80, Z8 … Điều này trái ngược với các loại máy tính để bàn, thường bị hạn chế với một vài kiến trúc máy tính nhất định Các hệ thống nhúng có kích thước nhỏ và được thiết kế để hoạt động trong môi trường công nghiệp thường lựa chọn PC/104 và PC/104++ làm nền tảng Những hệ thống này thường sử dụng DOS, Linux, NetBSD hoặc các hệ điều hành nhúng thời gian thực như QNX hay VxWorks Còn các hệ thống nhúng có kích thước rất lớn thường sử dụng một cấu hình thông dụng là hệ thống on chip (System on a chip – SoC), một bảng mạch tích hợp cho một ứng dụng cụ thể (an application-specific integrated circuit – ASIC) Sau đó nhân CPU được mua và thêm vào như một phần của thiết kế chip Một chiến lược tương tự là sử dụng FPGA (field-programmable gate array) và lập trình cho
nó với những thành phần nguyên lý thiết kế bao gồm cả CPU
Nhúng hoạt động bằng cách kết nối một bảng máy tính vào
một công nghiệp có I / O để thực hiện một chức năng trong môi
trường nhúng Phần tử điện toán là một bo mạch chủ nhúng trong
CPU, một yếu tố bao gồm các tính năng, bộ xử lý là trái tim của một
hệ thống nhúng
8.Thiết bị ngoại vi
Hệ thống nhúng giao tiếp với bên ngoài thông qua các thiết bị ngoại vi, ví dụ như:
• Serial Communication Interfaces (SCI): RS-232, RS-422, RS-485
• Synchronous Serial Communication Interface: I2C, JTAG, SPI, SSC và ESSI
• Universal Serial Bus (USB)
• Networks: Controller Area Network, LonWorks
• Bộ định thời: PLL(s), Capture/Compare và Time Processing Units
• Discrete IO: General Purpose Input/Output (GPIO)
10
Trang 12Phần II: Bộ xử lí ARM
1.Giới thiệu chung
1.1 Bộ xử lý ARM
Bộ xử lý ARM là một CPU dựa trên kiến trúc RISC (máy tính tập
lệnh giảm) được phát triển bởi Advanced RISC Machines Công nghệ
này đã góp phần vào sự phát triển nhanh chóng vào đầu những năm
2010 và vẫn có tác động đáng kể đến các thiết bị công nghệ
ARM sản xuất bộ vi xử lý đa nhân RISC 32 bit và 64 bit Các bộ
xử lý RISC được thiết kế để thực hiện một số lượng nhỏ hơn các loại
lệnh máy tính để chúng có thể hoạt động ở tốc độ cao hơn, thực hiện
nhiều lệnh mỗi giây (MIPS) Bằng cách loại bỏ các hướng dẫn không
cần thiết và tối ưu hóa các đường dẫn, bộ xử lý RISC cung cấp hiệu
suất vượt trội nhưng mức tiêu thụ điện năng ở mức thấp
Hình 2: Bộ xử lý ARM
Bộ xử lý ARM được sử dụng rộng rãi trong các thiết bị điện tử
như smartphone, máy tính bảng, trình phát đa phương tiện và các
thiết bị di động khác Bộ vi xử lý ARM được thiết kế để hiệu quả nhất
có thể, chỉ chấp nhận các lệnh có thể được thực hiện trong một chu
kỳ bộ nhớ Quá trình phổ biến đối với CPU là tìm nạp, giải mã và thực
thi các lệnh
11
Trang 13Thiết kế đơn giản của bộ xử lý ARM cho phép xử lý đa lõi hiệu
quả hơn và mã hóa dễ dàng hơn cho các nhà phát triển Mặc dù
chúng không có cùng thông lượng tính toán thô như các sản phẩm
của Intel dẫn đầu thị trường x86, bộ vi xử lý ARM đôi khi vượt quá
hiệu suất của bộ xử lý Intel cho các ứng dụng tồn tại trên cả hai kiến
trúc
1.2 Tính năng của bộ xử lý ARM
- ARM sở hữu những tính năng tuyệt vời như:
ARM được sử dụng để tải xuống và lưu lại những dữ liệu
cần thiết
Thiết kế tiết kiệm năng lượng điện sẽ được thực hiện khi
áp dụng ARM
Mang đến hiệu suất cao hơn, mở rộng nhiều chức năng
hơn với hệ thống 32bit và 64bit
Công việc ảo hóa phần cứng được hỗ trợ triệt để
- Vì sao nên sử dụng bộ xử lý ARM?
Sức mạnh xử lý: Năng lượng thực hiện sẽ tăng lên một
tầm cao mới khi áp dụng kiến trúc 32bit bởi kiến trúc này
có khả năng nhanh hơn 8 lần so với những kiến thức bình
thường khác Ngoài ra, con chip của ARM sẽ có thể thao
tác được thuật toán nhanh, hiệu quả hơn rất nhiều những
con cip khác
Tốc độ đáp ứng: Các thiết bị lựa chọn ARM thay cho kiến
thức thông thường bởi ARM có khả năng thực hiện các
phản ứng nhanh, hệ thống xử lý ngắt kết nối hiệu quả,
năng lượng điện được tiết kiệm tối đa
1.3 Cấu trúc ARM
Với các mô hình RISC của Berkeley RISC I và II, Stanford MIPS,
ARM kế thừa:
12