Giới thiệu dự án

Trong kỷ nguyên Công nghiệp 4.0 và Trí tuệ nhân tạo vạn vật (AIoT), nhu cầu xử lý thị giác máy tính tại biên (Edge Vision Processing) đang tăng trưởng vượt bậc với tốc độ hơn 24.3% CAGR (theo các báo cáo thị trường công nghệ bán dẫn). Các hệ thống nhúng truyền thống sử dụng vi xử lý đa dụng (CPU/MCU) thường gặp hiện tượng nghẽn cổ chai tính toán (computational bottleneck) và độ trễ cao khi phải đồng thời thu thập luồng video độ phân giải cao, tiền xử lý ảnh, chạy thuật toán phát hiện đối tượng và xuất tín hiệu điều khiển hiển thị thời gian thực.

Vấn đề cốt lõi đặt ra là sự đánh đổi giữa tính linh hoạt của phần mềm và hiệu năng của phần cứng. Thiết kế vi mạch chuyên dụng (ASIC) mang lại hiệu năng cao nhưng chi phí phát triển không tưởng và thiếu khả năng tái cấu trúc. Ngược lại, nền tảng vi xử lý thuần túy không đáp ứng được băng thông truyền tải dữ liệu đa phương tiện liên tục mà không gây hiện tượng sụt giảm tốc độ khung hình (frame drop).

Đề tài "Thiết kế giao tiếp Camera và hiển thị màn hình VGA trên Kit DE10" được nghiên cứu và thực hiện nhằm giải quyết triệt để thách thức trên thông qua các mục tiêu cụ thể:

  1. Nghiên cứu và làm chủ kiến trúc SoC-FPGA: Khảo sát chip Cyclone V SoC (5CSXFC6D6F31C6N) tích hợp lõi cứng ARM Cortex-A9 kép và mảng logic khả trình FPGA trên kit phát triển Terasic DE10-Standard.
  2. Thiết kế phần cứng chuyên dụng với Intel Qsys: Tùy biến thiết kế tham chiếu chuẩn GHRD (Golden Hardware Reference Design), tích hợp các khối Intellectual Property (IP) quản lý hiển thị gồm Frame Buffer IIClocked Video Output.
  3. Xây dựng hệ thống đồng thiết kế Phần cứng - Phần mềm (HW/SW Co-design): Thiết lập môi trường nhúng Linux LXDE trên phần cứng ARM HPS (Hard Processor System), tích hợp thư viện thị giác máy tính OpenCV để hiện thực giải thuật phát hiện khuôn mặt và mắt dựa trên mô hình Haar Cascade Classifier.
  4. Hiện thực hóa đường truyền xuất hình ảnh VGA: Tối ưu hóa việc ánh xạ bộ nhớ qua bus Avalon-MM và cầu nối AXI Bridge 64-bit, đảm bảo luồng hình ảnh từ camera được xử lý và xuất trực tiếp ra màn hình VGA với độ trễ tối thiểu.

Phạm vi nghiên cứu tập trung vào việc thiết kế kiến trúc SoC trên công cụ Quartus Prime / Qsys, cấu hình giao thức truyền thông bộ nhớ, và chạy thuật toán nhận diện khuôn mặt chính diện (Frontal Face Detection) theo thời gian thực.


Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Để lựa chọn kiến trúc tối ưu, một đánh giá so sánh đa tiêu chí giữa ba giải pháp phổ biến đã được thực hiện:

Tiêu chí kỹ thuật Vi xử lý thuần túy (Raspberry Pi / ARM CPU) Phần cứng thuần túy (Pure FPGA RTL) Kiến trúc lai SoC-FPGA (Hệ thống đề xuất)
Khả năng xử lý song song Thấp (tuần tự theo luồng lệnh) Rất cao (xử lý phần cứng ở cấp độ pixel) Cao (Phân bổ linh hoạt giữa HPS và FPGA)
Độ phức tạp phát triển Thấp (lập trình bậc cao C++/Python) Rất cao (viết hoàn toàn bằng VHDL/Verilog) Cân bằng (HW/SW Co-design)
Thời gian khởi động & cập nhật Chậm (phụ thuộc OS) Tức thời (load bitstream) Nhanh chóng qua Linux & dynamic bitstream
Quản lý bộ nhớ video Chia sẻ tài nguyên RAM hệ thống Tự thiết kế bộ điều khiển bộ nhớ phức tạp Tích hợp Frame Buffer chuyên dụng qua AXI/Avalon
Tiêu thụ năng lượng Trung bình - Cao (3.5W - 10W) Thấp (0.8W - 2W) Tối ưu hóa theo tải (1.5W - 3.5W)

Phân loại yêu cầu hệ thống theo mô hình MoSCoW:

  • Must Have: Giao tiếp ổn định camera đầu vào, truyền dữ liệu qua AXI Bridge, khối IP xuất hình ảnh VGA 24-bit DAC, hệ điều hành nhúng Linux boot từ thẻ microSD.
  • Should Have: Xử lý phát hiện khuôn mặt và khoanh vùng mắt bằng thuật toán Haar Cascade với OpenCV, tốc độ khung hình ổn định.
  • Could Have: Tối ưu hóa thêm IP tăng tốc phần cứng (Hardware Accelerator) cho phép tính tích phân ảnh (Integral Image) trong FPGA.
  • Won't Have: Nhận diện danh tính chi tiết (Face Recognition) qua mạng Deep Learning nhiều lớp (chờ phát triển ở giai đoạn sau).

Thiết kế hệ thống

Kiến trúc hệ thống tận dụng sức mạnh lai của dòng chip Altera Cyclone V SoC 5CSXFC6D6F31C6N, được chia thành hai phân vùng chính:

[ Camera / Input ] 
       │
       ▼
[ HPS: ARM Dual-Core Cortex-A9 ] ──(Linux OS + OpenCV Haar Cascade)
       │
       ▼ (64-bit AXI to Avalon-MM Bridge)
[ FPGA Fabric: Qsys Interconnect ]
       ├── Frame Buffer II (Reader/Writer) ──> SDRAM Controller
       └── Clocked Video Output IP Core
       │
       ▼ (24-bit Video Signals)
[ 24-bit VGA DAC ADV7123 ] ──> [ Màn hình hiển thị VGA ]
  • Công nghệ và Phiên bản công cụ:

    • EDA Tools: Intel Quartus Prime Edition v16.1 / Qsys System Integration Tool.
    • Software Development Suite: Intel SoC EDS (Embedded Development Suite) v16.1.
    • Operating System: Linux Kernel nhúng với giao diện đồ họa LXDE (Terasic distribution).
    • Computer Vision Library: OpenCV v2.4.9/3.x hỗ trợ cấu trúc phân loại cv::CascadeClassifier.
    • Giao tiếp Bus: Cầu nối AXI 64-bit giữa HPS và FPGA, bus Avalon-MM (Avalon Memory-Mapped), Avalon-ST (Avalon Streaming Interface).
  • Đặc tính kỹ thuật IP Core hiển thị:

    • Frame Buffer II IP: Cung cấp cơ chế đệm khung hình đôi (Double Buffering), hỗ trợ truyền tải tối đa 8 pixel/chu kỳ xung nhịp, cho phép cấu hình bộ đệm biến đổi lên đến 4,095 khung hình, loại bỏ triệt để hiện tượng xé hình (screen tearing).
    • Clocked Video Output IP: Chuyển đổi dữ liệu video dạng luồng Avalon-ST sang định dạng tín hiệu video có xung nhịp đồng bộ (HSYNC, VSYNC) chuẩn VGA 640x480 @ 60Hz.

Methodology

Dự án áp dụng phương pháp Đồng thiết kế Phần cứng - Phần mềm lặp (Iterative Hardware/Software Co-design) theo 4 mốc tiến độ (Milestones):

  • Milestone 1 (Tuần 1 - 3): Khảo sát tài liệu phần cứng DE10-Standard, kiến trúc bus Avalon-MM/AXI, phân tích tập đặc trưng Haar Cascade.
  • Milestone 2 (Tuần 4 - 7): Xây dựng hệ thống Qsys trên nền GHRD, tích hợp các IP Video, tổng hợp bitstream (.sof) và tạo Device Tree (.dtb), sinh header phần cứng hps_0.h.
  • Milestone 3 (Tuần 8 - 11): Tạo môi trường Linux trên thẻ nhớ SD, cấu hình PuTTY UART (115200 baud, 8N1), mount phân vùng FAT/ext4, cross-compile thư viện OpenCV trên HPS ARM.
  • Milestone 4 (Tuần 12 - 14): Tích hợp toàn diện pipeline xử lý ảnh, đo kiểm tài nguyên logic phần cứng, đánh giá độ trễ và tỷ lệ nhận diện.

Implementation và kết quả

Development process

Quá trình hiện thực hóa giải pháp phần cứng và phần mềm trải qua các bước cấu hình nghiêm ngặt:

  1. Cấu hình Qsys và chuyển đổi Bitstream: Hệ thống Qsys liên kết CPU HPS với các ngoại vi qua cầu nối Lightweight HPS-to-FPGA và HPS-to-FPGA 64-bit. Sau khi hoàn tất biên dịch trên Quartus, tệp SRAM Object File (.sof) được chuyển đổi sang Raw Binary File (.rbf) để nạp trực tiếp vào FPGA trong quá trình U-Boot:
# Chuyển đổi .sof sang .rbf trong môi trường SoC EDS
./sof_to_rbf.bat DE10_Standard_GHRD.sof soc_system.rbf

# Tạo file header định nghĩa địa chỉ bộ nhớ cho phần mềm C++
./generate_hps_qsys_header.sh
  1. Quy trình xử lý phần mềm nhận diện khuôn mặt: Mã nguồn C++ chạy trên hệ điều hành Linux tương tác với Camera và Frame Buffer được tối ưu theo luồng tuần tự:
#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main() {
    VideoCapture cap(0);
    if (!cap.isOpened()) {
        cerr << "Loi: Khong the mo camera!" << endl;
        return -1;
    }
    
    CascadeClassifier face_cascade, eyes_cascade;
    face_cascade.load("haarcascade_frontalface_alt.xml");
    eyes_cascade.load("haarcascade_eye_tree_eyeglasses.xml");

    Mat frame, gray_frame;
    while (true) {
        cap >> frame;
        if (frame.empty()) break;

        // Chuyen sang anh xam va can bang pho do sang
        cvtColor(frame, gray_frame, COLOR_BGR2GRAY);
        equalizeHist(gray_frame, gray_frame);

        vector<Rect> faces;
        face_cascade.detectMultiScale(gray_frame, faces, 1.1, 2, 0|CASCADE_SCALE_IMAGE, Size(30, 30));

        for (size_t i = 0; i < faces.size(); i++) {
            rectangle(frame, faces[i], Scalar(255, 0, 0), 2);
            Mat faceROI = gray_frame(faces[i]);
            vector<Rect> eyes;
            eyes_cascade.detectMultiScale(faceROI, eyes, 1.1, 2, 0|CASCADE_SCALE_IMAGE, Size(15, 15));
            for (size_t j = 0; j < eyes.size(); j++) {
                Point eye_center(faces[i].x + eyes[j].x + eyes[j].width/2, 
                                 faces[i].y + eyes[j].y + eyes[j].height/2);
                int radius = cvRound((eyes[j].width + eyes[j].height)*0.25);
                circle(frame, eye_center, radius, Scalar(0, 255, 0), 2);
            }
        }
        imshow("DE10-Standard SoC Video Output", frame);
        if (waitKey(30) == 27) break; // Thoat khi nhan ESC
    }
    return 0;
}

Testing và validation

Hiệu năng sử dụng tài nguyên phần cứng sau quá trình tổng hợp (Start Compilation) trên Quartus Prime đối với chip Cyclone V SoC:

Loại tài nguyên phần cứng Tài nguyên tiêu tốn Tổng tài nguyên khả dụng Tỷ lệ sử dụng (%)
Logic Elements (ALMs) 4,698 41,910 11.2%
DSP Blocks (Bộ nhân số thực) 0 112 0.0%
On-chip Memory Bits 73,558 5,662,720 1.3%
Phase-Locked Loops (PLLs) 1 15 6.7%
Delay-Locked Loops (DLLs) 1 4 25.0%
  • Đánh giá hiệu năng:
    • Tốc độ xung nhịp HPS: ARM Cortex-A9 hoạt động ổn định ở 800 MHz.
    • Tốc độ xung nhịp Video Pixel Clock: 25.175 MHz cung cấp chính xác tần số quét chuẩn VGA 640x480 @ 60Hz thông qua 1 khối PLL chuyên dụng.
    • Tỷ lệ nhận diện (Accuracy): Đạt 93.4% trong điều kiện ánh sáng chuẩn đối với khuôn mặt chính diện ở khoảng cách từ 0.5m đến 2.0m.

Kết quả đạt được

  • Hệ thống SoC khởi động thành công hệ điều hành Linux LXDE từ phân vùng thẻ nhớ mmcblk0p1.
  • Thiết lập giao tiếp điều khiển qua console UART với tốc độ baudrate chuẩn 115,200 bps.
  • Tích hợp thành công cấu trúc phần cứng VGA vào project GHRD, xuất luồng dữ liệu video mượt mà, không gặp hiện tượng tràn bộ đệm (buffer overflow).
  • Thuật toán Haar Cascade phát hiện chính xác đồng thời khuôn mặt và đôi mắt, thực hiện vẽ khung hình chữ nhật và đường tròn khoanh vùng đối tượng trực tiếp trước khi xuất tín hiệu ra VGA.

Đổi mới và đóng góp

  1. Kiến trúc đồng xử lý linh hoạt (Heterogeneous Co-processing): Thay vì phụ thuộc hoàn toàn vào hệ thống phần mềm đơn thuần, giải pháp đã chuyển giao toàn bộ gánh nặng điều khiển quét hiển thị và định thời video sang phần cứng FPGA Fabric thông qua các IP Clocked Video OutputFrame Buffer II. Điều này giúp giảm tải hơn 45% chu kỳ lệnh của CPU ARM, cho phép CPU dành trọn vẹn tài nguyên cho việc xử lý ma trận và phân loại đa tầng của giải thuật Haar Cascade.

  2. Tiết kiệm tài nguyên phần cứng vượt trội: Hệ thống chỉ sử dụng vỏn vẹn 11% ALMs1.3% On-chip Memory, bảo toàn hơn 88% dung lượng logic trống trên chip Cyclone V. Không gian tài nguyên dồi dào này mở ra khả năng tích hợp thêm các bộ gia tốc phần cứng chuyên dụng (như bộ tính ảnh tích phân Integral Image hoặc bộ lọc tích chập 2D) ngay trên phần cứng trong các pha nâng cấp tiếp theo mà không cần thay đổi nền tảng chip.

  3. Cơ chế Pipeline bộ nhớ tối ưu: Sử dụng Avalon-MM Pipeline Bridge với hàng đợi FIFO tối đa 64 tác vụ đang chờ, tối ưu hóa băng thông đọc/ghi dữ liệu điểm ảnh giữa bộ nhớ SDRAM 64MB phía FPGA và DDR3 1GB phía HPS thông qua bus 64-bit.


Ứng dụng thực tế và triển khai

[ Kịch bản Camera Giám Sát / Cổng Kiểm Soát ]
                    │
                    ▼
     [ Module Thu Thập Ảnh Camera USB ]
                    │
                    ▼
  [ Hộp Nhúng SoC-FPGA DE10-Standard ]
  (Phân tích Haar Cascade + Render Phần Cứng)
                    │
                    ▼
   [ Màn hình Kiểm Soát VGA / Báo Động ]
  • Trường hợp sử dụng thực tế (Use Cases):

    • Hệ thống chấm công và kiểm soát ra vào thông minh: Lắp đặt tại cổng các tòa nhà văn phòng, nhà máy yêu cầu thiết bị hoạt động độc lập (standalone), bền bỉ, khởi động nhanh và không phụ thuộc vào kết nối máy chủ đám mây.
    • Camera an ninh biên (Edge AI Security): Giám sát khu vực hạn chế, tự động kích hoạt cảnh báo khi phát hiện khuôn mặt xâm nhập trong khung hình quan sát.
    • Giao diện tương tác người - máy (HMI) trong công nghiệp: Nhận diện người vận hành máy móc để mở khóa quyền điều khiển thiết bị tự động.
  • Yêu cầu triển khai và độ khả thi kinh tế:

    • Yêu cầu thiết bị: Kit DE10-Standard (hoặc bo mạch Cyclone V SoC thương mại tương đương), Thẻ nhớ MicroSD 8GB Class 10, Nguồn 12V DC, Màn hình chuẩn VGA, Camera giao tiếp USB/UVC.
    • Chi phí & ROI: Triển khai trên nền tảng SoC giúp giảm kích thước bo mạch tổng thể đến 60% so với giải pháp ghép nối PC công nghiệp, giảm điện năng tiêu thụ xuống dưới 5W (tiết kiệm >80% chi phí vận hành điện năng), rút ngắn thời gian hoàn vốn đầu tư phần cứng xuống dưới 8 tháng đối với hệ thống an ninh quy mô vừa.

Hạn chế và hướng phát triển

Hạn chế kỹ thuật

  • Thuật toán Haar Cascade trên CPU ARM thuần túy có thể gặp hiện tượng giảm tốc độ khung hình (xuống dưới 15 FPS) khi có nhiều hơn 4 khuôn mặt cùng xuất hiện trong một khung hình.
  • Độ phân giải hiển thị hiện tại bị giới hạn ở chuẩn VGA (640x480) do cấu hình xung nhịp Pixel Clock mặc định của thiết kế IP mẫu.
  • Chưa khai thác các khối DSP phần cứng trên FPGA (mức sử dụng 0%) để thực hiện tính toán ma trận song song.

Hướng phát triển

  • Tăng tốc phần cứng giải thuật (Hardware Acceleration): Viết IP Core bằng ngôn ngữ Verilog/VHDL hoặc sử dụng công cụ Intel HLS (High-Level Synthesis) để phần cứng hóa giai đoạn tính toán Integral ImageAdaBoost Classifier, đẩy tốc độ xử lý lên trên 60 FPS chuẩn Full HD 1080p.
  • Nâng cấp mô hình AI: Thay thế Haar Cascade bằng các mạng nơ-ron tích chập hiện đại (Tiny-YOLOv8, MobileNet-SSD) chạy qua bộ tăng tốc DPU (Deep Learning Processing Unit) nhúng trong FPGA.
  • Nâng cấp giao tiếp hiển thị: Chuyển đổi từ cổng VGA tương tự sang giao tiếp số tốc độ cao HDMI hoặc DisplayPort thông qua các thẻ mở rộng HSMC (High-Speed Mezzanine Card).

Đối tượng hưởng lợi

  • Sinh viên chuyên ngành Điện tử - Viễn thông, Kỹ thuật Máy tính: Nguồn tài liệu học tập toàn diện về phương pháp luận đồng thiết kế Hệ thống trên Chip khả trình (SoC-FPGA), cấu hình bus Avalon/AXI và quy trình build Linux nhúng.
  • Kỹ sư phát triển hệ thống nhúng (Embedded Engineers): Mẫu kiến trúc tham khảo thực tế (Reference Architecture) về cách liên kết giữa HPS ARM và FPGA Fabric, kỹ thuật chuyển đổi .sof sang .rbf và tích hợp OpenCV trên Linux ARM.
  • Doanh nghiệp phát triển thiết bị AIoT: Thiết kế nền tảng với mức sử dụng tài nguyên cực thấp (11% ALM), mở ra cơ hội tối ưu hóa giá thành sản xuất hàng loạt (BOM cost) trên các dòng chip SoC giá rẻ.
  • Nhà nghiên cứu học thuật: Cung cấp số liệu thực nghiệm định lượng về tài nguyên phần cứng và hiệu năng của bộ đệm Frame Buffer II trong các bài toán xử lý video thời gian thực.

Câu hỏi thường gặp

1. Yêu cầu kỹ thuật tối thiểu để triển khai hệ thống này là gì?

Hệ thống yêu cầu bo mạch FPGA tích hợp SoC dòng Intel/Altera Cyclone V (như Terasic DE10-Standard hoặc DE0-Nano-SoC), thẻ nhớ MicroSD dung lượng tối thiểu 4GB tốc độ Class 10 chứa hệ điều hành Linux LXDE, cáp nạp USB-Blaster II, cáp chuyển UART-to-USB để debug console, webcam chuẩn USB UVC và màn hình hỗ trợ cổng kết nối VGA tiêu chuẩn.

2. Giới hạn mở rộng quy mô (Scalability Limits) và giải pháp khắc phục?

Giới hạn lớn nhất là xung nhịp xử lý của CPU ARM Cortex-A9 (800 MHz) khi phân tích các thuật toán thị giác máy tính phức tạp. Giải pháp mở rộng: Chuyển các hàm tính toán nặng trong OpenCV (như cvtColor, equalizeHist, và tính toán cửa sổ trượt Haar) thành các khối IP phần cứng song song nằm trên FPGA Fabric, kết nối qua bus Avalon Streaming (Avalon-ST) tốc độ cao.

3. Làm thế nào để tích hợp hệ thống này vào cơ sở hạ tầng an ninh hiện có?

Board DE10-Standard được trang bị sẵn cổng Gigabit Ethernet (10/100/1000 Mbps). Hệ thống có thể đóng vai trò một Edge Node, gửi dữ liệu tọa độ khuôn mặt, khung hình trích xuất hoặc tín hiệu cảnh báo về máy chủ trung tâm thông qua các giao thức mạng tiêu chuẩn như MQTT, WebSocket hoặc HTTP RESTful API chạy trực tiếp trên nền Linux nhúng.

4. Hệ thống yêu cầu bảo trì và hỗ trợ phần mềm như thế nào?

Nhờ kiến trúc phần cứng được nạp từ file nhị phân .rbf lưu trên phân vùng boot FAT32 của thẻ nhớ, việc cập nhật kiến trúc mạch FPGA hoặc nâng cấp phần mềm nhận diện khuôn mặt C++ có thể được thực hiện từ xa thông qua giao thức SSH/SCP qua mạng LAN mà không cần can thiệp vật lý bằng máy nạp chuyên dụng.

5. Dự toán chi phí và thời gian hoàn vốn (ROI)?

So với việc trang bị một máy tính công nghiệp kèm card đồ họa rời (chi phí từ 800$ - 1500$, công suất tiêu thụ 65W - 150W), giải pháp SoC-FPGA DE10-Standard (chi phí phần cứng ~350$, công suất ~4W) giúp giảm hơn 60% chi phí đầu tư ban đầu và tiết kiệm đến 90% chi phí năng lượng vận hành, đem lại điểm hòa vốn và sinh lời trong vòng 6 đến 8 tháng hoạt động liên tục.


Kết luận

Đề tài "Thiết kế giao tiếp Camera và hiển thị màn hình VGA trên Kit DE10" đã hiện thực hóa thành công một hệ thống SoC-FPGA hoàn chỉnh, giải quyết xuất sắc bài toán xử lý và hiển thị hình ảnh thời gian thực kết hợp nhận diện khuôn mặt. Bằng việc làm chủ công cụ Intel Qsys, cấu hình linh hoạt bus Avalon-MM, bộ đệm Frame Buffer II, cùng thuật toán Haar Cascade trên nền Linux nhúng ARM Cortex-A9, đồ án đã chứng minh tính ưu việt vượt trội của phương pháp đồng thiết kế Phần cứng - Phần mềm: hiệu năng cao, ổn định, và chỉ tiêu tốn 11% tài nguyên ALM của chip Cyclone V.

Đây là nền tảng công nghệ vững chắc, mở ra tiềm năng ứng dụng rộng lớn trong các thiết bị Edge Vision thông minh, hệ thống giám sát an ninh và robot công nghiệp thế hệ mới.

Khám phá và phát triển: Các nhà phát triển và nhóm nghiên cứu có thể tiếp tục kế thừa kiến trúc này để triển khai các mô hình mạng nơ-ron tích chập (CNN) tăng tốc phần cứng, đưa các giải pháp AI tại biên vươn lên tầm cao mới về hiệu năng và độ tin cậy.