Разработка контроллера протокола MIL-STD‑1553B на ПЛИС.

Разработка контроллера протокола MIL-STD‑1553B на ПЛИС. Часть 1

№ 12’2013
PDF версия
Существует множество интерфейсов информационного обмена, используемых в промышленных и коммерческих электронных устройствах, например SPI, RS-232, RS-485, Ethernet, USB. Также с избытком хватает справочных материалов и примеров реализации контроллеров этих интерфейсов.

Введение

Существуют также интерфейсы, область применения которых намного специфичнее перечисленных. Среди них — интерфейсы, применяемые в авиационной отрасли:

  • MIL-STD-1553B (бортовая авиация Министерства обороны США);
  • ARINC-429 (гражданская авиация);
  • STANAG-3919B (модернизированный 1553B);
  • ASCB (легкие летательные аппараты);
  • HSDB (истребители F-22, вертолет RAH-66 Comanche);
  • FibreChannel (компьютерная промышленность и авиационная отрасль);
  • 646 Ethernet Local Area Network (коммерческая авиация).

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

По сравнению с интерфейсами общего применения информации на авиационные протоколы в Интернете намного меньше. Что же касается примеров реализации контроллеров этих интерфейсов, например на ПЛИС, то полноценных сведений практически нет. Следует добавить, что для полноценной реализации подобных устройств необходимо рассмотреть и физический уровень, соответствующий каждому протоколу.

В статье проанализирован полный процесс реализации контроллера протокола MIL-STD-1553B, начиная с описания протокола, как логического, так и физического уровня, выбора компонентов, создания схемы, написания HDL-кода проекта контроллера интерфейса и заканчивая моделированием в ModelSim с использованием testbench.

Автор выбрал именно этот протокол, так как, несмотря на то, что этот документ был разработан по заказу Министерства обороны США в 1970-х годах, он до сих пор широко применяется в авиационной промышленности. Автор лично разрабатывал устройства, имеющие в своем составе контроллер протокола MIL-STD-1553B или его отечественный аналог — МКИО (мультиплексный канал информационного обмена). Статья будет полезна начинающим разработчикам цифровой электроники, имеющей в своем составе ПЛИС. Кроме того, автор решил представить этот материал так, как если бы начинающему разработчику была поставлена задача сконструировать устройство обмена данными по протоколу MIL-STD-1553B, а этой темой он раньше не занимался.

Итак, статья содержит следующие разделы:

  • описание протокола MIL-STD-1553B;
  • выбор элементной базы;
  • создание структурной схемы устройства;
  • написание HDL-кода проекта;
  • моделирование HDL-кода проекта в ModelSim.

В связи с тем, что объем статьи не позволяет опубликовать ее полностью в одном номере, материал разделен на четыре части. В первой части описаны особенности протокола MIL-STD-1553B, необходимые электронные компоненты, а также рассмотрена структурная схема устройства.

 

Описание протокола MIL-STD-1553B

Не будем углубляться в подробности протокола, так как полностью этот стандарт можно найти в Интернете [1]. Мы приведем в статье лишь ту информацию, с помощью которой начинающий разработчик сможет понять, что конкретно представляет собой этот протокол. Автор считаем важным предложить различные варианты реализации физического и логического уровня контроллера под нужный нам интерфейс обмена данными, так как в реальной ситуации перед специалистом редко когда ставится задача, в точности такая же, как в представленном разработчику материале.

Итак, стандарт MIL-STD-1553B был разработан по заказу Министерства обороны США и изначально предназначался для использования в военной авионике, но в дальнейшем его стали применять и в гражданских системах.

Каналы обмена информацией, выполненные по MIL-STD-1553B, имеют шинную организацию. Есть одна общая магистраль, а к ней, через гальваническую развязку, подключаются абоненты. Количество абонентов может достигать 31 (рис. 1).

Структура магистрали

Рис. 1. Структура магистрали

Рассматриваемый нами протокол предусматривает резервирование. То есть каждый из абонентов может быть подключен к двум каналам — основному и резервному, которые в иностранной литературе обозначаются как channel A и channel B соответственно.

Все абоненты на магистрали подразделяются на три вида:

  • КК — контроллер канала. Центральное устройство системы. Отправляет командные слова (КС) и информационные данные остальным абонентам. На одной магистрали может быть только один КК.
  • ОУ — оконечное устройство. Одно из 31-го периферийного устройства. Ожидает командные слова от КК, обрабатывает их и отдает ответное слово (ОС) обратно на КК. Каждый из ОУ имеет уникальный адрес разрядностью 5 бит.
  • М — монитор. Нечто вроде отчетного устройства. Следит за информацией в канале. Собирает статистику и пр. Монитор — безадресное устройство и не выдает в магистраль никакой информации. В данном случае монитор можно сравнить с «черным ящиком» самолета, который записывает переговоры пилотов и показания датчиков.

