http://wm-monitoring.ru/ ')) {alert('Спасибо за то что установили нашу кнопку! =)');} else {alert('Очень жаль! =(');}"> http://wm-monitoring.ru/

Главная Новости

Новая песня о старом… FT-1000MP

Опубликовано: 05.09.2018

видео Новая песня о старом… FT-1000MP

GHOSTEMANE - Mercury

Новая песня о старом… FT-1000MP

В начале 2007 г. в моем шэке на столе появился FT-1000MP . Одновременно с его появлением в голове начали бродить разные мысли о том, как можно получить максимальную пользу и удобство от работы с этим заслуженно уважаемым HAM -ами аппаратом. После приобретения и установки узких SSB и CW фильтров , а также Roofing –фильтра наступил следующий этап - этап технических задумок в области РА- строения, тем более, что в руках после длительного перерыва уже ощущался при виде паяльника заметный зуд. Позади были конструкции на ГУ-13 и ГУ-50 в разных вариантах, на ГИ-7Б, ГУ-33Б и ГУ-74Б, 2*ГУ-74Б и ГС-31Б. Но хотелось что-то достойное «тысячника» по техническим возможностям , и , естественно , с соответствующим дизайном.


N.MASTEROFF x DK x MORGENSHTERN - МИЛЛИОН (КЛИП)

Итак, «За сбычу мечт» !

Практически весь 2007 г. ушел на разработку и отладку функциональных узлов РА. В итоге родился аппарат на ГС-31Б с управлением от FT-1000MP. С разъема трансивера «BAND DATA» снимается двоичный код, дешифруется в РА и используется для цифровой индикации выбранного диапазона, коммутации входных фильтров, отводов П-контура, выбора соответствующей этому диапазону антенны (это программируется и может быть изменено как оперативно, «в ручную», так и программно), и автоматической перестройки П-контура в CW или SSB участке соответствующего диапазона. Для этого есть 36 «Банков памяти» - по 4 на каждый диапазон, 2 из них –для С-TUNE и 2 для C-LOAD. В РА предусмотрен контроль температуры внешних частей подогревателя лампы, контроля исправности вентиляторов (их два) , формирование напряжения ALC,различные виды защит (в том числе от выcокого SWR) и т.д.


JEEMBO & PHARAOH - CHAINSAW

После 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 - инструкция в архиве.

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

#!C:/Perl/bin/perl.exe   use Win32::SerialPort qw( :STAT 0.19 ); use Win32::API;   my $GetPortVal = new Win32::API("inpout32", "Inp32", ['I'], 'I'); my $SetPortVal = new Win32::API("inpout32", "Out32", ['I', 'I'], 'I'); my $PortObj1 = new Win32::SerialPort ("COM1"); my $PortObj5 = new Win32::SerialPort ("COM5");   $PortObj1->baudrate(4800); $PortObj1->parity("mark"); $PortObj1->databits(8); $PortObj1->stopbits(1); $PortObj1->write_settings; $PortObj5->dtr_active(0); $PortObj5->rts_active(0); $PortObj5->baudrate(4800); $PortObj5->parity('mark'); $PortObj5->databits(8); $PortObj5->stopbits(1); $PortObj5->handshake('none'); $PortObj5->read_const_time(300); $PortObj5->read_char_time(15); $PortObj5->write_settings;   my $count;my $data;my $count1;my $data1; while (1) {($count,$data)=$PortObj5->read(5); if ($count > 3) {$mycode="";} else {$data=pack("ccccc",00,00,00,02,16);$mycode="yes";} $PortObj1->write($data); ($count,$data1)=$PortObj1->read(16); $cw1=substr ($data1,7,1); if ($cw1 eq pack("c",02)) {$bit=1} else {$bit=0}; if (!$cw1) {$bit=0;}; if ($count > 10) {$SetPortVal->Call(0x378, $bit);}; $PortObj5->write($data1) if !$mycode; $PortObj1->write_settings; $PortObj5->write_settings; }

Всем успеха в благородном деле автоматизации рабочих мест и 73!

Перепечатка разрешена с обязательной ссылкой на первоисточник.

Э.Агаев /UA3ERD/,ex UV3RD, МССССР,

А.Агаев /UA3ETI/

г.Орел, май 2008г.

Карта
rss