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

 
 
> Автоподстройка скорости CAN (AutoBaud Mode), AT91SAM7A3
Толик
сообщение Mar 20 2008, 11:32
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 30
Регистрация: 26-02-07
Из: Москва
Пользователь №: 25 687



Хотелось бы реализовать в устройстве режим автоподстройки (скорости или времени задержки....как там это называется точно не знаю).

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

А что будет если в устройстве будут одни настройки, а у других устройств в сети другие? (вопрос может и ...01.gif , но в описании устройств, найденных мною в Интернете, я не нашёл описания этих задержек)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
syoma
сообщение Oct 19 2010, 10:06
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



Насколько я понимаю, все очень просто - есть стандартные скорости 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. Например вот этот.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd June 2025 - 22:43
Рейтинг@Mail.ru


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