Разработка программы для управления внешними устройствами с помощью звукового адаптера персонального компьютера

Автор работы: Пользователь скрыл имя, 25 Ноября 2011 в 07:49, курсовая работа

Краткое описание

Целью моей работы является программирование в среде Windows XP АЦП и ЦАП стандартного звукового адаптера. Обе задачи реализуются на языке Borland Delphi 7.0 Enterprise в одной программе, алгоритмы и блоки которой в дальнейшем могут быть использованы в качестве основы для написания программы цифрового осциллографа либо обмена данными между ПК и радиотехническим прибором.

Содержание работы

Введение………………………………………………………………...2
Краткие сведения об устройстве звукового адаптера………….…3
Основные понятия и возможности звукового интерфейса………5
Потоковая модель…………………...…………………………………………....5
Звуковой буфер……………………………………………………………………5
Синхронные и асинхронные устройства……………………………………....6
Полу- и полнодуплексные звуковые устройства……………………………...6
Уведомление о завершении обработки буфера………………………………..7
Подготовка буферов……………………………………………………………..7
Способы кодирования цифрового звука……………………………………….7
Формат потока…………………………………………………………………...8
Структура потока………………………………………………………………..9
Паузы, сброс и зацикливание………………………………………………….10
Поддержка нескольких процессов…………………………………………....10
Служба переназначения устройств и форматов………………………………11
Номера звуковых устройств…………………………………………………...11
Идентификаторы (ключи) открытых устройств……………………………...12
Низкоуровневое программирование звука в Windows……………………..13
Общая схема взаимодействия программы и звуковой подсистемы……...14
Структуры, используемые в звуковом интерфейсе………………………...16
Структура WAVEFORMATEX………………………………………………..16
Структуры WAVEINCAPS и WAVEOUTCAPS………………………….….18
Структура WAVEHDR………………………………………………………...19
Заключение…………………………………………………………………...….21

Содержимое работы - 1 файл

1т.doc

— 103.00 Кб (Скачать файл)

Федеральное агентство по образованию

ГОУ ВПО  “Кемеровский Государственный Университет”

Физический  факультет

Кафедра экспериментальной физики 
 
 
 
 
 
 
 
 
 
 
 
 

КУРСОВАЯ  РАБОТА 

Тема: “Разработка программы  для управления внешними устройствами с помощью звукового адаптера персонального компьютера” 
 
 
 
 
 
 
 
 

Выполнил:  

Научный руководитель: 
 
 
 
 
 
 
 
 
 
 
 
 
 

