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

 
 
7 страниц V  « < 2 3 4 5 6 > »   
Reply to this topicStart new topic
> 3 ATMega8 к 1 COM-порту ПК
prottoss
сообщение Jan 8 2007, 10:48
Сообщение #46


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(Dog Pawlowa @ Jan 8 2007, 14:31) *
За документ спасибо.
Спасибо не мне, а ребятам которые придумали хороший протокол. Просто на компьютере можно не только по форумам вопросы печатать (это не Вам лично), а еще много интересных мест посетить smile.gif
Цитата(Dog Pawlowa @ Jan 8 2007, 14:31) *
Что касается велосипеда... Мне дело представляется по другому. Вы дали клиенту рыбу, а я пытался объяснить, как устроена удочкаМой следующий шаг - напомнить, что, кроме Modbus, существует огромное количество протоколов (у меня на полочке стоят три папки с описанием более 40 протоколов заправочных систем), а Ваш следующий шаг ? Дать исходники проекта? wink.gif .
Я не дал ему рыбу - Вы говорите так, как будто я ему подорил 4-е платы - одна для РС, а на остальных гордо восседают мега8))). Я просто, чем бестолково объяснять, дал челу готовый документ, в котором довольно разжеванно говорится про все, что ему нужно, чтобы организовать относительно простой многопроцессорный обмен.
Цитата(Dog Pawlowa @ Jan 8 2007, 14:31) *
Кстати, Modbus не использую. Не нравится. angry.gif
Ну и пускакй не нравится, ребятам из Ford, BMW, Toyota, Nissan, Daewoo... продолжать? smile.gif очччень нравится. И не только им, шахтерам, металлургам, нефтянникам ETC


--------------------
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Jan 8 2007, 13:00
Сообщение #47


Гуру
******

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



Цитата(prottoss @ Jan 8 2007, 11:48) *
ребятам из Ford, BMW, Toyota, Nissan, Daewoo... продолжать? smile.gif очччень нравится. И не только им, шахтерам, металлургам, нефтянникам ETC

Я уже писал - аргументы "у меня все работает" и "все используют" я не принимаю smile.gif Эти аргументы не технические, а скорее демагогические (без обид smile.gif )
Например, будь все шоколадно, перечисенные фирмы не занимались бы протоколом LIN.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
prottoss
сообщение Jan 8 2007, 13:13
Сообщение #48


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(Dog Pawlowa @ Jan 8 2007, 17:00) *
Цитата(prottoss @ Jan 8 2007, 11:48) *

ребятам из Ford, BMW, Toyota, Nissan, Daewoo... продолжать? smile.gif очччень нравится. И не только им, шахтерам, металлургам, нефтянникам ETC

Я уже писал - аргументы "у меня все работает" и "все используют" я не принимаю
Дадада - "А Баба Яга против", знаю smile.gif


--------------------
Go to the top of the page
 
+Quote Post
singlskv
сообщение Jan 8 2007, 13:35
Сообщение #49


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(prottoss @ Jan 8 2007, 04:52) *
Цитата(singlskv @ Jan 8 2007, 05:34) *
Прошу прощения у автора топика что влезаю со своим вопросом,
но надеюсь что он меня простит (ему это тоже очень понадобится, наверное...)

Не встречал ли кто-нибудь библиотечки под PC (Win) на С++ которая реализует
протокол MODBUS (PC, конечно клиент)?
А что, сложно накропать самому? Вы вроде грамотный и вполне подкованный чел smile.gif Документик, который я выложил почитайте, там и для слэйва и для мастера алгоритмы расписаны, (или, если Вам угодно и для сервера и для клиента). На том же http://modbus.org есть бесплатные исходники (на Си естественно) ... под PIC правда, но HAL подменить, для Вас, я думаю не проблема....

Или проблемы с программированием под Win32???

Проблем с программированием под Win32 нет.
Есть проблеммы у Windows smile.gif
Цитата
1. Работа на скоростях до 115200
6. Контроль межбайтовых и межпакетных промежутков в пакетах Modbus (ну конечно
на столько, на сколько это вообще возможно под Win)

на скорости 115200 один байтик передается 87мкс
межбайтовый промежуток 4 байта = 347 мкс

а стандартные таймуты COM порта начинаются от 1мс
и Sleep тоже от 1 мс , и при этом еще и не отрабатывается
а такт операционки 10-20мс

а если вводить везьде большие задержки, то 115200 может чудесным образом
превратиться в 19200 sad.gif
да и контроль остается только по длинне пакета и по CRC

Вот собственно по этому и хочется найти исходники где реализован
хоть какой-то контроль.

Например можно для контроля промежутков использовать Performance Counters.
Просто очень не хочется наступать на все грабли на этом пути,
особенно если на них уже кто-нибудь наступил smile.gif
Go to the top of the page
 
