Комплекс измерения параметров обратного канала

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

Рубрика Коммуникации, связь, цифровые приборы и радиоэлектроника
Вид дипломная работа
Язык русский
Дата добавления 23.06.2009
Размер файла 882,2 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Трн ij = Tp i. (6.5)

Поздний срок начала работы равен разности между поздним сроком свершения её конечного события и её продолжительности:

Тпн ij = Тп j - tож ij. (6.6)

Ранний срок окончания работы равен сумме раннего срока свершения её начального события и её продолжительности:

Тро ij = Тр i + tож ij. (6.7)

Поздний срок окончания работы равен позднему сроку свершения её конечного события:

Тпо ij = Тп j. (6.8)

Полный резерв времени работы:

Rnij = Тп j - Т р ij - tож ij. (6.9)

Частный резерв времени работы первого рода:

R1nijпjпi-tожij. (6.10)

Частный резерв времени работы второго рода:

R2 nij = Тр j - Тр i - tож ij. (6.11)

Свободный (независимый) резерв времени работы:

Rсijрjпi-tожij. (6.12)

Коэффициент напряжённости:

, (6.13)

где: - продолжительность отрезков максимального пути, проходящих через данную работу, не совпадающих с критическим путём;

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

Полученные результаты сведены в табл. 6.3.

Количество событий nc=22

Количество работ np=28

Коэффициент сложности kc=1,27

Продолжительность критического пути дней tкр=70

Сетевой график представлен на рисунке 6.1.

Рисунок 6.1 - Сетевой график

6.5 Расчёт затрат на проведение НИОКР

Для расчета сметы затрат по проведению НИОКР необходимо определить количество исполнителей, трудоемкость работ, материальные затраты и др. Согласно сетевому графику для выполнения работы требуется три исполнителя: ведущий конструктор, инженер, техник. Трудоемкость на каждого исполнителя рассчитана на основании данных таблицы 6.3 по формуле:

, (6.14)

где: Nи - количество исполнителей;

tij - ожидаемая продолжительность работы.

В статью «Основная заработная плата» включаются прямая заработная плата, доплаты по поясному коэффициенту, премия. Прямую заработную плату рассчитываем по формуле:

, (6.15)

где: Mi - трудоемкость работ, чел. · дн.;

Si - часовая тарифная ставка, руб./час;

Доплаты по поясному коэффициенту составляют 15% от прямой заработной платы. Премии составляют 20% от суммы прямой заработной платы и доплаты по поясному коэффициенту. Данные по расчету основной заработной платы представлены в таблице 6.4.

Таблица 6.4 - Расчет основной заработной платы

Затраты по статье расхода «Дополнительная заработная плата» на предприятии рассчитаны в размере 14,5% от ОЗП.

Затраты по статье расхода «Отчисления на социальные нужды» рассчитаны в размере 35,9% от суммы основной и дополнительной заработной платы (ФЗП).

Расшифровка затрат по статье «Материалы» представлена в таблице 6.5

Таблица 6.5 - Материалы

Расшифровка затрат по статье «Комплектующие» представлена в таблице 6.6.

Таблица 6.6 - Комплектующие

Затрат на спецоборудование для данных работ нет, так как спецоборудование для данной работы не приобреталось, расходы на командировки отсутствуют. Накладные расходы, включающие затраты на управление и хозяйственное обслуживание, которые не могут быть отнесены прямым счетом на конкретную тему составляют 5% от суммы затрат по предыдущим статьям.

Смета затрат на НИОКР сведена в табл. 6.7.

Таблица 6.7 - Смета затрат на НИОКР

6.6 Расчет текущих затрат на стадии единичного производства

Расчет текущих затрат будем производить для данного выпуска продукции. Планируется выпустить N=5 изделий.

Затраты на основные материалы и комплектующие рассчитаем по данным таблицы 6.5, таблицы 6.6 умножением на программу выпуска продукции N = 5 шт.

Расходы на топливо и энергию на технологические цели рассчитываем из условия, что в час на данном предприятии тратится в среднем 1 кВт электроэнергии, стоимость которой 3,6 руб. Умножив стоимость электроэнергии в час на время, затраченное на сборку и наладку одного изделия (54 мин 30 сек), получим необходимые затраты на блок.

Для реализации программы выпуска изделия на предприятии необходимо организовать одно рабочее место техника - сборщика. Часовая тарифная ставка рабочего составляет 45 руб./час. Сборка одного изделия занимает 54 мин 30 сек. Прямая заработная плата равна произведению ставки рабочего на количество часов, затраченных на производство изделий.

Фонд основной заработной платы определяется как сумма прямой заработной платы, доплаты по поясному коэффициенту, премии. Доплаты по поясному коэффициенту составляют 15% от прямой заработной платы. Премии составляют 20% от суммы прямой заработной платы и доплаты по поясному коэффициенту.

Дополнительная заработная плата производственных рабочих составляет 14,5% от фонда основной заработной платы. Расходы на подготовку производства составляют 5% от фонда основной заработной платы. Износ инструмента и специальные расходы составляют 10% от фонда основной заработной платы. Расходы на содержание и эксплуатацию оборудования составляют 50% от фонда заработной платы. Цеховые расходы приняты исходя из опыта работы предприятия в размере 70% от основной заработной платы производственных рабочих. Общезаводские расходы составляют 65% от фонда основной заработной платы производственных рабочих. Прочие производственные расходы составляют 0,7% от основной заработной платы. Внепроизводственные расходы составляют 0,45% от величины производственной себестоимости.

Текущие затраты на стадии единичного производства сведены в таблицу 6.8.

Исходя из годовой себестоимости программы выпуска, найдем себестоимость одного изделия по формуле:

, (6.6.1)

где: Сполн - полная себестоимость программы выпуска, руб.;

N - объем выпуска, шт.

Получим Сизд = 1439,22 руб.

Таблица 6.8 - Затраты на стадии производства

Единовременных затрат на транспортировку изделий нет, поскольку на предприятии действует самовывоз. В затратах на монтаж, наладку, пуск изделие не нуждается.

6.7 Расчет экономического эффекта

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

Доход - это сумма денег, полученная после реализации произведенных товаров или услуг

D = P · Q, (6.7.1)

где D - доход;

P = 30000 руб. - рыночная цена единицы товара;

Q = 5 - количество произведенных и проданных единиц товара.

Затраты на разработку, внедрение и применение проекта

Зсум = Зпр + Звн + Зпп, (6.7.2)

где Зсум - суммарные затраты на проект и производство продукции;

Зпр - затраты на разработку технической документации проекта. Исходя из данных таблицы 6.7, Зпр = 114553,04 руб.

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

Звн = Зм + Ззп, (6.7.3)

где Зм - затраты на приобретение материальных элементов (деталей, узлов, комплектующих), которые будут необходимы для создания разработанного объекта или устройства; Исходя из данных таблицы 6.6, Зм = 1224,62 руб.

Ззп - затраты на заработную плату работников которые будут внедрять проект. Данные затраты можно принять как 30…40% от материальных затрат

Ззп = (0,3…0,4) Зм (6.7.4)

Получим: Ззп = 0,35 ·Зм = 0,35 · 1224,62= 428,617 руб.

Зпп - затраты на производство готовой продукции (себестоимость). Исходя из данных таблицы 6.8, Зпп = 7196,12 руб.

Зсум = 114553,04 + 1224,62 + 428,61 + 7196,12 = 123402,4 руб.

Экономический эффект первого года проекта

Э1 = D1 ? Зсум = 150000 - 123402,4 = 26597,6 руб.,

где Э1 - доход полученный за первый год реализации проекта.

Экономический эффект от внедрения проекта составит 26597,6 рубля за год.

Ток = Э1 / D1 = 0,215 (6.7.5)

Срок окупаемости проекта - 6 месяцев.

Проведенное планирование работ позволило выполнить поставленную задачу в установленный срок. Экономические расчеты показали эффективность разработки и производства генератора.

Список используемой литературы

1. Рэд Э. Справочное пособие по высокочастотной схемотехнике. - Москва.: Мир. - 1990. - 254 с.: ил.

2. З.А. Зима, И.А. Колпаков, А.А. Романов, М.Ф. Тюхтин. Системы кабельного телевидения. - Москва: Издательство МГТУ имени Баумана. - 2004. - 600 с.: ил.

3. М.С. Воробьёв, Л.П. Кудрин, Н.И. Сазонов, А.Б. Толкачёв, А.Б. Хашимов. Приёмные распределительные системы телевидения. - Челябинск: Издатель Татьяна Лурье, 2002. - 240 с.: ил.

4. Б.И. Крук, В.Н. Попантонопуло, В.П. Шувалов. Телекоммуникационные системы и сети. Современные технологии. - под ред. В.П. Шувалова. - 2003. - 647 с.: ил.

5. Проектирование радиопередающих устройств СВЧ: Учебное пособие для вузов / Уткин Г.М., Благовещенский М.В., Жуховицкая В.П. и др.; Под реда. Г.М. Уткина. - М.: Сов. Радио. - 1979. - 320 с.: ил

6. Активные RC_фильтры на операционных усилителях. Перевод с англ. Г.Н. Алексакова. - М.: «Энергия», 1974. - 64 с., ил.

7. Зааль Р. Справочник по расчету фильтров: Пер. с нем. - М.: Радио и связь, 1983. - 752 с., ил.

8. Сетевые методы планирования и управления: Методические указания к курсовому проекту для студентов Приборостроительного факульткта / Составители: В.С. Зинневич, Л.А. Баев, И.П. Мешковой. - Челябинск: Изд. ЮУрГУ, 1998. - 22 с.

9. Н.З. Шварц. Линейные транзисторные усилители СВЧ. - М.: Сов. Радио. - 1980. - 368 с.: ил.

10. Организация дипломного проектирования: Методические указания к выполнению выпускных квалификационных работ / Д.В. Астрецов, Т.М. Лысенко. Екатеринбург: ГОУ ВПО УГТУ-УПИ, 2003. 48 с.

11. Стандарт предприятия. Дипломная научно-исследовательская работа студента. Структура и правила оформления. СТП ЮУрГУ 19-2003 / Составители: Т.И. Парубочая, Н.В. Сырейщикова, С.Д. Ваулин, В.Р. Гофман. - Челябинск: Изд. ЮУрГУ, 2003. - 19 с.

Листинг фрагмента программы

void ClrUART0_RecBuf (BYTE ClrBytes)

{

if (ClrBytes > UART0. InPk_Len)

ClrBytes = UART0. InPk_Len;

 // **

ChangeIPL(1);

UART0. InPk_Len -= ClrBytes;

UART0. InPk_Start = (UART0. InPk_Start + ClrBytes) & c_InPk0_lenmsk;

ChangeIPL(0);

UART0. InPk_Processed = 0;

 // **

}

BYTE GetByteFrUART0InB (BYTE Index)

{

return UART0. InPk_Buf[(UART0. InPk_Start + Index) & c_InPk0_lenmsk];

}

BYTE CheckCompCmd_TypeLen (BYTE Type, WORD Len)

{

BYTE i;

for (i=0; i<=comcmd_Measure1P; ++i)

if (Type == ComCmds[i].CmdType_v && Len == ComCmds[i].CmdLen)

return 1;

 // Иначе возвращается '0'.

return 0;

}

void CopyFromCycBuf (BYTE* To, BYTE* Buf, BYTE Start, BYTE Len, WORD BufLen)

{ // Копирование из циклического буфера произвольной длины в линейный.

Buf += Start;

while (Len-)

{

*To++ = *Buf++;

if (++Start == BufLen)

{

Start = 0;

Buf -= BufLen;

}

}

}

BYTE ComputeCRC (BYTE* Buf, BYTE last_xor, WORD HowMuch)

{

do

last_xor ^= *Buf++;

while(-HowMuch);

return last_xor;

}

BYTE FillCProtoShellAndType (xCProto_CmdShell *pPk, BYTE Type, WORD RestPkLen)

{ // Заполнение обязательных одинаковых для всех пакетов полей и подсчёт КС.

pPk->Header = c_COMM_HEADER;

pPk->SenderID = c_DEVICE_ID;

pPk->RestPk_Len = RestPkLen;

*((BYTE*)&pPk->RestPk_Len + sizeof (pPk->RestPk_Len)) = Type;

return ComputeCRC((BYTE*) pPk+1, 0, sizeof (xCProto_CmdShell)+1-1);

}

#ifndef Tuner_1v1

 // Версия функции для платы CMU_1v0.

void LoadFwdTuner (WORD Freq, WORD Level)

{

BYTE i, j, mask;

xFwdTuner FwdTunerLoadWord;

 // xTunerMeasCmdWord TunerCmdW;

 // xMeasDescr TunerCmdDescr;

FwdTunerLoadWord.byte_s.B[3] = 0;

FwdTunerLoadWord.byte_s.B[2] = 0;

FwdTunerLoadWord.bit_s.OS = 0;

 // FwdTunerLoadWord.bit_s.RSB = 0; //Reference divider = 640.

FwdTunerLoadWord.bit_s.RSB = 1; //Reference divider = 512/1024.

 // FwdTunerLoadWord.bit_s.RSA = 0; //Reference divider = 1024.

FwdTunerLoadWord.bit_s.RSA = 1; //Reference divider = 512/640.

FwdTunerLoadWord.bit_s.T_2_0 = 1; //Normal operation.

FwdTunerLoadWord.bit_s.CP = 0; // 60uA Current of charge pump.

 // FwdTunerLoadWord.bit_s.N_14_0 = 6800;

FwdTunerLoadWord.bit_s.N_14_0 = (Freq<<1); /// ((WORD) (0.0078125*128)); //Reference divider = 512.

 // FwdTunerLoadWord.bit_s.N_14_0 = ((Freq)*5)>>1; //Reference divider = 640.

// FwdTunerLoadWord.bit_s.N_14_0 = ((Freq+4)<<2); //Reference divider = 1024.

FwdTunerLoadWord.bit_s.BS_4_1 = 0;

 // Загрузка синтезатора частоты в модуляторе прямого канала.

FWD_CE = 1;

i = 3;

j = 3;

mask = 0x04;

do

{

do

{

if (FwdTunerLoadWord.byte_s.B[i] & mask)

SIO4_DATA = 1;

else

SIO4_DATA = 0;

mask >>= 1;

SIO4_CLK = 1;

asm («NOP»);

asm («NOP»);

asm («NOP»);

SIO4_CLK = 0;

}

while(-j);

j = 8;

mask = 0x80;

} while (i-);

SIO4_DATA = 0;

FWD_CE = 0;

 // Загрузка ЦАП'а в модуляторе прямого канала.

Level = Level*cnst_FwdTransm_Lev_mult + cnst_FwdTransm_Lev_add;

FwdTunerLoadWord.byte_s.B[0] = (Level) & 0xFF;

FwdTunerLoadWord.byte_s.B[1] = (Level) >> 8; // Уровень на выходе ЦАП'а.

i = 1;

j = 8;

mask = 0x80;

FWD_ADCE = 0;

do

{

do

{

if (FwdTunerLoadWord.byte_s.B[i] & mask)

SIO4_DATA = 1;

else

SIO4_DATA = 0;

mask >>= 1;

SIO4_CLK = 1;

asm («NOP»);

asm («NOP»);

asm («NOP»);

SIO4_CLK = 0;

}

while(-j);

j = 8;

mask = 0x80;

} while (i-);

SIO4_DATA = 0;

FWD_ADCE = 1;

}

#else

 // Версия функции для тюнера Tuner_1v1.

void LoadFwdTuner (WORD Freq, WORD Level)

{ // Загрузка синтезатора I2C_шного передатчика и ЦАП'а DAC7513.

BYTE i, j, mask;

xFwdTuner FwdTunerLoadWord;

xTunerMeasCmdWord tmpTunerCmdW;

xMeasDescr volatile tmpTunerCmdDescr;

 // Загрузка ЦАП'а в модуляторе прямого канала.

Level = Level*cnst_FwdTransm_Lev_mult + cnst_FwdTransm_Lev_add;

FwdTunerLoadWord.byte_s.B[0] = (Level) & 0xFF;

FwdTunerLoadWord.byte_s.B[1] = (Level) >> 8; // Уровень на выходе ЦАП'а.

i = 1;

j = 8;

mask = 0x80;

FWD_ADCE = 0;

do

{

do

{

if (FwdTunerLoadWord.byte_s.B[i] & mask)

SIO4_DATA = 1;

else

SIO4_DATA = 0;

mask >>= 1;

SIO4_CLK = 1;

asm («NOP»);

asm («NOP»);

asm («NOP»);

SIO4_CLK = 0;

}

while(-j);

j = 8;

mask = 0x80;

} while (i-);

SIO4_DATA = 0;

FWD_ADCE = 1;

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

tmpTunerCmdW. Cmd = cmdMT_LoadFwdTransmitter;

tmpTunerCmdW. MeasDescr = (xMeasDescr*)&tmpTunerCmdDescr;

tmpTunerCmdDescr. StartFreq = Freq;

tmpTunerCmdDescr. Flags. Busy = 1;

tmpTunerCmdDescr. Flags. Interrupt = 0;

cQueueSend (CommandQueue_of_TunMeas, &tmpTunerCmdW, 0);

while (tmpTunerCmdDescr. Flags. Busy == 1)

vTaskDelay(1);

}

#endif

void MakeAndSendFwdPack (BYTE Cmd, BYTE Param)

{

xStruct_PtrAndLen FwdTrCmd;

BYTE i;

switch(Cmd)

{

union

{ // Структура, которая используется только внутри switch'а.

struct xs_FWD_CMD_00 pack_0_body;

struct xs_FWD_CMD_01 pack_1_body;

struct xs_FWD_CMD_02 pack_2_body;

struct xs_FWD_CMD_03 pack_3_body;

struct xs_FWD_CMD_03 pack_4_body;

} xFwdPacks;

case fwdtr_ConfigOfPSG_Fr:

{ // Команда «Настройка ГПС: частоты».

for (i=0; i<cnst_PSG_Num_Of_Freqs; ++i)

{ // Заполняем тело пакета частотами ГПСа.

WORD f = PsgArray[Param].Freqs[i].Freq;

if (f!= cnst_PSG_null_freq)

{

xFwdPacks.pack_0_body. Freqs[i].MHz = f>>3;

xFwdPacks.pack_0_body. Freqs[i].kHz = f & 0x07;

}

else

break;

}

xFwdPacks.pack_0_body. Cmd = fwdtr_ConfigOfPSG_Fr;

xFwdPacks.pack_0_body.PSG. GenNum = Param;

xFwdPacks.pack_0_body.PSG. Freqs = i;

xFwdPacks.pack_0_body.PSG.nevermind = 0;

i = sizeof (xFwdPacks.pack_0_body) - ((cnst_PSG_Num_Of_Freqs-i)<<1);

FwdTrCmd. Cnt = sizeof(xFwdChPackOblFields) + i + sizeof(WORD);

FwdTrCmd. Ptr = pvPortMalloc (FwdTrCmd. Cnt);

FastByteConstLoad((void*) (FwdTrCmd. Ptr + sizeof(xFwdChPackOblFields)),

(WORD)&xFwdPacks.pack_0_body,

(BYTE) ((DWORD)&xFwdPacks.pack_0_body >> 16),

i);

break;

} // Конец case'а по «Настройка ГПС: частоты».

case fwdtr_ConfigOfPSG_Txt:

{ // Команда «Настройка ГПС: комментарии».

xFwdPacks.pack_1_body. Cmd = fwdtr_ConfigOfPSG_Txt;

xFwdPacks.pack_1_body.PSG. GenNum = Param;

xFwdPacks.pack_1_body.PSG.nevermind = 0;

for (i=0; i<cnst_PSG_TextMsgLen; ++i)

{

BYTE s = PsgArray[Param].TextMsg[i];

if (s!= 0) // Записываем в пакет ненулевые символы.

xFwdPacks.pack_1_body. TxtMsg[i] = s;

else

break; // Встретили нулевой символ.

}

 // Здесь i - кол-во ненулевых символов.

xFwdPacks.pack_1_body. TxtMsg[i] = 0; // Конец строки, как и обещал.

i += 3;

FwdTrCmd. Cnt = sizeof(xFwdChPackOblFields) + i + sizeof(WORD);

FwdTrCmd. Ptr = pvPortMalloc (FwdTrCmd. Cnt);

FastByteConstLoad((void*) (FwdTrCmd. Ptr + sizeof(xFwdChPackOblFields)),

(WORD)&xFwdPacks.pack_1_body,

(BYTE) ((DWORD)&xFwdPacks.pack_1_body >> 16),

i);

break;

} // Конец case'а по «Настройке ГПС: комментарии».

case fwdtr_LevelsOfPSG:

{ // Команда «Уровни сигнала с ГПС».

for (i=0; i<cnst_PSG_Num_Of_Freqs; ++i)

{ // Заполняем тело пакета чатотами ГПСа.

if (PsgArray[Param].Freqs[i].Freq!= cnst_PSG_null_freq)

xFwdPacks.pack_2_body. Levels[i] = PsgArray[Param].Freqs[i].Level;

else

break;

}

xFwdPacks.pack_2_body. Cmd = fwdtr_LevelsOfPSG;

xFwdPacks.pack_2_body.PSG. GenNum = Param;

xFwdPacks.pack_2_body.PSG. Freqs = i;

xFwdPacks.pack_2_body.PSG.nevermind = 0;

i = (i<<1) + 2;

FwdTrCmd. Cnt = sizeof(xFwdChPackOblFields) + i + sizeof(WORD);

FwdTrCmd. Ptr = pvPortMalloc (FwdTrCmd. Cnt);

FastByteConstLoad((void*) (FwdTrCmd. Ptr + sizeof(xFwdChPackOblFields)),

(WORD)&xFwdPacks.pack_2_body,

(BYTE) ((DWORD)&xFwdPacks.pack_2_body >> 16),

i);

break;

} // Конец case'а по «Уровни сигнала с ГПС».

case fwdtr_LevelsOfSpectrum:

{ // Команда «Спектр обратного канала».

xFwdPacks.pack_3_body. Cmd = fwdtr_LevelsOfSpectrum;

xFwdPacks.pack_3_body. StartFr = Param;

xFwdPacks.pack_3_body. StopFr = Param + 1;

i = sizeof (xFwdPacks.pack_3_body);

FwdTrCmd. Cnt = sizeof(xFwdChPackOblFields) + i + sizeof(WORD);

FwdTrCmd. Ptr = pvPortMalloc (FwdTrCmd. Cnt);

FastByteConstLoad((void*) (FwdTrCmd. Ptr + sizeof(xFwdChPackOblFields)),

(WORD)&xFwdPacks.pack_3_body,

(BYTE) ((DWORD)&xFwdPacks.pack_3_body >> 16),

3);

FastByteConstLoad((void*) (FwdTrCmd. Ptr + sizeof(xFwdChPackOblFields) + 3),

(WORD) (&pw_RC_Scan_Buf [Param*_1MHz_subdiv - cnst_RevMinFreq]),

(BYTE) ((DWORD) (&pw_RC_Scan_Buf [Param*_1MHz_subdiv - cnst_RevMinFreq]) >> 16),

i_3);

break;

} // Конец case'а по «Спектр обратного канала».

case fwdtr_LevelsOfAFC:

{ // Команда «Спектр обратного канала».

xFwdPacks.pack_4_body. Cmd = fwdtr_LevelsOfAFC;

xFwdPacks.pack_4_body. StartFr = Param;

xFwdPacks.pack_4_body. StopFr = Param + 1;

i = sizeof (xFwdPacks.pack_4_body);

FwdTrCmd. Cnt = sizeof(xFwdChPackOblFields) + i + sizeof(WORD);

FwdTrCmd. Ptr = pvPortMalloc (FwdTrCmd. Cnt);

FastByteConstLoad((void*) (FwdTrCmd. Ptr + sizeof(xFwdChPackOblFields)),

(WORD)&xFwdPacks.pack_4_body,

(BYTE) ((DWORD)&xFwdPacks.pack_4_body >> 16),

3);

FastByteConstLoad((void*) (FwdTrCmd. Ptr + sizeof(xFwdChPackOblFields) + 3),

(WORD) (&pw_RC_Scan_Buf [Param*_1MHz_subdiv - cnst_RevMinFreq]),

(BYTE) ((DWORD) (&pw_RC_Scan_Buf [Param*_1MHz_subdiv - cnst_RevMinFreq]) >> 16),

i_3);

break;

} // Конец case'а по «АЧХ обратного канала».

} // Конец switch'а.

(*(xFwdChPackOblFields*) FwdTrCmd. Ptr).PreSync_00 = 0x00;

(*(xFwdChPackOblFields*) FwdTrCmd. Ptr).PreSync_FF = 0xFF;

(*(xFwdChPackOblFields*) FwdTrCmd. Ptr).Sync_55 = 0x55;

(*(xFwdChPackOblFields*) FwdTrCmd. Ptr).SourceDevAddr = 0x02;

(*(xFwdChPackOblFields*) FwdTrCmd. Ptr).RestPackLen =

FwdTrCmd. Cnt - sizeof(xFwdChPackOblFields);

*(WORD*) (FwdTrCmd. Ptr + sizeof(xFwdChPackOblFields) + i) =

usHdw_crc (0, FwdTrCmd. Ptr + sizeof(xFwdChPackOblFields), i);

/* #ifdef LogDebg

{

xStruct_PtrAndLen TrCmd;

BYTE *CommOutB;

CommOutB = pvPortMalloc(128);

 // Рисуем адрес размещенной области памяти, где лежит пакет.

TrCmd. Cnt = DwrdSymbolize((DWORD) (FwdTrCmd. Ptr), CommOutB);

CommOutB [TrCmd. Cnt++] = ' ';

// Рисуем длину пакета.

TrCmd. Cnt += DwrdSymbolize (FwdTrCmd. Cnt, &CommOutB [TrCmd. Cnt]);

for (i=0; i<FwdTrCmd. Cnt; ++i)

{

CommOutB [TrCmd. Cnt++] = ' ';

 // Рисуем содержимое пакета.

TrCmd. Cnt += DwrdSymbolize (FwdTrCmd. Ptr[i], &CommOutB [TrCmd. Cnt]);

}

TrCmd. Cnt += MyStrLoad (&CommOutB[TrCmd. Cnt], // Абзац.

(BYTE far*) ExtraDispInfoStrings[11]) - 1;

TrCmd. Ptr = CommOutB;

cQueueSend (CommandQueue_of_Uart0Transm, (void*)&TrCmd, 0);

}

#endif*/

cQueueSend (CommandQueue_of_FwdTransm, (void*)&FwdTrCmd, 0);

}

void vRevChProc (portSHORT Param)

{

BYTE a, b, c;

xs_RevChCmd xRCCmd;

xs_RevChVars *pxRCVars;

pxRCVars = 0;

for(;)

{

DWORD Time = ulTaskGetTickCount();

if (pxRCVars == 0 ||

(pxRCVars!= 0 && pxRCVars->b_rcproc_action == rcpac_Thinking &&

usQueueMessagesWaiting (CommandQueue_of_RevChProc)!= 0))

{ // Приём управляющей команды.

cQueueReceive (CommandQueue_of_RevChProc, (void*)&xRCCmd, 0);

Time = ulTaskGetTickCount();

switch (xRCCmd. Cmd)

{

// *** СТАРТ ***.

case rccmd_StartProc:

{ // Запуск процесса обработки ОК.

 // Выделяется память под переменные, обнуляется.

if (pxRCVars == 0 &&

(xRCCmd. Param == tskid_MainMnuT ||

xRCCmd. Param == tskid_Uart0T))

{

pxRCVars = pvPortMalloc (sizeof(xs_RevChVars));

FastNearMemFill (pxRCVars, sizeof (xs_RevChVars), 0);

}

 // Запоминаем название задачи, которая нас запускает.

if (xRCCmd. Param == tskid_MainMnuT)

pxRCVars->xFlags.xOwners. MainMnuExec = 1;

else if (xRCCmd. Param == tskid_Uart0T)

pxRCVars->xFlags.xOwners.U0Proc = 1;

if (xPrgFlags2. RevChProcActive == 1)

 // На самом деле обработчки уже запущен, поэтому без инициализации.

break;

pxRCVars->w_rcproc_scanfreq = pxRCVars->w_rcproc_newfreq = cnst_RevMinFreq;

 // Блок таймеров.

pxRCVars->xLastTimes.dw_LT_PSGs_Check =

Time - cnst_PSG_Time_CheckMinPeriod;

pxRCVars->xLastTimes.dw_LT_RC_Scan =

Time - cnst_PSG_Time_ScanFullRCDiap;

pxRCVars->xLastTimes.dw_LT_FindScanningPSG =

Time;

pxRCVars->xLastTimes.dw_LT_FwdTr_Pack0 =

Time - cnst_FwdTr_Time_Pack0;

pxRCVars->xLastTimes.dw_LT_FwdTr_Pack1 =

Time - cnst_FwdTr_Time_Pack1;

 // Инициализация команды для тюнера.

pxRCVars->xRC_MeasCmd. MeasDescr = &pxRCVars->xRC_MeasDescr;

pxRCVars->xRC_MeasDescr.pwMaxLev_StatVal = &pxRCVars->wMaxLev_StatVal;

{ // Установка аттенюатора.

xMEASURE_OPTIONS xMeasOptions;

ReadSingleDevOption((void*)&xMeasOptions, pos_opAttenuation, sz_opAttenuation);

SetMeasureDescrAtt (&xMeasOptions, &pxRCVars->xRC_MeasDescr);

xPrgFlags2. AttVal = pxRCVars->xRC_MeasDescr. Flags. AttVal;

xPrgFlags2. AutoAtt = pxRCVars->xRC_MeasDescr. Flags. AutoAtt;

}

 // Инициализация структуры ГПС-ов.

{

for (a=0; a<cnst_PSG_Num_Of_Devs; ++a)

{

FastNearMemFill((PsgArray[a].TextMsg), cnst_PSG_TextMsgLen, ' ');

for (b = 0; b < cnst_PSG_Num_Of_Freqs; ++b)

{

PsgArray[a].Freqs[b].Freq = cnst_PSG_null_freq;

PsgArray[a].Freqs[b].Level = 0;

PsgArray[a].Freqs[b].WarningLevel = cnst_PSG_PauseAllFreqDel;

}

PsgArray[a].xPrstInfo. PresetNum = 0xFF;

PsgArray[a].xPrstInfo. UsingPreset = 0;

PsgArray[a].xAttributes. Scanning = 0;

}

}

 // Инициализация пресетов ГПС-ов.

pxRCVars->bNum_of_ActvPSGs += bPSGPresetsHandler (0, 0, psgprst_InitPrsts);

#ifdef LogDbg2

{

xStruct_PtrAndLen TrCmd;

BYTE *CommOutB;

CommOutB = pvPortMalloc(40);

// Пишем 'ActivePSG: x'.

TrCmd. Cnt = MyStrLoad (CommOutB,

(BYTE far*) ExtraDispInfoStrings[28]) - 1;

CommOutB [TrCmd. Cnt++] = '0' + pxRCVars->bNum_of_ActvPSGs;

CommOutB [TrCmd. Cnt++] = '\n';

TrCmd. Ptr = CommOutB;

cQueueSend (CommandQueue_of_Uart0Transm, (void*)&TrCmd, 0);

}

#endif

 // Выделение памяти под буфер спектра ОК.

pw_RC_Scan_Buf =

pvPortMalloc((cnst_RevMaxFreq+1 - cnst_RevMinFreq)*sizeof(WORD));

FastNearMemWordFill((void*) pw_RC_Scan_Buf,

(cnst_RevMaxFreq+1 - cnst_RevMinFreq),

0);

 // !!! Временно, для отладки.

 // Якобы есть у нас генератор, который мы будем измерять.

 // PsgArray[2].Freqs[0].Freq = mac_ConvFreqFromMHz(10);

 // pxRCVars->bNum_of_ActvPSGs = 1;

 // !!! Временно, для отладки.

#ifdef LogDebg

{

xStruct_PtrAndLen TrCmd;

BYTE *CommOutB;

CommOutB = pvPortMalloc(32);

TrCmd. Cnt = DwrdSymbolize (Time, &CommOutB[0]); // Нарисовали текущее время.

TrCmd. Cnt += MyStrLoad (&CommOutB[TrCmd. Cnt], //ClrAllStages.

(BYTE far*) ExtraDispInfoStrings[12]) - 1;

TrCmd. Cnt += MyStrLoad (&CommOutB[TrCmd. Cnt], // Абзац.

(BYTE far*) ExtraDispInfoStrings[11]) - 1;

TrCmd. Ptr = CommOutB;

cQueueSend (CommandQueue_of_Uart0Transm, (void*)&TrCmd, 0);

}

#endif

 // Вот теперь можно сказать, что обработка ОК запущена.

xPrgFlags2. RevChProcActive = 1;

break;

} // Конец case'а по запуску обработчика ОК.

 // *** КОНЕЦ «СТАРТ ОК» ***.

 // *** «ЗАВЕРШЕНИЕ РАБОТЫ ОК» ***.


Подобные документы

  • Исследование функциональной зависимости параметров сети. Мощность мобильного терминала. Расчет параметров сетей связи стандарта CDMA. Анализа трафик-каналов прямого и обратного соединений, пилот-канала, канала поискового вызова и канала синхронизации.

    курсовая работа [166,1 K], добавлен 15.09.2014

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

    контрольная работа [878,1 K], добавлен 15.06.2015

  • Структура и монтаж телекоммуникационной системы. Мониторинг работоспособности оборудования, линий и каналов. Управление станционными и абонентскими данными. Техобслуживание интегрированных программных коммутаторов. Устранение повреждений кабельной сети.

    отчет по практике [1,8 M], добавлен 18.01.2015

  • Физическая сущность измеряемого технологического параметра запыленности воздуха в деревообрабатывающей промышленности. Структурное моделирование и разработка схемы автоматизации измерительного канала запыленности; выбор комплекса технических средств.

    курсовая работа [362,6 K], добавлен 02.06.2013

  • Проект измерительного канала с преобразователем перемещения - кода для ротационного фотоэлектрического датчика, обеспечивающего контроль параметров движения рабочего органа по координатам положения и скорости. Расчет разрядной сетки преобразователя.

    лабораторная работа [72,8 K], добавлен 04.04.2012

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

    курсовая работа [806,7 K], добавлен 06.02.2013

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

    курсовая работа [112,7 K], добавлен 07.11.2012

  • Понятие цифрового интерактивного телевидения. Классификация интерактивного телевидения по архитектуре построения сети, по способу организации обратного канала, по скорости передачи данных, по степени интерактивности. Мировой рынок платного телевидения.

    курсовая работа [276,4 K], добавлен 06.02.2015

  • Структура структурированных кабельных систем. Особенности проектирования СКС как технического объекта. Расчет основных параметров сегмента защищенной сети передачи данных. Определение вероятности ложного фазирования кадра в информационном канале.

    курсовая работа [795,8 K], добавлен 29.09.2015

  • Разработка структурной схемы и нумерации существующей аналогово-цифровой сети. Расчет возникающих и межстанционных нагрузок, емкости пучков связей. Оптимизация топологии кабельной сети. Расчет скорости цифрового потока и выбор структуры цифровой сети.

    курсовая работа [1,3 M], добавлен 07.08.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.