Министерство образования и науки РФ
Московский Государственный Институт Электроники и Математики
(Технический университет)
Курсовая работа
Тема работы:
Разработка устройства удаленного управления DVR-сервером
Студент группы С-45
Преподаватель
Москва, 2008 г.
Содержание
Содержание. 2
Техническое задание. 2
Назначение устройства и его описание. 3
Описание модуля клавиатуры.. 6
Описание блока индикации. 7
Описание алгоритма работы устройства. 8
Приложение 1: список команд устройства. 10
Техническое задание
Назначение устройства: быстрое удаленное управление 5 каналами записи видео на DVR-сервере.
Требования к устройству:
· Индикация состояния каждого канала
· Индикация группировки каналов
· Управление каждым каналом отдельно и возможность их группировки
· Встроенная индикация системного времени
· Возможность подключения внешнего индикатора времени
· Возможность подключения к TALLY-терминалу
· Возможность подключения индикатора «ON AIR»
· Связь с сервером по интерфейсу RS-232
· Максимально быстрая реакция на действия оператора по управлению каналами, задержка от нажатия кнопки до реакции сервера не более 20 мс
· Возможность легкого наращивания количества кнопок и ламп индикации
Назначение устройства и его описание
При реализации проекта видеостудии появилась необходимость в эффективном управлении видеокамерами, подключенными к DVR серверу. Сервер удален от оператора на большое расстояние, поэтому управление им возможно только двумя способами:
1. по локальной сети
2. с помощью отдельно подключаемого устройства.
Первый вариант включает в себя минимум затрат на дополнительное оборудование, но не удовлетворяет временным требованиям, озвученным в техническом задании, поэтому был принят во внимание второй вариант.
Было рассмотрено множество вариантов серийно выпускаемых изделий данного назначения. Но ни одно из них не удовлетворило требуемому соотношению цена/функциональность. Было решено осуществить разработку устройства своими силами. Таким образом, была решена проблема недостаточного/избыточного набора функций и высокой цены.


Рис.1 Лицевая и задняя стороны устройства
На рис.1 приведен вид лицевой и задней сторон. Устройство выполнено в отдельном корпусе высотой в 1U с возможностью монтажа на серверную стойку 19'' . На лицевой части расположены: блок индикации, блок клавиатуры, часовой индикатор и выключатель питания. Все необходимые входы/выходы расположены на задней стороне устройства.
На лицевой стороне расположено два ряда по пять кнопок в каждом. Все кнопки с подсветкой. Первый ряд позволяет управлять состоянием каждого канала отдельно и одновременно отображает состояние каналов. Второй ряд кнопок реализует возможность группировки каналов для последующего одновременного запуска с помощью кнопки «G», расположенной правее.
На семисегментном индикаторе с правой стороны панели отображается системное время сервера, для удобства оператора. Предусмотрено подключение внешних часов-индикатора и лампы «ON AIR». Лампа «ON AIR» загорается в том случае, когда хотя бы один из каналов в данный момент активен.

Рис. 2 Блок-схема устройства
На рис.2 приведена блок-схема устройства. В качестве управляющего микроконтроллера был выбран 8-разрядный RISC микроконтроллер PIC18F4520 от производителя Microchip. Микроконтроллер имеет 16 кб Flash-памяти программ и 1.5 кб памяти данных, 256 байт EEPROM и максимальную производительность 10 MIPS. Также он имеет встроенный модуль UART, который позволяет без дополнительных модулей связать микроконтроллер и DVR сервер по интерфейсу RS-232 со скоростью до 115200 бод.
Принципиальная схема приведена на рис.3. К микроконтроллеру подключен кварцевый резонатор на 40 МГц, при этом производительность микроконтроллера составляет 10 MIPS. Питание для микроконтроллера и периферии подается с внешнего источника 5 вольт. Как видно из схемы, у микроконтроллера остались свободные выводы, что позволит в будущем легко добавлять новые функции к устройству.

