Телеграфные ключи и манипуляторы от UR5CDX и M0EDX

\главная\р.л. конструкции\антенны\...

Подход к разработке альтернативного программного обеспечения для антенного анализатора AA-330

Эксплуатируя антенный анализатор AA-330 [1], я столкнулся с необходимостью проводить измерения с шагом 1 кГц в полосе частот от 1 до 30 МГц с возможностью масштабировать графики и сохранять полученные результаты в файл для последующей статистической обработки. К сожалению, программа, которой штатно комплектуется прибор [2, 3], не предназначена для подобных целей. Соответственно, пришлось написать свой вариант программы, который совершенно не претендует на законченный продукт и сколько-нибудь оптимальный код, но, тем не менее, позволяет решать обозначенные задачи. Опытом программирования для АА-330 я и хотел бы поделиться с коллегами по хобби.

Первым шагом стало установление метода соединения AA-330 по последовательному порту (т.к. кабель, которым комплектовался прибор, был благополучно потерян, то непонятно было - используется ли только пара сигналов TD, RD или еще задействованы и управляющие сигналы интерфейса). Простая разборка прибора показала, что реализован, первый вариант и управляющие сигналы (RTS, CTS, DTR, DSR) не используются. Т.о., распайка кабеля для соединения с компьютером выглядит следующим образом (кстати, подойдет и готовый ноль-модемный кабель):

Рис.1. Распайка кабеля для соединения AA-330 c COM-портом компьютера

Далее необходимо было установить логический протокол обмена AA-330 с компьютером. Самым простым решением показалось использовать второй COM-порт компьютера с терминальной программой на нем – это позволяет осуществлять мониторинг первого COM-порта, к которому подключен AA-330 и «родная» управляющая программа, например, «Antenna Analyst» [2]. В качестве же терминала я использовал соответствующий раздел в среде разработки CodeVision AVR [4]. Для этого шага схема соединений, приведенная на рис.1, преобразуется следующим образом:

Рис.2. Распайка кабеля для исследования протола обмена AA-330

Соединение точки B с точкой С (рис.2) позволяет установить, что передает компьютер прибору, в момент нажатия на кнопку «Старт» «родной» программы, чтобы тот начал выдавать результат. Затем точка С соединялась с точкой А и это, в свою очередь, позволяло установить, что передает прибор компьютеру в ответ на входное воздействие (т.е. на тот самый управляющий символ, который мы определили на предыдущем шаге).

С помощью этих манипуляций удалось установить следующее: сканирование запускается передачей на AA-330 одного байта, который определяет диапазон (табл.1), при этом шаг сканирования задается в самом приборе и управляющей программой не определяется.

Символ ASCII

Hex

Диапазон

0

30

1-10 MHz

1

31

10-20 MHz

2

32

20-30 MHz

3

33

Заданный*

4

34

10 m

5

35

12 m

6

36

15 m

7

37

17 m

8

38

20 m

9

39

30 m

:

3A

40 m

;

3B

80 m

3C

160 m

*Обозначает использование тех границ диапазона сканирования, которые заданы в пунктах меню прибора start freq и end freq

Табл.1. Управляющие символы, запускающие измерение на АА-330 и соответствующий им диапазон сканирования

Сразу после получения управляющего байта прибор начинает сканирование и передает на линию TD данные измерений в кодировке ASCII. Причем, в начале сообщения передается символ <S> (hex 0x53), данные о диапазоне и шаге сканирования, а завершается передача символом <E> (hex 0x45). Все строки оканчиваются символами <CR><LF> (hex 0x0D, 0x0A). Как было сказано, в сообщении AA-330 содержится и информация по шагу, с которым проводится измерение (строка 4 на рис.3а), причем шаг кодируется следующим образом: “01”-250кГц, “02”-100кГц, “03”-10 кГц, “04”-1 кГц.

Разберем выходное сообщение прибора на примере: установим диапазон сканирования от 2 до 3 МГц с шагом 100 кГц, причем, установим эти параметры именно в приборе (start freq,end freq, step size), передадим прибору по порту символ <3> (hex 0x33). В результате AA-330 выдаст последовательность строк, показанных на рис.3а (на рис.3б представлена та же самая информация, но в шестнадцатеричном виде, чтобы можно было видеть всю последовательность переданных байт вместе с неотображаемыми символами).

Каждому шагу измерения соответствует одна строка, где через запятую перечислены КСВ, действительная и мнимая часть импеданса (рис.4). Разумеется, количество строк соответствует диапазону, поделенному на шаг измерения.

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

 

Рис.3. Выходное сообщение АА-330

Рис.4. Порядок представления данных в строках передаваемых AA-330

Думаю, приведенного выше описания будет вполне достаточно для того, чтобы заинтересованные радиолюбители могли приступить к разработке программного обеспечения для AA-330 «под себя», не тратя времени на разбирательства с протоколом обмена, распайкой шнуров и т.д.