Стандарт MIL-STD-1553B предусматривает возможность организации иерархической системы, то есть каждое из ОУ может быть «интеллектуальным», а значит, является контроллером канала со своими оконечными устройствами нижнего уровня.

Рассмотрим физический уровень подключения абонента к магистрали. Стандарт предусматривает два вида подключения — с одинарной и двойной трансформаторной развязкой. Выбор схемы подключения определяется расстоянием от абонента до магистрали (рис. 2). Здесь IT — изолирующий трансформатор; CT — согласующий трансформатор; Ri1 = 55 Ом; Ri2 = 0,75Zo; Zo — волновое сопротивление линии магистрали (characteristicimpedance), которое составляет 70–85 Ом на частоте 1 МГц; Vp-p — значение напряжения peak-to-peak (размах).

Два вида схемы подключения абонента к магистрали

Рис. 2. Два вида схемы подключения абонента к магистрали

По поводу рис. 2 следует уточнить, что одинарная трансформаторная развязка используется, если протяженность соединения до основной магистрали не превышает ≈30 см (по стандарту — один фут). Двойная трансформаторная развязка используется, если протяженность соединения не превышает ≈6 м (по стандарту — 20 футов).

Под абонентом понимается цифровая система управления для организации и обработки пакетов протокола на логическом уровне, а также драйвер физического уровня. В качестве цифровой системы управления может использоваться микроконтроллер или ПЛИС. Драйвер — это устройство, предназначенное для преобразования уровней напряжений в магистрали в логические уровни КМОП или ТТЛ.

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

Информация в мультиплексном канале передается с частотой 1 МГц словами по 20 бит. Слова передаются пакетами. Количество слов в пакете может быть разным, в зависимости от вида пакета (мы рассмотрим это далее).

Необходимо отметить, что вся информация на магистрали передается в коде «Манчестер-2». Это означает, что наша цифровая система управления должна иметь в своем составе кодер и декодер этого кода.

«Манчестер-2» относится к самосинхронизирующимся кодам и имеет нулевую постоянную составляющую. Передача нулей и единиц определяется не уровнем, а переходом с уровня на уровень (рис. 3).

Передача логических нуля и единицы в коде «Манчестер-2»

Рис. 3. Передача логических нуля и единицы в коде «Манчестер-2»

Протокол MIL-STD-1553B предусматривает также два вида синхросигнала (SYNC C и SYNC D), которые позволяют отличать командные слова от информационных. Вид синхросигналов SYNC C и SYNC D представлен на рис. 4.

Синхросигналы SYNC C и SYNC D

Рис. 4. Синхросигналы SYNC C и SYNC D

Согласно стандарту этого протокола слова могут иметь три различных формата:

  • командное слово (КС);
  • информационное слово (ИС);
  • ответное слово (ОС).

Битовый состав этих слов приведен на рис. 5.

Формат слов

Рис. 5. Формат слов

Командное слово передается от контроллера канала оконечному устройству. Командное слово содержит в себе адрес ОУ (Address Remote Terminal, ADDR RT), которому предназначена информация, субадрес (sub-address, SUBADDR) и сколько именно слов (N) будет передано на это ОУ или принято с него. Бит приема-передачи (Write-Read, WR) говорит о том, в каком направлении будут передаваться последующие за командным словом информационные слова. Если WR = 0, контроллер канала передает данные на оконечное устройство. Если WR = 1, контроллер канала принимает данные от оконечного устройства.

Если командное слово содержит не субадрес, а признак команды (Command Indication, CI), то вместо количества слов передается команда (Command, COM).

Информационное слово содержит только данные разрядностью 16 бит и может передаваться как от контроллера канала к оконечному устройству, так и в обратном направлении. Что и понятно — информацию нужно передавать как на периферию, так и на центральную машину.

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

  • A— признак ошибки в сообщении.
  • B — инструментальный бит.
  • C — запрос на обслуживание.
  • X— зарезервировано, может использоваться по усмотрению разработчика.
  • D — признак принятия групповой команды.
  • E — признак занятости абонента.
  • F — флаг неисправности абонента.
  • G — признак принятия управления каналом.
  • H — флаг неисправности.

