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
|
5. Linux и I²C
|
||||||
1.
|
1.
|
||||||
### UART
|
### 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
|
### RS485
|
||||||
4. RS485 - особенности интерфейса.
|
4. RS485 - особенности интерфейса.
|
||||||
|
|||||||
Reference in New Issue
Block a user