Дополнительный кабель AC-7xx-f

Кабель AC-7xx-f можно использовать в качестве транслятора цифровых линий с внутреннего разъѐма PLD-40 на заднюю панель компьютера. Выходной разъем кабеля – розетка DB-37. Это означает, что невозможно перепутать этот разъѐм с внешним аналоговым разъѐмом платы. Краткое описание контактов разъѐма смотри в таблице 9. Расположение контактов разъѐма приведено на рисунке ниже:

Рис.6 Дополнительный кабель AC-7xx-f

3.1 Разработка управляющей программы

У пользователя, как правило, не появляется необходимость в написании своих собственных управляющих программ для данной платы, т.к. все наиболее часто требуемые алгоритмы работы уже реализованы в фирменном драйвере, находящимся в файле L783.bio. Однако если же все-таки возникла необходимость в создании собственной управляющей программы (например, для формирования какого-либо специализированного алгоритма действия процессора), то для этого придется освоить достаточно несложный язык ассемблера для сигнального процессора. В качестве законченного примера программирования платы на таком языке можно использовать исходные тексты фирменного драйвера, хранящиеся в файлах DSP\L783\L783.DSP и DSP\L783\*.H.

 

Процесс формирования собственной управляющей программы:

1. изучить архитектуру процессора ADSP-218x, а также освоить язык его программирования (ассемблер для DSP). Всю подроб-ную информацию об этом можно найти в оригинальной книге “ADSP-2100 Family User’s Manual (Includes ADSP-2171, ADSP-2181)”, Analog Devices, Inc., Third Edition, September 1995 или в русском переводе “Руководство пользователя по сигнальным микропроцессорам семейства ADSP-2100”, под редакцией А.Д.Викторова, Санкт-Петербург, 1997. Оба эти издания можно приобрести в ЗАО «Л-Кард». Описание и примеры программ для DSP с исходными текстами приводятся в двухтомном справочнике “Digital Signal Processing Applications Using the ADSP-2100 Family”, Analog Devices, Inc., который можно найти у официальных российских дистрибьюторов компании Analog Devices, Inc. (например, фирмы Autex Ltd. или Argussoft Co.). Много полезного в дополнение к указанной документации можно обнаружить также на сайте www.analog.com.

2. Процессоры семейства ADSP-21хх поддерживаются полным набором программных средств отладки. Этот пакет включает в себя несколько программ: построитель системы (bld21.exe), ассемблер (asm21.exe), линкер или редактор связей (ld21.exe) и т.д. Все эти программы очень подробно описываются в оригинальной книге “ADSP-2100 Family Assembler Tools & Simulator Manual”, Analog Devices, Inc., Second Edition, November 1994, которую можно найти у официальных российских дистрибьюторов компании.

Analog Devices, Inc. (например, фирмы Autex Ltd. или Argussoft Co.). Сам пакет разработчика программ для сигнальных процессоров семейства ADSP-21xx, содержащий все вышеуказанные средства отладки (кроме bld21.exe), можно приобрести в ЗАО «Л-Кард». В качестве архитектурного файла нужно использовать L783.ACH.

3. Надо создать соответствующие файлы с исходным кодами Вашей программы на языке ассемблер DSP. Затем эти файлы необходимо оттранслировать (asm21.exe) и скомпоновать с помощью редактора связей (ld21.exe), формируя, таким образом, выполняемую программу типа.EXE, так называемый файл отображения в памяти (memory image file). Формат сформированного файла отображения в памяти очень подробно описан в “ADSP-2100 Family As-sembler Tools & Simulator Manual”, Appendix B “File Format”, B.2 “Memory Image File (.EXE)”, Analog Devices, Inc., Second Edition, November 1994. Именно в этом файле содержатся все коды инструкций Вашей программы с соответствующими адресами их расположения в памяти программ DSP, а также инициализирующие значения Ваших переменных и адреса их нахождения в памяти данных. Зная всю эту информацию нужно загрузить ее в память DSP по надлежащим адресам. Для упрощения процедуры загрузки полученный файл отображения в память.EXE преобразуется с помощью утилиты DSP\L783\BIN3PCI.EXE в файл.BIO

 

 

4. Реализация

Линия TRIG на внешнем разъёме DRB-37M, которая подключена к ножке прерывания IRQE сигнального процессора (по фронту). Данное прерывание IRQE генерируется при отрицательном перепаде импульса (|_|) длительностью не менее 50 нс. В фирменном драйвере эта линия используется для цифровой синхронизации ввода данных с АЦП.  Эта линия нужна для синхронизации приема данных с АЦП и бланком. При наличии сигнала в OUT4, в это время данные с АЦП не считываются. OUT1-OUT3 Это цифровые выходы, управляющие антенным коммутатором. OUT5 – Импульс испускаемый радиолокатором.

 

Рис. 10 Подключение

 

Поиск проводится путём передачи коротких электромагнитных импульсов длиной около 100мкс и приема отраженного сигнала. Принятие нужного происходит не сразу после испускания импульса, а через некоторое время, чтобы не регистрировать ненужные объекты(самолет, стая птиц и т.д.).Импульсы испускаются каждые 2500 мкс.(400Гц) После испускания каждого идет принятие и анализ полученного отражения.

Для реализации этого режима используются цифровые TTL выходы, АЦП и цифровой сигнальный процессор ADSP 2185, установленный на плате L-783. В данном режиме, задействованы 5 цифровых выходов, и вход АЦП.

С периодом равным 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с.:ил.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: