Công nghệ

Bạn có thể mô tả chi tiết cụ thể tất cả các kiểu kết nối sử dụng trong mạch điện tử thường được sử dụng ngày nay không?

Written by lbtmicr06

Có. Nhưng nếu nói “tất cả” theo nghĩa tuyệt đối thì có hàng trăm chuẩn/giao thức khác nhau. Cách hữu ích hơn là chia chúng thành các nhóm giao tiếp/kết nối thường gặp trong mạch điện tử hiện nay, từ mức dây tín hiệu đơn giản đến các bus tốc độ cao.

Đặc biệt nếu bạn đang học STM32, PCB và Altium, bạn nên nắm theo sơ đồ dưới đây.

1. Trước tiên: phân biệt “kết nối” và “giao thức”

Một mạch điện tử thường có 3 lớp:

┌──────────────────────────────────────┐
│  ỨNG DỤNG / GIAO THỨC                │
│  Modbus, CANopen, USB HID, MQTT...   │
├──────────────────────────────────────┤
│  GIAO TIẾP / BUS                     │
│  UART, SPI, I2C, CAN, USB, Ethernet  │
├──────────────────────────────────────┤
│  TÍN HIỆU VẬT LÝ                     │
│  GPIO, single-ended, differential    │
│  điện áp, dòng điện, connector...    │
└──────────────────────────────────────┘

Ví dụ:

UART là cách truyền dữ liệu.

RS-485 là chuẩn truyền tín hiệu vật lý.

Modbus RTU là giao thức chạy bên trên RS-485.

Có thể hình dung:

Modbus RTU
    ↓
   RS-485
    ↓
  TX/RX vật lý
    ↓
   Dây A/B

Đây là một điểm cực kỳ quan trọng khi học điện tử.


2. GPIO – kết nối đơn giản nhất

GPIO = General Purpose Input/Output.

Đây không hẳn là một “giao thức”, mà là chân số có thể đọc hoặc xuất mức logic.

Ví dụ STM32:

STM32
 ┌───────┐
 │       │
 │ PA0 ──┼─────── LED
 │       │
 │ PA1 ──┼─────── BUTTON
 │       │
 └───────┘

Có hai trạng thái cơ bản:

HIGH ≈ 3.3 V
LOW  ≈ 0 V

Ứng dụng:

  • LED
  • nút nhấn
  • relay
  • cảm biến ON/OFF
  • transistor
  • chip Enable
  • Reset
  • Chip Select
  • tín hiệu điều khiển

Ví dụ dự án relay của bạn:

STM32 PC0 ────── Relay 1
STM32 PC1 ────── Relay 2
STM32 PC2 ────── Relay 3
STM32 PC3 ────── Relay 4

Đây là GPIO, không phải UART/SPI/I2C.


3. UART – giao tiếp nối tiếp

Đây là một trong những giao tiếp quan trọng nhất.

UART thường có:

MCU A              MCU B

TX  ────────────── RX
RX  ────────────── TX
GND ────────────── GND

Lưu ý:

TX của bên này nối RX của bên kia.

Không phải:

TX → TX
RX → RX

UART truyền dữ liệu như thế nào?

Ví dụ truyền:

10110010

Dữ liệu được truyền tuần tự theo thời gian.

Một khung UART thường:

        DATA
       ┌───────┐
       │       │
____   └───────┘   ______
    \_____________/
     Start 8bit Stop

Các thông số thường gặp:

9600 baud
19200
38400
57600
115200
1 Mbaud...

UART rất hay dùng cho:

  • debug
  • terminal
  • GPS
  • Bluetooth
  • module Wi-Fi
  • module GSM
  • RS-232
  • bootloader

Ví dụ bạn đang dùng STM32:

STM32 USART1
     │
     ├── TX ───── USB-UART ─── PC
     └── RX ───── USB-UART ─── PC

Terminal trên máy tính có thể hiện:

NEC Address = 0x00
Command     = 0x45

4. I²C – bus 2 dây

I²C cực kỳ phổ biến trong mạch điện tử.

Có hai dây:

SCL
SDA

Ví dụ:

             ┌── EEPROM
             │
STM32 ───────┼── OLED
             │
             ├── RTC
             │
             └── Sensor

Tất cả dùng chung:

SDA ──────────────────────────
SCL ──────────────────────────

Mỗi thiết bị có địa chỉ:

OLED     0x3C
RTC      0x68
EEPROM   0x50

STM32 có thể nói:

Gửi đến 0x3C
→ ghi dữ liệu

hoặc:

Đọc thiết bị 0x68
→ lấy thời gian

I²C cần điện trở kéo lên

Ví dụ:

3.3V
 │
[4.7k]
 │
SDA ──────────────── devices

3.3V
 │
[4.7k]
 │
SCL ──────────────── devices

Đây là điều người mới học I²C rất hay bỏ qua.


5. SPI – bus tốc độ cao, rất phổ biến

SPI thường có:

SCK
MOSI
MISO
CS/SS

Ví dụ:

             ┌── Flash
             │
             ├── LCD
STM32 ───────┼── SD Card
             │
             └── Sensor

Các đường dùng chung:

SCK  ───────────────
MOSI ───────────────
MISO ───────────────

Nhưng mỗi thiết bị có CS riêng:

STM32
 │
 ├── SCK ───────┬── Flash
 │              ├── LCD
 │              └── SD
 │
 ├── MOSI ──────┬── Flash
 │              ├── LCD
 │              └── SD
 │
 ├── MISO ──────┬── Flash
 │              ├── LCD
 │              └── SD
 │
 ├── CS1 ───────── Flash
 ├── CS2 ───────── LCD
 └── CS3 ───────── SD

SPI thường nhanh hơn I²C.

Dùng cho:

  • TFT LCD
  • OLED
  • Flash
  • ADC
  • DAC
  • SD card
  • cảm biến
  • Ethernet controller
  • RF module

6. I²S – âm thanh số

I²S rất quan trọng trong thiết bị audio.

Ví dụ:

STM32
 │
 │ I²S
 ▼
Audio Codec
 │
 ▼
Amplifier
 │
 ▼
Speaker

Các tín hiệu thường gặp:

SCK
WS/LRCK
SD
MCLK

Dùng cho:

  • microphone số
  • DAC
  • ADC audio
  • codec
  • amplifier audio
  • thiết bị âm thanh

7. CAN – giao tiếp cực kỳ quan trọng trong ô tô/công nghiệp

CAN = Controller Area Network.

Không giống UART:

UART:

MCU A ───────── MCU B

CAN cho phép nhiều node cùng trên một bus:

             ┌── MCU 1
             │
CAN_H ───────┼── MCU 2
CAN_L ───────┼── MCU 3
             │
             └── MCU 4

CAN sử dụng truyền differential:

CAN_H
CAN_L

Bus thường có điện trở kết thúc:

120Ω                         120Ω
 │                             │
CAN_H ─────────────────────────┤
CAN_L ─────────────────────────┤
 │                             │
Node                           Node

CAN được sử dụng rất nhiều trong:

  • ô tô
  • robot
  • máy công nghiệp
  • BMS
  • inverter
  • thiết bị điều khiển

Các giao thức cấp cao có thể chạy trên CAN như:

  • CANopen
  • J1939
  • các giao thức riêng của nhà sản xuất

8. RS-232

RS-232 là giao tiếp nối tiếp dùng nhiều trong thiết bị công nghiệp và thiết bị cũ.

Ví dụ:

MCU
 │ UART
 ▼
RS-232 Transceiver
 │
 ▼
DB9
 │
 ▼
PC

Điểm quan trọng:

UART ≠ RS-232

UART là logic bên trong MCU:

0V / 3.3V

RS-232 sử dụng mức điện áp khác và cần transceiver.

Ví dụ:

STM32 UART
     │
     ▼
MAX3232
     │
     ▼
RS-232

MAX3232 là một IC rất phổ biến cho việc này.


9. RS-485

RS-485 cũng cực kỳ phổ biến trong công nghiệp.

Khác UART thông thường:

UART:

TX
RX

RS-485:

A
B

Đây là truyền differential.

Ví dụ:

STM32
 │ UART
 ▼
RS485 Transceiver
 │
 ├──── A ─────────────── A
 └──── B ─────────────── B
                         │
                     Transceiver
                         │
                       MCU

Ưu điểm:

  • đi dây xa
  • chống nhiễu tốt
  • nhiều thiết bị cùng bus

Ứng dụng:

  • Modbus RTU
  • biến tần
  • đồng hồ điện
  • PLC
  • cảm biến công nghiệp
  • hệ thống điều khiển

Một hệ thống thường gặp:

STM32
 ↓
UART
 ↓
RS485
 ↓
Modbus RTU
 ↓
PLC / Sensor / Inverter

10. USB

USB là một hệ thống rất lớn.

Các phiên bản phổ biến:

  • USB 2.0
  • USB 3.x
  • USB Type-C

USB không đơn giản chỉ là:

D+
D-

USB còn có:

  • host
  • device
  • enumeration
  • endpoint
  • descriptor
  • class

Ví dụ STM32 làm USB Device:

STM32
 │
 USB
 │
 ▼
PC

Có thể tạo:

USB CDC
USB HID
USB Mass Storage
USB DFU

Ví dụ USB CDC có thể làm STM32 giống như một cổng COM.


11. Ethernet

Ethernet được dùng cực kỳ phổ biến trong mạng máy tính và thiết bị công nghiệp.

Một hệ thống STM32 có thể:

STM32
 │
 │ RMII/MII
 ▼
Ethernet PHY
 │
 │
MagJack
 │
 ▼
Ethernet cable
 │
 ▼
Router/Switch

Điểm quan trọng:

RMII/MII không phải Ethernet cable.

STM32 giao tiếp với PHY bằng:

RMII

PHY chuyển sang tín hiệu vật lý Ethernet.


12. Ethernet PHY

Ví dụ:

STM32
 │
 ├── TX
 ├── RX
 ├── REF_CLK
 └── MDIO/MDC
       │
       ▼
    PHY chip
       │
       ▼
Magnetic
       │
       ▼
 RJ45

Một số PHY phổ biến trong thiết kế MCU:

  • LAN8720
  • DP83848
  • KSZ8081
  • KSZ9031

13. LIN

LIN = Local Interconnect Network.

Thường gặp trong ô tô, đặc biệt với các thiết bị đơn giản.

Ví dụ:

ECU
 │
 LIN
 ├──────── Window
 ├──────── Mirror
 ├──────── Seat
 └──────── Sensor

LIN rẻ hơn CAN nhưng khả năng thấp hơn.


14. FlexRay

FlexRay từng được sử dụng cho các hệ thống ô tô yêu cầu thời gian thực và độ tin cậy cao.

Ngày nay không phổ biến bằng CAN/CAN-FD và Automotive Ethernet, nhưng vẫn đáng biết nếu học automotive electronics.


15. CAN-FD

CAN-FD là phiên bản mở rộng của CAN.

So với CAN truyền thống:

CAN
Data payload tối đa: 8 byte

CAN-FD:

Data payload lớn hơn
Tốc độ truyền dữ liệu cao hơn

Hiện nay CAN-FD rất đáng học nếu muốn làm:

  • automotive
  • BMS
  • motor controller
  • robotics
  • industrial control

16. JTAG

JTAG ban đầu được thiết kế cho boundary scan, nhưng ngày nay còn được dùng để debug/program MCU và FPGA.

Các tín hiệu thường gặp:

TCK
TMS
TDI
TDO
TRST

Ví dụ:

Debugger
   │
   ├── TCK
   ├── TMS
   ├── TDI
   └── TDO
   │
   ▼
 MCU / FPGA

17. SWD – rất quan trọng với STM32

SWD = Serial Wire Debug.

Đây là giao tiếp bạn rất nên học nếu đang làm STM32.

Chỉ cần:

SWDIO
SWCLK
GND

thường thêm:

NRST

Ví dụ:

ST-LINK
 │
 ├── SWDIO ───── STM32
 ├── SWCLK ───── STM32
 ├── NRST  ───── STM32
 └── GND   ───── STM32

Dùng để:

  • nạp firmware
  • debug
  • breakpoint
  • xem biến
  • step-by-step
  • đọc/ghi memory

18. ISP

Quay lại câu hỏi ban đầu của bạn.

ISP = In-System Programming.

Nó là phương pháp lập trình, không phải một bus duy nhất.

Ví dụ:

PC
 │
Programmer
 │
 ▼
MCU

MCU vẫn nằm trên PCB:

┌─────────────────────────┐
│ PCB                     │
│                         │
│ Programmer connector    │
│       │                 │
│       ▼                 │
│     STM32               │
│       │                 │
│     Relay               │
└─────────────────────────┘

19. ICSP

ICSP thường gặp ở Microchip/PIC.

ICSP = In-Circuit Serial Programming.

Ý tưởng gần giống ISP:

Programmer
 │
 ├── Clock
 ├── Data
 ├── Reset/MCLR
 ├── VCC
 └── GND
      │
      ▼
     PIC

20. I3C

I3C là một chuẩn hiện đại phát triển từ ý tưởng I²C nhưng có tốc độ và khả năng tốt hơn.

Có thể xem đơn giản:

I²C
  ↓
I3C

I3C hướng tới:

  • cảm biến
  • điện thoại
  • thiết bị nhúng
  • hệ thống nhiều sensor

Trong thiết kế mới, I3C ngày càng đáng chú ý.


21. 1-Wire

1-Wire rất thú vị.

Có thể truyền dữ liệu bằng một dây dữ liệu.

Ví dụ cảm biến nhiệt độ:

MCU
 │
 │ DATA
 │
 ▼
DS18B20

Nguồn có thể dùng dây riêng hoặc một số cấu hình cho phép parasite power.

Ứng dụng:

  • nhiệt độ
  • ID chip
  • cảm biến đơn giản

22. PWM

PWM không phải bus dữ liệu theo nghĩa thông thường.

Nhưng nó là một phương thức kết nối/điều khiển cực kỳ phổ biến.

Ví dụ:

MCU
 │
 PWM
 │
 ▼
Motor Driver
 │
 ▼
Motor

Tần số:

10 kHz
20 kHz
...

Duty:

10%
50%
90%

PWM dùng cho:

  • điều khiển motor
  • servo
  • LED dimming
  • nguồn switching
  • audio đơn giản

23. ADC

ADC là cách MCU nhận tín hiệu analog.

Ví dụ:

Sensor
  │
  │ 0–3.3V
  ▼
STM32 ADC

Ví dụ ADC 12-bit:

0       → 0
1.65 V  → ~2048
3.3 V   → 4095

Các ứng dụng:

  • đọc biến trở
  • cảm biến nhiệt độ
  • điện áp pin
  • dòng điện
  • ánh sáng

24. DAC

Ngược lại:

MCU
 │
 DAC
 │
 ▼
Analog voltage

Ví dụ:

Digital 0      → 0V
Digital 2048   → ~1.65V
Digital 4095   → ~3.3V

Dùng cho:

  • audio
  • điều khiển analog
  • tạo điện áp tham chiếu
  • signal generator

25. LVDS

LVDS = Low-Voltage Differential Signaling.

Đây là truyền tín hiệu vi sai tốc độ cao.

TX+ ─────────────── RX+
TX- ─────────────── RX-

Thường dùng trong:

  • màn hình
  • camera
  • FPGA
  • thiết bị công nghiệp
  • các liên kết tốc độ cao

26. MIPI

MIPI rất quan trọng trong điện thoại và thiết bị di động.

Các chuẩn thường gặp:

MIPI CSI

Cho camera:

Camera
   │
 MIPI CSI
   │
   ▼
Processor

MIPI DSI

Cho màn hình:

Processor
   │
 MIPI DSI
   │
   ▼
Display

MIPI sử dụng các đường differential tốc độ cao.


27. HDMI / DisplayPort

Nếu làm thiết bị hình ảnh/video, bạn sẽ gặp:

HDMI
DisplayPort

Đây là các giao tiếp tốc độ rất cao.

Không còn đơn giản như GPIO/UART/SPI nữa.

PCB phải quan tâm nghiêm túc đến:

  • impedance
  • differential pair
  • length matching
  • signal integrity
  • EMI/EMC

28. SDIO / eMMC

Nếu cần bộ nhớ lớn:

MCU / MPU
    │
   SDIO
    │
    ▼
 SD Card

Hoặc:

Processor
    │
   eMMC

SDIO có thể nhanh hơn SPI SD card.


29. PCI Express

Trong máy tính, server và các hệ thống xử lý mạnh:

CPU
 │
PCIe
 │
 ├── GPU
 ├── NVMe SSD
 ├── Network Card
 └── FPGA

Đây là giao tiếp tốc độ cực cao.

PCB PCIe cần thiết kế rất nghiêm túc về:

  • differential pair
  • impedance
  • via
  • return path
  • length matching
  • loss
  • crosstalk

30. SATA

SATA dùng cho:

  • HDD
  • SSD
  • optical drive

Ví dụ:

CPU/Controller
      │
     SATA
      │
      ▼
     SSD

31. Các giao tiếp không dây

Không phải kết nối nào cũng bằng dây.

Bluetooth / BLE

MCU
 │
BLE
 │
Phone

Dùng cho:

  • cảm biến
  • wearable
  • điều khiển
  • IoT

Wi-Fi

MCU
 │
Wi-Fi
 │
Router
 │
Internet

Zigbee

Dùng cho:

  • smart home
  • sensor network
  • mesh network

LoRa/LoRaWAN

Dùng cho truyền xa, tốc độ thấp:

Sensor
   │
 LoRa
   │
   ▼
 Gateway

NFC / RFID

Dùng cho:

  • thẻ
  • nhận dạng
  • thanh toán
  • access control

32. Một số giao tiếp RF khác

Trong thiết bị không dây bạn còn có:

2.4 GHz
Sub-GHz
433 MHz
868 MHz
915 MHz
GNSS/GPS
Cellular

Ví dụ:

STM32
 │ SPI
 ▼
RF Transceiver
 │
 ~~~~~ RF ~~~~~
 │
 ▼
Antenna

Điểm thú vị là bên trong MCU có thể dùng SPI, nhưng từ module ra antenna lại là RF.


33. Modbus

Modbus là giao thức, không phải mức điện áp vật lý.

Có thể chạy trên:

Modbus RTU
      ↓
    RS-485

hoặc:

Modbus TCP
      ↓
  Ethernet

Ví dụ:

STM32
 │
 UART
 │
RS-485
 │
Modbus RTU
 │
 ▼
PLC

Đây là kiến thức rất quan trọng khi làm automation.


34. Ethernet TCP/IP

Tương tự:

Application
     ↓
    HTTP
     ↓
    TCP
     ↓
    IP
     ↓
 Ethernet
     ↓
 PHY
     ↓
 Cable

Ví dụ thiết bị STM32 có web server:

PC
 │
Ethernet
 │
 ▼
STM32
 │
Web server

Bạn có thể nhập IP của STM32 trên trình duyệt và điều khiển relay.


35. MQTT

Trong IoT thường thấy:

Sensor
   │
 Wi-Fi
   │
 MQTT
   │
   ▼
 MQTT Broker
   │
   ├── Phone
   ├── PC
   └── Cloud

MQTT là application protocol, không phải giao tiếp vật lý.


36. Tổng hợp theo tầng

Đây là sơ đồ mà tôi khuyên bạn nên nhớ:

                    APPLICATION
                         │
        ┌────────────────┼────────────────┐
        │                │                │
      MQTT            Modbus            HTTP
        │                │                │
        │             RTU/TCP             │
        │                │                │
        └───────────────┬┴────────────────┘
                        │
                  TRANSPORT/LINK
                        │
          ┌─────────────┼──────────────┐
          │             │              │
       Ethernet       RS-485          CAN
          │             │              │
          ▼             ▼              ▼
       PHY etc.     Differential    Differential

Còn ở mức MCU:

              STM32
                │
     ┌──────────┼──────────┐
     │          │          │
    UART        SPI       I²C
     │          │          │
     ▼          ▼          ▼
  RS-485      Flash      Sensor
     │
     ▼
  Modbus

37. Bảng “nhìn phát biết ngay”

Giao tiếp Dây/tín hiệu điển hình Dùng cho
GPIO 1 dây/tín hiệu LED, relay, button
UART TX/RX Debug, module
I²C SDA/SCL Sensor, EEPROM, RTC
SPI SCK/MOSI/MISO/CS LCD, Flash, SD
I²S Clock/Data/WS Audio
1-Wire 1 data DS18B20
PWM 1 signal Motor, LED, servo
ADC Analog Sensor
DAC Analog Audio/control
CAN CAN-H/CAN-L Ô tô, công nghiệp
CAN-FD CAN-H/CAN-L Automotive hiện đại
RS-232 TX/RX/GND Thiết bị serial
RS-485 A/B Công nghiệp
USB D+/D− hoặc SuperSpeed lanes PC/peripheral
Ethernet Differential pairs LAN/IoT
SWD SWDIO/SWCLK Debug STM32
JTAG TCK/TMS/TDI/TDO Debug/FPGA
LIN LIN Automotive
MIPI CSI Differential lanes Camera
MIPI DSI Differential lanes Display
LVDS Differential pairs Display/high speed
PCIe Differential pairs SSD/GPU/FPGA
SATA Differential pairs Storage
SDIO Clock/data SD/eMMC
Bluetooth RF Wireless
Wi-Fi RF Network
Zigbee RF IoT mesh
LoRa RF IoT tầm xa
NFC RF RFID/NFC

38. Nếu mục tiêu của bạn là thiết kế PCB bằng Altium + STM32

Bạn không cần học tất cả cùng lúc.

Tôi sẽ xếp thứ tự học như sau:

                 ĐIỆN TỬ SỐ
                     │
          ┌──────────┴──────────┐
          │                     │
       GPIO                  Analog
          │                     │
    ┌─────┼─────┐          ADC / DAC
    │     │     │
  UART   SPI   I²C
    │
    ├── RS-232
    └── RS-485
          │
       Modbus

Sau đó:
    CAN / CAN-FD
          │
         USB
          │
      Ethernet
          │
    Wi-Fi / BLE

Và song song với đó:

STM32
 │
 ├── SWD       ← bắt buộc biết
 ├── UART      ← bắt buộc biết
 ├── GPIO      ← bắt buộc biết
 ├── SPI       ← rất nên biết
 ├── I²C       ← rất nên biết
 ├── ADC       ← rất nên biết
 ├── PWM       ← rất nên biết
 ├── CAN       ← nên biết
 ├── USB       ← nên biết
 └── Ethernet  ← học sau

Một điểm rất quan trọng khi chuyển sang Altium: các giao tiếp tốc độ thấp như GPIO/UART/I²C không đòi hỏi PCB quá phức tạp, nhưng khi lên USB High-Speed, Ethernet, CAN-FD, LVDS, MIPI, PCIe… thì bạn phải bắt đầu quan tâm đến controlled impedance, differential pair, termination, return path, crosstalk, length matching và signal integrity. Đó là lúc kiến thức “giao tiếp” gắn trực tiếp với kiến thức thiết kế PCB.

Nếu bạn muốn học bài bản, tôi có thể làm tiếp cho bạn một “bản đồ giao tiếp điện tử từ cơ bản → nâng cao”, trong đó mỗi giao tiếp có sơ đồ chân, dạng sóng 0/1, cách truyền từng bit, điện trở cần dùng, khoảng cách tối đa, tốc độ, cách nối trên PCB và ví dụ STM32 thực tế. Bạn muốn theo hướng STM32/PCB, điện tử tổng quát, hay cả hai?

About the author

lbtmicr06

Leave a Comment