+Quote Post
prottoss
сообщение Jan 8 2007, 13:52
Сообщение #50


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(singlskv @ Jan 8 2007, 17:35) *
Есть проблеммы у Windows smile.gif
Использовать выносного клиента, с достаточным объемом памяти, и скоростной шиной с РС - USB например))) Пример - pdiusbd12 + atmega8515 + 64k SRAM


--------------------
Go to the top of the page
 
+Quote Post
singlskv
сообщение Jan 8 2007, 14:40
Сообщение #51


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(prottoss @ Jan 8 2007, 13:52) *
Цитата(singlskv @ Jan 8 2007, 17:35) *
Есть проблеммы у Windows smile.gif
Использовать выносного клиента, с достаточным объемом памяти, и скоростной шиной с РС - USB например))) Пример - pdiusbd12 + atmega8515 + 64k SRAM

К сожалению, по условию задачи, этот вариант не подходит
Go to the top of the page
 
+Quote Post
prottoss
сообщение Jan 8 2007, 14:51
Сообщение #52


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



[quote name='singlskv' date='Jan 8 2007, 17:35' post='194214']

1. Работа на скоростях до 115200
6. Контроль межбайтовых и межпакетных промежутков в пакетах Modbus (ну конечно
на столько, на сколько это вообще возможно под Win)
[/quote]
на скорости 115200 один байтик передается 87мкс
межбайтовый промежуток 4 байта = 347 мкс

а стандартные таймуты COM порта начинаются от 1мс
и Sleep тоже от 1 мс , и при этом еще и не отрабатывается
а такт операционки 10-20мс

а если вводить везьде большие задержки, то 115200 может чудесным образом
превратиться в 19200 sad.gif
да и контроль остается только по длинне пакета и по CRC

Вот собственно по этому и хочется найти исходники где реализован
хоть какой-то контроль.

Например можно для контроля промежутков использовать Performance Counters.
Просто очень не хочется наступать на все грабли на этом пути,
особенно если на них уже кто-нибудь наступил smile.gif
[/quote]Для начала: межбайтовый промежуток можно сделать и 1 мс - таймаут в порту отрабатывается аппаратно, а вот уведомлениие об этом событии приложению ОСь выдаст конечно с задержкой, но это уже не столь важно будет - главное таймаут будет зафиксирован

Ну а межкадровые таймауты поймать не так уж и сложно и обычными средсвами, хотя можно и аппаратный таймер задействовать



А какие у Вас требуемые межкадровые интерывалы? И что за контроллеры?


--------------------
Go to the top of the page
 
+Quote Post
li4
сообщение Jan 8 2007, 15:27
Сообщение #53


Участник
*

Группа: Новичок
Сообщений: 17
Регистрация: 11-06-06
Пользователь №: 17 980



Подумал и решил что избавиться от программного контроля за лишней линией (RTS) было бы очень удобно. Попробовал сделать так как предложил Сергей Борщ, прошу посмотреть правильно-ли я все соединил:

Если все верно, то прошу объяснить какие номиналы должны быть у R1, R2, R3, R4, R5 и C1. И будет-ли данная схема работать на скорости 115200 бит/c?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jan 8 2007, 15:56
Сообщение #54


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(li4 @ Jan 8 2007, 14:27) *
прошу посмотреть правильно-ли я все соединил:
Вы опять попутали выводы V- и GND у ST232. На GND подается земля, на V- минус С4, плюс С4 на землю. На выводе V- получается напряжение около -10в. Если есть возможность - используйте ST202 - ей достаточно керамических конденсаторов на 0.1 мкФ. R1 не нужен - ST232 не умеет переводить выход в третье состояние.
Цитата(li4 @ Jan 8 2007, 14:27) *
Если все верно, то прошу объяснить какие номиналы должны быть у R1, R2, R3, R4, R5 и C1. И будет-ли данная схема работать на скорости 115200 бит/c?
У меня работает на 115200. R2 - подтяжка, 1К...4К7 для 115200, при меньших скоростях сопротивление можно увеличивать, при этом снижается потребеление. R3 10К, C1 1нФ, R4 и R5 согласно документу, который привел ув. prottoss должны быть 450...650 ом.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
li4
сообщение Jan 8 2007, 18:56
Сообщение #55


Участник
*

Группа: Новичок
Сообщений: 17
Регистрация: 11-06-06
Пользователь №: 17 980



Все исправил, схемы приняли вид:
RS232 to RS485:


AVR to RS485:


Если все верно, то 1/3 дела сделано, теперь бы еще программу для МК под эту схему придумать.

Сообщение отредактировал li4 - Jan 8 2007, 18:57
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Jan 8 2007, 20:30
Сообщение #56


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(Dog Pawlowa @ Jan 8 2007, 14:00) *
Цитата(prottoss @ Jan 8 2007, 11:48) *

ребятам из Ford, BMW, Toyota, Nissan, Daewoo... продолжать? smile.gif очччень нравится. И не только им, шахтерам, металлургам, нефтянникам ETC

Я уже писал - аргументы "у меня все работает" и "все используют" я не принимаю smile.gif Эти аргументы не технические, а скорее демагогические (без обид smile.gif )
Например, будь все шоколадно, перечисенные фирмы не занимались бы протоколом LIN.


Мне тоже не нравится. Кажется устаревшим, излишне перегруженным и в то же самое время не полным. То есть объявление - "у меня тоже MODBUS" - абсолютно ничего не даёт. На сто процентов модбас нефтяников не будет работать с модбасом форд. Да я и не уверен что форд-тайота услышат друг-друга. Если, да то это только в случае, что они договорились м/у собой "кроме протокола". Хотя надо признать, что сама структура первого уровня - пакеты - формат пакетов - таймауты - CRC - придраться особо не к чему. К сожелению с LIN не разбирался и до CAN тоже руки не дошли. Хотелось бы конечно. Но пока не было такой задачи.

Компонента MODBUS у меня нет, но есть компонент COM порт и RS485. Я его использовал, но немного корректировал. У меня есть сомнения что под виртуалом вообще полностью можно создать MODBUS. singlskv совершенно точно перечислил причины. Только что с этим боролся.
Пробовал вот такой вот вызов таймера
TimerID:=timeSetEvent(ASpeed[Speed],0,@TimeProc,0,TIME_PERIODIC);
10мс отрабатывает нормально, но можно и меньше. Но тоже есть проблемы. Мне обещали подогнать правильную работу ч/з OPENGL. Буду пробовать.
Go to the top of the page
 
+Quote Post
prottoss
сообщение Jan 8 2007, 20:54
Сообщение #57


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(SasaVitebsk @ Jan 9 2007, 00:30) *
Мне тоже не нравится. Кажется устаревшим, излишне перегруженным и в то же самое время не полным. То есть объявление - "у меня тоже MODBUS" - абсолютно ничего не даёт. На сто процентов модбас нефтяников не будет работать с модбасом форд. Да я и не уверен что форд-тайота услышат друг-друга. Если, да то это только в случае, что они договорились м/у собой "кроме протокола". Хотя надо признать, что сама структура первого уровня - пакеты - формат пакетов - таймауты - CRC - придраться особо не к чему. К сожелению с LIN не разбирался и до CAN тоже руки не дошли. Хотелось бы конечно. Но пока не было такой задачи.

Компонента MODBUS у меня нет, но есть компонент COM порт и RS485. Я его использовал, но немного корректировал. У меня есть сомнения что под виртуалом вообще полностью можно создать MODBUS. singlskv совершенно точно перечислил причины. Только что с этим боролся.
Пробовал вот такой вот вызов таймера
TimerID:=timeSetEvent(ASpeed[Speed],0,@TimeProc,0,TIME_PERIODIC);
10мс отрабатывает нормально, но можно и меньше. Но тоже есть проблемы. Мне обещали подогнать правильную работу ч/з OPENGL. Буду пробовать.
Когда я говорил про Фордов, нефтянников и иже сними, я как раз и имел ввиду программный протокол, а физическая часть на вкус и цвет - Форд и Ко использует K-Line , нефтянники используют диф. пары, кто-то предпочитает радио потому как расстояния разные (одна из главных причин) и стимулы.



ЗЫ: Как OpenGL может помочь, что то я не догоняю??? Это которая с Direct3D дружит? smile.gif


--------------------
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jan 8 2007, 21:20
Сообщение #58


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(li4 @ Jan 8 2007, 17:56) *
Все исправил, схемы приняли вид:
AVR to RS485:
Опять почти. В документе "имени prottossa" в разделе 3.4.6 сказано (даже выделено), что резисторы растяжки должны быть только в одном месте на всю шину. В вашем случае без переходника 232-485 система не работает, поэтому их имеет смысл оставить именно в этом переходнике, а в "AVR то 485" R1 и R2 исключить.
Цитата(li4 @ Jan 8 2007, 17:56) *
Если все верно, то 1/3 дела сделано, теперь бы еще программу для МК под эту схему придумать.
Повод прочитать раздел 2.4 Master / Slaves State Diagrams упомянутого документа smile.gif


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
prottoss
сообщение Jan 8 2007, 21:29
Сообщение #59


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(Сергей Борщ @ Jan 9 2007, 01:20) *
В документе "имени prottossa" ...
Щаз лопну от гордости


--------------------
Go to the top of the page
 
+Quote Post
WHALE
сообщение Jan 8 2007, 21:59
Сообщение #60


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



Цитата(prottoss @ Jan 8 2007, 21:29) *
Цитата(Сергей Борщ @ Jan 9 2007, 01:20) *
В документе "имени prottossa" ...
Щаз лопну от гордости

prottoss Не надо,нам вас будет недоставать. smile.gif


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th June 2025 - 06:31
Рейтинг@Mail.ru


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