Пусть входной поток Y =
0 10 1 3 0 3 0 0 2 0 3 2 0 4 0
пускные способности линий связи (см. рис. 2):
а про-
С =
0 3 0 3
3 0 2 0
0 2 0 2
3 0 2 0
0 1 0 1
1 0 1 0
0 1 0 1
1 0 1 0
C =
0 1 0 2
1 0 1 0
0 1 0 3
2 0 3 0
С =
Результаты расчета оптимальных потоков при разделении на три канала выглядят следующим образом:
0
F =
/ =
0 1 0 0,798
2,072 0 1,586 0
0 1,172 0 0,977
1,329 0 1.318 0
0 0 0 0,202
0,464 0 0.707 0
0 0,414 0 1,747
0.636 0 2.164 0
0 0 0 0
0,464 0 0,707 0
0 0,414 0 0,276 0,035 0 0,518 0 Минимальный критерий средней задержки сообщений в сети 7=1,371. Очевидно, что выполняются исходные ограничения 0 < /к < Сцк,
1 = 1, п,} = 1, п, к = 1, т, оптимизационной задачи и
f =
условия сохранения потоков в сети у^ = ^ fijk,
k=1
i = 1, n, j = 1, n .
Предложенную модель оптимального распределения потоков в ТМС можно использовать для произвольного числа линий связи и узлов. Однако при наличии в топологии моделируемой сети промежуточных узлов необходимо также учитывать условия сохранения потоков для них.
В этом случае для решения задачи понадобятся численные оптимизационные методы. В то же время разделение полученных оптимальных потоков по нескольким линиям связи может быть выполнено по приведенной в работе аналитической оптимизационной модели.
Литература
1. Парфенов В.И., Золотарев С.В. Об одном алгоритме решения задачи оптимальной маршрутизации по критерию средней задержки // Вестн. ВГУ: сер. Физика. Математика. 2007. № 2. С. 28-32.
2. Пантелеев А.В., Летова Т.А. Методы оптимизации в примерах и задачах. М.: Высш. школа, 2005. 544 с.
References
1. Parfenov V.I., Vestnik VGU, seriya: Fizika. Matematika [The bulletin of VSU. Phisics. Math series], 2007, no. 2, pp. 28-32.
2. Panteleev A.V., Metody optimizatsii v primerakh i zadachakh [Optimization methods in examples and exersises], Moscow, Vysshaya shkola, 2005.
УДК 629.78.05
СОЗДАНИЕ USB 2.0 ПЕРИФЕРИЙНОГО УСТРОЙСТВА НА ОСНОВЕ ДВУХПРОЦЕССОРНОЙ СИСТЕМЫ НА КРИСТАЛЛЕ К1867ВЦ3АФ
М.В. Конарев, к.т.н., доцент (Воронежская государственная лесотехническая академия, ул. Тимирязева, 8, г. Воронеж, 394087, Россия, mkonarev@mail.ru); С.Н. Макеев, аспирант (Воронежский государственный технический университет, Московский просп., 14, г. Воронеж, 394026, Россия)
В статье кратко рассмотрена архитектура современной системы на кристалле К1867ВЦ3АФ, содержащей два процессорных ядра, память и набор периферийных устройств. Описана коммуникация между персональным компьютером и системой на кристалле посредством интерфейса USB 2.0. Для коммуникации с персональным компьюте-
ром реализованы специализированное ПО в соответствии с требованиями стандарта USB 2.0 на языке ассемблера, выполняемое системой на кристалле, пользовательское ПО, работающее в операционной системе Windows, с помощью которого пользователь может инициировать чтение данных с USB-устройства или запись данных в память USB СнК К1867ВЦ3АФ. Реализован также драйвер для операционной системы Windows, позволяющий осуществлять обмен данными между системой на кристалле и персональным компьютером.
Ключевые слова: система на кристалле, интерфейс USB 2.0, процессор цифровой обработки сигналов, WinUSB, микросхема.
DEVELOPING USB 2.0 DEVICE BASED ON DUAL-CORE SYSTEM ON A CHIP K1867VTS3AF
Konarev M. V., Ph.D., associate professor (Voronezh State Forestry Engineering Academy, Timiryazeva St., 8, Voronezh, 394087, Russia, mkonarev@mail.ru);
MakeevS.N., postgraduate (Voronezh State Technical University, Moskovskiy Av., 14, Voronezh, 394026, Russia) Аbstract. The architecture of modem system on a chip K1867VTS3AF containing two digital signal processor cores, memory and a set of peripheral devices is considered in the article. Realization of communications between the personal computer and system on a chip using interface USB 2.0 is considered. The special software is developed on the assembler language for the SoC in compliance with requirements of USB 2.0 standard for communications with personal computer. The user software for OS Windows giving the user the opportunity to initiate data transfers between K1867VTS3AF USB device and PC is developed. The driver of the K1867VTS3AF USB device for OS Windows is also developed. Keywords: system on a chip, interface USB 2.0, digital signal processor, WinUSB, integrated circuit.
Двухпроцессорная система на кристалле (СнК) К1867ВЦ3АФ построена на базе сложно-функциональных блоков (СФ-блоков): ядра процессора 1867ВЦ3Ф [1], контроллера Ethernet 10/100, контроллера USB 2.0 Device, контроллера MilStd1553 и контроллера UART 16550 с буфером FIFO на 64 байта. Кроме перечисленных устройств, СнК содержит двухпортовую буферную память объемом 4Кх32 бита для контроллеров Ethernet 10/100 и USB 2.0 Device, четыре буфера объемом 4х3Кх16 бит для контроллера MilStd1553, а также два блока локальной памяти объемом 32Кх32 бита каждый, подключенных к локальным шинам каждого из процессоров.
Разработанная СнК предназначена прежде всего для решения коммуникационных и терминальных задач. Сверхбольшая интегральная схема СнК может выполнять функции универсальной связной машины, вычислительного ядра распределенной системы управления, системы сбора и обработки данных, а также выполнять функции узла сосредоточенной или распределенной мультипроцессорной системы [2].
Наличие стандартных интерфейсов общего назначения дает возможность разработчикам радиоэлектронной аппаратуры адаптировать К1867ВЦ3АФ для применения в системах различного назначения. Данная статья посвящена осуществлению коммуникации между персональным компьютером (ПК) с операционной системой (ОС) Windows XP или Windows 7 и разработанной СнК К1867ВЦ3АФ посредством распространенного интерфейса USB 2.0 [3].
Контроллер USB 2.0 Device реализует Universal Serial Bus интерфейс типа «точка-точка» в соответствии со стандартом [3] и выполняет функции периферийного устройства. Он имеет стандартный интерфейс UTMI (Universal Transceiver Macrocell) [4] для подключения интегральной схемы физического уровня, например, интегральной схемы USB3250 фирмы SMSC [5].
В соответствии со спецификацией USB 2.0 любые операции по передаче данных инициирует USB-хост. Периферийные устройства сами начать обмен данными не могут, они только реагируют на команды хоста. Спецификация USB достаточно жестко определяет набор свойств, которые должны поддерживать любые USB-устройства [3, 6]:
- конфигурирование - после включения или сброса устройство должно предоставлять нулевой адрес для конфигурирования его портов;
- адресация - устройство должно устанавливать и отзываться на назначенный ему уникальный адрес, и только на него;
- передача данных - устройство имеет набор конечных точек для обмена данными с хостом; для конечных точек, допускающих разные типы передач, после конфигурирования доступен только один из них.
Для осуществления обмена данными между ПК и СнК К1867ВЦ3АФ требуется следующее:
- ПО, работающее на К1867ВЦ3АФ; оно должно проинициализировать интерфейс USB 2.0 на микросхеме, уметь конфигурировать интерфейс, обрабатывать команды, поступающие с USB-хоста на ПК, обрабатывать необходимые прерывания USB;
- функциональный драйвер нашего USB-уст-ройства, обеспечивающий взаимодействие пользователя с ОС с одной стороны и с системным драйвером с другой;
- пользовательское ПО, работающее в ОС Windows, с помощью которого пользователь может инициировать чтение данных с USB-устрой-ства или запись данных в память USB СнК К1867ВЦ3АФ.
Программа для работы с функциональным
блоком USB 2.0 микросхемы К1867ВЦ3АФ
Ядро процессоров К1867ВЦ3АФ на уровне ассемблера и объектного кода совместимо с процес-
сором цифровой обработки сигналов TMS320C40 фирмы Texas Instuments (TI), что позволяет использовать отладочные средства TI, например Code Composer C4x.
ПО для работы с USB-интерфейсом должно выполнять следующие действия:
- инициализировать USB-интерфейс и внутренние переменные;
- производить обмен данными по USB-шине, включая процедуру нумерации и обработку запросов от USB-хоста.
В процессе инициализации USB-интерфейса программа конфигурирует конечные точки. Конечная точка - часть USB-устройства, которая имеет уникальный идентификатор и является получателем или отправителем информации, передаваемой по шине USB. Данные конечной точки могут быть или принятыми, или ожидающими отправки к хосту.
Любое USB-устройство имеет конечную точку с нулевым номером, позволяющую хосту опрашивать устройство для определения его типа и параметров, выполнять инициализацию устройства. Поэтому прежде всего необходимо сконфигурировать нулевую конечную точку на управляющие передачи, максимальный размер пакета для USB 2.0 следует задать равным 64. Фрагмент программного кода на языке ассемблера для К1867ВЦ3АФ выглядит так:
;2000840 - Control transfer, MAX_PL_SZ=64 ldhi 200h, AR0 or 0840h, AR0 sti AR0, @EP0_CSR
Описание полей регистров USB, а также ассемблера для процессорного ядра дано в [1].
Управляющие передачи (Control) используются хостом для конфигурирования устройства во время подключения, для управления устройством и получения статусной информации во время работы. Доставка управляющих передач гарантирована протоколом.
Кроме управляющей конечной точки, определим две конечные точки для передачи массивов данных (Bulk), которые используются для гарантированной доставки данных при нефиксированном времени доставки: одну типа IN для передачи данных к хосту на ПК и одну типа OUT для приема данных от хоста:
;6040840 - IN, Bulk, MAX_PL_SZ=64 ldhi 604h, AR0 or 0840h, AR0 sti AR0, @EP1_CSR
;A080A00 - OUT, Bulk, MAX_PL_SZ=512 ldhi 0A08h, AR0 or 0A00h, AR0 sti AR0, @EP2_CSR
Далее в программе необходимо проинициали-зировать указатели буферных регистров, куда будут помещаться данные, полученные от хоста, и откуда будут считываться данные при запросе их
хостом. Следует также разрешить необходимые прерывания:
- получен управляющий пакет для конечной точки типа Control;
- отправлен пакет данных для точки типа IN;
- получен пакет с данными для точки типа OUT.
Фрагмент программы, разрешающей прерывания:
ldhi 040h, AR0 ;Receive Control Packet enable sti AR0, @EP0_INT ldhi 4000h, AR0
sti AR0, @EP1_INT; Transmitted Data Packed enable ldhi 2000h, AR0
sti aAR0, @EP2_INT;Receive Data Packed enable Далее в программе запускается функциональный блок USB, после чего процессор ожидает и обрабатывает прерывания.
Каждое USB-устройство имеет набор дескрипторов, то есть структур данных, позволяющих хосту получить описание устройства. Каждый дескриптор содержит информацию либо об устройстве в целом, либо о его части. Устройство должно хранить свои дескрипторы и пересылать их хосту в ответ на его запрос.
Описание различных типов дескрипторов приведено в [3, 6]. Для установки драйвера устройства и обмена данными между ПК и К1867ВЦ3АФ необходимо, чтобы по соответствующему запросу устройство выдавало стандартный дескриптор устройства, дескриптор конфигурации, дескриптор интерфейса, дескрипторы конечных точек, кроме управляющей. К тому же устройство должно устанавливать адрес по запросу хоста. Описание минимально необходимого набора дескрипторов приведено в таблице.
При подключении устройства к ПК в процессе нумерации хост считывает стандартный дескриптор устройства, посылая запрос по адресу 0 для конечной точки номер 0. Затем хост назначает устройству уникальный адрес, посылая соответствующий запрос. Далее хост считывает конфигурацию устройства, включая дескрипторы конфигураций, интерфейсов и конечных точек. Только после получения конфигурации устройства возможны поиск и установка функционального драйвера USB.
Приведем алгоритм обработки запросов хоста.
1. Создать обработчик прерываний. Получен управляющий пакет для нулевой конечной точки.
2. Считать код последнего запроса хоста из OUT-буфера нулевой управляющей конечной точки в этом обработчике. В зависимости от кода запроса вызвать соответствующую программу обработки. Коды некоторых запросов: 01000680 -стандартный дескриптор устройства, 02000680 -дескриптор конфигурации, 00010500 - установить адрес 1. Полный список приведен в [3, 6].
Некоторые дескрипторы USB-устройства К1867ВЦ3АФ
Поле Значение Описание
Стандартный дескриптор устройства: 02000112 40000000 00077007 00000001 00000100
bLength 12h Размер дескриптора в байтах
bDescriptorType 01h Тип дескриптора
bcdUSB 0200h Версия протокола USB
bDeviceClass 00h Код класса USB
bDeviceSubClass 00h Код подкласса устройства USB
bDeviceProtocol 00h Код протокола USB
bMaxPacketSize0 40h Максимальный размер пакета для нулевой конечной точки
idVendor 7007h Идентификатор изготовителя устройства
idProduct 0007h Идентификатор продукта
bcdDevice 0001h Версия устройства
iManufacturer 00h Индекс дескриптора строки изготовителя
iProduct 00h Индекс дескриптора строки продукта
iSerialNumber 00h Индекс дескриптора строки серийного номера продукта
bNumConfigurations 01h Количество возможных конфигураций
Дескриптор конфигурации: 00200209 40000101 00000050
bLength 09h Размер дескриптора в байтах
bDescriptorType 02h Тип дескриптора
wTotalLength 0020h Общий объем данных в байтах для данной конфигурации
bNumlnterfaces 01h Количество поддерживаемых интерфейсов
bConfigurationValue 01h Идентификатор конфигурации
iConfiguration 00h Индекс дескриптора строки данной конфигурации
bmAttributes 40h Характеристики
MaxPower 50h Код потребляемой мощности
Дескриптор интерфейса: 00000409 FFFF0002 00000000
bLength 09h Размер дескриптора в байтах
bDescriptorType 04h Тип дескриптора
bInterfaceNumber 00h Номер данного интерфейса
bAlternateSetting 00h Альтернативный номер интерфейса
bNumEndpoints 02h Число конечных точек без учета нулевой
bInterfaceClass 00h Код класса интерфейса
bInterfaceSubClass FFh Код подкласса
bInterfaceProtocol FFh Код протокола
ilnterface 00h Индекс дескриптора строки
Дескрипторы конечных точек: 02810507 00000200 (первая конечная точка типа IN), 02020507 00000200 (вторая конечная точка типа OUT)
bLength 07h Размер дескриптора в байтах
bDescriptorType 05h Тип дескриптора
bEndpointAddress 81h / 02h Код адреса конечной точки
bmAttributes 02h Атрибуты конечной точки
wMaxPacketSize 0200h Максимальный размер пакета
bInterval 00h Интервал опроса
3. Установить в программе обработки запроса указатель буфера конечной точки типа IN на область памяти USB, где хранится соответствующий дескриптор; размер буфера необходимо задать равным размеру запрашиваемого дескриптора. В отдельных случаях следует занести значение в регистр USB.
Приведем фрагменты программы анализа типа дескриптора и обработки дескриптора установки адреса:
ReadControl:
RC1 ldi *AR7++, R0 ;R0 - первое слово
ldi *AR7++, R1 ;R1 - второе слово дескриптора
lhu0 R0, R2 ;R2 - младшее полуслово
cmpi 0680h, R2 ;Запрос Device Descriptor
callz DeviceDescr
cmpi 0500h, R2 ;Запрос Set Adress
callz SetAdrDescr subi 2, R8
bp RC1 ;если больше одного дескриптора rets
SetAdrDescr;Set Function Adr
lbu2 R0, AR0 sti AR0, @FA rets
Функциональный USB-драйвер для К1867ВЦ3АФ
Для работы с USB-устройством в ОС Windows необходимо установить драйвер. В комплект ОС входит набор драйверов для работы с устройствами различных классов. Для обмена данными меж-
ду ПК и микросхемой авторы использовали драйвер WinUSB [7, 8]. С его помощью можно достаточно просто и быстро реализовать пользовательское приложение в ОС Windows для работы с СнК К1867ВЦ3АФ через интерфейс USB. Драйвер состоит из двух частей: функциональный драйвер WinUsb.sys, а также библиотека WinUsb.dll, содержащая набор функций WinUSB API.
Приведем список некоторых функций WinUSB API: GetDevicePath - получение дескриптора устройства с применением его GUID, WinUsb_Initiali-ze - инициализация WinUSB-устройства, WinUsb_ ControlTransfer - передача управляющего пакета, WinUsb_WritePipe - запись данных в указанную конечную точку, WinUsb_ReadPipe - чтение данных из конечной точки (подробнее см. [8]).
Пользовательское приложение может взаимодействовать с драйвером WinUsb.sys через функции WinUSB API. Демонстрационное приложение написано в среде Microsoft Visual Studio .NET 2008 на языке С#.
Следует отметить, что используемый драйвер имеет несколько недостатков: доступ к устройству возможен только со стороны одного приложения, драйвер не поддерживает изохронные передачи данных. Если для пользователя это критично, необходимо написать специальный драйвер, используя Windows Driver Model.
Таким образом, создан аппаратно-программный комплекс, состоящий из СнК К1867ВЦ3АФ, ПК и ПО, позволяющий обмениваться информацией на скорости до 480 Мбит/с.
Литература
1. Микросхемы интегральные 1867ВЦ3Ф. Техническое описание. URL: www.niiet.ru/product/product.htm (дата обращения: 31.07.2012).
2. Попов С.О., Крюков В.П., Данильченко Н.В. Двухпроцессорная СБИС СнК К1867ВЦ3АФ // МЭС 2011: сб. тр. С. 7378.
3. Universal Serial Bus Specification Revision 2.0. URL: www.usb.org (дата обращения: 31.07.2012).
4. USB 2.0. Transceiver Macrocell Interface (UTMI) Specification. Intel Corp, URL: www.intel.com (дата обращения: 31.07.2012).
5. USB3250, Data Sheet, SMSC. URL: www.smsc.com (дата обращения: 31.07.2012).
6. Айгуров П.В. Интерфейс USB. Практика использования и программирования. СПб, БХВ-Петербург, 2004. 576 с.
7. Конарев М.В. Опыт создания USB 2.0 устройства на основе системы на кристалле К1867ВЦ3АФ // Современные проблемы информатизации: сб. тр. междунар. открытой науч. конф. Воронеж: Научная книга, 2012. Вып. 17. С. 305-308.
8. How to Use WinUSB to Communicate with a USB Device., URL: http://www.microsoft.com/whdc/connect/usb/winusb howto.mspx (дата обращения: 31.07.2012).
References
1. 1867VTS3F Integrated microcircuits. Technical manual, available at: www.niiet.ru/product/product.htm (accessed 31 July 2013).
2. Popov S.O., Kryukov V.P., Danilchenko N.V., Sbornic trudov konf. MES 2011 [Proc. of MES 2011 conf.], pp. 73-78.
3. Universal Serial Bus Specification Revision 2.0, available at: www.usb.org (accessed 31 July 2013).
4. USB 2.0. Transceiver Macrocell Interface (UTMI) Specification. Intel Corp., available at: www.intel.com (accessed 31 July 2013).
5. USB3250. Data Sheet. SMSC, available at: www.smsc. com (accessed 31 July 2013).
6. Aigurov P.V., Interfeys USB. Praktika ispolzovaniya i programmirovaniya [USB interface. Using and programming], SPB, BHV-Peterburg, 2004.
7. Konarev M.V., Sovremennye problemy informatizatsii: sbornik trudov otkrytoy nauchnoy konf. (Modern problems of informatization: proc. of openscientific conf.), Voronezh, 2012, pp. 305-308.
8. How to Use WinUSB to Communicate with a USB Device, available at: http://www.microsoft.com/whdc/connect/usb/ winusb_ howto.mspx (accessed 31 July 2013).
УДК 002.53(+004.62/.63.65)
РАЗРАБОТКА МОДЕЛИ ДАННЫХ ИНФОРМАЦИОННОЙ СИСТЕМЫ ПОДДЕРЖКИ ЖИЗНЕННОГО ЦИКЛА ИЗДЕЛИЙ ДЛЯ ЗАДАЧ КОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ
А.А. Вичугова, аспирант (Национальный исследовательский Томский политехнический университет, просп. Ленина, 30, г. Томск, 634050, Россия, anya@aics.ru)
В статье дается понятие объектов проектирования, описаны их взаимосвязь и компонентный состав применительно к задачам космического приборостроения. Рассмотрены информационные системы и технологии для поддержки процессов проектирования изделий. Показана схема структурированного хранения разнородных информационных сущностей в системе управления данными. Рассмотрены аспекты концептуального проектирования модели данных информационной системы для поддержки жизненного цикла изделия, включая интеграцию с системами автоматизированного проектирования. Учтена необходимость электрического и механического проектирования приборов. Определены классы модели данных, которые позволяют описать состав и отношения объектов проектирования. Разработана UML-диаграмма, иллюстрирующая иерархию и взаимосвязь типов объектов проектирования на примере радиоэлектронной аппаратуры. Предложена модель хранения проектных данных об изделии в системе управления данными Enovia SmarTeam, позволяющая реализовать управление жизненным циклом изделия и связанных с ним информационных сущностей.