Professional Documents
Culture Documents
Báo Cáo BTL - HDH
Báo Cáo BTL - HDH
HÀ NỘI - 2022
0
LỜ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
Thành viên tham gia và đóng góp:
Vũ Nguyệt Hà - B20DCCN216
Dương Thị Thanh Tâm - B20DCCN588
2
Mục lục
3
Nội dung
4.Đặc điểm
6
5.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
Mộ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ụ.
8
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.
Cá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.
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
Phầ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.
Thiế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
11
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.
12
Mô hình thiết kế ARM: Để phục vụ mục đích của người dùng: r0-r14: 15 thanh
ghi đa dụng, r15 là thanh ghi PC, thanh ghi trạng thái chương trình hiện tại (CPSR).
Các thanh ghi khác được giữ lại cho hệ thống
13
Thanh ghi R15 là thanh ghi Program Counter(PC). Thanh ghi này chứa
địa chỉ câu lệnh sẽ được thực thi. Khi reset, vi xử lý sẽ nạp thanh ghi PC
với giá trị reset là 0x00000004.
Ngoài các thanh ghi được sử dụng với nhiều mục đích chung (R0-R12),
SP, LR, PC thì vi xử lý ARM Cortex-M4 còn có 5 thanh ghi đặc biệt.
Trong đó, thanh ghi Program status (PSR) bao gồm các thanh ghi cung
cấp thông tin trạng thái của chương trình Application với các cờ
N,Z,C,V,Q, chương trình Interrupt và các thanh ghi liên quan đến stack
của vi xử lý. Những thanh ghi còn lại, các bạn tìm đọc trong tài liệu đã
được đề cập đến ở phần trên.
2.Hoạt động
Vi xử lý ARM Cortex-Mx hoạt động ở 2 chế độ:
Thread mode: Tất cả các code chương trình mà bạn viết trong main() sẽ
được thực thi dưới chế độ Thread mode của vi xử lý. Chế độ này còn
được gọi là “user mode.” Mặc định, vi xử lý luôn bắt đầu ở chế độ
Thread mode.
Handler mode: Tất cả các xử lý System Exception và Interrupt sẽ được
thực thi dưới chế độ Handler mode của vi xử lý. Bất cứ khi nào vi xử lý
gặp System Exception hoặc Interrupt đến từ bất cứ ngoại vi nào, thì vi
xử lý sẽ ngay lập tức chuyển từ Thread mode thành Handler mode và
trình phục vụ tương ứng sẽ được thực thi ở Handle mode.
Vi xử lý ARM Cortex – M sử dụng kiến trúc bus Harvard, điều này có nghĩa là
nó có bus chuyên dụng dành cho việc lấy lệnh (instruction fetch) và lấy dữ liệu (data
fetch). Ưu điểm của kiến trúc này là trong khi fetch instruction thì vi xử lý có thể fetch
data một cách đồng thời, điều này làm tăng hiệu năng của vi xử lý, vi xử lý không cần
phải đợi cho đến khi data được fetch trước khi nó muốn lấy instruction tiếp theo và
ngược lại. Vi xử lý ARM Cortex cung cấp các BUS như I-BUS, D-BUS và S-BUS để
giao tiếp với phần còn lại của vi điều khiển.
14
3.Đặc điểm của hệ thống nhúng
Cấu trúc ARM (viết tắt từ tên gốc là Acorn RISC Machine)
là một loại cấu trúc vi xử lý 32-bit kiểu RISC được sử dụng rộng rãi trong các thiết kế
nhúng. Do có đặc điểm tiết kiệm năng lượng, các bộ CPU ARM chiếm ưu thế trong
các sản phẩm điện tử di động, mà với các sản phẩm này việc tiêu tán công suất thấp là
một mục tiêu thiết kế quan trọng hàng đầu.
Để đạt được một thiết kế gọn, đơn giản và nhanh, các nhà thiết kế ARM xây
dựng nó theo kiểu nối cứng không có vi chương trình, giống với bộ vi xử lý 8-bit 6502
đã từng được dùng trong các máy vi tính trước đó của hãng Acorn.
Cấu trúc ARM bao gồm các đặc tính của RISC như sau:
Cấu trúc nạp/lưu trữ.
Không cho phép truy xuất bộ nhớ
không thẳng hàng (bây giờ đã cho
phép trong lõi Arm v6).
Tập lệnh trực giao
File thanh ghi lớn gồm 16 x 32-bit.
Chiều dài mã máy cố định là 32 bit để dễ giải mã và thực hiện
pipeline, để đạt được điều này phải chấp nhận giảm mật độ mã máy.
Hầu hết các lệnh đều thực hiện trong vòng một chu kỳ đơn.
Các ưu điểm của bộ xử lý ARM:
Được xây dựng theo kiểu cấu trúc mở: quy trình xử lý các thuật toán
hiệu quả hơn để bảo vệCPU không bị quá tải, tiết kiệm bộ nhớ và năng
lượng,- Thumb ® -2 - Cải thiện đáng kể mật độ code- DSP - Xử lý tín
15
hiệu trực tiếp trong lõi RISC- Jazelle ® - Java tăng tốc;- TrustZone ® -
Môi trường phần cứng/phần mềm được bảo mật tối đa.
Bộ xử lý: Thông qua những ứng dụng mạnh mẽ và đa năng, các vi xử lý
chạy từ 1MHz đến1 GHz có cải tiến về cấu trúc nên mang lại hiệu năng
xử lý cao trong các ứngdụng Multimedia và Java.
Công cụ lựa chọn (Tools of choice): Bộ vi xử lý ARM có phạm vi ứng
dụng rộng rải nhấtvì luôn có sẵn các Tools hỗ trợ phần cứng và phần
mềm cho bất kỳ cấu trúc 32-bit nào.
Tiêu thụ điện năng thấp: Các giải pháp dùng vi xử lý ARM luôn tiêu thụ
thấp nhất điệnnăng trong ngành công nghiệp và MIPS mỗi Watt. Điều
này cho phép pin chạy lâu hơn vớicác tính năng rất tiên tiến.
Chi phí silicon thấp: Bộ xử lý ARM và các sản phẩm IP khác làm cho
việc sử dụng siliconvà bộ nhớ hiệu quả hơn để tương thích với của các
thiết bị không dây. Các đặc tính của cấutrúc như công nghệ lõi Thumb
và Thumb-2 làm giảm kích thước code, tối thiểu footprint vàchi phí của
silicon.
Hỗ trợ rộng khắp: ARM là cấu trúc vi xử lý được luôn có được sự hỗ trợ
tốt nhất. Vì có mộtloạt các hệ điều hành OS, Middleware và Tools đáp
ứng sự lựa chọn phong phú của các giảipháp multimedia codec đã được
tối ưu hóa cho bộ vi xử lý ARM, tất cả đều có sẵn trongARM Connected
Community
16
tự giám sát. Ban đầu chúng sẽ có các tính năng cơ bản như việc cảnh báo cơ quan quản
lý khi bóng đèn không hoạt hoạt động. Trong giai đoạn tiếp theo, các hệ thống đèn này
có thể tắt/mở tự động khi không có xe hoạt động trên đường, nhằm tiết kiệm điện năng
ở mức tối đa. Đi xa hơn nữa, sự hiện của các thiết bị cảm biến tiên tiến cho phép sản
phẩm bóng đèn điện có phản xạ và vận hành tốt hơn. Cảm biến tăng khả năng quan sát
điểm mù cho xe hơi ARM hứa hẹn sẽ mang đến một bước đột phá cho công nghệ xe
hơi. Với một số ứng dụng tuyệt vời như cảnh báo lệch làn, hệ thống phanh tự động,
phát hiện điểm mù giúp tài xế tránh được những va chạm không đáng có.
17
18