Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Протокол kwp2000 и быстрая инициализация
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам
coolibin
Как производится быстрая инициализация в протоколе kwp2000?
coolibin
Up!
Хэлп! В документе описывающем данный протокол написано:
Цитата
The tester transmits a Wake up Pattern (WuP) on the K-Line. The pattern begins after an
Idle time on K-line, TIdle, with a low time of TiniL. The tester transmits the first bit of the
StartCommunication Service after a time of tWuP following the first falling edge of the Wake
up Pattern.

сам документ:
ISO 14230-2
я прочитал, но всё равно не понятно, как производится быстрая инициализация?
Cyber_RAT
там же чуть нижу нарисован он... читать надо внимательнее smile.gif
к-линию в 0 на 25 мс (+-1мс максимум), потом в 1 на 25 мс (+-1мс максимум)

см Figure 11 в своем файле wink.gif
coolibin
Цитата(Cyber_RAT @ Mar 23 2008, 19:33) *
там же чуть нижу нарисован он... читать надо внимательнее smile.gif
к-линию в 0 на 25 мс (+-1мс максимум), потом в 1 на 25 мс (+-1мс максимум)

см Figure 11 в своем файле wink.gif

Это всё я читал несколько раз, но мне почему то не верится что всё так просто. Если у меня общение между ATmega8 и К-line шиной происходит через USART и через микросхему преобразования уровней, то как мне добится того чтобы на к-линии была, например, единица. Получается надо быструю инициализацию проводить отдельно от USART'а и отводить для этого отдельный вывод на процессоре? Или я как то не так понял?
Cyber_RAT
зачем?
1. выключаете usart.
2. дергаете ногой усарта как обычным выходом порта.... с определнными паузами.
3. резко врубаете усарт wink.gif и настраиваете его на 10400 (вроде если правильно помню), а дальше работаете по усарту скока надо.
coolibin
Цитата(Cyber_RAT @ Mar 23 2008, 23:13) *
...
2. дергаете ногой усарта как обычным выходом порта.... с определнными паузами.
...

А как зависит состояние К линии от состоянии на входе Rx, Tx? У меня, как всегда, микросхема L9637D L9637D . Т. е. я просто подаю на Tx ноль, тогда на К-линию подаётся ноль?
Cyber_RAT
считайте свою спец микросхему просто усилителем....
т.е. 5 вольт высокого уровня на ТХ - 12 вольт на K...
coolibin
Это получается, что тестер должен посылать сообщение testerPresent через каждые 5 сек простоя?
Cyber_RAT
это где вы такое высмотрели? в табличке?
Если да, тогда там над ней написано Values in milliseconds (значения в милисекундах).
coolibin
Цитата(Cyber_RAT @ Mar 28 2008, 12:53) *
это где вы такое высмотрели? в табличке?
Если да, тогда там над ней написано Values in milliseconds (значения в милисекундах).

Да, но там указано 5000 мсек.

Цитата:
Функция testerPresent.
Данная функция должна использоваться, чтобы тестер мог сообщить блоку управления о своем присутствии на диагностической линии связи. Данная функция требуется, чтобы предотвратить возврат блока управления к нормальному режиму работы при отсутствии, в течение некоторого времени (см табл.5.1), запросов от тестера.

При этом должны соблюдаться следующие правила:

Наличие этого запроса поддерживает наличие связи между тестером и блоком управления.

Наличие положительного ответа на этот запрос показывает, что блок управления находится в диагностическом режиме работы.
Cyber_RAT
вообще-то это максимальное время...
просто шлите через 100 мсек (или сколько у вас там цикл программы) testerPresent, а если вдруг не получили ответа - переход на конект к ЭБУ.
coolibin
Ещё интересует пару моментов:
1) Время межбайтового интервала для запроса диагностического тестера варьируется от 0 до 20 мсек, т. е. я могу взять время из этого интервала, например, 10 мсек и передавать байты с этим промежутком?
2) В таблице времён есть графа "разрешение", что она означает?
Cyber_RAT
1 - можно, но проще отправлять все байты посылки сразу один за одним - зачем ждать чего-то?
2 - разброс времени... т.е. 10 мсек (разрешение 0.5) значит максимальный разброс 9.5-10.5 мс
coolibin
Цитата(Cyber_RAT @ Mar 31 2008, 08:47) *
1 - можно, но проще отправлять все байты посылки сразу один за одним - зачем ждать чего-то?
...

Напрашивается вполне логичный вопрос, а если ЭБУ будет посылать байты без задержки, как мне успеть принять их и ещё произвести какие нибудь действия?
Cyber_RAT
А вы думаете что если вы шлете с задержкой - ЭБУ тоже будет ее ставить? wink.gif
передача 1 байта со скоростью 10400 и выполнение 1 команды контроллера - несовместимы по времени smile.gif вы еще много успеете между приемом следующего байта.
p.s. можно сделать и прерывание по приходу байта по RS232, тогда все остальное время делайте что хотите.
coolibin
Цитата(Cyber_RAT @ Apr 1 2008, 12:53) *
А вы думаете что если вы шлете с задержкой - ЭБУ тоже будет ее ставить? wink.gif
...

Неа, я так не думал просто Вы намекнули мне на мысль wink.gif
ChosenOne
Цитата(Cyber_RAT @ Mar 23 2008, 20:33) *
там же чуть нижу нарисован он... читать надо внимательнее sm.gif
к-линию в 0 на 25 мс (+-1мс максимум), потом в 1 на 25 мс (+-1мс максимум)

см Figure 11 в своем файле wink.gif


всем привет!
простите если туплю, но никак не могу понять как же сделать эту быструю инициализацию программным образом.
Как реализовать подачу 0 на 25мс и 1 на 25 мс с помощью com-порта?
Заранее благодарен за помощь.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.