реклама на сайте
подробности

 
 
> программная реализация MIL-STD-1553
AnDrum
сообщение Aug 1 2006, 20:35
Сообщение #1





Группа: Новичок
Сообщений: 3
Регистрация: 1-08-06
Пользователь №: 19 253



ПОдскажите, может быть, у кого есть опыт реализации алгоритма обработки сообщений по этому протоколу (отечественный аналог - ГОСТ 26765.52-87). Нужна часть, отвечающая за обработку командных слов, формирование ответного слова.
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 14)
ВВА
сообщение Aug 4 2006, 07:42
Сообщение #2





Группа: Новичок
Сообщений: 4
Регистрация: 3-08-06
Пользователь №: 19 286



Цитата(AnDrum @ Aug 2 2006, 00:35) *


А что Вы собираетесь сделать? В каком конструктие ? Для чего ? Если можно, чуть подробней, пожалуйста.
Go to the top of the page
 
+Quote Post
AnDrum
сообщение Aug 5 2006, 21:15
Сообщение #3





Группа: Новичок
Сообщений: 3
Регистрация: 1-08-06
Пользователь №: 19 253



Цитата(ВВА @ Aug 4 2006, 11:42) *
А что Вы собираетесь сделать? В каком конструктие ? Для чего ? Если можно, чуть подробней, пожалуйста.


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

Сообщение отредактировал AnDrum - Aug 5 2006, 21:18
Go to the top of the page
 
+Quote Post
ВВА
сообщение Aug 7 2006, 05:39
Сообщение #4





Группа: Новичок
Сообщений: 4
Регистрация: 3-08-06
Пользователь №: 19 286



Ну сразу. что будет плохо.
1. Этот стандарт весьма непрост. Реализовать протокол програмно , причем в полном соотвии с ГОСТ, будет очень трудно. А военные наверняка потребуют полнлго соответствия стандарту , и будут , между прочим, правы.
2. Нет уверенности , что Вы уложитесь по быстродействию. По реализации времени ответного уж точно не уложитесь. А там эта вещь ключевая.
3. Зачем все самим делать с нуля. В РС-104ом конструктиве это все уже есть, причем с приемкой "5" , в виде одной платы. Програмное обеспечение прилагается. Сертификаты полного соответствия ГОСТу. Продается свободно. Цена что-то 700 - 800 уев. Срок поставки что-то месяца полтлра.
Go to the top of the page
 
+Quote Post
AnDrum
сообщение Aug 7 2006, 19:41
Сообщение #5





Группа: Новичок
Сообщений: 3
Регистрация: 1-08-06
Пользователь №: 19 253



Цитата(ВВА @ Aug 7 2006, 09:39) *
Ну сразу. что будет плохо.
1. Этот стандарт весьма непрост. Реализовать протокол програмно , причем в полном соотвии с ГОСТ, будет очень трудно. А военные наверняка потребуют полнлго соответствия стандарту , и будут , между прочим, правы.
2. Нет уверенности , что Вы уложитесь по быстродействию. По реализации времени ответного уж точно не уложитесь. А там эта вещь ключевая.
3. Зачем все самим делать с нуля. В РС-104ом конструктиве это все уже есть, причем с приемкой "5" , в виде одной платы. Програмное обеспечение прилагается. Сертификаты полного соответствия ГОСТу. Продается свободно. Цена что-то 700 - 800 уев. Срок поставки что-то месяца полтлра.


Спасибо вам за мнение! Я, в целом, не спорю, что идея не из лучших ;-) Но ради интереса давайте подискутируем - мне хочется набраться опыта перед разговором с начальством)
1.) А почему очень трудно? Ведь аппаратно же его реализуют, и я так понимаю - успешно. А любая реализация - это ведь по сути своей, какой-то алгоритм - а алгоритм программно реализовать, думаю, проще, чем в железе. У нас, кстати, не для военных делается - а для нефтегаза. Кому-то потребовался такой вот манчестер)
2.) Насколько я понял, ответное слово должно быть дано через 4 микросекунды после окончания передачи командного. Если принять производительность платы за 133 Мгц, то получится, что на одно командное слово придется в районе 530 тактов процессора. В общем-то, это не мало! Передача по шине у нас в районе 10 мегабит/сек получается - тоже с запасом.
3.) Я нашел только элкусовскую платку, стоимостью в полторы тысячи долларов. МОжет быть, посоветуете еще какую-любо фирму надежную?
Go to the top of the page
 
+Quote Post
ВВА
сообщение Aug 8 2006, 09:48
Сообщение #6





Группа: Новичок
Сообщений: 4
Регистрация: 3-08-06
Пользователь №: 19 286



_________________________

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

Ну вот пожалуй, вкратце.
Go to the top of the page
 
+Quote Post
Andrew_
сообщение Aug 19 2006, 13:58
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 89
Регистрация: 10-05-05
Пользователь №: 4 892



Цитата(AnDrum @ Aug 2 2006, 00:35) *
ПОдскажите, может быть, у кого есть опыт реализации алгоритма обработки сообщений по этому протоколу (отечественный аналог - ГОСТ 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.
Если интересно - спрашивайте smile.gif
Go to the top of the page
 
+Quote Post
EE-1313
сообщение Jan 15 2009, 11:48
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 55
Регистрация: 6-05-07
Пользователь №: 27 547



Здравствуйте, тоже озадачен вопросом реализации, однако у меня конкретный вопрос, как, по-уму, отлавливать синхропосылки. Если кто может, поделитесь ссылками по реализации данного госта. Заранее благодарен за ответы.
Go to the top of the page
 
+Quote Post
Stas
сообщение Jan 15 2009, 14:39
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 464
Регистрация: 1-10-04
Из: Челябинск
Пользователь №: 751



Я всё слово принимаю в 40 бит сдвиговый регистр на удвоенной частоте (2Мгц). Подстройка частоты приема производится по каждому фронту на обоих входных линиях.
Провожу контроль на достоверность манчестера (для поля данных могут быть одинаковыми не более 2 соседних разрядов), а 3 подряд единицы и 3 нулей по одной линии и 3 нуля и 3 единицы по другой (или наоборот) - есть синхропоследовательность.
Go to the top of the page
 
+Quote Post
DmitryR
сообщение May 7 2009, 05:39
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



А вот объясните мне пожалуйста. Если фаза этой удвоенной частоты совпадет с фазой входящего манчестера, то есть фронты тактовой частоты, которыми вы хлопате его, попадут на фронты манчестера - по идее должно наловиться мусора, или я что-то не понимаю? И ведь вероятность этого не мала: длительность фронта у манчестера 100 ns минимум (и это на выходе), если считать фронт тактовой частоты идеальным то вероятность его попадания в диапазон 100 ns на промежутке в 1000 ns (время одного бита при 1 мбод) составляет 10%. Я бы ловил на учетверенной частоте, и выбирал бы потом либо четные, либо нечетные отсчеты, но так почему-то никто не делает, и у всех все работает.
Go to the top of the page
 
+Quote Post
Stas
сообщение May 7 2009, 12:18
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 464
Регистрация: 1-10-04
Из: Челябинск
Пользователь №: 751



Входной сигнал ресинхронизируется на 12МГц, схемой подстройки частоты выделяется середина четного и нечетного отсчета в битовом интервале, по этому сигналу (2Мгц) и происходит запись в сдвиговый регистр. Выбирать надо все (четные и нечетные) отсчеты, для контроля достоверности данных в системе кодирования "манчестер". Удобней синхронизовать на 16 МГц, точность определения середины отсчетов лучше.
Go to the top of the page
 
+Quote Post
DmitryR
сообщение May 8 2009, 06:30
Сообщение #12


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Еще поанализировал код и вроде понял. Входной поток хлопается на сколь угодно высокой частоте, и от того момента, где получился любой перепад отсчитывается 250 ns (половина полубита) и хлопается "полубит", а если перепада не было то через 500 ns "полубит" захлопывается все равно.
Go to the top of the page
 
+Quote Post
stells
сообщение May 8 2009, 07:31
Сообщение #13


внештатный сотрудник
******

Группа: Участник
Сообщений: 2 458
Регистрация: 10-05-08
Из: МО, Медвежьи озера
Пользователь №: 37 401



Цитата(DmitryR @ May 8 2009, 10:30) *
Еще поанализировал код и вроде понял. Входной поток хлопается на сколь угодно высокой частоте, и от того момента, где получился любой перепад отсчитывается 250 ns (половина полубита) и хлопается "полубит", а если перепада не было то через 500 ns "полубит" захлопывается все равно.

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

Цитата(Stas @ Jan 15 2009, 18:39) *
Подстройка частоты приема производится по каждому фронту на обоих входных линиях.

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

честно говоря 20 лет назад писал диплом по теме "кодек Манчестерского кода на полузаказной БИС" (Зеленоградская разработка была), но хоть убей не помню уже как у них аппаратно это было реализовано
Go to the top of the page
 
+Quote Post
sazh
сообщение May 8 2009, 07:33
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804



Цитата(DmitryR @ May 8 2009, 10:30) *
Еще поанализировал код и вроде понял. Входной поток хлопается на сколь угодно высокой частоте, и от того момента, где получился любой перепад отсчитывается 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
Go to the top of the page
 
+Quote Post
MrYuran
сообщение May 8 2009, 07:59
Сообщение #15


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(stells @ May 8 2009, 11:31) *
честно говоря 20 лет назад писал диплом по теме "кодек Манчестерского кода на полузаказной БИС" (Зеленоградская разработка была), но хоть убей не помню уже как у них аппаратно это было реализовано

У меня дома в макулатуре схема кодека M-II на рассыпухе валяется с прошлой работы biggrin.gif
10 Мгц, однако. Можно и больше, но удвоенная - 20МГц на 1533 с трудом уже идёт.
Там задержка 3/4 периода на цепочке из 3-х катушек была реализована.
MIL STD 1553 (или наш мультиплексный канал) - всего 1МГц. Вообще без проблем, если на железе. Например, на маленькой ПЛИСке.
Есть и советский однокристальный кодек, не помню как называется. На тактовой 12МГц как раз для этих целей заточен.
Ностальгия... Всю жизнь только манчестером и занимался.

А система в манчестере очень простая. От любого фронта отсчитываем 3/4 периода и защёлкиваем информацию.
Далее ждём следующий фронт.
Только вначале должна быть синхра из длинных импульсов (чередование 1 и 0), чтобы быстро синхронизироваться.
В MIL STD 1553 по-моему хитрее, там стартовый интервал равен 1,5 битовых (если ничего не путаю).
Вообще програмно можно это дело реализовать даже на контроллере.

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


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 05:05
Рейтинг@Mail.ru


Страница сгенерированна за 0.01506 секунд с 7
ELECTRONIX ©2004-2016