Перейти к содержанию
    

Паралельная работа с COM-портами

Здравствуйте!

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

 

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

 

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

 

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

Сами только начинаем разбираться с протоколом обмена по RS232 -> на железном уровне (преобразование уровней) там все понятно, но вот найти бы побольше информации именно по протоколу и его "вариантам".

 

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

 

Никто не встречался с такими?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вариант 1: микросхема 16С554, промышленный стандарт. 4 UART

вариант 2: CPLD вроде MAX3128 от Altera, в нее засунуть 4 UART

вариант 3: взять микроконтроллер с 4 UART на борту

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По делу:

 

Нашел описание довольно подробное по протоколу...

http://www.maxim-ic.com/appnotes.cfm/appnote_number/2141

 

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

 

Поищу ка 3 вариант :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, спасибо. Посмотрел описания контроллеров 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 не находят такое...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

их можно есть одним местом http://www.efind.ru/icsearch/?search=16c554

 

с 4 UART есть фуджитсу серии MB90Fxxx, там даже с 7 есть, насколько помню. еще есть филипс SJA2020 (ARM7) с 5 UART... да и еще найдете, если покопаете

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

В аппаратной реализации приемника UART обычно используется тактовая частота

в 16 раз превышающая битовую скорость, т.е. для 38400 б/сек нужна тактовая 614400 Гц.

При хорошой линии связи (при коротких растояниях), для программной реализации

можно ограничиться трех кратной частотой опроса входного сигнала.

Т.е. для скорости 38400 надо иметь прерывания (для опроса входного сигнала)

каждые 8,68 мкс. При этом в прерывании надо выполнять порядка 10..20 команд

на каждый канал. Если твой PIC сможет работать с такой скоростью, то в принципе,

ничего сложного в программной реализации UART-а нет.

Наверное можно 38400 завести на аппаратный UART PIC-а, а остальные 3 канала,

с более низкими скоростями, обрабатывать программно.

Изменено пользователем Shamil_Yusupov

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приходилось делать такое- 8 уартов, но на 19200 надо было связать с компом. Поток по уартам был нерегулярный- в среденм 10 раз в секунду проходил пакет в 16 байт. Реализовали на Pic16F876. 8 софтверных уартов с софтовым фифо в 32 байта и один аппаратный уарт на 115200 для связи с компом с аппаратным контролем потока. Т.е один выделенный процессор работал как мильтиуарт. Устройство еще было с гальванической развязкой, так что способность ножек пика драйвить оптроны была совсем нелишней.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все советы правильные, вот только нет одного.

 

Давайте определимся с заданием. А именно то, что Вы хотите сделать.

Есть СЕТЬ из 4 микроконтроллеров. Есть мастер сети. Он "рулит" обменом. Можно ли провести запросы на передачу информации от абонентов проводами или надо опрашивать абонентов? Далее, мастер может опрашивать абонентов. И в этом случае задержка на передачу информации не будет критичной. Нужно ли передавать эстафету другому мастеру? Скорее всего - нет. Значит сеть становится детерминированной. И всегда можно промультиплексировать сигналы принимаемых данных. Значит необходимости в 4-х портах тоже нет, и экзотика не нужна.

А почему скорости разные?

Можно ли все привести к единому имтерфейсу LIN? Переход на интерфейс LIN значтельно упростит последующие разработки.

Удачи!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

...И всегда можно промультиплексировать сигналы принимаемых данных....

 

свои 5 копеек, по поводу сети из энного(а не только 4 кстати) кол-ва COM портов...

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

 

с уважением

(круглый)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А что, интересные мысли!

 

Пока есть несеть из одного контроллера, из которой сейчас пытаемся создать "ум :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?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

http://www.atmel.com/dyn/products/param_ta...o&Direction=ASC

ATmega1280

ATmega2560

ATmega640

Mistubishi (Renesas) M32 series

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

to Vallery

Наверное есть смысл вместо кучи MAX232 использовать 1 драйвер MAX485 и можно работать

не с 4, а с 32 устройствами на скорости до 1.2Мбит/с. Да и проводов поменьше будет.

Пршивка PICа на 485 интерфейс есть на Microchipe.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...