Skip to main content

UHF радиоканал

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

В составе набора конструктора ОрбиКрафт UHF-радиоканал реализован в виде двух модулей: бортового модуля UHF-передатчика и наземного модуля UHF-приемника (Picture 1). Массив данных, передаваемых с борта на Землю, представляет из себя байтовый массив произвольной длины и состава, который можно передать на Землю, с указанием его длины. На Земле полученные сообщения во время сеанса связи отображаются в реальном времени в интерфейсе ПО ЦУП «как есть», так что выгоднее всего передавать телеметрию в текстовом виде.

UHF-передатчик и UHF-приемник

Picture 1. UHF-передатчик и UHF-приемник

UHF-передатчик

Виртуальное потребление - 210мА

UHF передатчик космического аппарата - чаще всего работает на частоте 145 или 436 МГц и обеспечивает небольшую скорость передачи данных, с всенаправленной или близкой к всенаправленной бортовой антенной.

UHF передатчик в конструкторе ОрбиКрафт имеет номер «2» (указан на корпусе).

Передача данных на Землю осуществляется с помощью функции:

  int32_t transceiver_send(uint16_t tx_num,uint16_t rx_num,const uint8_t *data,uint16_t len); 

UHF-приемник

UHF-приемник из состава конструктора имитирует работу радиоприемной части наземной станции приема телеметрической информации по низкоскоростному каналу. Во время экспериментов со «спутником» аналогичные приемники будут смонтированы непосредственно на поверхности «Земли» - глобусе. Однако для предварительной отработки работы со спутником в комплекте также поставляется данный UHF-приемник телеметрии.

Сам приемник работает совместно с ПО ЦУП. При передаче данных телеметрии бортовым радиоканалом и подключенном UHF-приемнике в наземной сети, эти данные будут автоматически приниматься наземным радиоканалом и отображаться в текстовом поле в левой части пользовательского интерфейса ПО ЦУП.

UHF приемник в конструкторе ОрбиКрафт имеет номер «1» (указан на корпусе).

Код для проверки системы

Код проверки системы телеметрии на языке C

    #include "libschsat.h"
/*
** Lab 8: UHF transceiver demo.
*/
void control(void)
{
const uint16_t tx_num = 2;
const uint16_t rx_num = 1;
const char hello[] = "hello, world!";
printf("Enable transceiver #%d\n", tx_num);
transceiver_turn_on(tx_num);
Sleep(1);
bus_setup();
printf("Send data from #%d to #%d\n", tx_num, rx_num);
if (LSS_OK != transceiver_send(tx_num, rx_num, (uint8_t *) hello, sizeof(hello)))
puts("Fail!");
printf("Disable transceiver #%d\n", tx_num);
transceiver_turn_off(tx_num);
return;
}

Код проверки системы телеметрии на языке Python

def control(): # Основная функция программы, в которой нужно вызывать остальные функции

#Прием и передача обычно обозначаются как tx и rx от английских слов transmit и receive
# То есть в данной программе tx - передающий UHF - приемопередатчик, rx - принимающий UHF - приемопередатчик
rx_num = 1 # Номер принимающего UHF-приемопередатчика
tx_num = 2 # Номер передающешл UHF-приемопередатчика

data = "hello world" #Сообщение для передачи

print "Enable transceiver №", tx_num # Активируем передатчик. Приемник же находится на приемной станции и не контролируется нашей программой
transceiver_turn_on(tx_num)
sleep(1)

bus_setup() #Готовим шину к передаче данных
print "Send data from transceiver №", tx_num, " to transceiver №", rx_num

error = transceiver_send(tx_num, rx_num, data)

if not error:
print "data has been transmitted"
elif error == 1: # если датчик вернул сообщение об ошибке 1
print "Fail because of access error, check the connection"
elif error == 2: # если датчик вернул сообщение об ошибке 2
print "Fail because of interface error, check your code"


print "Disable transceiver №", tx_num # Выключаем передатчик
transceiver_turn_off(tx_num)