|
Устройство на RS485 странное поведение |
|
|
|
Aug 25 2009, 13:48
|
Группа: Участник
Сообщений: 14
Регистрация: 22-12-08
Пользователь №: 42 655

|
Доброго времени суток!!! Есть устройство, описание приведено в прикрепленном файле. И ведет себя немножко странно: Если в сети подключено одно устройство все работает как на алгоритме и без сбоев. Стоит подключить второе устройство оба устройства перестают отвечать. Но если посылать команды то они выполняются. На данный момент у меня нет устройства чтоб подключить к сети для мониторинга и поэтому что творится на линии не знаю. Посоветуйте в какую сторону копать.
Сообщение отредактировал xoz - Aug 25 2009, 13:50
Эскизы прикрепленных изображений
|
|
|
|
|
 |
Ответов
|
Aug 25 2009, 16:14
|
Группа: Участник
Сообщений: 14
Регистрация: 22-12-08
Пользователь №: 42 655

|
Цитата(DpInRock @ Aug 25 2009, 18:53)  Это не описание. Вы ошиблись. Безпроблем! Можно называть это как угодно  главное я думаю суть понятна. to rezident: Да это как раз таки на ADM 485 реализовано. С таймингами я довольно долго игрался Наверно придется собрать чтонить анализирующее линию.
|
|
|
|
|
Aug 25 2009, 16:30
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(xoz @ Aug 25 2009, 22:14)  С таймингами я довольно долго игрался Наверно придется собрать чтонить анализирующее линию. А какой протокол вы используете? Адресация в нем присутствует? Если да, то анализировать линию нет смысла. Оба/все ведомые принимают любой пакет/запрос, но отвечают только в том случае, если сетевой адрес в пакете совпадает с их собственным. По поводу таймингов могу подсказать, что ведущий должен иметь два настраиваемых параметра: а) время ожидания ответа ведомого (в него входит время, необходимое для передачи пакета запроса) б) минимальное время перед началом передачи запроса Соответственно у ведомого параметры: а) максимальное время подготовки ответа (от получения запроса до начала передачи пакета ответа) б) минимальное время перед началом передачи запроса Дополнительные параметры для обоих (и ведущего и ведомого) а) время между переключением трансивера RS485 на передачу и собственно началом передачи пакета б) время удержания трансивера RS485 в режиме передачи после окончания передачи пакета Реализовав все перечисленные опции, вы сможете поддержать почти любой используемый в сетях RS485 протокол связи типа "запрос-ответ".
|
|
|
|
|
Aug 25 2009, 21:22
|
Группа: Участник
Сообщений: 14
Регистрация: 22-12-08
Пользователь №: 42 655

|
Цитата(rezident @ Aug 25 2009, 21:30)  А какой протокол вы используете? Адресация в нем присутствует? Если да, то анализировать линию нет смысла. Оба/все ведомые принимают любой пакет/запрос, но отвечают только в том случае, если сетевой адрес в пакете совпадает с их собственным. По поводу таймингов могу подсказать, что ведущий должен иметь два настраиваемых параметра: а) время ожидания ответа ведомого (в него входит время, необходимое для передачи пакета запроса) б) минимальное время перед началом передачи запроса Соответственно у ведомого параметры: а) максимальное время подготовки ответа (от получения запроса до начала передачи пакета ответа) б) минимальное время перед началом передачи запроса Дополнительные параметры для обоих (и ведущего и ведомого) а) время между переключением трансивера RS485 на передачу и собственно началом передачи пакета б) время удержания трансивера RS485 в режиме передачи после окончания передачи пакета Реализовав все перечисленные опции, вы сможете поддержать почти любой используемый в сетях RS485 протокол связи типа "запрос-ответ". Да там адресация присутствует. реализовывал следующим путем(так как только учусь пожалуйста не пинайте) Расчитал примерное время передачи самого длинного пакета, создал таймер с запасом(период в 2 раза больше времени посылки) и действия разбил по "тик"ам таймера. Ведущий 1 тик включаю на передачу 2 тик передаю данные 3 тик включаю на прием 4 тик ожидаю данные и отсылаю на обработку 5 тик включаю на передачу Ведомый 1. включаю на прием жду приема 2. если запрос для меня запускаю таймер 3. 1 тик включаю на передачу 4. 2 тик передаю 5. 3 тик включаю на прием отключаю таймер Это все без проблем работает если один ведомый Но скорей всего мне надо будет пересмотреть весь алгоритм
|
|
|
|
|
Aug 26 2009, 04:45
|
Группа: Участник
Сообщений: 14
Регистрация: 22-12-08
Пользователь №: 42 655

|
Цитата(=AK= @ Aug 26 2009, 08:42)  Расскажите, как реализована адресация. Определены командные символы #define REDY 0xFE //запрос на состояние #define REPLY 0xF0 //ответ от ведомого #define COMMAND 0xF5//команда #define END 0xFA //конец передачи Запрос на состояние: REDY (адрес 1 байт) END Ответ от ведомого: REPLY (адрес 1 байт) (данные)END Команда: COMMAND(адрес 1 байт)(тип действия 2 байта) END скорость передачи 9600 Максимальная длина пакетов 9 байт
|
|
|
|
|
Aug 26 2009, 06:01
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(xoz @ Aug 26 2009, 07:45)  Определены командные символы Кодовая таблица ASCII существует десятки лет, STX, ETX,ETB давно определены и стандартизованы европейскими стандартами. Обертка пакета тоже давно устоялась. Но "мы пойдем другим путем!" "Какую будем делать ширину ЖД?"
--------------------
Уходя, оставьте свет...
|
|
|
|
|
Aug 26 2009, 09:14
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(=AK= @ Aug 26 2009, 09:50)  Если у топикстартера фундаментальная проблема с протоколом, то смена этих рюшечек ему точно совсем никак не поможет. Конечно, это брюзжание  У топикстартера проблема с инструментарием. Осциллограф позволит узнать, кто послал посылку, кто ее получил, кто не получил, а кто зажал ответ. Нет осциллографа - светодиоды помогут. Нет светодиодов - тестер (проверить сигнал направления после посылок). Нужно учиться отлаживать программу и находить собственные ошибки. Любым доступным способом. Ничего нет - ну что ж - будем учить строить автоматы состояний приемо-передачи. Типа такого...
Dmb_mast.pdf ( 23.2 килобайт )
Кол-во скачиваний: 260Легкой жизни не будет!
--------------------
Уходя, оставьте свет...
|
|
|
|
|
Aug 26 2009, 10:58
|
Группа: Участник
Сообщений: 14
Регистрация: 22-12-08
Пользователь №: 42 655

|
Цитата(Dog Pawlowa @ Aug 26 2009, 14:14)  Легкой жизни не будет!  О легкой жизни и не мечтал  Цитата(DpInRock @ Aug 26 2009, 12:47)  Тогда все понятно. Вы делаете сеть. Физический уровень вам делает микросхема. А вот канальный вы даже и не думали делать. Сразу перепрыгнули на уровень приложения. Люди вовсе не от скуки рисуют многоуровневую систему протоколов для сетевого общения. О канальном уровне где можно посмотреть? Хотяб краткое разъяснение что это и зачем.
|
|
|
|
Сообщений в этой теме
xoz Устройство на RS485 странное поведение Aug 25 2009, 13:48  _Pasha Цитата(xoz @ Aug 25 2009, 19:14) С таймин... Aug 25 2009, 16:24      =AK= Цитата(xoz @ Aug 26 2009, 14:15) Определе... Aug 26 2009, 05:24      _Pasha Цитата(xoz @ Aug 26 2009, 07:45) скорость... Aug 26 2009, 05:37       =AK= Цитата(_Pasha @ Aug 26 2009, 15:07) ПримИ... Aug 26 2009, 05:53        _Pasha Цитата(=AK= @ Aug 26 2009, 08:53) Непонят... Aug 26 2009, 11:13         =AK= Цитата(_Pasha @ Aug 26 2009, 20:43) Тьфу... Aug 26 2009, 12:33          _Pasha Цитата(=AK= @ Aug 26 2009, 15:33) Для пол... Aug 26 2009, 12:42           =AK= Цитата(_Pasha @ Aug 26 2009, 22:12) Тайма... Aug 26 2009, 12:51         MrYuran Цитата(Dog Pawlowa @ Aug 26 2009, 13:14) ... Aug 26 2009, 09:34          Dog Pawlowa Цитата(MrYuran @ Aug 26 2009, 12:34) даже... Aug 26 2009, 10:13       SSerge Цитата(Dog Pawlowa @ Aug 26 2009, 12:01) ... Aug 26 2009, 07:22 rezident Если "это" интерфейс связи типа RS485, т... Aug 25 2009, 14:54 DpInRock Тогда все понятно.
Вы делаете сеть. Физический ур... Aug 26 2009, 07:47 Rst7 ЦитатаА про прембулу перед адресом - не понял, зач... Aug 26 2009, 12:46 _Pasha Спасибо, понятно. Я это давным-давно обозвал ... Aug 26 2009, 12:55
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|