Skip to content
Nhathuy7080zzPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

AdaReMAC-EdgeVision v5.5.0 — Hệ Thống Thị Giác Máy Tính Nhúng Đồng Xử Lý Thích Nghi Thời Gian Thực

ESP32-S3 WROOM CAM (OV5640) + FPGA Sipeed Tang Nano 20K (GW2AR-LV18QN88C8/I7) + Đo Kiểm Công Suất TI INA219
Kiến trúc Đồng xử lý Phân vai Phương án A · Nén Lũy tiến FOMOResNetCompressed (C_stem = 8, R = [0, 12, 16], PeakAct = 32.255 < 32.768, ACT_AW = 15, 21/46 BSRAM — Tiết kiệm ròng 11 khối BSRAM so với FOMO-Micro 32/46 BSRAM) · Mô Hình Công Suất Vật Lý Gowin Power Analyzer Nhất Quán · Bộ Ghi Thống Kê Chuẩn [INA219_BENCH] & Endpoint /api/power_stats · 6 Đèn LED Báo Trạng Thái Trên Tang Nano 20K & Web UI


1. Tổng Quan Dự Án & Kiến Trúc Cốt Lõi (Phiên Bản v5.5.0)

AdaReMAC-EdgeVision (v5.5.0) là hệ thống thị giác máy tính nhúng thời gian thực phối hợp giữa ESP32-S3 WROOM CAM (OV5640), FPGA Sipeed Tang Nano 20K (GW2AR-LV18QN88C8/I7), và cảm biến đo dòng/công suất Texas Instruments INA219:

  1. Kiến trúc Đồng xử lý Thích nghi Phân vai Phương án A (Role-Swapped Adaptive Co-Processing):
    • Trên ESP32-S3 WROOM CAM:
      • Core 1 (Luồng Video MJPEG Khóa Kênh HT20 Ở Công Suất Phát Cực Đại 19,5 dBm & Giải mã JPEG tốc độ cao): Thu nhận khung hình JPEG từ cảm biến OV5640 (SVGA 800×600 Q9, lấy nét cuộn dây VCM DAC + làm nét cạnh ISP CIP), phát luồng video MJPEG không trễ tại cổng :81/stream với bộ đệm TCP 64 KB và cơ chế Watchdog Tự động Kết nối lại Stream, đồng thời giải mã nhanh xuống ảnh xám 96×96 (< 14 ms).
      • Core 0 (Sàng lọc Xấp xỉ Ban đầu, Học Nền 2 Tầng, Điều phối Trạng thái & Lưới Siêu Mịn 48×48): Thực thi tầng nhận dạng xấp xỉ ban đầu fomo_stage1_approx_screen() (< 1,2 ms, Mode 0), vận hành bộ chọn trạng thái state_selector (S0: IDLE_STATIC, S1: SIMPLE_SCENE, S2: COMPLEX_SCENE), tự động gửi lệnh 0x06 CMD_POWER_CTRL đưa Tang Nano 20K vào Deep Sleep S0 khi cảnh tĩnh (vẫn giữ sáng đèn LED1 báo kết nối SPI và LED3 báo trạng thái S0), giải mã tọa độ vật thể trên Lưới Siêu Mịn 48×48 = 2.304 ô (Peak-Guided Watershed + Alpha-Beta Tracker).
      • Đo kiểm Công suất qua TI INA219 (250 ms / 4 Hz) & Endpoint /api/power_stats: Đọc điện áp rơi trên trở Shunt (10 µV/LSB), điện áp V_bus (4 mV/LSB trên bit [15:3]), dòng điện I_meas (mA), công suất P_meas (mW), điện năng tích lũy (mWh / Joules), đồng thời tích lũy trung bình và độ lệch chuẩn ($\mu \pm \sigma$) theo thuật toán Welford qua $N \ge 100$ mẫu cho từng trạng thái S0, S1, S2 ([INA219_BENCH]) và xuất qua Serial + HTTP /api/power_stats (JSON & CSV).
  2. Nén Lũy tiến Mạng ResNet (FOMOResNetCompressed — DSC + LR [0, 12, 16] + SC + KD) & Giải Quyết Nghịch Lý BSRAM:
    • Đặt số kênh lớp đầu vào Stem $C_{\text{stem}} = 8$ (48×48×8 = 18.432 byte) kết hợp quy hoạch bộ đệm ping-pong outb = 18.432, giúp địa chỉ kích hoạt đỉnh toàn mạng trên cả 13 lớp chỉ là Peak Address = 32.255 < 32.768 (ACT_AW = 15), chỉ dùng 16 khối SP BSRAM (thay vì 32 khối khi ACT_AW = 16).
    • Nâng cấp cấu hình phân rã hạng thấp lên R = [0, 12, 16] (4.089 tham số huấn luyện PyTorch, 3.584 trọng số INT8 + 253 bias, 1.127.808 MAC/khung), đóng gói vừa khít 288 / 512 từ nhớ 128-bit trong cùng 5 khối pROM BSRAM (không tốn thêm bất kỳ khối BSRAM nào so với R = [0, 6, 8]).
    • Nhờ đó, tổng tài nguyên BSRAM của FOMOResNetCompressed trên chip GW2AR-LV18QN88C8/I7 giảm từ 37/46 xuống chỉ còn 16 (SP) + 5 (pROM) = 21 / 46 BSRAM (45,7%), tiết kiệm ròng 11 khối BSRAM so với FOMO-Micro (16 SP + 16 pROM = 32 / 46 BSRAM, 69,6%).

2. Sơ Đồ Đấu Nối Phần Cứng Chuẩn Gọn (v5.5.0)

2.1. Kết Nối Giữa Tang Nano 20K (J2) Và ESP32-S3 WROOM CAM (J3)

Tín hiệu (net) Tang Nano 20K (J2) ESP32-S3 (J3) Ghi chú
spi_sclk Chân 71 GPIO 1 Xung clock SPI
spi_mosi Chân 86 GPIO 40 ESP $\to$ FPGA
spi_miso Chân 49 GPIO 39 FPGA $\to$ ESP
spi_cs_n Chân 72 GPIO 42 Chọn chip, tích cực mức thấp
fpga_irq Chân 48 GPIO 38 FPGA báo ngắt cho ESP
+5V_SOURCE 5V 5V Nguồn chung
GND GND (3 chân) GND Mass chung

Chống nhiễu tự động trong Firmware: Hai chân trống nằm xen giữa cụm chân SPI trên ESP32-S3 (J3) là GPIO 2 (giữa GPIO 1 và GPIO 42) và GPIO 41 (giữa GPIO 42 và GPIO 40) được firmware tự động kéo xuống 0V (GND Shield) để cách ly xung nhịp spi_sclk khỏi các đường dữ liệu.

2.2. Kết Nối Module Đo Dòng & Công Suất TI INA219 Với ESP32-S3 (J3)

Tín hiệu (net) Module INA219 ESP32-S3 (J3) Ghi chú
i2c_sda SDA GPIO 47 Dữ liệu I2C (0x40, Shunt LSB = 10 µV, Bus LSB = 4 mV)
i2c_scl SCL GPIO 20 (hoặc GPIO 21) Xung nhịp I2C (GPIO 21 làm 0V GND Shield khi nối SCL = GPIO 20)
+5V_IN VIN+ (IN+) Nguồn +5V cấp vào Đầu vào từ nguồn 5V chính
+5V_SOURCE VIN- (IN-) 5V (ESP32 & Tang Nano) Đầu ra sau điện trở Shunt R100 (0,100 Ω) cấp chung cho cả 2 board
VCC VCC 3V3 (hoặc 5V) Nguồn nuôi IC INA219
GND GND GND Mass chung

3. Mô Hình Công Suất Giải Tích Vật Lý Nhất Quán Với Gowin Power Analyzer (v5.5.0)

Để thống nhất hoàn toàn giữa kết quả phân tích công suất lõi Silicon của Gowin Power Analyzer ($P_{\text{die_static}} = 122,7\text{ mW}$, $P_{\text{die_dyn}} = 27,3\text{--}28,7\text{ mW}$) và công suất đo trên đường nguồn $+5,0\text{ V}$ qua TI INA219, mô hình giải tích $P_{\text{theo}}$ phân rã công suất nhánh FPGA theo phương trình vật lý:

$$P_{\text{fpga_rail}}(S) = P_{\text{board_idle}} + P_{\text{io_spi}}(S) + \eta_{\text{reg}} \cdot \left( P_{\text{die_static}} + D_{\text{frame}}(S) \cdot \left[ P_{\text{die_core}} + r_{\text{enr}} \cdot P_{\text{die_res}} \right] \right)$$

Thành phần Vật lý Ký hiệu Giá trị Ý nghĩa Vật lý trên Mạch Sipeed Tang Nano 20K
Công suất tĩnh lõi Silicon $P_{\text{die_static}}$ 122,7 mW Dòng rò tĩnh lõi FPGA GW2AR-18C & BSRAM (theo Gowin Power Analyzer)
Công suất động nền lõi Silicon $P_{\text{die_core}}$ 22,0 mW Cây xung nhịp 27 MHz, FSM, đọc/ghi BSRAM và 16 nhánh nhân chính $P_H + P^L$
Công suất động nhánh phần dư 16 làn $P_{\text{die_res}}$ 6,0 mW 16 bộ trừ phần dư $R = 2D_2 - D_0$ & cây nhớ khi $r_{\text{enr}} = 100%$ ($\sum P_{\text{die_dyn}} = 28,0\text{ mW}$)
Hệ số quy đổi nguồn đa tầng PMIC $\eta_{\text{reg}}$ 1,50× Tổn hao chuyển đổi từ đường nguồn $+5,0\text{ V}$ xuống $3,3\text{ V} / 1,8\text{ V} / 1,0\text{ V } V_{\text{CCINT}}$
Công suất tĩnh ngoại vi trên board $P_{\text{board_idle}}$ 55,95 mW Chip cầu USB-JTAG BL616, bộ tạo xung MS5351M & dòng tĩnh PMIC ở S0
Chu kỳ hoạt động & Tải động I/O SPI $D_{\text{frame}}(S), P_{\text{io_spi}}(S)$ S0: 0 / 0 mW
S1: 0,45 / 86,95 mW
S2: 1,00 / 263,0 mW
Nhờ auto_doze khóa xung nhịp BSRAM/MAC giữa các khung ở S1, công suất nhánh FPGA giảm từ 545,0 mW (S2) xuống 341,9 mW (S1) và 240,0 mW (S0)

4. Ý Nghĩa 6 Đèn LED Trên Tang Nano 20K & Bảng Trạng Thái Trên Web UI

Đèn LED (Active-Low) Chân FPGA Chức năng Báo Trạng Thái Trạng thái Sáng / Nháy Thực Tế
LED0 (led_n[0]) Chân 15 Nguồn 5V & Nhịp tim 27 MHz Nháy đều ~1,6 Hz khi chạy S1/S2; chớp ngắn tiết kiệm (12,5% chu kỳ) khi ngủ S0
LED1 (led_n[1]) Chân 16 Kết nối SPI với ESP32-S3 SÁNG ĐỨNG 100% khi ESP32-S3 kết nối SPI thành công với Tang Nano 20K! Tự tắt nếu mất SPI quá ~4,9 giây
LED2 (led_n[2]) Chân 17 Xung chạy Suy luận AI Chớp sáng rõ (~77 ms) mỗi khi lõi AdaReMAC trên FPGA đang tính toán khung ảnh 96×96
LED3 (led_n[3]) Chân 18 Trạng thái S0: Deep Sleep SÁNG khi bối cảnh tĩnh hoàn toàn (S0, lúc này trên mạch có LED1 + LED3 sáng)
LED4 (led_n[4]) Chân 19 Trạng thái S1: Simple Scene SÁNG khi FPGA đang chạy ở trạng thái S1 (trên mạch có LED1 + LED4 sáng)
LED5 (led_n[5]) Chân 20 Trạng thái S2: Complex Scene SÁNG khi FPGA đang chạy ở trạng thái S2 (trên mạch có LED1 + LED5 sáng)

5. Bảng Tổng Hợp Tham Số, BSRAM & Kết Quả Kiểm Chứng (v5.5.0)

Hạng mục kiểm chứng FOMO-Micro (6 lớp chuẩn) FOMOResNetCompressed (C_stem=8, R=[0,12,16]) FOMOResNetCompressed (C_stem=8, R=[0,6,8]) Kết quả
Tham số huấn luyện PyTorch 24.537 tham số 4.089 tham số (giảm 6,00×) 2.797 tham số (giảm 8,77×) PASS
Trọng số INT8 + Bias INT32 (sau gộp BN) 24.296 W + 121 B 3.584 W + 253 B (giảm 6,78×) 2.336 W + 231 B (giảm 10,40×) PASS
Số phép tính MAC / khung 96×96 4.151.808 MAC (4,15M) 1.127.808 MAC (1,13M, giảm 3,68×) 823.680 MAC (0,82M, giảm 5,04×) PASS
Từ nhớ trọng số 128-bit (wmem) 1.553 / 2.048 từ (16 pROM) 288 / 512 từ (5 pROM BSRAM) 244 / 512 từ (5 pROM BSRAM) PASS
Địa chỉ kích hoạt đỉnh (act_mem) 27.647 < 32.768 (ACT_AW=15) 32.255 < 32.768 (ACT_AW=15) 32.255 < 32.768 (ACT_AW=15) PASS (16 SP BSRAM)
Tổng BSRAM trên Gowin GW2AR-18C 16 SP + 16 pROM = 32 / 46 (69,6%) 16 SP + 5 pROM = 21 / 46 (45,7%) 16 SP + 5 pROM = 21 / 46 (45,7%) Tiết kiệm 11 BSRAM!
Đối sánh Bit-Exact Mode 2 & Mode 0 + bù 0 / 144 logit lệch (C & RTL) 0 / 144 logit lệch (C & RTL) 0 / 144 logit lệch (C & RTL) PASS 100%
Kiểm chứng TI INA219 & Công suất Gowin S2: 1165mW · S1: 961,9mW (-17,4%) · S0: 675mW (-42,1%) S2: 1165mW · S1: 961,9mW (-17,4%) · S0: 675mW (-42,1%) S2: 1165mW · S1: 961,9mW (-17,4%) · S0: 675mW (-42,1%) PASS 100%

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages