Hệ thống nhúng (tiếng Anh: embedded system) là một thuật ngữ để chỉ một hệ thống có khả năng tự trị được nhúng vào trong một môi trường hay hệ thống mẹ. Đó là các hệ thống tích hợp cả phần cứng và phần mềm phục vụ các bài toán chuyên dụng trong nhiều lĩnh vực công nghiệp, tự động hoá điều khiển, quan trắc và truyền tin. Đặc điểm của các hệ thống nhúng là hoạt động ổn định và có tính năng tự động hoá cao.
Hệ thống nhúng thường được phong cách thiết kế để thực thi một tính năng chuyên biệt nào đó. Khác với những máy tính đa công dụng, ví dụ điển hình như máy tính cá thể, một hệ thống nhúng chỉ thực thi một hoặc một vài tính năng nhất định, thường đi kèm với những nhu yếu đơn cử và gồm có một số ít thiết bị máy móc và phần cứng chuyên được dùng mà ta không tìm thấy trong một máy tính đa năng nói chung. Vì hệ thống chỉ được kiến thiết xây dựng cho 1 số ít trách nhiệm nhất định nên những nhà phong cách thiết kế hoàn toàn có thể tối ưu hóa nó nhằm mục đích giảm thiểu size và chi phí sản xuất. Các hệ thống nhúng thường được sản xuất hàng loạt với số lượng lớn. Hệ thống nhúng rất phong phú, đa dạng chủng loại về chủng loại. Đó hoàn toàn có thể là những thiết bị cầm tay nhỏ gọn như đồng hồ đeo tay kĩ thuật số và máy chơi nhạc MP3, hoặc những loại sản phẩm lớn như đèn giao thông vận tải, bộ trấn áp trong nhà máy sản xuất hoặc hệ thống trấn áp những máy nguồn năng lượng hạt nhân. Xét về độ phức tạp, hệ thống nhúng hoàn toàn có thể rất đơn thuần với một vi tinh chỉnh và điều khiển hoặc rất phức tạp với nhiều đơn vị chức năng, những 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 .
Các thiết bị PDA hoặc máy tính cầm tay cũng có một số đặc điểm tương tự với hệ thống nhúng như các hệ điều hành hoặc vi xử lý điều khiển chúng nhưng các thiết bị này không phải là hệ thống nhúng thật sự bởi chúng là các thiết bị đa năng, cho phép sử dụng nhiều ứng dụng và kết nối đến nhiều thiết bị ngoại vi.
Bạn đang đọc: Hệ thống nhúng – Wikipedia tiếng Việt
Hệ thống nhúng tiên phong là Apollo Guidance Computer ( Máy tính Dẫn đường Apollo ) được tăng trưởng bởi Charles Stark Draper tại phòng thí nghiệm của trường ĐH MIT. Hệ thống nhúng được sản xuất hàng loạt tiên phong là máy hướng dẫn cho tên lửa quân sự chiến lược vào năm 1961. Nó là máy hướng dẫn Autonetics D-17, được thiết kế xây dựng sử dụng những bóng bán dẫn và một đĩa cứng để duy trì bộ nhớ. Khi Minuteman II được đưa vào sản xuất năm 1996, D-17 đã được sửa chữa thay thế với một máy tính mới sử dụng mạch tích hợp. Tính năng phong cách thiết kế đa phần của máy tính Minuteman là nó đưa ra thuật toán hoàn toàn có thể lập trình lại sau đó để làm cho tên lửa đúng mực hơn, và máy tính hoàn toàn có thể kiểm tra tên lửa, giảm khối lượng của cáp điện và đầu nối điện .Từ những ứng dụng tiên phong vào những năm 1960, những hệ thống nhúng đã giảm giá và tăng trưởng can đảm và mạnh mẽ về năng lực giải quyết và xử lý. Bộ vi giải quyết và xử lý tiên phong hướng đến người tiêu dùng là Intel 4004, được ý tưởng ship hàng máy tính điện tử và những hệ thống nhỏ khác. Tuy nhiên nó vẫn cần những chip nhớ ngoài và những tương hỗ khác. Vào những năm cuối 1970, những bộ giải quyết và xử lý 8 bit đã được sản xuất, nhưng nhìn chung chúng vẫn cần đến những chip nhớ bên ngoài .Vào giữa thập niên 80, kỹ thuật mạch tích hợp đã đạt trình độ cao dẫn đến nhiều thành phần hoàn toàn có thể đưa vào một chip giải quyết và xử lý. Các bộ vi giải quyết và xử lý được gọi là những vi tinh chỉnh và điều khiển và được gật đầu thoáng rộng. Với Chi tiêu thấp, những vi tinh chỉnh và điều khiển đã trở nên rất mê hoặc để thiết kế xây dựng những hệ thống chuyên được dùng. Đã có một sự bùng nổ về số lượng những hệ thống nhúng trong toàn bộ những nghành nghề dịch vụ thị trường và số những nhà đầu tư sản xuất theo hướng này. Ví dụ, rất nhiều chip giải quyết và xử lý đặc biệt quan trọng Open với nhiều giao diện lập trình hơn là kiểu song song truyền thống lịch sử để liên kết những vi giải quyết và xử lý. Vào cuối những năm 80, những hệ thống nhúng đã trở nên thông dụng trong hầu hết những thiết bị điện tử và khuynh hướng này vẫn còn liên tục cho đến nay .
Cho đến nay, khái niệm hệ thống nhúng được nhiều người chấp nhận nhất là: hệ thống thực hiện một số chức năng đặc biệt có sử dụng vi xử lý[cần dẫn nguồn]. Không có hệ thống nhúng nào chỉ có phần mềm.
Mục lục nội dung
Các đặc thù[sửa|sửa mã nguồn]
Hệ thống nhúng thường có 1 số ít đặc thù chung như sau :• Các hệ thống nhúng được phong cách thiết kế để triển khai 1 số ít trách nhiệm chuyên được dùng chứ không phải đóng vai trò là những hệ thống máy tính đa công dụng. Một số hệ thống yên cầu ràng buộc về tính hoạt động giải trí thời hạn thực để bảo vệ độ bảo đảm an toàn và tính ứng dụng ; 1 số ít hệ thống không yên cầu hoặc ràng buộc ngặt nghèo, được 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 .• Một hệ thống nhúng thường không phải là một khối riêng không liên quan gì đến nhau mà là một hệ thống phức tạp nằm trong thiết bị mà nó tinh chỉnh và điều khiển .• Phần mềm được viết cho những hệ thống nhúng được gọi là firmware và được tàng trữ trong những chip bộ nhớ ROM hoặc bộ nhớ flash chứ không phải là trong một ổ đĩa. Phần mềm thường chạy với số tài nguyên phần cứng hạn chế : không có bàn phím, màn hình hiển thị hoặc có nhưng với kích cỡ nhỏ, dung tích bộ nhớ thấp Sau đây, ta sẽ đi sâu, xem xét đơn cử đặc thù của những thành phần của hệ thống nhúng .
Các hệ thống nhúng hoàn toàn có thể không có giao diện ( so với những hệ thống đơn nhiệm ) hoặc có khá đầy đủ giao diện tiếp xúc với người dùng tựa như như những hệ quản lý và điều hành trong những thiết bị để bàn. Đối với những hệ thống đơn thuần, thiết bị nhúng sử dụng nút bấm, đèn LED và hiển thị chữ cỡ nhỏ hoặc chỉ hiển thị số, thường đi kèm với một hệ thống menu đơn thuần .Còn trong một hệ thống phức tạp hơn, một màn hình hiển thị đồ họa, cảm ứng hoặc có những nút bấm ở lề màn hình hiển thị được cho phép triển khai những thao tác phức tạp mà tối thiểu hóa được khoảng chừng khoảng trống cần sử dụng ; ý nghĩa của những nút bấm hoàn toàn có thể đổi khác theo màn hình hiển thị và những lựa chọn. Các hệ thống nhúng thường có một màn hình hiển thị với một nút bấm dạng cần điểu khiển ( joystick button ). Sự tăng trưởng can đảm và mạnh mẽ của mạng toàn thế giới đã mang đến cho những nhà phong cách thiết kế hệ nhúng một lựa chọn mới là sử dụng một giao diện web trải qua việc liên kết mạng. Điều này hoàn toàn có thể giúp tránh được ngân sách cho những màn hình hiển thị phức tạp nhưng đồng thời vẫn cung ứng năng lực hiển thị và nhập liệu phức tạp khi cần đến, trải qua một máy tính khác. Điều này là rất là hữu dụng so với những thiết bị điều khiển và tinh chỉnh từ xa, setup vĩnh viễn. Ví dụ, những router là những thiết bị đã ứng dụng tiện ích này .
Kiến trúc CPU[sửa|sửa mã nguồn]
Các bộ giải quyết và xử lý trong hệ thống nhúng hoàn toàn có thể được chia thành hai loại : vi giải quyết và xử lý và vi tinh chỉnh và điều khiển. Các vi tinh chỉnh và điều khiển thường có những thiết bị ngoại vi được tích hợp trên chip nhằm mục đích giảm kích cỡ của hệ thống. Có rất nhiều loại kiến trúc CPU được sử dụng trong phong cách thiết kế hệ nhúng như ARM, MIPS, Coldfire / 68 k, PowerPC, x86, PIC, 8051, Atmel AVR, Renesas H8, SH, V850, FR-V, M32R, Z80, Z8 … Điều này trái ngược với những loại máy tính để bàn, thường bị hạn chế với một vài kiến trúc máy tính nhất định. Các hệ thống nhúng có size nhỏ và được phong cách thiết kế để hoạt động giải trí trong thiên nhiên và môi trường công nghiệp thường lựa chọn PC / 104 và PC / 104 + + làm nền tảng. Những hệ thống này thường sử dụng DOS, Linux, NetBSD hoặc những hệ điều hành quản lý nhúng thời hạn thực như QNX hay VxWorks. Còn những hệ thống nhúng có kích cỡ rất lớn thường sử dụng một thông số kỹ thuật thông dụng là hệ thống on chip ( System on a chip – SoC ), một bảng mạch tích hợp cho một ứng dụng đơn cử ( an application-specific integrated circuit – ASIC ). Sau đó nhân CPU được mua và thêm vào như một phần của phong cách thiết kế chip. Một kế hoạch tựa như là sử dụng FPGA ( field-programmable gate array ) và lập trình cho nó với những thành phần nguyên tắc phong cách thiết kế gồm có cả CPU .
Thiết bị ngoại vi[sửa|sửa mã nguồn]
Hệ thống nhúng tiếp xúc với bên ngoài trải qua những thiết bị ngoại vi, ví dụ như :• Serial Communication Interfaces ( SCI ) : RS-232, RS-422, RS-485 …• Synchronous Serial Communication Interface : I2C, JTAG, SPI, SSC và ESSI• Universal Serial Bus ( USB )• Networks : Controller Area Network, LonWorks …• Bộ định thời : PLL ( s ), Capture / Compare và Time Processing Units• Discrete IO : General Purpose Input / Output ( GPIO )
Công cụ tăng trưởng[sửa|sửa mã nguồn]
Tương tự như những loại sản phẩm ứng dụng khác, ứng dụng hệ thống nhúng cũng được tăng trưởng nhờ việc sử dụng những trình biên dịch ( compilers ), chương trình dịch hợp ngữ ( assembler ) hoặc những công cụ gỡ lỗi ( debuggers ). Tuy nhiên, những nhà phong cách thiết kế hệ thống nhúng hoàn toàn có thể sử dụng 1 số ít công cụ chuyên sử dụng như :• Bộ tháo gỡ mạch hoặc những chương trình mô phỏng ( emulator )• Tiện ích để thêm những giá trị checksum hoặc CRC vào chương trình, giúp hệ thống nhúng hoàn toàn có thể kiểm tra tính hợp lệ của chương trình đó .• Đối với những hệ thống giải quyết và xử lý tín hiệu số, người tăng trưởng hệ thống hoàn toàn có thể sử dụng ứng dụng workbench như MathCad hoặc Mathematica để mô phỏng những phép toán .
• Các trình biên dịch và linker (trình liên kết) chuyên dụng được sử dụng để tối ưu hóa một thiết bị phần cứng.
• Một hệ thống nhúng hoàn toàn có thể có ngôn từ lập trình và công cụ phong cách thiết kế riêng của nó hoặc sử dụng và nâng cấp cải tiến từ một ngôn từ đã có sẵn .Các công cụ ứng dụng hoàn toàn có thể được tạo ra bởi những công ty ứng dụng chuyên được dùng về hệ thống nhúng hoặc quy đổi từ những công cụ tăng trưởng ứng dụng GNU. Đôi khi, những công cụ tăng trưởng dành cho máy tính cá thể cũng được sử dụng nếu bộ giải quyết và xử lý của hệ thống nhúng đó gần giống với bộ giải quyết và xử lý của một máy PC thông dụng .
Độ an toàn và đáng tin cậy[sửa|sửa mã nguồn]
Các hệ thống nhúng thường nằm trong những cỗ máy được kỳ vọng là sẽ chạy hàng năm trời liên tục mà không bị lỗi hoặc hoàn toàn có thể Phục hồi hệ thống khi gặp lỗi. Vì thế, những ứng dụng hệ thống nhúng được tăng trưởng và kiểm thử một cách cẩn trọng hơn là ứng dụng cho máy tính cá thể. Ngoài ra, những thiết bị rời không đáng đáng tin cậy như ổ đĩa, công tắc nguồn hoặc nút bấm thường bị hạn chế sử dụng. Việc Phục hồi hệ thống khi gặp lỗi hoàn toàn có thể được triển khai bằng cách sử dụng những kỹ thuật như watchdog timer – nếu ứng dụng không đều đặn nhận được những tín hiệu watchdog định kì thì hệ thống sẽ bị khởi động lại .Một số yếu tố đơn cử về độ an toàn và đáng tin cậy như :• Hệ thống không hề ngừng để sửa chữa thay thế một cách bảo đảm an toàn, ví dụ như ở những hệ thống khoảng trống, hệ thống dây cáp dưới đáy biển, những đèn hiệu dẫn đường, … Giải pháp đưa ra là chuyển sang sử dụng những hệ thống con dự trữ hoặc những ứng dụng phân phối một phần công dụng .• Hệ thống phải được chạy liên tục vì tính bảo đảm an toàn, ví dụ như những thiết bị dẫn đường máy bay, thiết bị trấn áp độ bảo đảm an toàn trong những nhà máy sản xuất hóa chất, … Giải pháp đưa ra là lựa chọn backup hệ thống .• Nếu hệ thống ngừng hoạt động giải trí sẽ gây tổn thất rất nhiều tiền của ví dụ như những dịch vụ kinh doanh tự động hóa, hệ thống chuyển tiền, hệ thống trấn áp trong những xí nghiệp sản xuất …
Các kiến trúc ứng dụng hệ thống nhúng[sửa|sửa mã nguồn]
Một số loại kiến trúc ứng dụng thông dụng trong những hệ thống nhúng như sau :
Vòng lặp trấn áp đơn thuần[sửa|sửa mã nguồn]
Theo phong cách thiết kế này, ứng dụng được tổ chức triển khai thành một vòng lặp đơn thuần. Vòng lặp gọi đến những chương trình con, mỗi chương trình con quản trị một phần của hệ thống phần cứng hoặc ứng dụng .
Hệ thống ngắt tinh chỉnh và điều khiển[sửa|sửa mã nguồn]
Các hệ thống nhúng thường được điểu khiển bằng những ngắt. Có nghĩa là những tác vụ của hệ thống nhúng được kích hoạt bởi những loại sự kiện khác nhau. Ví dụ, một ngắt hoàn toàn có thể được sinh ra bởi một bộ định thời sau một chu kỳ luân hồi được định nghĩa trước, hoặc bởi sự kiện khi cổng nối tiếp đón được một byte nào đó .Loại kiến trúc này thường được sử dụng trong những hệ thống có bộ quản trị sự kiện đơn thuần, ngắn gọn và cần độ trễ thấp. Hệ thống này thường triển khai một tác vụ đơn thuần trong một vòng lặp chính. Đôi khi, những tác vụ phức tạp hơn sẽ được thêm vào một cấu trúc hàng đợi trong bộ quản trị ngắt để được vòng lặp giải quyết và xử lý sau đó. Lúc này, hệ thống gần giống với kiểu nhân đa nhiệm với những tiến trình rời rạc .
Đa nhiệm tương tác[sửa|sửa mã nguồn]
Một hệ thống đa nhiệm không ưu tiên cũng gần giống với kỹ thuật vòng lặp trấn áp đơn thuần ngoại trừ việc vòng lặp này được ẩn giấu trải qua một giao diện lập trình API. Các nhà lập trình định nghĩa một loạt những trách nhiệm, mỗi trách nhiệm chạy trong một thiên nhiên và môi trường riêng của nó. Khi không cần thực thi trách nhiệm đó thì nó gọi đến những tiến trình con tạm nghỉ ( bằng cách gọi ” pause “, ” wait “, ” yield ” … ) .Ưu điểm và điểm yếu kém của loại kiến trúc này cũng giống với kiểm vòng lặp trấn áp đơn thuần. Tuy nhiên, việc thêm một ứng dụng mới được triển khai thuận tiện hơn bằng cách lập trình một tác vụ mới hoặc thêm vào hàng đợi thông dịch ( queue-interpreter ) .
Đa nhiệm ưu tiên[sửa|sửa mã nguồn]
Ở loại kiến trúc này, hệ thống thường có một đoạn mã ở mức thấp thực thi việc quy đổi giữa những tác vụ khác nhau trải qua một bộ định thời. Đoạn mã này thường nằm ở mức mà hệ thống được coi là có một hệ quản lý và vì vậy cũng gặp phải tổng thể những phức tạp trong việc quản trị đa nhiệm .Bất kỳ tác vụ nào hoàn toàn có thể hủy hoại tài liệu của một tác vụ khác đều cần phải được tách biệt một cách đúng mực. Việc truy vấn tới những tài liệu san sẻ hoàn toàn có thể được quản trị bằng một số ít kỹ thuật đồng nhất hóa như hàng đợi thông điệp ( message queues ), những phương pháp truyền tin thị giác ( semaphores ) … Bởi những phức tạp nói trên, giải pháp thường được đưa ra đó là sử dụng một hệ quản lý thời hạn thực. Lúc đó, những nhà lập trình hoàn toàn có thể tập trung chuyên sâu vào việc tăng trưởng những công dụng của thiết bị chứ không cần chăm sóc đến những dịch vụ của hệ điều hành quản lý nữa .
Vi nhân ( Microkernel ) và nhân ngoại ( Exokernel )[sửa|sửa mã nguồn]
Khái niệm vi nhân ( microkernel ) là một bước tiếp cận gần hơn tới khái niệm hệ quản lý và điều hành thời hạn thực. Lúc này, nhân hệ điều hành quản lý triển khai việc cấp phép bộ nhớ và chuyển CPU cho những luồng thực thi. Còn những tiến trình người dùng sử dụng những tính năng chính như hệ thống file, giao diện mạng lưới, … Nói chung, kiến trúc này thường được vận dụng trong những hệ thống mà việc quy đổi và tiếp xúc giữa những tác vụ là nhanh .Còn nhân ngoại ( exokernel ) triển khai tiếp xúc hiệu suất cao bằng cách sử dụng những lời gọi chương trình con thường thì. Phần cứng và hàng loạt ứng dụng trong hệ thống luôn phân phối và hoàn toàn có thể được lan rộng ra bởi những ứng dụng .
Trong kiến trúc này, một nhân vừa đủ với những năng lực phức tạp được quy đổi để tương thích với thiên nhiên và môi trường nhúng. Điều này giúp những nhà lập trình có được một môi trường tự nhiên giống với hệ quản lý và điều hành trong những máy để bàn như Linux hay Microsoft Windows và vì vậy rất thuận tiện cho việc tăng trưởng. Tuy nhiên, nó lại yên cầu đáng kể những tài nguyên phần cứng làm tăng ngân sách của hệ thống. Một số loại nhân khối thông dụng là Embedded Linux và Windows CE. Mặc dù ngân sách phần cứng tăng lên nhưng loại hệ thống nhúng này đang tăng trưởng rất mạnh, đặc biệt quan trọng là trong những thiết bị nhúng mạnh như Wireless router hoặc hệ thống xác định GPS. Lý do của điều này là :• Hệ thống này có cổng để liên kết đến những chip nhúng thông dụng• Hệ thống được cho phép sử dụng lại những đoạn mã sẵn có phổ cập như những trình điều khiển và tinh chỉnh thiết bị, Web Servers, Firewalls, …• Việc tăng trưởng hệ thống hoàn toàn có thể được thực thi với một tập nhiều loại đặc tính, công dụng còn sau đó lúc phân phối loại sản phẩm, hệ thống hoàn toàn có thể được thông số kỹ thuật để vô hiệu 1 số ít tính năng không thiết yếu. Điều này giúp tiết kiệm ngân sách và chi phí được những vùng nhớ mà những tính năng đó chiếm giữ .• Hệ thống có chính sách người dùng để thuận tiện chạy những ứng dụng và tháo gỡ. Nhờ đó, tiến trình tăng trưởng được triển khai thuận tiện hơn và việc lập trình có tính linh động hơn .
• Có nhiều hệ thống nhúng thiếu các yêu cầu chặt chẽ về tính thời gian thực của hệ thống quản lý. Còn một hệ thống như Embedded Linux có tốc độ đủ nhanh để trả lời cho nhiều ứng dụng. Các chức năng cần đến sự phản ứng nhanh cũng có thể được đặt vào phần cứng.
Xem thêm: Thuốc Berberin: Những điều cần biết
Liên kết ngoài[sửa|sửa mã nguồn]
Source: https://mindovermetal.org
Category: Wiki công nghệ