Files
obsidian-vault-/Interview Question/1. Hardware Skill (I2C_SPI_UART).md
T
2025-12-29 20:55:08 +03:00

13 KiB
Raw Blame History

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)
  2. Что значит асинхронный последовательный интерфейс?
      1. Линии не содержат тактового сигнала; синхронизация происходит по битам START/STOP.
  3. Какие параметры нужно согласовать между устройствами?
    1. Скорость (baud rate) - Количество символов (битовых переходов) в секунду.
      1. Стандартные скорости 9600, 115200.
    2. Количество бит данных
    3. Чётность (parity)
    4. Количество стоп-битов
    5. Flow control (RTS/CTS)
  4. Как устроен формат UART кадра?
    1. 1 стартовый бит (0)
    2. 5–9 бит данных
    3. необязательный бит чётности
    4. 1 или 2 стоп-бита (1)
  5. UART = RS-232?
    1. UART – протокол передачи данных. RS-232 – электрический стандарт уровней (±3…±15 В).

🔹 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

  1. RS485 - особенности интерфейса.
    1. Отличие от UART
    2. Дифференциальная линия A/B.
    3. Полудуплекс или полныйдуплекс.
    4. Большие расстояния (до сотен метров).
    5. Требует терминаторов 120 Ω.
      1. Для чего нужны терминаторы - предотвращают отражения сигнала, обеспечивая стабильность и корректность данных на больших расстояниях.
    6. Поддерживает несколько устройств на линии.
      1. Каким образом осуществляется поддержка нескольких устройств.
      2. Типы обмена информацией
  2. 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
  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.

Оборудование и приборы