Обмен данными по Uart между Arduino и Webasto
- Войдите на сайт для отправки комментариев
Всем привет, помогите разобраться пожалуйста...
В ходе своих очередных своих экспериментов, решил изучить Uart, как происходит обмен данными, взаимосвязь между пакетами данных и т.д.., для этого подключил Arduino к Webasto через K-Line адаптер (его собрал на интерфейсной микросхеме L9637D), адаптер подключил к Webasto, у Webasto есть диагностическая шина (W-bus), это однопроводная шина, которая полностью соответствуют стандартам K-Line шине.
«K-Line - симплексный интерфейс, обмен по которому происходит, как правило, по принципу "ведущий-ведомый». Ведущее устройство посылает команды ведомому, а ведомое устройство на эти команды отвечает.»
К сожалению, в программирование не силён, но очень интересно, помаленьку разбираюсь в этом. На просторах интернета нашел примерных скетч, немного удалил оттуда лишнее, разумеется основное оставил. Оставил минимальную часть для понимания простого алгоритма действия.
Суть такова…
Для инициализации начала обмена c ЭБУ Webasto необходимо подать следующую последовательность уровней на K-линию: LOW (300ms), HIGH (25ms), LOW (25 ms), HIGH (3025ms), за тем на скорости 10400 бод необходимо отправить 5 байт инициализации в HEX 81 51 F1 81 44 , в Arduino (Rx) приходит ответ 12 байт - 81 51 F1 81 44 83 F1 10 C1 E9 8F BD, из которых 5 байт это "эхо" запроса, а 7 байт ответ от самой Webasto, в ответе байт C1 означает положительный ответ (ОК).
Как я понял, судя по алгоритму кода в скетче, действия должны происходить следующим образом:
запрос - 81 51 F1 81 44 (5 байт)
ответ - 81 51 F1 81 44 83 F1 10 C1 E9 8F BD (12 байт из которых 5 байт 81 51 F1 81 44 Эхо)
после этого, должно происходить считывание из буфера поступивших данных, а это, я так понимаю 12 байт, потом выполняется условие (если кол-во байт соответствует 12, и байт 8 соответствует C1),
далее очистка буфера, и новый запрос 83 51 F1 2A 01 01 F1
Но! нечего не работает, вернее происходит так:
выполняется запрос - 81 51 F1 81 44
выполняется ответ - 81 51 F1 81 44 83 F1 10 C1 E9 8F BD
после выполнения ответа, дальше никаких действий не происходит, весь хронометраж событий просматриваю с помощью логического анализатора DsLogic
Подскажите где ошибка, или как быть? очень интересно понять.
для начала почитать эту ветку . там вроде я бросал тестовые скетчи работы с вашим котлом. Также читаем пост #414 . А вообще в ближайшее время хочу найти время и добавить ваш котёл в скетче девайса, обсуждаемого в той ветке.
и прочитайте головную тему песочницы
пробуем такой скетч