Обсуждаем контроллеры компании Atmel.
Ответить

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

Ср окт 14, 2020 21:30:53

Существует какой-либо готовый протокол для обмена данными по uart в обе стороны? или придется его писать самостоятельно для обмена данными двух atmeg?

Re: Существует какой-либо протокол для обмена данными по uar

Ср окт 14, 2020 21:35:54

Куча. Например, MODBUS

Re: Существует какой-либо протокол для обмена данными по uar

Ср окт 14, 2020 21:45:46

есть какой-нибудь попроще, там точка - точка, чтобы долго не изучать?

Re: Существует какой-либо протокол для обмена данными по uar

Ср окт 14, 2020 23:09:31

Конечно. Запись в UDR, чтение из UDR

Re: Существует какой-либо протокол для обмена данными по uar

Ср окт 14, 2020 23:12:17

На крестах владик щас покажет как надо программировать. Там это очень легко изучать не надо ничего долго.

Re: Существует какой-либо протокол для обмена данными по uar

Чт окт 15, 2020 00:13:18

есть какой-нибудь попроще, там точка - точка, чтобы долго не изучать?

надо решить три задачи:
- разделение команд/данных. для этого вводится протокол с форматом пакетов и кодировками.
- надо контролировать целостность пакета. можно ввести в пакет служебные байты, которые всегда определены. просто, но не особо надежно. можно ввести контрольные суммы, широко используется.
- определение границ пакета. можно использовать таймаут - появилась пауза в передаче, значит конец пакета, начинаем анализ. можно гнать без пауз в кольцевой буффер, про признаку находить начало пакета и делать анализ.

Хорошо и просто - взаимоисключается. Проще модбаса ничего нет. Есть еще CAN и Profibus, но там нифига не проще.

Re: Существует какой-либо протокол для обмена данными по uar

Чт окт 15, 2020 14:21:18

На крайний случай добавляем линии аппаратного арбитража...
Плюсом - простота анализа, минусом - одна/две лишние проводины...
:roll:

Re: Существует какой-либо протокол для обмена данными по uar

Чт окт 15, 2020 17:49:05

Добавляются линии, но без софтового контроля правильности приёма всё равно не обойтись.
Какой-то стандартный протокол ищут, если предполагается встраивать своё оборудование в существующую и работающую по стандартноиу протоколу сеть. А "сам передал - сам принял" - идею протокола можно без заморочек накропать за 10мин. - хоть с детектированием, хоть с исправлением ошибок.

Re: Существует какой-либо протокол для обмена данными по uar

Чт окт 15, 2020 18:12:27

можно попробовать приспособить несложный WAKE от ЛИ, как всегда хорошо документировано, исходники с комментариями
http://www.leoniv.diod.club/articles/wake/wake.html

Re: Существует какой-либо протокол для обмена данными по uar

Чт окт 15, 2020 19:53:48

Самый удобный - текстовый протокол с \n в конце строки команды/данных. В этом случае сразу же на момент отладки железки не придется ваять какой-то софт для "общения" с нею: открыл терминал, да пиши/читай. В большинстве случаев такое будет работать.
А если нужно запихнуть железяку в высоковольтный шкаф с пускателями, то вместо того, чтобы ваять свой велосипед, лучше вместо UART соединить железяки по CAN: там вся "подноготная" делается автоматически.

Re: Существует какой-либо протокол для обмена данными по uar

Чт окт 15, 2020 20:57:35

Есть такая штука, как MIN: https://github.com/min-protocol/min/wiki
Ну еще HDLC, но тоже видимо излишне будет.

Re: Существует какой-либо протокол для обмена данными по uar

Чт окт 15, 2020 21:02:08

лучше вместо UART соединить железяки по CAN: там вся "подноготная" делается автоматически.
:facepalm:
Да-да. ещё и физический уровень обеспечить, припаять трансиверы...
Тут совершенно бессмысленно всё: ТС не озвучил ничего. Может, у него обе атмеги в 5 мм от друг друга и одна просто расширитель портов другой

Re: Существует какой-либо протокол для обмена данными по uar

Чт окт 15, 2020 21:30:54

Ну тогда бы наверняка взор обратился бы не к uart, а к SPI или I2C...
:roll:

Re: Существует какой-либо протокол для обмена данными по uar

Чт окт 15, 2020 21:35:38

Возможно... но мож он эти ноги занял :)

Re: Существует какой-либо протокол для обмена данными по uar

Чт окт 15, 2020 21:37:01

Самый удобный - текстовый протокол с \n в конце строки команды/данных.

Ага - только парсер прикрутить внутри МК, чтобы строки распознавать. Оооооочень удобно. А главное - так просто.

Re: Существует какой-либо протокол для обмена данными по uar

Чт окт 15, 2020 21:40:17

в ардуино всё просто... там это вообще, как мне кажется, изначально аж в текстолите заложено

Re: Существует какой-либо протокол для обмена данными по uar

Чт окт 15, 2020 21:44:42

Ярослав555 писал(а):
Самый удобный - текстовый протокол с \n в конце строки команды/данных.

Ага - только парсер прикрутить внутри МК, чтобы строки распознавать. Оооооочень удобно. А главное - так просто.

Даавнооо прикручен:
https://radiokot.ru/forum/viewtopic.php ... 7#p3167597
закидывает intel *.hex8 прямо с терминала в ОЗУ непосредственно "на лету" (при скорости 9600) согласно указанному в том файле расположению...
:wink:
только вот смысл в том?
:dont_know:
А между МК в пределах одной конструкции попроще однако:
https://radiokot.ru/forum/viewtopic.php ... 1#p3472041
но... там ТРИ ЛАПКИ заняты...
:(

Re: Существует какой-либо протокол для обмена данными по uar

Чт окт 15, 2020 22:42:47

Ага - только парсер прикрутить внутри МК, чтобы строки распознавать. Оооооочень удобно. А главное - так просто.

УМВР. Все легко и просто. Парсер - либо автоматический (прерывание по принятому '\n' в STM32F0x2), либо в прерывании по приему символа (как только получаем '\n', выставляем флаг готовности буфера и начинаем работать со вторым).

Re: Существует какой-либо протокол для обмена данными по uar

Пт окт 16, 2020 12:24:12

Ну вот, ТС задал вопрос и слинял (совсем как в фильме "О чём говорят мужчины"), а гуру хлещутся меж собой в поисках оптимальности. Неизвестно: бинарные или текст, необходимая скорость передачи, одноранговая сеть или master-slave, требования к надёжности и пр. А без этого спор - сотрясение воздуха. Но ТС, похоже, для себя вопрос решил по японскому принципу "на_хира_та_хата" .

можно попробовать приспособить несложный WAKE от ЛИ

Вот тут если возникнут вопросы - возможен облом. Что-то давно он у себя в LJ не появляется. Да и глянул я туда: протокол простой-простой, ну прямо для начинающего. :shock:
СпойлерМне это напомнило анекдот. Сынок малолетний спрашивает: "Мама, а что такое - аборт?" Мама видит - надо объяснить, иначе это сделает улица. А в конце спрашивает: в каком, мол, контексте возник вопрос?
Сын объясняет: слышал песню
"А волны и стонут и плачут
И бьются аборт корабля"
Сходство я вижу в том, что уровень ответов на порядок выше уровня понимания вопроса ТС'ом.

Re: Существует какой-либо протокол для обмена данными по uar

Пт окт 16, 2020 13:24:39

простой-простой - согласно требованиям ТС
какой-нибудь попроще,... чтобы долго не изучать?

ЛИ раньше и на почту отвечал, журнал живой, последний комментарий от него на форуме diod 15 Октября, 2020 - 10:39:32
. Сейчас, с ихней обстановкой, может не до того
https://leoniv.livejournal.com/
Ответить