|
Протокол передачи данных по одному проводу |
|
|
|
Nov 29 2011, 08:02
|
Гуру
     
Группа: Свой
Сообщений: 2 884
Регистрация: 7-11-09
Из: Ростовская обл.
Пользователь №: 53 484

|
Здравствуйте! Я сделал эл. схему и создал протокол передачи данных по одному проводу. По типу протокола 1-wire. Напряжение питания устройств на шине 15V. Высокий уровень> 10V. Низкий уровень < 5V. Расстояние между устройствами, ведущим и ведомым, несколько метров. Больше месяца намеренно не делаю никакого контроля достоверности информации передаваемой по шине, получил такую статистику: в среднем, раз в час происходит сбой достоверности преданных данных, почемут, особенно в ночное время. Данные в размере двух байт, передаются от ведущего к ведомому (двубайтная последовательность, адрес и команда) с частотой двух посылов в секунду. Ведомый принимает два байта и немедленно отвечает ведущему одним байтом, отвечает продолжая передачу ведущего. Тактовая частота последовательности передаваемых бит - 100 Гц. Нормальная ли это статистика ошибок для однопроводной шины по типу 1-wire? Грубо говоря, провод висит в воздухе и не будет экранирован. Планирую как-то ввести контроль достоверности, на стороне ведомого, для переданных мастером адреса ведомого устройства на шине и команды. На стороне мастера сделать проверку достоверности ответа ведомого. Если у кого-нить есть опыт, подскажите, как лучше в данной схеме реализовать контроль? Может просто ведущему дважды посылать запрос и сравнивать два ответа ведомого? Ведомому сравнивать два запроса ведущего? Как говорится, молния не попадает дважды в одно место.
|
|
|
|
|
 |
Ответов
|
Nov 29 2011, 09:50
|
Гуру
     
Группа: Свой
Сообщений: 2 884
Регистрация: 7-11-09
Из: Ростовская обл.
Пользователь №: 53 484

|
Цитата(kovigor @ Nov 29 2011, 12:03)  Как минимум нужно использовать контроль четности, а лучше - CRC8, как это сделано в тех же DS18B20. Еще можно для повышения помехоустойчивости увеличить ток в линии. Для контроля четности читать собственно нечего. Мастер передает байт идентификатор устройства и следом за ним байт команду. Суммировать эти два значения и сравнивать с третим байтом четности? В данный момент сделал двойную передачу мастером ID устройства и команду, если дважды ведомый принимает одинаковую команду, команда принимается ведомым. Если ведомый принял команду, то продолжает принятую от мастера последовательность двух байт, ответным байтом равным значению байта команды мастера. Мастер получив такой ответ от ведомого, фиксирует, что команда успешно принята ведомым. Что-то мне подсказывает, что данный способ надежней простого контроля четности. Как сделано в DS18B20 изучаю.
|
|
|
|
|
Nov 29 2011, 10:03
|
Гуру
     
Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295