Кемерово 2005

     Содержание 

     Введение………………………………………………………………...2

     Краткие сведения об устройстве звукового адаптера………….…3

     Основные  понятия и возможности  звукового интерфейса………5

     Потоковая модель…………………...…………………………………………....5

     Звуковой  буфер……………………………………………………………………5

         Синхронные и асинхронные устройства……………………………………....6

         Полу- и полнодуплексные звуковые  устройства……………………………...6

         Уведомление о завершении обработки буфера………………………………..7

         Подготовка буферов……………………………………………………………..7

         Способы кодирования цифрового  звука……………………………………….7

         Формат потока…………………………………………………………………...8

         Структура потока………………………………………………………………..9

         Паузы, сброс и зацикливание………………………………………………….10

         Поддержка нескольких процессов…………………………………………....10

        Служба переназначения устройств  и форматов………………………………11

         Номера звуковых устройств…………………………………………………...11

         Идентификаторы (ключи) открытых  устройств……………………………...12

     Низкоуровневое  программирование звука  в Windows……………………..13

     Общая схема взаимодействия программы и звуковой подсистемы……...14

     Структуры, используемые в звуковом интерфейсе………………………...16

         Структура WAVEFORMATEX………………………………………………..16

         Структуры WAVEINCAPS и WAVEOUTCAPS………………………….….18

         Структура WAVEHDR………………………………………………………...19

      Заключение…………………………………………………………………...….21 
 
 
 
 

    Введение

    В последнее время наблюдаются  тенденции к внедрению информационных технологий к широкому применению персональных компьютеров в различных сферах деятельности человека. Одной из таких сфер является радиоэлектроника. Характеристики персональных компьютеров по обработке информации достаточно высоки, поэтому они предоставляют широкие возможности их использования. Возможна автоматизация экспериментальных работ с использованием ПК (примером может служить снятие характеристик различных радиоэлектронных компонентов).

    Программы и приспособления для такого рода использования ПК уже существуют, но они недоступны широкому кругу  пользователей вследствие своей дороговизны. Она образуется из-за применения в этих устройствах сложных (и, как следствие, дорогих) контроллеров, содержащих в себе аналого-цифровые (АЦП) и цифро-аналоговые преобразователи (ЦАП). Например, цифровой измерительный комплекс, способный работать в качестве осциллографа и построить вольтамперную характеристику, в дополнение к которому нужен еще и ПК, оценивается в $350, а за осциллограф, способный построить вольтамперную характеристику (и больше ничего!) придется заплатить как минимум $1000.

    Альтернатива  этому - использование возможностей звуковой карты, в которой есть свои АЦП и ЦАП. Применять звуковую карту можно в тех случаях, когда частотный диапазон звуковой карты удовлетворяет условиям эксперимента. Примеры: построение вольтамперных (ВАХ) и амплитудно-частотных характеристик (АЧХ), изучение зависимости коэффициента усиления транзистора от тока коллектора, и т. п.

    Целью моей работы является программирование в среде Windows XP АЦП и ЦАП стандартного звукового адаптера. Обе задачи реализуются на языке Borland Delphi 7.0 Enterprise в одной программе, алгоритмы и блоки которой в дальнейшем могут быть использованы в качестве основы для написания программы цифрового осциллографа либо обмена данными между ПК и радиотехническим прибором.

    Краткие сведения об устройстве звукового адаптера

    Типовой звуковой адаптер содержит стереофонические АЦП и ЦАП (аналого-цифровой и  цифро-аналоговый преобразователи), микшер и управляющий цифровой процессор DSP (Digital Signal Processor), координирующий работу всех узлов адаптера.

    Микшер  расположен в аналоговой части адаптера. В его задачу входят: регулировка  входных уровней различных источников звука - микрофона, линейного входа, компакт-диска, модема и т.п., сведение всех источников в единый звуковой сигнал, поступающий на АЦП, а также регулировка выходного сигнала адаптера, снимаемого с ЦАП.

    В режиме записи схема АЦП через  равные интервалы времени опрашивает входной сигнал и формирует последовательность мгновенных значений амплитуды, называемых отсчетами. В зависимости от заданного режима, разрядность отсчета (sample width) может быть разной: 8 или 16 бит — для простых адаптеров и от 18 до 24 - для сложных и качественных. Чем больше разрядность отсчета, тем выше точность цифрового представления сигнала и ниже уровень шумов и помех, вносимых АЦП при оцифровке.

    Частота, с которой АЦП опрашивает входной  сигнал, называется частотой дискретизации (sample rate). Для точного цифрового представления сигнала частота дискретизации должна быть как минимум вдвое выше максимальной частоты сигнала; на практике обычно выбирается небольшой запас для компенсации погрешностей. Например, для представления сигналов с полосой частот до 10 кГц выбирается частота около 22 кГц.

    Последовательность  отсчетов, сформированная АЦП, передается управляющим процессором в основную память компьютера при помощи внепроцессорного доступа к памяти (DMA - на шине ISA, Bus Mastering - на шине PCI). После заполнения части (обычно половины) выделенной для обмена области памяти адаптер подает сигнал аппаратного прерывания, по которому драйвер адаптера извлекает накопленные в памяти данные и переносит их в буфер программы, которая запросила запись звука. После заполнения буфера программы драйвер подает ей программный сигнал, по которому программа переносит данные в нужное ей место: в другую область памяти для обработки, на диск, отображает на экране и т.п.

    При воспроизведении звука происходит обратный процесс: программа записывает последовательность звуковых отсчетов в буфер и передает его драйверу, который по частям переносит данные в область памяти для DMA. Управляющий процессор адаптера последовательно извлекает из памяти отсчеты и направляет их на ЦАП, где они преобразуются в обычный электрический звуковой сигнал, который, пройдя через регуляторы микшера, попадает на выходной разъем адаптера.

    Для удобства буфер обмена между процессором  и звуковым адаптером делается циклическим (кольцевым). Это означает, что пока одна сторона (адаптер или ЦП) ведет  запись первой половины буфера, другая сторона должна успеть прочитать данные из второй половины, и наоборот. Если быстродействия ЦП или драйвера не хватает, или нарушается правильная работа системы аппаратных прерываний, то записываемый звук теряется, а воспроизводимый — зацикливается. Зацикливание короткого фрагмента воспроизводимого звука — типичный признак неверного выбора линии прерывания для адаптера или неисправности в системе прерываний.

    Как правило, звуковая карта имеет два сдвоенных (стереофонических) входа и два таких же выхода. Первый (линейный) вход рассчитан на входные сигналы с амплитудой около 1 В, второй - микрофонный, для более слабых сигналов. При использовании звуковой карты в качестве аналого-цифрового преобразователя можно использовать любой из этих входов - в зависимости от уровня обрабатываемого сигнала

Основные  понятия и возможности звукового интерфейса

    Потоковая модель

    Взаимодействие  приложения с драйвером организуется в виде взаимного обмена потоками звуковых данных в реальном времени. От устройства ввода к приложению идет непрерывный поток записанного звука, от приложения к устройству вывода - непрерывный поток воспроизводимого. Приложение должно успевать принимать записываемый поток и формировать воспроизводимый, иначе в звуковых потоках возникают выпадения и помехи.

    Звуковой буфер

    Звуковой  буфер служит для переноса потоков  между приложением и звуковым драйвером. Он представляет собой область  памяти, в которой хранится небольшой  фрагмент потока длительностью в  десятки-сотни миллисекунд. Звуковые буферы создаются приложением и затем передаются драйверу: пустые - для устройств ввода, заполненные звуковыми данными - для устройств вывода. Драйвер ставит полученные буферы в очередь в порядке поступления; воспроизведение или запись данных ведется с начала очереди.

    После завершения обработки каждого очередного буфера драйвер возвращает его приложению. С этого момента буфер доступен для повторного использования: он может быть заполнен новыми данными и снова передан этому же или другому звуковому устройству для постановки в очередь. Таким образом, между драйвером и приложением происходит циклическое “вращение” буферов, в которых переносятся звуковые потоки.

    Для каждого звукового буфера приложением  также создается заголовок (header) - структура-описатель, куда заносятся параметры буфера и режимы его обработки. Обмен буферами между приложением и драйвером происходит в виде обмена указателями их заголовков.

    Если  к моменту завершения обработки  буфера устройства вывода в очереди  не имеется следующего буфера, то в  выходном звуковом сигнале возникает пауза, но вывод потока не прерывается. Если программа не успевает передать драйверу очередной буфер для устройства записи, то фрагмент сигнала теряется.

    Синхронные  и асинхронные  устройства

    Звуковые  устройства делятся на синхронные и  асинхронные. Синхронному устройству для выполнения операций записи/воспроизведения требуются все ресурсы центрального процессора. Драйвер такого устройства, получив очередной буфер, не возвращает управления до тех пор, пока буфер не будет заполнен или проигран. В очереди драйвера синхронного устройства может находиться только один звуковой буфер.

    Асинхронное устройство работает независимо от центрального процессора, обрабатывая данные в  выделенной области памяти и лишь изредка (один раз в несколько  десятков миллисекунд) сообщая драйверу о завершении обработки очередного фрагмента потока. Драйвер асинхронного устройства возвращает управление сразу же после получения очередного буфера, и в его очереди может находиться сколь угодно большое количество буферов.

    Полу- и полнодуплексные звуковые устройства

    Звуковые  адаптеры, способные одновременно записывать и воспроизводить различные звуковые потоки, называются полнодуплексными (full duplex). Соответствующие устройства ввода и вывода в Windows могут быть открыты и использованы одновременно, и при этом встречные потоки никак не влияют друг на друга.

    Адаптеры, способные в каждый момент времени  работать только в одном режиме (либо на запись, либо на воспроизведение), называются полудуплексными (half duplex). Из соответствующей пары устройств в Windows одновременно может быть открыто только одно — либо устройство ввода, либо устройство вывода. При попытке открытия второго устройства возвращается ошибка “устройство занято”.

    Некоторые адаптеры обладают возможностью ограниченной полнодуплексной работы, например: только в монофоническом режиме (ряд адаптеров на микросхемах ESS), только в восьмиразрядном режиме (большинство моделей Sound Blaster 16, AWE32, SB 32, AWE64) и т.п. В остальных режимах такие адаптеры работают только в полудуплексе.

Информация о работе Разработка программы для управления внешними устройствами с помощью звукового адаптера персонального компьютера