|
Организация сетевого обмена на AT90S8515, Построение локальной сети микроконтроллеров |
|
|
|
Jun 2 2008, 13:20
|
Участник

Группа: Новичок
Сообщений: 29
Регистрация: 5-11-07
Пользователь №: 32 068

|
Здравствуйте! Подскажите как лучше реализовать сетевой обмен между МК, если имеется следующие требования: - обмен по последовательному каналу (планирую использовать UART + MAX232); - число абонентов от 1 до 16; - возможность горячего подключения/отключения абонентов; - длина передаваемого сообщения данных / команд не более 64 байт. Сетевой обмен будет макетироваться на STK500 и моделироваться в Proteus'е. Есть ряд вопросов по реализации: - следует ли реализовывать некое подобие Ethernet, TokenRing, HDLC? - как следует осуществлять квитирование? (для связи будет использоваться нуль-модемный кабель (RS-232C, COM (DB-9M))) - будут ли программно доступны линии спецификации RS-232C (9-контактов), кроме TxD/RxD/GND? Есть подозрения, что они будут недоступны. Поясню, планировал использовать ряд линий как запрос на конфигурирование сети и быстрый ответ на передачу данных (принято без/с ошибками), без них же будет затруднительно это реализовать. Полагаю использовать преамбулу в 2 байта + 2 байта, определяющие тип передачи, + 2 байта CRC16. Думаю, что имеет смысл реализовать некоторый набор стандартных команд-пакетов, например опрос статуса и т.д. По-началу хотел реализовать детерминированный доступ к каналу - в духе TokenRing, однако сейчас в недоумении, как организовать выбор монитора (резервного монитора) из всех МК, а также организовать обход абонента, которому нечего передавать и/или передача адресована не ему, - это для сокращения временных задержек, связанных с приемом, а затем перепередачей данных. Сейчас же в раздумьях, как это можно сделать, чтобы потом была возможность выполнить макетирование на STK500. Подскажите, пожалуйста, как решить вышеописанные вопросы. Заранее благодарен. В догонку, есть еще одно требование - реализовать "средства (аппаратные и программные), обеспечивающие контроль работы канала связи с помощью пульта оператора в режиме диагностики, предусмотрев централизованное управление всеми транзакциями по командам оператора", следует ли на этой плате ставить дополнительную ИМС памяти (для приемного буфера), если да, то какого объема лучше? Для индикации будет использован цифро-буквенный ЖКИ типа LM041L/LM044L. P.S.: также было высказано "требование-пожелание" - программы должны быть написаны на ассемблере (это несколько огорчило...  ).
|
|
|
|
|
 |
Ответов
|
Jun 2 2008, 13:45
|
Местный
  
Группа: Свой
Сообщений: 408
Регистрация: 21-10-06
Из: Санкт-Петербург
Пользователь №: 21 527

|
Цитата(nelord @ Jun 2 2008, 17:20)  Здравствуйте! Подскажите как лучше реализовать сетевой обмен между МК, если имеется следующие требования: ... MAX232 (как и RS232 вообще) не предназначена для построения сетей. ИМХО Ваш выбор - RS485 и что-то типа max483. AT90S8515 - странный выбор,контроллер не производится лет 5. Про Протеус лучше забыть, в нем хорошо только игрушки отлаживать. Линий кроме RXD и TXD у AVR нет. Если нужны следует выбрать другой контроллер, например AT91SAM7S128. Протоколов много стандартных - MODBUS, WAKE, или на их основе изобретайте свое. Курсовик?
|
|
|
|
|
Jun 2 2008, 15:32
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(Qwertty @ Jun 2 2008, 16:45)  Линий кроме RXD и TXD у AVR нет. Если нужны следует выбрать другой контроллер, например AT91SAM7S128. Зачем? Берем любые GPIO и называем их так как надо. Цитата Какой из предложенных протоколов лучше выбрать: MODBUS или WAKE? Я бы выбрал modbus. Цитата следует ли на этой плате ставить дополнительную ИМС памяти (для приемного буфера), если да, то какого объема лучше? Я бы ставил 8-32kB (корпуса/сигналы одинаковые), но "не для приемного буфера", а для комфортной работы. Т.е. подключить эту память по шине и использовать также как и внутреннюю - если надо под стек, под переменные и проч. Чип m162 или m128 (с внешней шиной и с JTAG'ом для отладки).
|
|
|
|
|
Jun 2 2008, 16:20
|
Участник

Группа: Новичок
Сообщений: 29
Регистрация: 5-11-07
Пользователь №: 32 068

|
Цитата(defunct @ Jun 2 2008, 19:32)  Зачем? Берем любые GPIO и называем их так как надо. Я бы выбрал modbus. Я бы ставил 8-32kB (корпуса/сигналы одинаковые), но "не для приемного буфера", а для комфортной работы. Т.е. подключить эту память по шине и использовать также как и внутреннюю - если надо под стек, под переменные и проч. Чип m162 или m128 (с внешней шиной и с JTAG'ом для отладки). Разумеется, что можно использовать любой I/O вывод, вопрос был относительно поддержки физической коммутации этих выводом с разъемом DB-9M на плате STK500, в документации для указанной коммутации есть только "RS232 SPARE", то есть TxD/RxD + GND Описание спецификации modbus нашел следующее, если кому быть может понадобится: http://www.idom.ru/files/Schneider/Info/Ne.../Modbus_Rus.DocТакже вопрос: почему RS-485 лучше, чем RS-232, как я понял почитав по следующим ссылкам: Цитата он отличается только в передаче по дифференциальной паре, то есть лучше применим для сетей с удаленными абонентами + лучше помехозащищен.
|
|
|
|
|
Jun 2 2008, 17:26
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(nelord @ Jun 2 2008, 19:20)  Разумеется, что можно использовать любой I/O вывод, вопрос был относительно поддержки физической коммутации этих выводом с разъемом DB-9M на плате STK500, в документации для указанной коммутации есть только "RS232 SPARE", то есть TxD/RxD + GND Дык в чем вопрос? Подведите требуемые линии к разъему. Всяко проще чем переходить к совсем другим платформам. Цитата Также вопрос: почему RS-485 лучше, чем RS-232, как я понял почитав по следующим ссылкам: он отличается только в передаче по дифференциальной паре, то есть лучше применим для сетей с удаленными абонентами + лучше помехозащищен. 1. 2.5км дальность сегмента. 2. можно подключать до 32-х устройств к одной шине из двух проводов. Он не лучше применим, он создан для сетевых решений, в то время как 232-й это соединение точка-точка и к сетевым решениям не применим вообще.
|
|
|
|
|
Jun 3 2008, 06:49
|
Участник

Группа: Новичок
Сообщений: 29
Регистрация: 5-11-07
Пользователь №: 32 068

|
Цитата(defunct @ Jun 2 2008, 21:26)  ... 232-й это соединение точка-точка и к сетевым решениям не применим вообще. Согласен, что соединение - точка-точка, что же мешает соединить всех абонентов следующим образом: TxD(n-1)-RxD(n), n=1, ... N-1; TxD(N-1)-RxD(0). Организовав таким образом кольцо связями точка-точка. Сейчас у меня остался вопрос, как организовать доступ к каналу, если не обходимо поддерживать горячее подключение. Поясню - имеется активный монитор (при чем как отдавать предпочтение одному абоненту не очевидно), возможно что включат новых абонентов, несконфигурированных для работы в сети, или же выключат станцию-монитора. То есть нужно организовать что-то вроде MAC (Media Access Control) канального уровня модели OSI.
|
|
|
|
|
Jun 3 2008, 06:59
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(nelord @ Jun 3 2008, 09:49)  Согласен, что соединение - точка-точка, что же мешает соединить всех абонентов следующим образом: TxD(n-1)-RxD(n), n=1, ... N-1; TxD(N-1)-RxD(0). Организовав таким образом кольцо связями точка-точка. 1. Мазохизм 2. Потеря быстродействия. 3. Потеря надежности. Цитата(nelord @ Jun 3 2008, 09:49)  Сейчас у меня остался вопрос, как организовать доступ к каналу, если не обходимо поддерживать горячее подключение. Поясню - имеется активный монитор (при чем как отдавать предпочтение одному абоненту не очевидно), возможно что включат новых абонентов, несконфигурированных для работы в сети, или же выключат станцию-монитора. То есть нужно организовать что-то вроде MAC (Media Access Control) канального уровня модели OSI. Сессия скоро, что, MAC в задании записан? Даже если записан, пишем, что объединяем этот уровень со следующим и вводим адресацию на перемычках. Хочешь подключиться - сконфигурируй перемычки.
--------------------
Уходя, оставьте свет...
|
|
|
|
Сообщений в этой теме
nelord Организация сетевого обмена на AT90S8515 Jun 2 2008, 13:20      nelord Цитата(Dog Pawlowa @ Jun 3 2008, 10:59) M... Jun 3 2008, 08:51       Dog Pawlowa Цитата(nelord @ Jun 3 2008, 11:51) ...
Ад... Jun 3 2008, 09:35        nelord Цитата(Dog Pawlowa @ Jun 3 2008, 13:35) К... Jun 3 2008, 10:13         Dog Pawlowa Цитата(nelord @ Jun 3 2008, 13:13) Хочу в... Jun 3 2008, 10:46          galjoen Цитата(Dog Pawlowa @ Jun 3 2008, 14:46) П... Jun 3 2008, 11:35           defunct Цитата(galjoen @ Jun 3 2008, 14:35) Напри... Jun 3 2008, 12:00            galjoen Цитата(defunct @ Jun 3 2008, 16:00) Ниско... Jun 3 2008, 12:45             Dog Pawlowa Цитата(galjoen @ Jun 3 2008, 15:45) 2 ... Jun 3 2008, 13:16           Т.Достоевский Цитата(galjoen @ Jun 3 2008, 15:35) А воо... Jun 5 2008, 20:33            galjoen Цитата(Т.Достоевский @ Jun 6 2008, 00:33)... Jun 6 2008, 14:53             nelord Цитата(galjoen @ Jun 6 2008, 18:53) ... П... Jun 8 2008, 15:00              Dog Pawlowa Цитата(nelord @ Jun 8 2008, 18:00) Тут на... Jun 8 2008, 20:12               galjoen Цитата(Dog Pawlowa @ Jun 9 2008, 00:12) П... Jun 9 2008, 14:23                Dog Pawlowa Цитата(galjoen @ Jun 9 2008, 17:23)
Все,... Jun 9 2008, 15:21                nelord Цитата(galjoen @ Jun 9 2008, 18:23) Вы ка... Jun 9 2008, 18:23     VladimirYU [quote name='nelord' date='Jun 3 2008,... Jun 3 2008, 07:25 nelord Именно, курсовик. Свой уже сдал, попросили сделать... Jun 2 2008, 14:23 Kuzmi4 2 nelord - на счёт модбаза - где то сдесь и исходн... Jun 2 2008, 15:40 Kuzmi4 2 Dog Pawlowa - с его проводом занятости просто на... Jun 3 2008, 10:56 Dog Pawlowa Цитата(Kuzmi4 @ Jun 3 2008, 13:56) 2 Dog ... Jun 3 2008, 11:11 nelord Цитата(Kuzmi4 @ Jun 3 2008, 14:56) 2 nelo... Jun 3 2008, 11:35 nelord Цитата(Kuzmi4 @ Jun 3 2008, 14:56) 2 nelo... Jun 3 2008, 12:01  defunct Цитата(nelord @ Jun 3 2008, 15:01) Хотел ... Jun 3 2008, 12:13 MrYuran Огласите пжалста, весь список!
То есть, задани... Jun 3 2008, 11:00 Qwertty Упс - два раза вставилось.. Jun 3 2008, 11:35 Qwertty Просто мысль - для курсовика экономика не важна, м... Jun 3 2008, 11:35 nelord Спасибо большое за помощь. С этим я разобрался, но... Jun 3 2008, 12:20 Dog Pawlowa Цитата(nelord @ Jun 3 2008, 15:20) Спасиб... Jun 3 2008, 12:26 Kuzmi4 2 nelord - а здесь пробовали искать
http://electro... Jun 3 2008, 12:20 nelord Попутно возник еще один вопрос, при детальном анал... Jun 8 2008, 16:32 vet Цитата(nelord @ Jun 8 2008, 20:32) Попутн... Jun 9 2008, 04:54
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|