- Khái niệm về hệ thống nhúng
- Hệ thống nhúng là một hệ thống máy tính.
Đó là một hệ thống được tích hợp cả phần cứng và phần mềm phục vụ cho các bài toán chuyên dụng trong nhiều lĩnh vực công nghiệp, tự động hóa điều khiển, quan trắc và truyền thông.
Các hệ thống nhúng bị giới hạn nhiều hơn về phần cứng và chức năng phần mềm so với máy tính cá nhân. Giới hạn phần cứng có thể bao gồm giới hạn về khả năng xử lý, tiêu thụ điện năng, bộ nhớ, chức năng phần cứng,… Còn giới hạn phần mềm thường liên quan đến việc hỗ trợ ít ứng dụng, ứng dụng bị thu gọn tính năng, không có hệ điều hành hoặc hệ điều hành có nhiều hạn chế. Tuy nhiên, ngày nay, những giới hạn này đã được khắc phục đáng kể bằng các hệ thống nhúng được thiết kế phức tạp và đầy đủ tính năng hơn.
Hệ thống nhúng được thiết kế để thực hiện một chức năng chuyên biệt nào đó. Đây là điểm khác biệt so với các hệ thống máy tính khác như máy tính cá nhân hoặc các siêu máy tính có thể thực hiện nhiều chức năng khác nhau với những phép tính phức tạp. Chuyên dụng giúp nâng cao tính dễ sử dụng và tiết kiệm tài nguyên.
- Tương tác với thế giới thực
- Cảm nhận môi trường: cảm biến nhiệt độ, độ ẩm, ánh sáng, trọng lượng…, cảm nhận bằng tín hiệu điện (máy dò nhiễu điện từ)
- Tác động trở lại môi trường (hú còi báo động khi phát hiện khói trong tòa nhà…)
- Tốc độ tương tác phải đáp ứng thời gian thực (hệ thống còi báo hỏa, hệ thống chống trộm trên ô tô,…)
- Yêu cầu chất lượng và độ tin cậy cao
Vài dòng thiết bị nhúng có những yêu cầu rất cao về chất lượng và độ tin cậy. Lỗi của hệ thống nhúng có thể gây ra tai nạn khủng khiếp: Hệ thống điều khiển máy bay, tên lửa, hệ thống điều khiển động cơ ô tô…Lỗi trên hệ thống nhúng có thể không sửa được (vd: vệ tinh nhân tạo), nếu sửa được thì chi phí cũng rất cao (thu hồi sản phẩm hoặc thiết kế lại toàn bộ…)
- Một số ví dụ điển hình về hệ thống nhúng
- Các hệ thống dẫn đường trong không lưu, hệ thống định vị toàn cầu, vệ tinh.
- Các thiết bị gia dụng: tủ lạnh, lò vi sóng, lò nướng,…
- Các thiết bị kết nối mạng: router, hub, gateway,…
- Các thiết bị văn phòng: máy photocopy, máy fax, máy in, máy scan,…
- Các thiết bị y tế: máy thẩm thấu, máy điều hòa nhịp tim,…
- Các máy trả lời tự động
- Dây chuyền sản xuất tự động trong công nghiệp, robots.
Hình 1: Mẫu xe trong cuộc thi Micom Car Rally (chip Renesas H8)
Hình 2: Một số hệ thống nhúng thông dụng
- Các đặc điểm của hệ thống nhúng
- Hệ thống nhúng “lai”: Các thiết bị PDA, Smartphone, Netbook, … cũng có một số đặc điểm tương tự với hệ thống nhúng như hệ điều hành hoặc vi xử lý điều khiển nhưng các thiết bị này không thật sự là hệ thống nhúng, bởi vì chúng là các thiết bị đa dụng, kết nối đến nhiều thiết bị ngoại vi và tương tác với thế giới thực không chặt chẽ.
- So sánh với PC (Personal Computer)
-
|
|
|
|
|
|
|
|
Không gian hoạt động ở khắp nơi
|
Không gian hoạt động hạn chế
|
Một người có nhiều hệ thống nhúng
|
|
Kiến trúc hệ thống nhúng
Mỗi hệ thống nhúng đều có một kiến trúc thổng thể như sau:
Hình 3: Kiến trúc hệ tổng thể của một hệ thống nhúng
- Hardware:
Vi xử lý, bộ nhớ, tụ điện, điện trở, mạch tích hợp, bảng mạch in, connector, …. Tất nhiên, đây là thành phần bắt buột phải có cho tất cả các hệ thống nhúng.
- Phần mềm hệ thống:
- Không bắt buộc phải có.
- Device driver: UART, Ethernet, ADC…
- Hệ điều hành nhúng: eCos, ucLinux, VxWorks, Monta Vista Linux, BIOS…
- Quản lý bộ nhớ, quản lý tiến trình, quản lý chia sẽ tài nguyên
- Có thể tái sử dụng trên một hệ thống nhúng khác
- Phần mềm ứng dụng
- Không bắt buộc phải có.
- Quyết định hành vi (chức năng) của một hệ thống nhúng.
- Khó tái sử dụng trên một hệ thống nhúng khác.
- Thiết kế hệ thống nhúng:
Việc thiết kế hệ thống nhúng khá phức tạp và đòi hỏi người kỹ sư thiết kế phải có nhiều kinh nghiệm. Hầu hết các mô hình được sử dụng trong việc thiết kế hệ thống nhúng đều dựa trên một hoặc sự kết hợp nhiều mô hình trong các các mô hình phát triển sau:
- Mô hình big-bang: Không hề có một kế hoạch cụ thể trước và trong suốt quá trình phát triển hệ thống
- Mô hình code-and-fix: Là một mô hình khá đơn giản, chỉ thích hợp cho các chương trình nhỏ (không đòi hỏi việc bảo trì), không thích hợp với các hệ thống lớn, bao gồm 2 bước
- Viết code
- Fix các vấn đề phát sinh
- Mô hình waterfall
Trong mô hình này, quá trình phát triển hệ thống được xây dựng theo từng bước, các kết quả của một bước sẽ được sử dụng cho bước kế tiếp.
- Mô hình spiral
Quá trình phát triển hệ thống được chia thành nhiều giai đoạn. Dựa trên sự phản hồi từ các giai đoạn, kết hợp trở lại vào quá trình để lên kế hoạch cho việc thực hiện giai đoạn tiếp theo.
Nguồn: ieev.org