Việc thiết kế môphỏng này được thực hiện để hiểu rõ về quá trình xây dựng một hệ thống nhúng thôngqua việc thiết kế mô phỏng phần cứng, phần mềm, cách tạo hệ điều hành thời gian thực và
Trang 1KHOA ĐIỆN TỬ VIỄN THÔNG
BÁO CÁO TIỂU LUẬN Môn: Thiết kế Hệ thống Nhúng
Đề tài: Thiết kế mô phỏng máy rửa bát mini
: CH12 - KTĐT1
Hà Nội – 2024
Trang 2Báo cáo tiểu
TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA ĐIỆN TỬ VIỄN THÔNG
BÁO CÁO TIỂU LUẬN Môn: Thiết kế Hệ thống Nhúng
Đề tài: Thiết kế mô phỏng máy rửa bát mini
: CH12 - KTĐT1
NIÊN KHÓA: 2024-2026
Trang 3Báo cáo tiểu
Bài tiểu luận này sẽ giới thiệu cơ sở lý thuyết thiết kế hệ thống nhúng và thực hiệnthiết kế mô phỏng thiết bị máy rửa bát mini trên hệ điều hành sEOS Việc thiết kế môphỏng này được thực hiện để hiểu rõ về quá trình xây dựng một hệ thống nhúng thôngqua việc thiết kế mô phỏng phần cứng, phần mềm, cách tạo hệ điều hành thời gian thực
và các kỹ năng lập trình cho vi điều khiển
Trang 4Báo cáo tiểu
Mục lục
CHƯƠNG I: TỔNG QUAN VỀ HỆ THỐNG NHÚNG 6
1.1 Giới thiệu về hệ thống nhúng 6
1.1.1 Khái niệm về hệ thống nhúng 6
1.1.2 Lịch sử phát triển của hệ thống nhúng 6
1.1.3 Các đặc điểm cơ bản của hệ thống nhúng 6
1.1.4 Những yêu cầu cho việc phát triển một hệ thống nhúng 8
1.2 Các thành phần của hệ thống nhúng 10
1.2.1 Các thành phần của Board hệ thống nhúng 10
1.2.2 Các thành phần phần mềm của hệ thống nhúng 13
1.3 Hệ điều hành thời gian thực 13
1.3.1 Yêu cầu chung cho các hệ điều hành thời gian thực 14
1.3.2 Các chức năng chính của phần lõi trong hệ điều hành 16
1.4 Các công cụ thiết và mô phỏng hệ thống nhúng 22
CHƯƠNG 2: THIẾT KẾ MÔ PHỎNG THIẾT BỊ MÁY RỬA BÁT MINI 24
2.1 Thiết kế phần cứng 24
2.1.1 Thiết kế mô hình máy rửa bát mini 24
2.1.2 Thiết kế mô phỏng nguyên lý phần cứng trên Proteus 24
2.2 Thiết kế phần mềm nhúng mô phỏng hoạt động máy rửa bát mini 24
2.2.1 Main.c và Port.H 24
2.2.2 Phục vụ ngắt sEOS_ISR() 25
CHƯƠNG 3: MÔ PHỎNG VÀ ĐÁNH GIÁ THIẾT BỊ 26
3.1 Mô phỏng trên Proteus 26
3.2 Mô phỏng trên Keil C 27
TÀI LIỆU THAM KHẢO 29
Trang 5Báo cáo tiểu
H nh 5: Mức ưu tiên giữa các tác vụ và khả năng chiếm quyền thực thi
H nh 10: Phần mềm viết chương tr nh Keil C
H nh 11: Sản phẩm máy rửa bát mini
H nh 12: Các trạng thái máy rửa bát mini
H nh 13: Sơ đồ khối hệ thống máy rửa bát mini
H nh 14: Thiết kế mô phỏng phần cứng trên proteus
H nh 15: Trạng thái khởi tạo của máy rửa bát mini
H nh 16: Chế độ hoạt động bằng tay (manual) của máy rửa bát mini
H nh 17: Chế độ tự động rửa với công suất cao nhất.
H nh 18: Mô phỏng trên Keil C
Trang 6Báo cáo tiểu
CHƯƠNG I: TỔNG QUAN VỀ HỆ THỐNG NHÚNG
1.1 Giới thiệu về hệ thống nhúng
1.1.1 Khái niệm về hệ thống nhúng
Hệ thống nhúng là hệ thống bao gồm ít nhất một phần tử lập trình được, thường là các vi xử
lý (VXL) hoặc vi điều khiển (VĐK), trừ một số thiết bị như máy tính PC, Laptop, điện thoại thôngminh
Ví dụ:
Các thiết bị gia dụng: TV, máy giặt tủ lạnh, máy rửa bát mini , máy ảnh, camera, cảnh báochống trộm, cửa cuốn
Trong công nghiệp: robot, dây chuyền tự động
Các thiết thông tin liên lạc: bộ đàm, điện thoại di động, kiểm soát dẫn đường, khí tượng, dẫn
Hệ thống điều khiển trên phương tiện giao thông: phanh, phun xăng, quản lý động cơ, lái tựđộng
Thiết bị y tế: chuẩn đoán hình ảnh, sinh hóa, dao mổ điện tử
Quân sự: ra đa, định vị, dẫn đường, vũ khí có điều khiển
1.1.3 Các đặc điểm cơ bản của hệ thống nhúng
Các hệ thống nhúng được thiết kế để thực hiện một số nhiệm vụ chuyên dụng Không đóng vaitrò là các hệ thống máy tính đa chức năng Có thể đòi hỏi ràng buộc về tính hoạt động thời gianthực để đảm bảo độ an toàn và tính ứng dụng Một số hệ thống không đòi hỏi hoặc ràng buộcchặt chẽ Một hệ thống nhúng thường không phải là một khối riêng biệt mà là một hệ thống
Trang 7Báo cáo tiểu
phức tạp nằm trong thiết bị mà nó điều khiển Phần mềm được viết cho các hệ thống nhúngđược gọi là firmware và được lưu trữ trong các chip bộ nhớ chỉ đọc (read-only memory) hoặc
bộ nhớ flash
Phần mềm thường chạy với số tài nguyên phần cứng hạn chế:
Không có bàn phím, màn hình hoặc có nhưng với kích thước nhỏ
Hệ điều hành thường sử dụng DOS, Linux, NetBSD hoặc các hệ điều hành nhúng thời gianthực như QNX hay VxWorks
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:
Hệ thống on-chip (System on a chip –SoC)
Một chíp ASIC (application - specific integrated circuit), sau đó nhân CPU được mua và thêmvào như một phần của thiết kế chip
Công cụ phát triển:
Các trình biên dịch (compilers)
Các công cụ gỡ rối (debuggers)
Các công cụ mô phỏng (simulators, emulators)
Một hệ thống nhúng có thể có ngôn ngữ lập trình và công cụ thiết kế riêng của nó hoặc sử dụng
và cải tiến từ một ngôn ngữ đã có sẵn
Các công cụ phần mềm có thể được tạo ra bởi các công ty phần mềm chuyên dụng
Hoặc chuyển đổi từ các công cụ phát triển phần mềm GNU
Vấn đề độ tin cậy của hệ thống:
Thường được kỳ vọng là sẽ chạy hàng năm trời liên tục mà không bị lỗi hoặc có thể khôi phục
hệ thống khi gặp lỗi
Các phần mềm hệ thống nhúng được phát triển và kiểm thử một cách cẩn thận
Trang 8Báo cáo tiểu
Các thiết bị rời không đáng tin cậy như ổ đĩa, thường bị hạn chế sử dụng
Khôi phục hệ thống khi gặp lỗi có thể được thực hiện bằng cách sử dụng các kỹ thuật nhưwatchdog timer
Hệ thống không thể ngừng để sửa chữa một cách an toàn: các hệ thống không gian, hệ thốngdây cáp dưới đáy biển, các đèn hiệu dẫn đường Giải pháp là chuyển sang sử dụng các hệ thốngcon dự trữ hoặc các phần mềm cung cấp một phần chức năng
Hệ thống phải được chạy liên tục vì tính an toàn: các thiết bị dẫn đường máy bay, thiết bị kiểmsoát độ an toàn trong các nhà máy hóa chất, điện lực Giải pháp đưa ra là lựa chọn backup hệthống
Hệ thống không thể ngừng để sửa chữa một cách an toàn: các hệ thống không gian, hệ thốngdây cáp dưới đáy biển, các đèn hiệu dẫn đường Giải pháp là chuyển sang sử dụng các hệ thốngcon dự trữ hoặc các phần mềm cung cấp một phần chức năng
Hệ thống phải được chạy liên tục vì tính an toàn: các thiết bị dẫn đường máy bay, thiết bị kiểmsoát độ an toàn trong các nhà máy hóa chất, điện lực Giải pháp đưa ra là lựa chọn backup hệthống
1.1.4 Những yêu cầu cho việc phát triển một hệ thống nhúng
Tổng quan về thiết kế các hệ nhúng
Mô hình hoá hệ thống: Mô tả các khối chức năng với các đặc tính và thuật toán xử lý
Chi tiết hoá các khối chức năng
Phân bố chức năng cho phần cứng và mềm (HW-SW)
Đồng bộ hoạt động của hệ thống
Cài đặt các chức năng thiết kế vào phần cứng (hardware) và phần mềm (software) hoặcfirmware
Cách thiết kế cổ điển:
Các chức năng phần mềm (SW) và phần cứng (HW) được xác định trước
Các bước thiết kế chi tiết được tiến hành một cách độc lập ở hai khối
Hiện nay:
Các hệ thống nhúng sử dụng đồng thời nhiều công nghệ như vi xử lý, DSP, mạng và các chuẩnphối ghép, các giao thức
Nay đòi hỏi có khả năng thay đổi mềm dẻo hơn trong quá trình thiết kế 2 phần HW và SW
Quá trình thiết kế SW và HW phải phối hợp với nhau chặt chẽ
Trang 9Báo cáo tiểu
H nh 3: Những yêu cầu để phát triển một hệ thống nhúng
Trang 10Báo cáo tiểu
Một thiết bị điện tử có chứa ít nhất một bộ xử lý chủ (master processor) có thể bổ sung các bộ
xử lý tớ (slave processors) cùng làm việc và điều khiển bởi bộ xử lý chủ
Slave processors có thể tham gia và các chỉ lệnh của master processor hoặc thi hành quản lý bộnhớ, các bus và các thiết bị vào ra
Hệ thống nhúng được thiết kế xung quanh bộ xử lý chủ
Các bộ vi xử lý chứa một lượng nhỏ bộ nhớ tích hợp và thành phần vào ra (I/O) Các bộ vi điềukhiển có phần lớn bộ nhớ hệ thống và các thành phần vào ra tích hợp trên chip
Các bộ xử lý nhúng có thể tách thành các nhóm dựa trên kiến trúc Khác biệt giữa các nhómkiến trúc này là tập hợp các mã máy hướng dẫn các bộ xử lý trong các nhóm kiến trúc có thểthực thi
Bộ nhớ:
Trên hệ thống có thể có nhiều loại bộ nhớ khác nhau
Các phần mềm cũng chạy trên các loại bộ nhớ khác nhau
Nền tảng nhúng có sự phân cấp bộ nhớ, 1 tập hợp gồm các loại bộ nhớ khác nhau, mỗi loại đều
có tốc độ, kích cỡ và cách sử dụng riêng biệt
Trang 11Báo cáo tiểu
H nh 6: Level bộ nhớ trong vi điều khiển
Bộ nhớ sơ cấp có thể được tích hợp sẵn trong bộ xử lý, như các thanh ghi và các loại bộ nhớ sơcấp, là nơi mà bộ nhớ có thể kết nối trực tiếp hay tích hợp trong bộ xử lý như ROM, RAM vàlevel-1 cache
Bộ nhớ ngoài: thường dùng để lưu trữ một lượng dữ liệu ổn định, và/hoặc dự phòng dữ liệu,trong một khoảng thời gian dài bất định bộ nhớ cấp2/ cấp3 (như CDROM, ổ cứng, ổ từ…)
Hệ thống Bus:
Bus hệ thống: kết nối bộ nhớ ngoài và bộ nhớ đệm đến CPU chỉ và/hoặc cầu nối đến bus khác
Bus Backplane: kết nối bộ nhớ, CPU, IO trên 1 bus
Bus I/O: phần mở rộng của hệ thống bus để kết nối các thành phần còn lại cho CPU với nhau,đến hệ thống bus qua cầu nối và/hoặc đến các hệ thống nhúng của riêng mình, qua cổng thôngtin I/O
H nh 4: Kiến trúc hệ thống Bus
PCMCIA, PCI, IDE, SCSI, USB, I2C, SPI
Cổng vào/ra (I/O): Là thiết bị chịu trách nhiệm di chuyển thông tin đến và đi của bảng mạch đến thiết bị vào/ra kết nối tới một hệ thống nhúng
Trang 12Báo cáo tiểu
Thiết bị ra nhận dữ liệu từ những bộ phận bảng mạch I/O và hiển thị dữ liệu đó theo một sốcách thức, ví dụ : in dữ liệu ra giấy, in ra đĩa, hiển thị lên màn hình hoặc là nhấp nháy đèn LED
Thiết bị vào ví dụ như chuột, bàn phím hoặc là điều khiển từ xa truyền dữ liệu đến bảng mạch I/O
Dữ liệu có thể được truyền nối tiếp hoặc song song, đồng bộ hoặc không đồng bộ, trong 1chiều, 2 chiều lần lượt, 2 chiều đồng thời
Chuyển đổi tương tự/số:
Flash A/D converter
Trang 13Báo cáo tiểu
1.2.2 Các thành phần phần mềm của hệ thống nhúng
Trình điều khiển thiết bị:
Phần lớn các phần cứng nhúng cần phần mềm khởi tạo và quản lý
Phần mềm giao diện và quản lý phần cứng gọi là trình điều khiển thiết bị
Trình điều khiển thiết bị quản lý việc truy cập tới phần cứng của các lớp phần mềm cao hơn,
Liên kết giữa phần cứng và OS, middleware, và lớp ứng dụng
Hệ điều hành nhúng:
Là một sự tùy chọn trong hệ thống nhúng
Trong phân lớp, OS nằm trên driver hoặc BSP (board support package)
Có 2 nhiệm vụ chính: tạo một lớp trừu tượng của phần cứng, quản lý các hệ thống phần cứng vàphần mềm
Tối thiểu có một nhân bao gồm các tính năng chính của hệ điều hành (kernel)
Middleware:
Middleware là phần mềm hệ thống bất kì, không chỉ là một bộ phận chính của hệ điều hành, các
bộ điều khiển thiết bị, hay các phần mềm ứng dụng
Middleware thường là phần mềm trung gian giữa các phần mềm ứng dụng với bộ phận chínhhay là phần mềm điều khiển thiết bị
Middleware cũng là phần mềm trung gian và điều khiển các phần mềm ứng dụng khác
1.3 Hệ điều hành thời gian thực
Khái niệm hệ thống thời gian thực: Một hệ điều hành thời gian thực (tiếng Anh: real-timeoperating system, viết tắt: RTOS) là một hệ điều hành (OS) nhằm phục vụ các ứng dụng thời gianthực, với việc xử lý dữ liệu đầu vào mà không có sự chậm trễ của bộ đệm (buffer) Các yêu cầu vềthời gian xử lý (bao gồm cả sự chậm trễ của hệ điều hành) được tính bằng phần mười của giâyhoặc bằng thời gian ngắn hơn nữa Một hệ thống thời gian thực là một hệ thống giới hạn thời gianvới các các ràng buộc thời gian cố định được định nghĩa rõ ràng Quá trình xử lý phải được thựchiện trong một khoản thời gian cố định, nếu không thì hệ thống sẽ gặp sự cố Việc này có thể được
Trang 14Báo cáo tiểu
thực hiện thông qua cơ chế hướng sự kiện (event-driven) hoặc chia sẻ thời gian (time-sharing).Các hệ thống hướng sự kiện sẽ chuyển đổi giữa các tác vụ (task) nhiệm vụ dựa trên độ ưu tiên củachúng trong khi các hệ thống chia sẻ thời gian sẽ chuyển đổi các tác vụ dựa trên ngắt của xungnhịp Phần lớn các hệ điều hành thời gian thực đều sử dụng giải thuật pre-emptive scheduling (tạmdịch: lập lịch trước)
Theo nghĩa đen, hệ thống phải phản ứng tức thì, thích hợp theo yêu cầu Theo đúng ý nghĩa,thời gian thực của một sự kiện nghĩa là nó xảy ra ngay lập tức
1.3.1 Yêu cầu chung cho các hệ điều hành thời gian thực
Hệ thống thời gian thực cần phải tin cậy và chính xác Đối với các hệ thống điều khiển như trong ô
tô, trong dây chuyển sản xuất, độ chính xác rất quan trọng
POSIX 1003.1b định nghĩa thời gian thực cho hệ điều hành là khả năng của hệ điều hành để cungcấp mức độ của dịch vụ trong một thời gian giới hạn
Các tính chất cần thiết của một RTOS:
Thời gian thực cứng (hard real-time):
Một hệ thống thời gian thực cứng cần một sự đảm bảo về thời gian đáp ứng trong trường hợpxấu nhất
Cả hệ thống bao gồm hệ điều hành, ứng dụng, phần cứng… phải được thiết kế đảm bảo cácyêu cầu về thời gian đáp ứng Nếu không có thể sẽ có những hậu quả nghiêm trọng
Ví dụ như các hệ thống quốc phòng, các hệ thống điều khiển xe cộ hoặc máy bay, các thiết bị ytế…
Thời gian thực mềm (soft real-time):
Đối với hệ thống thời gian thực mềm, việc đáp ứng yêu cầu về thời gian không phải lúc nàocũng cần thiết
Ví dụ như hệ thống xem phim, thỉnh thoảng có thể hệ thống bị treo, hoặc giật hình Những sự
cố này không có hậu quả lớn
Trang 15Báo cáo tiểu
Trễ ngắt (Interrupt latency): Thời gian trễ ngắt là thời gian từ khi một ngắt từ phần cứng xảy rađến khi hàm xử lý ngắt chạy Một hệ điều hành thời gian thực cần có trễ ngắt có thể đoán được
và thường càng nhỏ càng tốt
Trễ lập lịch (Scheduler latency): Đây là thời gian bắt đầu từ khi tác vụ có khả năng chạy đếnkhi tác vụ thực sự chạy Một hệ điều hành thời gian thực cần có trễn lập lịch có thể xác địnhđược
Đồng bộ và thông tin giữa các process (Interprocess communication and synchronization): Kiểuthông tin phổ biến nhất giữa các tác vụ trong một hệ thống nhúng là gửi các bản tin Một hệđiều hành thời gian thực cần có một cơ chế xử lý bản tin ở thời gian không đổi
Phân phối bộ nhớ động (Dynamic memory allocation): Một hệ điều hành thời gian thực cầncung cấp các hàm cung cấp bộ nhớ với thời gian cố định:
Trang 16Báo cáo tiểu
1.3.2 Các chức năng chính của phần lõi trong hệ điều hành
Hạt nhân chính là phần lõi của hệ điều hành Nó được sử dụng để phục vụ cho các bộ quản lýquá trình, bộ lập lịch bộ quản lý tài nguyên và bộ quản lý vào ra Phần hạt nhân đảm nhiệmchức năng lập lịch, đồng bộ và bảo vệ hệ thống bởi việc sử dụng sai, xử lý ngắt…Chức năngđiều khiển chính của nó là phục vụ điều khiển phần cứng bao gồm ngắt, các thanh ghi điều khiển,các từ trạng thái và các bộ định thời gian Nó nạp các phần mềm điều khiển thiết bị để cung cấpcác tiện ích chung và phối hợp với các hoạt động vào ra với hệ thống Phần hạt nhân có vai tròđiều khiển rất quan trọng để đảm bảo tất cả các phần của hệ thống có thể làm việc ổn định vàthống nhất
Hai kiến trúc thiết kế phần hạt nhân kinh điển nhất là kiến trúc vi hạt nhân và đơn hạt nhân(monolithic)
Vi hạt nhân: Các vi hạt nhân cung cấp các chức năng điều hành cơ bản cốt lõi (thô) theo cơ chếcác module tương đối độc lập đảm nhiệm các tác vụ cụ thể và chuyển rời rất nhiều các dịch vụđiển hình điều hành hệ thống thực thi trong không gian người sử dụng Nhờ cơ chế này mà cácdịch vụ có thể được khởi tạo hoặc cấu hình lại mà không nhất thiết phải khởi tạo lại toàn bộ hệthống Kiến trúc vi hạt nhân cung cấp độ an toàn cao bởi vì dịch vụ hệ thống chạy ở tầng người sửdụng với hạn chế về truy nhập vào tài nguyên của hệ thống và có thể được giám sát Kiến trúc vihạt nhân có thể được xây dựng một cách mềm dẻo để phù hợp với cấu hình phần cứng khác nhaumột cách linh hoạt hơn so với kiểu kiến trúc hạt nhân monilithic Tuy nhiên do tính độc lập tươngđối giữa các module trong vi hạt nhân nên cần thiết phải có một cơ chế trao đổi thông tin haytruyền thông giữa các module đó vì vậy có thể là lý do làm chậm tốc độ và giảm tính hiệu quảhoạt động của hệ thống Đặc điểm nổi bật và cốt lõi của kiến trúc vi hạt nhân là kích thước nhỏ và
dễ dàng sửa đổi cũng như xây dựng linh hoạt hơn Các dịch vụ thực thi ở tầng trên của hạt nhân vìvậy đạt được độ an toàn cao Kiến trúc vi hạt nhân được phát triển mạnh mẽ trong các hệ thống
đa xử lý ví dụ như Windows 2000, Mach và QNX
Đơn hạt nhân: Kiểu kiến trúc monolithic cung cấp tất cả chức năng/dịch vụ chính yếu thôngqua một qua trình xử lý đơn lẻ Chính vì vậy kích thước của chúng thường lớn hơn kiểu kiến trúc
vi hạt nhân Loại hình kiến trúc này thường được áp dụng chủ yếu cho các phần cứng cụ thể màhạt nhân monolithic có sự tương tác trực tiếp với phần cứng nhờ vậy mà khả năng tối ưu cũng dễdàng hơn so với áp dụng kiểu kiến trúc vi hạt nhân Chính vì vậy cũng là lý do tại sao kiến trúcmonolithic không thể thay đổi mềm dẻo linh hoạt như kiểu vi hạt nhân Ví dụ điển hình về loạihình kiến trúc hạt nhân monolithic bao gồm Linux, MacOS, và DOS