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

 
 
 
Reply to this topicStart new topic
> Паралельная работа с COM-портами, Выбор подхода
Vallery
сообщение Mar 17 2006, 18:45
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 57
Регистрация: 15-12-05
Из: Москва
Пользователь №: 12 276



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

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


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


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

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

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

Никто не встречался с такими?
Go to the top of the page
 
+Quote Post
Electrovoicer
сообщение Mar 17 2006, 19:22
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 337
Регистрация: 1-02-06
Пользователь №: 13 874



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


--------------------
"А я все помню, я был не пьяный!.." (С)Владимир Семенович
Go to the top of the page
 
+Quote Post
Vallery
сообщение Mar 17 2006, 19:59
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 57
Регистрация: 15-12-05
Из: Москва
Пользователь №: 12 276



По делу:

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

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

Поищу ка 3 вариант smile.gif
Go to the top of the page
 
+Quote Post
spf
сообщение Mar 18 2006, 01:47
Сообщение #4


Странник
****

Группа: Свой
Сообщений: 766
Регистрация: 29-08-05
Из: Екатеринбург
Пользователь №: 8 051



Цитата(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 не находят такое...


--------------------
"Как много есть на свете вещей, которые мне не нужны!" Сократ
Go to the top of the page
 
+Quote Post
Electrovoicer
сообщение Mar 18 2006, 08:29
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 337
Регистрация: 1-02-06
Пользователь №: 13 874



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

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


--------------------
"А я все помню, я был не пьяный!.." (С)Владимир Семенович
Go to the top of the page
 
+Quote Post
Shamil
сообщение Mar 18 2006, 09:51
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 160
Регистрация: 23-12-04
Из: Уфа
Пользователь №: 1 631



Цитата(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 канала,
с более низкими скоростями, обрабатывать программно.

Сообщение отредактировал Shamil_Yusupov - Mar 18 2006, 09:53
Go to the top of the page
 
+Quote Post
khach
сообщение Mar 18 2006, 10:27
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 3 439
Регистрация: 29-12-04
Пользователь №: 1 741



Приходилось делать такое- 8 уартов, но на 19200 надо было связать с компом. Поток по уартам был нерегулярный- в среденм 10 раз в секунду проходил пакет в 16 байт. Реализовали на Pic16F876. 8 софтверных уартов с софтовым фифо в 32 байта и один аппаратный уарт на 115200 для связи с компом с аппаратным контролем потока. Т.е один выделенный процессор работал как мильтиуарт. Устройство еще было с гальванической развязкой, так что способность ножек пика драйвить оптроны была совсем нелишней.
Go to the top of the page
 
+Quote Post
iosifk
сообщение Mar 20 2006, 07:12
Сообщение #8


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



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

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


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Mar 20 2006, 12:59
Сообщение #9


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(iosifk @ Mar 20 2006, 10:12) *
...И всегда можно промультиплексировать сигналы принимаемых данных....


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

с уважением
(круглый)
Go to the top of the page
 
+Quote Post
Vallery
сообщение Mar 22 2006, 22:33
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 57
Регистрация: 15-12-05
Из: Москва
Пользователь №: 12 276



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

Пока есть несеть из одного контроллера, из которой сейчас пытаемся создать "ум 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?
Go to the top of the page
 
+Quote Post
_artem_
сообщение Mar 25 2006, 07:01
Сообщение #11


учащийся
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 29-10-05
Из: города контрастов
Пользователь №: 10 249



http://www.atmel.com/dyn/products/param_ta...o&Direction=ASC
ATmega1280
ATmega2560
ATmega640
Mistubishi (Renesas) M32 series


--------------------
Зачем лаять на караван , когда на него можно плюнуть?

Go to the top of the page
 
+Quote Post
Major
сообщение Mar 25 2006, 16:13
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 618
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 375



Cyclone или Cyclone II + NIOS II, и вам будет счастье.
Хоть 100 UART.
Go to the top of the page
 
+Quote Post
TED17
сообщение Apr 6 2006, 19:43
Сообщение #13


Частый гость
**

Группа: Свой
Сообщений: 181
Регистрация: 25-02-06
Пользователь №: 14 663



to Vallery
Наверное есть смысл вместо кучи MAX232 использовать 1 драйвер MAX485 и можно работать
не с 4, а с 32 устройствами на скорости до 1.2Мбит/с. Да и проводов поменьше будет.
Пршивка PICа на 485 интерфейс есть на Microchipe.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


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


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