14 KiB
i2C
- I2C - Общие принципы работы
- Шина двухпроводная: SDA (данные) и SCL (тактовый). OpenDrain линия + pull up резисторы.
- Что означает Open Drain?
Устройства могут только тянуть линию вниз (0), а “1” формируется резистором подтяжки. - Опишите преимущества:
- Арбитраж. Несколько устройств на шине
- Отсутствие конфликтов (драйвер против драйвера)
- Pull up резисторы. Для чего нужны:
- Чтобы линии SDA и SCL могли уходить в состояние логической “1”.
- Типичные значения: 2.2–10 кΩ (зависит от скорости и ёмкости линии).
- Что будет если pull up слишком большой?
- Медленный rise-time
- Ошибки на высоких скоростях
- Потери данных
- Что означает Open Drain?
- Режим работы master–slave.
- Мастер генерирует такты. Слайв отвечает
- Скорости.
- Standart - 100kHz
- Fast mode - 400kHz
- Fast + 1MHz
- Адресация 7 или 10 бит.
- Как задается адрес устройства?
- Разница 7 и 10 бит (7 стандартная)
- Транзакции и сигналы:
- Как выполняется передача (пример посылки)
- start → address + R/W → ack → data bytes → stop.
- Что такое Start и Stop в I2C
- START - Переход SDA - в HIGH - LOW при HIGH SCL
- STOP - обратный переход SDA LOW → HIGH при HIGH SCL
- Что такое ACK и NACK (Используется для подтверждения прима каждого байта)
- ACK - slave тянет SDA LOW
- NACK - SDA остаётся HIGH
- Как выполняется передача (пример посылки)
- Протоколы over I2C
- SMBus - подмножество I²C с более строгими таймингами и дополнительными протоколами (battery management, sensors)
- PMBus - протокол управления питанием поверх SMBus/I²C. Используется в телеком/серверных блоках питания
- Шина двухпроводная: SDA (данные) и SCL (тактовый). OpenDrain линия + pull up резисторы.
- I2C - проблемы и диагностика
- Как влияет длина линии (емкость) ?
- Чем больше суммарная ёмкость, тем хуже rise-time (меньше скорость)
- длинные транзакции, шум, ошибки тактирования.
- Что дает использование логического анализатора ?
- Проверить корректность инициализации битрейта (100/400 kHz и выше).
- Детальный анализ SDA и SCL
- Анализ проблемы на уровне таймингов
- Проверять ACK/NACK, корректность адресации.
- Что дает использование осциллографа
- Фронты SDA/SCL
- Наводки
- Соответствие rise/fall таймингам
- Уровни напряжений
- Тестирование на практике
- Проверка адресации (i2cdetect)
- Запись/чтение регистров
- Тест на шум/помехи
- Linux и I²C 1.
- Как влияет длина линии (емкость) ?
UART
- Что такое UART?
- 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 - особенности интерфейса.
- Отличие от UART
- Дифференциальная линия A/B.
- Полудуплекс или полныйдуплекс.
- Большие расстояния (до сотен метров).
- Требует терминаторов 120 Ω.
- Для чего нужны терминаторы - предотвращают отражения сигнала, обеспечивая стабильность и корректность данных на больших расстояниях.
- Поддерживает несколько устройств на линии.
- Каким образом осуществляется поддержка нескольких устройств.
- Типы обмена информацией
- RS485 - как протестировать протокол.
- Проверить корректность переключения режимов TX/RX (DE/RE pins).
- Проверка уровня сигнала на A/B на осциллографе.
- Тест на разных скоростях (9600 → 1–3 Мбит/с).
- Проверка устойчивости: длинные кабели, нагрузки, шум.
- Имитация обрыва линии или короткого замыкания.
Работа с Linux
-
Как посмотреть логи системы
dmesgkernel messages
-
Команды. Что выполняет данные команды:
cat /etc/dev/trace | grep 13:00tail -f /etc/dev/tracechmod- изменение правgrep- глобальный поиск регулярных выражений и выводls -l- посмотреть текущие праваip br -a
-
Чем отличаются команды
cat /etc/dev/trace > /home/user.txtecho "/etc/dev/trace" > /home/user.txt
-
Файлы. Работа с правами
chmod- изменить праваls -l- посмотреть текущие права- Знание rwx-битов
-
Devices. Как посмотреть устройства в Linux
- Linux и I2C. Как можно проверить устройства
/dev/i2c-*устройстваi2cdetecti2cgeti2cset
- Монтирование виртуальных файлов
/sys//proc
- Linux и I2C. Как можно проверить устройства
-
Daemons. Службы и демоны.
systemctl status <service>- статусsystemctl start/stop/restart <service>- управление
Сетевая модель OSI
- Уровни модели.
- Physical (Физический)
- Data Link (Канальный)
- Network (Сетевой)
- Transport (Транспортный)
- Session
- Presentation
- Application
- На каких уровнях работают Ethernet, IP, TCP/UDP?
- Ethernet — уровень 2 (Data Link)
- IP — уровень 3 (Network)
- TCP/UDP — уровень 4 (Transport)
- Чем TCP отличается от UDP?
- TCP:
- Медленный. Надёжный. Имеет подтверждения, контроль доставки
- Установление соединения (3-way handshake)
- UDP
- Меньшая задержка, подходит для потоковых сервисов
- Без гарантии доставки
- Нет подтверждений
- TCP:
- Что такое ARP и на каком уровне он работает
- ARP (Address Resolution Protocol)
- Преобразует IP → MAC
- Формально находится между уровнем 2 и 3, но чаще относят к уровню 2.