Сообщение can 1939 id 0c000003

Обновлено: 02.07.2024

Спецификация SAE J1939 описывает связь CAN в транспортных средствах для обмена информацией с электронным блоком управления, цель состоит в том, чтобы определить стандартный протокол связи независимо от поставщиков компонентов. Сегодня SAE J1939 присутствует во всех транспортных средствах, даже если автомобиль, который мы едем каждый день, имеет внутри одну или несколько шин CAN для обмена данными между различными датчиками / исполнительными механизмами на борту, шина CAN для диагностики доступна на розетке. OBD присутствует на каждой машине.

Наши системы SlimLine благодаря источнику питания 10 ÷ 30 Vdc и расширенному температурному диапазону они используются в мобильных транспортных средствах, операционных машинах и лодках, во всех областях применения, где присутствует эндотермический двигатель. Необходимость взаимодействия с двигателем для управления автоматикой, что является лучшим и более дешевым способом использования шины CAN, учитывая, что теперь все двигатели внутреннего сгорания имеют выход CAN с протоколом SAE J1939.

необходимость

Один из наших клиентов на большом прогулочном катере реализовал всю бортовую автоматизацию с нашими системами SlimLineВзаимосвязь между системами в сети Ethernet значительно сократила использование кабелей в пользу веса и, следовательно, потребления. Для управления бортовыми службами, лебедками, якорными лебедками, носовыми подруливающими устройствами и т. Д. применяется гидравлический насос с приводом от дизельного двигателя мощностью 100 л.с. Необходимо было знать обороты двигателя, нагрузку и управлять акселератором, чтобы регулировать обороты в соответствии с условиями переменной нагрузки.

Как только порт CAN модуля ЦПУ подключен к интерфейсу SAE J1939 двигателя, благодаря вызовам функций управления протоколом CAN все параметры двигателя двигателя считываются.

Capricorno_SlimLine

Программа

John Deere 9460 CAN bus

При помощи CAN-Hacker Вы можете работать не только с легковым и легким коммерческим транспортом. Так же успешно можно работать и с грузовиками, тракторами, комбайнами и другой специальной техникой.

Пи работе с CAN шиной специальной техники есть одно важно преимущество перед работой с легковым транспортом – На спец.технике протокол взаимодействия по CAN шине стандартизирован в большей части и название этого стандарта SAE J1939 или FMS протокол (Fleet management system).

Рассмотрим изучение протокола FMS на примере работы с CAN шиной трактора John Deere 9460.

Подключение к CAN шине трактора осуществляется через стандартный диагностический разъем J1939

J1939 pinout CAN bus

В этом разъеме нам нужны контакты C и D.

Вот так выглядит подключение к CAN шине трактора John Deere при помощи CAN-Hacker:

j1939 connector can bus

John Deere CAN bus connection

Подключение осуществляется на скорости 500 кбит\с. Если подключение сделано то мы увидим примерно такие данные:

John Deere canbus data jpg

J1939 CAN bus data

Пакеты будут так же быстро изменяться, как и в автомобилях, но обратим внимание на длинные 29-битные ID. В этих ID хранится информация о передаваемых параметрах, для их разбора обратимся к описанию протокола FMS / J1939

J1939 ID structure

ID протокола J1939 состоит из следующих полей:

Нас будут интересовать поля PDU Format и PDU Specific которые образуют номер передаваемого параметра, например

ID=0CF00400 имеет номер параметра F004 – средние два байта.

Остается вопрос: Как узнать какой параметр в CAN шине трактора за что отвечает? Обратимся к документу FMS-Standart description и при помощи поиска текста в документе найдем описание параметра 00F004

J1939 FMS PGN F004

В документе указано, что 3, 4, 5 байты несут в себе информацию о текущих оборотах двигателя.

Попробуем разобрать другой принятый пакет:
ID=18FEE500 DLC=8 DATA: CD 75 00 00 FF FF FF FF

Ищем в FMS Standart Description параметр FEE5

J1939 FMS PGN FEE5 Engine Hours

Как видим это время наработки трактора, в нашем случае первые два байта пакет CD 75, а время наработки трактора 1507.8 часов. Формула пересчета такая:
(1507.8 *10 ) *2 ->HEX = 75CD

Таким образом мы можем при помощи CAN-Hacker найти все остальные интересующие параметры: Расход топлива, скорость, нагрузку на оси и многое другое.

предлагаю в данной теме выкладывать данные из реальных авто
марка /год / шина CAN/Lin .

2 Ответ от gordon 10-03-2015 14:20:08

203/463 (463248)
салоная шина
кнопки на руле

1A8 01 стрелка вверх
1A8 02 стрелка вниз
1A8 04 меню вниз
1A8 08 меню вверх
1A8 10 звук вверх
1A8 20 звук вниз
1A8 40 трубка вверх
1A8 80 трубка вниз
. next

3 Ответ от gordon 21-03-2015 14:49:05

"шатл " управления мультимедиа MB 204 (c-clk-glk. )
CAN A , 125kb
id
0xfb
0xfd
0x428
0x747
кнопка возврат
0xfd 0x02
кнопка С
0xfd 0x20
шатл наклон влево
0xfd xx xx 0x40
шатл наклон вправо
0xfd xx xx 0x04
шатл наклон вниз
0xfd xx xx 0x10
шатл наклон в верх
0xfd xx xx 0x01

4 Ответ от gordon 21-03-2015 15:51:38

кнопка шатла
0xfd xx 80
шатл поворот влево
значение -1( от значения в блоке )
0xfb xx xx xx xx xx xx 0x7F
шаг -1
0xfb xx xx xx xx xx xx 0x7e
шатл поворот вправо
значение +1( от значения в блоке )
0xfb xx xx xx xx xx xx 0x7F
шаг +1
0xfb xx xx xx xx xx xx 0x80

5 Ответ от gordon 23-03-2015 10:05:15

на повестки дня :221 шатл , KI , TSG(все ) SAM( все ) , OBF,MRM.
З.Ы может кто еще подключится ')

6 Ответ от gordon 24-03-2015 11:38:08

OBF 639(VIANO) САЛОННАЯ ШИНА 83.3kb
ID 0X2C
ID 405
0X2C XX 0X20( аварийка тригерная 0x00 выкл )
0x2c XX XX XX 0x04 левая сдвижная дверь открыть
0x2c XX XX XX 0x02 левая сдвижная дверь закрыть
0x2c XX 0x80 XX ХХ стеклоочиститель задней двери (тригер 0x00 )
0x2c XX 0x40 XX ХХ стеклоочиститель+стеклоомыватель задней двери
0x2c XX XX 0x80 XX PTS ON/OFF
0x2c 0X01 XX XX XX ASR ON/OFF
0x2c XX 0X01 XX XX HZ ON/OFF
0x2c 0X10 XX XX XX ЗАКРЫТИЕ ПЕРЕДНИХ ДВЕРЕЙ
0x2c 0X20 XX XX XX ЗАКРЫТИЕ ЗАДНИХ ДВЕРЕЙ
0x2c XX XX XX 0X40 ВКЛЮЧИТЬ СВЕТ В САЛОНЕ
0x2c XX XX XX 0X80 ВЫКЛЮЧИТЬ СВЕТ В САЛОНЕ
0x2c XX XX XX 0x10 правая сдвижная дверь открыть
0x2c XX XX XX 0x20 правая сдвижная дверь закрыть
.

7 Ответ от Arhimed 25-03-2015 00:57:42

Mercedes-Benz S W221 2005-2013гг
Управление задними сиденьями
CAN 125kb
Левое:
кн. спинка вперёд 1f3 80 10
спинка назад 1f3 80 20
подушка сиденья вперёд 1f3 81
подушка сиденья назад 1f3 82
подушка сиденья вниз 1f3 80 02
подушка сиденья вверх 1f3 80 01
вентиляция 1f3 80 00 01
подогрев 1f3 80 00 02
Состояние вентиляции:
3-я скорость 3bd 03
2-я скорость 3bd 02
1-я скорость 3bd 01
Cостояние подогрева:
3-я max 3bd 0d
2-я ср 3bd 09
1-я min 3bd 05
всё выкл 3bd 00
Правое:
команды регулировок все те же, только с идентификатором 1f4
Состояние вентиляции:
3-я скорость 3bd xx 03
2-я скорость 3bd xx 02
1-я скорость 3bd xx 01
Cостояние подогрева:
3-я max 3bd xx 0c
2-я ср 3bd xx 08
1-я min 3bd xx 04
всё выкл 3bd xx 0d
При одновременном включении вентиляции и подогрева соответственно сумма в шестнадцатиричной системе

8 Ответ от gordon 25-03-2015 09:14:23

Для полноты данных прошу выкладывать группу ID блока после подачи питания
id .
id.
id.
для полноты картины

