USB - как става

7 отговора 0 прегледа
#1

USB - как става

Здравейте,
немога да разбера как функционира USB-порта къде се инсталира драйвера и от къде се стартира при включване на периферно устройство.
Благодаря ви предварително, до сега не съм се занимавал с това и смятам да си поиграя с USB-то

Отговор
в отговор на Timo #2

Re: USB - как става

Ако ми изпратиш лично съобщение с твой мейл, ще ти изпратя 8мБ изтеглени най-различни работи за USB. Теглил съм ги последните 1-2 години (български, руски, английски), но не ми е останало време да се занимавам с USB-то.
Е, ще разчитам да споделиш като се изучиш :)

Отговор
в отговор на NikB #3

Re: USB - как става

Като се изуча обещнавам
Мейла ми е [email protected]
Някой ако може да ми каже поне принципа на комуникация между програма и USB - усройство и *.inf файл дали е като AutoRun за USB-устройството
Питах чичо Google ама и той нищо не каза


Отговор
в отговор на Timo #4

Re: USB - как става

По принцип комуникацията по USB коренно се различава от тази по серийния порт например. Топологията на USB е звезда - в центъра имаш едно master устройство (компютъра). Всяко устройство, свързано на USB шината си има адрес, чрез който се осъществява комуникацията с него. Устройствата се характеризират с клас (reserved, audio, communications, human interface, monitor, physical interface, power, printer, storage, hub, vendor specific), Vendor ID, Test ID и Product ID. Те са записани в т. нар. дескриптор на устройството. При включване на устройство в USB порт този дескриптор се прочита и се зареждат подходящите драйвери. Те се инсталират чрез inf файл, но той не е като autorun.inf. Вътре се описва драйвера и за кое устройство е. Погледни си например в регистратурата на адрес HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB. Там имаш възли за т. нар. root hub (това е master устройството, което управлява комуникацията по USB) и възли с имена подобни на Vid_03f0&Pid_7804, които показват, че там са описани нещата за устройство с Vendor ID = 03F0 и Product ID = 7804.
Комуникацията с драйвера става с някакво API - той ти предоставя функции, които ти можеш да извикваш.
А за комуникацията по USB-то - има няколко режима на работа:
1. Control - изпращат се команди от master устройството към някое устройство и от него се връща информация (например прочитането на дескриптора на устройство при включването му).
2. Bulk - изпращат се малки пакети данни (8 - 64 байта), като не се гарантира латентност за устройството, т.е. не е ясно след колко време master-а ще го попита дали има данни за пращане.
3. Interrupt - като bulk, но устройството се е договорило с master-а за интервал от време (1 до 255 милисекунди), през който да бъде разпитвано.
4. Isochronous - той се ползва, когато има да се предават големи данни (например аудио или видео потоци). Те стават периодично, но не е гарантирано коректното получаване на пакетите.

Абе с прости думи казано - USB-то не е тривиална работа Имах голям мерак да се занимавам с него, ама нямам време за това.
На сайта им има доста добра информация за разработчици - и за хардуер и за софтуер. Като за начало можеш да прочетеш FAQ-а. Той ще ти даде малко яснота по някои въпроси. Прочети и [urlhttp://[линк]]USB in a Nutshell[/url] - само 30 странички е и е доста ясно обяснено за какво става въпрос. Някъде бях срещал и едно не лошо компонентче за делфи за работа с HID USB устройства.

Не знам дали ти стана по-ясно. Май бая объркано се изразявам днеска
Дано съм ти бил от полза с нещо.

Отговор
в отговор на andrew_nikoloff #5

Re: USB - как става

Стана ми ясно, точно това ме интересуваше. С две думи USB - добре за ползватела и гадно за програмиста. Ще си поиграя ей така от спортна злоба

Отговор
в отговор на andrew_nikoloff #6

Re: USB - как става

andrew може би има впредвид тази компонента

Отговор
в отговор на nettle #7

Re: USB - как става

Да, компонента е добър, остана да го разуча

Отговор