Site icon TAPIT

ESP32-S3 : Từ board mạch phát triển đến Hệ sinh thái phần mềm

ESP32-S3 là vi điều khiển (SoC) lõi kép được thiết kế tối ưu cho các ứng dụng AIoT (Artificial Intelligence of Things). Điểm nổi bật nhất của nó so với các thế hệ trước là khả năng hỗ trợ tập lệnh vector để tăng tốc xử lý mạng nơ-ron và tác vụ xử lý tín hiệu. Board mạch ESP32-S3-EYE là một kit phát triển phần cứng dựa trên chip ESP32-S3, tích hợp sẵn Camera và Màn hình, chuyên dùng để phát triển các ứng dụng nhận diện hình ảnh và xử lý giọng nói tại biên (Edge AI) mà không cần gửi dữ liệu về đám mây.

ESP32-S3board mạch S3-EYE là sự lựa chọn lý tưởng để học tập và nghiên cứu về TinyML/AIoT. Với sự hỗ trợ của framework ESP-WHOESP-DL (thư viện Deep Learning của Espressif), bạn có thể triển khai các mô hình AI trực tiếp lên vi điều khiển với chi phí thấp và hiệu năng cao.

I. ESP32-S3

1.1. Tổng quan

ESP32-S3 là vi điều khiển (MCU) lõi kép XTensa LX7, có khả năng hoạt động ở tần số 240 MHz. Ngoài 512 KB SRAM nội bộ, chip còn được tích hợp kết nối Wi-Fi 2.4 GHz (802.11 b/g/n) và Bluetooth 5 (LE) với khả năng hỗ trợ kết nối xa. Vi điều khiển này sở hữu 45 chân GPIO có thể lập trình và hỗ trợ một tập hợp phong phú các thiết bị ngoại vi. ESP32-S3 hỗ trợ flash SPI tám đường (octal SPI flash) tốc độ cao và dung lượng lớn, cũng như PSRAM với bộ nhớ đệm (cache) dữ liệu và lệnh có thể cấu hình.

Hình 1. Sơ đồ khối (Block Diagram) của chip vi điều khiển ESP32-S3

Hỗ trợ tăng tốc AI: ESP32-S3 được bổ sung hỗ trợ các tập lệnh vector (vector instructions) trong MCU, mang lại khả năng tăng tốc cho các tác vụ tính toán mạng nơ-ron và xử lý tín hiệu. Các nhà phát triển có thể tận dụng các tập lệnh vector này thông qua các thư viện ESP-DSP và ESP-NN để tối ưu hóa ứng dụng của mình. Các SDK như ESP-WHO và ESP-Skainet cũng sẽ hỗ trợ khả năng tăng tốc này.

Kết nối không dây: ESP32-S3 hỗ trợ Wi-Fi 2.4 GHz (802.11 b/g/n) với băng thông hỗ trợ lên đến 40 MHz. Phân hệ Bluetooth Low Energy hỗ trợ phạm vi xa thông qua Coded PHY và mở rộng quảng bá (advertisement extension). Nó cũng hỗ trợ tốc độ truyền tải và thông lượng dữ liệu cao hơn với 2 Mbps PHY. Cả Wi-Fi và Bluetooth LE đều có hiệu suất RF vượt trội, duy trì ổn định ngay cả ở nhiệt độ cao.

Ngoại vi: ESP32-S3 có 45 GPIO lập trình được, hỗ trợ SPI, I2S, I2C, PWM, RMT, ADC, UART, SD/MMC host và TWAI™. Tổng cộng, 14 GPIO có thể được cấu hình làm đầu vào cảm ứng điện dung cho các ứng dụng giao diện người – máy (HMI). Ngoài tất cả các ngoại vi này, ESP32-S3 còn được trang bị một lõi tiêu thụ năng lượng siêu thấp (ULP core), hỗ trợ nhiều chế độ năng lượng thấp cho đa dạng các trường hợp sử dụng.

Bảo mật: ESP32-S3 cung cấp tất cả các yêu cầu bảo mật cần thiết để xây dựng các thiết bị kết nối an toàn mà không cần thêm phần cứng hỗ trợ bên ngoài. Nó hỗ trợ mã hóa flash dựa trên thuật toán AES-XTS, khởi động an toàn (secure boot) dựa trên RSA, chữ ký số và HMAC. ESP32-S3 cũng có ngoại vi “World Controller” cung cấp hai môi trường thực thi hoàn toàn cách ly, cho phép triển khai môi trường thực thi tin cậy (TEE) hoặc cơ chế phân tách đặc quyền.

Phần mềm hoàn thiện: ESP32-S3 được hỗ trợ thông qua nền tảng ESP-IDF phổ biến của Espressif, nền tảng này đã vận hành hàng triệu thiết bị trên thị trường. ESP-IDF đi kèm với quy trình kiểm thử nghiêm ngặt, cập nhật thường xuyên và chính sách hỗ trợ vượt trội. Dựa trên kiến trúc phần mềm đã trưởng thành của ESP-IDF, các nhà phát triển có thể dễ dàng xây dựng ứng dụng mới hoặc di chuyển các ứng dụng của riêng họ sang nền tảng ESP32-S3 và tiếp tục làm việc với các công cụ và API tin cậy của ESP-IDF.

1.2. Lưu ý khi lựa chọn ESP32-S3

Một trong những thách thức lớn nhất đối với các kỹ sư là xác định chính xác cấu hình bộ nhớ của module ESP32-S3 thông qua mã sản phẩm.

Hầu hết các vi điều khiển hiện đại, bao gồm cả dòng ESP32, sử dụng kiến trúc bộ nhớ phân cấp. CPU hoạt động ở tốc độ cao (lên đến 240 MHz đối với ESP32-S3), nhưng dữ liệu (trọng số mô hình AI, bộ đệm khung hình) thường quá lớn để chứa trong bộ nhớ SRAM nội (SRAM on-chip). Do đó, dữ liệu phải được lưu trữ trên Flash hoặc PSRAM (Pseudo-Static RAM) bên ngoài. Khi thực hiện suy luận (inference) một mạng nơ-ron tích chập (CNN), CPU phải liên tục nạp các ma trận trọng số (weights) và bản đồ đặc trưng (feature maps) từ bộ nhớ ngoài vào thanh ghi để tính toán. Nếu băng thông của bus bộ nhớ không đủ đáp ứng tốc độ xử lý của CPU, bộ vi xử lý sẽ rơi vào trạng thái chờ (stall), gây lãng phí chu kỳ máy và giảm hiệu năng tổng thể.

ESP32-S3 được thiết kế để giải quyết bài toán này bằng cách tích hợp các hướng dẫn vector (vector instructions) vào kiến trúc Xtensa LX7 lõi kép, cho phép tăng tốc phần cứng cho các phép toán nhân-cộng ma trận. Tuy nhiên, khả năng tính toán tăng cường này càng làm trầm trọng thêm nhu cầu về băng thông bộ nhớ. Đây là lý do tại sao Espressif giới thiệu giao diện Octal SPI (OPI) trên ESP32-S3, cho phép mở rộng độ rộng bus dữ liệu từ 4 bit (QSPI) lên 8 bit, về lý thuyết nhân đôi băng thông truyền tải.

Người sử dụng lưu ý lựa chọn Octal PSRAM hoặc Octal PSRAM bên ngoài chip (trên các module) để sử dụng cho các dự án AI, xử lý ảnh để tăng hiệu năng xử lý. 

II. Các Bo mạch phát triển ESP32

2.1 ESP32-S3-DevKitC-1

ESP32-S3-DevKitC-1 là bo mạch phát triển đa năng (general-purpose development board) cấp thấp, được thiết kế để người dùng có thể tiếp cận toàn diện các giao tiếp ngoại vi (I/O) của chip ESP32-S3.

Hình 2. Các thành phân bo mạch phát triển đa năng ESP32-S3-DevKitC-1 (Nguồn: https://docs.espressif.com/)

2.1.1. Cấu hình phần cứng chi tiết

Hình 3. Pin layout trên ESP32-S3-DevKitC-1 (Nguồn: https://docs.espressif.com/)

2.1.2. Mục đích sử dụng

2.2 ESP32-S3-EYE

ESP32-S3-EYE là một bảng mạch phát triển (development board) nhỏ gọn do Espressif thiết kế để minh họa các khả năng AI của chip ESP32-S3.

Hình 4. Bo mạch ESP32-S3-EYE chuyên dụng cho ứng dụng Edge AI (Tích hợp Camera và Màn hình)

2.2.1. Cấu hình phần cứng chi tiết:

Hình 5. Sơ đồ khối ESP32-S3-EYE

2.2.2. Mục đích sử dụng:

III. Hệ sinh thái Phần mềm ESP32-S3

Sức mạnh của phần cứng chỉ có thể được khai thác thông qua phần mềm. Espressif ESP32-S3 có được một hệ sinh thái phần mềm hỗ trợ toàn diện, giúp tối ưu hóa sức mạnh phần cứng của ESP32-S3 cho mọi cấp độ phát triển từ nghiên cứu học thuật đến triển khai công nghiệp.

Hình 6. Hệ sinh thái phần mềm hỗ trợ ESP32-S3 (ESP-IDF, ESP-DL, ESP-NN)

Tài liệu tham khảo:

  1. Introduction ESP32-S3
  2. ESP32-S3-DevKitC-1
  3. ESP32-S3-EYE v2.2
  4. Introduction ESP-DL
  5. ESP-WHO ESP-DL

 

Chúc các bạn thành công!

Thuong Nguyen

Tìm hiểu thêm:
Tổng hợp hướng dẫn Internet of Things với NodeMCU ESP8266 và ESP32
Tổng hợp các bài hướng dẫn Lập trình vi điều khiển STM32
[HỌC ONLINE: LẬP TRÌNH VI ĐIỀU KHIỂN STM32, VI XỬ LÝ ARM CORTEX – M]
Fanpage TAPIT: TAPIT – AIoT Learning