В каждом из этих слов используется бит паритета (Parity, P). Бит паритета должен иметь такое значение, чтобы общее количество единиц в слове (за исключением синхросигнала) было нечетным. Если поле ADDR RTимеет значение «11111», то посылка адресована всем оконечным устройствам. Именно это объясняет то, что всего оконечных устройств может быть не 32, а 31.

Признак команды CI имеет значение «00000» или «11111». Все остальные значения — это субадрес (SUBADDR). Использование дополнительных команд управления позволяет, например, блокировать и разблокировать передатчик резервной линии. (Подробно об этом написано в стандарте.)

Следует упомянуть инструментальный бит (B). Использование инструментального бита позволяет мониторам отличать командные слова от ответных. Значит, при использовании этого бита количество возможных значений SUBADDR сокращается с 30 до 14. Если в поле «количество слов» N указана цифра 0, то имеется в виду 32 слова.

На рис. 6 приведен пример контрольного, информационного и ответных слов в виде манчестерского кода.

Примеры слов в манчестерском коде

Рис. 6. Примеры слов в манчестерском коде

На рис. 6а представлена передача командного слова с требованием оконечному устройству с адресом 5 (ADDR RT = 5) принять (так как WR = 0) набор данных с субадресом 2 (SUBADDR = 2) в количестве девяти информационных слов (так как N = 9). Бит паритета в конце этого слова равен 0, потому что количество единиц в слове, не считая синхросигнала, нечетно.

На рис. 6б представлено также командное слово, но с требованием оконечному устройству с адресом 3 передать (так как WR = 1) обратно набор данных с субадресом 7, в количестве слов 32 (так как N = 0).

На рис. 6в представлено информационное слово. Напомним, что его от других слов отличает синхросигнал SYNC D. Поле D имеет значение 1A37 hex (hex означает, что число представлено в шестнадцатеричном виде).

На рис. 6г представлено ответное слово, переданное от оконечного устройства с адресом 5.

На этих временных диаграммах видно, что спектр сигнала при обмене информацией по протоколу MIL-STD-1553B имеет две составляющие:

  • 1 МГц — при передаче либо всех нулей, либо всех единиц;
  • 0,5 МГц — при передаче чередующихся нулей и единиц.

Завершая раздел описания протокола, рассмотрим разновидность пакетов, которыми обмениваются абоненты (рис. 7).

Разновидность пакетов

Рис. 7. Разновидность пакетов

На рис. 7а представлен пакет передачи информации от контроллера канала оконечному устройству. Заголовком пакета в этом случае является командное слово, содержащее адрес нужного оконечного устройства, субадрес и количество слов, которые контроллер канала собирается передать. Далее, без всяких временных задержек, один за другим, передаются все информационные слова. После передачи последнего информационного слова должен быть выдержан тайм-аут t2 (2–10 мкс), перед тем как оконечное устройство отправит ответное слово, сообщающее контроллеру канала о состоянии принятых данных. Следующий пакет можно начинать передавать, только выдержав тайм-аут t1 (не менее 2 мкс). Необходимо добавить, что если контроллер канала собирается передать информационное слово всем абонентам, то в этом случае ответное слово в пакете отсутствует.

На рис. 7б представлена структура пакета при передаче данных от оконечного устройства на контроллер канала. Заголовком пакета является командное слово с соответствующим битом приемопередачи. Далее, выждав тайм-аут t2,, оконечное устройство сначала передает обратно в магистраль ответное слово и сразу за ним, без всяких задержек, нужное количество информационных слов, указанное в командном слове. Следующий пакет также можно начинать передавать только после тайм-аута t1.

Протокол MIL-STD-1553B предусматривает передачу данных от одного оконечного устройства другому. Структура этого пакета представлена на рис. 7в.

 

Выбор элементной базы

В этом разделе автор представляет некоторых производителей электронных компонентов, необходимых для конструирования устройства, способного обмениваться информацией по протоколу MIL-STD-1553B.

Как уже было упомянуто в предыдущем разделе, минимальный набор компонентов, необходимых разработчику, чтобы связать некую цифровую систему управления с магистралью стандарта MIL-STD-1553B, состоит из драйвера (приемопередатчика) и трансформатора (изолирующего и/или согласующего).

В таблице 1 приведены некоторые производители приемопередатчиков протокола MIL-STD-1553B, а в таблице 2 — производители трансформаторов этого же протокола.

Таблица 1. Производители приемопередатчиков

Производитель

Компонент

Напряжение питания, В

Габариты, мм

Примечания

ЗАО «Элкус»

EL-12N

+5, +12, –12

30×44

Только основной канал. Дополнительный компонент — симметрирующий конденсатор

EL-12R

+5, +12, –12

33,8×38,4

