mirror of
https://github.com/EmbedDevIOT/obsidian-vault-.git
synced 2026-11-06 02:13:27 +03:00
vault backup: 2025-12-29 20:46:26
This commit is contained in:
@@ -55,7 +55,250 @@
|
||||
5. Linux и I²C
|
||||
1.
|
||||
### UART
|
||||
1.
|
||||
1. Что такое UART?
|
||||
1. Universal Asynchronous Receiver/Transmitter — асинхронный последовательный интерфейс передачи данных “точка-точка
|
||||
|
||||
### **Вопрос 2:** Как устроен формат UART кадра?
|
||||
|
||||
**Ответ:**
|
||||
Стандартный фрейм:
|
||||
|
||||
- 1 стартовый бит (0)
|
||||
|
||||
- 5–9 бит данных
|
||||
|
||||
- необязательный бит чётности
|
||||
|
||||
- 1 или 2 стоп-бита (1)
|
||||
|
||||
|
||||
---
|
||||
|
||||
### **Вопрос 3:** Почему UART называется асинхронным?
|
||||
|
||||
**Ответ:**
|
||||
Линии не содержат тактового сигнала; синхронизация происходит по битам START/STOP.
|
||||
|
||||
---
|
||||
|
||||
### **Вопрос 4:** Какие параметры нужно согласовать между устройствами?
|
||||
|
||||
**Ответ:**
|
||||
|
||||
- Скорость (baud rate)
|
||||
|
||||
- Количество бит данных
|
||||
|
||||
- Чётность (parity)
|
||||
|
||||
- Количество стоп-битов
|
||||
|
||||
- Flow control (RTS/CTS)
|
||||
|
||||
|
||||
---
|
||||
|
||||
### **Вопрос 5:** Что такое baud rate?
|
||||
|
||||
**Ответ:**
|
||||
Количество символов (битовых переходов) в секунду.
|
||||
Типичные: 9600, 115200, 921600, 3M, 10M baud (для высокоскоростных UART).
|
||||
|
||||
---
|
||||
|
||||
# 🔹 **2. Электрические уровни**
|
||||
|
||||
### **Вопрос 6:** UART = RS-232?
|
||||
|
||||
**Ответ:**
|
||||
Нет.
|
||||
UART – протокол передачи данных.
|
||||
RS-232 – электрический стандарт уровней (±3…±15 В).
|
||||
Также встречаются UART с уровнями:
|
||||
|
||||
- TTL 3.3 В
|
||||
|
||||
- TTL 5 В
|
||||
|
||||
- RS-485 (дифференциальный)
|
||||
|
||||
|
||||
---
|
||||
|
||||
### **Вопрос 7:** В чём разница TTL UART и RS-232?
|
||||
|
||||
**Ответ:**
|
||||
TTL: 0/3.3 В или 0/5 В
|
||||
RS-232: –15 В → лог. 1, +15 В → лог. 0 (инверсная логика)
|
||||
|
||||
---
|
||||
|
||||
### **Вопрос 8:** Что происходит, если подключить TTL UART к RS-232 напрямую?
|
||||
|
||||
**Ответ:**
|
||||
Устройство будет повреждено. Нужен конвертор MAX232 или аналог.
|
||||
|
||||
---
|
||||
|
||||
# 🔹 **3. Работа передачи и приёма**
|
||||
|
||||
### **Вопрос 9:** Как определяется начало передачи?
|
||||
|
||||
**Ответ:**
|
||||
По переходу TX с HIGH → LOW (start бит).
|
||||
|
||||
---
|
||||
|
||||
### **Вопрос 10:** Что происходит, если неверно настроен baud rate?
|
||||
|
||||
**Ответ:**
|
||||
|
||||
- Искажённый битовый поток
|
||||
|
||||
- Ошибки приёма
|
||||
|
||||
- “кракозябры” в терминале
|
||||
|
||||
- Потеря синхронизации
|
||||
|
||||
|
||||
---
|
||||
|
||||
### **Вопрос 11:** Зачем используются стоп-биты?
|
||||
|
||||
**Ответ:**
|
||||
Для восстановления синхронизации при асинхронной передаче.
|
||||
|
||||
---
|
||||
|
||||
### **Вопрос 12:** Какие типы parity существуют?
|
||||
|
||||
**Ответ:**
|
||||
|
||||
- None
|
||||
|
||||
- Even
|
||||
|
||||
- Odd
|
||||
|
||||
- Mark
|
||||
|
||||
- Space
|
||||
|
||||
|
||||
---
|
||||
|
||||
### **Вопрос 13:** Что происходит при ошибке паритета?
|
||||
|
||||
**Ответ:**
|
||||
Устройство ставит флаг error, характерная ошибка `PE` (Parity Error).
|
||||
Полученные данные считаются некорректными.
|
||||
|
||||
---
|
||||
|
||||
# 🔹 **4. Контроль потока**
|
||||
|
||||
### **Вопрос 14:** Что такое аппаратный flow-control (RTS/CTS)?
|
||||
|
||||
**Ответ:**
|
||||
|
||||
- RTS (Ready To Send) — устройство готово принимать данные
|
||||
|
||||
- CTS (Clear To Send) — разрешение на передачу
|
||||
Используется для предотвращения переполнения буфера.
|
||||
|
||||
|
||||
---
|
||||
|
||||
### **Вопрос 15:** что такое XON/XOFF?
|
||||
|
||||
**Ответ:**
|
||||
Программный flow-control.
|
||||
`XOFF` посылается для остановки передачи, `XON` — для возобновления.
|
||||
|
||||
---
|
||||
|
||||
### **Вопрос 16:** Что будет, если не использовать flow-control при высоких скоростях?
|
||||
|
||||
**Ответ:**
|
||||
|
||||
- Переполнение FIFO
|
||||
|
||||
- Потеря данных
|
||||
|
||||
- Framing errors
|
||||
|
||||
|
||||
---
|
||||
|
||||
# 🔹 **5. Ошибки UART**
|
||||
|
||||
### **Вопрос 17:** Что такое framing error?
|
||||
|
||||
**Ответ:**
|
||||
Стоп-бит не обнаружен в ожидаемое время → нарушение кадра.
|
||||
|
||||
---
|
||||
|
||||
### **Вопрос 18:** Что такое overrun error?
|
||||
|
||||
**Ответ:**
|
||||
Буфер приёмника переполнен, данные потеряны.
|
||||
|
||||
---
|
||||
|
||||
### **Вопрос 19:** Что такое break condition?
|
||||
|
||||
**Ответ:**
|
||||
TX держится в LOW дольше чем длительность кадра.
|
||||
Используется для ресета некоторых устройств (например, загрузчиков MCU).
|
||||
|
||||
---
|
||||
|
||||
### **Вопрос 20:** Как обнаружить линии с шумом?
|
||||
|
||||
**Ответ:**
|
||||
|
||||
- Нестабильные фронты
|
||||
|
||||
- Ошибки паритета
|
||||
|
||||
- Framing errors
|
||||
|
||||
- Анализ сигнала на осциллографе
|
||||
|
||||
|
||||
---
|
||||
|
||||
# 🔹 **6. Диагностика и тестирование**
|
||||
|
||||
### **Вопрос 21:** Как протестировать UART линию?
|
||||
|
||||
**Ответ:**
|
||||
|
||||
- Проверить сигнал осциллографом
|
||||
|
||||
- Запустить loopback тест
|
||||
|
||||
- Отправить известную последовательность и сравнить
|
||||
|
||||
- Проверить разные baud rates
|
||||
|
||||
- Тестировать передачу больших массивов данных
|
||||
|
||||
- Проверить стресс/нагрузку
|
||||
|
||||
|
||||
---
|
||||
|
||||
### **Вопрос 22:** Что такое loopback?
|
||||
|
||||
**Ответ:**
|
||||
Соединение TX → RX, чтобы проверять передачу/приём на одном устройстве.
|
||||
|
||||
---
|
||||
|
||||
### **Вопрос 23:** Как проверить UART в Linux?
|
||||
|
||||
### RS485
|
||||
4. RS485 - особенности интерфейса.
|
||||
|
||||
Reference in New Issue
Block a user