Skip to content

MCU Node & RTOS (WIP)

Node cảm biến thường chạy trên MCU với RTOS hoặc bare-metal, không chạy Linux. Trang này đủ ngữ cảnh để kỹ sư Linux hiểu phía node và cách node giao tiếp với gateway. Tổng quan kiến trúc xem Kiến trúc Device–Gateway–Cloud.

Khi nào dùng MCU thay vì Linux

TODO

  • Tiêu chí: năng lượng, chi phí BOM, thời gian khởi động, real-time, độ phức tạp phần mềm
  • Lớp thiết bị theo RFC 7228, MCU Cortex-M, RISC-V, ESP32
  • Mô hình lai: SoC có cả Cortex-A và Cortex-M (i.MX8, STM32MP1), giao tiếp qua RPMsg/remoteproc

RTOS phổ biến

TODO

  • Zephyr: device tree, Kconfig, west, networking stack (BLE, Thread, MQTT, LwM2M)
  • FreeRTOS: kernel tối giản, coreMQTT, FreeRTOS-Plus-TCP
  • ESP-IDF (trên FreeRTOS), nRF Connect SDK (trên Zephyr)
  • Bảng so sánh: giấy phép, hệ sinh thái, chứng nhận an toàn, hỗ trợ phần cứng

Quản lý năng lượng

TODO

  • Chế độ sleep / deep sleep, nguồn đánh thức (RTC, GPIO, radio)
  • Ước lượng tuổi thọ pin từ dòng tiêu thụ trung bình và duty cycle
  • Công cụ đo: Power Profiler, đo dòng bằng shunt

Giao tiếp với gateway Linux

TODO

  • Qua radio: BLE GATT, Thread, LoRaWAN
  • Qua dây: UART, RS-485/Modbus, CAN, SPI
  • MCU làm radio co-processor cho Linux: BLE HCI qua UART, OpenThread RCP qua Spinel

Bootloader và cập nhật firmware

TODO

  • MCUboot: slot primary/secondary, swap, ký ảnh firmware
  • DFU qua BLE (SMP / mcumgr), gateway làm trung gian cập nhật
  • Liên hệ với OTA Update