Основной и резервный каналы. Дополнительный компонент — симметрирующий конденсатор на каждый канал

EL-15N

+5, +15, –15

30×40

Только основной канал. Дополнительный компонент — симметрирующий конденсатор

Data Device Corporation

BU-63152

+5

16×16

Основной и резервный каналы

BU-63155

+5

7×7

Только основной канал

BU-67401L

+3,3

7×7

Основной и резервный каналы

Holt Integrated Circuits

HI-1565

+5

7×7

12,8×10,4

25×8

Основной и резервный каналы

HI-1570

+5

12,8×10,4

25,5×8

Основной и резервный каналы. Возможность регулировки амплитуды сигнала в магистраль

HI-1575

+3,3

9×9

6×6

Основной и резервный каналы. Встроенный кодер-декодер

Таблица 2. Производители трансформаторов

Производитель

Компонент

Коэффициент передачи

Габариты, мм

Примечания

ОАО «Мстатор»

ТИЛ3В

1; 0,5; 0,2

12,5×12,5×6,5

Используется в связке с 15-В приемопередатчиками

ТИЛ5В

1; 0,64; 0,26

12,5×12,5×6,5

Используется в связке с 12-В приемопередатчиками

ТИЛ6В

1:2,5

1:1,79

12,5×12,5×6,5

Используется в связке с 5-В приемопередатчиками

Beta Transformer Technology Corporation

B-3226

1:2,5

1:1,79

15,88×15,88×6,2

Два коэффициента передачи. С общей точкой

B-2206

1:1,41

12,7×8,9×6,35

Без общей точки

B-2208

1:1,41

12,7×8,9×6,35

С общей точкой

B-3229

1:1,79

12,7×8,9×6,35

С общей точкой

B-3230

1:2,5

12,7×8,9×6,35

С общей точкой

B-3227

1:2,5

1:1,79

15,88×15,88×7

С общей точкой

Premier Magnetics

PB-DB2705

1:1,41

12,7×8,9×6,35

С общей точкой

PB-DB2707

1:1,41

12,7×8,9×6,35

С общей точкой

PB-DB2725

1:2,5

1:1,79

15,87×15,87×9,52

Два коэффициента передачи. С общей точкой

PB-DB2791S

1:2,5

10,16×10,16×4,7

PB-DB2795

1:1,79

10,16×10,16×4,7

PB-DB2745M

1:2,5

1:1,79

10,92×10,92×4

Два коэффициента передачи. С общей точкой

Обсудим компоненты приемопередатчиков из таблицы 1. Первое — на рынке присутствуют драйверы протокола MIL-STD-1553B, требующие для своей работы не одно, а несколько номиналов напряжения питания. А дополнительная цепь питания только для одной микросхемы увеличивает габариты устройства и усложняет его. Второе — при выборе приемопередатчика в плане питающего напряжения следует обратить внимание на то, какие уровни напряжения ввода/вывода поддерживает система управления, которая будет подключена к приемопередатчику. Например, если мы пользуемся 5-В приемопередатчиком, а входные буферы управляющей микросхемы питаются от +3,3 В, то следует убедиться, что «лог. 1» с уровнем +5 В не повредит линии ввода/вывода управляющей микросхемы.

Компании выпускают микросхемы приемопередатчиков в различных корпусах, что дает широкий выбор в плане габаритов.

Анализируя данные графы «Примечания», можно сказать, что существуют исполнения с одним каналом и двумя сразу (основной и резервный). В тех сферах, например авионике, где используется протокол MIL-STD-1553B, в основном требуются два канала как минимум.

Теперь взглянем на таблицу 2. Как известно, существует три различных трансформатора, предназначенных для устройств с протоколом MIL-STD-1553B. Если разработчик собирается использовать длинное соединение с магистралью, то нужно ставить изолирующий трансформатор с одним коэффициентом трансформации. Если же короткое, то необходимо выбрать другой. Производители представляют их в отдельных корпусах, но следует обратить внимание на трансформаторы с двойным коэффициентом трансформации — для возможности реализации ближнего и дальнего подключения.

Итак, определимся с конкретными компонентами для будущего проекта. В качестве системы управления будем использовать ПЛИС. В ПЛИС можно реализовать синхронную логику, любую цифровую схему и тот же самый контроллер. Возьмем, например, ПЛИС семейства Cyclone III от Altera Corporation. Это семейство не позволяет использовать питание банков ввода/вывода больше +3,7 В. Поэтому будем выбирать приемопередатчик с +3,3-В питанием.

Из таблицы 1 по этому параметру нам подходят два компонента: BU-67401L от DDC и HI-1575 от HoltIntegrated. Первый — это простой приемопередатчик с резервным каналом, а второй — такой же, но со встроенным кодером-декодером. То есть HI-1575 при приеме декодирует посылку и выставляет на выходы в параллельном виде. При передаче — процесс обратный. Функционально этот компонент, конечно, выигрывает по сравнению с простым приемопередатчиком, но требует больше выводов ПЛИС для обмена информацией. (Не говоря уже о том, что стоимость HI-1575 будет выше, чем у простого драйвера.)

Автор предпочитает экономить выводы ПЛИС, потому что к ПЛИС, помимо всего прочего, могут быть подключены какие-либо другие периферийные устройства. Тем более что реализация кодирования и декодирования посылок протокола MIL-STD-1553B не занимает большого количества логических ячеек ПЛИС. Итак, в качестве приемопередатчика будем использовать BU-67401L.

Теперь по поводу выбора трансформатора. Нужно выбрать трансформатор с двумя коэффициентами трансформации, чтобы была возможность подключения нашего устройства к магистрали по ближнему и дальнему соединению. Раз мы решили выбрать приемопередатчик от DDC, следует сказать, что DDC имеет дочернее предприятие BTTC, которое производит трансформаторы по стандарту MIL-STD-1553B. Поэтому в нашем случае логичнее будет использовать компонент именно этого производителя. Выберем B-3227.

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

Подключение компонентов

Рис. 8. Подключение компонентов

 

Создание структурной схемы проекта на ПЛИС

Практически любой HDL-проект начинается с определения структурной схемы модулей. Очевидно, что наш проект должен содержать модули приемника и передатчика, а также память хранения принятой или передаваемой информации. Автор решил не усложнять проект всеми возможностями протокола (такими как включение/отключение приемопередатчика, статус занятости и пр.), а реализовать прием одного потока данных под конкретным субадресом и передачу другого. На рис. 9 приведена структурная схема нашего будущего HDL-проекта.

Структурная схема HDL-проекта интерфейса  MIL-STD-1553B

Рис. 9. Структурная схема

Помимо приемника и передатчика на структурной схеме представлен модуль RT_control.v, алгоритм которого основан на работе оконечного устройства. Вспомним, что оконечные устройства могут иметь до 30 субадресов, по которым можно передавать или принимать информацию. Подмодули device3.v и device5.vорганизуют прием и передачу информации соответственно по субадресам 3 и 5. Подмодуль device3.vобеспечивает прием потока данных от контроллера канала и отправку обратно ответного слова. Подмодуль device5.v обеспечивает отправку на контроллер канала ответного слова и следующие за ним информационные слова. Все информационные слова планируется хранить в двухпортовой памяти с разделенными шинами адреса и данных для записи и чтения.

Модуль приемника содержит помимо входных сигналов самого протокола (DI1, DI0) еще и выходную шину принятых данных (data_get[15:0]), а также сигналы сервиса, такие как готовность принятых данных (done) и др. Почти аналогичным образом организован интерфейс модуля передатчика. Интерфейс модуля RT_control.v помимо шин принимаемых и передаваемых данных (rx_data[15:0], tx_data[15:0]) и соответствующих им сигналов управления (rx_done, tx_ready, tx_busy и т. д.) имеет также интерфейсы двухпортовой памяти, соответствующие каждому подмодулю — device3.v и device5.v.

Напомним, что подмодуль device3.v занимается приемом данных от модуля приемника и готов к выдаче этой принятой информации для внешней логики. Подмодуль device5.v, наоборот, записывает от внешней логики в свою память данные, которые потом может передать на контроллер канала с помощью передатчика. Именно поэтому интерфейс памяти для device5.v отличается от device3.v наличием сигнала разрешения записи в память we_dev5.

Одним описанием интерфейсом модулей проекта нельзя ограничиться, поэтому следует рассмотреть каждый модуль в отдельности. Иерархия модулей, написанных на языке описания аппаратуры Verilog, приведена на рис. 10.

Иерархия проекта

Рис. 10. Иерархия проекта

Следующие части статьи будут содержать разбор HDL-кода каждого модуля проекта. Во второй части будут рассмотрены модули Top_MIL-1553B: приемник и передатчик.

Продолжение статьи.

Литература
  1. ГОСТ Р 52070-2003. «Интерфейс магистральный последовательный системы электронных модулей».
  2. Дайнеко Д. Реализация CORDIC-алгоритма на ПЛИС // Компоненты и технологии. 2011. № 12.
  3. IEEE Standart Verilog Hardware Description Language. 2001.
  4. Mentor Graphics. ModelSim Tutorial. May,

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *