mirror of
https://github.com/EmbedDevIOT/obsidian-vault-.git
synced 2026-11-06 05:33:26 +03:00
253 lines
12 KiB
Markdown
253 lines
12 KiB
Markdown
### i2C
|
||
1. **I2C - Общие принципы работы**
|
||
1. Шина _двухпроводная_: SDA (данные) и SCL (тактовый). OpenDrain линия + pull up резисторы.
|
||
1. Что означает Open Drain?
|
||
Устройства могут только тянуть линию вниз (0), а “1” формируется резистором подтяжки.
|
||
2. Опишите преимущества:
|
||
1. Арбитраж. Несколько устройств на шине
|
||
2. Отсутствие конфликтов (драйвер против драйвера)
|
||
3. Pull up резисторы. Для чего нужны:
|
||
1. Чтобы линии SDA и SCL могли уходить в состояние логической “1”.
|
||
2. Типичные значения: **2.2–10 кΩ** (зависит от скорости и ёмкости линии).
|
||
4. Что будет если pull up слишком большой?
|
||
1. Медленный rise-time
|
||
2. Ошибки на высоких скоростях
|
||
3. Потери данных
|
||
2. Режим работы **master–slave**.
|
||
1. Мастер генерирует такты. Слайв отвечает
|
||
3. Скорости.
|
||
1. Standart - 100kHz
|
||
2. Fast mode - 400kHz
|
||
3. Fast + 1MHz
|
||
4. Адресация 7 или 10 бит.
|
||
1. Как задается адрес устройства?
|
||
2. Разница 7 и 10 бит (7 стандартная)
|
||
5. Транзакции и сигналы:
|
||
1. Как выполняется передача (пример посылки)
|
||
1. start → address + R/W → ack → data bytes → stop.
|
||
2. Что такое Start и Stop в I2C
|
||
1. START - Переход SDA - в HIGH - LOW при HIGH SCL
|
||
2. STOP - обратный переход SDA LOW → HIGH при HIGH SCL
|
||
3. Что такое ACK и NACK (Используется для подтверждения прима каждого байта)
|
||
1. ACK - slave тянет SDA LOW
|
||
2. NACK - SDA остаётся HIGH
|
||
6. Протоколы over I2C
|
||
1. SMBus - подмножество I²C с более строгими таймингами и дополнительными протоколами (battery management, sensors)
|
||
2. PMBus - протокол управления питанием поверх SMBus/I²C. Используется в телеком/серверных блоках питания
|
||
2. **I2C - проблемы и диагностика**
|
||
1. Как влияет длина линии (емкость) ?
|
||
1. Чем больше суммарная ёмкость, тем хуже rise-time (меньше скорость)
|
||
2. длинные транзакции, шум, ошибки тактирования.
|
||
2. Что дает использование логического анализатора ?
|
||
1. Проверить корректность инициализации битрейта (100/400 kHz и выше).
|
||
2. Детальный анализ SDA и SCL
|
||
3. Анализ проблемы на уровне таймингов
|
||
4. Проверять **ACK/NACK**, корректность адресации.
|
||
3. Что дает использование осциллографа
|
||
1. Фронты SDA/SCL
|
||
2. Наводки
|
||
3. Соответствие rise/fall таймингам
|
||
4. Уровни напряжений
|
||
4. Тестирование на практике
|
||
1. Проверка адресации (i2cdetect)
|
||
2. Запись/чтение регистров
|
||
3. Тест на шум/помехи
|
||
5. Linux и I²C
|
||
1.
|
||
### UART (Universal Asynchronous Receiver/Transmitter)
|
||
1. Что такое UART?
|
||
1. Асинхронный последовательный интерфейс передачи данных “точка-точка"
|
||
2. Двупроводная шина (RX, TX, GND)
|
||
3. Уровни (TTL 3.3 В / TTL 5 В)
|
||
2. Что значит асинхронный последовательный интерфейс?
|
||
1. Линии не содержат тактового сигнала. Синхронизация происходит по битам START/STOP.
|
||
3. UART = RS-232 (отличия) ?
|
||
1. UART – протокол передачи данных. RS-232 – электрический стандарт уровней (±3…±15 В).
|
||
2. В чем разница TTL UART и RS - 232
|
||
1. TTL: 0/3.3 В или 0/5 В / RS-232: –15 В → лог. 1, +15 В → лог. 0 (инверсная логика)
|
||
4. Какие параметры нужно согласовать между устройствами?
|
||
1. Скорость (baud rate) - Количество символов (битовых переходов) в секунду.
|
||
1. Стандартные скорости 9600, 115200.
|
||
2. Количество бит данных
|
||
3. Чётность (parity)
|
||
4. Количество стоп-битов
|
||
5. Flow control (RTS/CTS) Контроль потока.
|
||
5. Как устроен формат UART кадра?
|
||
1. 1 стартовый бит (0)
|
||
2. 5–9 бит данных
|
||
3. необязательный бит чётности
|
||
4. 1 или 2 стоп-бита (1)
|
||
6. Как определяется начало передачи?
|
||
1. По переходу TX с HIGH → LOW (start бит).
|
||
7. Что происходит, если неверно настроен baud rate?
|
||
1. Искажённый битовый поток
|
||
2. Ошибки приёма
|
||
3. “кракозябры” в терминале
|
||
8. Зачем используются стоп-биты?
|
||
1. Для восстановления синхронизации при асинхронной передаче.
|
||
9. Что такое XON/XOFF?
|
||
1. Программный flow-control.
|
||
2. `XOFF` посылается для остановки передачи, `XON` — для возобновления.
|
||
10. Что такое аппаратный flow-control (RTS/CTS)?
|
||
1. RTS (Ready To Send) — устройство готово принимать данные
|
||
2. CTS (Clear To Send) — разрешение на передачу. Используется для предотвращения переполнения буфера.
|
||
11.
|
||
|
||
---
|
||
|
||
### **Вопрос 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 - особенности интерфейса.
|
||
1. Отличие от UART
|
||
2. Дифференциальная линия A/B.
|
||
3. Полудуплекс или полныйдуплекс.
|
||
4. Большие расстояния (до сотен метров).
|
||
5. Требует терминаторов 120 Ω.
|
||
1. Для чего нужны терминаторы - предотвращают отражения сигнала, обеспечивая стабильность и корректность данных на больших расстояниях.
|
||
6. Поддерживает несколько устройств на линии.
|
||
1. Каким образом осуществляется поддержка нескольких устройств.
|
||
2. Типы обмена информацией
|
||
5. RS485 - как протестировать протокол.
|
||
1. Проверить корректность переключения режимов TX/RX (DE/RE pins).
|
||
2. Проверка уровня сигнала на A/B на осциллографе.
|
||
3. Тест на разных скоростях (9600 → 1–3 Мбит/с).
|
||
4. Проверка устойчивости: длинные кабели, нагрузки, шум.
|
||
5. Имитация обрыва линии или короткого замыкания.
|
||
|
||
### Работа с Linux
|
||
1. Как посмотреть логи системы
|
||
1. `dmesg` kernel messages
|
||
2. Команды. Что выполняет данные команды:
|
||
1. `cat /etc/dev/trace | grep 13:00 `
|
||
2. `tail -f /etc/dev/trace`
|
||
3. `chmod` - изменение прав
|
||
4. `grep` - глобальный поиск регулярных выражений и вывод
|
||
5. `ls -l` - посмотреть текущие права
|
||
6. `ip br -a`
|
||
3. Чем отличаются команды
|
||
1. `cat /etc/dev/trace > /home/user.txt`
|
||
2. `echo "/etc/dev/trace" > /home/user.txt`
|
||
4. Файлы. Работа с правами
|
||
1. `chmod` - изменить права
|
||
2. `ls -l` - посмотреть текущие права
|
||
3. Знание rwx-битов
|
||
5. Devices. Как посмотреть устройства в Linux
|
||
1. Linux и I2C. Как можно проверить устройства
|
||
1. `/dev/i2c-* ` устройства
|
||
2. `i2cdetect` `i2cget` `i2cset`
|
||
2. Монтирование виртуальных файлов `/sys` / `/proc`
|
||
3.
|
||
|
||
6. Daemons. Службы и демоны.
|
||
1. `systemctl status <service>` - статус
|
||
2. `systemctl start/stop/restart <service>` - управление
|
||
### Сетевая модель OSI
|
||
1. Уровни модели.
|
||
1. Physical (Физический)
|
||
2. Data Link (Канальный)
|
||
3. Network (Сетевой)
|
||
4. Transport (Транспортный)
|
||
5. Session
|
||
6. Presentation
|
||
7. Application
|
||
2. На каких уровнях работают Ethernet, IP, TCP/UDP?
|
||
1. **Ethernet** — уровень 2 (Data Link)
|
||
2. **IP** — уровень 3 (Network)
|
||
3. **TCP/UDP** — уровень 4 (Transport)
|
||
3. Чем TCP отличается от UDP?
|
||
1. TCP:
|
||
1. Медленный. Надёжный. Имеет подтверждения, контроль доставки
|
||
2. Установление соединения (3-way handshake)
|
||
2. UDP
|
||
1. Меньшая задержка, подходит для потоковых сервисов
|
||
2. Без гарантии доставки
|
||
3. Нет подтверждений
|
||
4. Что такое ARP и на каком уровне он работает
|
||
1. ARP (Address Resolution Protocol)
|
||
2. Преобразует **IP → MAC**
|
||
3. Формально находится между уровнем 2 и 3, но чаще относят к **уровню 2**.
|
||
|
||
|
||
### Оборудование и приборы
|