реклама на сайте
подробности

 
 
> Пересинхронизация "запаздывающего" контроллера
sabaka
сообщение Mar 10 2011, 08:32
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 4-06-06
Из: СПб
Пользователь №: 17 754



Есть некоторое недопонимание процесса.

Известно, что один бит в CAN состоит из четырех сегментов - SYNC, PROPAGATION, PHASE1, PHASE2. Контроллер читает бит с шины между PHASE1- и PHASE2-сегментами и, если надо, выставляет ответ на шину в начале SYNC-сегмента, причем выставляемый бит зависит от считанного. Время, которое нужно контроллеру на то, чтобы вычислить значение выставляемого бита на основе считанного, называется IPT, и для большинства виденных мною контроллеров равно двум временным квантам, при этом в стандарте сказано, что PHASE2 >= IPT.

Допустим, что IPT = PHASE2 и отрицательный фронт на шине пришел до SYNC-сегмента, т.е. передатчик работает быстрее приемника (не рассматриваем передачу Start-of-frame, т.е. хард-синхронизацию, там все ясно). Контроллер, увидев это, пересинхронизируется (софт-синхронизацией) путем уменьшения PHASE2-сегмента, таким образом PHASE2 становится меньше IPT, что запрещено стандартом. Внимание, вопрос. Когда на самом деле контроллер выставляет данные на шину?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 06:03
Рейтинг@Mail.ru


Страница сгенерированна за 0.01354 секунд с 7
ELECTRONIX ©2004-2016