Lập trình nhúng

Hệ thống nhúng là gì và nó hoạt động như thế nào?

Cập nhật658
0
0 0 0 0

Thiết kế hệ thống nhúng phải đáp ứng hiệu suất và bảo mật cùng với sự an toàn hơn. Để đạt được điều này, cần phải tập trung vào việc triển khai một nguyên mẫu và tích hợp các công nghệ tương lai như MQTT, dữ liệu lớn và điện toán đám mây.


Giới thiệu

Hệ thống nhúng theo định nghĩa, còn được gọi là hệ thống tích hợp do sự kết hợp giữa phần cứng và phần mềm (còn được gọi là Phần mềm cơ sở). Nó bao gồm các thiết bị điện toán thông minh đang bao quanh chúng ta. Các thiết bị có thể là điện thoại thông minh, đồng hồ thông minh, thiết bị nhà thông minh, thiết bị y tế, thiết bị báo động an ninh, sản phẩm IoT, v.v.

Họ sẽ nói chuyện với nhau thông qua internet và điều hành từ xa mà không cần sự can thiệp của con người. Một trong những sự thật là thế giới của chúng ta sẽ kết nối với hơn 50 tỷ thiết bị trong tương lai gần (2020 đến 2021) với công nghệ mới nổi như Internet vạn vật (IoT). Hơn nữa, Học máy và trí tuệ nhân tạo sẽ đóng một vai trò quan trọng trong việc thiết kế các sản phẩm hệ thống nhúng. Để phát triển các hệ thống như vậy, cần biết hoạt động của vòng đời phát triển Phần mềm và phần cứng của nó.

Hướng dẫn dành cho người mới bắt đầu này cung cấp cho bạn hướng dẫn đầy đủ về hệ thống nhúng. Trước khi tìm hiểu cách làm việc, điều quan trọng là phải biết sự khác biệt giữa Máy tính đa năng (máy tính) và thiết bị nhúng.

Hệ thống nhúng VS Hệ thống mục đích chung

Nhiều bạn nhầm lẫn giữa hai từ này, nhưng có một sự khác biệt chính giữa Vi xử lý và Vi điều khiển trong CPU nhúng. Một CPU đa năng trong máy tính như Bộ vi xử lý có các thiết bị ngoại vi bên ngoài (Đồng hồ thời gian thực, USB, Ethernet, HDMI, v.v.) được kết nối vật lý với nó và có thể nhìn thấy bên ngoài. Nhưng một bộ vi điều khiển hoặc bộ vi xử lý được nhúng giao diện một số ít hoặc tất cả các thiết bị ngoại vi với CPU trên một vi mạch SOC (Hệ thống trên chip) duy nhất.

Dưới đây là một số khác biệt chính giữa Hệ điều hành mục đích chung và Hệ điều hành nhúng. 

Mục đích chung Hệ điều hành

  • Chạy trong Môi trường Đa tác vụ với một hoặc nhiều tác vụ (đôi khi được gọi là luồng).

  • Các thuật toán chung đã được triển khai để thực hiện các tác vụ song song. Chúng có nghĩa là để xử lý nhanh hơn và thông lượng cao.

  • Có thể thực hiện các phép toán phức tạp như cộng trừ 32 bit và 64 bit.

  • Không thể phản hồi và tương tác với thế giới tương tự bên ngoài.

  • Chi phí cao do bộ nhớ (RAM, ROM) còn nhiều.

  • Tiêu thụ điện năng và Kích thước không phải là một hạn chế thiết kế chính.

  • Không theo thời gian thực và phản ứng trong môi trường khắc nghiệt.

  • Giao diện thân thiện với người dùng.

Ví dụ: Windows, Linux, Mac OS.
thi-truong-phan-mem-lap-trinh-nhungHệ thống nhúng là gì?

