Разработка системы контроля параметров линейной батареи на узле коммутации

Анализ существующих методов реализации системы контроля параметров линейной батареи. Общая характеристика системы Siemens PSS400. Обоснование языка программной реализации. Разработка контроллера интерфейса USB 2.0. Модули обработки и упаковки данных.

Рубрика Коммуникации, связь, цифровые приборы и радиоэлектроника
Вид дипломная работа
Язык русский
Дата добавления 30.12.2010
Размер файла 4,4 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

24

7

Введение

Телефонно-телеграфная связь на сегодняшний день распространена очень широко, поэтому появляется необходимость в обеспечении бесперебойного питания нагрузки на АТС, для поддержания необходимого качества предоставления услуг связи. АТС дополнительно оборудуется системой резервного питания, которая позволяет поддерживать работоспособность оборудования при отключении основного питания. Система переходит на автономный режим работы, благодаря буферному включению аккумуляторных батарей, без обрыва установленных соединений. При восстановлении питания АТС автоматически переходит в нормальный режим работы без перезагрузки системы. Наряду с этим возникает необходимость контроля параметров линейных батарей (далее система контроля). Имеющиеся на данный момент системы контроля довольно дорогостоящие и морально устаревшие, и при выходе из строя требуют ремонта или замены на заводе изготовителя. Что влечет за собой затраты на транспортировку, демонтаж и монтаж. Целью данной дипломной работы является разработка системы контроля параметров линейной батарей на узле коммутации. Разрабатываемая система, благодаря применению современных достижений в области разработки микроконтроллеров, будет менее затратной и легко ремонтируемой. При достижении поставленной цели решались следующие задачи:

- анализ существующих систем контроля параметров линейной батареи;

- определение состава и разработка структурной схемы системы контроля;

- определение способа реализации;

- определение измеряемых параметров и диапазон измерений;

- определение погрешности измерения;

- определение скорости вывода информации.

Пояснительная записка состоит из десяти разделов:

- в постановке задачи описана предметная область, основные требования к системе контроля, решаемые задачи, и на основе этого составлено техническое задание;

- анализ существующих методов реализации системы контроля содержит описание системы, установленной на большинстве АТС Севастополя, Siemens PSS 400, указаны положительные свойства и недостатки её эксплуатации;

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

- разработка контроллера интерфейса USB 2.0 содержит подробное описание регистров контроллера, его структурную схему и режимы работы;

- программная реализация модулей обработки данных и отправки пакета содержит описание и блок-схемы соответствующих модулей;

- в разделе методика и результаты испытания системы контроля представлены алгоритм тестирования и результаты работы системы.

- в разделе экономическая оценка создания и внедрения программного продукта обосновывается экономическая эффективность внедрения программного продукта;

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

- в разделе гражданская оборона выполнены прогнозирование и оценка обстановки на предприятии при аварии на химически опасном объекте;

- в заключении подводится итог проделанной работы.

1. Постановка задачи

1.1 Общие требования к системе

На каждой АТС помимо подключения к электросети установлены аккумуляторные батареи, на случай обрыва питания от электростанции. Набор аккумуляторных батарей называют линейной батареей. Чаще всего линейная батарея имеет набор 30 аккумуляторов, подключенных к АТС в буферном режиме, т.е. как только пропадает напряжение в сети, нагрузка (АТС) питается от батареи. Каждый аккумулятор выдает напряжение в 2.23 вольта и имеет свою емкость, измеряемую в ампер на час. Например, для питания нагрузки, потребляемой 120 ампер, устанавливают аккумуляторы имеющие емкость 1200 а/ч, в целях обеспечения питания АТС током на 10 часов аварийной работы. 30 аккумуляторов в сумме дают необходимое напряжение в 68 вольт.

При эксплуатации аккумуляторных батарей необходима система контроля параметров батареи, которая должна контролировать процесс разряда батареи, выдавать необходимые сигналы аварий, и, при необходимости, отключать из сети аккумуляторы для предотвращения глубокого разряда. Аварийные сигналы должны включать сигнал об отсутствии напряжения в сети от электростанции и сигнал о полном обесточивании АТС (или сигнал об отключении батареи из сети). При достижении минимального допустимого значения напряжения, система должна выдать сигнал, по которому сработает реле и отключит батарею от сети, этот сигнал называется К10.

На основании поставленной задачи сформулируем техническое задание на разработку системы контроля.

1.2 Техническое задание

Назначение:

- Система предназначена для сбора, передачи, хранения, обработки и выдачи (отображения) информации.

Состав системы:

- блок первичных преобразователей;

- блок коммутации;

- блок аналого-цифрового преобразования;

- блок хранения данных;

- микропроцессорный блок обработки информации;

- устройство отображения информации;

- устройство передачи данных и интерфейса сопряжения;

- программное обеспечение системы.

Способ реализации:

- аппаратный, на основе микропроцессоров, однокристальных микро-ЭВМ и специализированных БИС.

Измеряемые параметры и диапазоны измерений:

- напряжение от 0 В до 70 В;

- ток от 0 А до 200А;

- температура от 00С до 1000С;

- относительная влажность от 0% до 100%;

Погрешность измерения и отображения данных не более 0,5 %.

Максимальная частота изменения измеряемых величин не менее 7 кГц.

Скорость ввода/вывода информации: не менее 100 Мбит/с.

Выполнить детальную проработку измерения напряжения и тока линейной батареи и отправки данных от устройства к персональной ЭВМ через интерфейс USB.

2. Анализ существующих методов реализации системы контроля

На сегодняшний день существует мало фирм, выпускающих системы контроля для электропитающих установок. Продукция некоторых из них, как Siemens и Elteco, установлена на большинстве АТС Севастополя. Рассмотрим систему контроля Siemens Power Supply System 400 [1], которая установлена на электропитающем оборудовании ОАО «Укртелеком», где была пройдена преддипломная практика. Функциональная схема системы Siemens PSS 400 представлена на рисунке 2.1.

Рисунок 2.1 - Функциональная схема системы Siemens PSS 400.

Из рисунка 2.1 видно, что к системе подключаются датчики тока, напряжения и температуры. Данные, полученные от датчиков, отображаются на дисплее, а также передаются на локальный компьютер через порт RS 232.

Общие характеристики системы Siemens PSS 400 приведены в таблице 2.1.

Таблица 2.1 - Общая характеристика системы Siemens PSS 400

Системное напряжение

24, 36, 48, 60 В

Диапазон измерения напряжения

0 - 99 В

Точность измерения напряжения

Максимум 0,5% диапазона измерения

Системный ток

0 - 2500 А

Диапазон измерения температуры

0 - 700С

Питающее напряжение

18 В

Функционирование системы Siemens PSS 400

Система Siemens PSS 400 представляет собой печатную плату с микроконтроллером, которая монтируется в специальную стойку, где расположены выпрямители. К плате подключаются датчик тока напряжения и температуры. На ней размещены три светодиода:

- сигнал SV1 говорит о том, что система требует немедленного вмешательства;

- SV2 - сигнал аварии показывает, что нагрузка питается от батареи;

- Mains fault - нарушение общего питания.

Жидкокристаллический дисплей (ЖК-дисплей) 2х5 знака предназначен для отображения значения тока, напряжения и температуры. Плата контролирует процесс разряда батареи, отображая текущие параметры на дисплей, сигнализирует об аварийных ситуациях, подсвечивая определенный светодиод, и в случае необходимости подает управляющий сигнал на реле (К10), которым батарея отключается от цепи, для предотвращения глубокого разряда. Система связана с персональным компьютером посредством порта RS 232.

Преимущества использования системы Siemens PSS 400: надежность, гарантированная производителем, сервисное обслуживание системы.

К недостаткам относятся: высокая цена, устаревший морально порт сопряжения с ПК, сложность изготовления системы, а также, узкая направленность.

3. Проектирование системы контроля

3.1 Разработка функциональной схемы

Исходя из технического задания и выявленных недостатков используемой системы Siemens PSS 400, разрабатываемая система контроля должна включать в себя датчики тока, напряжения, температуры и влажности. Данные от датчиков поступают на аналогово-цифровой преобразователь, где по уровням напряжения генерируется цифровой код, поступающий на микропроцессорный блок для дальнейшей обработки. В процессорном блоке принятый код переводится в форму представления, понятную для оператора. В дальнейшем преобразованные значения передаются на устройство отображения (например, небольшой жидкокристаллический дисплей) и, по организованному интерфейсу, передавать данные на персональный компьютер.

Исходя из этого, составлена функциональная схема системы контроля параметров представленная на рисунке 3.1.

24

7

Рисунок 3.1 - Функциональная схема системы контроля параметров линейной батареи узла коммутации.

3.2 Алгоритм функционирования системы контроля

На приемной стороне, для принятия данных, необходимо запустить драйвер, который сравнит идентификаторы устройства системы контроля с идентификаторами всех подключенных устройств ко всем шинам USB. Затем, обнаружив нужное устройство, отошлет пакет запроса данных, в ответе на который будет содержаться полезная информация для дальнейшей обработки (записи в файл, передачи по сети). В случае ошибки, выведет на экран характерное сообщение.

Перед началом опроса датчиков, системе необходимо настроить интерфейс сопряжения с ПК, подключить к назначенному порту устройство отображения (ЖК-дисплей) и подключить АЦП.

После настройки устройств ввода/вывода информации, системе, первым делом, необходимо определить температуру рабочей зоны, которая должна лежать в пределах от 180С до 220С, а 200С является оптимальной температурой. Если температура не соответствует заданному диапазону, то должен быть подан сигнал о слишком высокой или слишком низкой температуре в рабочей зоне (периодический звуковой сигнал). Если температура превышает плюс 600С, система должна сообщить о возникающей угрозе пожара (продолжительный звуковой сигнал) и отключить питание нагрузки от батареи.

Далее система должна определить влажность рабочей зоны. Диапазон относительной влажности, в котором допускается работа электропитающих установок лежит в пределах от 30% до 80%. В случае несоответствия - вывести на дисплей соответствующее сообщение.

После проверки внешних условий на соответствие рабочему состоянию, система переходит к контролю внутреннего состояния аккумуляторных батарей, а именно, к контролю напряжения и тока выдаваемого на нагрузку при разряде. Для этого определяется, идет ли разряд батареи, путем сравнения вновь полученных данных с датчика напряжения и предыдущими. Если полученное значение меньше предыдущего, значит идет разряд, и необходимо зажечь светодиод «Разряд батареи». Напряжение должно лежать в пределах от 53 В до 68 В, если напряжение на выходе 53 В, то система должна отключить батарею от нагрузки и зажечь светодиод «Батарея отключена». Это необходимо для предотвращения глубокого разряда батареи, в случае которого обратный заряд невозможен. Уровень тока зависит от потребления применяемой нагрузки. Чаще всего АТС потребляют 120 А, поэтому пределы замере тока должны лежать от 0 А до 200 А.

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

На основании словесного описания алгоритма функционирования системы составлена блок-схема алгоритма системы контроля представленная на рисунке 3.2.

3.3 Выбор микроконтроллера

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

К разрабатываемой системе подключаются различные датчики, поэтому присутствует блок аналогово-цифрового преобразования. Для достижения необходимой точности измерения был выбран 10-разрядный блок АЦП с частотой опроса 15КГц. В качестве устройства отображения информации был выбран жидкокристаллический дисплей Alphanumeric LCD Display Model HD44780 компании Densitron [2], который подключается к порту микроконтроллера семью выводами (три для управления и четыре для данных) и имеет разрешение 2х24 знакоместа. Микроконтроллер должен быть достаточно быстродействующим и иметь достаточный объем внутренней памяти, поскольку необходимо обеспечить реализацию USB интерфейса взаимодействия с компьютером.

Для более простой реализации, уменьшения затрат на сборку печатной платы и покупки дополнительных элементов, было принято решение выбрать микроконтроллер со встроенным АЦП и USB портом.

Преимущества такого решения состоит в следующем:

- встроенное АЦП избавит от настройки протокола взаимодействия с микроконтроллером, что сократит объем прошивки;

- аппаратно реализованный порт USB в микроконтроллере позволяет не задействовать отдельный порт под его реализацию, также облегчает его программную реализацию.

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

Исходя из вышеперечисленных фактов, был выбран микроконтроллер AT90USB1286 компании Atmel [3].

3.4 Основные характеристики микроконтроллера

Микроконтроллер AT90USB1286 - это экономичный 8-разрядный КМОП-микроконтроллер, выполненный на основе высокоэффективной архитектуры AVR RISC, это концепция проектирования процессоров (ЦПУ) [3], которая во главу ставит следующий принцип: более компактные и простые инструкции выполняются быстрее (RISC архитектура). За счет выполнения большинства инструкций за один период синхронизации, микроконтроллер достигает производительности 1 миллион операций в секунду на 1 МГц тактовой частоты, что позволяет оптимизировать соотношение потребляемой мощности и быстродействия. Ядро AVR сочетает обширный набор инструкций с 32 регистрами общего назначения. Все 32 регистра непосредственно подключены к арифметико-логическому устройству (АЛУ), что позволяет указывать в одной инструкции одновременно два регистра и выполнять такую инструкцию за один период синхронизации. Результирующая архитектура является более эффективной и позволяет на порядок повысить производительность относительно традиционных CISC-микроконтроллеров. AT90USB1286 содержит следующие компоненты:

- 128 кбайт внутрисистемно-программируемой флэш-памяти с возможностями чтения во время записи;

- 4 кбайт ЭСППЗУ (электрически стираемое перепрограммируемое ПЗУ). Память такого типа может стираться и заполняться данными несколько десятков тысяч раз;

- 8 кбайт статического ОЗУ;

- 48 линий ввода-вывода общего назначения;

- 32 рабочих регистра общего назначения;

- счетчик реального времени;

- четыре конфигурируемых таймера-счетчика с режимами сравнения и широтно-импульсной модуляцией;

- один УСАПП (Универсальный синхронный и асинхронный последовательный приемопередатчик предназначен для организации гибкой последовательной связи);

- байт-ориентированный 2-проводной последовательный интерфейс;

- 8-канальный 10-разрядный АЦП с опциональным дифференциальным входным каскадом (поддерживает программирование усиления);

- программируемый сторожевой таймер с отдельным внутренним генератором;

- последовательный порт SPI, последовательный периферийный интерфейс, шина SPI -- последовательный синхронный стандарт передачи данных в режиме полного дуплекса, разработанный компанией Motorola для обеспечения простого и недорогого сопряжения микроконтроллеров и периферии;

- интерфейс JTAG (совместим со стандартом IEEE 1149.1 и используется для программирования, граничного сканирования и доступа к встроенной отладочной системе).

Кроме того, микроконтроллер может быть переведен в один из шести экономичных режимов работы. В режиме холостого хода (Idle) останавливается ЦПУ, но продолжают работать статическое ОЗУ, таймеры-счетчики, порт SPI и система прерываний. В режиме снижения мощности (Power-down) сберегается содержимое регистров, но прекращает работу генератор, отключая все встроенные функции до следующего прерывания или аппаратного сброса. В экономичном режиме (Power-save) продолжает работу асинхронный таймер, обеспечивая возможность продолжения счета времени, когда остальная часть микроконтроллера отключена. В режиме снижения шума АЦП останавливается ЦПУ и все модули ввода-вывода, за исключением АЦП, что позволяет минимизировать влияние цифрового шума на результат преобразования. В дежурном режиме (Standby) продолжает работать кварцевый/керамический генератор, а остальная часть микроконтроллера бездействует. Использование этого режима позволяет достичь минимальной длительности возобновления нормальной работы микроконтроллера при сохранении пониженного уровня потребления. В расширенном дежурном режиме в работе остаются основной генератор и асинхронный таймер.

Микроконтроллеры выпускаются по технологии высокоплотной энергонезависимой памяти компании Atmel. Механизм программирования встроенной флэш-памяти позволяет перепрограммировать ее внутрисистемно через последовательный интерфейс SPI с помощью обычного программатора энергонезависимой памяти или с помощью встроенной загрузочной программы, выполняемой ядром AVR. Загрузочная программа может использовать любой интерфейс для загрузки программного кода во флэш-память. За счет разделения флэш-памяти на загрузочный сектор и сектор прикладной программы поддерживается действительная возможность чтения во время записи, когда загрузочный код продолжает исполняться и выполняется обновление сектора прикладной программы. Сочетание 8-разрядного RISC ЦПУ с внутрисистемно-самопрограммируемой флэш-памятью в одном кристалле делает микроконтроллеры Atmel AT90USB1286 мощным инструментом для эффективного и выгодного в стоимостном плане решения задач встраиваемого управления.

3.5 Выбор и обоснование языка программной реализации

На сегодняшний день существует достаточное количество различных сред для написания прошивки микроконтроллера на языке высокого и низкого уровня. Языком высокого уровня для написания прошивки является Си. Написанный код на языке Си удобно читается, он является более гибким для программирования, в отличие от языка низкого уровня Assembler. Для написания программы и драйвера была использован компилятор WinAVR, который распространяется бесплатно. Компилятор представляет собой набор инструментальных средств, предназначенных для программирования RISC микроконтроллеров семейства AVR на языке Си [7], он переводит код написанный на Си в ассемблерный код выбранного микроконтроллера, устанавливая значения битов регистров микроконтроллера, оптимизируя по усмотрению: либо для экономии памяти, либо для ускорения работы микроконтроллера.

3.6 Расчет электрических параметров системы контроля

При использовании 10-и разрядного АЦП будет достигаться необходимая точность в измерениях напряжения и тока. На вход АЦП подается непрерывный аналоговый сигнал, а на выходе получается последовательность цифровых значений. АЦП имеет много характеристик, но в качестве основных можно назвать разрешающую способность, абсолютную точность, предельную частоту дискретизации и диапазон входных напряжений [16].

Разрешающая способность (разрешение) - это способность АЦП различать два значения входного сигнала [18]. Определяется как величина обратная максимальному числу кодовых комбинаций на выходе АЦП. У микроконтроллера АЦП 10-ти разрядный. Максимальное число кодовых комбинаций будет равно 210 = 1024. Разрешающая способность равна 1/1024 от всей шкалы допустимых входных напряжений.

Для работы АЦП необходим источник опорного напряжения (ИОН). Для него это эталон, по отношению к которому он измеряет входные сигналы. Микроконтроллеры AVR позволяют в качестве ИОНа использовать напряжение питания, внутренний опорный источник на 2,56 В и напряжение на выводе AREF (внешний ИОН).

Напряжение питания в нашем случае 5 В, тогда 1/1024 от всей шкалы это 5 * 1/1024 = 0,0048 В или примерно 5 мВ. С таким шагом (это называется шаг квантования) АЦП будет измерять входное напряжение. Если два ближайших значения сигнала на входе АЦП будут отличаться между собой на величину < 5 мВ, АЦП воспримет их как одинаковые.

Абсолютная точность - отклонение реального преобразования от идеального. Это составной результат нескольких погрешностей АЦП. Выражается в количестве младших значащих разрядов (LSB - least significant bit) АЦП. Для AVRа абсолютная погрешность АЦП = ±2LSB [21]. Для используемого АЦП абсолютная точность будет равна 2 * 5 мВ = ±10 мВ.

Предельная частота дискретизации определяет быстродействие АЦП и измеряется в герцах или количестве выборок в секунду (SPS - samples per second). Для микроконтроллеров AVR эта величина равна 15 kSPS (килло семплов в секунду).

Теорема Котельникова (теорема Найквиста-Шеннона) [13] гласит, что аналоговый сигнал, имеющий ограниченный спектр, может быть восстановлен однозначно и без потерь по своим дискретным отсчётам, если частота выборки (дискретизации) превышает максимальную частоту спектра сигнала более чем в 2 раза. Так, нам нужно оцифровать аналоговый сигнал с полосой спектра 0 - 7 КГц, то в идеальном случае частота дискретизации должна быть > удвоенной максимальной частоты спектра этого сигнала, то есть > 14 КГц.

Поскольку разряд батареи идет плавно и без скачков напряжения, то частоты дискретизации 15 КГц вполне достаточно для однозначного отображения процесса разряда.

Диапазон входных напряжений - это минимальное и максимальное значение напряжения, которое можно подавать на вход АЦП. Для микроконтроллера AVR он равен 0 - Vcc (напряжение питания)

Для верности измерений, напряжение в 67 В делим резистором и подаем на вход АЦП максимум 5 В. Перевести цифровой код в напряжение на входе АЦП, можно по формуле:

Uin = Ref * adc_data / ((2n-1), (3.1)

где n - разрядность АЦП, Uin - входное напряжение, Ref - напряжение опорного источника, adc_data - код с АЦП.

Для измерения тока устанавливается шунт 100А/60 мВ (стандартный шунт устанавливаемый на АТС), напряжение которое с него снимается, проходит через усилитель, выход последнего подается на вход АЦП. Получаем что при 5 В значение тока будет равно 200 А.

4. Разработка контроллера интерфейса USB 2.0

4.1 Структурная схема и общие регистры USB

USB-контроллер содержит все необходимые компоненты для соединения USB-канала со встроенным двухпортовым ОЗУ (DPRAM).

USB-контроллер синхронизируется частотой 48 МГц±0.25% (для работы в режиме FS), которая создается внутренним блоком PLL. Данный блок синтезирует высокочастотный сигнал (48 МГц) из более низкочастотного сигнала. Источником этого сигнала могут служить кварцевый генератор или вход внешней синхронизации XTAL1 (только они отвечают требованиям USB-контроллера к стабильности частоты и фазовому шуму и обеспечивают надлежащее его функционирование).

Сигнал синхронизации 48 МГц в дальнейшем используется для генерации сигнала битовой синхронизации частотой 12 МГц в режиме FS (или 1.5 МГц в режиме LS) при приеме дифференциальных данных, а также для передачи данных с учетом допустимых отклонений в соответствующем скоростном режиме. Восстановление синхронизации выполняется блоком цифровой фазовой автоподстройки частоты (блок DPLL), который совместим с требованиями к фазовому шуму шины USB.

Для соответствия требованиям к электрическим характеристикам шины USB выводы D+ и D- должны иметь высокие уровни напряжений в пределах 3.0…3.6 В. Для этих целей в AT90USB1286 встроен специальный стабилизатор напряжения, что сохранило возможность питания МК напряжением до 5.5 В [11].

Структурная схема USB-контроллера приведена на рисунке 4.1.

Контроллер USB настраивается семью общими регистрами, которыми обеспечиваются различные режимы работы, путем установки битов [11]. Ниже приведено подробное описание регистров и значения их разрядов.

Формат регистра UHWCON представлен на рисунке 4.2:

146

Разряд

7

6

5

4

3

2

1

0

 

UIMOD

UIDE

 

UVCONE

 

 

 

UVREGE

Чтение/запись

Чт./Зп.

Чт./Зп.

Чт.

Чт./Зп.

Чт.

Чт.

Чт.

Чт./Зп.

Исх. Значение

1

0

0

0

0

0

0

0

Рисунок 4.2 - Формат регистра UHWCON

Бит 7 - UIMOD: бит режима USB. Данный бит не оказывает никакого влияния, когда установлен бит UIDE (активирует внешний вывод UID). Бит устанавливается, когда необходимо выбрать режим Device, и сбросьте, когда нужен режим Host.

Бит 6 - UIDE: разрешение работы вывода UID. Устанавливается этот бит для разрешения работы логики выбора режима USB (Device/host) через вывод UID. Этот бит следует сбросить при необходимости выбора режима USB (Device/host) битом UIMOD.

Бит 5 - Резерв. При чтении данного бита всегда возвращается 0.

Бит 4 - UVCONE: разрешение работы вывода UVCON. Устанавливается бит при необходимости разрешения работы выхода управления UVCON. Данный бит необходимо устанавливать только при активном интерфейсе USB.

Биты 3-1 - Резерв. При чтении данных бит всегда возвращаются нули.

Бит 0 - UVREGE: разрешение работы встроенного стабилизатора напряжения. Этот бит устанавливается для включения встроенного стабилизатора напряжения.

Рисунок 4.1 - Структурная схема USB-контроллера

Формат регистра USBCON представлен на рисунке 4.3.

Бит 7 - USBE: разрешение работы USB-контроллера. Бит устанавливается для разрешения работы USB-контроллера и сбрасывается для отключения сброса USB-контроллера, для отключения USB-трансивера и для отключения входов синхронизации USB-контроллера.

Разряд

7

6

5

4

3

2

1

0

 

USBE

HOST

FRZCLK

OTGPADE

-

-

IDTE

VBUSTE

Чтение/запись

Чт./Зп.

Чт./Зп.

Чт./Зп.

Чт./Зп.

Чт.

Чт.

Чт./Зп.

Чт./Зп.

Исх. значение

0

0

1

0

0

0

0

0

Рисунок 4.3 - Формат регистра USBCON

Бит 6 - HOST: бит HOST. Устанавливается бит для выбора режима Host. Сбросить бит для выбора режима Device.

Бит 5 - FRZCLK: бит остановки синхронизации USB-контроллера. Устанавливается бит для отключения входов синхронизации (функция обнаружения возобновления "Resume Detection" остается активной). Это позволяет снизить потребляемый ток.

Бит 4 - OTGPADE: разрешение работы вывода OTG.Устанавливается этот бит для разрешения работы вывода OTG. Сбрасывается бит для отключения вывода OTG. Данный бит можно установить/сбросить даже если USBE=0. Это позволяет контролировать VBUS, даже когда USB-контроллер отключен. Работу вывода можно разрешить как в режиме Host, так и в режиме Device, чтобы способствовать работе интерфейса USB (присоединение к шине, передача).

Биты 3-2 - Резерв. При чтении данных бит всегда возвращаются нули.

Бит 1 - IDTE: бит разрешения прерывания по изменению состояния ID. Устанавливается данный бит для разрешения генерации прерывания по изменению состояния вывода ID.

Бит 0 - VBUSTE: бит разрешения прерывания по изменению VBUS. Устанавливается этот бит для разрешения генерации прерывания по изменению VBUS. Формат регистра USBSTA представлен на рисунке 4.4:

Разряд

7

6

5

4

3

2

1

0

 

-

-

-

-

SPEED

 

ID

VBUS

Чтение/запись

Чт.

Чт.

Чт.

Чт.

Чт.

Чт.

Чт.

Чт.

Исх. значение

0

0

0

0

1

0

1

0

Рисунок 4.4 - Формат регистра USBSTA

Биты 7-4 - Резерв. При чтении данных битов всегда возвращаются нули.

Бит 3 - SPEED: флаг статуса скорости. Его необходимо опрашивать, только когда USB-контроллер работает в режиме Host; в режиме Device состояние данного бита является неопределенным. Устанавливается и сбрасывается аппаратно, когда контроллер работает в режиме FULL-SPEED (FS) и LOW-SPEED (LS), соответственно.

Бит 2 - Резерв. При чтении данного бита всегда возвращается 0.

Бит 1 - ID: флаг статуса вывода IUD. Считанное из данного бита значение индицирует состояние вывода UID.

Бит 0 - VBUS: флаг статуса вывода VBus. Считанное из данного бита значение индицирует состояние вывода VBUS. Данный бит можно использовать в режиме Device для контроля состояния подключения шины USB.

Формат регистра USBINT представлен на рисунке 4.5:

Разряд

7

6

5

4

3

2

1

0

 

-

-

-

-

-

-

IDTI

VBUSTI

Чтение/запись

Чт.

Чт.

Чт.

Чт.

Чт.

Чт.

Чт./Зп.

Чт./Зп.

Исх. Значение

0

0

0

0

0

0

0

0

Рисунок 4.5 - Формат регистра USBINT

Биты 7-2 - Резерв. При чтении данных бит всегда возвращается 0.

Бит 1 - IDTI: флаг прерывания по изменению состояния вывода ID. Устанавливается аппаратно при обнаружении изменения состояния (переход из высокого состояния в низкое или наоборот) вывода UID.

Бит 0 - VBUSTI: флаг прерывания по изменению состояния VBUS. Устанавливается аппаратно при обнаружении изменения состояния (переход из высокого состояния в низкое или наоборот) на выводе VBUS.

Формат регистра OTGCON представлен на рисунке 4.6:

Разряд

7

6

5

4

3

2

1

0

 

-

-

HNPREQ

SRPREQ

SRPSEL

VBUSHWC

VBUSREQ

VBUSRQC

Чтение/

запись

Чт.

Чт.

Чт./Зп.

Чт./Зп.

Чт./Зп.

Чт./Зп.

Чт./Зп.

Чт./Зп.

Исх. значение

0

0

0

0

0

0

0

0

Рисунок 4.6 - Формат регистра OTGCON

Биты 7-6 - Резерв. При чтении данных бит всегда возвращаются 0.

Бит 5 - HNPREQ: бит запроса HNP. Устанавливается данный бит для инициации HNP, когда контроллер работает в режиме Device (сторона B).

Бит 4 - SRPREQ: бит запроса SRP. Устанавливается бит для инициации SRP, когда контроллер работает в режиме Device. Сбрасывается аппаратно, когда контроллер инициирует SRP.

Бит 3 - SRPSEL: бит выбора SRP. Устанавливается для выбора генерации импульсов на VBUS в качестве метода SRP. Сбрасывается для выбора генерации импульсов на линии данных как метода SRP.

Бит 2 - VBUSHWC: бит аппаратного управления VBus. Устанавливается этот бит для отключения аппаратного управления выводом UVCON. Сбрасывается бит для разрешения аппаратного управления выводом UVCON.

Бит 1 - VBUSREQ: бит запроса VBUS. Устанавливается этот бит при необходимости перевода вывода UVCON в состояние, которое разрешает генерацию напряжения VBUS. Данный бит используется, когда контроллер работает в режиме Host. Сбрасывается аппаратно, когда установлен бит VBUSRQC.

Бит 0 - VBUSRQC: бит отмены запроса VBUS. Устанавливается данный бит для отключения функции UVCON управления разрешением генерации напряжения питания VBUS. Данный бит используется только при работе контроллера в режиме Host. Сбрасывается аппаратно сразу после установки.

Формат регистра OTGIEN представлен на рисунке 4.7:

Разряд

7

6

5

4

3

2

1

0

 

-

-

STOE

HNPERRE

ROLEEXE

BCERRE

VBERRE

SRPE

Чтение/запись

Чт.

Чт.

Чт./Зп.

Чт./Зп.

Чт./Зп.

Чт./Зп.

Чт./Зп.

Чт./Зп.

Исх. значение

0

0

0

0

0

0

0

0

Рисунок 4.7 - Формат регистра OTGIEN

Биты 7-6 - Резерв. При чтении данных бит всегда возвращаются 0.

Бит 5 - STOE: бит разрешения прерывания по истечению времени в режиме SUSPEND . Устанавливается для разрешения прерывания.

Бит 4 - HNPERRE: бит разрешения прерывания по ошибке HNP. Устанавливается для разрешения прерывания HNPERRI.

Бит 3 - ROLEEXE: бит разрешения прерывания при изменении роли. Устанавливается для разрешения прерывания ROLEEXI.

Бит 2 - BCERRE: бит разрешения прерывания по ошибке подключения стороны B. Устанавливается для разрешения прерывания BCERRI.

Бит 1 - VBERRE: бит разрешения прерывания по ошибке VBus. Устанавливается для разрешения (запрета) прерывания VBERRI.

Бит 0 - SRPE: бит разрешения прерывания SRP. Устанавливается для разрешения прерывания SRPI.

Формат регистра OTGIN представлен на рисунке 4.8:

Разряд

7

6

5

4

3

2

1

0

 

-

-

STOI

HNPERRI

ROLEEXI

BCERRI

VBERRI

SRPI

Чтение/запись

Чт.

Чт.

Чт./Зп.

Чт./Зп.

Чт./Зп.

Чт./Зп.

Чт./Зп.

Чт./Зп.

Исх. значение

0

0

0

0

0

0

0

0

Рисунок 4.8 - Формат регистра OTGIN

Биты 7-6 - Резерв. При чтении данных бит всегда возвращаются 0.

Бит 5 - STOI: флаг прерывания по истечению времени в режиме SUSPEND. Устанавливается аппаратно по истечении выдержки времени (более 150 мс) после обнаружения состояния SUSPEND. Необходимо сбросить программно.

Бит 4 - HNPERRI: флаг ошибки прерывания HNP. Устанавливается аппаратно, когда обнаруживается ошибка по ходу осуществления протокола HNP. Необходимо сбросить программно.

Бит 3 - ROLEEXI: флаг прерывания по изменению роли. Устанавливается аппаратно, когда USB-контроллер успешно изменил свой режим работы вследствие негоциации HNP: Host-->Device или Device-->Host. Тем не менее, бит выбора режима (Host/Device) остается неизменным и его необходимо изменить программно, чтобы достигнуть нужных ячеек ОЗУ и бит событий.

Бит 2 - BCERRI: флаг прерывания по ошибке подключения стороны B. Устанавливается аппаратно, когда обнаруживается ошибка в ходе подключения стороны B (т.е. когда не обнаруживается подключение Device-системы в течение 300 мс существования Vbus). Необходимо сбросить программно.

Бит 1 - VBERRI: флаг прерывания по ошибке VBus. Устанавливается аппаратно при обнаружении падения на VBus. Необходимо сбросить программно.

Бит 0 - SRPI: флаг прерывания SRP. Устанавливается аппаратно, когда обнаруживается SRP. Должен использоваться только в режиме Host. Необходимо сбросить программно.

4.2 Рабочие режимы программы USB-интерфейса

В зависимости от режима работы USB, программа должна выполнить ряд приведенных ниже действий [11].

Подача питания USB-интерфейса:

- включение внутреннего стабилизатора напряжения;

- настройка интерфейса блока PLL (встроенный блок фазовой автоподстройки частоты предназначен для синтеза повышенных частот системной синхронизации);

- разрешение работы блока PLL и ожидание входа его в состояние захвата (lock);

- разрешение работы USB-интерфейса;

- настройка USB-интерфейса (скорость, настройка конечных точек и др.);

- ожидание информационного подключения USB VBUS;

- присоединение к шине.

Отключение питание USB-интерфейса:

- отсоединение USB-интерфейса;

- отключение USB-интерфейса;

- отключение блока PLL;

- отключение встроенного стабилизатора.

Приостановка USB-интерфейса (режим SUSPEND):

- сброс бита приостановки;

- отключение синхронизации USB;

- отключение блока PLL;

- проверка, разрешены ли прерывания, позволяющие возобновить активную работу;

- перевод МК в экономичный режим работы (SLEEP);

- возобновление работы USB-интерфейса;

- разрешение работы PLL;

- ожидание перехода блока PLL в состояние захвата;

- разрешение работы синхронизации USB;

- очистка информации, связанной с возобновлением.

4.3 Работа USB-контроллера в режиме Device

Device-контроллер поддерживает передачу данных на скорости FS и LS. В дополнение к конечной точке типа CONTROL, которая доступна по умолчанию, доступны еще 6 конечных точек с конфигурируемыми режимами CONTROL, BULK, INTERRUPT и ISOCHRONOUS [15]:

- конечная точка 0: буфер FIF с программируемым размером до 64 байт, конечная точка по умолчанию, тип CONTROL;

- конечная точка 1: буфер FIF с программируемым размером до 256 байт в режиме ping-pong;

- конечные точки 2…6: буфер FIF с программируемым размером до 64 байт в режиме ping-pong.

Контроллер начинает свою работу с режима IDLE. В этом режиме потребление оконечным каскадом сведено до минимума.

Рисунок 4.9 демонстрирует основные состояния Device-контроллера после подачи питания.

Рисунок 4.9 - Состояния Device-контроллера после сброса

Под состоянием сброса Device-контроллера понимается состояние, в котором:

- отключена его синхронизации для минимизации потребляемого тока (FRZCLK=1);

- все внутренние регистры Device-контроллера приняли свое исходное значение (обратите внимание, что DETACH=1);

- банки конечных точек являются сброшенными;

- подтяжка к плюсу питания на D+ и D- отключена (режим DETACH).

Подтяжка к плюсу на D+ или D- активизируется сразу после обнуления бита DETACH и появления напряжения VBUS.

USB-контроллер после сброса переводится в состояние IDLE для минимизации потребляемого тока. Для перехода в это состояние нет необходимости в активизации блока PLL.

Device-контроллер можно в любое время сбросить путем обнуления бита USBE (отключение интерфейса USB).

4.4 Сброс, выбор и активизация конечной точки

Конечная точка может быть сброшена в любой момент путем установки в регистре UERST бита соответствующей конечной точки (EPRSTx) [11]. Это приведет к:

- сбросу внутреннего автомата состояний выбранной конечной точки;

- сбросу банков приема и передачи, а также восстановлению их внутренних указателей;

- записи своих исходных значений в UEINTX, UESTA0X и UESTA1X.

Поле переключателя данных (DATA TOGGLE) остается неизменным.

Прочие регистры остаются неизменными.

Настройка конечной точки остается действительной, а сама конечная точка сохраняется разрешенной.

Сброс конечной точки можно связать с командой сброса переключателя данных (бит RSTDT), как ответ на USB-команду CLEAR_FEATURE.

При обнаружении USB-сброса на линии USB контроллером выполняются следующие действия:

- отключаются все конечные точки;

- конечная точка по умолчанию (тип CONTROL) сохраняется сконфигурированной.

Перед выполнением каких-либо действий со стороны ЦПУ необходимо выполнить выбор конечной точки. Для этого предусмотрены биты EPNUM2:0 (регистр UENUM), в которые необходимо записать номер конечной точки, с которой желает работать ЦПУ.

После этого, ЦПУ может осуществлять доступ к различным регистрам и данным конечной точки.

Конечная точка удерживается в состоянии сброса до тех пор, пока не установлен бит EPEN.

Если настройка конечной точки выполнена некорректно (CFGOK=0), контроллер не будет подтверждать пакеты, отправленные с Host-стороны.

Бит CFGOK не устанавливается, если задан размер конечной точки, который больше размера DPRAM.

Обнуление бита EPEN действует как сброс конечной точки. При этом также выполняются следующие действия:

- сохраняется настройки конечной точки (EPSIZE, EPBK, ALLOC);

- сбрасывается поле переключателя данных.

4.5 Настройка адреса

Адрес Device-контроллера устанавливается в соответствии с протоколом USB [11]:

- после подачи питания Device-сторона доступна по адресу 0;

- Host отправляет команду SETUP (SET_ADDRESS(addr));

- программа записывает адрес в UADD, но при этом сохраняет ADDEN равным нулю;

- Device отправляет команду IN с нулем байт (пакет IN нулевой длины);

- после этого программа может разрешить адрес Device-контроллера путем установки бита ADDEN. В этом случае контроллер будет использовать адрес, сохраненный в UADD.

ADDEN и UADD нельзя записывать одновременно. После подачи питания или USB-сброса в UADD содержится адрес по умолчанию (00h).

ADDEN сбрасывается аппаратно:

- после сброса при подаче питания;

- когда принят USB-сброс;

- или когда отключен весь USB-контроллер (обнулен бит USBE).

Когда этот бит равен нулю, используется адрес по умолчанию (00h).

4.6 Режим SUSPEND и выход из него

По истечении 3 мс, в течение которых линия USB была неактивной, контроллер переключается в полноскоростной режим и инициирует прерывание SUSPI (если оно было разрешено) [11]. После этого, в программе можно установить бит FRZCLK.

ЦПУ, в зависимости от архитектуры программы, также может ввести режим IDLE для снижения потребляемого тока.

Доступно два способа для выхода из режима SUSPEND:

- первый заключается в обнулении бита FRZCLK. Это возможно, если ЦПУ не находится в режиме IDLE;

- в случае же, если ЦПУ находится в режиме IDLE, подходит другой способ, который состоит в разрешении прерывания WAKEUPI (WAKEUPE=1). В таком случае, если контроллером обнаруживается сигнал отличный от IDLE, инициируется прерывание WAKEUPI.

В дальнейшем, для перезапуска передачи, программа должна сбросить бит FRZCLK.

Не существует никакой связи между прерываниями SUSPI и WAKEUPI: прерывание WAKEUPI запускается сразу при обнаружении отличных от IDLE сигналов на линиях данных. Таким образом, прерывание WAKEUPI может возникнуть, даже если контроллер не в режиме SUSPEND.

Если бит прерывания SUSPI был установлен, то после запуска прерывания WAKEUPI он сбрасывается автоматически. Аналогичным образом, если во время запуска прерывания SUSPI бит прерывания WAKEUPI был уже установлен, то он сбросится автоматически.

4.7 Отсоединение и удаленное возобновление

После сброса бит DETACH равен 1.

Имеется возможность повторно выполнить процедуру перечисления (enumeration) [3]. Для этого достаточно установить и сбросить бит DETACH.

Установка бита DETACH приводит к отключению подтяжки к плюсу питания на выводе D+ или D- (в зависимости от выбранного скоростного режима, FS или LS). Затем, после обнуления DETACH, подтяжка к плюсу питания на D+ или D- будет вновь активизирована (см. рис. 4.10).

Рисунок 4.10 - Отсоединение стороны Device в полноскоростном режиме

Запрос на удаленное возобновление (REMOTE WAKE-UP или UPSTREAM RESUME) является единственной операцией, которую Device-сторона может выполнить по своей собственной инициативе. Однако, чтобы сделать это, Device-сторона должна сначала принять со стороны Host запрос DEVICE_REMOTE_WAKEUP.

Вначале USB-контроллер должен обнаружить на линии состояние SUSPEND: запрос на удаленное возобновление можно отправить, только когда установлен флаг SUSPI.

После этого программа имеет возможность установить RMWKUP для отправки потока UPSTREAM RESUME. Данная операция автоматически выполняется контроллером по истечении 5 мс неактивности линии USB.

Когда контроллер начинает передавать поток UPSTREAM RESUME, запускается прерывание UPRSMI (если оно было разрешено). Флаг SUSPI сбрасывается аппаратно.

RMWKUP сбрасывается аппаратно в конце потока UPSTREAM RESUME.

Если контроллер обнаруживает правильный сигнал END OF RESUME (передается Host-стороной), запускается прерывание EORSMI (если оно было разрешено).

4.8 Передача пакета STALL

Для каждой конечной точки управление функцией STALL осуществляется с использование следующих бит:

- STALLRQ (разрешение запроса STALL);

- STALLRQC (отключение запроса STALL);

- STALLEDI (флаг прерывания по отправке STALL).

Чтобы следующим запросом был отправлен пакет подтверждения STALL, необходимо установить бит STALLRQ. Все последующие запросы будут подтверждаться с помощью STALL до тех пор, пока установлен бит STALLRQC.

Установка STALLRQC приводит к автоматическому обнулению бита STALLRQ. Бит STALLRQC моментально обнуляется аппаратными средствами сразу после его программной установки. Таким образом, при опросе данного бита никогда не возвращается единичное значение.

При каждой отправке подтверждения типа STALL USB-контроллер устанавливает флаг STALLEDI, при этом, генерируется прерывание EPINTx (если оно было разрешено).

Входящие пакеты будут отклонены (RXOUTI и RWAL не будут установлены).

После этого, Host-сторона отправит команду для сброса функции STALL: все, что должна сделать программа в этом случае - это установить бит STALLRQC и сбросить конечную точку [11].

4.9 Особенности работы и управление конечными точками типа CONTROL

Запрос SETUP всегда подтверждается пакетом ACK [11].

Если для конечной точки типа CONTROL задана передача пакета STALL и, при этом, появляется запрос SETUP, этот запрос подтверждается пакетом ACK, а флаги запроса (STALLRQ) и отправки (STALLEDI) автоматически сбрасываются (RXSETUPI=1, TXIN=0, STALLED=0, TXINI=0...).

Такой механизм упрощает управление процессом перечисления. Если команда не поддерживается или содержит ошибку, программа устанавливает флаг запроса STALL и возвращается к основной задаче, ожидая следующего запроса SETUP.

Данная функция совместима с тестом, в котором отправляется дополнительный статус для GET_DESCRIPTOR [3]. Программа устанавливает запрос STALL только после приема статуса. Все дополнительные статусы будут автоматически подтверждаться пакетом STALL вплоть до следующего запроса SETUP.

Механизм повтора (RETRY) имеет более высокий приоритет, чем подтверждение типа STALL. Подтверждение типа STALL отправляется, если установлен бит запроса STALLRQ и если нет необходимости в повторе.

Запрос SETUP всегда подтверждается пактом ACK. После получения нового пакета SETUP запускается прерывание RXSTPI (если прерывание было разрешено). Прерывание RXOUTI не запускается.

Поля FIFOCON и RWAL не имеют отношения к конечным точкам CONTROL. В связи с этим, программа при работе с такими конечными точками не должна обращаться к этим полям. При их опросе всегда возвращаются нулевые значения.

Конечные точки типа CONTROL управляются следующими битами:

- RXSTPI становится равным единице после приема нового запроса SETUP. Его необходимо сбросить программно для подтверждения пакета и для сброса банка конечной точки;

- RXOUTI становится равным единице при приеме данных типа OUT. Его необходимо сбросить программно для подтверждения пакета и сброса банка конечной точки;

- TXINI становится равным единице, когда банк готов для приема нового пакета типа IN. Его необходимо сбросить программно для отправки пакта и сброса банка конечной точки.

4.10 Управление конечными точками OUT и IN

Пакеты OUT отправляются Host-ом. Все данные могут быть считаны ЦПУ, который подтверждает или нет банк после его освобождения [11].

Первой должна быть сконфигурирована конечная точка.

После каждого заполнения текущего банка устанавливаются биты RXOUTI и FIFOCON. Если установлен бит RXOUTE, это приводит к запуску прерывания. Программа может подтвердить USB-прерывание путем сброса бита RXOUTI. Для освобождения текущего банка программа выполняет чтение данных и сброс бита FIFOCON. Если конечная точка OUT состоит из нескольких банков, то вместе со сбросом бита FIFOCON произойдет смена банка. Обновление бит RXOUTI и FIFOCON осуществляется аппаратными средствами в соответствии со статусом нового банка.

Сброс RXOUTI всегда должен предшествовать сбросу FIFOCON.

Бит RWAL всегда отражает состояние текущего банка. Данный бит устанавливается, когда программа может выполнить чтение данных из банка, и сбрасывается, когда банк пуст.

ЦПУ считывает данные в соответствии со следующей последовательностью:

- по завершении заполнения банка Host-стороной инициируется запуск прерывания конечной точки (EPINTx), но только при условии, что оно разрешено (RXOUTE =1) и установлен бит RXOUTI. В зависимости от используемой архитектуры программы, ЦПУ может альтернативно выполнить опрос бита RXOUTI или FIFOCON;

- ЦПУ подтверждает прерывание путем сброса RXOUTI;

- ЦПУ может выполнить чтение количества байт (N) в текущем банке (N=BYCT);

- ЦПУ может выполнить чтение данных из текущего банка (N чтений UEDATX);

- ЦПУ может освободить банк путем сброса FIFOCON по завершении считывания всех данных, т.е.: после N чтений UEDATX и сразу после аппаратного сброса RWAL.

Если конечная точка использует 2 банка, то во время чтения ЦПУ одного банка Host-сторона может заполнять другой банк. Затем, когда ЦПУ сбрасывает FIFOCON, следующий банк может быть уже готов и RXOUTI устанавливается незамедлительно.

Пакеты IN отправляются Device-контроллером по запросу IN Host-стороны. Все данные могут быть записаны ЦПУ, который подтверждает или нет заполненный банк.

Первоначально необходимо настроить конечную точку.

Бит TXINI устанавливается аппаратно, когда освобождается текущий банк. Если бит TXINE установлен, это приводит к запуску прерывания. Одновременно с ним выполняется установка бита FIFOCON. Чтобы разрешить USB-контроллеру передавать данные, ЦПУ нужно записать их в FIFO и сбросить бит. Если конечная точка IN состоит из нескольких банков, то одновременно с этим происходит переход к следующему банку данных. Биты TXINI и FIFOCON автоматически обновляются аппаратными средствами, независимо от состояния следующего банка.

Бит TXINI необходимо обнулять только перед обнулением FIFOCON.

Бит RWAL всегда отражает состояние текущего банка. Данный бит равен 1, когда разрешается программная запись данных в банк, и равен 0, когда банк полон.

ЦПУ записывает данные в соответствии со следующей последовательностью:

- когда банк пуст, запускается прерывание конечной точки (EPINTx), но только при условии, что это прерывание разрешено (TXINE=1) и установлен бит TXINI. В зависимости от архитектуры программы, ЦПУ альтернативно может выполнить опрос бита TXINI или FIFOCON;

- ЦПУ подтверждает прерывание сбросом бита TXINI;

- ЦПУ записывает данные в текущий банк (запись в UEDATX);

- ЦПУ освобождает банк путем сброса FIFOCON, но только после записи всех данных, а именно: после N записей в UEDATX и вскоре после аппаратного сброса RWAL.

Если конечная точка использует 2 банка, то одновременно с заполнением ЦПУ одного банка Host-сторона может считывать другой банк. Затем, когда ЦПУ сбрасывает FIFOCON, очередной банк может быть уже готов (свободен), а TXINI устанавливается незамедлительно.

Потребность в функции ABORT инициируется Host-стороной и возникает в следующих ситуациях:

- (транзакция CONTROL) ZLP-данные OUT приняты на этапе IN;

- (транзакция ISOCHRONOUS IN) ZLP-данные OUT приняты конечной точкой OUT на этапе IN конечной точки IN.

В такой ситуации необходимо воспользоваться битом ликвидации последнего записанного банка KILLBK, придерживаясь следующего алгоритма.

4.11 Прерывания

Все прерывания разделяются на два вида: операционные (т.е. их генерация является частью нормальной работы) и нештатные (ошибки) [11].

Предусмотрена генерация следующих видов операционных прерываний:

- по обнаружению подачи или снятия напряжения VBUS (VBUSTI);

- UPSTREAM RESUME (UPRSMI);

- END OF RUSUME (EORSMI);

- WAKE-UP (WAKEUPI);

- END OF RESET (инициализация скорости) (EORSTI);

- START OF FRAME (SOFI, если FNCERR=0);

- по обнаружению SUSPEND после 3 мс неактивности (SUSPI);

- готовность к получению данных IN (EPINTx, TXINI=1);

- прием данных OUT (EPINTx, RXOUTI=1);

- прием SETUP (EPINTx, RXSTPI=1).

Нештатные прерывания генерируются, когда:


Подобные документы

  • Принцип действия, функциональная и структурная схемы системы следящего привода. Исследование и моделирование линейной автоматической системы. Анализ устойчивости с помощью критерия Гурвица. Моделирование в Matlab, оптимизация параметров регулятора.

    лабораторная работа [683,5 K], добавлен 30.11.2011

  • Автоматизация технологического процесса системы телоснабжения. Анализ методов и средств контроля, регулирования и сигнализации технологических параметров. Выбор и обоснование технических средств, микропроцессорного контролера. Оценка устойчивости системы.

    дипломная работа [1,3 M], добавлен 31.12.2015

  • Понятие математической модели линейной дискретной системы (ЛДС) как соотношение вход/выход в виде уравнения или системы уравнений с целью вычисления реакции на сигналы. Моделирование работы ЛДС в программной среде MATLAB. Порядок выполнения работы.

    контрольная работа [221,6 K], добавлен 29.09.2011

  • Обоснование выбора программируемого логического контроллера и разработка автоматизированной системы контроля процесса пайки топливных коллекторов с помощью логического процессора фирмы "ОВЕН". Программное обеспечение датчиковой аппаратуры системы.

    дипломная работа [3,5 M], добавлен 02.06.2014

  • Основные принципы построения системы диспетчерского контроля и управления магистральными нефтепроводами. Система линейной телемеханики контроллер "ЭЛСИ-Т". Выбор и обоснование первичных преобразователей. Датчик прохождения очистного устройства ДПС-5В.

    курсовая работа [285,0 K], добавлен 03.03.2015

  • Физические основы электрокардиографии. Виды помех и их устранение. Погрешности измерения амплитудно-временных параметров ЭКГ. Разработка имитатора сигналов: узел контроля напряжения батареи, расчет блока питания. Проведение поверки электрокардиографа.

    магистерская работа [1,1 M], добавлен 05.02.2012

  • Установление мест, подлежащих блокированию и контролю доступа. Определение требуемого класса системы контроля доступа и системы видеонаблюдения. Разработка структуры сетей системы, подбор необходимого оборудования. Расчет затрат для реализации проекта.

    дипломная работа [1,8 M], добавлен 08.06.2013

  • Анализ существующих систем контроля и управления доступом (СКУД). Разработка структурной схемы и описание работы устройства. Выбор и обоснование эмулятора для отладки программы работы СКУД. Отладка программы системы управления охранной сигнализацией.

    курсовая работа [2,1 M], добавлен 23.03.2015

  • Расчет и обоснование параметров кодеков. Формирование цикла передачи. Расчет параметров системы цикловой синхронизации. Обоснование выбора кабеля и расчет максимальных длин участков регенерации. Разработка и обоснование структуры линейного тракта.

    курсовая работа [197,2 K], добавлен 25.02.2009

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

    курсовая работа [924,7 K], добавлен 04.10.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.