Chương 1. Tổng quan về hệ thống nhúng 1. Hệ thống nhúng Hệ thống nhúng (Embedded system) là một hệ thống tính toán có khả năng tự trị được nhúng vào trong một môi trường hay một hệ thống lớn hơn. Đó là các hệ thống tích hợp cả phần cứng và phần phềm phục vụ các bài toán chuyên dụng.
Một hệ thống được nhúng có thể chứa nhiều hệ thống nhúng khác [7]. 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. Trong một số trường hợp, hệ nhúng cũng có thể hoạt động như một hệ thống tồn tại độc lập.
Ví dụ như bộ định tuyến router. Bộ định tuyến được xây dựng sử dụng bộ vi xử lý đặc biệt, bộ nhớ, các cổng giao tiếp mạng và phần mềm cài đặt thuật toán định hướng các gói tin. Theo đó, bộ định tuyến làm nhiệm vụ là định hướng các gói tin đến từ một cổng và tới một cổng khác, có thể tồn tại độc lập [9]. Phần mềm nhúng Phần mềm nhúng là phần mềm tích hợp trong các hệ thống nhúng.
Mục đích của phần mềm nhúng nhằm điều khiển phần cứng, cho phép đáp ứng tương tác người dùng hoặc cung cấp môi trường để phát triển các phần mềm nhúng tích hợp khác. Phần mềm nhúng tạo nên phần hồn, phần trí tuệ của các sản phẩm nhúng. Phần mềm nhúng ngày càng có tỷ lệ giá trị cao trong giá trị của các sản phẩm nhúng. Hiện nay phần lớn các phần mềm nhúng nằm trong các sản phẩm truyền thông và các sản phẩm điện tử tiêu dùng (consumer electronics), tiếp đến là trong các sản phẩm ô tô, phương tiện vận chuyển, máy móc thiết bị y tế, các thiết bị năng lượng, các thiết bị cảnh báo bảo vệ và các sản phẩm đo và điều khiển.
Phần mềm nhúng có thể có các mức kiến trúc khác nhau tuỳ theo yêu cầu cụ thể của hệ thống. Dưới đây là một số kiến trúc phần mềm nhúng với độ phức tạp tăng dần [7]: - Kiến trúc xoay vòng RR (Round-Robin). - Kiến trúc xoay vòng kết hợp với ngắt. Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Học viên: Phạm Văn Hưởng TIEU LUAN MOI download : skknchat@gmail.com Luận văn Thạc sĩ 10 Môi trường phát triển phần mềm nhúng cho các thiết bị di động - Kiến trúc lập lịch hàng đợi chức năng.
- Kiến trúc hệ điều hành thời gian thực: là kiến trúc phức tạp đóng vai trò trung gian giao tiếp với phần cứng và làm môi trường cung cấp các dịch vụ để tích hợp các phần mềm nhúng khác. Hệ thống nhúng thời gian thực Hệ thống thời gian thực: là hệ thống phải đáp ứng công việc trong một giới hạn thời gian nào đó, việc vượt quá thời gian có thể gây ra hậu quả nghiêm trọng hoặc kết quả công việc không có ý nghĩa. Do đó tính đúng đắn của toàn bộ hệ thống phụ thuộc cả vào tính đúng đắn về chức năng và tính đúng đắn về thời gian. Ở dạng đơn giản, các hệ thống thời gian thực có thể được định nghĩa là hệ thống đáp ứng các sự kiện bên ngoài trong một khoảng thời gian nào đó, và thời gian đáp ứng phải được đảm bảo.
Các sự kiện bên ngoài có thể là sự kiện đồng thời hoặc không đồng thời. Việc đáp ứng các sự kiện bên ngoài bao gồm: phát hiện sự kiện, xử lý sự kiện và đưa ra các kết quả cần thiết trong một ràng buộc thời gian cho trước. Các ràng buộc thời gian bao gồm thời gian kết thúc hoặc cả thời gian bắt đầu và kết thúc. Hệ thời gian thực còn được gọi là hệ thống xác định bởi vì thời gian đáp ứng cho một sự kiện được giới hạn.
Các tác vụ đáp ứng cho sự kiện còn được gắn với một độ ưu tiên cho trước. Hơn nữa, hệ thống thời gian thực có khả năng khả chuyển kém khi thay đổi môi trường. Phân loại hệ thống thời gian thực [17]: Trong hệ thời gian thực, mọi công việc tính toán đều phải hoàn thành trước thời gian cho phép, được gọi là deadline. Nói cách khác, hệ thống thời gian thực bị ràng buộc về thời gian và được điều khiển bởi các deadline.
Về mặt này, hệ thời gian thực có thể được chia thành hệ thời gian thực mềm và hệ thời gian thực cứng. - Hệ thống thời gian thực cứng: chỉ cho phép chênh lệch với deadline trong một mức độ dao động gần như bằng không. Nếu không hoàn thành đúng so với deadline thảm họa có thể xảy ra và không còn cách nào có thể khôi phục được hệ thống. Ví dụ hệ thống nhúng trong điều khiển máy bay là hệ thời gian thực cứng.
- Hệ thống thời gian thực mềm: cho phép một mức độ chênh lệch nhất định. Ví dụ đầu đọc DVD là hệ thời gian thực mềm. Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Học viên: Phạm Văn Hưởng TIEU LUAN MOI download : skknchat@gmail.com Luận văn Thạc sĩ 11 Môi trường phát triển phần mềm nhúng cho các thiết bị di động Hệ nhúng thời gian thực: là một hệ thống nhúng đáp ứng tính thời gian thực. Có thể hiểu hệ thống nhúng thời gian thực là phần giao nhau giữa hệ thống nhúng và hệ thống thời gian thực.
Môi trường của hệ thống tạo ra các sự kiện bên ngoài. Những sự kiện này được nhận bởi một vài thành phần của hệ thống. Việc xử lý có thể do các thành phần khác đảm nhiệm. Hệ nhúng thời gian thực được mô tả một cách trực quan trong Hình 1.1 sau: Hệ nhúng Hệ thời Hệ nhúng thời gian thực gian thực Hình 1.
Mô tả hệ nhúng thời gian thực Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Học viên: Phạm Văn Hưởng TIEU LUAN MOI download : skknchat@gmail.com Luận văn Thạc sĩ 12 Môi trường phát triển phần mềm nhúng cho các thiết bị di động 1. Đặc điểm khác biệt giữa phần mềm nhúng và phần mềm thông thường trên máy tính cá nhân Phạm vi ứng dụng của phần mềm nhúng đa dạng hơn nhiều so với các ứng dụng trên máy tính thông thường. Phần mềm nhúng tồn tại trong mọi lĩnh vực đời sống, nó có các mức kiến trúc phức tạp khác nhau cũng như chạy trên rất nhiều các kiến trúc phần cứng khác nhau. Sự khác nhau giữa việc phát triển các phần mềm nhúng và phần mềm chạy trên máy tính thông thường có thể liệt kê một số điểm sau [7]: - Hệ thống nhúng được thiết kế cho các tác vụ đặc biệt, trong khi các máy tính là các nền tảng tính toán và xử lý chung.
Một số phần mềm nhúng đơn giản được lập trình chỉ để thực hiện một vài tác vụ. Thay đổi các tác vụ có thể đòi hỏi phải thiết kế lại hệ thống và thay đổi toàn bộ hệ thống. - Hệ thống nhúng được hỗ trợ bởi một số lượng lớn các vi xử lý và kiến trúc vi xử lý. - Hệ thống nhúng thường được cân nhắc cùng với chi phí phát triển.
- Các hệ thống nhúng được thiết kế cùng với phần cứng được chỉ định sẵn. Chính vì thế, tính năng của hệ thống luôn được cân nhắc cùng với chi phí phát triển. Ngoài ra, với một số tác vụ cần phải có những phần cứng chuyên biệt. - Hệ thống nhúng yêu cầu khả năng đáp ứng nhanh và phần nhiều có các ràng buộc thời gian thực.
- Nếu hệ thống nhúng sử dụng hệ điều hành, thì hầu như nó phải sử dụng hệ điều hành thời gian thực. Giống như vi xử lý nhúng, hệ điều hành nhúng cũng có rất nhiều và có cách quản lý khác nhau. Tuy nhiên, mục tiêu quan trọng là nó phải giải quyết các vấn đề khắt khe về mặt thời gian và chia sẻ tài nguyên. - Khó khăn khi xử lý lỗi phần mềm nhúng: Với phần mềm nhúng, việc dò lỗi chương trình thường thông qua các bộ mô phỏng thiết bị.
- Hệ thống nhúng có ràng buộc về điện năng: Với nhiều hệ thống nhúng, vấn đề năng lượng được coi là quan trọng hàng đầu. Phương pháp đầu tiên để duy trì năng lượng là tắt bớt các phần hoặc cả hệ thống khi có thể tắt được. Có thể là cả vi xử lý. Hầu hết các vi xử lý cho hệ thống nhúng, có ít nhất một kiểu tiết kiệm năng lượng.
Phần mềm thường đặt Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Học viên: Phạm Văn Hưởng TIEU LUAN MOI download : skknchat@gmail.com Luận văn Thạc sĩ 13 Môi trường phát triển phần mềm nhúng cho các thiết bị di động vi xử lý trong những chế độ này với các chỉ thị đặc biệt hoặc ghi một giá trị tới thanh ghi điều khiển bên trong vi xử lý. - Hệ thống nhúng chạy trong môi trường có điều kiện khắt khe: Hệ thống nhúng có mặt ở mọi nơi và có thể được thiết kế để làm mọi thứ. Chính vì thế, khi thiết kế hệ thống, phải đặc biệt chú trọng tới các yếu tố phần cứng có khả năng chịu được điều kiện môi trường. Ứng dụng của hệ nhúng Hiện nay các phần mềm nhúng có mặt hầu hết trong các sản phẩm truyền thông, các sản phẩm điện tử tiêu dùng, các phương tiện vận chuyển, máy móc thiết bị y tế, các thiết bị năng lượng, các thiết bị cảnh báo bảo vệ và các sản phẩm đo và điều khiển.
Các sản phẩm công nghiệp và tiêu dùng thường xuyên đổi mới và ngày càng có nhiều chức năng tiện dụng và thông minh hơn. Các chức năng này phần lớn do các chương trình nhúng tạo nên [2]. Một số lĩnh vực điển hình có thể liệt kê dưới đây: - Hệ thống nhúng trong các thiết bị gia dụng như: điều khiển ti vi, điều hoà, hệ thống camera, hệ thống chuông cảnh báo, … - Trong lĩnh vực trí tuệ nhân tạo: tàu vũ trụ không người lái, robot, … - Trong các phương tiện vận chuyển: lái xe tự động, điều khiển máy bay. - Trong các cơ quan, doanh nghiệp: hệ thống đọc thẻ ra vào, … - Trong thương mại: máy ATM, smart Card, … - Trong thông tin liên lạc: các ứng dụng nhúng đa dạng trên điện thoại di động.
Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Học viên: Phạm Văn Hưởng TIEU LUAN MOI download : skknchat@gmail.com Luận văn Thạc sĩ 14 Môi trường phát triển phần mềm nhúng cho các thiết bị di động Chương 2. Hệ điều hành thời gian thực 2.