|
Цитата(Слесарь @ Nov 29 2011, 13:50)  Суммировать эти два значения и сравнивать с третим байтом четности? Нет, снабдить каждый байт своим битом четности, как это сделано в UART. Бит четности, кодирование по Хеммингу, CRC8 - обязательно должен быть механизм контроля корректности посылок. Цитата(Слесарь @ Nov 29 2011, 13:50)  Что-то мне подсказывает, что данный способ надежней простого контроля четности. Сложно, надумано и ненадежно. Почитайте у того же Тутевича про помехоустойчивое кодирование. Или хотя бы про код Хемминга у Калабекова. Это ведь не зря все придумали и обосновали: http://lord-n.narod.ru/walla.html
|
|
|
|
Сообщений в этой теме
Слесарь Протокол передачи данных по одному проводу Nov 29 2011, 08:02 Слесарь Я думал все эти биты четности для уменьшения колич... Nov 29 2011, 10:13 kovigor Цитата(Слесарь @ Nov 29 2011, 14:13) А ес... Nov 29 2011, 10:37  stells Цитата(kovigor @ Nov 29 2011, 14:37) А ес... Nov 29 2011, 10:42   kovigor Цитата(stells @ Nov 29 2011, 14:42) прямо... Nov 29 2011, 10:50    stells Цитата(kovigor @ Nov 29 2011, 14:50) Так ... Nov 29 2011, 11:13     kovigor Цитата(stells @ Nov 29 2011, 15:13) дубли... Nov 29 2011, 11:17   MaslovVG Цитата(stells @ Nov 29 2011, 14:42) прямо... Nov 29 2011, 18:28    stells Цитата(MaslovVG @ Nov 29 2011, 22:28) Сущ... Nov 29 2011, 18:59   МП41 Цитата(stells @ Nov 29 2011, 13:42) прямо... Dec 1 2011, 08:42  Слесарь Цитата(kovigor @ Nov 29 2011, 13:37) А ес... Nov 29 2011, 10:47 Слесарь Ну почему же не будет работать? Работает даже без ... Nov 29 2011, 11:28 kovigor Цитата(Слесарь @ Nov 29 2011, 15:28) Мне ... Nov 29 2011, 11:43 Слесарь Но насколько мне известно при контроле четности об... Nov 29 2011, 11:53 kovigor Цитата(Слесарь @ Nov 29 2011, 15:53) Но н... Nov 29 2011, 12:03  Слесарь Цитата(kovigor @ Nov 29 2011, 15:03) Да, ... Nov 29 2011, 16:25   kolobok0 Цитата(Слесарь @ Nov 29 2011, 20:25) ...д... Nov 30 2011, 07:37 kolobok0 Цитата(Слесарь @ Nov 29 2011, 12:02) ....... Nov 29 2011, 12:53 Слесарь Только сейчас вспомнил, у меня на компьютере Радио... Nov 29 2011, 21:00 kovigor Цитата(Слесарь @ Nov 30 2011, 01:00) у ме... Nov 30 2011, 08:33  MaslovVG Цитата(kovigor @ Nov 30 2011, 12:33) Там,... Dec 1 2011, 09:11  Genadi Zawidowski Цитата(kovigor @ Nov 30 2011, 12:33) Там,... Dec 4 2011, 13:22 haker_fox Слесарь, где-то на форуме встречал утверждение, чт... Nov 30 2011, 03:15 Слесарь Цитата(haker_fox @ Nov 30 2011, 06:15) Сл... Nov 30 2011, 18:50  kolobok0 Цитата(Слесарь @ Nov 30 2011, 22:50) ...Т... Dec 1 2011, 08:12 Слесарь Просто не получается.
Я же не просто тактирую(прог... Dec 1 2011, 08:41 Слесарь Вот я сейчас отлавливаю ошибки при передаче по одн... Dec 1 2011, 08:48 haker_fox QUOTE (Слесарь @ Dec 1 2011, 16:48) Вот я... Dec 1 2011, 10:00  Слесарь Цитата(haker_fox @ Dec 1 2011, 13:00) Спо... Dec 1 2011, 13:43   kovigor Цитата(Слесарь @ Dec 1 2011, 16:43) Надо ... Dec 1 2011, 13:48 МП41 Вообще неплохо было бы посмотреть осциллографом чт... Dec 1 2011, 10:04 Слесарь Это как существует задача, повесить на установку н... Dec 1 2011, 14:08 haker_fox Кстати, а теория длинных линий учтена?) Ту же I2C ... Dec 1 2011, 15:02 toweroff Цитата(haker_fox @ Dec 1 2011, 19:02) Кст... Dec 1 2011, 15:32 Слесарь Вся шина вот: Dec 1 2011, 15:36 haker_fox QUOTE (Слесарь @ Dec 1 2011, 23:36) Вся ш... Dec 2 2011, 00:56  Слесарь Цитата(haker_fox @ Dec 2 2011, 03:56) Она... Dec 2 2011, 08:01 smk Цитата(Слесарь @ Dec 1 2011, 17:36) Вся ш... Dec 2 2011, 19:39 haker_fox Слесарь, Ваши решения задач вызывают восхищение... Dec 2 2011, 08:57 Слесарь Цитата(haker_fox @ Dec 2 2011, 11:57) Но ... Dec 2 2011, 18:21 haker_fox QUOTE (Слесарь @ Dec 3 2011, 02:21) Я нез... Dec 3 2011, 00:54 Слесарь Понятно. Хорошо, спасибо! Буду иметь в виду дл... Dec 4 2011, 04:58
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|