Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 15.02.2009, 17:11  
Gladkih
Гражданин KAZUS.RU
 
Регистрация: 06.08.2006
Сообщений: 694
Сказал спасибо: 24
Сказали Спасибо 38 раз(а) в 31 сообщении(ях)
Gladkih на пути к лучшему
По умолчанию вопрос по протоколу обмена

Здраствуйте форумчане.пишу протокол обмена по и2с.и у меня возник вопрос по поводу контрольной суммы.
значитс так если мастер передает то я работаю по следующему протоколу
данные от мастера---слейву---слейв контрольную сумму--мастеру(этот цикл повторяется до тех пор пока КС не совпадет или не более 5-ти циклов)
если местер принимает данные от слева то так:
данные от слейва++контрольную сумму---мастеру--мастер этот цикл повторяет до тех пор пока КС не совпадет или не более 5-ти циклов)
Так вот меня интересует ВАШЕ мнение по поводу протокола(я понимаю что не америку открываю).также мне не понятно как обьяснить слейву что передача прошла нормально.может в конце протокала добавить посылку слеву что все ОКЕЙ????
Реклама:
Gladkih вне форума  
Непрочитано 15.02.2009, 18:13  
CERGEI1982
Почётный гражданин KAZUS.RU
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
CERGEI1982 на пути к лучшему
По умолчанию

А что так все сложно? там же есть подтверждение от принимаемого,при при девятом импульсе на SCL приемник должен потвердить прием,опуская шину SDA.
CERGEI1982 вне форума  
Непрочитано 15.02.2009, 21:04  
Gladkih
Гражданин KAZUS.RU
 
Регистрация: 06.08.2006
Сообщений: 694
Сказал спасибо: 24
Сказали Спасибо 38 раз(а) в 31 сообщении(ях)
Gladkih на пути к лучшему
По умолчанию

Сообщение от CERGEI1982
А что так все сложно? там же есть подтверждение от принимаемого,при при девятом импульсе на SCL приемник должен потвердить прием,опуская шину SDA.
подтверждение то есть а вот если данные пришли кривыми или допустим слейв подключается во время работы мастера.вобщемто я пробовал простой обмен без КС-то были проблемы.
Gladkih вне форума  
Непрочитано 15.02.2009, 22:06  
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию Re: вопрос по протоколу обмена

Сообщение от Gladkih
если мастер передает то я работаю по следующему протоколу данные от мастера---слейву---слейв контрольную сумму--мастеру
А зачем Слейв передаёт Мастеру КС? Пусть Слейв Мастеру даёт ОК или Eror.

Сообщение от Gladkih
если местер принимает то так: данные от слейва + контрольную сумму---мастеру--
А зачем Слейву знать, Мастер принял правильно или нет? Если нет он сам запроси заново.
picavr вне форума  
Непрочитано 16.02.2009, 17:20  
rubel
Гражданин KAZUS.RU
 
Аватар для rubel
 
Регистрация: 24.11.2006
Адрес: ДНР
Сообщений: 612
Сказал спасибо: 553
Сказали Спасибо 314 раз(а) в 142 сообщении(ях)
rubel на пути к лучшему
По умолчанию

Сообщение от Gladkih
подтверждение то есть а вот если данные пришли кривыми или допустим слейв подключается во время работы мастера.вобщемто я пробовал простой обмен без
КС-то были проблемы.

пардон, недогнал: "..слейв подключается во время работы мастера" - это типо модули от разных источников запитаны? или что-то другое?

и еще: у тебя в протоколе посылки переменной длины или фиксированной?

А в общем - алгоритм передачи КС - по-мойму очень даже правильный.
rubel вне форума  
Непрочитано 16.02.2009, 21:26  
Gladkih
Гражданин KAZUS.RU
 
Регистрация: 06.08.2006
Сообщений: 694
Сказал спасибо: 24
Сказали Спасибо 38 раз(а) в 31 сообщении(ях)
Gladkih на пути к лучшему
По умолчанию

Сообщение от rubel
Сообщение от Gladkih
подтверждение то есть а вот если данные пришли кривыми или допустим слейв подключается во время работы мастера.вобщемто я пробовал простой обмен без
КС-то были проблемы.

пардон, недогнал: "..слейв подключается во время работы мастера" - это типо модули от разных источников запитаны? или что-то другое?

и еще: у тебя в протоколе посылки переменной длины или фиксированной?

А в общем - алгоритм передачи КС - по-мойму очень даже правильный.
вобщем насчет включения ну допустим мастер работает некоторое время(мастер и слейв на разных платах) а слейв подключается через некоторое время.вобщемто я уже немного изменил протокол обмена указанный выше теперь он у меня окончательный.я добавил при передаче данных мастером данных слейву после данных передаю КС затем принимаю от слейва его контрольную сумму.фишка в том что слейв теперь знает что он данные принял правильно.вобщем то спасибо за критику.
Gladkih вне форума  
Непрочитано 16.02.2009, 23:48  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию

Шина I2C допускает "горячее" подключение. С этим проблем быть не должно. КС можно ввести в пакет, а вот возвращать ее назад не стоит - большие накладные расходы по времени. Достаточно в конце пакета передать "холостой" байт, и по подтверждению от слейва на него судить о том, прошла передача или нет. ACK - передаем следующий пакет, NACK - повтор предыдущего. Ошибки на I2C - редкость и вводить большой "оверхед" для борьбы с ними ИМХО не стоит.
kison вне форума  
Непрочитано 17.02.2009, 11:32  
BigMazzi
Прописка
 
Регистрация: 09.06.2007
Сообщений: 96
Сказал спасибо: 1
Сказали Спасибо 1 раз в 1 сообщении
BigMazzi на пути к лучшему
По умолчанию

Обычно обмен организован следующим образом: Мастер выдаёт на шину посылку которая содержит адрес слейва, свой адрес, данные, контрольную сумму. После этого Мастер взводит таймер и ждёт ответа. Если ответ пришёл, таймер выключается, если таймер сработал, повторяется попытка(посылка отправляется ещё раз). Слейв распознав в команде свой адрес отвечает посылкой: адрес мастера, свой адрес, данные, контрольная сумма. Если при расшифровке посылки найдена ошибка, то ПОСЫЛКА ИГНОРИРУЕТСЯ!

Это хороший алгоритм, работает чётко.
BigMazzi вне форума  
Непрочитано 17.02.2009, 12:20  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию

Сообщение от BigMazzi
Это хороший алгоритм, работает чётко.
Это явно не для I2C. Тут мало того, что чтение инициируется мастером, так и тактирование идет тоже от него. Просто ждать можно очень долго. Либо меняется топология шины - уже нет мастера и слейвов, а есть сплошные мастера. Для этой шины такая топология крайне редка.
kison вне форума  
Непрочитано 17.02.2009, 12:54  
BigMazzi
Прописка
 
Регистрация: 09.06.2007
Сообщений: 96
Сказал спасибо: 1
Сказали Спасибо 1 раз в 1 сообщении
BigMazzi на пути к лучшему
По умолчанию

Сообщение от kison
Это явно не для I2C. Тут мало того, что чтение инициируется мастером, так и тактирование идет тоже от него.
Это всего лишь аппаратная реализация.
Сообщение от kison
Просто ждать можно очень долго.
Это завист от установки таймера и количества попыток, а эти величины зависят от задачи. После превышения количества попыток мастер понимает, что связи нет.
Сообщение от kison
Либо меняется топология шины - уже нет мастера и слейвов, а есть сплошные мастера. Для этой шины такая топология крайне редка.
Используйте арбитраж.
BigMazzi вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите по Си, программа обмена данными по 232 russo_turisto Микроконтроллеры, АЦП, память и т.д 4 25.03.2009 16:40
Ищу программу для работы с буфером обмена Don_Ambrosio Информация по радиокомпонентам 0 23.04.2008 11:02
Вопрос по протоколам обмена данными в ATmegaAVR vikpol Микроконтроллеры, АЦП, память и т.д 12 17.04.2008 10:58
Скопировать и расшифровать протокол обмена georg222 Делимся опытом 1 05.03.2008 08:03


Часовой пояс GMT +4, время: 21:57.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot