|
программная реализация MIL-STD-1553 |
|
|
|
Aug 1 2006, 20:35
|
Группа: Новичок
Сообщений: 3
Регистрация: 1-08-06
Пользователь №: 19 253

|
ПОдскажите, может быть, у кого есть опыт реализации алгоритма обработки сообщений по этому протоколу (отечественный аналог - ГОСТ 26765.52-87). Нужна часть, отвечающая за обработку командных слов, формирование ответного слова.
|
|
|
|
|
Aug 4 2006, 07:42
|
Группа: Новичок
Сообщений: 4
Регистрация: 3-08-06
Пользователь №: 19 286

|
Цитата(AnDrum @ Aug 2 2006, 00:35)  А что Вы собираетесь сделать? В каком конструктие ? Для чего ? Если можно, чуть подробней, пожалуйста.
|
|
|
|
|
Aug 5 2006, 21:15
|
Группа: Новичок
Сообщений: 3
Регистрация: 1-08-06
Пользователь №: 19 253

|
Цитата(ВВА @ Aug 4 2006, 11:42)  А что Вы собираетесь сделать? В каком конструктие ? Для чего ? Если можно, чуть подробней, пожалуйста. У нас планируется разработка манчестерского терминала с КШ/ОУ/МТ по ГОСТу, причем с нуля - и сейчас вот есть мысль сделать его протокольную часть программной, аппаратная часть будет обеспечивать только кодирование/декодирование манчестерского кода. Делать планируется на вычислительной платке PC-104 типа Advantech или Octagon, соотвественно, на Borland C++/ассемблер. А писать все с нуля, разумеется, не очень хочется, да и не уверенности пока в собственных силах - вот и думаю, может быть, кто-то виде в сети программные исходники, либо хотя бы общий алгоритм обработки. Я нашел похожие исходники на языке Ада вот здесь - изучаю. К сожалению, там код разман по 74 файлам, да и общее назначение пакета более широкое.
Сообщение отредактировал AnDrum - Aug 5 2006, 21:18
|
|
|
|
|
Aug 7 2006, 05:39
|
Группа: Новичок
Сообщений: 4
Регистрация: 3-08-06
Пользователь №: 19 286

|
Ну сразу. что будет плохо. 1. Этот стандарт весьма непрост. Реализовать протокол програмно , причем в полном соотвии с ГОСТ, будет очень трудно. А военные наверняка потребуют полнлго соответствия стандарту , и будут , между прочим, правы. 2. Нет уверенности , что Вы уложитесь по быстродействию. По реализации времени ответного уж точно не уложитесь. А там эта вещь ключевая. 3. Зачем все самим делать с нуля. В РС-104ом конструктиве это все уже есть, причем с приемкой "5" , в виде одной платы. Програмное обеспечение прилагается. Сертификаты полного соответствия ГОСТу. Продается свободно. Цена что-то 700 - 800 уев. Срок поставки что-то месяца полтлра.
|
|
|
|
|
Aug 7 2006, 19:41
|
Группа: Новичок
Сообщений: 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.) Я нашел только элкусовскую платку, стоимостью в полторы тысячи долларов. МОжет быть, посоветуете еще какую-любо фирму надежную?
|
|
|
|
|
Aug 8 2006, 09:48
|
Группа: Новичок
Сообщений: 4
Регистрация: 3-08-06
Пользователь №: 19 286

|
_________________________
1. Все реализуют... . Но задачка будет непростая, это вы сразу поймете, как к работе приступите. Почитайте-ка ГОСТ внимательно. Он достаточно заковырист. Потом для нефтегаза или военных не очень то принципиально. Принципиально что бы Ваша аппаратура соответствовала ГОСТу полностью, и тогда у Вас не будет проблем со стыковкой с другой аппаратурой . 2. Скорость распространения света - 300 000 км/с . Длина линии в MIL-1553 до 300 м. Посчитайте время прохождения сигнала. Причем имейте в ввиду, сигнал должен пройти туда и обратно. Плюс задержка на приемо-передатчиках. На передающей стороне и на приемной. Времени осталось совсем мало. Так ? Передача по шине в MIL-1553B вообще-то 1 мбит / сек. 3. Изделие ТХ1-104-12ISA в индустриальном исполнении стоит у Элкуса соглано прайсу 693$, в обычном - 600 По любому разработка с нуля у Вас будет дороже. И дольше. И непредсказуемее. А насчет надежности фирмы , то в Элкусе специаллисты этим ГОСТом уже лет наверно 20 занимаются.
Ну вот пожалуй, вкратце.
|
|
|
|
|
Aug 19 2006, 13:58
|
Частый гость
 
Группа: Участник
Сообщений: 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. Если интересно - спрашивайте
|
|
|
|
|
May 7 2009, 05:39
|
Профессионал
    
Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770

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

внештатный сотрудник
     
Группа: Участник
Сообщений: 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 лет назад писал диплом по теме "кодек Манчестерского кода на полузаказной БИС" (Зеленоградская разработка была), но хоть убей не помню уже как у них аппаратно это было реализовано
|
|
|
|
|
May 8 2009, 07:33
|
Гуру
     
Группа: Свой
Сообщений: 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
|
|
|
|
|
May 8 2009, 07:59
|

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

|
Цитата(stells @ May 8 2009, 11:31)  честно говоря 20 лет назад писал диплом по теме "кодек Манчестерского кода на полузаказной БИС" (Зеленоградская разработка была), но хоть убей не помню уже как у них аппаратно это было реализовано У меня дома в макулатуре схема кодека M-II на рассыпухе валяется с прошлой работы 10 Мгц, однако. Можно и больше, но удвоенная - 20МГц на 1533 с трудом уже идёт. Там задержка 3/4 периода на цепочке из 3-х катушек была реализована. MIL STD 1553 (или наш мультиплексный канал) - всего 1МГц. Вообще без проблем, если на железе. Например, на маленькой ПЛИСке. Есть и советский однокристальный кодек, не помню как называется. На тактовой 12МГц как раз для этих целей заточен. Ностальгия... Всю жизнь только манчестером и занимался. А система в манчестере очень простая. От любого фронта отсчитываем 3/4 периода и защёлкиваем информацию. Далее ждём следующий фронт. Только вначале должна быть синхра из длинных импульсов (чередование 1 и 0), чтобы быстро синхронизироваться. В MIL STD 1553 по-моему хитрее, там стартовый интервал равен 1,5 битовых (если ничего не путаю). Вообще програмно можно это дело реализовать даже на контроллере. Готовые модули на любой вкус и цвет брали у питерского элкуса.
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|