Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Паралельная работа с COM-портами
Форум разработчиков электроники ELECTRONIX.ru > Аналоговая и цифровая техника, прикладная электроника > Цифровые схемы, высокоскоростные ЦС
Vallery
Здравствуйте!

Делаем некий контроллер, который должен командовать 4 потребителями - например dvd-плеером, плазмой, cпутниковым тюнером и ресивером. Команды нужно подавать только на включение и отключение этих устройств. При этом эти самые устройства иногда могут сами выдавать информацию о себе в любой момент, и даже одновременно! Скорости небольшие 2400-38400 кбит\сек, но разные на разных устройствах! Принимается и выдается примерно по 6-20байт на каждое устройство за раз


Нужно выбрать сам подход...


Не хотелось бы делать на 4 устройства по 4 UARTa и 4 микропроцессора, хотя это самый чистый вариант, но он более дорогостоящий. maniac.gif

Как Вы думаете, уважаемые спецы и профи - реально ли использовать ОДИН процессор PIC18F2620 (только он - жёстко) + коммутатор аналоговый + 4 MAX232 - тоесть обрабатывать все 4 "потока" программно на таких скоростях ?
Сами только начинаем разбираться с протоколом обмена по RS232 -> на железном уровне (преобразование уровней) там все понятно, но вот найти бы побольше информации именно по протоколу и его "вариантам".

А может быть есть специальные (вспомогательные) контроллеры одновременно на 4 порта?

Никто не встречался с такими?
Electrovoicer
вариант 1: микросхема 16С554, промышленный стандарт. 4 UART
вариант 2: CPLD вроде MAX3128 от Altera, в нее засунуть 4 UART
вариант 3: взять микроконтроллер с 4 UART на борту
Vallery
По делу:

Нашел описание довольно подробное по протоколу...
http://www.maxim-ic.com/appnotes.cfm/appnote_number/2141

Да, спасибо. Посмотрел описания контроллеров 1 и 2 - широкая шина данных и тд - расчитаны на "незанятые" процессоры. У нас же он занят практически на 90% - свободна шина I2C и 2 входа-выхода.

Поищу ка 3 вариант smile.gif
spf
Цитата(Vallery @ Mar 18 2006, 00:59) *
Да, спасибо. Посмотрел описания контроллеров 1 и 2 - широкая шина данных и тд - расчитаны на "незанятые" процессоры. У нас же он занят практически на 90% - свободна шина I2C и 2 входа-выхода.

4 МК, простых (PIC,AVR), на которых реализовать мост UART-I2C(slave), будут дешевы "по железу", но реализация ПО не самая тривиальная.

Цитата
Поищу ка 3 вариант smile.gif

ИМХО. МК с 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
их можно есть одним местом http://www.efind.ru/icsearch/?search=16c554

с 4 UART есть фуджитсу серии MB90Fxxx, там даже с 7 есть, насколько помню. еще есть филипс SJA2020 (ARM7) с 5 UART... да и еще найдете, если покопаете
Shamil
Цитата(Vallery @ Mar 17 2006, 23:45) *
Как Вы думаете, уважаемые спецы и профи - реально ли использовать ОДИН процессор PIC18F2620 (только он - жёстко) + коммутатор аналоговый + 4 MAX232 - тоесть обрабатывать все 4 "потока" программно на таких скоростях ?


В аппаратной реализации приемника UART обычно используется тактовая частота
в 16 раз превышающая битовую скорость, т.е. для 38400 б/сек нужна тактовая 614400 Гц.
При хорошой линии связи (при коротких растояниях), для программной реализации
можно ограничиться трех кратной частотой опроса входного сигнала.
Т.е. для скорости 38400 надо иметь прерывания (для опроса входного сигнала)
каждые 8,68 мкс. При этом в прерывании надо выполнять порядка 10..20 команд
на каждый канал. Если твой PIC сможет работать с такой скоростью, то в принципе,
ничего сложного в программной реализации UART-а нет.
Наверное можно 38400 завести на аппаратный UART PIC-а, а остальные 3 канала,
с более низкими скоростями, обрабатывать программно.
khach
Приходилось делать такое- 8 уартов, но на 19200 надо было связать с компом. Поток по уартам был нерегулярный- в среденм 10 раз в секунду проходил пакет в 16 байт. Реализовали на Pic16F876. 8 софтверных уартов с софтовым фифо в 32 байта и один аппаратный уарт на 115200 для связи с компом с аппаратным контролем потока. Т.е один выделенный процессор работал как мильтиуарт. Устройство еще было с гальванической развязкой, так что способность ножек пика драйвить оптроны была совсем нелишней.
iosifk
Все советы правильные, вот только нет одного.

Давайте определимся с заданием. А именно то, что Вы хотите сделать.
Есть СЕТЬ из 4 микроконтроллеров. Есть мастер сети. Он "рулит" обменом. Можно ли провести запросы на передачу информации от абонентов проводами или надо опрашивать абонентов? Далее, мастер может опрашивать абонентов. И в этом случае задержка на передачу информации не будет критичной. Нужно ли передавать эстафету другому мастеру? Скорее всего - нет. Значит сеть становится детерминированной. И всегда можно промультиплексировать сигналы принимаемых данных. Значит необходимости в 4-х портах тоже нет, и экзотика не нужна.
А почему скорости разные?
Можно ли все привести к единому имтерфейсу LIN? Переход на интерфейс LIN значтельно упростит последующие разработки.
Удачи!
kolobok0
Цитата(iosifk @ Mar 20 2006, 10:12) *
...И всегда можно промультиплексировать сигналы принимаемых данных....


свои 5 копеек, по поводу сети из энного(а не только 4 кстати) кол-ва COM портов...
мультиплицировать мона автоматически, для этого управляющие не нужны...делается всё на пару рассыпухах, либо на вшивом кусочке программируемой логики...решение выглядит как чистая шинная топология, выборка адресса и арбитраж - делается программно...смысл прост до безобразия - говорящего слышат все, за исключением говорящего...

с уважением
(круглый)
Vallery
А что, интересные мысли!

Пока есть несеть из одного контроллера, из которой сейчас пытаемся создать "ум cranky.gif ный" коммутатор COM портов, и уже потом далее вся инфо будет передаваться такому же МК по I2C по его запросу.

Остановились на новом отдельном - МК PIC18F2420(SO28) + 4 шт. MAX232(SO16) и всё!...

Потя smile3009.gif нет ли МК софтобработку 4х портов на скорости 38Кбит -
ведь за такой период PIC18 может успеть выполнить 260 коротких команд.
Думаю, что запас есть.

Раздобыть бы где полное описание работы с временными параметрами "целого" COM-порта - со всеми задействованными сигналами - ноги 1,2,3,4,6,7,8 и 9...!

Разные скорости в интерфейсах заложены разными производителями ... как хотят они maniac.gif ... так и делают tongue.gif !
Тут ничего не попишешь! У кого 9600, у кого 38400, а у кого 2400 - в основном именно эти скорости

А можно ли где получить побольше инфо о LIN?
_artem_
http://www.atmel.com/dyn/products/param_ta...o&Direction=ASC
ATmega1280
ATmega2560
ATmega640
Mistubishi (Renesas) M32 series
Major
Cyclone или Cyclone II + NIOS II, и вам будет счастье.
Хоть 100 UART.
TED17
to Vallery
Наверное есть смысл вместо кучи MAX232 использовать 1 драйвер MAX485 и можно работать
не с 4, а с 32 устройствами на скорости до 1.2Мбит/с. Да и проводов поменьше будет.
Пршивка PICа на 485 интерфейс есть на Microchipe.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.