Như tên của nó, nó có thể là phần cứng hoặc phần mềm được tích hợp để thực hiện một chức năng cụ thể. Nó sử dụng một Vi điều khiển / Vi xử lý để thực hiện một công việc duy nhất. Nó là một thiết bị độc lập có hoặc không có hệ điều hành. Ví dụ có thể là máy giặt, Máy nghe nhạc, ATM, Máy bán hàng tự động, Máy ghi dữ liệu, v.v. Ngày nay, Hầu hết các thiết bị đều chạy trên Hệ điều hành (Operating System). Vì vậy, những gì là cần thiết cho một hệ điều hành?

  • Người dùng cần các thiết bị thông minh hơn có khả năng thực hiện nhiều công việc trong thời gian ngắn hơn.

  • Hỗ trợ đủ bộ nhớ để chạy nhiều ứng dụng.

  • Có thể tái sử dụng và ổn định với nhiều bản cập nhật phần mềm hơn.

  • Thích hợp cho các ứng dụng không dây và điều khiển bằng giọng nói tích hợp như các giao thức WiFi, ZigBee, Ethernet, Bluetooth, NFC và GSM.

  • Một số ví dụ về hệ thống nhúng là điện thoại thông minh, máy giặt, Điều hòa nhiệt độ, ki-ốt, v.v.

Ứng dụng hệ thống nhúng

Chúng có mặt ở khắp mọi nơi. Không tin à? Hầu hết mọi người sử dụng mà không biết chúng. Vẻ đẹp là nó vô hình đối với người dùng, mang lại nhiều trải nghiệm. Dưới đây là một số ứng dụng của hệ thống nhúng sử dụng hệ điều hành (OS) mạnh mẽ như Embedded Linux, Android và Windows CE.

Nhà thông minh

Hầu hết các sản phẩm trong nhà của bạn đều được nhúng, mang lại trải nghiệm tuyệt vời và thoải mái cho người dùng. Ví dụ như hệ thống An ninh gia đình, Hộp cài đặt, Máy ảnh kỹ thuật số, Truyền hình, Lò vi sóng, Máy làm mát không khí, Tủ lạnh, và nhiều hơn nữa.

Văn phòng

Họ cũng tham gia vào các giải pháp doanh nghiệp thương mại cho các khách hàng doanh nghiệp kết nối mạng. Ví dụ như Bộ định tuyến, Modem, Máy in và Cổng.

Vận chuyển

Ngành công nghiệp ô tô đang cạnh tranh mạnh mẽ trên toàn thế giới. Một số hệ thống con được nhúng trong ô tô là Hệ thống chống bó cứng phanh (ABS), Điều khiển điều hòa, Kiểm soát đánh lửa, Kiểm soát túi khí, Cần gạt nước mưa.

Chăm sóc sức khỏe

Lĩnh vực y tế là một lĩnh vực quan trọng, và việc sử dụng các hệ thống nhúng là một cơn ác mộng. Thiết kế kỳ quặc có thể dẫn đến ảnh hưởng tai hại cho xã hội hoặc một cá nhân. Ví dụ như Máy đo huyết áp, Máy đo nhịp tim, máy tạo nhịp tim, giám sát từ xa và phẫu thuật, Máy quét, Máy thở di động.

Thế giới công nghiệp

Những thách thức gần đây của các hệ thống nhúng đã mở rộng phạm vi của nó theo hướng tự động hóa. Tự động hóa là quá trình thực hiện một công việc lặp đi lặp lại. Tự động hóa làm tăng năng suất máy móc, giảm chi phí phát triển và thời gian thiết kế. Ví dụ như Máy móc và điều khiển công nghiệp, Giám sát nhiệt độ, Máy in 3D, Người máy và Internet vạn vật công nghiệp.

Không gian vũ trụ và quốc phòng

Hàng không vũ trụ và quốc phòng là một khu vực hiểm trở nơi an ninh và hiệu suất là quan trọng nhất. Để đạt được phần sụn đáng tin cậy này và phần mềm nhúng phải được xây dựng.

Ví dụ như Hệ thống điều khiển chuyến bay, Hành động, Quản lý không khí và nhiệt, Công suất động cơ, Bộ tăng áp xe, Hệ thống điều hướng, Hình ảnh nhúng.

Mọi hệ thống phức tạp trên thế giới đều có thể được tạo ra dựa trên hai ý tưởng, Phần mềm và Phần cứng. Để đạt được điều đó, bạn phải bắt đầu xây dựng các mô-đun nhỏ hơn và tích hợp chúng để tạo ra một hệ thống con hiệu quả. Hệ thống nhúng có thể được phân vùng thành các thành phần phần mềm và phần cứng.

Phần cứng nhúng

Cốt lõi của bất kỳ mục tiêu nhúng nào là phần cứng điện tử - nằm trên Bảng mạch in. Bảng phát triển nhúng được chia thành năm mô-đun. Chúng là Bộ xử lý, Bộ nhớ, Thiết bị đầu vào, Thiết bị đầu ra và bộ điều khiển Bus.
thi-truong-phan-mem-lap-trinh-nhungLớp trừu tượng phần cứng (HAL) là tài nguyên cơ bản của bất kỳ thiết bị nhúng nào và việc lựa chọn một thành phần cụ thể phụ thuộc vào yêu cầu và đặc điểm kỹ thuật của nhà thiết kế. Trên thị trường toàn cầu, có rất nhiều biến thể phần cứng được sản xuất cho các ứng dụng khác nhau. Một số trong số đó là:

Bộ vi điều khiển (CPU)

Vi điều khiển được ưu tiên sử dụng để xây dựng các ứng dụng nhỏ với tính toán chính xác. Thật vậy, chúng có một số lượng ram hạn chế và kém tin cậy hơn. Một số công ty sản xuất nổi tiếng là Altera, Atmel, Renesas, Infineon, NXP, và nhiều hơn nữa. Về mặt kỹ thuật, vi điều khiển là một thiết bị thông minh tính toán thời gian thực hiện tác vụ và phân bổ tài nguyên bộ nhớ do người dùng chỉ định một cách hiệu quả.

Hệ thống trên chip (SoC)

SoC bao gồm CPU, các thiết bị ngoại vi (Bộ hẹn giờ, bộ đếm), Giao diện truyền thông (I²C, SPI, UART) và Mạch quản lý nguồn trên một IC duy nhất.

Nếu ứng dụng của bạn đáng tin cậy hơn với hiệu suất cao hơn, SoC giá rẻ là lựa chọn tốt nhất. Nó hỗ trợ một hoặc nhiều lõi xử lý.

Bộ xử lý ASIC

ASIC có nghĩa là Mạch Tích hợp Ứng dụng Cụ thể.

Đầu tiên, con chip được thiết kế để sử dụng cho một ứng dụng cụ thể và thuộc sở hữu của một công ty. Vì vậy, không được phép sao chép sản phẩm. Thứ hai, nó tiêu thụ ít điện năng.

Bộ xử lý DSP

Bạn có thể tự hỏi, đây là những bộ vi xử lý được sử dụng nhiều nhất cho các ứng dụng Âm thanh và video. Bộ xử lý DSP loại bỏ tiếng ồn và cải thiện chất lượng tín hiệu cho đầu đĩa DVD, Máy nghe nhạc và Máy chơi game của bạn.

Lưu ý: Có thể có hàng trăm Vi điều khiển / Vi xử lý hiện diện trong hệ thống máy tính nhúng.

Thiết bị đầu vào

Thiết bị đầu vào lấy đầu vào từ thế giới bên ngoài. Một số ví dụ về thiết bị đầu vào là cảm biến, công tắc, diode quang, optocoupler, v.v. Chúng chấp nhận đầu vào từ người dùng và phản hồi tương ứng.

Các thiết bị đầu ra

Các thiết bị đầu ra là các chỉ báo hoặc kết quả xảy ra do các sự kiện đầu vào từ bên ngoài vi điều khiển. Ví dụ về các thiết bị đầu ra là LCD, Màn hình cảm ứng, LED, Động cơ, Màn hình bảy đoạn, Bộ rung, Rơle, v.v.

Bộ điều khiển xe buýt

Bộ điều khiển bus là một thiết bị giao tiếp truyền dữ liệu giữa các thành phần bên trong một hệ thống nhúng. Một số bộ điều khiển bus là Serial Bus (I2C, SPI, SMBus, v.v.), RS232, RS485 và Universal Serial Bus.

Bộ nhớ

Để lưu trữ dữ liệu và xử lý việc quản lý bộ nhớ, cần phải có các thiết bị bộ nhớ như flash và thẻ SD, EEPROM. Một số bộ nhớ được sử dụng trong hệ thống nhúng là RAM không bay hơi, RAM dễ bay hơi, DRAM (Bộ nhớ truy cập ngẫu nhiên động), v.v.

Phần mềm nhúng

Các thành phần phần mềm là các khối xây dựng thiết yếu của hệ thống nhúng. Phần mềm nhúng (đôi khi được gọi là phần sụn) được viết cho Trình điều khiển thiết bị, Hệ điều hành, Phần mềm Ứng dụng, Xử lý lỗi và phần mềm gỡ lỗi.
thi-truong-phan-mem-lap-trinh-nhungTrình điều khiển thiết bị

