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?

