Vallery 0 17 марта, 2006 Опубликовано 17 марта, 2006 · Жалоба Здравствуйте! Делаем некий контроллер, который должен командовать 4 потребителями - например dvd-плеером, плазмой, cпутниковым тюнером и ресивером. Команды нужно подавать только на включение и отключение этих устройств. При этом эти самые устройства иногда могут сами выдавать информацию о себе в любой момент, и даже одновременно! Скорости небольшие 2400-38400 кбит\сек, но разные на разных устройствах! Принимается и выдается примерно по 6-20байт на каждое устройство за раз Нужно выбрать сам подход... Не хотелось бы делать на 4 устройства по 4 UARTa и 4 микропроцессора, хотя это самый чистый вариант, но он более дорогостоящий. :maniac: Как Вы думаете, уважаемые спецы и профи - реально ли использовать ОДИН процессор PIC18F2620 (только он - жёстко) + коммутатор аналоговый + 4 MAX232 - тоесть обрабатывать все 4 "потока" программно на таких скоростях ? Сами только начинаем разбираться с протоколом обмена по RS232 -> на железном уровне (преобразование уровней) там все понятно, но вот найти бы побольше информации именно по протоколу и его "вариантам". А может быть есть специальные (вспомогательные) контроллеры одновременно на 4 порта? Никто не встречался с такими? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Electrovoicer 3 17 марта, 2006 Опубликовано 17 марта, 2006 · Жалоба вариант 1: микросхема 16С554, промышленный стандарт. 4 UART вариант 2: CPLD вроде MAX3128 от Altera, в нее засунуть 4 UART вариант 3: взять микроконтроллер с 4 UART на борту Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vallery 0 17 марта, 2006 Опубликовано 17 марта, 2006 · Жалоба По делу: Нашел описание довольно подробное по протоколу... http://www.maxim-ic.com/appnotes.cfm/appnote_number/2141 Да, спасибо. Посмотрел описания контроллеров 1 и 2 - широкая шина данных и тд - расчитаны на "незанятые" процессоры. У нас же он занят практически на 90% - свободна шина I2C и 2 входа-выхода. Поищу ка 3 вариант :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
spf 0 18 марта, 2006 Опубликовано 18 марта, 2006 · Жалоба Да, спасибо. Посмотрел описания контроллеров 1 и 2 - широкая шина данных и тд - расчитаны на "незанятые" процессоры. У нас же он занят практически на 90% - свободна шина I2C и 2 входа-выхода. 4 МК, простых (PIC,AVR), на которых реализовать мост UART-I2C(slave), будут дешевы "по железу", но реализация ПО не самая тривиальная. Поищу ка 3 вариант :) ИМХО. МК с 4 UART на борту простыми не будут, соответсвенно не самые дешевые. Поиск на сахаре Какой бюджет четырех каналов UART? Если взять 2МК * 2 UART то может получиться дешевле, например LPC2101, 2*2$. Или даже так -- 1МК, с достаточной производительностью: 2 UART(hardware) + 2 UART(soft), например LPC2101, 2$. вариант 1: микросхема 16С554, промышленный стандарт. 4 UART Что-то ни efind.ru ни einfo.ru не находят такое... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Electrovoicer 3 18 марта, 2006 Опубликовано 18 марта, 2006 · Жалоба их можно есть одним местом http://www.efind.ru/icsearch/?search=16c554 с 4 UART есть фуджитсу серии MB90Fxxx, там даже с 7 есть, насколько помню. еще есть филипс SJA2020 (ARM7) с 5 UART... да и еще найдете, если покопаете Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Shamil 2 18 марта, 2006 Опубликовано 18 марта, 2006 (изменено) · Жалоба Как Вы думаете, уважаемые спецы и профи - реально ли использовать ОДИН процессор PIC18F2620 (только он - жёстко) + коммутатор аналоговый + 4 MAX232 - тоесть обрабатывать все 4 "потока" программно на таких скоростях ? В аппаратной реализации приемника UART обычно используется тактовая частота в 16 раз превышающая битовую скорость, т.е. для 38400 б/сек нужна тактовая 614400 Гц. При хорошой линии связи (при коротких растояниях), для программной реализации можно ограничиться трех кратной частотой опроса входного сигнала. Т.е. для скорости 38400 надо иметь прерывания (для опроса входного сигнала) каждые 8,68 мкс. При этом в прерывании надо выполнять порядка 10..20 команд на каждый канал. Если твой PIC сможет работать с такой скоростью, то в принципе, ничего сложного в программной реализации UART-а нет. Наверное можно 38400 завести на аппаратный UART PIC-а, а остальные 3 канала, с более низкими скоростями, обрабатывать программно. Изменено 18 марта, 2006 пользователем Shamil_Yusupov Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
khach 44 18 марта, 2006 Опубликовано 18 марта, 2006 · Жалоба Приходилось делать такое- 8 уартов, но на 19200 надо было связать с компом. Поток по уартам был нерегулярный- в среденм 10 раз в секунду проходил пакет в 16 байт. Реализовали на Pic16F876. 8 софтверных уартов с софтовым фифо в 32 байта и один аппаратный уарт на 115200 для связи с компом с аппаратным контролем потока. Т.е один выделенный процессор работал как мильтиуарт. Устройство еще было с гальванической развязкой, так что способность ножек пика драйвить оптроны была совсем нелишней. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 20 марта, 2006 Опубликовано 20 марта, 2006 · Жалоба Все советы правильные, вот только нет одного. Давайте определимся с заданием. А именно то, что Вы хотите сделать. Есть СЕТЬ из 4 микроконтроллеров. Есть мастер сети. Он "рулит" обменом. Можно ли провести запросы на передачу информации от абонентов проводами или надо опрашивать абонентов? Далее, мастер может опрашивать абонентов. И в этом случае задержка на передачу информации не будет критичной. Нужно ли передавать эстафету другому мастеру? Скорее всего - нет. Значит сеть становится детерминированной. И всегда можно промультиплексировать сигналы принимаемых данных. Значит необходимости в 4-х портах тоже нет, и экзотика не нужна. А почему скорости разные? Можно ли все привести к единому имтерфейсу LIN? Переход на интерфейс LIN значтельно упростит последующие разработки. Удачи! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kolobok0 0 20 марта, 2006 Опубликовано 20 марта, 2006 · Жалоба ...И всегда можно промультиплексировать сигналы принимаемых данных.... свои 5 копеек, по поводу сети из энного(а не только 4 кстати) кол-ва COM портов... мультиплицировать мона автоматически, для этого управляющие не нужны...делается всё на пару рассыпухах, либо на вшивом кусочке программируемой логики...решение выглядит как чистая шинная топология, выборка адресса и арбитраж - делается программно...смысл прост до безобразия - говорящего слышат все, за исключением говорящего... с уважением (круглый) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vallery 0 22 марта, 2006 Опубликовано 22 марта, 2006 · Жалоба А что, интересные мысли! Пока есть несеть из одного контроллера, из которой сейчас пытаемся создать "ум :cranky: ный" коммутатор COM портов, и уже потом далее вся инфо будет передаваться такому же МК по I2C по его запросу. Остановились на новом отдельном - МК PIC18F2420(SO28) + 4 шт. MAX232(SO16) и всё!... Потя :smile3009: нет ли МК софтобработку 4х портов на скорости 38Кбит - ведь за такой период PIC18 может успеть выполнить 260 коротких команд. Думаю, что запас есть. Раздобыть бы где полное описание работы с временными параметрами "целого" COM-порта - со всеми задействованными сигналами - ноги 1,2,3,4,6,7,8 и 9...! Разные скорости в интерфейсах заложены разными производителями ... как хотят они :maniac: ... так и делают :tongue: ! Тут ничего не попишешь! У кого 9600, у кого 38400, а у кого 2400 - в основном именно эти скорости А можно ли где получить побольше инфо о LIN? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_artem_ 0 25 марта, 2006 Опубликовано 25 марта, 2006 · Жалоба http://www.atmel.com/dyn/products/param_ta...o&Direction=ASC ATmega1280 ATmega2560 ATmega640 Mistubishi (Renesas) M32 series Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Major 0 25 марта, 2006 Опубликовано 25 марта, 2006 · Жалоба Cyclone или Cyclone II + NIOS II, и вам будет счастье. Хоть 100 UART. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TED17 0 6 апреля, 2006 Опубликовано 6 апреля, 2006 · Жалоба to Vallery Наверное есть смысл вместо кучи MAX232 использовать 1 драйвер MAX485 и можно работать не с 4, а с 32 устройствами на скорости до 1.2Мбит/с. Да и проводов поменьше будет. Пршивка PICа на 485 интерфейс есть на Microchipe. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться