Hệ thống nhúng

Embeded System

1. Khái niệm về hệ thống nhúng

Hệ thống nhúng 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.

Hệ thống này đòi hỏi độ ổn định và tự động hóa cao. Do sử dụng cho các nhiệm vụ chuyên biệt và được sản xuất với số lượng lớn nên chúng được thiết kế một cách tối ưu nhằm giảm thiểu kích thước cũng như giá thành sản xuất. Độ phức tạp là khác nhau theo yêu cầu của công việc mà chúng đảm nhận, 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.

2. Các đặc điểm của hệ thống nhúng

Hệ thống nhúng là một hệ thống máy tính. 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 phức tạp nằm trong thiết bị mà nó điều khiển.

Có tài nguyên giới hạn 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. Phần mềm của hệ thống nhúng được lưu trữ trên các bộ nhớ ROM, Flash và được gọi là Firmware.

Chuyên dụng 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 Hệ thống nhúng tương tác với thế giới bên ngoài với nhiều cách:

Yêu cầu chất lượng, ổn định và độ tin cậy cao Nhiều loại thiết bị nhúng có những yêu cầu rất cao về chất lượng, tính ổn định 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ộ…) Vì vậy việc phát triển hệ thống nhúng yêu cầu quy trình kiểm tra - kiểm thử rất cẩn thận. Thông thường với những hệ thống yêu cầu độ ACTIVE cao thì việc trang bị 1 hệ thống dự phòng, backup là điều chắc chắn.

Một số ví dụ điển hình về hệ thống nhúng Hệ thống nhúng hiện diện khắp nơi trong thế giới hiện đại.

Một số thiết bị nhúng thông dụng

3. 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ẽ.

4. So sánh với PC (Personal Computer)

Hệ thống nhúng Máy tính cá nhân
Chuyên dụng Đa  dụng
Tài nguyên hạn chế Nhiều tài nguyên
Kích thước nhỏ gọn Kích thước lớn
Ứng dụng ở nhiều nơi Không gian hoạt động hạn chế
Một người có thể quản lý nhiều hệ thống Mỗi người dùng một máy

5. 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:

Kiến trúc tổng thể của 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.

Nói thêm về bộ vi xử lý trong Hệ thống nhúng:

Phần mềm hệ thống

Phần mềm ứng dụng

6. 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:

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.

(Tham khảo Sectic, Wikipedia)