Hard: External USB 2.0 Audio Controller with support Virtual 5.1-Surround and 3D (Ac-3) Sound Track (HY554).
Заметил давеча на полке, среди мелкого барахлишка, в магазине "Модерн Компьютер" (РК, Павлодар, Академика Сатпаева, 27-12; +7 (7182) 78-10-31) штуковину зеленоватого цвета, в два раза короче моего мизинца, называющую себя "звуковой картой" и заявляющую о следующих возможностях:
USB 2.0 data interface;
Powered directly by USB, no other power source required;
Features 3.5mm stereo earphone and microphoine jacks;
Supports Window 98SE/ME/2000/XP/2003/Vista/Linux/Mac OS;
Driver-free installation when used with modern Operating Systems;
Virtual surround 5.1 DSP processor.
Powered directly by USB, no other power source required;
Features 3.5mm stereo earphone and microphoine jacks;
Supports Window 98SE/ME/2000/XP/2003/Vista/Linux/Mac OS;
Driver-free installation when used with modern Operating Systems;
Virtual surround 5.1 DSP processor.
External USB 2.0 Audio Controller HY554: Вид с торца.
External USB 2.0 Audio Controller HY554: Вид сверху.
External USB 2.0 Audio Controller HY554: Вид снизу.
По первым трём пунктам всё очевидно; то, что это USB - ясно, по нашим временам делать что-то на USB 1.1 было бы странно, ещё более странным было бы для столь мелкого устройства привлекать сторонние источники электрического питания. Не заметить два разъёма для подключения стерео входа и выхода, опять-же, трудновато.
А вот дальше шло уже интересненькое. Во первых, как в столь мелкое устройство умудрились всунуть совместимость со всем, что гудит и реагирует на нажатие кнопок, да ещё и обеспечили инсталляцию без сторонних драйверов? Во вторых, припомним, какого размера были звуковые адаптеры ещё пятёрку-десятку лет назад, даже не обладающие никакими иными возможностями, кроме выноса звука из корпуса компьютера во внешнюю среду? - и что мы видим сейчас? Три разъёма, зажатая между ними мелкая платка, с тремя электролитическими конденсаторами, прячущими под собой крохотную капельку микросхемы. Где там чудо, делающее то, что должно? После нескольких лет работы с громко ревущими и греющимися устройствами, вроде тракторов Т-150 и серверов HP Proliant на два-четыре "юнита", с компонентами по два-три килограмма, я просто не смог отойти от штучки весом в "0.67 oz", не проверив её в действии.
Чего разговоры говорить, втыкаем штучку в USB разъём моего ноутбука:
# dmesg
....
usb 4-2: new full speed USB device using uhci_hcd and address 2
usb 4-2: New USB device found, idVendor=0c76, idProduct=1607
usb 4-2: New USB device strings: Mfr=0, Product=1, SerialNumber=0
usb 4-2: Product: USB Headphone Set
usb 4-2: configuration #1 chosen from 1 choice
input: USB Headphone Set as /devices/pci0000:00/0000:00:1d.2/usb4/4-2/4-2:1.3/input/input10
generic-usb 0003:0C76:1607.0002: input,hidraw1: USB HID v1.00 Device [USB Headphone Set] on usb-0000:00:1d.2-2/input3
usbcore: registered new interface driver snd-usb-audio
....
usb 4-2: new full speed USB device using uhci_hcd and address 2
usb 4-2: New USB device found, idVendor=0c76, idProduct=1607
usb 4-2: New USB device strings: Mfr=0, Product=1, SerialNumber=0
usb 4-2: Product: USB Headphone Set
usb 4-2: configuration #1 chosen from 1 choice
input: USB Headphone Set as /devices/pci0000:00/0000:00:1d.2/usb4/4-2/4-2:1.3/input/input10
generic-usb 0003:0C76:1607.0002: input,hidraw1: USB HID v1.00 Device [USB Headphone Set] on usb-0000:00:1d.2-2/input3
usbcore: registered new interface driver snd-usb-audio
....
Эра переосмысления понятия расходного материала, теперь даже у вполне себе полноценных устройствах нет серийного номера. Зачем? Попользовался и выкинул. Зато есть идентификаторы производителя и серии продукта: "idVendor=0c76, idProduct=1607". Сразу скажу, я лопатил выдачу поисковиков в течении половины рабочего дня, выискивая "datasheet" устройства - ничего не нашёл. Видимо используемая микросхема достаточно свежая, чтобы схемотехника ещё не разошлась по рукам.
Сразу проверяю, не опознала ли операционная система, как было обещано, в автоматическом режиме, звуковое устройство:
# cat /proc/asound/cards
0 [Intel ]: HDA-Intel - HDA Intel
HDA Intel at 0xe8580000 irq 21
1 [Set ]: USB-Audio - USB Headphone Set
USB Headphone Set at usb-0000:00:1d.2-2, full speed
HDA Intel at 0xe8580000 irq 21
1 [Set ]: USB-Audio - USB Headphone Set
USB Headphone Set at usb-0000:00:1d.2-2, full speed
Опознало. Смотрим, что оно может:
# cat /proc/asound/pcm
00-00: AD198x Analog : AD198x Analog : playback 1 : capture 1
00-06: Si3054 Modem : Si3054 Modem : playback 1 : capture 1
01-00: USB Audio : USB Audio : playback 1 : capture 1
00-06: Si3054 Modem : Si3054 Modem : playback 1 : capture 1
01-00: USB Audio : USB Audio : playback 1 : capture 1
Хм, и воспроизводить звуковой поток может и принимать его. Пока не врут, однако. На всякий случай перезапускаю звуковую подсистему:
# alsa reload
Утилита конфигурирования звуковых устройств видит и может управлять новым интерфейсом:
$ alsamixer => F6
Поднастраиваем уровни громкости и убеждаемся в том, что устройство звучит:
$ mplayer -ao alsa:noblock:device=hw=1.0 /path-to-file.mp3
В моём случае Alsa припарковало устройство на идентификатор "hw:1,0". Теперь любое приложение, использующее Alsa для воспроизведения и приёма звукового потока сможет работать с картой. Я попробовал VLC, MPlayer, Clementine, Audacity и Skype - всё просто работает.
Ладно, работает себе и работает, а вот почему? Покопался в теме и выяснил, что USB - это не просто проводной интерфейс, а целая подсистема абстракций, регламентирующая методы взаимодействия устройств, чётко их классифицируя. Для установления взаимопонимания между устройствами по USB интерфейсу существует многоуровневая система идентификации, называемая "class device". Одно USB устройство может нести разнообразный функционал, идентифицируемый определёнными классами, для которых чётко описаны методы взаимодействия. Система классов не "плоская", функционал разбивается на блоки, каждый их которых описывается своим подклассом.
Так вот, для устройств "USB Audio" все основные методы взаимодействия давно уже определены, прослойка абстракций USB всех распространённых операционных систем их поддерживают и производители, следующие стандарту, могут выпускать буквально "driverless device", устройства, не нуждающиеся в сопровождении их специфичными драйверами.
Хорошо, система всё понимает, значит и мы можем по ответу устройства оценить его возможности:
# lsusb --verbose
....
Device Descriptor:
....
# Похоже на то, что реклама малость соврала - устройство USB 1.1
bcdUSB 1.10
....
# Глубоко раскрывающее суть устройства название
iProduct 1 USB Headphone Set
....
Configuration Descriptor:
....
# Всего активно четыре интерфейса взаимодействия с устройством
bNumInterfaces 4
....
# Первый интерфейс - предназначен для управления устройством
Interface Descriptor:
....
bInterfaceNumber 0
....
bInterfaceClass 1 Audio
bInterfaceSubClass 1 Control Device
....
# Мы можем управлять двухканальным выходом
AudioControl Interface Descriptor:
....
wTerminalType 0x0101 USB Streaming
....
bNrChannels 2
wChannelConfig 0x0003
Left Front (L)
Right Front (R)
....
# Мы можем управлять одноканальным микрофонным входом
AudioControl Interface Descriptor:
....
wTerminalType 0x0201 Microphone
....
bNrChannels 1
wChannelConfig 0x0001
Left Front (L)
....
# Конкретно для двухканального выхода мы можем управлять индивидуальным уровнем звука и общим включением/выключением
AudioControl Interface Descriptor:
....
bmaControls( 0) 0x01
Mute
bmaControls( 1) 0x02
Volume
bmaControls( 2) 0x02
Volume
....
# Для одноканального микрофонного входа мы можем управлять уровнем звука, включением/выключением микрофонного входа и активацией/деактивацией режима автоматической адаптации уровня звука
AudioControl Interface Descriptor:
....
bmaControls( 0) 0x43
Mute
Volume
Automatic Gain
....
# Здесь описаны возможности интерфейса двухканального выхода
Interface Descriptor:
....
bInterfaceNumber 1
....
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
....
AudioStreaming Interface Descriptor:
....
bDelay 1 frames
wFormatTag 1 PCM
....
bNrChannels 2
bSubframeSize 2
bBitResolution 16
bSamFreqType 1 Discrete
tSamFreq[ 0] 48000
....
# Здесь описаны возможности интерфейса одноканального входа
Interface Descriptor:
....
bInterfaceNumber 2
....
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
....
AudioStreaming Interface Descriptor:
....
bDelay 1 frames
wFormatTag 1 PCM
AudioStreaming Interface Descriptor:
....
bNrChannels 1
bSubframeSize 2
bBitResolution 16
bSamFreqType 1 Discrete
tSamFreq[ 0] 48000
....
# А здесь заявлена поддержка контроллером подключения пульта управления (только вот она не активна, если я верно понял)
Interface Descriptor:
....
bInterfaceNumber 3
....
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0 No Subclass
....
Device Descriptor:
....
# Похоже на то, что реклама малость соврала - устройство USB 1.1
bcdUSB 1.10
....
# Глубоко раскрывающее суть устройства название
iProduct 1 USB Headphone Set
....
Configuration Descriptor:
....
# Всего активно четыре интерфейса взаимодействия с устройством
bNumInterfaces 4
....
# Первый интерфейс - предназначен для управления устройством
Interface Descriptor:
....
bInterfaceNumber 0
....
bInterfaceClass 1 Audio
bInterfaceSubClass 1 Control Device
....
# Мы можем управлять двухканальным выходом
AudioControl Interface Descriptor:
....
wTerminalType 0x0101 USB Streaming
....
bNrChannels 2
wChannelConfig 0x0003
Left Front (L)
Right Front (R)
....
# Мы можем управлять одноканальным микрофонным входом
AudioControl Interface Descriptor:
....
wTerminalType 0x0201 Microphone
....
bNrChannels 1
wChannelConfig 0x0001
Left Front (L)
....
# Конкретно для двухканального выхода мы можем управлять индивидуальным уровнем звука и общим включением/выключением
AudioControl Interface Descriptor:
....
bmaControls( 0) 0x01
Mute
bmaControls( 1) 0x02
Volume
bmaControls( 2) 0x02
Volume
....
# Для одноканального микрофонного входа мы можем управлять уровнем звука, включением/выключением микрофонного входа и активацией/деактивацией режима автоматической адаптации уровня звука
AudioControl Interface Descriptor:
....
bmaControls( 0) 0x43
Mute
Volume
Automatic Gain
....
# Здесь описаны возможности интерфейса двухканального выхода
Interface Descriptor:
....
bInterfaceNumber 1
....
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
....
AudioStreaming Interface Descriptor:
....
bDelay 1 frames
wFormatTag 1 PCM
....
bNrChannels 2
bSubframeSize 2
bBitResolution 16
bSamFreqType 1 Discrete
tSamFreq[ 0] 48000
....
# Здесь описаны возможности интерфейса одноканального входа
Interface Descriptor:
....
bInterfaceNumber 2
....
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
....
AudioStreaming Interface Descriptor:
....
bDelay 1 frames
wFormatTag 1 PCM
AudioStreaming Interface Descriptor:
....
bNrChannels 1
bSubframeSize 2
bBitResolution 16
bSamFreqType 1 Discrete
tSamFreq[ 0] 48000
....
# А здесь заявлена поддержка контроллером подключения пульта управления (только вот она не активна, если я верно понял)
Interface Descriptor:
....
bInterfaceNumber 3
....
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0 No Subclass
....
Итак, после беглого изучения устройства, оформилось следующее о нём представление:
Штучка является простейшим из возможных цифро-аналоговым преобразователем средней части диапазона воспринимаемых человеческим ухом звуковых частот с минимально достаточным набором средств управления;
Богатством поддерживаемых цифровых частот и глубин не блещет, но для абсолютного большинства задач исполняемых персональным компьютером имеющегося хватает более чем;
С нагрузкой низшего потребительского класса (колонки, наушники), имеющей сопротивление от 30 до 300 Ом обеспечивает звучание, в котором на слух вполне можно выделить верхние, средние и низкие частоты.
Богатством поддерживаемых цифровых частот и глубин не блещет, но для абсолютного большинства задач исполняемых персональным компьютером имеющегося хватает более чем;
С нагрузкой низшего потребительского класса (колонки, наушники), имеющей сопротивление от 30 до 300 Ом обеспечивает звучание, в котором на слух вполне можно выделить верхние, средние и низкие частоты.
В общем, для просмотра тайком на рабочем месте фильмов, разговоров по Skype и тому подобных задач устройство отлично подходит. Следует только подключать его через удлинитель, чтобы спрятать мигающий раз в две секунды ярко красный индикатор, расположенный на передней стороне плате. Так-же, нужно ещё иметь в виду, что с устройством не стоит сопрягать наушники с реально широким частотным диапазоном воспроизведения, так как устройство "шумит" на низкой частоте (подозреваю, что это помехи от мигающего индикатора; в наушниках появляется тихий плавающий "нойс", типа того, что в дальнобойной рации бывает, статика дальних миров - прикольно, будто буржуйское "Радио Свобода" в восьмидесятые слушаешь).
5 ноября 2011 в 18:31
5 ноября 2011 в 19:39
7 ноября 2011 в 21:40
7 ноября 2011 в 21:48
8 ноября 2011 в 09:51
8 ноября 2011 в 13:18