CAN Bus Analyzer - декодер протоколу шини CAN

Разработка скриптов анализатора
Ответить
Ygryk
Сообщения: 2680
Зарегистрирован: 20 окт 2005, 08:42
Благодарил (а): 49 раз
Поблагодарили: 288 раз

CAN Bus Analyzer - декодер протоколу шини CAN

Сообщение Ygryk »

Заради цікавості - за допомогою нових інструментів 5-ї версії програми USB Oscilloscope створив скрипт для аналізу та декодування сигналу шини CAN. Можливо, хтось знайде йому практичне застосування.
 
 
✨Основні можливості

✓ Автоматичне визначення параметрів сигналу:
- Рівні сигналу CAN_H та CAN_L
- Бітрейт (підтримка стандартних та нестандартних швидкостей)
- Початок активності

✓ Повне декодування CAN:
- Стандартні (11-bit ID) та розширені (29-bit ID) фрейми
- RTR (Remote Transmission Request) повідомлення
- Враховує bit-stuffing

✓ Завадостійкість:
- Використання фільтрації завад завдяки адаптивному усередненню залежно від бітрейту

✓ Додатковий функціонал:
- Автоматичні закладки на осцилограмі
- Детальне логування для діагностики


📋 Вимоги:
- Програма USB Oscilloscope
- 2-канальний запис CAN шини (.mwf)
- Рекомендована частота дискретизації: ≥1 МГц


🚀 Підтримувані бітрейти:
- Стандартні: 10k, 20k, 50k, 100k, 125k, 250k, 500k, 1M bps
- Плюс: автоматичне визначення нестандартних швидкостей


💡 Використання:
- Відкрити файл осцилограми CAN шини
- Запустити скрипт: Analysis → Execute Script
- Скрипт автоматично визначить всі параметри
- Підтвердити або скоригувати налаштування
- Отримати декодовані повідомлення та закладки
 
Остання версія:
CAN_Bus_Analyzer-v1.1.zip

 
CAN_Bus_Analyzer-v1.0.zip
(23.9 КБ) 32 скачивания
Ygryk
Сообщения: 2680
Зарегистрирован: 20 окт 2005, 08:42
Благодарил (а): 49 раз
Поблагодарили: 288 раз

Re: CAN Bus Analyzer - декодер протоколу шини CAN

Сообщение Ygryk »

Приклад отриманих результатів:
 

Код: Выделить всё

=== Аналізатор шини CAN ===

Визначено канали:
CAN_H: Канал 2 (Low=2.40V, High=3.39V)
CAN_L: Канал 1 (Low=1.62V, High=2.48V)

Визначений бітрейт: 500000 bps

=== Початок аналізу CAN повідомлень ===
Конфігурація:
- CAN_H: Канал 2
- CAN_L: Канал 1
- Бітрейт [біт/с] 500000 bps
- Фільтр: Всі
========================================

[0.002347s] ID: 0xC9, DLC: 7, Data: 04 10 41 04 50 41 82
[0.002549s] ID: 0xFFF1100 (EXT), DLC: 0
[0.002679s] ID: 0x41, DLC: 2, Data: 9A 08
[0.002813s] ID: 0x0, DLC: 0
[0.002903s] ID: 0x200, DLC: 1, Data: 00
[0.003009s] ID: 0x9FFE32 (EXT), DLC: 1, Data: 04
[0.003156s] ID: 0x1328208 (EXT), DLC: 0
[0.003296s] ID: 0x1A1, DLC: 7, Data: 04 14 10 50 41 04 10
[0.003500s] ID: 0xFFE50A0 (EXT, RTR), DLC: 0 (Remote Request)
[0.005124s] ID: 0x128, DLC: 2, Data: 08 41

=== Підсумок ===
Знайдено повідомлень: 10
Помилок декодування: 0
========================
Ygryk
Сообщения: 2680
Зарегистрирован: 20 окт 2005, 08:42
Благодарил (а): 49 раз
Поблагодарили: 288 раз

Re: CAN Bus Analyzer - декодер протоколу шини CAN

Сообщение Ygryk »