9 Ответ от Arhimed 11-04-2015 01:25:12 (12-04-2015 22:57:55 отредактировано Arhimed)

10 Ответ от Константин, CANNY 02-05-2015 21:05:36

bmw 8x( на мини тоже )CAN 100kbit
0x0A8 54 D7 2B D0 2B F0 0F 02 Torque, Clutch and Brake status
0x0AA 5F 59 FF 00 34 0D 80 99 Engine RPM and throttle position
0x0C0 F4 FF ABS / Brake counter
0x0C4 83 FD FC 00 00 FF F1 Steering Wheel position (See 0C8)
0x0C8 DD 07 FC 00 00 FF Steering Wheel position (Sent 2x often 0C4)
0x0CE DA 02 DC 02 DC 02 D9 02 Individual Wheel Speeds (4x Pairs)
0x0D7 C3 FF Counter (Airbag / Seatbelt Related)
0x0E2 81 FF E7 FC FF FF FF FF Passenger door status Unlocked, Open
0x0E6 81 FF E7 FC FF FF FF FF Rear Passenger door status Unlocked, Open
0x0EA 81 FF E7 FC FF FF FF FF Driver door status Unlocked, Open
0x0EE 81 FF E7 FC FF FF FF FF Rear Driver door status Unlocked, Open
0x0F2 F1 FF 87 C0 FF FF FF FF Boot status Unlocked, release button, Open
0x0FA C0 00 FF Electric Window controls (Driver controls)
0x0FB C7 FF FF Electric Window controls (Front Passenger)
0x130 45 40 21 8F FE Ignition and Key status (Term 15 / R ON?)
0x193 27 FE F1 00 F8 50 00 00 Timer & Cruise control status
0x19E 00 E0 B3 FC F0 43 00 65 ABS / Braking force
0x1A6 13 4D 46 4D 33 4D D0 FF Speed, as used by the instrument cluster
0x1B4 00 D0 E0 F8 00 32 FE 91 Speed [MPH] Handbrake status
0x1C2 8D 72 5B 5A FF FF FF FF PDC (Reverse) / (Front) Sensor data
0x1D0 4C FF 63 CD 5D 37 CD A8 Engine temp, Pressure sensor & Handbrake
0x1D6 C0 0C MFL (Steering Wheel) Buttons
0x1E1 D4 F1 00 FF FF FF Counter and Door Status (200mS intervals)
0x1E3 F1 FF Interior Light Switch
0x1EE 00 FF Indicator Stalk position
0x1F6 80 F0 Indicator Status
0x202 54 FF Lights (Dimmer Status)
0x21A 05 12 F7 Lighting Status
0x23A 00 30 00 60 Remote Control Keyfob Actions
0x246 3F F3 00 FC FF Air Con, Demister Status
0x24A 06 FF Reverse Status
0x24B 00 F8 Door status, similar to 2FC
0x252 CE FF Windscreen Wiper Status
0x264 E1 FD 21 A2 7F 1E iDrive Controller (Rotary Control)
0x267 E1 FD CC 01 DE 01 iDrive Controller (Direction / Buttons)
0x26E 00 40 7F 50 FF FF FF FF Ignition Status
0x273 1D E1 00 F0 FF 7F DE 04 CCC / CIC Status
0x277 E1 9D 04 FF iDrive controller reply to 0x273
0x286 00 FF Rear View Mirror, Light sensor
0x2A6 00 F9 Windscreen Wiper Controls
0x2B4 00 F2 Door locking (Via Remote Control)
0x2B8 31 00 F0 00 00 E3 Reset Av Fuel / Speed
0x2BA 00 00 00 00 10 Counter (Toggle / Heartbeat)
0x2CA 61 FF Outside temperature
0x2D6 FF FC FF Air Conditioning Status
0x2E6 64 00 00 FF 00 01 3F 34 Climate control status (Fan and Temp speed)
0x2EA FF FF FF FF FF FF FF 34 Climate control status (Passenger)
0x2F8 13 2E 1E 01 4F DC 07 FD Report Time and Date
0x2FC 81 01 00 FF FF FF FF Door Status
0x328 16 83 A2 04 DE 11 1 Second count from battery removal / reset
0x32E 00 FF 8F 63 6A 00 2E 0F Internal Temp, Light and solar sensors
0x330 7A 5A 00 2D 29 2F 9C 34 Odometer, Av Fuel, and Range
0x349 76 0F BE 1A 00 Fuel Level sensors
0x34F FE FF Handbrake status
0x362 AE F3 1E FF FF FF EA Average MPH & Average MPG
0x366 78 50 14 FC Ext Temp & Range
0x380 56 xx 35 32 38 37 xx VIN Number
0x394 48 0F 10 6B 00 88 58 01 Hours / Distance since last service.
0x39E 0B 10 00 0D 1F DF 07 F2 Set Time and Date
0x3B0 FD FF Reverse Status
0x3B4 A6 F3 00 FC FF FF FF FF Battery Voltage & Charge status
0x3B6 00 FC F0 Passenger Front Window status
0x3B7 41 F5 F8 Driver Rear Window status
0x3B8 00 FC F0 Driver Front Window status
0x3B9 41 F5 F8 Passenger Rear Window status
0x581 40 4D 00 28 FF FF FF FF Seatbelt Status
0x7C3 xx xx xx xx xx xx xx xx Keyfob (security, comfort and CBS data)


