Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.60/859: Рейтинг темы: голосов - 859, средняя оценка - 4.60
drvtos
1 / 1 / 0
Регистрация: 25.05.2010
Сообщений: 3,610
1

Modbus на AVR

27.12.2010, 14:34. Просмотров 155107. Ответов 172
Метки нет (Все метки)

Любі друзі!

Ой, что это я? Опять скажут, что бывшего украинского Президента цицирую. Хотя это чистой воды брехня. Это он меня повторял :)

Итак, хотел было разместить свое сообщение в разделе "Я сделал", ибо вопросов я не задаю и никакого обсуждения не намечается. Разве что, Учитель Антон ткнет пару раз носом в нюансы...
Но, с другой стороны, какое нахер "сделал"? Я взял готовое, да и то с помощью товарищей.

Так что размещаю здесь по принципу "кому-то может понадобиться".

Итак, ежели кого заинтересует возможность создания девайса на АВР, работающего слейвом по протоколу Модбас - вам сюды.
Уважаемый венский гер Кристиан Вальтер реализовал этот протокол на многих платформах и найти это все богатство можно тутечки.
Среди них есть и родиния АВР, да еще и созданная изначально прямо на меге168, еще более мною любимой (да простит меня друг okotimiv).
Там не все доработано, в частности по TCP/IP, но режимы RTU (обязательный по стандарту) и ASCII (любимый пользователями дохлых МК) - есть в полной красе.
И система команд Модбаса очень внушительная. Как на меня, то можно и выбросить кое-что. Но это легко решается до компиляции.
Так что, по сути, берите и пользуйтесь. Лучше сделать можно, но трудно.

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

Там из периферии МК используется только UART и один таймер. Но занял наш дорогой любитель Штрауса именно самый жирный таймер - номер 1. Он единственный 16-разрядный у мег 48-88-168-328.
И меня лично жаба задавила юзать его исключительно для генерации таймаута размером в 2 и более миллисекунд. Но, при принятой автором на себя епитимье (разрашающая способность на уровне 100 мкс) иначе нельзя, ибо в режиме ASCII таймауты много больше 25 мс, на которые хватило бы 1-байтного таймера.
Так и хер с ним, с тем ASCII, вот что я вам скажу, братцы! Выбросил я возможность реализации этого режима и появилась возможность обойтись 1-байтным таймером (жертвой стал таймер0, как менее одаренный, чем таймер2).

Вот и прилагаю весь этот гамуз в виде рабочего проекта (проверено в студии, а затем на живом 168, прямо в составе Ардуины).
Могу много чего про это сейчас рассказать. так что пытайте, ежли чего. А то я блондин (бывший), через пару месяцев не вспомню многого.
Пока читайте, я соберу чего-нить на стол проект в приложение :)
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.12.2010, 14:34
Ответы с готовыми решениями:

AVR AVRISP STK500 V3.0 USB ISP Programmer for AVR IC
Люди помогите плз. не могу разобраться. приобрел этот чудный девайс (AVR AVRISP STK500 V3.0 USB...

AVR Atmega324PU не прошивается AVR ISP Mk2
Добрый день. На плату впаян данный микроконтроллер в корпусе tqfp. При подключении программатора...

Анализ стека AVR / AVR stack analysis
Привет! Уперся я в стек, и решил понять что почем. Нашел вот такой вот скриптик:...

AVR Studio 6 и AVR Toolchain вопросы!
Всем доброго времени суток. Решил я написать софтинку в новой студии от Атмела AVR Studyo 6. Все...

AVR Studio 6 Avr simulator
Подскажите каким образом стартануть прогу в avr symulator с адреса boottooder (atmega8a, 0x0F80)....

172
okotimiv
1 / 1 / 0
Регистрация: 30.08.2010
Сообщений: 3,382
27.12.2010, 23:25 21
Требования не особенно хитрые, так что стандарт постепенно внедряется повсеместно, включая кетайские приборы. Rykot, например, имеет его почти везде, кроме младших осциллографов.

Однако к промышленной автоматизации это не имеет отношения, это все лабораторные приборы, довольно ограниченной номенклатуры.
0
Bomomd
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 2,020
27.12.2010, 23:33 22
Ну вот! Уже сколько информации!

P.S. Не понял про протокол точной синхронизации. Там вроде не IEEE 802.3 должно быть. Или я не понял чего-то?
0
okotimiv
1 / 1 / 0
Регистрация: 30.08.2010
Сообщений: 3,382
27.12.2010, 23:49 23
Да просто в буфере не то валялось :) IEEE 1588 конечно. Да не суть, потому что даже это экзотика, не говоря уж о M-TVDS. IEEE 1588 требует соответствующих коммутаторов, обычные его убивают джиттером.
0
Bomomd
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 2,020
27.12.2010, 23:51 24
Понятно теперь. Akatenev, а Вы с ПЛИС имели дело?
0
27.12.2010, 23:51
okotimiv
1 / 1 / 0
Регистрация: 30.08.2010
Сообщений: 3,382
27.12.2010, 23:53 25
Неа. Не успел еще :) Я к ним только подбираюсь. Ну то есть я в курсе, как оно там устроено, но делать пока еще ничего не могу.
0
инкер
0 / 0 / 0
Регистрация: 28.10.2010
Сообщений: 893
28.12.2010, 01:05 26
Мужики-и, а вы о чем щас разговаривали ???
0
drvtos
1 / 1 / 0
Регистрация: 25.05.2010
Сообщений: 3,610
28.12.2010, 01:08 27
Похоже, ты один, кому не налили :)

А я теперь знаю, что такое LXI. С пивом идет нормально.
0
Bomomd
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 2,020
28.12.2010, 01:10 28
А у меня вино кончилось, но я тоже много узнал!
0
okotimiv
1 / 1 / 0
Регистрация: 30.08.2010
Сообщений: 3,382
28.12.2010, 01:25 29
Пойду себе тоже мартинчика плесну :)
0
Bomomd
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 2,020
28.12.2010, 01:27 30
Кстати, оффтоп, но предлагаю в новогоднюю ночь на секунду оторваться от стола, и бухнуть на форуме.
p.s. модеры, перенесите в щас скажу плиз.
0
zyxmom
0 / 0 / 0
Регистрация: 09.10.2010
Сообщений: 421
28.12.2010, 05:02 31
Цитата Сообщение от drvtos
Но вот шино-конфликтно-устойчивый CAN может и его за пояс заткнуть... Кто мог подумать 40 лет назад, что схемотехника такое позволит?
А разве тогде уже не было видно, насколько далеко могла развиться твердотельная электроника?
- Пределы частот было видно очень-очень давно, с пределами плотности упаковки было сложней, но все равно можно было себе представить десяток тогдашних процов на одном кристалле, а это уже можно очень даже нескромный протокол обмена соорудить ;)

Другое дело, что только сейчас стало существенно выгоднее повышать скорость передачи по одной ноге, чем наращивать число ног, но опять-же, все потому что выросла плотность упаковки кристалла, помноженная на частоту кристалла.

С другой стороны, в передаче данных параллельные интерфейсы так и не вылезли из пары-тройки ниш, как раз потому что шибко тяжело синхронизировать на расстояниях больше единиц сантиметров; и каждый следующий виток технологий говорил что будущее за последовательными (или асинхронными) интерфейсами, следовательно сложность протоколов обмена просто обязана была наращиваться.
0
zyxmom
0 / 0 / 0
Регистрация: 09.10.2010
Сообщений: 421
28.12.2010, 05:05 32
Цитата Сообщение от Bomomd
Кстати, оффтоп, но предлагаю в новогоднюю ночь на секунду оторваться от стола, и бухнуть на форуме.
Поддерживаю. Обещаю постараться быть приятным собеседником :)
0
drvtos
1 / 1 / 0
Регистрация: 25.05.2010
Сообщений: 3,610
28.12.2010, 10:07 33
Цитата Сообщение от zyxmom
Поддерживаю. Обещаю постараться быть приятным собеседником :)
Та тебе ВААПЩЕ НИЗАЧОТ! Давно пора в реале бухнуть! Сколько звать-то тебя, земляк?

