Смекни!
smekni.com

Программно-аппаратный комплекс для многофункционального метеорологического радиолокатора на базе (стр. 6 из 6)

С периодом равным T, вывод OUT4 генерирует бланк, длительностью t1, и вывод импульсa с OUT5 длительностью t2. Бланк необходим для «отбрасывания» не нужных, ранних отражений от близких объектов, чье расстояние над землей меньше, чем 80-100 км (Птицы, самолет, …). Импульс с out5, необходим, для испускания радаром электромагнитного импульса. Работой всей платы занимается Сигнальный процессор, который работает под уже поставляемый драйвер. Для наших целей необходимо модифицировать уже поставляемый драйвер.

Рис. 11 Вывод бланков по таймеру.

Для создания бланков с периодом T мы решили использовать таймер ADSP. Для этого мы должны настроить таймер на 2500 мкс, чтобы он через данное время генерировал прерывания, и написать обработчик прерывания от таймера.

Рис. 12 инициализация обработчика прерывания в таблице прерыаний

Обработчик прерывания представляет собой подпрограмму, которая управляет состоянием TTL линии.

Рис.13 Описание обработчика прерываний по таймеру

Каждые 2500 мкс Генерируются бланки и импульсы с цифровых линий OUT4 и OUT5. Каждое прерывание линии OUT1,OUT2,OUT3 выводят определенный сигнал, (инкрементируется состояние TTL линий).

Рис. 14 Временная диаграмма ТТЛ линий

Как только состояние OUT1,OUT2,OUT3 будет равным «1»(иначе говоря, 8-е направление), то следующее прерывание выставляет эти линии в «0» и инкрементирование начинается заново.

3.2 Разработка приложения для Windows

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

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

Для создания программы, которая загружает управляющую программу в DSP и управляет платой L-CARD из среды WINDOWS, мы использовали среду разработки MS VISUAL C++ 6.0

Для этого создаем новый проект:

File-new-project-WIN32 console application

Рис.7 Создание проекта

После того, как создали проект, необходимо прикрепить к нему необходимые библиотеки, с помощью которых мы сможем управлять платой L-783. Требуемые библиотеки имеют названия «lguids.cpp»,«create.cpp», «lguids.h» и «create.h» (первые две необходимо добавить в проект , project-add to project – files)

Рис. 8 подключение библиотек

Общий принцип работы с библиотекой:

• Загрузить библиотеку с помощью LoadLibrary.

• Создать объект, связанный с конкретным виртуальным слотом при помощи вызова CreateInstance.

• Получить указатель на интерфейс вызвав QueryInterface

• Далее вызывать функции этого интерфейса.

Виртуальные слоты это собственно порядковые числа в названиях линков драйверов. Начинаются с 0 и так далее по порядку. Разделения на ISA,PCI или USB платы нет. Причем определить, что за плата соответствует конкретному слоту, можно, только открыв его и прочитав информацию GetSlotParam и ReadPlataDescr (+ для L1450, E440, E2010 предварительно надо загрузить плату). GetSlotParam даст информацию о типе платы и назначенных ей ресурсах. Далее для PCI плат более подробную информацию даст ReadPlataDescr. Для L-1450, E440, E2010 также можно вызвать ReadPlataDescr, но предварительно в нее надо загрузить БИОС. Вызов ReadPlataDescr обязателен перед началом конфигурирования сбора данных, поскольку там содержится информация о частоте кварца необходимая при расчетах временных параметров сбора данных. Также там хранятся калибровочные коэффициенты.

В основном файле вашей программы, для работы с платой необходимо написать:

Рис. 9 Подготовка платы к работе

Всё готово, в плату загружен ваш БИОС и теперь можно приступать к работе с платой используя функции библиотек.

В режиме регистрации система записывает получаемые данные на диск. Радар посылает 80 импульсов и полученное отражение записывается на диск. Даже если отражение пропало или получаемый сигнал не нужный, всё равно продолжается запись на диск в течении этих 80 кадров(80*2500мкс).

Для регистрации данных используется установленный на плате АЦП.

АЦП может записывать данные с частотой до 3 Мгц. В нашей системе достаточно записывать частотой 1 Мгц. Для записи на жесткий диск компьютера мы решили написать программу для ОС Windows, которая при запуске устанавливает параметры платы и начинает считывание записанных данных с АЦП в память компьютера. Происходит это следующим образом: Данные с АЦП заносятся в FIFO-буфер платы, после заполнения половины буфера, плата генерирует прерывания в PC и данные, по шине DMA, заносятся в кольцевой буфер компьютера. После этого можно считывать данные с буфера компьютера.

Для начала после того, как мы подготовили нашу программу для работы с платой L-783, мы должны настроить и инициализировать АЦП.

Рис.15 Проект в MSvisual c++

На рисунке описаны настройки параметров АЦП:

ULONG AutoInit - флаг указывающий на тип сбора данных 0 - однократный 1 -

циклический;

double dRate - частота опроса каналов в кадре (кГц);

double dKadr - интервал между кадрами (мс);

double dScale - масштаб работы таймера для 1250 или делителя для 1221;

ULONG Rate - частота опроса каналов в кадре (в кодах для процессора,

вычисляется библиотекой);

ULONG Kadr - интервал между кадрами (в кодах для процессора, вычисляется

библиотекой);

ULONG Scale - масштаб работы таймера для 1250 или делителя для 1221 (в кодах

для процессора, вычисляется библиотекой);

ULONG FPDelay - служебная величина задержки выдачи первого отсчета

(вычисляется библиотекой);

ULONG SynchroType - тип синхронизации;

ULONG SynchroSensitivity - вид синхронизации;

ULONG SynchroMode - режим синхронизации;

ULONG AdChannel - канал, по которому выполняется синхронизация;

ULONG AdPorog - уровень синхронизации;

ULONG NCh - количество опрашиваемых каналов ;

ULONG Chn[128] - массив с номерами каналов и усилением на них; описывает

порядок опроса каналов;

ULONG FIFO - размер половины аппаратного буфера FIFO на плате;

ULONG IrqStep - шаг генерации прерываний

После инициализации и настройки АЦП можно начинать считывать данные. Для этого у нас известны все параметры: Размер FIFO-буфера, размер кольцевого буфера, и адрес начала кольцевого буфера - data.

Результаты

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

Рис. 17 Полученные данные с платы l-783

Данные заносятся с частотой dRate, и построив график по этим точкам можно увидеть сигнал генератора:

Рис.18 считывание синусоиды с частотой 10 Кгц фирменным драйвером.

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

Для этого необходимо поменять файл l783.bio в папке с нашей программой, на наш измененный l783.bio.

Рис. 19 Считывание синусоиды с частотой 500 гц под управлением модифицированного драйвера.

Из рисунка мы видим, что процессор на время выполнения бланка не принимает данные с АЦП и не заносит их в буфер. На 600 мкс, на время бланка сигнал, как и требовалось, не принимается.

5. Заключение

Мы изучили архитектуру платы фирмы L-CARD L-783. Изучили Архитектуру процессора ADSP 2185. На основе полученных знаний сформировали «бланки» и смену направлений через ТТЛ выходы. Сформировали сбор данных с АЦП с частотой 1 Мгц.

В дальнейшем предстоит сформировать обработку полученных данных из АЦП с помощью сигнального процессора ADSP-2185 и логику поиска и регистрации цели.

6.Список используемой литературы

1.Руководство пользователя PCI плат L-761, L-780 и L-783 http://www.lcard.ru/download/l7xx_users_guide.pdf

2. Руководство программиста под DOS для PCI плат L-761, L-780 и L-783 http://www.lcard.ru/download/l7xx_programmers_guide.pdf

3. Информационные заметки для PCI плат L-761, L-780 и L-783 http://www.lcard.ru/download/l7xx_info_notes.zip

4. А. В. Гарманов. Подключение измерительных приборов, решение вопросов электросовместимости и помехозащиты. L-Card, 2003. http://www.lcard.ru/download/lcardconnects.pdf

5. Крис Паппас, Уильям Мюррей - Visual C++ 6. Руководство разработчика

6. А.В. Комаров, Цифровые сигнальные процессоры

7. Цифровые процессоры обработки сигналов семейства ADSP-218x: Учеб.

Пособие /А.А.Зайцев, Т.В.Евдокимова; Рязан. гос. радиотехн. акад. Рязань, 2005. 44с.

8. Руководство пользователя по сигнальным микропроцессорам семейства

ADSP-2100/ Под ред. А.Д. Викторова. СПб гос. электротехнический университет. –СПб, 1997. – 520с.:ил.