Самодельный USB-Осциллограф

E-mail Печать PDF

Самодельный USB-Осциллограф

Разработанный  программно-аппаратный комплекс (рис. 1) имеет аппаратную и программную  часть.

Рис. 1. Внешний вид разработанного USB-осциллографа

Аппаратная часть комплекса состоит из пяти модулей:
• модуль обработки информации;
• модуль измерения напряжения;
• модуль измерения сопротивления;
• модуль генератора импульсного сигнала;
• модуль связи с ЭВМ.
Функциональная схема устройства приведена на рис. 2.

Рис. 2. Функциональная схема USB-осциллографа.

Модуль обработки информации состоит из микроконтроллера фирмы Atmel модели ATMega8L и его элементной обвязки. Микроконтроллер данной модели имеет частоту процессора 8МГц и встроенный аналогово-цифровой преобразователь (АЦП), что позволяет снимать показания напряжения с достаточно большой частотой.
Модуль измерения напряжения состоит из АЦП микроконтроллеров и его элементной обвязки, необходимой для обеспечения стабильного сигнала.
Для измерения сопротивления служит модуль, представляющий собой измерительный мост.
Модуль генератора импульсного сигнала представляет собой таймер. Он встроен в микроконтроллер и обеспечивает генерацию сигнала достаточно высокой частоты.
Для связи с ЭВМ предусмотрен модуль, состоящий из микросхемы FT232RL, необходимой для связи микроконтроллера с ЭВМ. Эта микросхема является конвертором между стандартом передачи данных микроконтроллера - UART и интерфейсом RS232 , который используется для передачи данных через последовательный порт в ЭВМ. При подключении к ЭВМ через USB микросхема обеспечивает эмуляцию последовательного COM порта.
Программная часть программно-аппаратного комплекса состоит из программы, которая встроена в микроконтроллер и необходимой для работы устройства, и программы для связи устройства с ЭВМ, которая устанавливается на компьютер.
Программа работы микроконтроллера разработана в среде программирования CodeVisionAVR для микроконтроллеров семейства Atmel AVR на языке С. Для связи устройства с ЭВМ была разработана система команд, которые делятся на команды с параметром и без параметра. Команда с параметром необходима для того, чтобы вместе с ее идентификатором можно было бы передать некоторый цилочисленний аргумент. Она имеет формат СХХХХ, где С - зарезервированный идентификатор команды, а ХХХХ - любое целое число от нуля (в виде 0000) до 9999. Команда без параметра имеет формат C, где С - зарезервированный идентификатор команды. В программе зарезервованы следующие команды:
1. R - перезагрузка устройства;
2. I - сдвиг фазы второго канала генератора импульсного сигнала на 180 градусов (необходимо для резонансного и компенсирующего режима работы генератора);
3. N - переход в режим измерения напряжения;
4. Q - переход в режим измерения сопротивления;
5. SXXXX - запрос на генерацию импульсного сигнала с частотой ХХХХ Гц;
6. BXXXX - запрос на измерение в выбранном режиме продолжительностью ХХХХ секунд;
7. UXXXX - информация о измеренном напряжении в количественном ее эквиваленте ХХХХ единиц;
8. UXXXX - информация о измеренное сопротивление в количественном его эквиваленте ХХХХ единиц.
Резонансный режим генератора импульсного сигнала - это режим, при котором сдвиг фаз между колебаниями первого и второго канала равна нулю. Данный режим позволяет исследовать явление резонанса. При включенном компенсирующем режиме сдвиг фаз между колебаниями составляет 180 градусов, что позволяет наблюдать затухание (компенсации) колебаний в результате действия обоих каналов.
Программа для связи программно-аппаратного комплекса с ЭВМ разработана в среде программирования Borland C + + Builder 6.0 на языке С + +. При проектировании дизайна программы была поставлена цель разработать удобный интерфейс для пользования людьми широкого возрастного диапазона. Поэтому было выбрано панельный вид главного окна программы с большим размером шрифта и привлекательными цветами (рис. 3). Справа на форме находится панель управления с кнопками для перехода в различные режимы работы устройства, а слева - панель, разделённая на две части: панель визуализации результата работы прибора и панель управления выбранным режимом.

Рис. 3. Внешний вид программы.

Для связи программы с программно-аппаратным комплексом через последовательный COM порт было спроектировано шесть классов, которые составляют две иерархии (рис. 4). Корень первой иерархии - абстрактный класс ACommand, который реализует абстракцию команды устройства. Данный класс вмещает в себе срочный атрибут value, который представляет собой команду заданного протокола и необходимый для передачи его через последовательный порт. Здесь есть также функция для доступа к этому атрибуту GetValue () а также абстрактная функция Execute (), которая отличается у каждого последователя данного класса и представляет собой действие, которое выполняется каждый раз при приеме команды определенного вида. У класса ACommand есть два последователя: ParamCommand и SingleCommand. Это две разновидности команд устройства (команда с параметром и команда без параметра). В этих двух классов есть статическая функция Parse, которая позволяет создать экземпляр данного класса с помощью команды в виде срочного аргумента. Для класса ParamCommand существует также обвертка Displayable, которая позволяет при приема параметризованых команд во время выполнения функции Execute () отразить принятый параметр на графике.

Рис. 4. Диаграмма классов связи программы с устройством.

Корнем второй иерархии - абстрактный класс ACOMPortManager, который реализует управление последовательным COM портом. У данного класса есть четыре атрибуты. Булевый атрибут connected хранит информацию о состоянии подключения к последовательному порту. Атрибут COMHandle хранит дескриптор файла выбранного последовательного порта. В атрибуте inBuffer хранится символьный массив принятых с COM порта данных, размер этого массива хранится в атрибуте inBufferSize. В классе реализованы три функции:
1) функция открытия последовательного порта Connect ();
2) функция закрытия последовательного порта Disconnect ();
3) функция передачи команды типа ACommand через последовательный порт SendCommand (cmd: ACommand).
В классе-наследнике DeviceManager реализованы абстрактные функции On-Connect (), OnDisconnect (), OnCommandAccept (cmd: String).

На разработку устройства ушло 60 гривен.

Полищук Олег ( Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript // ' ); // ]]> Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript // ), http://homorobot.net/

Февраль, 2010

Обновлено 25.02.2010 15:49  

Комментарии  

 
0 #1 Вопрос по осцилографу 18.05.2010 09:50
Какая максимальная частота измеряемого сигнала?
Цитировать
 
 
0 #2 Вопрос по осцилографу 25.05.2010 16:54
Теоретически 8КГц
Цитировать
 
 
-6 #3 Хорошая статья 29.05.2010 18:12
Хорошая статья.
_______________ _______________ _______
http://usedauto.com.ua/zapchasti/ запчасти для автомобилей
Цитировать
 

Добавить комментарий


Защитный код
Обновить

Файловый сейф

Вы можете делиться файлами с друзьями. Загрузите файл и получите ссылку для его скачивания.

Выберите файл:

Авторизация

Зарегистрированные пользователи имеют возможность добавлять свои статьи со ссылкой на оригинал.

Облако тегов




Powered by Dapmoed