Налитая в стакан, водка неистово испаряется со скоростью 40 молекулярных слоев в минуту (народное поверье)

Тему (мы о реализации Модбаса на АВР говорили) закрываю. Кто набредет и будет нужда - пишите. Подскажу с радостью. На крайняк, ребята от мартиней оторвутся, с лопатами и с вилами :)

А 31.12.2010-01.01.2011 в эфире буду.
0
kotobyti
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,352
28.12.2010, 14:02 34
Цитата Сообщение от drvtos
Ну, скорее, надо спросить, работает ли МАХ3 с Модбасом :)
Я не знаю.

В промавтоматике Модбас имеет давние погоны. Скажем так, если хочешь легко и просто втыкать свои девайсы в системы промавтоматики (не привязываясь к конкретному производителю оборудования), то сделай свой протокол Модбасным.
мне нужен контроллер для станка
входы-выходы штук по 8
хочу еще внешнее табло с координатами осей прикрутить для ручного управления

только я нихера не понял про этот протокол и вообще настройку всего этого гавна
я тут тему создавал про модбас
0
drvtos
1 / 1 / 0
Регистрация: 25.05.2010
Сообщений: 3,610
28.12.2010, 15:27 35
Цитата Сообщение от kotobyti
мне нужен контроллер для станка
входы-выходы штук по 8
хочу еще внешнее табло с координатами осей прикрутить для ручного управления
Смотря что ты готов платить или ручками делать. Контроллер типа ПЛК63 (сам по себе) или ПЛК100 + панель ИП320 - смотри на ОВЕНе. Решают эту задачу легко. Программируются - просто удовольствие!
Но стоят денег. Посмотри, прикинь.
0
kotobyti
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,352
28.12.2010, 22:05 36
станок управляется обычным компом через лпт
мне нужна плата модбас к проге мах3, чтобы подключить концевики и всякое гавно, а то у лпт входов мало
есть на пике прошивка за 20 евров, есть целая плата за 50 на арм + свой плагин
но я пока хотел бы сделать на авр и допилить табло
0
zyxmom
0 / 0 / 0
Регистрация: 09.10.2010
Сообщений: 421
31.12.2010, 06:42 37
Что-то какая-то подозрительная тишина, наверное у меня броузер глючит и я не вижу множества постов? :D
0
Bomomd
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 2,020
31.12.2010, 09:19 38
я так и не смог до компа доползти, ибо нахерячился вхлам. Но я пытался!
0
kyr_tt
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,368
31.12.2010, 11:12 39
[quote="Bomomd...!
нахерачился в хлам...
...Но я пытался![/quote]
Супер.
0
drvtos
1 / 1 / 0
Регистрация: 25.05.2010
Сообщений: 3,610
31.12.2010, 13:32 40
Я тоже выпил полведра, но как-то хорошо пошло. И просто не было времени смотреть эфир. Танцы-манцы, гавайская вечеринка, много невообразимо красивых девушек - какой нах комп!

С Новым Годом!
0
31.12.2010, 13:32
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.12.2010, 13:32

Как подружить AVR+AVR?
Приветствую Вас уважаемые форумчане! Требуется связать 2 AVR-ки, по классической схеме Master ->...

CAVR против AVR Studio, что не так в программе под AVR Studio
Проблема такая, есть исходник, если его компилировать в CAVR заливаю в МК все работает, если этот...

Ошибка в CodeVisionAVR по #include<avr/io.h> #include<avr/interrupt.h>
Библиотеки #include&lt;avr/io.h&gt; и #include&lt;avr/interrupt.h&gt; - они вообще из какой IDE? Нашел код...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Закрытая тема Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.