Мне нужно разработать приложение для смартфонов, которое будет связываться с диагностическим инструментом автомобиля. Обычно протоколы, используемые в диагностике, представляют собой KWP2000, UDS и OBD. Мой вопрос «как общаться с автомобилем? И как работать с этими протоколами?CAN диагностика
ответ
Вы также можете обратиться к UDS: http://neweagle.net/support/wiki/index.php?title=Unified_Diagnostic_Services
Если ваш автомобиль имеет CAN шину, то вам, вероятно, понадобится:
- использовать CAN устройства для подключения к CAN шине (сконфигурированный соответственно)
- реализовать (взять из любого места) поддержку сообщений CAN TP
- написать свою реализацию, используя протокол UDS через сообщения CAN TP.
С уважением,
Дмитрий
Большинством автомобилей поставляются с» On Board Diagnostic Port». Вы можете связаться с внутренним двигателем автомобиля, используя этот порт. Автомобиль отбросят данные на этом порту в любом из диагностических протоколов, который включает KWP2000, ISO15765 и т. д.
Вы должны проектировать что-то, что может связываться с вашего телефона на этот порт. Это может быть устройство с поддержкой Bluetooth, подключенное к этому порту, которое будет получать данные и передавать на ваш телефон через Bluetooth. Например, this
с этого момента, вы можете обрабатывать данные в телефоне по каким-либо причинам.
Автомобили с 2001 года имеют порт OBD-II в Европе. Я думаю, США с 1996 года.
Существуют различные типы разъемов OBD-II. ELM327-чип внутри позволяет легко общаться с автомобилем, так как чип делает коммуникацию ASCII-based для нас. Все, что вам нужно сделать, это отправить правильные команды, и вы получите ответ в ASCII.
Если приложение должно запускаться на смартфоне, у меня есть несколько предупреждений для вас. В большинстве разъемов реализовано bluetooth, и Android поддержит это, но WP7, Win8RT и iPhones не поддерживают связь по последовательному порту bluetooth, которую вам нужно будет настроить. Существуют также разъемы ad-hoc на основе wifi, и с ними может быть возможно.
http://en.wikipedia.org/wiki/OBD-II_PIDs
В wikipedia имеется список команд, которые вы можете отправить для получения данных в реальном времени.