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

11 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. Общие вопросы и принцип работы.

    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. Что будет, если не использовать flow-control при высоких скоростях?
      1. Переполнение FIFO / Потеря данных / Framing errors
  2. Проблемы и диагностика.

    1. Способы тестирования UART?
      1. Проверить сигнал осциллографом
      2. Запустить loopback тест
      3. Отправить известную последовательность и сравнить (проверка UART - USB конвертором)
      4. Проверить стресс/нагрузку
    2. Что такое loopback тест
      1. Соединение TX → RX, чтобы проверять передачу/приём на одном устройстве.
    3. Как обнаружить линии с шумом?
      1. Нестабильные фронты
      2. Framing errors (Стоп-бит не обнаружен в ожидаемое время → нарушение кадра.)
      3. Анализ сигнала на осциллографе

Вопрос 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.

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