|
alx25v: простыми методами с USB устройства не получить UART нужен USB HOST в качестве моста. USB to UART это устройство, а не хаб в терминологии USB. Кто сказал, что используем веб-камеру, как USB устройство? Заблуждение состоит в том, что видя шнурок с разъёмом USB, мы воспринимает его, как законченное USB устройство. Отрежьте этот разъём, чтобы он не вводил Вас в заблуждение, и посмотрите теперь с другой стороны. Давайте посмотрим структуру камеры, так называемой UART: Модуль применяемой камеры ITC328 состоит из VGA (640x480) датчик цвета CMOS и чип JPEG-сжатия. Драйвер сжатия включает последовательный интерфейс в 3.3V уровни, которые могут быть связаны непосредственно с UART микроконтролёра. Какие цепи подключения имеет этот модуль? +3,3в/Тх/Rx/Rx/GND А теперь, отрезав шнурок (чтобы не смущал), рассмотрите структуру веб-камеры: Современная web-камера представляет собой цифровое устройство, производящее видеосъемку, оцифровку, сжатие и передачу по компьютерной сети видеоизображения. Поэтому в состав web-камеры входят следующие компоненты: - ПЗС-матрица - объектив - оптический фильтр - плата видеозахвата - блок компрессии (сжатия) видеоизображения - центральный процессор и встроенный web-сервер - ОЗУ - флэш-память - сетевой интерфейс - последовательные порты - тревожные входы/выходы Очень часто вместо стандартных CCD-матриц для видеонаблюдения используются более дешевые CMOS-сенсоры. Хотя они имеют более низкую чувствительность и не слишком хорошую цветопередачу, их использование позволяет сильно удешевить устройство, поскольку эти сенсоры представляют собой «все в одной микросхеме» с цифровым выходом данных. В состав сетевой камеры входит микропроцессор для компрессии видео и детектирования движения (или просто микросхема компрессора). Наиболее популярен JPEG, как самый простой и дешевый; достаточно часто используется также MPEG4, наиболее редким и дорогим является MPEG2. Типичная web-камера содержит объектив, оптический фильтр, ПЗС-матрицу, схему цифровой обработки изображения, схему компрессии изображения, и web сервер для подключения к сети. Веб-камера имеет цепи подключения: +5в/D+/D-/GND.
Справедливости ради, нужно отметить, что более дорогие и навороченные камеры, предназначенные ДЛЯ ВИДЕОЗАПИСИ, имеют в структуре процессора встроенный USB интерфейс. А более простые камеры управляются USB хост контролёром, встроенным в материнку ПК. UART – это асинхронный универсальный приёмо/передатчик, заметьте – последовательный интерфейс, работающий с уровнем 3,3в и двунаправленными линиями обмена данных: Tx (RXD – PD0) input Data -> Data – (D-) -> вход (ввод данных), Rx (TXD – PD1) output Data -> Data+ (D+) -> выход (вывод данных). Это средство согласования темпа передачи данных с возможностями приемника. Хотя битовые скорости Tx и Rx должны совпадать, возможны ситуации, когда Tx передает в темпе, неприемлемом для Rx. Тогда буфера Rx переполняются и часть передаваемой информации теряется. Средства управления потоком позволяют Rx подать Tx сигнал на приостановку или продолжение передачи данных. На верхних протокольных уровнях контроль потока реализуется методом квитирования - посылки уведомления Rx о получении данных. На каждый принятый кадр Rx отвечает коротким кадром подтверждения. Это и есть уведомление о получении кадра. Если кадр принят корректно, посылается положительное подтверждение ACK. При получении ошибочного кадра посылается отрицательное подтверждение NACK. В ответ на него, Tx посылает "плохой" кадр повторно. При отсутствии подтверждения в течение определенного времени (timeout), Tx также делает повторную передачу, но на ожидании теряется время. На протокольном уровне схема приема подтверждения может быть разной, (например, TXD, RXD). Интерфейс RS-232C обеспечивает два независимых последовательных канала данных: первичный (главный) и вторичный (вспомогательный). Оба канала могут работать в дуплексном режиме, т.е. одновременно осуществляют передачу и прием информации. P.S. D+ и D- тоже двунаправленные линии и передача по двум проводам в USB не ограничивается дифференциальными сигналами. Кроме дифференциального приемника каждое устройство имеет линейные приемники сигналов D+ и D-, а передатчики этих линий управляются индивидуально. Это позволяет различать более двух состояний линии, используемых для организации аппаратного интерфейса. Состояние, при котором разность потенциалов на линиях D+ и D- составляет более 200 мВ при условии, что на одной из линий потенциал выше порога срабатывания, называются состоянием Diff0 или Diff1. Состояние, при котором на обоих входах D+ и D- присутствует низкий уровень, называется линейным нулем SEO (Single Ended Zero). Все передачи данных по интерфейсуUSB инициируются хостом. Данные передаются в виде пакетов. В стадии передачи данных управляющие пересылки содержат одну или несколько IN- или OUT-транзакций, принцип передачи которых такой же, как и в потоковых пересылках. Все транзакции в стадии передачи данных должны производиться в одном направлении. В связи с тем, что в интерфейсе USB реализован сложный протокол обмена информацией, в устройстве сопряжения с интерфейсом USB необходим микропроцессорный блок, обеспечивающий поддержку протокола. Поэтому основным вариантом при разработке устройства сопряжения является применение микроконтроллера, который будет обеспечивать поддержку протокола обмена. В настоящее время все основные производители микроконтроллеров выпускают продукцию, имеющую в своем составе блок USB ,например фирма Atmel производит контроллёр AT43355 на ядре AVR. Имеет встроенные USB-функцию и хаб с 2 внешними нисходящими портами, работающие в LS/FS-режимах, 1 кбайт ОЗУ, 24 кбайт ПЗУ, 32х8 регистров общего назначения, 27 программируемых выводов, последовательный и SPI-интерфейсы, 12-канальный 10-разрядный АЦП. Функция имеет 1 управлющую КТ и 3 программируемых КТ с буферами FIFO размером 64/64/8 байт. P.S. Если посмотреть всю эволюцию развития интерфейсов, то она в основном сводится к увеличению скорости передачи данных. Вот например в USB 3.0 линии передачи данных уже разделены:
Вот, что пишет итальянец по поводу применения выбранной камеры: «Драйвер сжатия включает последовательный интерфейс в 3.3V уровни, которые могут быть связаны непосредственно с UART микроконтролёра. Выдавая соответствующие команды, Вы можете взять снимки как JPEG-сжатые потоки байта. Камера входит в удобный модуль со всем, включая линзу, и соединитель с 4 полюсами для питания и данных. Регистратор управляет драйвером камеры (другой программный модуль), чтобы получить поток байта JPEG. Модуль камеры (Интертек ITCM328) соединяется с коннектором UART RX и pin TX. Коммуникация достигает 115200 бодов, таким образом я выбрал кристалл на 7.3728 МГц для точной тактовой синхронизации. Не заменяйте это более общим 8MHz, поскольку модуль камеры придирчив к скоростям двоичной передачи. Уникальная особенность модели, отобранной для этого проекта - способность послать изображения в JPG сжатой форме». (прошу извинить за корявый перевод ) А разве веб-камера не те же функции выполняет? Сжатие она обеспечивает. JPEG’ом называется не формат, а алгоритм сжатия, основанный не на поиске одинаковых элементов, как в RLE и LZW, а на разнице между пикселами. P.S. И кстати, насколько я вспоминаю, на плате того хлама, что я купил на барахолке, возле контактного разъёма было написано: Vcc, Tx/D-, Rx/D+, GND. Вот почему я её смело воткнул в схему. Но, возможно понадобится согласование уровней. Кстати, когда я вёл переписку с итальянцем, то он мне сказал, что применил эту камеру потому, что она была у него в наличии, а о применении веб-камеры он не думал, но вопрос интересный и про согласование уровней он тоже отметил, хотя, как он сказал, надо пробовать, возможно и не понадобится. И ещё его заинтересовал этот вариант потому, что по UART ограничена длина кабеля. А так же он изъявил желание приехать в Санкт-Петербург, т.к. ни разу не был. Я ему предложил выслать приглашение, но на этом всё и заглохло, а жаль поэкспериментировали бы. Так, что не надо рассматривать веб-камеру, как законченное устройство USB. Надо смотреть на процессор камеры. Я полагаю, что более древние и простые камеры не содержат в себе USB интерфейса и управляются USB хост контролёром ПК. Иначе говоря, надо подбирать. Shoolia, что касается программирования, то итальянец свободно выложил исходники для скачивания. На крайний случай можно поставить адаптер USB – UART, а заверения , что не подойдёт такой вариант – фигня, подойдёт. Например, по этой схеме, а вообще их много в интернете:
Посмотрите здесь, правда на немецком: http://www.ulrichradig.de/ Интересные проекты у мужика: 1. USB -> RS232_TTL 2. Интересное подключение камеры Филипс, и протокол к ней - µC Kamera 1 (DC3840) 3. Вот вариант подключения веб-камеры - µC Kamera 2 (MCA-25) 4. Вот веб камера тоже на меге32 - http://avr.auctionant.de/avr-ip-webcam/index.html Если надо коды на UART камеру можно посмотреть здесь: http://zalil.ru/30945521 В интернете есть ещё варианты использования цифрового фотоаппарата в качестве веб-камеры и камеры наблюдения. P.S. Для некоторых индивидуумов, которые нахватались вершков и ржут над своей не грамотностью. Любой «чайник» начинающий познавать ПК, прежде всего читает терминологию, что такое интерфейс, консоль, браузер и т.д. и т.п. , так что меня экзаменовать не надо. Надо задавать грамотно вопросы – интерфейсы разные бывают, в т.ч. и программный. А свои возражения надо грамотно аргументировать. И напоследок. Что касается написания или корректировки программ, то тут честно признаюсь, - туго соображаю и спорить по протоколам и кодам не буду. Так, что по поводу протоколов, кодов могу глубоко ошибаться.
|
|