Разработка контроллера spacewire с интерфейсом open core

advertisement
УДК 621.382(06) Микроэлектроника
А.А. ЦЕЛЫКОВСКИЙ1, Е.В. МЕЛЬНИК1
Научный руководитель – П.Н. ОСИПЕНКО2, к.т.н.
1
Национальный исследовательский ядерный университет «МИФИ»
2
Научно-исследовательский институт системных исследований РАН
РАЗРАБОТКА КОНТРОЛЛЕРА SPACEWIRE С ИНТЕРФЕЙСОМ OPEN CORE PROTOCOL
В данной работе показан пример реализации IP-блока сетевого контроллера, предназначенного для сопряжения с сетью SpaceWire устройств с внутренней шиной Open Core Protocol (OCP).
Стандарт SpaceWire [1] был разработан для высокопроизводительных бортовых систем обработки данных с учетом требований аэрокосмического применения: высокая скорость передачи информации (до 400
Мбит/с), устойчивость к помехам и сбоям, электромагнитная совместимость, низкое энергопотребление,
компактная реализация в СБИС, поддержка систем реального времени.
Представленный контроллер SpaceWire (рис. 1) реализован в виде IP-блока с использованием языка описания аппаратуры Verilog в соответствии со стандартами SpaceWire [1] и OCP [2] и состоит из блоков передатчика, приемника, модуля интерфейса времени, автомата состояний канала, блока управления передатчиком, таймеров, FIFO передатчика и приемника, настроечных регистров, встроенного контроллера DMA (Direct Memory Access, прямой доступ к памяти).
Управление контроллером SpaceWire осуществляется путем записи в соответствующие настроечные регистры, имеющие OCP-интерфейс исполнителя (slave). Передачей данных управляет имеющий OCPинтерфейс инициатора (master) встроенный контроллер DMA, для инициализации которого в настроечных
регистрах задаются начальный адрес и размер области памяти для чтения или записи, после чего хостустройство включает контроллер DMA и передает ему управление шиной.
Длина передаваемого пакета данных не ограничена (определяется только размером памяти хостустройства). Пакет состоит из адреса, идентификатора протокола [3], полезной нагрузки в виде данных, а
также маркера конца пакета.
Получив команду на чтение, DMA-контроллер получает данные по шине OCP шириной 32 бита и записывает их в FIFO передатчика. При наличии в буфере получателя свободного места контроллер SpaceWire
передает данные в последовательном виде, разбивая их на символы полезной длиной 8 бит и добавляя к
каждому символу биты четности и управления. В конце пакета отправляется символ EOP (End Of Packet).
Control
Dout
TRANSMITTER
Data[8:0]
TRANSMITTER
FSM
Sout
SW state signals
DATA CONVERSION
32 → 8
Data[31:0]
Time-code[7:0]
TRANSMITTER
FIFO MEMORY
Number of words
Data[31:0]
TIME
INTERFACE
MODULE
LINK INTERFACE
FSM
OCP SW master signals
OCP SW slave signals
DISCONNECT
TIMER
850 ns
6,4 us
12,8 us
TIMERS
RECEIVER
FIFO MEMORY
Time-code[7:0]
DMA
OCP MASTER
INTERFACE
Data[31:0]
SW state signals
Data[31:0]
Din
RECEIVER
Sin
Data[8:0]
DATA CONVERSION
8 → 32
REGISTERS
Data[31:0]
OCP SLAVE
INTERFACE
OCP SW master signals
OCP SW slave signals
Рис. 1. Структурная схема контроллера SpaceWire
Приемник автоматически подстраивается под скорость передачи данных, задаваемую внешним передающим узлом SpaceWire. Получаемые данные преобразуются в параллельный вид, осуществляется их проверка на четность. При наличии в буфере приемника данных выставляется соответствующий бит в статусном регистре. После получения команды на запись DMA-контроллер передает данные из FIFO приемника
через интерфейс OCP.
Маркеры времени и символы управления потоком данных (сообщающие о наличии в буфере приемника
места для приема еще 8 символов данных) передаются немедленно, не дожидаясь окончания передачи пакета. В отсутствие других символов для передачи соединение поддерживается путем трансляции символов
NULL.
Производительность настраивается путем изменения соотношения максимального времени владения
шиной, разрешенного DMA-контроллеру, и паузы между циклами DMA.
Список литературы
УДК 621.382(06) Микроэлектроника
1. ECSS-E-ST-50-12С. SpaceWire – Links, nodes, routers and networks. – European Cooperation for Space
Standardization (ECSS), 2008.
2. Open Core Protocol Specification, release 2.2. OCP International Partnership Association, 2004.
3. ECSS-E-ST-50-51С. SpaceWire protocol identification. – European Cooperation for Space Standardization
(ECSS), 2010.
Download