Предлагаемый вариант программы по интерфейсу схож с оригинальным (рис.5). Кнопка «Старт»(1) запускает сканирование, передавая на АА-330 управляющий байт, который определяется текущей строкой списка (4), после нажатия на «Старт», начинается прием данных с порта, отображающийся количеством принятых байт в текстовом поле (9). Когда значения в поле (9) перестают изменяться, можно просмотреть полученные результаты, нажав на кнопку «График»(2), причем данные, полученные в результате текущего сканирования, будут отображаться сплошными линиями, а данные предыдущего отобразятся штриховкой, для более удобных сравнительных оценок.

 

Рис.5 Основная форма программы

После отображения на графике, данные можно сохранить в текстовом файле, нажав на кнопку «В файл» (3), прошу обратить внимание, что сохранять в файл можно только после просмотра данных на графике. Данные будут сохраняться в файл с именем current_data.txt, который находится в той папке, откуда была запущена программа. Важный момент состоит в том, что данные в этом файле не добавляются, а каждый раз перезаписываются, т.е. при нажатии на кнопку «В файл»(3) программа удаляет файл current_data.txt и создает его заново, записав туда данные последнего сканирования. Структура строк файла следующая: 1) частота в кГц, 2) КСВ, 3) действительная часть, 4) мнимая часть импеданса. Поля в файле разделяются точкой с запятой, что позволяет легко импортировать его в MS Excel, Statistica и другие пакеты. Отображением данных на графике управляют элементы выбора (5), установка или снятие отметки с одного из них, делает активной кнопку «Перерисовать» (6), нажатие на нее приводит к обновлению графика, в соответствии с выбранными параметрами отображения. Номер порта, который программа будет использовать (к которому подключен прибор), можно задать в текстовом поле (7), нажав затем кнопку «Измен.»(8). Если порта с таким номером не существует или он уже открыт, при нажатии кнопки «Старт»(1), возникнет сообщение об ошибке. В этом случае нужно указать другой порт или закрыть приложение, которое может его использовать. Все настройки, сделанные при работе с программой сохраняются в файле config.ini, находящимся в той папке, откуда приложение запускалось, и будут воспроизведены в последующем.

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

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

Разумеется, в архиве приведены исходные коды программы, и ее можно свободно улучшать и настраивать под свои цели и задачи. Программа написана в среде Delphi 7, для работы с COM-портом используется бесплатный компонент «Async Professional ComPort» [5], который необходимо скачать и подключить к Delphi. По мере возможности я постарался комментировать исходный код, но, если по нему возникнут вопросы – постараюсь ответить (rv6lqx{собака}mail.ru).

Алексей Сазыкин (RV6LQX).

 

Список источников:

  1. http://rx3adu2.narod.ru/main_data/aa330.html
  2. http://rx3adu2.narod.ru/main_data/t.htm
  3. http://rx3adu2.narod.ru/main_data/AA-330.rar
  4. http://www.hpinfotech.ro/html/cvavr.htm
  5. http://tpapro.sourceforge.net/ApdComPort.html



Глас народа
08.07.2013 14:34 Писать программное обеспечение на это жалкое поделие, нет смысла....  --  Алекс Чан
08.09.2010 09:36 Зайдите на форум ресурса radiodesign.ru Там можно подробно обсуд...  --  Олег
24.06.2010 11:35 Приобрёл АА-330М К сожалению в ноутбуке нет COM порта к...  --  Валерий UA3PT...
30.01.2010 13:52 Алексей, большое спасибо за программу! С ней у меня заработал пер...  --  RW3ACQ
18.01.2010 18:23 Еще раз всем огромное спасибо за комментарии и предложения! По пр...  --  Алексей, RV6LQX...
18.01.2010 11:28 Всё перенесено на новый ресурс и форум, в том числе и по старому ...  --  RX3ADU
18.01.2010 09:56 Тогда все ясно. Спасибо за комментарии. Алексею, отдельное спасиб...  --  4xSH
15.01.2010 23:09 Друзья, старого сайта по адресу rx3adu2.narod.ru уже нет. Вернее ...  --  RX3ADU Олег...
15.01.2010 17:56 Судя по программе Олега(RX3ADU) перечень команд [30:3A], приведен...  --  4xSH
15.01.2010 16:16 Друзья, пользуясь случаем, приглашаю всех для обсуждения приборов...  --  RX3ADU
15.01.2010 14:28 Да, Алексей именно так, если в файл данных можно будет добавить к...  -- 
15.01.2010 14:02 to Alexey, ra4udc: Спасибо за предложение! Т.е. добавить загрузку...  --  Алексей, RV6LQX...
15.01.2010 12:02 Алексей, если будите развивать свою программу может быть добавит...  --  Alexey,ra4udc...
14.01.2010 23:39 Спасибо за отзывы! to Олег RX3ADU: Ну, собственно, моя прога-ско...  --  Алексей, RV6LQX...
13.01.2010 19:28 Спасибо за эту альтернативу, а то всё руки не доходили обновить :...  --  Олег RX3ADU...
13.01.2010 01:33 Спасибо за файлы, стало удобней работать с АА... вот только цвет...  --  Василий

Возврат