Обновить
184
46.1

Embedded SW/Firmware Engineer

Отправить сообщение

Сколько бит в DTC (Diagnostic Trouble Code) коде UDS протокола?

Наличие NVRAM - это требование протокола UDS.

А потом подцепим littlefs

Да. Так и сделал.
Пуск LittleFS (NVRAM с запретом до-записи flash)
https://habr.com/ru/articles/925372/

Наличие NVRAM - это требование протокола UDS.

Наличие встроенных модульных тестов - это требование автомобильного протокола UDS. См. сервис DTC.

До какой температуры нагревался участок, который подсвечивали эти 500 лучей?

Пообщался с нейросетью. Вот что в сухом остатке.
Более редкий бит-стаффинг, как в USB увеличивает пропускную способность.
Более частый бит-стаффинг, как в CAN увеличивает надежность.

Это вообще такая частность и такая мелоч на которую квалифицированный программист даже не должен обращать внимания. Если у программиста даже подбор множителей и делителей тактовый частоты вызвывет "зависания" вплоть до написания статей то как же он дальше продвинется? В 99% случаев эти цифры подбираются руками за минуту, в оставшемся 1% пишется скрипт перебора на любом языке за 5 минут. Лезть в дебри математики тут излишнее усложнение и пустая трата времени.

бесево обскурантизма

Вот еще случай, когда мне в программировании МК была нужна математика.

Пришлось вычислять интеграл в работе
https://habr.com/ru/articles/821951/
PID регулятора для ЦАПика.

Ок, а теперь вызовите запрос на вольфрам математику из си функции в ините прошивки.

Но на практике это сложнее, потому что кроме PLL часто нужно перестраивать и множество других делителей частоты в микроконтроллере

Каждый программный компонент в инициализации должен пересчитывать свои предделители в зависимости от того какая в данный момент оказалась частота ядра.

Прохардкоженные предделители (например в CAN ) это плохой дизайн.

В сигнале GPS есть bit staffing ?

Следящий PLL нужен в GNSS приемниках. Так как там из-за эффекта Доплера несущая частота уползает.

А USB почему частота тактирования не стабильная?

На STM32 (как и на любом ARM Cortex-M MCU) CAN-трансивер тоже тактируется от PLL, а PLL тактируется тоже кварцевым резонатором.

При этом битовую скорость CAN, при желании, можно менять на лету. Посмотрите на PCAN-Pro-X

USB является использования «бит-стаффинга» — методики позволяющей избежать долгое нахождение шины в каком либо из состояний («K» или «J») при передачи пакета данных. ..................стаффинг в USB работает следующим образом: при передаче шести и более последовательных «единиц» (а «единицы» кодируются отсутствие смены состояния шины), в передачу вставляется одна дополнительная смена состояний. Если принимающая сторона по какой-то причине получает семь последовательных «единиц», то произошел сбой передачи!


Забавно вот что.
В CAN бит-стаффинг делают после пяти бит.
В USB Low Speed (USB 1.0 ) бит-стаффинг делают после шести бит.
5 != 6
При этом, и там и там скорость около 1 MBit/s.

Почему в CAN и USB разные настройки бит-стаффинга?

CAN бит-стаффинг делают после пяти бит.
CAN бит-стаффинг делают после пяти бит.

Существует ли какая-нибудь готовая клиентская Windows утилита (c GUI или консольный вариант), которая опрашивает ECU по CAN через UDS протокол?

Утилита UDS-client, которая работает на прикладном уровне модели OSI и умеет посылать и синтаксически разбирать (парсить) ответные UDS пакеты.

Чтобы, условно, прочитать стандартные в UDS DID параметры.
Такие как VIN номер, серийный номер ECU, дату производства ECU, дату программирования ECU, название производителя ECU и прочее.

Существуют ли в продаже отладочные платы для изучения GNSS RTK?

По-хорошему надо электронную плату (PCB) с  микроконтроллером (желательно STM32), GNSS Zed-F9P и каким-нибудь надежным радио трансивером способным передавать на желаемое расстояние со скоростью 1…2 kByte/с (например SX1262).

Почему спека UDS оперирует какими-то волшебными 8ми байтовыми адресами, если в ID CAN пакета всего максимум 3,625 байт (29 бит)?

Откуда UDS серверу (ECU) брать оставшиеся 35 бит адреса (8*8 - 29 = 35)?

Но после статьи серьёзно задумался насчёт интеграции подобного cli в проекты

Ради Бога. Вот исходные коды с реализацией CLI:

Ядро CLI
https://github.com/aabzel/trunk/tree/main/source/connectivity/protocols/cli_drv

Однострочный текстовый редактор
https://github.com/aabzel/trunk/tree/main/source/connectivity/protocols/string_reader

логирование
https://github.com/aabzel/trunk/tree/main/source/connectivity/log

CLI нужна реализация протокола CSV.
https://github.com/aabzel/trunk/tree/main/source/connectivity/protocols/csv

описание как работает код разбора CSV строчек.
https://habr.com/ru/articles/765066/

Распространение приветствуется!

1
23 ...

Информация

В рейтинге
151-й
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность

Специализация

Инженер встраиваемых систем, DevOps-инженер
Старший
Git
Bash
CI/CD
C
Встраиваемая система
Программирование микроконтроллеров
Разработка программного обеспечения
Алгоритмы и структуры данных
Системное программирование
Разработка драйверов