Bạn đã từng nghe cụm từ lập trình nhúng hay là hệ thống nhúng, nhưng bạn chưa biết hoặc đang lơ mơ về nó, thì hôm nay hãy cùng tìm hiểu xem nó là gì nhé! Trong bài viết này mình giới thiệu tổng quan về hệ thống nhúng để chúng ta cùng hiểu hơn về nó
Hệ thống là gì
Hệ thống là một sự sắp xếp trong đó tất cả các đơn vị cấu thành của nó hoạt động cùng nhau theo theo một trình tự hoặc quy tắc. Mục đích nhằm thực hiện một hoặc nhiều công việc theo một kế hoạch cố định. Trong một hệ thống, tất cả các thành phần đơn vị cấu thành phụ thuộc vào nhau.
Hệ thống nhúng là gì
Tên gọi theo tiếng Anh là Embedded System, Embedded có nghĩa là một thứ được gắn, được tích hợp vào một thứ khác. Hệ thống nhúng Embedded System về cơ bản là một hệ thống phần cứng điện tử có phần mềm hoạt trong đó. Hệ thống nhúng có thể là một hệ thống độc lập và nó có thể là một phần của hệ thống lớn hơn và được “nhúng” vô hệ thống lớn hơn đó. Hệ thống nhúng được thiết kế để thực hiện một nhiệm vụ cụ thể, có thể hoàn thành nhiệm vụ hoặc tham gia vào hoàn thành một nhiệm vụ nào đó trong hệ thống lớn hơn.
Lấy ví dụ: trên chiếc laptop của bạn, bàn phím bạn đang gõ hoặc con chuột bạn đang di chuyển, chúng cũng là Hệ thống nhúng. Chúng có phần cứng, được điều khiển bằng vi mạch điện tử. Về chức năng thì bàn phím phục vụ mục đích chuyên biệt là thu nhận tác động của người gõ phím để chuyển thành tín hiệu số gửi cho CPU xử lý. Trong đó, bàn phím lại là một hệ thống nhúng nhỏ được “nhúng” vào trong tổng thể một hệ thông lớn hơn đó là chiếc labtop. Tuy nhiên, bộ xử lý chính CPU và card đồ họa trên laptop lại ở một lĩnh vực cao hơn hệ thống nhúng, để phân biệt hãy xem qua phần đặc điểm của hệ thống nhúng.
Một hệ thống nhúng có ba thành phần:
• Nó có phần cứng.
• Nó có phần mềm ứng dụng.
• Nó có thể có Hệ điều hành thời gian thực (RTOS) giám sát phần mềm và cung cấp cơ chế cho phép bộ xử lý chạy một quy trình theo lịch trình, tức là các task được lập trình có trình tự. Một Hệ thống nhúng quy mô nhỏ có thể không có RTOS
Chốt lại, chúng ta có thể định nghĩa Hệ thống nhúng Embedded System là một hệ thống điều khiển dựa trên Vi mạch điện tử, Điều khiển bằng phần mềm, có thể phục vụ theo thời gian thực và chuyên về đảm nhiệm một nhiệm vụ cố định.
Đặc điểm của hệ thống nhúng
- Hệ thống điện tử kết hợp HW-SW: đó là sự kết nối giữa phần cứng và phần mềm. Phần cứng được thiết kế là môi trường hoạt động và tương tác cho phần mềm và được tối ưu cho hiệu suất và bảo mật. Phần mềm được lập trình trên nền phần cứng nhằm thực thi tính năng.
- Phần mềm đặt trên trên bộ vi xử lý hoặc vi điều khiển: đây thường là các IC chức năng hoặc các con chip xử lý. Các IC này hoặc các con chip đã bao gồm bộ nhớ cho phép phần mềm của được “nhúng” vào. Đôi khi có thể có cả những bộ nhớ ngoại (external) tùy ứng dụng và yêu cầu.
- Có sự kết nối: hệ thống có các thiết bị ngoại vi được kết nối để kết nối các thiết bị đầu vào và đầu ra. Nó có thể có các giao tiếp truyền thông (protocol) để giao tiếp với thiết bị hay hệ thống khác cùng chuẩn giao tiếp.
- Hoạt động độc lập - Một Hệ thống nhúng thường thực hiện một nhiệm vụ chuyên biệt và thực hiện lặp đi lặp lại cùng một hoạt động. Ví dụ: Một thiết bị đo nhiệt độ có thể đo hoạt động đọc lập chỉ để đo nhiệt độ và gửi ra tín hiệu đó mà không cần sự hỗ trợ thêm của các thiết bị khác.
- Ràng buộc chặt chẽ và có tính tin cậy: Tất cả các hệ thống máy tính đều có những ràng buộc về số liệu thiết kế. Chỉ số thiết kế là thước đo các tính năng của triển khai như chi phí, kích thước và hiệu suất của nó. Nó phải có kích thước vừa đủ với ứng dụng hoặc vị trí lắp ráp trong hệ thống, phải hoạt động đủ nhanh để xử lý dữ liệu và tiêu thụ điện năng một cách tối ưu
- Tương tác được với thời gian thực: Nhiều Hệ thống nhúng phải liên tục phản ứng với những thay đổi trong môi trường của hệ thống và phải tính toán các kết quả nhất định trong thời gian cố định mà sự chậm trễ chỉ được nằm trong giới hạn cho phép. Ví dụ, tôi công tác trong lĩnh vực Automotive software, đối với 1 sản phẩm thì sẽ có những yêu cầu nghiêm ngặt về thời gian xử lý 1 task, chẳng hạn nó phải không được dùng quá 1ms cho việc tính toán, hoặc hệ thống có khả năng trả lời gói tin đúng 5ms một lầ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 (laptop). Chẳng hạn chiếc laptop của bạn có thể trang bị CPU với xung nhịp lên tới hơn 2GHz, trong khi đó những con vi điều khiển chi có xung nhịp (clock) hàng MHz hay vài trăm MHz.
Kiến trúc cơ bản của một hệ thống nhúng
Kiến trúc của Hệ thống nhúng bao gồm các thành phần cơ bản sau:
Input processing circuit: Một số dạng tín hiệu ngõ vào cần được xử lý, khuếch đại hoặc thay đổi phủ hợp trước khi đưa vào xử lý. Mạch xử lý tín hiệu ngõ vào sẽ làm việc đó. Chẳng hạn Device 1 là một cảm biến trả về tín hiệu 4mA đến 20mA, cần phải có mạch chuyển về tín hiệu điện áp để bộ ADC của vi điều khiển đọc được.
On board sensors: Một số cảm biến được tích trực tiếp trong Hệ thống nhúng. Ví dụ cảm biến nhiệt độ của thiết bị đo nhiệt độ, cảm biến hay mạch đo điện áp …
Processor: Bộ xử lý trung tâm này gồm các phần: Phần mềm, Bộ nhớ, Hệ điều hành. Là nơi chạy các tác vụ, xử lý các ngõ vào, tính toán ngõ ra tương ứng nhằm đáp ứng được nhiệm vụ và thời gian thực.
Output converting circuit: Hệ thống nhúng có thể dùng với chức năng điều khiển các thiết bị chấp hành khác. Chẳng hạn trong trường hợp Device 2 là thiết bị cần điều khiển có tầm tín hiệu khác biệt thì mạch chuyển đổi tín hiệu ngõ ra sẽ giúp tương thích giữa mạch điều khiển và thiết bị. Ví dụ cho thiết bị cần điều khiển: Động cơ bước, bóng đè công suất cao …
External Peripheral / Memory / Tranceiver: Tùy thuộc vào yêu cầu mà một số Hệ thống nhúng cần thêm phần Thiết bị ngoại vi, Bộ nhớ ngoài hoặc Mạch thu phát tín hiệu chuyên biệt được tích hợp sẵn trên hệ thống. Chẳng hạn, Ngõ ra giao tiếp mong muốn là RS485, chân của con vi điều khiển chỉ xuất mức tín hiệu TTL, vậy ra cần 1 con Tranceiver chuyển từ TTL sang RS485 và ngược lại.