Рис. 3 Принципиальная схема устройства
Общая задержка от нажатия кнопки оператором до получения ответа от сервера на скорости 115200 бод – 2-6 мс, что является хорошим показателем при максимально допустимом значении 20 мс. При этом временные затраты на передачу информации по интерфейсу RS-232 составляют до 1 мс, а остальное время составляет задержка опроса клавиатуры. В текущей реализации устройства клавиатура опрашивается до 200 раз в секунду, при необходимости это значение можно увеличить.
Сигнал от устройства до сервера был пущен по витой паре на расстояние 17 м, при этом скорость составила 115200 бод. Данной скорости достаточно для быстрого функционирования устройства.
В следующей версии устройства планируется увеличить количество кнопок, а также добавить дополнительную индикацию на семисегментных индикаторах для отображения различной информации: текущее время, задержка доставки видеосигнала, оставшееся место на накопителях сервера и т. д.
Описание модуля клавиатуры
Клавиатура организована с помощью двух параллельных регистров сдвига 74HC165N, включенных каскадом. Данный способ организации клавиатуры требует от управляющего микроконтроллера всего 3 вывода, что в итоге упрощает разводку платы и позволяет применить более дешевый управляющий микроконтроллер с меньшим количеством выводов. Еще одним достоинством данного способа является легкое наращивание количества регистров, требующее минимальных доработок как в программной части, так и в аппаратной, при этом количество выводов микроконтроллера, необходимых для управления клавиатурой, не изменится. Также в данной схеме клавиатуры применяется аппаратная защита от дребезга кнопок, что упрощает алгоритм опроса клавиатуры и в некоторой степени увеличивает ее быстродействие. Возможно подключение до 16 кнопок.
Регистры работают следующим образом:
При установке на входе S/L регистра лог. 0, происходит считывание состояний входов регистра во внутреннюю память. Далее на входе PLD устанавливается лог. 1 и на вход регистра CLK подается тактовый сигнал. При изменении уровня на входе CLK с лог. 0 на лог. 1 происходит сдвиг считанного значения на 1 разряд и вывод старшего бита на вывод регистра QH, значение которого затем считывается микроконтроллером.
Описание блока индикации
Организация блока индикации выполнена с помощью двух последовательных регистров сдвига 74HC164N*, которые включены каскадом. Достоинства данного способа аналогичны описанным в предыдущей главе. Всего можно подключить до 16 светодиодов.
Работа с регистрами выглядит так:
На вход CLK регистра подаются тактовые импульсы. При изменении уровня на входе CLK с лог. 0 на лог. 1 происходит сдвиг текущих состояний выводов регистра на 1 разряд в сторону старшего вывода, при этом значение входа A появляется на выводе QA регистра. Таким образом, в регистры последовательно загружаются состояния ламп индикации.
*При работе устройства было замечено слабое свечение светодиодов блока индикации, это было вызвано особенностями работы регистров типа 74HC164N. В последующих версиях устройства эти регистры были заменены на 74HC4094N, у которых эта особенность полностью отсутствовала.
Описание алгоритма работы устройства
Алгоритм работы устройства можно разделить на две части: работа в основном цикле и в прерывании.
Ниже приведена блок-схема алгоритма работы основного цикла:

Далее приведена блок-схема алгоритма работы в прерывании:

Приложение 1: список команд устройства
№ | Название команды | Напр. | Имя | Размер | Команда | Данные | |||||
1 | Проверка связи | <> | PT_ECHOй | 2 | 0x20 | ||||||
2 | Ресет | < | PT_RESET | 2 | 0x21 | ||||||
3 | Нажата кнопка | > | PT_BTPR | 3 | 0x22 | BUTn | |||||
4 | Включить св/д | < | PT_LON | 3 | 0x23 | LEDn | |||||
5 | Выключить св/д | < | PT_LOFF | 3 | 0x24 | LEDn | |||||
6 | Вкл/Выкл св/д | < | PT_LONOFF | 3 | 0x25 | LEDn | |||||
7 | Задать состояние всех св/д | < | PT_LALL | ~127 | 0x26 | LED1 | LED2 | LED3 | … | LEDn | |
8 | Задать сост. неск. кнопок | > | PT_BTALL | ~127 | 0x27 | BUT1 | BUT2 | BUT3 | … | BUTn | |
9 | 0x28 | ||||||||||
10 | 0x29 | ||||||||||
11 | 0x2A | ||||||||||
12 | 0x2B | ||||||||||
13 | 0x2C | ||||||||||
14 | 0x2E | ||||||||||
15 | 0x2F | ||||||||||
16 | 0x30 | ||||||||||
17 | Установить частоту опроса клавиатуры | < | PT_KEYRC | 0x31 | valH | valL | |||||
18 | Установить частоту обновления светодиодов | < | PT_LEDRC | 0x32 | valH | valL | |||||
19 | 0x33 |


