Новая песня о старом… FT-1000MP
В начале 2007 г. в моем шэке на столе появился FT-1000MP . Одновременно с его появлением в голове начали бродить разные мысли о том, как можно получить максимальную пользу и удобство от работы с этим заслуженно уважаемым HAM -ами аппаратом. После приобретения и установки узких SSB и CW фильтров , а также Roofing –фильтра наступил следующий этап - этап технических задумок в области РА- строения, тем более, что в руках после длительного перерыва уже ощущался при виде паяльника заметный зуд. Позади были конструкции на ГУ-13 и ГУ-50 в разных вариантах, на ГИ-7Б, ГУ-33Б и ГУ-74Б, 2*ГУ-74Б и ГС-31Б. Но хотелось что-то достойное «тысячника» по техническим возможностям , и , естественно , с соответствующим дизайном.
Итак, «За сбычу мечт» !
Практически весь 2007 г. ушел на разработку и отладку функциональных узлов РА. В итоге родился аппарат на ГС-31Б с управлением от FT-1000MP. С разъема трансивера «BAND DATA» снимается двоичный код, дешифруется в РА и используется для цифровой индикации выбранного диапазона, коммутации входных фильтров, отводов П-контура, выбора соответствующей этому диапазону антенны (это программируется и может быть изменено как оперативно, «в ручную», так и программно), и автоматической перестройки П-контура в CW или SSB участке соответствующего диапазона. Для этого есть 36 «Банков памяти» - по 4 на каждый диапазон, 2 из них –для С-TUNE и 2 для C-LOAD. В РА предусмотрен контроль температуры внешних частей подогревателя лампы, контроля исправности вентиляторов (их два) , формирование напряжения ALC,различные виды защит (в том числе от выcокого SWR) и т.д.
После 3-месячного прогона и ленивого нажимания на кнопки FT-1000MP появилось ощущение незаконченности работы. Дело в том, что этот трансивер не дает возможности напрямую снимать информацию о виде (MODE) работы. В моем РА предусмотрена клавиша «CW-SSB». При ее включении меняется напряжение смещения, сдвигая рабочую точку лампы и запрашивается соответствующий банк памяти для перестройки П-контура на соответствующий CW или SSB участок. Но включать-то эту клавишу надо своим пальчиком , и притом каждый раз, когда меняешь режим работы…Не царское это дело… Получается не «Full automatic»… Нельзя ли отобрать эту информацию у «тысячника» корректно и не залезая в него?
Это то, что получилось…
Теперь перехожу к тому, для чего и пишу эту статью, т.к. в написанном выше ничего нового нет.
Как известно, FT-1000MP имеет систему САТ (Computer Aided Transceiver), позволяющую управлять некоторыми функциями со стороны компьютера. Обмен данными с компьютером проходит через последовательный порт со скоростью 4800бит\сек. Применяемый мною для работы в эфире Logger32 каждые 500 mS формирует запрос оперативных данных FT-1000MP и в получаемых от трансивера блоках данных содержатся биты, несущие информацию об активированном в настоящий момент виде работы. Задача сформулировалась сама собой: надо «отфильтровать» эти нужные биты , преобразовать информацию в бинарный код и выложить на подходящий разъем.
За решение этой задачи взялся Александр –UA3ETI. В процессе изучения проблемы перехвата управляющих кодов оказалось, что имеющееся в свободном доступе программное обеспечение по логированию последовательного порта с целью его анализа и получения исходных данных для управления внешними устройствами не подходит, блокируя обмен с трансивером. Надо создавать что-то свое, и, это «ЧТО-ТО» было создано. При решении задачи необходимо учитывать, что Logger32 так же, как и любая другая программа занимая порт блокирует активный доступ к нему со стороны других программ, которыми нам хотелось бы поучаствовать в обмене данными между трансивером и программой. Также при решении пришлось учитывать, что из доступных настроек в Logger32 были только настройки последовательного порта, по которому, собственно, и идет обмен данными с трансивером. Т.о. для решения этой задачи нам необходимо получить программно-аппаратную прослойку, вписывающуюся в нашу концепцию обмена данными.
Как разделить программу и трансивер, если они работают напрямую на уровне последовательного порта? Появилось следующее решение: в компьютер устанавливаем дополнительную мультипортовую плату ( в нашем случае PCI 2RS232& 1 parallel port). и на основе 2-х дополнительных портов (обозначенных нами далее COM5 и COM6) строим программный анализирующий ретранслятор кода. Итак: К COM1 подключен трансивер, на COM6 настроен Logger32 а между COM6 и COM5 устанавливаем обычный нуль-модемный кабель. В результате мы выполнили ранее обозначенное условие – получили свободные порты COM1 и COM5 для нашей анализирующей программы.
Т.е. было: Logger32 <-> COM1 <-> FT1000MP,
стало: Logger32 <-> COM6 <-> COM5 <-> Наша программа <-> COM1 <-> FT1000MP.
Наша программа передает запрос от Logger32 на трансивер и получает ответ – все это происходит через порт СОМ1, к которому подключен FT-1000MP, далее анализируется (согласно протокола обмена YAESU) ответ трансивера – вычленяется 7-ой байт блока данных, отвечающий за индикацию вида работы и выводится в управляющий бит параллельного порта - далее на PA, одновременно передавая ответ трансивера без изменения на СОМ5, соединенный нуль-модемным кабелем с СОМ6, прописанным в Logger32.
Получив последовательный код от трансивера, проанализировав его на наличие битов, несущих информацию о режиме CW (по таблице YAESU в двоичном коде – 0ХХХХ010) и преобразовав его в параллельный, наша программа формирует на контакте 2 параллельного порта lpt1 (выход data0) «1» при CW и «0» в остальных модах.
Далее – дело техники, привешиваем на эту шину транзисторный ключ, дублирующий клавишу «CW/SSB» и… радуемся жизни.
Остается добавить, что программа может работать с любым LOGом, в котором предусмотрена работа с FT-1000MP. НО!!! Программа РАБОТАЕТ И ПРИ ВЫКЛЮЧЕНОМ LOGGERe, САМОСТОЯТЕЛЬНО ОПРАШИВАЯ TRCVR И ВЫДАВАЯ СООТВЕТСТВУЮЩИЕ КОМАНДЫ, т.о.наличие какого - либо Loga вообще не обязательно.Этот вариант наиболее прост для реализации и не требует городушек с мультипортовой картой. Кстати, программа может работать в теневом режиме при использовании утилиты hide.exe (http://disketa.info/?download=he.exe&id=129), стартуя одновременно с запуском Windows-а.
Программа написана на языке PERL под Windows с использованием библиотек Win32::SerialPort и Win32::API. Для запуска программы необходимо скачать (с сайта www.activeperl.com) и установить как сам Perl так и указанные библиотеки. Для установки библиотек после установки Perl необходимо запустить Диск:\Perl\bin\ppm3-bin.bat и набрать “install Win32-API<enter>”, а для установки библиотеки Win32::SerialPort качаем :
http://search.cpan.org/CPAN/authors/id/B/BB/BBIRTH/Win32-SerialPort-0.19.tar.gz - инструкция в архиве.
Программа предлагается для свободного некоммерческого использования.
Всем успеха в благородном деле
автоматизации рабочих мест и 73!
Перепечатка разрешена с обязательной ссылкой на
первоисточник.
Э.Агаев /UA3ERD/,ex UV3RD, МССССР,
А.Агаев /UA3ETI/
г.Орел, май 2008г.