Trình điều khiển thiết bị hoặc Gói hỗ trợ bo mạch (BSP) là thành phần phần mềm cốt lõi điều khiển thiết bị ngoại vi và hỗ trợ kết nối. Nó là một đoạn mã nhúng được viết cho phần cứng cụ thể. Thiết bị ngoại vi có thể là I2C, SPI, UART, USB, CAN, GPIO, v.v. Người dùng phải lấy các trình điều khiển cấp thấp cho vi điều khiển hoặc bộ vi xử lý bằng cách sử dụng các thanh ghi dữ liệu và điều khiển cụ thể được cung cấp trong biểu dữ liệu. Bên cạnh đầu trình điều khiển cấp thấp, trình điều khiển cấp cao phải được viết cho phần mềm ứng dụng. Hơn nữa, các phần mở rộng Middleware như FREERTOS, FATFS, LWIP (ngăn xếp TCP / IP) phải được tích hợp.

Hệ điều hành (OS)

Hệ điều hành là một phần mềm hệ thống quản lý các tài nguyên như bộ nhớ, quản lý I / O (Input-Output), v.v. Trong một hệ thống nhúng, tồn tại các loại hệ điều hành khác nhau. Một số trong số đó là RTOS (Hệ điều hành thời gian thực), VxWorks, RTLinux, Nucleus, µCos, các hệ thống nhúng di động, độc lập và mạng.

Ngôn ngữ lập trình nhúng hàng đầu

Hầu hết mọi người không biết về các ngôn ngữ lập trình được sử dụng cho các hệ thống nhúng và thế giới điện tử đang thay đổi hàng ngày. Vì vậy, bạn cần cập nhật bản thân trong thế giới cạnh tranh này. Hầu hết các nền tảng phần cứng hỗ trợ nhiều ngôn ngữ. Để dễ dàng phát triển phần sụn, bạn phải học Embedded C, C ++ và Micro python.

Ngôn ngữ C được thành lập bởi Dennis Ritchie vào năm 1972 với hệ điều hành Unix.

Embedded C là ngôn ngữ được sử dụng rộng rãi nhất cho các hệ thống nhúng do những lý do sau:

  • Hiệu suất tốt hơn.

  • Dễ sử dụng.

  • Đáng tin cậy hơn.

  • Tương tác trực tiếp với hệ điều hành.

  • Di động và tương thích với bất kỳ phần cứng nào.

  • Ít hơn đầu và tối ưu hóa mã tốt hơn.

  • Hỗ trợ môi trường Windows và Linux.

Nhúng C ++ là ngôn ngữ lập trình nâng cao với ít ưu điểm hơn C.

  • Bảo mật tốt hơn ngôn ngữ C.

  • Gần hơn nhiều với các ứng dụng trong thế giới thực.

  • Phát triển phần mềm rất dễ dàng.

  • C ++ sử dụng mô hình hướng đối tượng để trừu tượng hóa và đóng gói dữ liệu. Nó cũng bao gồm các tính năng như đa hình, các lớp và kế thừa.

  • Thích hợp cho các ứng dụng đồ họa và hình ảnh 3D.

Micro Python là một phần mềm hướng đối tượng mã nguồn mở được sử dụng cho các ứng dụng thời gian thực. Nó là con người có thể đọc được và dễ dàng để viết mã. Các API lập trình sử dụng xử lý lỗi và ngoại lệ tích hợp sẵn. Ngôn ngữ này phù hợp với các nhà phát triển không quan tâm đến việc xem qua các chi tiết phần cứng cấp thấp. Nó rất hữu ích cho việc phân tích dữ liệu của các cảm biến và thiết bị. Người dùng có thể viết các trường hợp thử nghiệm trong python để gỡ lỗi phần cứng. Tuy nhiên, việc chọn C, C ++ hoặc Python cho một ứng dụng nhất định hoàn toàn nằm trong tay nhà phát triển.

Thiết bị nhúng hoạt động như thế nào?

Mỗi thiết bị máy tính nhúng có thể là máy tính hoặc thiết bị di động của bạn có một số đầu vào và đầu ra tương ứng.

Đây là một ví dụ về cách thức hoạt động của một hệ thống nhúng.
thi-truong-phan-mem-lap-trinh-nhungNó nhận đầu vào tương tự / kỹ thuật số từ người dùng. Ví dụ như Công tắc nút nhấn, Bàn phím, Cảm biến, Màn hình cảm ứng.

Sau đó, nó xử lý đầu vào đã cho. Quá trình xử lý có thể là tính toán hoặc chuyển đổi. Ví dụ, một bộ ADC (Bộ chuyển đổi tương tự sang kỹ thuật số) chuyển đổi đầu vào tương tự của cảm biến thành đầu ra kỹ thuật số.

Sau khi chuyển đổi giá trị tương tự sang đầu ra kỹ thuật số, bạn cần điều khiển bằng các thiết bị đầu ra. Ví dụ như Động cơ, LCD và Màn hình cảm ứng.

Sự thật thú vị

  • Thời gian thực và phản ứng.

  • Hệ thống luôn sẵn sàng chấp nhận đầu vào, xử lý đầu vào và đưa ra kết quả chính xác

  • Tiêu thụ điện năng thấp, kích thước nhỏ gọn, chi phí thấp.

  • Dự kiến ​​sẽ hoạt động mà không cần sự tham gia của con người.

  • Khả năng quan sát, phản ứng và kiểm soát môi trường bên ngoài trong một khoảng thời gian xác định.

Vòng đời phát triển phần mềm nhúng

Một phần mềm nhúng phù hợp phải được viết ra để đáp ứng yêu cầu của khách hàng và đưa ra thị trường những sản phẩm chất lượng cao. Để làm điều đó một cách hiệu quả, đây là bảy bước để tạo Sản phẩm được nhúng của bạn.

Bước 1: Hiểu các yêu cầu

Trước hết, bạn cần biết và hiểu các thông số kỹ thuật của người dùng cuối.

Bước 2: Kiểm tra

Phân tích các thành phần (phần mềm và phần cứng) cần thiết để tạo ra sản phẩm.

Bước 3: Thiết kế

Đây là giai đoạn quan trọng nhất của chu kỳ phát triển. Nhà phát triển cần phát triển phần cứng và phần mềm nhúng riêng lẻ và tích hợp cả hai.

Bước 4: Phát triển

Lập trình viên phát triển Nguyên mẫu bằng cách sử dụng các công cụ phần cứng và phần mềm có sẵn để phù hợp với các thông số kỹ thuật của khách hàng.

Lưu ý: Nguyên mẫu là phiên bản mẫu được tạo ra để kiểm tra một khái niệm.

Bước 5: Kiểm tra

Nhà phát triển kiểm tra ứng dụng bằng cách chạy các trường hợp kiểm thử phần mềm để chứng minh tiềm năng có thể có của nguyên mẫu.

Bước 6: Triển khai

Sau khi thử nghiệm sản phẩm, nhà phát triển sẽ kiểm tra kết quả trong môi trường thực tế để nhận ra Proof Of Concept.

Lưu ý: Proof Of Concept là một kỹ thuật được sử dụng để xác thực một ý tưởng, nhưng nó có thể không thể thực hiện được.

Bước 7: Hỗ trợ và nâng cấp

Tùy thuộc vào yêu cầu của người dùng, hỗ trợ và nâng cấp phải được cung cấp để thêm các tính năng mới theo định kỳ.

Lời kết

Thiết kế hệ thống nhúng phải đáp ứng hiệu suất và bảo mật cùng với sự an toàn hơn. Để đạt được điều này, cần phải tập trung vào việc triển khai một nguyên mẫu và tích hợp các công nghệ tương lai như MQTT, dữ liệu lớn và điện toán đám mây. Hơn nữa, giao diện người dùng phải được tính đến để phát triển các ứng dụng HMI (Giao diện người-máy) và GUI. Điều quan trọng, phần mềm nhúng phải được tối ưu hóa cho Bộ vi xử lý và Vi điều khiển bị hạn chế về bộ nhớ và hạn chế năng lượng.


Xem thêm các bài viết liên quan khác: Lập trình nhúng


Xem thêm nhiều bài viết hay tại:
Cổng thông tin toàn diện về phần mềm
Cổng thông tin VHRO - giải pháp quản lý nhân sự Online

NguồnCodrey
Lượt xem12/07/2021
0 0 0 0
Chia sẻ bài viết

Tin Nổi bật

Tin xem nhiều

Trang chủ Liên hệ Tìm kiếm Tài khoản Danh mục
Hệ thống đang xử lý
Thông tin liên hệ của quý khách đã được gửi đến cho chúng tôi. Chúng tôi sẽ nhanh chóng tiếp nhận và phản hồi thông tin cho quý khách trong thời gian thích hợp nhất. Đóng