Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 03.08.2009, 20:11  
Aleksashka1
Прописка
 
Регистрация: 25.10.2008
Сообщений: 125
Сказал спасибо: 1
Сказали Спасибо 36 раз(а) в 26 сообщении(ях)
Aleksashka1 на пути к лучшему
По умолчанию Сопряжение периферии с ПК

Доброго времени суток, форумчане!
Посоветуйте как поступить, требуется сопрячь по USB МК и ПК.
Исходные данные:
Имеется 2 вида информации, назовем их потоком А и потоком В. Поток А, размером 10МБайт, собранный за конечный интервал времени, когда ПК спал.
Поток В размером 4кБайта, получаемых за 1 сек. (В-поток реального времени). Все это "хозяйство" требуется передавать в ПК по требованию ПК. В ПК информация потоков А и В обрабатывается разными программами. Скорость передачи 12 МБит/сек.
Теперь о системном уровне. Есть несколько вариантов передачи.
Первый и самый простой - использовать 2 устройства и "долбить" каждым свой поток. Сердито и просто, но 2 устройства.
Второй- использовать 1 устройство, в нем делать своего рода микширование или мультиплексирование данных. Очень подходит для решения задачи. Но тут свои "заморочки":
1) Если передавать "фиксированную" длину, например по 256 байт, хорошо укладывается оба потока (частями, около 200 байт потока А и 20-32 байт потока В), но после окончания передачи потока А будет долбить 200 байт пустоты.
2) Сделать "плавающую" длину, в начале передаем скажем длиной 256 байт, а после передачи потока А уходим на "короткую" по 32 байта.
В любом случае потоки А и В дополняются признаками для их отождествления.
Теперь о главном, аппаратно-программная часть МК может решиться хорошо. А что делать с дровами и софтом? В любом случае их надо писать. Так что проще написать на фиксированную длину? Или огорошить себя такой головной болью и биться с плавающей длиной? 8O
Спасибо всем, кто откликнется.
Реклама:
Aleksashka1 вне форума  
Непрочитано 03.08.2009, 20:34  
vdlab
Гражданин KAZUS.RU
 
Аватар для vdlab
 
Регистрация: 17.07.2006
Адрес: PV.DP.UA
Сообщений: 620
Сказал спасибо: 3
Сказали Спасибо 60 раз(а) в 48 сообщении(ях)
vdlab на пути к лучшему
По умолчанию

Ну сделайте комбо-девайс, два ЮАРТа, например, или HID+mass storage, или ЮАРТ+свой драйвер, или... короче вариантов масса. На каком МК хотите делать?
__________________
Если ты читаешь это - значит тебе нечем заняться...
vdlab вне форума  
Непрочитано 03.08.2009, 20:39  
arhimed486
Прописка
 
Регистрация: 01.08.2009
Сообщений: 142
Сказал спасибо: 6
Сказали Спасибо 38 раз(а) в 14 сообщении(ях)
arhimed486 на пути к лучшему
По умолчанию

Я с USB вообще бы связываться не советовал, по моему лучше будет LPT + COM (по крайней мере с софтом никаких проблем)
arhimed486 вне форума  
Непрочитано 03.08.2009, 21:51  
Nikopol
Вид на жительство
 
Аватар для Nikopol
 
Регистрация: 05.01.2007
Адрес: Украина, г. Макеевка
Сообщений: 408
Сказал спасибо: 229
Сказали Спасибо 62 раз(а) в 52 сообщении(ях)
Nikopol на пути к лучшему
По умолчанию

Не понимаю, зачем скорость передачи 12 Мбит/с? Если я не ошибаюсь то для передачи 4 Кбайта в сек необходимо скорость в 32 кбитс, ну пусть еще туда добавите конрольную сумму и еще какую ниибудь инфу, в любом случае 115200 достаточно будет с головой. Т.е. обычный com, ну а если Вы товарищ решили всеже только USB, то думаю FT232 Вам в помощь, да и у него скорость будет куда по выше чем 115200.
По поводу 2 потоков, то если я правильно понял, то у Вас один идет постоянно, а второй по сути должен сливатся на ПК один раз за определенный период. Тогда предлагаю сделать так. В момент очередной передачи второго потока, вы в паузы когда не передаете основной поток, вставляете сегменты второго, а когда передадите, то передаете признак конца. и того при скорости в 115200 Вы можете передать, грубо около 10 Кбайт, думаю за какой промежуток времени Вы сможете передать полностью второй поток, посчитаете сами. В общем думаю идея ясна. Удачи.
Nikopol вне форума  
Непрочитано 03.08.2009, 22:51  
vdlab
Гражданин KAZUS.RU
 
Аватар для vdlab
 
Регистрация: 17.07.2006
Адрес: PV.DP.UA
Сообщений: 620
Сказал спасибо: 3
Сказали Спасибо 60 раз(а) в 48 сообщении(ях)
vdlab на пути к лучшему
По умолчанию

ИМХО, если с разными потоками работают разные программы, то один UART им поделить между собой трудно будет, придется сильно исхитряться.
Цитата:
Я с USB вообще бы связываться не советовал, по моему лучше будет LPT + COM (по крайней мере с софтом никаких проблем)
Это почему лучше? Для программиста оно конечно да, гораздо проще, а вот для конечного пользователя все наоборот, к тому же, не забывайте, что эти интерфейсы уже вымерли в ноутбуках, и стремятся к вымиранию в десктопах.
__________________
Если ты читаешь это - значит тебе нечем заняться...
vdlab вне форума  
Непрочитано 03.08.2009, 22:59  
Nikopol
Вид на жительство
 
Аватар для Nikopol
 
Регистрация: 05.01.2007
Адрес: Украина, г. Макеевка
Сообщений: 408
Сказал спасибо: 229
Сказали Спасибо 62 раз(а) в 52 сообщении(ях)
Nikopol на пути к лучшему
По умолчанию

Абсолютно с Вами согласен, но автор темы не уточняет как будут эти данные обрабатыватся, поэтому и предложил. А вообще думаю, нужно немного конкретизировать. Но чистый COM или LPT однозначно нет.
Nikopol вне форума  
Непрочитано 03.08.2009, 23:55  
Aleksashka1
Прописка
 
Регистрация: 25.10.2008
Сообщений: 125
Сказал спасибо: 1
Сказали Спасибо 36 раз(а) в 26 сообщении(ях)
Aleksashka1 на пути к лучшему
По умолчанию

Сообщение от vdlab
Ну сделайте ... два ЮАРТа, например, или HID+mass storage, или ЮАРТ+свой драйвер, или...
Увы по скорости не проходят ни хид, ни виртуальный СОМ.... Это было первоначально,а когда посчитал время - понял что "невпишусь"

Сообщение от vdlab
На каком МК хотите делать?
AT90USD1287
Aleksashka1 вне форума  
Непрочитано 04.08.2009, 00:15  
vdlab
Гражданин KAZUS.RU
 
Аватар для vdlab
 
Регистрация: 17.07.2006
Адрес: PV.DP.UA
Сообщений: 620
Сказал спасибо: 3
Сказали Спасибо 60 раз(а) в 48 сообщении(ях)
vdlab на пути к лучшему
По умолчанию

Почему же не проходят? HID, насколько помню, позволяет передать до 64 кбит/сек., для первого, низкоскоростного потока хватит. В крайнем случае можно перейти на вирт. СОМ порт, там скорости побольше.
Все остальное время можно заниматься bulk передачей второго потока, вполне ИМХО для этого подходит mass storage класс - все равно эти данные где то хранятся.
Не знаю как у Атмела, не особо интересовался, у микрочипа на сайте есть множество аппнот по таким комбо-девайсам, вполне можно подсмотреть идею, как это реализовать.
__________________
Если ты читаешь это - значит тебе нечем заняться...
vdlab вне форума  
Непрочитано 04.08.2009, 00:17  
Aleksashka1
Прописка
 
Регистрация: 25.10.2008
Сообщений: 125
Сказал спасибо: 1
Сказали Спасибо 36 раз(а) в 26 сообщении(ях)
Aleksashka1 на пути к лучшему
По умолчанию

Сообщение от N_i_k_o_p_o_l
Не понимаю, зачем скорость передачи 12 Мбит/с?...
Скорость такая нужна для того чтобы "быстро" (важно)передать данные потока А (10 МБайт), а после завершения слива можно и на меньших скоростях.
Сообщение от N_i_k_o_p_o_l
думаю за какой промежуток времени Вы сможете передать полностью второй поток, посчитаете сами.
В описании про USB сказано, что хост обращается к периферии с интервалом 1 мс. Если длина пакета 256 байт,то время t=(10MBt/256)*1*exp-3=40,96 секунд. Другие (медленные) скоростя просто неприемлемы. Повторюсь скорость нужна для заливки потока А!!!

Сообщение от N_i_k_o_p_o_l
Удачи.
Премного благодарен, и Вам всех благ
Aleksashka1 вне форума  
Непрочитано 04.08.2009, 00:23  
vdlab
Гражданин KAZUS.RU
 
Аватар для vdlab
 
Регистрация: 17.07.2006
Адрес: PV.DP.UA
Сообщений: 620
Сказал спасибо: 3
Сказали Спасибо 60 раз(а) в 48 сообщении(ях)
vdlab на пути к лучшему
По умолчанию

Вы забываете про служебный трафик, а так же про время, необходимое МК на подготовку данных.
__________________
Если ты читаешь это - значит тебе нечем заняться...
vdlab вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сопряжение SD карты с микроконтроллером . ST_Senya Микроконтроллеры, АЦП, память и т.д 14 29.01.2010 20:39
сопряжение Sega Megadrive 2 с vga монитором kovza Видеотехника 10 27.12.2008 00:03
Нужна помощь - сопряжение датчика с компьютером SergunKo2 Измерительное оборудование 2 09.11.2008 15:47
[Решено] Сопряжение 7и сегменток с МК cz0 TTL и CMOS логика 24 25.09.2005 15:22


Часовой пояс GMT +4, время: 04:27.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot