Научная статья на тему 'Создание USB 2. 0 периферийного устройства на основе двухпроцессорной системы на кристалле к1867вц3аф'

Создание USB 2. 0 периферийного устройства на основе двухпроцессорной системы на кристалле к1867вц3аф Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
184
65
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
система на кристалле / интерфейс USB 2.0 / процессор цифровой обработки сигналов / WinUSB / микросхема / system on a chip / interface USB 2.0 / digital signal processor / WinUSB / integrated circuit

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Конарев М. В., Макеев С. Н.

В статье кратко рассмотрена архитектура современной системы на кристалле К1867ВЦ3АФ, содержащей два процессорных ядра, память и набор периферийных устройств. Описана коммуникация между персональным компьютером и системой на кристалле посредством интерфейса USB 2.0. Для коммуникации с персональным компьютером реализованы специализированное ПО в соответствии с требованиями стандарта USB 2.0 на языке ассемблера, выполняемое системой на кристалле, пользовательское ПО, работающее в операционной системе Windows, с помощью которого пользователь может инициировать чтение данных с USB-устройства или запись данных в память USB СнК К1867ВЦ3АФ. Реализован также драйвер для операционной системы Windows, позволяющий осуществлять обмен данными между системой на кристалле и персональным компьютером.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

DEVELOPING USB 2.0 DEVICE BASED ON DUAL-CORE SYSTEM ON A CHIP K1867VTS3AF

The architecture of modern 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.

Текст научной работы на тему «Создание USB 2. 0 периферийного устройства на основе двухпроцессорной системы на кристалле к1867вц3аф»

Пусть входной поток 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

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

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, позволяющая реализовать управление жизненным циклом изделия и связанных с ним информационных сущностей.

i Надоели баннеры? Вы всегда можете отключить рекламу.