Перейти к содержанию
    

Пересинхронизация "запаздывающего" контроллера

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

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Время, которое нужно контроллеру на то, чтобы вычислить значение выставляемого бита на основе считанного, называется IPT,

Разве передатчик вычисляет значение своего выставляемого бита? В фазе арбитража передатчик анализирует шину на наличие доминантного уровня. И если на шине другой узел выставил доминанту, а у передатчика посылаемый бит рецессивный, то он проигрывает арбитраж, прекращает передачу и отпускает шину.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На самом деле, я нашел в стандарте маааленькую приписку, что "if Phase_Seg2 is shortened to a value less than the information processing time, the calculation of the subsequent bit level may be completed after the end of Phase_Seg2", так что вопрос снимается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

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

×
×
  • Создать...