Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
22.03.2013, 08:59
|
|
Временная регистрация
Регистрация: 20.06.2009
Сообщений: 51
Сказал спасибо: 44
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Слияние 4х потоков USART
Здравствуйте, уважаемые форумчане!
Возникла следующая потребность и никак идеи в голову не приходят. Вообщем мне нужно устройство, которое объединяет 4 разных потока USART и транслирует их на общую шину USART. Подробнее: с каждой из 4х линий USART максимум 20 раз в секунду приходит информация (30 слов на скорости 9600 бит/с, 2 ст. б, без б. четности и паритета). Устройство должно считать эти слова и добавлять еще по одному слову к каждой из последовательностей и выдать на общую линию USART по очереди по мере прихода слов на вход с большей скоростью, к примеру 115200 бит/с.
Я вообщем думал использовать 4 микроконтроллера типа ATtiny 2313, схему шины выходной придумал, но самым главным вопросом встал приоритет по приходу информации. Может подскажите, подкините идейку - буду очень очень и очень благодарен.
|
|
|
|
22.03.2013, 09:25
|
|
Гражданин KAZUS.RU
Регистрация: 31.12.2010
Сообщений: 837
Сказал спасибо: 371
Сказали Спасибо 153 раз(а) в 113 сообщении(ях)
|
Re: Слияние 4х потоков USART
insiderbik, лучше взять один контроллер у которого есть несколько линий UART например что то из STM32, правда не знаю есть ли там на 5 USART, но на 4 есть точно.
Использование одного микроконтроллера позволит корректно обрабатывать принимаемые данные по прерыванию, указать приоритеты прерываний для каждой входящей линии. В этом случае не будет ситуации когда 2 или более контроллера будут пытаться записать в общую Usart шину данные одновременно.
|
|
|
|
22.03.2013, 09:40
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: Слияние 4х потоков USART
Сообщение от Flopix
|
insiderbik, лучше взять один контроллер у которого есть несколько линий UART например что то из STM32, правда не знаю есть ли там на 5 USART, но на 4 есть точно.
Использование одного микроконтроллера позволит корректно обрабатывать принимаемые данные по прерыванию, указать приоритеты прерываний для каждой входящей линии. В этом случае не будет ситуации когда 2 или более контроллера будут пытаться записать в общую Usart шину данные одновременно.
|
Согласен. Надо определиться с "географией" точки слияния. Будет ли доступ в шину в одной точке, или разнесенный в пространстве. В последнем резко встанет вопрос, именуемый ""множественный доступ в канал с контролем занятости". Если слияние потоков в центре "звезды" - задача облегчается. Но если "шинный" доступ, придется поработать над алгоритмом. Общее решение для этого случая давно есть. Также в варианте перехода протокола RS-232 на "общую шину" вроде как необходимо, сохранив физику протокола, перейти на пакетное формирование выходных данных в канал, с добавлением адресов для возможности "разборки" на приемных сторонах. Задача сводится к общему решению "сеть с коммутацией пакетов". Сохранять асинхронный протокол исходного RS-232 при смешивании потоков не резон.
Есть над чем подумать. Путей решения много. Вам выбирать.
__________________
С уважением,
Vic / ut1wpr
|
|
|
|
22.03.2013, 09:41
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,548
Сказал спасибо: 384
Сказали Спасибо 737 раз(а) в 417 сообщении(ях)
|
Re: Слияние 4х потоков USART
Если дружите с пиками, можно подобрать из PIC32 с 6-ю USARTами, или из PIC24 с 4 USART + 1 USB.
|
|
|
|
22.03.2013, 09:58
|
|
Временная регистрация
Регистрация: 20.06.2009
Сообщений: 51
Сказал спасибо: 44
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Слияние 4х потоков USART
Сообщение от Flopix
|
insiderbik, лучше взять один контроллер у которого есть несколько линий UART например что то из STM32, правда не знаю есть ли там на 5 USART, но на 4 есть точно.
Использование одного микроконтроллера позволит корректно обрабатывать принимаемые данные по прерыванию, указать приоритеты прерываний для каждой входящей линии. В этом случае не будет ситуации когда 2 или более контроллера будут пытаться записать в общую Usart шину данные одновременно.
|
Я бы и рад, да вот только с STM пока не в ладах - знаю только AVR, там на самых экзотических моделях 2 USARTа
|
|
|
|
22.03.2013, 10:03
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: Слияние 4х потоков USART
Если расстояние позволяет, то для этого RS485 существует. Информации то не очень много - 4*30*20*10 = 24 Кбит - на скорости 56КБит без проблем все проскочит. И париться особо не надо.
|
|
|
|
22.03.2013, 10:33
|
|
Прописка
Регистрация: 30.06.2011
Сообщений: 139
Сказал спасибо: 94
Сказали Спасибо 47 раз(а) в 36 сообщении(ях)
|
Re: Слияние 4х потоков USART
ATMega2560 - 4 UART. Но все равно мало...
|
|
|
|
22.03.2013, 10:41
|
|
Временная регистрация
Регистрация: 20.06.2009
Сообщений: 51
Сказал спасибо: 44
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Слияние 4х потоков USART
Хотелось бы все таки на 4х МК AVR (тиня 2313, мега8, мега 48, мега 88 - то, что будет или есть в наличии) и идейку организации приоритета, лучше аппаратную конечно
|
|
|
|
22.03.2013, 10:41
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.12.2007
Адрес: Екатеринбург
Сообщений: 2,727
Сказал спасибо: 2,432
Сказали Спасибо 893 раз(а) в 580 сообщении(ях)
|
Re: Слияние 4х потоков USART
А пятый-програмно. Тот,который на выход.
|
|
|
|
22.03.2013, 11:04
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: Слияние 4х потоков USART
Сообщение от insiderbik
|
Хотелось бы все таки на 4х МК AVR (тиня 2313, мега8, мега 48, мега 88 - то, что будет или есть в наличии) и идейку организации приоритета, лучше аппаратную конечно
|
Контроллеры сохраняют пакеты в свою ОЗУ и выставляют флаг на ногу прерывания 5-го. 5-й контроллер как только освободится от передачи текущего пакета, считывает пакеты по СПИ и передает. Как только в ведомом контроллере пакеты закончатся - он опускает флаг прерывания. Можно еще программно предусмотреть приоритеты для ведомых, если несколько одновременно примут. Все подключены на один СПИ и выбор сигналами CS
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 05:50.
|
|