Chuyển đến nội dung
AIOTAIOT
  • Trang chủ
  • Giới thiệu
  • Tin tức
  • Sản phẩm
  • Giải pháp
    • Chấm công bằng Face ID
    • Thiết bị đọc căn cước
    • IoT trong giáo dục
    • IoT trong quản lý năng lượng
    • IoT trong y tế
  • Đào tạo
    • Khóa đào tạo cơ bản
      • Hệ thống nhúng
      • LabVIEW FPGA
      • Phần cứng máy tính & Truyền thông công nghiệp
      • FPGA cơ bản
    • Khóa đào tạo nâng cao
      • LabVIEW FPGA High Performance
    • Tài liệu
  • PCCC
  • Liên hệ
  • icon
    097 186 8316    |    0839 799 889
Đào tạo, FPGA cơ bản, Khóa đào tạo cơ bản

BÀI 6.2: UART – CẦU NỐI GIAO TIẾP GIỮA “BRAIN” VÀ “MUSCLE”

Đã đăng trên 11/02/202609/02/2026 bởi ThaoNguyen
11
Th2

MODULE 6: GIAO TIẾP THẾ GIỚI THỰC & PROJECT CUỐI KHÓA

Chào bạn! Chúng ta đã học cách dùng PWM để điều khiển “sức mạnh” của phần cứng ở bài trước. Tuy nhiên, một hệ thống thông minh không thể chỉ tự chạy một mình; nó cần biết lắng nghe chỉ thị từ “cấp trên” hoặc báo cáo dữ liệu về trung tâm. Hôm nay, chúng ta sẽ học về UART – giao thức giao tiếp kinh điển để kết nối “Hệ phản xạ” Artix-7 với “Bộ não” i.MX93.

1. Giới thiệu

Chào mừng bạn đến với bài học về kỹ năng “giao tiếp” của vi mạch. Trong một hệ thống AIoT hoàn chỉnh như bộ kit chúng ta đang sử dụng, sự phối hợp là yếu tố sống còn. Hãy tưởng tượng nhân i.MX93 (Brain) chạy trí tuệ nhân tạo để nhận diện khuôn mặt, sau đó nó cần ra lệnh cho chip Artix-7 (Muscle) mở khóa cửa ngay lập tức. Làm sao để hai thực thể này hiểu nhau? Câu trả lời chính là UART (Universal Asynchronous Receiver-Transmitter).

UART là giao thức truyền tin “nối tiếp” lâu đời nhưng cực kỳ mạnh mẽ nhờ sự đơn giản: chỉ cần 2 sợi dây để nói và nghe. Trong công nghiệp, UART được dùng để cấu hình máy móc, đọc dữ liệu cảm biến hoặc gỡ lỗi hệ thống. Với chip Artix-7 XC7A100T, chúng ta sẽ không dùng một cổng UART có sẵn, mà chúng ta sẽ tự tay “đúc” ra một bộ UART từ các cổng logic. Điều này giúp FPGA có thể giao tiếp ở tốc độ cực cao và hoàn toàn độc lập với các tác vụ khác.

2. Nội dung chính

2.1. Khái niệm UART: “Nói chuyện qua một sợi chỉ”

Hệ nhị phân chúng ta học có 8 bit (1 Byte). Thông thường, để truyền 8 bit này song song, ta cần ít nhất 8 sợi dây. Nhưng nếu khoảng cách xa, việc đi nhiều dây rất tốn kém và dễ nhiễu. UART giải quyết bằng cách xếp hàng 8 bit đó và gửi từng bit một trên duy nhất 1 sợi dây.

  • Tx (Transmit): Chân truyền dữ liệu (Nói).
  • Rx (Receive): Chân nhận dữ liệu (Nghe).
  • Quy tắc: Khi không nói gì, đường dây luôn ở mức cao (‘1’). Khi bắt đầu nói, ta kéo xuống mức thấp (‘0’) để làm hiệu lệnh (Start bit).

2.2. Ví dụ đời sống: Mã Morse hoặc Xếp hàng qua cửa hẹp

Hãy tưởng tượng một nhóm 8 người (8 bit) muốn đi qua một cánh cửa rất hẹp chỉ vừa một người:

  1. Người chỉ huy (Bộ truyền UART) sẽ ra hiệu: “Chuẩn bị!” (Start bit).
  2. Sau đó, từng người một lần lượt bước qua cửa theo một nhịp điệu đều đặn (Baud rate).
  3. Khi người cuối cùng qua xong, người chỉ huy hô: “Hết!” (Stop bit).

Ở đầu bên kia, người đón (Bộ nhận UART) chỉ cần đứng đợi và đếm đúng nhịp điệu đó để tập hợp lại đủ 8 người ban đầu.

2.3. Baud Rate – Tầm quan trọng của “Sự đồng điệu”

Vì UART là giao tiếp không đồng bộ (Asynchronous) – nghĩa là không có dây dẫn nhịp chung – nên hai bên phải tự thỏa thuận một tốc độ gọi là Baud rate (số bit truyền trong 1 giây).

  • Lưu ý: Nếu i.MX93 nói với tốc độ 115.200 bit/giây, nhưng Artix-7 lại nghe với tốc độ 9.600 bit/giây, kết quả sẽ chỉ là những ký tự rác vô nghĩa.
  • Tư duy FPGA: Để nhận diện đúng bit giữa dòng điện chạy nhanh, FPGA sẽ sử dụng xung Clock 50MHz để “lấy mẫu” (sampling) đường dây Rx nhiều lần (thường là 16 lần) cho mỗi bit. Việc này giúp đảm bảo lấy được giá trị ở chính giữa bit, tránh sai số.

2.4. Kết nối trên bo AIOT-ARTIX7 và i.MX93

Trên hệ thống của chúng ta, sự phối hợp diễn ra như sau:

  • Vật lý: Chip Artix-7 nối với chip i.MX93 thông qua các đường mạch UART tích hợp sẵn trên PCB.
  • Ứng dụng: Bạn viết code VHDL tạo bộ UART trên Artix-7 để gửi giá trị của 8 Switch lên. Trên i.MX93, bạn mở một cửa sổ Terminal (như Minicom hoặc ứng dụng Python) để đón nhận.
  • Kết quả: Khi bạn gạt Switch trên bo FPGA, những con số hoặc ký tự tương ứng sẽ hiện lên màn hình của hệ điều hành trên i.MX93 ngay tức thì.

3. Tổng kết

  • UART: Truyền dữ liệu nối tiếp (từng bit một) để tiết kiệm dây dẫn và tài nguyên giao tiếp.
  • Cấu tạo khung tin: Gồm Start bit (0), 8 bit dữ liệu, và ít nhất 1 Stop bit (1).
  • Baud rate: Tốc độ truyền tin, bắt buộc phải giống nhau ở cả hai đầu để giải mã chính xác.
  • Sức mạnh FPGA: Bộ UART được thiết kế bằng phần cứng (FSM), giúp nó chạy bền bỉ mà không bị “treo” như phần mềm.

Kiểm tra kiến thức

Hãy cùng kiểm tra lại kiến thức về kỹ năng giao tiếp UART này.

  1. Câu 1: Trong giao tiếp UART, cần tối thiểu bao nhiêu sợi dây tín hiệu để hai thiết bị có thể vừa nói vừa nghe lẫn nhau (không tính dây đất)?
    A. 1 sợi.
    B. 2 sợi (Tx và Rx).
    C. 8 sợi.
    D. 4 sợi.
    Xem đáp án & Giải thích

    Đáp án đúng: B

    Giải thích: Để giao tiếp song công (vừa truyền vừa nhận cùng lúc), ta cần tối thiểu 2 sợi dây: một sợi Tx để truyền và một sợi Rx để nhận.

  2. Câu 2: “Start bit” trong khung truyền UART có giá trị logic là bao nhiêu?
    A. Luôn là mức cao (‘1’).
    B. Luôn là mức thấp (‘0’).
    C. Thay đổi tùy theo dữ liệu.
    D. Là mức điện áp 5V.
    Xem đáp án & Giải thích

    Đáp án đúng: B

    Giải thích: Đường dây UART khi rảnh luôn ở mức cao. Tín hiệu Start bit phải là mức thấp để “đánh thức” bộ nhận rằng một khung tin đang bắt đầu.

  3. Câu 3: Chuyện gì xảy ra nếu thiết bị gửi đặt Baud rate là 9600 nhưng thiết bị nhận đặt là 115200?
    A. Dữ liệu truyền nhanh hơn.
    B. Thiết bị nhận sẽ bị cháy chip.
    C. Dữ liệu nhận được sẽ bị sai lệch hoàn toàn (ký tự rác).
    D. Hệ thống tự động điều chỉnh về tốc độ trung bình.
    Xem đáp án & Giải thích

    Đáp án đúng: C

    Giải thích: Vì không có dây xung nhịp chung, sai lệch về thời gian lấy mẫu (Baud rate) sẽ khiến bộ nhận đọc sai các bit, dẫn đến dữ liệu vô nghĩa.

  4. Câu 4: Tại sao trong FPGA chúng ta thường “lấy mẫu” (oversampling) tín hiệu UART 16 lần cho mỗi bit?
    A. Để làm cho đèn LED sáng hơn.
    B. Để đảm bảo đọc được giá trị ở giữa bit, giúp giảm thiểu sai số do lệch nhịp giữa hai thiết bị.
    C. Để tiết kiệm năng lượng.
    D. Để có thể truyền được 16 bit cùng lúc.
    Xem đáp án & Giải thích

    Đáp án đúng: B

    Giải thích: Việc lấy mẫu nhiều lần giúp tìm được điểm ổn định nhất (ở giữa bit) để đọc dữ liệu, giúp tăng độ tin cậy khi hai thiết bị có xung nhịp không hoàn toàn khớp nhau.

  5. Câu 5: Vai trò chính của UART trong cặp bài trùng i.MX93 và Artix-7 là gì?
    A. Cung cấp nguồn điện cho i.MX93.
    B. Là kênh trao đổi thông tin, giúp “Bộ não” i.MX93 ra lệnh và nhận báo cáo từ “Phần cứng” Artix-7.
    C. Để kết nối Internet cho FPGA.
    D. Để thay thế xung Clock 50MHz.
    Xem đáp án & Giải thích

    Đáp án đúng: B

    Giải thích: UART đóng vai trò là cầu nối giao tiếp (Communication Bridge) then chốt, gắn kết phần xử lý cấp cao của MPU với xử lý thời gian thực của FPGA.

“Chúc mừng bạn đã nắm vững cách ‘kết nối’ các thành phần hệ thống! Bài học tiếp theo sẽ giúp bạn làm chủ dữ liệu trên i.MX93 để chuẩn bị cho Project cuối khóa.”

Tiếp theo Bài 6.3: Quản lý tài nguyên trên i.MX93 →

Mục nhập này đã được đăng trong Đào tạo, FPGA cơ bản, Khóa đào tạo cơ bản và được gắn thẻ FPGA AIOT-ARTIX7.
ThaoNguyen

BÀI 6.1: PWM (ĐIỀU CHẾ ĐỘ RỘNG XUNG) – ĐIỀU KHIỂN ĐỘ SÁNG VÀ TỐC ĐỘ
BÀI 6.3: QUẢN LÝ TÀI NGUYÊN TRÊN i.MX93 – KHI “BỘ NÃO” LÊN TIẾNG

Để lại một bình luận Hủy

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Bài viết mới
  • DỰ ÁN THỰC HÀNH – BỘ ĐIỀU KHIỂN LED ĐA NĂNG (SMART LED CONTROLLER)
  • BÀI 6.3: QUẢN LÝ TÀI NGUYÊN TRÊN i.MX93 – KHI “BỘ NÃO” LÊN TIẾNG
  • BÀI 6.2: UART – CẦU NỐI GIAO TIẾP GIỮA “BRAIN” VÀ “MUSCLE”
  • BÀI 6.1: PWM (ĐIỀU CHẾ ĐỘ RỘNG XUNG) – ĐIỀU KHIỂN ĐỘ SÁNG VÀ TỐC ĐỘ
  • BÀI 5.3: MÁY TRẠNG THÁI (FSM) – TƯ DUY ĐIỀU KHIỂN THÔNG MINH
Danh mục
  • Đào tạo
  • FPGA cơ bản
  • Giải pháp
  • IoT trong giáo dục
  • Khóa đào tạo cơ bản
  • Khóa đào tạo nâng cao
  • LabVIEW FPGA
  • LabVIEW FPGA High Performance
  • Phần cứng máy tính & Truyền thông công nghiệp
  • Sản xuất công nghiệp
  • Thiết bị dịch vụ thông minh
  • Thiết bị đọc căn cước
  • Tin tức

CÔNG TY CỔ PHẦN HỆ THỐNG AIOT

VPGD: Số A21-TT9 Đường Foresa 1 KĐT Xuân Phương, Phường Xuân Phương, Hà Nội.

Địa chỉ kinh doanh: Đường Phú Diễn, Tổ dân phố 18, phường Phú Diễn, Thành phố Hà Nội, Việt Nam

Hotline/Zalo: 097 186 8316 | 0839 799 889

Email: aiot@aiots.vn

VỀ CHÚNG TÔI

Giới thiệu

Sản phẩm

Giải pháp

Đào tạo

Tin tức

QUY ĐỊNH & CHÍNH SÁCH

Chính sách thanh toán

Chính sách vận chuyển

Chính sách bảo hành

Chính sách đổi trả

Chính sách bảo mật

ĐỊA CHỈ VĂN PHÒNG GIAO DỊCH

Copyright 2024 © Bản quyền thuộc về AIOT. Thiết kế bởi Jamina JSC
  • Trang chủ
  • Giới thiệu
  • Tin tức
  • Sản phẩm
  • Giải pháp
    • Chấm công bằng Face ID
    • Thiết bị đọc căn cước
    • IoT trong giáo dục
    • IoT trong quản lý năng lượng
    • IoT trong y tế
  • Đào tạo
    • Khóa đào tạo cơ bản
      • Hệ thống nhúng
      • LabVIEW FPGA
      • Phần cứng máy tính & Truyền thông công nghiệp
      • FPGA cơ bản
    • Khóa đào tạo nâng cao
      • LabVIEW FPGA High Performance
    • Tài liệu
  • PCCC
  • Liên hệ
Zalo
Phone

Đăng nhập

Quên mật khẩu?