Hướng dẫn hệ thống nhúng

⚡ Tóm tắt thông minh

Bài hướng dẫn về hệ thống nhúng giải thích về các thiết bị dựa trên bộ điều khiển được thiết kế để thực hiện các chức năng chuyên biệt bên trong các hệ thống cơ khí hoặc điện lớn hơn. LessNội dung bao gồm các thành phần, đặc điểm, vi điều khiển, vi xử lý, ngôn ngữ lập trình, ứng dụng, ưu điểm và nhược điểm, phù hợp cho cả kỹ sư mới bắt đầu và kỹ sư trung cấp.

  • ⚙️ Mục đích riêng: Hệ thống nhúng thực hiện một nhiệm vụ cụ thể bằng cách sử dụng bộ xử lý, bộ nhớ và các thiết bị ngoại vi được tích hợp sẵn trong thiết bị chủ.
  • 🧠 Thành phần cốt lõi: Phần cứng, phần mềm nhúng và hệ điều hành thời gian thực kết hợp với nhau để cung cấp phản hồi chính xác cho các cảm biến và bộ chấp hành.
  • 📐 ArchiCác loại kết cấu: Chọn thiết kế dựa trên vi điều khiển, vi xử lý hoặc FPGA tùy thuộc vào nhu cầu về chi phí, điện năng và hiệu năng.
  • 💻 Ngôn ngữ lập trình: Ngôn ngữ C chiếm ưu thế trong phát triển hệ thống nhúng, với C++, Assembly, Pythonvà Rust đang ngày càng được sử dụng rộng rãi trong các tác vụ đòi hỏi độ an toàn cao.
  • 🏭 Ứng dụng rộng: Các ngành công nghiệp ô tô, y tế, điện tử tiêu dùng, tự động hóa công nghiệp và hàng không vũ trụ đều sử dụng hệ thống nhúng hàng ngày.
  • 🤖 Trí tuệ nhân tạo tại biên: TinyML, chip AI biên và bộ tăng tốc mạng thần kinh mang lại trí thông minh tích hợp cho các thiết bị nhúng mà không cần phụ thuộc vào điện toán đám mây.

Hướng dẫn hệ thống nhúng

Trước khi tìm hiểu Hệ thống nhúng, hãy tìm hiểu:

Hệ thống là gì?

Một hệ thống là một sự sắp xếp trong đó tất cả các thành phần của nó hoạt động theo các quy tắc cụ thể được xác định. Là phương pháp tổ chức, làm việc, thực hiện một hay nhiều công việc theo một kế hoạch cố định.

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

Hệ thống nhúng là sự kết hợp giữa phần mềm và phần cứng máy tính được cố định về khả năng hoặc có thể lập trình được. Một hệ thống nhúng có thể là một hệ thống độc lập hoặc có thể là một phần của một hệ thống lớn. Nó chủ yếu được thiết kế cho một hoặc nhiều chức năng cụ thể trong một hệ thống lớn hơn. Ví dụ: chuông báo cháy là một ví dụ phổ biến của hệ thống nhúng chỉ có thể cảm nhận được khói.

Ví dụ về hệ thống nhúng

Máy in laser

Máy in Laser là một trong những ví dụ về Hệ thống nhúng sử dụng hệ thống nhúng để quản lý nhiều khía cạnh khác nhau của việc in ấn. Ngoài việc thực hiện nhiệm vụ chính là in ấn, nó còn phải tiếp nhận thông tin đầu vào của người dùng, quản lý giao tiếp với hệ thống máy tính, xử lý lỗi và cảm biến giấy còn sót lại trên khay, v.v.

Ở đây, nhiệm vụ chính của bộ vi xử lý là hiểu văn bản và điều khiển đầu in sao cho nó xả mực ở nơi cần thiết.

Để thực hiện điều này, nó cần giải mã các tệp khác nhau được cung cấp và hiểu phông chữ cũng như đồ họa. Nó sẽ tiêu tốn đáng kể thời gian CPU để xử lý dữ liệu cũng như phải lấy đầu vào của người dùng, động cơ điều khiển, v.v.

Lịch sử của hệ thống nhúng

Dưới đây là những cột mốc quan trọng trong lịch sử của hệ thống nhúng:

  • Năm 1960, hệ thống nhúng lần đầu tiên được sử dụng để phát triển.ping Hệ thống dẫn đường Apollo do Charles Stark Draper tại MIT phát minh.
  • Năm 1965, Autonetics phát triển D-17B, máy tính được sử dụng trong hệ thống dẫn đường tên lửa Minuteman.
  • Năm 1968, hệ thống nhúng đầu tiên dành cho ô tô được ra mắt.
  • Texas Instruments đã phát triển bộ vi điều khiển đầu tiên vào năm 1971.
  • Năm 1987, hệ điều hành nhúng đầu tiên, VxWorks, được Wind River phát hành.
  • Microsoft'S Windows nhúng CE vào năm 1996.
  • Đến cuối những năm 1990, hệ thống Linux nhúng đầu tiên xuất hiện.
  • Thị trường nhúng đạt giá trị 140 tỷ đô la vào năm 2013.
  • Các nhà phân tích dự đoán thị trường nhúng sẽ có giá trị hơn 40 tỷ đô la vào năm 2030.

Đặc điểm của một hệ thống nhúng

Đặc điểm của một hệ thống nhúng
Đặc điểm của một hệ thống nhúng

Sau đây là những đặc điểm quan trọng của hệ thống nhúng:

  • Yêu cầu hiệu suất thời gian thực
  • Nó phải có tính sẵn sàng và độ tin cậy cao.
  • Được phát triển xung quanh một hệ điều hành thời gian thực
  • Thông thường, thao tác dễ dàng và không cần đĩa, khởi động ROM
  • Được thiết kế cho một nhiệm vụ cụ thể
  • Nó phải được kết nối với các thiết bị ngoại vi để kết nối các thiết bị đầu vào và đầu ra.
  • Cung cấp độ tin cậy và ổn định cao
  • Cần giao diện người dùng tối thiểu
  • Bộ nhớ hạn chế, chi phí thấp, tiêu thụ điện năng ít hơn
  • Nó không cần bất kỳ bộ nhớ phụ trong máy tính.

Các thuật ngữ quan trọng được sử dụng trong hệ thống nhúng

Bây giờ trong hướng dẫn về Hệ thống nhúng này, chúng tôi sẽ đề cập đến một số thuật ngữ quan trọng được sử dụng trong hệ thống nhúng.

Độ tin cậy

Thước đo này về xác suất tồn tại của hệ thống khi chức năng này quan trọng trong thời gian chạy.

Khả năng chịu lỗi

Khả năng chịu lỗi là khả năng của một hệ thống máy tính có thể tồn tại khi có lỗi.

Real-Time

Hệ thống nhúng phải đáp ứng các ràng buộc khác nhau về thời gian và các ràng buộc khác. Chúng bị áp đặt lên nó bởi hành vi tự nhiên trong thời gian thực của thế giới bên ngoài.

Ví dụ, một bộ phận không quân duy trì tracCác lực lượng tấn công tên lửa đang tiến đến phải tính toán và lên kế hoạch phản công một cách chính xác do thời hạn thực tế nghiêm ngặt. Nếu không, họ sẽ bị tiêu diệt.

Linh hoạt

Đó là xây dựng hệ thống với các cơ hội gỡ lỗi tích hợp cho phép bảo trì từ xa.

Ví dụ: bạn đang chế tạo một tàu vũ trụ sẽ hạ cánh xuống một người trồng cây khác để thu thập nhiều loại dữ liệu khác nhau và gửi thông tin chi tiết đã thu thập lại cho chúng tôi. Nếu con tàu vũ trụ này phát điên và mất kiểm soát, chúng ta sẽ có thể đưa ra một số chẩn đoán quan trọng. Vì vậy, tính linh hoạt là rất quan trọng trong khi thiết kế một hệ thống nhúng.

Tính di động

Tính di động là thước đo mức độ dễ dàng sử dụng cùng một phần mềm nhúng trong các môi trường khác nhau. Nó đòi hỏi khả năng tổng quát.traccác mối quan hệ giữa logic chương trình ứng dụng và các giao diện hệ thống cấp thấp.

Vi điều khiển là gì?

Bộ vi điều khiển là một đơn vị VLSI chip đơn còn được gọi là máy vi tính. Nó chứa tất cả bộ nhớ và giao diện I/O cần thiết, trong khi bộ vi xử lý đa năng cần thêm chip để cung cấp các chức năng cần thiết này. Bộ vi điều khiển được sử dụng rộng rãi trong các hệ thống nhúng cho các ứng dụng điều khiển thời gian thực.

Vi xử lý là gì?

Bộ vi xử lý là một thiết bị bán dẫn chip đơn. CPU của nó chứa bộ đếm chương trình, ALU, con trỏ ngăn xếp, thanh ghi làm việc, mạch định giờ đồng hồ. Nó cũng bao gồm ROM và RAM, bộ giải mã bộ nhớ và nhiều cổng nối tiếp và song song.

Archikiến trúc của hệ thống nhúng

Dưới đây là kiến ​​trúc cơ bản của Hệ thống nhúng:

Archikiến trúc của hệ thống nhúng
Archikiến trúc của hệ thống nhúng

1) Cảm biến

Cảm biến giúp bạn đo đại lượng vật lý và chuyển đổi nó thành tín hiệu điện. Nó cũng lưu trữ số lượng đo được vào bộ nhớ. Tín hiệu này có thể được thực hiện bởi người quan sát hoặc bởi bất kỳ thiết bị điện tử nào như bộ chuyển đổi A2D.

2) Bộ chuyển đổi AD

Bộ chuyển đổi AD (bộ chuyển đổi tương tự sang số) cho phép bạn chuyển đổi tín hiệu tương tự được gửi bởi cảm biến thành tín hiệu số.

3) Bộ nhớ

Bộ nhớ được sử dụng để lưu trữ thông tin. Hệ thống nhúng chủ yếu chứa hai ô nhớ 1) Dễ bay hơi 2) Bộ nhớ không dễ bay hơi.

4) Bộ xử lý & ASIC

Thành phần này xử lý dữ liệu để đo đầu ra và lưu vào bộ nhớ.

5) Bộ chuyển đổi DA

Bộ chuyển đổi DA (Bộ chuyển đổi kỹ thuật số sang tương tự) giúp bạn chuyển đổi dữ liệu kỹ thuật số được bộ xử lý cung cấp thành dữ liệu tương tự.

6) Thiết bị truyền động

Bộ truyền động cho phép bạn so sánh đầu ra do bộ chuyển đổi DA cung cấp với đầu ra thực tế được lưu trữ trong đó và lưu trữ đầu ra được phê duyệt vào bộ nhớ.

Các loại hệ thống nhúng

Ba loại Hệ thống nhúng là:

  • Quy mô nhỏ
  • Quy mô trung bình
  • Tinh vi
Các loại hệ thống nhúng

Các loại hệ thống nhúng

Hệ thống nhúng quy mô nhỏ

Hệ thống nhúng này có thể được thiết kế với một vi điều khiển 8 hoặc 16 bit duy nhất. Nó có thể hoạt động bằng pin. Để phát triển...ping Đối với hệ thống nhúng quy mô nhỏ, trình soạn thảo, trình biên dịch, môi trường phát triển tích hợp (IDE) và trình biên dịch chéo là những thành phần quan trọng nhất. công cụ lập trình.

Hệ thống nhúng quy mô trung bình

Các loại hệ thống nhúng này được thiết kế sử dụng bộ vi điều khiển 16 hoặc 32 bit. Các hệ thống này cung cấp cả sự phức tạp về phần cứng và phần mềm. C, C++, Javavà công cụ kỹ thuật mã nguồn, v.v. được sử dụng để phát triển loại hệ thống nhúng này.

Hệ thống nhúng tinh vi

Loại hệ thống nhúng này có nhiều phức tạp về phần cứng và phần mềm. Bạn có thể cần IPS, ASIPS, PLA, bộ xử lý cấu hình hoặc bộ xử lý có thể mở rộng. Để phát triển hệ thống này, bạn cần thiết kế đồng thời phần cứng và phần mềm & các thành phần cần kết hợp trong hệ thống cuối cùng.

Sự khác biệt giữa bộ vi xử lý và vi điều khiển

Tìm hiểu sự khác biệt giữa Bộ vi xử lý và vi điều khiển

Bộ vi xử lý vi điều khiển
Nó sử dụng các khối chức năng như thanh ghi, ALU, bộ định thời và bộ điều khiển. Nó sử dụng các khối chức năng của bộ vi xử lý như RAM, bộ đếm thời gian, I/O song song, ADC và DAC.
Trong Bộ vi xử lý, lệnh xử lý bit ít hơn, Chỉ một hoặc hai loại. Vi điều khiển cung cấp nhiều loại lệnh xử lý bit.
Cung cấp chuyển động nhanh chóng của mã và dữ liệu giữa bộ nhớ ngoài và bộ vi xử lý. Cung cấp chuyển động nhanh chóng của mã và dữ liệu trong bộ vi điều khiển.
Giúp bạn thiết kế hệ thống máy tính kỹ thuật số có mục đích chung. Giúp bạn thiết kế các hệ thống chuyên dụng dành riêng cho ứng dụng.
Nó cho phép bạn thực hiện đa nhiệm cùng một lúc. Nó là một hệ thống định hướng nhiệm vụ duy nhất.
Trong hệ thống Bộ vi xử lý, bạn có thể quyết định số lượng bộ nhớ hoặc cổng I/O cần thiết. Trong hệ thống Vi điều khiển, số lượng cố định cho bộ nhớ hoặc I/O làm cho bộ vi điều khiển trở nên lý tưởng để hoàn thành nhiệm vụ cụ thể.
Cung cấp hỗ trợ cho bộ nhớ ngoài và cổng I/O, khiến hệ thống nặng hơn và đắt tiền hơn. Hệ thống loại này nhẹ và rẻ hơn so với bộ vi xử lý.
Các thiết bị bên ngoài cần nhiều không gian hơn và mức tiêu thụ điện năng của chúng khá cao. Loại hệ thống này tiêu thụ ít không gian hơn và mức tiêu thụ điện năng cũng rất thấp.

Các ứng dụng của hệ thống nhúng

Sau đây là những ứng dụng quan trọng của hệ thống nhúng:

khoa học robot

  • phương tiện mặt đất
  • Các phương tiện bay không người lái
  • Xe dưới nước
  • Robot công nghiệp

Y khoa

  • Máy thẩm tách
  • Bơm tiêm truyền
  • Máy theo dõi tim mạch
  • Thiết bị giả

Ô tô

  • Điều khiển động cơ
  • Hệ thống đánh lửa
  • Hệ thống phanh

mạng

  • bộ định tuyến
  • Trung tâm
  • gateway
  • Dụng cụ điện tử

Thiết bị gia đình

  • TV
  • Digibáo động
  • Điều hòa
  • Đầu phát video DVD
  • Máy ảnh

Ô tô

  • Phun nhiên liệu
  • Hệ thống chiếu sáng
  • Khóa cửa
  • Túi khí
  • Windows
  • Hệ thống hỗ trợ đỗ xe
  • Báo động chống trộm Whippers Motion

Điều khiển công nghiệp

  • Robotics
  • Hệ thống điều khiển
  • Tên lửa
  • Lò phản ứng hạt nhân
  • Trạm không gian
  • Con thoi

Ưu điểm của hệ thống nhúng

Dưới đây là những Ưu điểm/lợi ích của việc sử dụng Hệ thống nhúng:

  • Nó có thể bao phủ nhiều môi trường khác nhau
  • Less có khả năng mã hóa lỗi
  • Hệ thống nhúng đơn giản hóa phần cứng, giúp giảm chi phí tổng thể.
  • Cung cấp hiệu suất nâng cao
  • Hệ thống nhúng rất hữu ích cho sản xuất hàng loạt.
  • Hệ thống nhúng có độ tin cậy cao.
  • Nó có rất ít kết nối.
  • Hệ thống nhúng có kích thước nhỏ.
  • Nó có một hoạt động nhanh chóng.
  • Cung cấp chất lượng sản phẩm được cải thiện.
  • Nó tối ưu hóa việc sử dụng tài nguyên hệ thống.
  • Nó có một hoạt động năng lượng thấp.

Nhược điểm của hệ thống nhúng

Dưới đây là những nhược điểm/nhược điểm quan trọng của việc sử dụng hệ thống nhúng.

  • Để phát triển một hệ thống nhúng cần nỗ lực phát triển cao.
  • Nó cần một thời gian dài để tiếp thị.
  • Các hệ thống nhúng thực hiện một nhiệm vụ rất cụ thể nên không thể lập trình để làm những việc khác.
  • Hệ thống nhúng cung cấp tài nguyên rất hạn chế cho bộ nhớ.
  • Nó không cung cấp bất kỳ cải tiến công nghệ nào.
  • Rất khó để sao lưu các tập tin nhúng.

Câu Hỏi Thường Gặp

Hệ thống nhúng thực hiện các chức năng chuyên biệt với tài nguyên hạn chế, trong khi máy tính đa năng chạy nhiều ứng dụng. Thiết kế hệ thống nhúng ưu tiên hiệu năng, kích thước, chi phí và khả năng phản hồi thời gian thực hơn là tính linh hoạt và khả năng tương thích phần mềm rộng rãi.

Phần cứng AI biên như Google Các framework Coral, NVIDIA Jetson và TinyML cho phép các thiết bị nhúng chạy mạng nơ-ron cục bộ. Điều này cho phép xử lý hình ảnh, giọng nói và phát hiện bất thường theo thời gian thực mà không cần gửi dữ liệu lên đám mây.

Đúng vậy. Các công cụ lập trình AI tạo ra mã trình điều khiển, tối ưu hóa các thủ tục cấp thanh ghi và giải thích các bảng dữ liệu. Chúng tăng tốc quá trình khởi động MCU, đề xuất các trình xử lý ngắt và giúp gỡ lỗi các vấn đề về thời gian trên các nền tảng STM32, ESP32 và PIC.

Ngôn ngữ C vẫn chiếm ưu thế vì nó cung cấp khả năng kiểm soát phần cứng chặt chẽ và dung lượng bộ nhớ nhỏ. C++ và Rust phát triển mạnh trong các dự án đòi hỏi độ an toàn cao, trong khi MicroPython và mạchPython đơn giản hóa quá trình tạo mẫu nhanhping trên các vi điều khiển có khả năng.

Hệ điều hành thời gian thực (RTOS) lập lịch các tác vụ với thời gian xác định để các sự kiện được thực thi trong thời hạn nghiêm ngặt. Các lựa chọn phổ biến bao gồm FreeRTOS, Zephyr, ThreadX và VxWorks, thường được sử dụng trong các thiết bị điều khiển ô tô, y tế và công nghiệp.

Các nhà thiết kế kết hợp bộ vi điều khiển công suất thấp, chế độ ngủ, thiết bị ngoại vi hiệu quả và phần mềm điều khiển theo sự kiện. Các kỹ thuật như chu kỳ hoạt động, điều khiển xung nhịp và nguồn điện thu hồi năng lượng giúp kéo dài tuổi thọ pin trong nhiều năm đối với các cảm biến IoT.

Các phương tiện hiện đại chứa hàng chục bộ phận nhúng điều khiển hệ thống quản lý động cơ, ABS, hệ thống thông tin giải trí, ADAS và quản lý pin. Các bus CAN, LIN và Automotive Ethernet liên kết các mô-đun nhúng này để hoạt động phối hợp theo thời gian thực.

FoundationViệc nắm vững các kỹ năng lập trình hệ thống nhúng thường mất từ ​​ba đến sáu tháng với các dự án thực hành về vi điều khiển. Việc thành thạo hệ điều hành thời gian thực (RTOS), các giao thức truyền thông và gỡ lỗi phần cứng thường đòi hỏi từ một đến hai năm kinh nghiệm thực tế liên tục.

Tóm tắt bài viết này với: