From 3625a2e410020990debaf5ae63150a195f71ebfe Mon Sep 17 00:00:00 2001 From: Alexey Baranov Date: Mon, 29 Dec 2025 20:46:26 +0300 Subject: [PATCH] vault backup: 2025-12-29 20:46:26 --- .../1. Hardware Skill (I2C_SPI_UART).md | 245 +++++++++++++++++- 1 file changed, 244 insertions(+), 1 deletion(-) diff --git a/Interview Question/1. Hardware Skill (I2C_SPI_UART).md b/Interview Question/1. Hardware Skill (I2C_SPI_UART).md index 0e8563c..bc5cbbe 100644 --- a/Interview Question/1. Hardware Skill (I2C_SPI_UART).md +++ b/Interview Question/1. Hardware Skill (I2C_SPI_UART).md @@ -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 - особенности интерфейса.