Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Автоподстройка скорости CAN (AutoBaud Mode)
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Controller Area Network (CAN)
Толик
Хотелось бы реализовать в устройстве режим автоподстройки (скорости или времени задержки....как там это называется точно не знаю).

В документации на SAM7A3 описан Autobaud Mode, но, вот, не понятна его реализация. То ли контроллер сам заполняет Baudrate Register, то ли программисту следует перебирать yeah.gif все возможные настройки SYNC_SEG , PROP_SEG , PHASE_SEG1 , PHASE_SEG2 в этом же регистре?
Если программист должен перебирать в этом режиме эти задержки, то существует ли некие стандарты этих настроек? Если - даsanta2.gif , то где их можно найти?

А что будет если в устройстве будут одни настройки, а у других устройств в сети другие? (вопрос может и ...01.gif , но в описании устройств, найденных мною в Интернете, я не нашёл описания этих задержек)
roland07
up
zksystem
Какие цели вы вообще преследуете этим автоопределением? Существуют стандартные рекомендованные частоты, которых не так много. Нужно использовать именно их, а не изобретать очередные поделки к которым потом что-то дописывать другим людям.
syoma
Насколько я понимаю, все очень просто - есть стандартные скорости 1мбит, 500к, 250к, 125к, 50к, 20к, 10кбит и так далее. Для каждой скорости существует определенный набор значений регистров SYNC_SEG , PROP_SEG , PHASE_SEG1 , PHASE_SEG2.
Т.е. каждой скорости будет соответсвовать только один такой набор.
При автонастройке контроллер переходит в так-называемый режим прослушки, когда он принимать данные может, но посылать ничего не может - например acknowledge или error frame.
Т.е все происходит след. образом.
1. По CAN шине должны посылаться сообщения. Если сообщений нет, автонастройка не будет работать.
2. Контроллер в режиме автонастройки подключается к шине. Он не будет оказывать никакого влияния, так как будет находиться в режиме прослушки.
3. Контроллер заносит в регистры CAN контроллера первый набор значений регистров тайминга, соответствующий какой либо скорости.
4. При приеме след. сообщения, если скорость совпадает, то контроллер примет это сообщение. Иначе у него взведется флаг ошибки изза ошибки стаффинга или CRC или чего нибудь еще.
5. Если флаг ошибки взвелся, то контроллер переходит к п.3 с с другими значениями скорости.

Вроде так все скорости и перебираются, пока не примется сообщение без ошибок.
Вроде так.

А стандартные наборы значений регистров легко гуглятся по CAN baudrate Calculator. Например вот этот.
net
QUOTE (syoma @ Oct 19 2010, 14:06) *
Насколько я понимаю, все очень просто - есть стандартные скорости 1мбит, 500к, 250к, 125к, 50к, 20к, 10кбит и так далее. Для каждой скорости существует [/url].


вообще подбор скорости описан в стандарте который бесплатно скачивается с сайта can
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.