Приклади сигналів можна знайти на форумі або записати самостійно.
Diogo_motriz
Сообщения: 40
Зарегистрирован: 23 сен 2018, 22:49
Благодарил (а): 45 раз
Поблагодарили: 11 раз
Контактная информация:

Re: CAN Bus Analyzer - декодер протоколу шини CAN

Сообщение Diogo_motriz »

Exemplo obtido em um Jeep Renegade 1.8 Flexfuel.
O script funcionou bem. Já imagino futuras implementações para coleta de erros de CRC e estado do ACK
Вложения
CAN JEEP RENEGADE.mwf
(14.49 МБ) 52 скачивания
Ygryk
Сообщения: 2680
Зарегистрирован: 20 окт 2005, 08:42
Благодарил (а): 49 раз
Поблагодарили: 288 раз

Re: CAN Bus Analyzer - декодер протоколу шини CAN

Сообщение Ygryk »

Diogo_motriz писал(а):
02 ноя 2025, 04:31
Já imagino futuras implementações para coleta de erros de CRC e estado do ACK
- Додано CRC-15 валідацію;
- ACK детектування;
- Автокалібрування bitTime.
Вложения
CAN_Bus_Analyzer-v1.1.zip
Архів зі скриптом
(28.62 КБ) 53 скачивания
Mishyk
Сообщения: 2
Зарегистрирован: 10 май 2021, 23:29

Re: CAN Bus Analyzer - декодер протоколу шини CAN

Сообщение Mishyk »

Доброго, времени.
С какой версией программы совместим скрипт с 5.1 или с более ранним тоже?
Ygryk
Сообщения: 2680
Зарегистрирован: 20 окт 2005, 08:42
Благодарил (а): 49 раз
Поблагодарили: 288 раз

Re: CAN Bus Analyzer - декодер протоколу шини CAN

Сообщение Ygryk »

Код скрипта був написаний і тестувався під програмою версії 5.
Проте, він мав би бути сумісним і з програмою версії 4.
Просто запустіть і перевірте самостійно, чи він запрацює під вашою версією програми.
pauloirogerio
Сообщения: 4
Зарегистрирован: 27 сен 2019, 19:23
Благодарил (а): 4 раза

Re: CAN Bus Analyzer - декодер протоколу шини CAN

Сообщение pauloirogerio »

Ygryk писал(а):
07 дек 2025, 22:10
Код скрипта був написаний і тестувався під програмою версії 5.
Проте, він мав би бути сумісним і з програмою версії 4.
Просто запустіть і перевірте самостійно, чи він запрацює під вашою версією програми.
В какую папку мне следует добавить этот файл?
Привет из Бразилии. :geek: :geek:
Ygryk
Сообщения: 2680
Зарегистрирован: 20 окт 2005, 08:42
Благодарил (а): 49 раз
Поблагодарили: 288 раз

Re: CAN Bus Analyzer - декодер протоколу шини CAN

Сообщение Ygryk »

pauloirogerio писал(а):
13 дек 2025, 19:48
В какую папку мне следует добавить этот файл?
Привет из Бразилии. :geek: :geek:
1. Скачайте файл CAN_Bus_Analyzer-vX.zip (посилання на нього шукайте у першому повідомленні даної теми); цей файл є zip-архівом, всередині якого зберігається папка із скриптом та супутними файлами.
2. Розпакуйте архів у будь-яку зручну для вас папку на вашому комп'ютері (наприклад - у папку "Документи", або "C:\Temp").
3. У вікні програми "USB Oscilloscope" відкрийте файл осцилограм з записом сигналів шини CAN, або виконайте запис таких сигналів самостійно.
4. Викличте меню "Аналіз => Завантажити скрипт аналізатора"; у відкрившомуся вікні "Відкриття файлу" перейдіть до папки, куди ви розпакували архів із скриптом, знайдіть там файл скрипта "CAN_Bus_Analyzer.ajs" та відкрийте його; тепер програма буде знати місце зберігання коду даного скрипта.
5. Викличте меню "Аналіз => Виконати скрипт".
6. Встановіть налаштування у відкрившомуся вікні конфігурації скрипта, та натисніть OK.
Ответить

Вернуться в «Cкрипты анализатора»