Số 42, ngõ 178 Thái Hà, Đống Đa, Hà Nội
0985 136 895

Hệ thống nhúng là gì? Tổng quan về hệ thống nhúng

 

Hệ thống nhúng là gì?

Hệ thống nhúng là gì
Hệ thống nhúng là gì

Xuất hiện trong khoảng các năm đầu thập niên 1960, hệ thống nhúng đang dần phát triển thành 1 ngành vững mạnh mạnh mẽ trong ngành công nghệ thông báo (CNTT),  những áp dụng rộng rãi trong công nghiệp và đời sống.

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

Lập trình viên hệ thống nhúng là ai?

Khác với những lập trình viên thông thường như lập trình web hay lập trình ứng dụng (application), chỉ cần thông thạo một vài ngôn ngữ lập trình, hệ điều hành và chương trình khung (framework) là có thể làm việc có hiệu quả, một lập trình viên hệ thống nhúng phải có sự năng động và khả năng học hỏi tốt để có thể làm việc tối ưu với:

– Những bộ vi xử lý và phần cứng khác nhau: Texas Instrument, Freescale, ARM, Intel, Motorola, Atmel, AVR, Renesas…

– Các hệ điều hành khác nhau : QNX, uITRON, VxWorks, Windows CE/XP Embedded, Embedded Linux, Osek, Symbian…

– Những ngôn ngữ lập trình khác nhau : C/C++, B#, Ada, Assembly, PMC, LabView, PLC…

Các đặc điểm của hệ thống nhúng là gì?

Hệ thống nhúng là gì
Hệ thống nhúng là gì

Hệ thống nhúng thường có một số đặc điểm chung như sau:

  • Một số hệ thống đòi hỏi ràng buộc về tính hoạt động thời gian thự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ộc chặt chẽ, cho phép đơn giản hóa hệ thống phần cứng để giảm thiểu chi phí sản xuất.
  •  Hệ thống nhúng là một hệ thống máy tính. 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 phức tạp nằm trong thiết bị mà nó điều khiển.
  • Tài nguyên bị 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.
  • Những giới hạn vừa kể trên đã được khắc phục bằng các thiết kế đầy đủ tính năng và phức tạp 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.
  • 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 đó 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:
  • 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à…)

Một số ví dụ điển hình về hệ thống nhúng

Hệ thống nhúng là gì
Hệ thống nhúng là gì

Hệ thống nhúng hiện diện khắp nơi trong thế giới hiện đại.

  • Các hệ thống dẫn đường trong không lưu, hệ thống định vị toàn cầu, vệ tinh.
  • Đồ 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,…
  •  Máy móc trong văn phòng: máy photocopy, máy fax, máy in, máy scan,…
  •  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.

Những lợi ích của một hệ thống nhúng là gì?

Vì nhúng thường có một chức năng nên chúng hoạt động với mức tiêu thụ điện năng rất ít.

Với giá thành rất rẻ, hệ thống nhúng trở thành giải pháp hữu hiệu để kiểm soát các thiết bị.

Các hệ thống nhúng cũng rất ít cần bảo trì, hiếm khi cần bất kỳ thay đổi phần cứng hoặc lập trình nào. Chính vì lý do này nên rất dễ dàng tích hợp vào các thiết bị không cần dịch vụ người dùng cuối.

Bởi vì hệ thống chỉ cần hoàn thành một nhiệm vụ, nên các hệ thống nhúng rất được ưa chuộng để sử dụng trong các thiết bị không cần cập nhật để hoạt động hiệu quả.

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ệ thống nhúng là gì
Hệ thống nhúng là gì

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:

  • Vi xử lý Bộ xử lý được thiết kế riêng, chỉ bao gồm phần xử lý. Có thể thay đổi thêm bớt các thành phần ngoại vi một cách linh hoạt.
  • Vi điều khiển Được tích hợp các thành phần ngoại vi trên chip để giảm kích thước hệ thống.
  • SoC (System on Chip) Một vi mạch tích hợp cao, hỗ trợ đa nhân xử lý và nhiều giao tiếp trên 1 chip. Giúp tăng tốc thời gian thiết kế hệ thống. Sử dụng như một mạch tích hợp cho ứng dụng cụ thể (ASIC) hoặc mạch logic khả trình (FPGA)

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, QNX…
  • 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

Hệ thống nhúng là gì
Hệ thống nhúng là gì

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.

Xem thêm: Lập trình hướng đối tượng là gì? Oop với các ngôn ngữ lập trình Web

 

 

 

Leave a comment