Продолжаю серию заметок о Наверное самый дешевый CAN сниффер , в предыдущей заметке я описал процесс прошивки адаптера Прошивка для OBD2 адаптера на базе STM32.
Наступила очередь описания управляющей программы для адаптера.
Программа написана на Qt, поэтому должна работать во всех поддерживаемых ОС, я проверил ее работу только под следующими ОС:
Android — работа проверена в android8. При проблемах с запуском приложения, надо включить в разрешениях у приложения доступ к местоположению.
Windows — работа проверена в windows xp.
Linux — собирается парой команд qmake && make.
Исходные тексты программы находятся на github-е

При запуске программы на телефоне появляется окно выбора bluetooth устройства. При нажатии на кнопку "Scan" производится поиск устройств. Зеленым цветом выделяются устройства уже сопряженные с нашим телефоном. У устройств с профилем "SerialPort" появляется иконка последовательного порта — с таким устройством можно соединиться нажав кнопку "Connect".
Функции сопряжения у приложения нет, поэтому соединение устройств необходимо предварительно сделать средствами android/linux.


Qt поддерживает bluetooth стек только начиная с windows 10, поэтому в windows необходимо подключиться к адаптеру средствами ОС и далее открыть последовательный порт связанный с адаптером.


После подключения к устройству появляется окно с несколькими вкладками.




Во вкладке обновления можно произвести обновление прошивки адаптера.
Для обновления прошивки необходимо выполнить определенную последовательность действий:
1) Перегрузить адаптер в режим загрузчика, нажав на кнопку "Reset"
2) Очистить содержимое flash памяти STM32, нажав на кнопку "Erase"
3) Выбрать файл прошивки, нажав на кнопку "Open"
4) Запустить процесс перепрошивки нажав на кнопку "Run"
5) Перегрузить адаптер в режим приложения, нажав на кнопку "Reset"



В этой программе можно найти связь данных из CAN посылок с известными параметрами автомобиля: скорость, обороты и т.д. Для этого при сборе данных включаем периодическую отправку OBD2 PID запросов. Тем самым в накопленных данных будут как "сырые" данные от автомобиля, так и ответы на OBD2 PID запросы. С форматом CAN OBD2 PID посылок можно ознакомиться на википедии:Формат OBD2 PID CAN посылок. Если вкратце, то в OBD2 PID CAN ответе 2-й байт это PID, а 3-й и 4-й байт данные.
В программе первым делом необходимо открыть CSV файл с данными, затем включить отображение канала с помощью переключателя "Enable". Затем выбрать поток данных от интересующего нас CAN ID с помощью селектора "Id". С помощью селектора "Type" происходит приведение типов. С помощью селектора "Offset" выбирается нужный байт данных из CAN посылки. С помощью полей "Mul" и "Add" можно сделать дополнительные арифметические преобразования.


С помощью этой программы были найдены следующие параметры для hyundai solaris at 2013.
0x316 — x x low high x x x x — rpm
0x0a0 — x x low high x x x x — rpm
0x440 — x x speed x x x x x — speed
0x0a0 — x x x speed x x x x — speed
0x316 — x x x x x x speed x — speed
0x43f — x sel x x x x x x — selector
0x0a0 — x temp x x x x x x — coliant temp
0x0a1 — x x x x map x x x — map
0x43f — x x x temp x x x x — air temp
0x0a0 — x x x x x tp x x — throttle position

В следующей заметке я расскажу о том как оперативно отображать известные параметры автомобиля в своем приложении, например как на изображении ниже .

Читайте также: