Перейти к содержанию
    

программная реализация MIL-STD-1553

ПОдскажите, может быть, у кого есть опыт реализации алгоритма обработки сообщений по этому протоколу (отечественный аналог - ГОСТ 26765.52-87). Нужна часть, отвечающая за обработку командных слов, формирование ответного слова.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

А что Вы собираетесь сделать? В каком конструктие ? Для чего ? Если можно, чуть подробней, пожалуйста.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А что Вы собираетесь сделать? В каком конструктие ? Для чего ? Если можно, чуть подробней, пожалуйста.

 

У нас планируется разработка манчестерского терминала с КШ/ОУ/МТ по ГОСТу, причем с нуля - и сейчас вот есть мысль сделать его протокольную часть программной, аппаратная часть будет обеспечивать только кодирование/декодирование манчестерского кода. Делать планируется на вычислительной платке PC-104 типа Advantech или Octagon, соотвественно, на Borland C++/ассемблер. А писать все с нуля, разумеется, не очень хочется, да и не уверенности пока в собственных силах - вот и думаю, может быть, кто-то виде в сети программные исходники, либо хотя бы общий алгоритм обработки. Я нашел похожие исходники на языке Ада вот здесь - изучаю. К сожалению, там код разман по 74 файлам, да и общее назначение пакета более широкое.

Изменено пользователем AnDrum

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну сразу. что будет плохо.

1. Этот стандарт весьма непрост. Реализовать протокол програмно , причем в полном соотвии с ГОСТ, будет очень трудно. А военные наверняка потребуют полнлго соответствия стандарту , и будут , между прочим, правы.

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

3. Зачем все самим делать с нуля. В РС-104ом конструктиве это все уже есть, причем с приемкой "5" , в виде одной платы. Програмное обеспечение прилагается. Сертификаты полного соответствия ГОСТу. Продается свободно. Цена что-то 700 - 800 уев. Срок поставки что-то месяца полтлра.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну сразу. что будет плохо.

1. Этот стандарт весьма непрост. Реализовать протокол програмно , причем в полном соотвии с ГОСТ, будет очень трудно. А военные наверняка потребуют полнлго соответствия стандарту , и будут , между прочим, правы.

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

3. Зачем все самим делать с нуля. В РС-104ом конструктиве это все уже есть, причем с приемкой "5" , в виде одной платы. Програмное обеспечение прилагается. Сертификаты полного соответствия ГОСТу. Продается свободно. Цена что-то 700 - 800 уев. Срок поставки что-то месяца полтлра.

 

Спасибо вам за мнение! Я, в целом, не спорю, что идея не из лучших ;-) Но ради интереса давайте подискутируем - мне хочется набраться опыта перед разговором с начальством)

1.) А почему очень трудно? Ведь аппаратно же его реализуют, и я так понимаю - успешно. А любая реализация - это ведь по сути своей, какой-то алгоритм - а алгоритм программно реализовать, думаю, проще, чем в железе. У нас, кстати, не для военных делается - а для нефтегаза. Кому-то потребовался такой вот манчестер)

2.) Насколько я понял, ответное слово должно быть дано через 4 микросекунды после окончания передачи командного. Если принять производительность платы за 133 Мгц, то получится, что на одно командное слово придется в районе 530 тактов процессора. В общем-то, это не мало! Передача по шине у нас в районе 10 мегабит/сек получается - тоже с запасом.

3.) Я нашел только элкусовскую платку, стоимостью в полторы тысячи долларов. МОжет быть, посоветуете еще какую-любо фирму надежную?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

_________________________

 

1. Все реализуют... . Но задачка будет непростая, это вы сразу поймете, как к работе приступите. Почитайте-ка ГОСТ внимательно. Он достаточно заковырист. Потом для нефтегаза или военных не очень то принципиально. Принципиально что бы Ваша аппаратура соответствовала ГОСТу полностью, и тогда у Вас не будет проблем со стыковкой с другой аппаратурой .

2. Скорость распространения света - 300 000 км/с . Длина линии в MIL-1553 до 300 м. Посчитайте время прохождения сигнала. Причем имейте в ввиду, сигнал должен пройти туда и обратно. Плюс задержка на приемо-передатчиках. На передающей стороне и на приемной. Времени осталось совсем мало. Так ?

Передача по шине в MIL-1553B вообще-то 1 мбит / сек.

3. Изделие ТХ1-104-12ISA в индустриальном исполнении стоит у Элкуса соглано прайсу 693$, в обычном - 600 По любому разработка с нуля у Вас будет дороже. И дольше. И непредсказуемее. А насчет надежности фирмы , то в Элкусе специаллисты этим ГОСТом уже лет наверно 20 занимаются.

 

Ну вот пожалуй, вкратце.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ПОдскажите, может быть, у кого есть опыт реализации алгоритма обработки сообщений по этому протоколу (отечественный аналог - ГОСТ 26765.52-87). Нужна часть, отвечающая за обработку командных слов, формирование ответного слова.

Хотели сделать на FPGA, но из-за спешки решили взять готовый контроллер. В итоге сделали плату MIL-STD-1553B на контроллере 1879ВА1Т (производство НТЦ Модуль http://www.module.ru/ruproducts/mil_std/1879ba1t.shtml ) в конструктиве AT-96. Шина AT-96 по своей сути является шиной ISA с разъемом DIN41612. Приемо-передатчик Holt HI-1567 трансы DB-2725. Разъемы BNC.

Если интересно - спрашивайте :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я всё слово принимаю в 40 бит сдвиговый регистр на удвоенной частоте (2Мгц). Подстройка частоты приема производится по каждому фронту на обоих входных линиях.

Провожу контроль на достоверность манчестера (для поля данных могут быть одинаковыми не более 2 соседних разрядов), а 3 подряд единицы и 3 нулей по одной линии и 3 нуля и 3 единицы по другой (или наоборот) - есть синхропоследовательность.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А вот объясните мне пожалуйста. Если фаза этой удвоенной частоты совпадет с фазой входящего манчестера, то есть фронты тактовой частоты, которыми вы хлопате его, попадут на фронты манчестера - по идее должно наловиться мусора, или я что-то не понимаю? И ведь вероятность этого не мала: длительность фронта у манчестера 100 ns минимум (и это на выходе), если считать фронт тактовой частоты идеальным то вероятность его попадания в диапазон 100 ns на промежутке в 1000 ns (время одного бита при 1 мбод) составляет 10%. Я бы ловил на учетверенной частоте, и выбирал бы потом либо четные, либо нечетные отсчеты, но так почему-то никто не делает, и у всех все работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Входной сигнал ресинхронизируется на 12МГц, схемой подстройки частоты выделяется середина четного и нечетного отсчета в битовом интервале, по этому сигналу (2Мгц) и происходит запись в сдвиговый регистр. Выбирать надо все (четные и нечетные) отсчеты, для контроля достоверности данных в системе кодирования "манчестер". Удобней синхронизовать на 16 МГц, точность определения середины отсчетов лучше.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Еще поанализировал код и вроде понял. Входной поток хлопается на сколь угодно высокой частоте, и от того момента, где получился любой перепад отсчитывается 250 ns (половина полубита) и хлопается "полубит", а если перепада не было то через 500 ns "полубит" захлопывается все равно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Еще поанализировал код и вроде понял. Входной поток хлопается на сколь угодно высокой частоте, и от того момента, где получился любой перепад отсчитывается 250 ns (половина полубита) и хлопается "полубит", а если перепада не было то через 500 ns "полубит" захлопывается все равно.

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

 

Подстройка частоты приема производится по каждому фронту на обоих входных линиях.

хотя так оно может быть и правильнее, все-таки Манчестер - синхронный интерфейс. т.е. по первому прерыванию делаем первый отсчет 250нс, а последующие по 500нс, но если приходит прерывание, то перезапускаем отсчет. в результате получается так:

1.по первому прерыванию делаем три отсчета (250-500-500нс) для приема первой половины синхроимпульса;

2.по второму прерыванию делаем три отсчета (250-500-500нс) для приема второй половины синхроимпульса;

3.по последующим прерываниям делаем по одному отсчету (250нс) для приема полубита.

 

честно говоря 20 лет назад писал диплом по теме "кодек Манчестерского кода на полузаказной БИС" (Зеленоградская разработка была), но хоть убей не помню уже как у них аппаратно это было реализовано

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Еще поанализировал код и вроде понял. Входной поток хлопается на сколь угодно высокой частоте, и от того момента, где получился любой перепад отсчитывается 250 ns (половина полубита) и хлопается "полубит", а если перепада не было то через 500 ns "полубит" захлопывается все равно.

 

простой счетчик с коэффициентом пересчета на период полубита. Начальная установка счетчика по любому перепаду однопроводной линии

always @(posedge clk)
begin
case ({out_data_filter, out_data_filter_n})
             2'b00: {data_to_decoder, bus_traffic} <= {~data_to_decoder, 1'b0};
             2'b01: {data_to_decoder, bus_traffic} <= { 1'b0,            1'b1};
             2'b10: {data_to_decoder, bus_traffic} <= { 1'b1,            1'b1};
             2'b11: {data_to_decoder, bus_traffic} <= {~data_to_decoder, 1'b0};       
endcase
end

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

честно говоря 20 лет назад писал диплом по теме "кодек Манчестерского кода на полузаказной БИС" (Зеленоградская разработка была), но хоть убей не помню уже как у них аппаратно это было реализовано

У меня дома в макулатуре схема кодека M-II на рассыпухе валяется с прошлой работы :biggrin:

10 Мгц, однако. Можно и больше, но удвоенная - 20МГц на 1533 с трудом уже идёт.

Там задержка 3/4 периода на цепочке из 3-х катушек была реализована.

MIL STD 1553 (или наш мультиплексный канал) - всего 1МГц. Вообще без проблем, если на железе. Например, на маленькой ПЛИСке.

Есть и советский однокристальный кодек, не помню как называется. На тактовой 12МГц как раз для этих целей заточен.

Ностальгия... Всю жизнь только манчестером и занимался.

 

А система в манчестере очень простая. От любого фронта отсчитываем 3/4 периода и защёлкиваем информацию.

Далее ждём следующий фронт.

Только вначале должна быть синхра из длинных импульсов (чередование 1 и 0), чтобы быстро синхронизироваться.

В MIL STD 1553 по-моему хитрее, там стартовый интервал равен 1,5 битовых (если ничего не путаю).

Вообще програмно можно это дело реализовать даже на контроллере.

 

Готовые модули на любой вкус и цвет брали у питерского элкуса.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...