УДК 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.