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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Устройство на RS485 странное поведение
DpInRock
сообщение Aug 26 2009, 07:47
Сообщение #16


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



Тогда все понятно.
Вы делаете сеть. Физический уровень вам делает микросхема. А вот канальный вы даже и не думали делать. Сразу перепрыгнули на уровень приложения.
Люди вовсе не от скуки рисуют многоуровневую систему протоколов для сетевого общения.


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Aug 26 2009, 09:14
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(=AK= @ Aug 26 2009, 09:50) *
Если у топикстартера фундаментальная проблема с протоколом, то смена этих рюшечек ему точно совсем никак не поможет.

Конечно, это брюзжание smile.gif

У топикстартера проблема с инструментарием.
Осциллограф позволит узнать, кто послал посылку, кто ее получил, кто не получил, а кто зажал ответ.
Нет осциллографа - светодиоды помогут.
Нет светодиодов - тестер (проверить сигнал направления после посылок).
Нужно учиться отлаживать программу и находить собственные ошибки. Любым доступным способом.

Ничего нет - ну что ж - будем учить строить автоматы состояний приемо-передачи.
Типа такого... Прикрепленный файл  Dmb_mast.pdf ( 23.2 килобайт ) Кол-во скачиваний: 260


Легкой жизни не будет! smile.gif


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Aug 26 2009, 09:34
Сообщение #18


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(Dog Pawlowa @ Aug 26 2009, 13:14) *
Легкой жизни не будет! smile.gif

Ну почему, если подключили второе устройство и всё упало - то тут всё просто.
У нас круче было.
512 модулей в сети RS-485 (только не говорите, что это невозможно), управляют решёткой ФАР.
Всё работает. Но есть одна команда, которая загружает в память модуля массив из 8кБ.
И каждый раз на одном и том же байте (где-то после первой тысячи) происходит сбой и пара-тройка байт пишется с ошибками.
И что только не пробовали.
Согласовывали, резисторы вешали, земли выравнивали, даже конденсатор вешали (крайняя мера, всегда помогало!)
А тут ни в какую.
Дело происходило в последний день (вернее, уже ночь) перед сдачей (или несдачей) системы.
На кону пара сотен миллионов (рублей).
Из 6 присутствующих трое были начальники отделов, и они жутко мотивировали.
Иногда забегал зам главного инженера и тоже добавлял мотивации.

Помог крутой ажилент (тогда ещё HP) за $7000, с памятью на мегасемпл и функцией мегазум.
Рассмотрели коллизию, поняли причину.

Рвали волосы, посыпали головы пеплом...


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Aug 26 2009, 10:13
Сообщение #19


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(MrYuran @ Aug 26 2009, 12:34) *
даже конденсатор вешали (крайняя мера, всегда помогало!)

да ... Действительно все меры ... biggrin.gif


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
xoz
сообщение Aug 26 2009, 10:58
Сообщение #20





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



Цитата(Dog Pawlowa @ Aug 26 2009, 14:14) *
Легкой жизни не будет! smile.gif

О легкой жизни и не мечтал biggrin.gif

Цитата(DpInRock @ Aug 26 2009, 12:47) *
Тогда все понятно.
Вы делаете сеть. Физический уровень вам делает микросхема. А вот канальный вы даже и не думали делать. Сразу перепрыгнули на уровень приложения.
Люди вовсе не от скуки рисуют многоуровневую систему протоколов для сетевого общения.

О канальном уровне где можно посмотреть? Хотяб краткое разъяснение что это и зачем.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Aug 26 2009, 11:13
Сообщение #21


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(=AK= @ Aug 26 2009, 08:53) *
Непонятно, чем он принципиально лучше.

Тьфу! Забыл. Там был 9-битный протокол. Адрес, соотв. с 9-битом == 1.

Цитата
Для него остается в силе мой вопрос: что гарантирует отсутствие ложной реакции ведомого на данные, передаваемые другим ведомым?

Адрес получателя.
Go to the top of the page
 
+Quote Post
rezident
сообщение Aug 26 2009, 12:31
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(xoz @ Aug 26 2009, 16:58) *
О канальном уровне где можно посмотреть? Хотяб краткое разъяснение что это и зачем.
Сетевая модель OSI
Go to the top of the page
 
+Quote Post
=AK=
сообщение Aug 26 2009, 12:33
Сообщение #23


pontificator
******

Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483



Цитата(_Pasha @ Aug 26 2009, 20:43) *
Тьфу! Забыл. Там был 9-битный протокол. Адрес, соотв. с 9-битом == 1.

Вот с этого и надо было начинать. Тогда, действительно, ваш протокол вполне работоспособен. Для полного счастья ему не хватает только преабулы перед первым байтом (адресом) и жестко оговоренных таймаутов smile.gif
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Aug 26 2009, 12:42
Сообщение #24


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(=AK= @ Aug 26 2009, 15:33) *
Для полного счастья ему не хватает только преабулы перед первым байтом (адресом) и жестко оговоренных таймаутов smile.gif

Таймаут общий за счет того, что слейвы обязаны ответить.
А про прембулу перед адресом - не понял, зачем?
ЗЫ: в первом посте о протоколе - забыл отдельно сказать, что слейв отвечает так же, только вместо команды выдает статус
Код
<адрес> <длина пакета> <адрес отправителя> <статус> [данные] <CRC8>

ЗЗЫ: адрес общего вызова 0х00. Если пакет подписан адресом отправителя 0х00, то на него никто из слейвов не имеет права отвечать.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Aug 26 2009, 12:46
Сообщение #25


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
А про прембулу перед адресом - не понял, зачем?


Ну например в виде байта 0xFF для борьбы с шумами линии, когда она в неактивном состоянии. После передачи 0xFF все приемники станут в одинаково готовое состояние для приема байта адреса в независимости от предыдущих помех на линии.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
=AK=
сообщение Aug 26 2009, 12:51
Сообщение #26


pontificator
******

Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483



Цитата(_Pasha @ Aug 26 2009, 22:12) *
Таймаут общий за счет того, что слейвы обязаны ответить.
А про прембулу перед адресом - не понял, зачем?


Если ввести правило, по которому пауза между соседними байтами в сообщении не может превышать, например, одного байт-интервала, то при помощи преамбулы удается резко поднять помехоустойчивость. Преамбула состоит в том, что передатчик включает свой RS-485 трансивер на передачу, и молчит в течении, скажем, 2-х байт-интервалов. Вследствие упомянутого правила все приемники, обнаружив длинную паузу, сбрасывают свои приемные тракты в исходное состояние и изготавливаются к приему первого байта сообщения.

Без преамбулы помеховый сигнал на линии может инициировать начало ложного приема. Ведь приемники RS-485 очень чувствительные, а на свободную линию, когда ни один из передатчиков не включен, легко наводятся помехи.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Aug 26 2009, 12:55
Сообщение #27


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Спасибо, понятно. Я это давным-давно обозвал "продувкой линии" laughing.gif и теория потому прошла мимо.
Go to the top of the page
 
+Quote Post

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

 


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


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