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




Дата25.08.2016
Размер0.77 Mb.
Правительство Российской Федерации

Федеральное государственное автономное образовательное учреждение

высшего профессионального образования

«Московский институт электроники и математики

Национальный исследовательский университет
Высшая школа экономики»

«Национальный исследовательский университет


«Высшая школа экономики»
Факультет ИТиВТ
Кафедра: Информационно-коммуникационных технологий
ДИПЛОМНАЯ РАБОТА

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

Студент группы № С-94

Валуев Олег Львович

(Ф.И.О)


Подпись: ___________
Руководитель ВКР

Сафонов Сергей Николаевич

(должность, звание, Ф.И.О)

Подпись: ___________

Москва 2013


Аннотация


В дипломном проекте разработан аппаратно-программный комплекс на основе МикроPC, микроконтроллера MSP430G2xx и персонального компьютера для изучения распределенных систем передачи данных и управления. В ходе проекта были рассмотрены существующие аналогичные устройства, составлены функциональные требования, разработана структурная и функциональная схемы.

Для реализации требуемой функциональности были использованы Android MiniX PC и отладочный комплект на базе MK MSP430G2xx (LaunchPad). (Особое место в работе отведено разработке программного обеспечения для микроконтроллера). Были разработаны: программа для микроконтроллера, функциональная и структурная схема аппаратно-программного комплекса. Кроме того был собран макет устройства, на котором была проверена работоспособность разработанного аппаратно-программного комплекса и соответствие функциональным требованиям.



Оглавление


Аннотация

Оглавление

1. Введение

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

ЦЕЛЬ РАБОТЫ

2. Обзорно-аналитическая часть

2.1. Анализ требований

2.1.1. Взаимодействие с пользователем

2.2. Обзор аналогичных устройств

АППАРАТНО-ПРОГРАММНЫЙ КОМПЛЕКС ДЛЯ ОТЛАДКИ И ИСПЫТАНИЙ LVDS-УСТРОЙСТВ ПЕРЕДАЧИ ИНФОРМАЦИИ

КОМПЛЕКС УДАЛЕННОГО КОМПЬЮТЕРНОГО УПРАВЛЕНИЯ УСТРОЙСТВАМИ ПО РАДИОКАНАЛУ

3. Разработка

3.1. Выбор схем входов и выходов

3.2. Разработка структуры комплекса

Работа с микроPC

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

Работа с контроллером

3.4. Выбор способов питания устройства

3.5. Средства разработки и отладки в процессе разработки

3.5.1. Отладочная плата Launchpad MSP430G2

3.5.2. Использование плат в процессе разработки

3.5.3. Разработка ПО для контроллера

3.5.4. Разработка методического пособия

3.5.4.1. Лабораторный практикум

Лабораторная работа:

Вводная работа

3.5.4.2. Тестирование перед началом выполнения лабораторной работы

3.5.4.3. Защита лабораторных работ

3.5.4.4. Документация

Предисловие

Введение

3.6. Общие сведения об аппаратно-программном комплексе для изучения распределенных систем передачи данных и управления

Особенности программирования в IDE Energia

Особенности программирования в IDE TI CCS

Особенности программирования в среде Delphi XE3

Пример программирования UART LaunchPad MSP430G2

Настройка платформы LaunchPad под UART

Программирование микроконтроллера MSP430G2

Контрольные вопросы

3.6.1. Задание на самостоятельную работу

3.7. Заключение

4. Охрана труда

4.1. Исследование возможных опасных и вредных факторов при эксплуатации ЭВМ и их влияния на пользователей

4.1.1. Введение

4.1.2. Влияние статического электричества на организм человека

4.1.3. Влияние электромагнитных излучений НЧ на организм человека

4.1.4. Влияние электрического тока на организм человека

4.1.5. Влияние синдрома компьютерного стресса на организм человека

4.1.6. Выводы

4.2. Методы и средства защиты пользователей от воздействия на них опасных и вредных факторов

4.2.1. Методы и средства защиты организма человека от поражения электрическим током

4.2.2. Методы и средства защиты организма человека от электромагнитных полей низкой частоты

4.2.3. Методы и средства защиты организма человека от статического электричества

4.2.4. Эргономические правила к рабочим местам с персональным компьютером

4.2.4.1. Требования к помещениям и организации рабочих мест персонала

4.2.5.2. Основные требования к организации работы за персональным компьютером

4.2.6. Методы и способы защиты организма человека от синдрома компьютерного стресса

4.3. Выводы

5. Тестирование работы аппаратно-программного комплекса

6. Заключение

7. Список литературы

1. Введение

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


Современный этап развития систем управления различными объектами характеризуется широким использованием микропроцессоров и микроконтроллеров. Именно эти микроэлектронные изделия выполняют в большинстве систем основные функции:

• сбор и обработка данных;

• контроль состояния управляемых объектов;

• формирования необходимых управляющих воздействий на устройства.

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

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

• получение данных от аналоговых и цифровых датчиков;

• обработка полученных данных;

• выдача необходимых управляющих воздействий;

• передача данных о текущем состоянии объекта по одному из стандартных протоколов обмена в центр управления.

Центральный управляющий модуль (контроллер верхнего уровня) выполняет опрос локальных контроллеров, обработку поступающих от них данных и обеспечивает общее управление объектом.

Для реализации этих функций в современных системах управления могут использоваться персональные и промышленные компьютеры или управляющие устройства, реализуемые на базе микроконтроллеров. Достоинством применения компьютеров в распределённых системах управления являются:

• универсальность;

• возможность использования огромного объема разработанного программного обеспечения.

Недостатками этого решения являются:

• относительно высокая стоимость аппаратных средств;

• медленное восстановление после рестарта системы ("медленный" старт компьютеров), что ограничивает применение в системах реального времени, особенно на нижнем (технологическом) уровне, где необходима очень быстрая реакция системы на определенные события.

Использование микроконтроллеров дает следующее:

• наибольший выигрыш в стоимости системы при ее серийном выпуске;

• обеспечивает режим реального времени при работе с внешними устройствами;

• малое время рестарта;

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

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

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

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

ЦЕЛЬ РАБОТЫ


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

Согласно пунктам технического задания были поставлены следующие задачи:

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

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

• Подобрать программное обеспечение для проведения лабораторных исследований;

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

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

2. Обзорно-аналитическая часть


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

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

С точки зрения документирования, аппаратно-программный комплекс занимает промежуточное положение между устройством или программным продуктом в чистом виде и автоматизированной системой. Как правило, производитель тиражируемого аппаратно-программного комплекса не знает заранее, где именно на основе последнего будет развернута система, и как именно она будет функционировать. Тем не менее, в большинстве случаев он исходит из одного или нескольких типовых сценариев применения комплекса в составе системы, что отражается и в устройстве комплекса, и в эксплуатационной документации на него.



Аппаратно-программный комплекс — техническое решение концепции алгоритма работы сложной системы, управление которой осуществляется, как правило, исполнением кода из определённого базового набора команд (системы команд), описанных в документации.

Состоит, соответственно, из двух основных частей:

Аппаратная часть (Hardware) — совокупность автономных устройств сбора/обработки информации (например, персональный компьютер).

Программная часть (Software) — специализированное программное обеспечение (обычно, написанное и поставляемое вместе с устройством фирмой — изготовителем аппаратной части), обрабатывающее и преобразующее данные в нормальный вид, собранные аппаратной частью.

Приблизительный состав эксплуатационной документации на аппаратно-программный комплекс приведен в табл. 1.

Таблица 1. Эксплуатационная документация на аппаратно-программный комплекс.1

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

Распределённая система управления (англ. Distributed Control System, DCS) — система управления технологическим процессом. Она характеризует себя построением распределённой системы ввода вывода и децентрализацией обработки данных.

Распределённая система управления (РСУ) — это универсальный интерфейс между различными полевыми шинами с одной стороны и датчиками и исполнительными механизмами промышленного оборудования с другой. Совокупность модулей ввода-вывода, связанных с конкретным объектом автоматизации, образует узел системы сбора и обработки данных. Такой узел может быть установлен в непосредственной близости от объекта автоматизации, что позволяет сократить длину соединительных проводов, упростить монтаж оборудования, а также устраняет необходимость применения кросс-панелей. Система ввода-вывода является программно-аппаратным комплексом. Также вместе с аппаратными средствами разработано специальное программное обеспечение, которое реализует обмен и обработку данных в узле сети, а также поддержку пользовательской системы программирования высокого уровня.

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

Функционально распределенные системы управления отличались (и до сих пор отличаются) от систем ПЛК (программируемый логический контроллер) + СКАДА (программный пакет, предназначенный для разработки или обеспечения работы в реальном времени систем сбора, обработки, отображения и архивирования информации об объекте мониторинга или управления) (PLC + SCADA) следующими свойствами:

• База данных распределена между контроллерами, но выглядит единой с точки зрения инженера. Именно это свойство и заложено в название "РСУ";

• Операторский интерфейс тесно интегрирован в систему. Это не ПО SCADA, которое нужно "привязывать" к аппаратным средствам (железу). Здесь все работает сразу после включения питания и без какой-либо настройки;

• Интенсивная и обширная обработка тревог (алармов) и событий реализуется также без каких-либо усилий со стороны разработчика;

• Возможность вести разработку конфигурации и вносить изменения в режиме онлайн, (то есть, не останавливая процесса управления);

• Возможность менять вышедшее из строя оборудование и расширять систему (добавлять в нее новые узлы и платы) без отключения питания;

• Глубокая диагностика от уровня операторского интерфейса до отдельного канала ввода-вывода без какой-либо настройки;

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



Структурная схема — это совокупность элементарных звеньев объекта и связей между ними, один из видов графической модели. Под элементарным звеном понимают часть объекта, системы управления и т. д., которая реализует элементарную функцию.

Функциональная схема — документ, описывающий все процессы, протекающие в отдельных функциональных цепях изделия (установки, устройства) или изделия (установки, устройства) в целом. Функциональная схема является экспликацией2 отдельных видов процессов, протекающих в целостных функциональных блоках и цепях устройства.

2.1. Анализ требований


Основным применением разрабатываемого аппаратно-программного комплекса является изучение студентами на лабораторных работах распределенных систем передачи данных и управления. Аппаратно-программные средства комплекса позволят изучить отладочные стенды типа MSP-EXP430G2, микроконтроллеры MSP430G2211IN14, MSP430G2231IN14 и возможность дистанционной работы с ними, а также протоколы беспроводных сетей.

Также может оказаться полезной возможность удаленно через браузер контролировать с помощью компьютера/телефона различные типы датчиков и устройств, например, включение/выключение света в комнате.

Кроме того, если пробросить ssh на сервер (ssh3 - сетевой протокол прикладного уровня, позволяющий производить удалённое управление операционной системой и туннелирование TCP-соединений (например, для передачи файлов)), то можно делать все то же самое, но из любого места, где есть интернет.

2.1.1. Взаимодействие с пользователем


Взаимодействие с пользователем осуществляется либо с помощью его мобильного телефона, либо с помощью персонального компьютера через Интернет. Использование связи с помощью персонального компьютера позволяет передавать большее количество информации, чем в случае использования мобильного телефона, а также может не отвлекать пользователя, что позволяет передавать информацию, которая может пригодиться только в редких случаях. Однако, поскольку связь между двумя пользовательскими устройствами через Интернет часто невозможна из-за динамических: IP-адресов, NAT и фаерволов, то требуется участие сервера.

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

Основными задачами взаимодействия устройства с пользователем являются:

• изучение распределенных систем передачи данных и управления;

• передача данных по беспроводной сети;

• управление сторонними устройствами по беспроводной сети;

• управление МикроРС по беспроводной сети;

• управление микроконтроллером через МикроРС по беспроводной сети.

Изменение настроек устройства производится через удаленный терминал (по SSH).
Было решено реализовать следующие команды:

• «0» или «Состояние» – запрос состояния входов

• «<номер выхода>» – переключение состояния выходного реле

• «<номер выхода> вкл» – включение выходного реле

• «<номер выхода> выкл» – выключение выходного реле

2.2. Обзор аналогичных устройств

АППАРАТНО-ПРОГРАММНЫЙ КОМПЛЕКС ДЛЯ ОТЛАДКИ И ИСПЫТАНИЙ LVDS-УСТРОЙСТВ ПЕРЕДАЧИ ИНФОРМАЦИИ




Описание

Аппаратно-программный комплекс на основе МикроPC и персонального компьютера для отладки и испытаний LVDS-устройств передачи научных данных с прибора лимбового зондирования атмосферы, предназначенного для глобального мониторинга озонового слоя и газовых составляющих атмосферы с микроспутниковой платформы.

Блок электроники (БЭ) прибора лимбового зондирования атмосферы (ПЛЗА) соединен с бортовым измерительным комплексом (БИК) космического аппарата через скоростной информационный интерфейс LVDS, который используется для передачи массивов научной информации. БЭ выполняет следующие задачи:

• преобразование аналоговых сигналов фотометрических каналов в цифровой код;

• формирование сигналов калибровки фотометрических каналов;

• сбор и первичная обработка информации, поступающей по фотометрическим каналам;

• формирование массива данных, содержащего результаты калибровки и измерений;

• передача массива данных по LVDS-каналу в БИК.

Программно-аппаратный комплекс позволяет провести отладку и испытания LVDS-устройств информационного интерфейса (УИИ) БЭ прибора ПЛЗА.

В состав аппаратно-программного комплекса входят:

• персональный компьютер (ПК) с платой УИИ;

• блок аппаратно программных средств (АПС) на основе МикроРС, реализующий функции БИК;

• пульт наладки и проверки скоростного канала LVDS;

• источник питания;

• измерительные приборы (тестер, вольтметр, осциллограф);

• тестовое программное обеспечение.

Тестовое программное обеспечение, входящее в состав аппаратно-программного комплекса, является простым в использовании и позволяет разработчикам устройств информационного интерфейса легко определять неисправности и выявлять ошибки в его работе. Испытания (УИИ) LVDS-устройств показали надежность их работы при передаче больших массивов информации на расстояние до трех метров.




КОМПЛЕКС УДАЛЕННОГО КОМПЬЮТЕРНОГО УПРАВЛЕНИЯ УСТРОЙСТВАМИ ПО РАДИОКАНАЛУ


Описание

Аппаратно-программный комплекс, реализует интеллектуальное удаленное управление технологическими и бытовыми объектами на расстоянии не менее 150 метров по радиоканалу.



В состав комплекса входят:

• Персональный компьютер;

• Радиопередатчик;

• Радиоприемник;

• Вычислительное устройство (контроллер);

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

• Тестовое программное обеспечение.

Достоинства комплекса удаленного компьютерного управления устройствами по радиоканалу таковы:

• автономность комплекса;

• гибкость к возможностям дальнейшего наращивания.

Среди недостатков комплекса следует отметить:

• относительно высокая стоимость радиочастотного модуля;

• перегруженность диапазона 433 МГц;

• относительно низкая дальность связи.

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

3. Разработка

3.1. Выбор схем входов и выходов


Поскольку входным сигналом является замкнутое или разомкнутое состояние ключа (контактного датчика/устройства), то для определения состояния требуется подать ток через ключ. Проще всего это сделать с помощью подтягивающего резистора, подключенного к напряжению питания микроконтроллера. Кроме того подтягивающий резистор одновременно преобразует сигнал в напряжение, которое можно напрямую подать на вход микроконтроллера. При этом 1 на входе будет обозначать разомкнутое состояние, а 0 – замкнутое.

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


3.2. Разработка структуры комплекса


Аппаратно-программный комплекс для изучения распределенных систем передачи данных и управления состоит из следующих комплектующих:

• МикроРС (одноплатный компьютер Mini X Android TV Box) с ОС Android;

• Отладочный комплект MSP-EXP430G2xx (LaunchPad) с двумя микроконтроллерами:

- MSP430G2452IN20;

- MSP430G2553IN20;

• Управление будет происходить с помощью ПК (персонального компьютера).



Рис 2. Структурная схема взаимодействия устройства с пользователем


Рис 3. Функциональная схема



Работа с микроPC


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

• МикроPC - одноплатный компьютер Mini X c ОС Android

• Отладочный комплект MSP-EXP430G2xx (LaunchPad).

Управление данным аппаратно-программным комплексом в реальном времени (МикроPC) будет осуществляться по беспроводной сети Wi-Fi (протокол 802.11g, 802.11n).



Minix является мировым лидером в разработке следующего поколения компьютеров, непрерывно установив новый прецедент в портативных ПК и Media Hub технологии.

MiniX TV Box H24 - мини-компьютер с большим выбором операционных систем.



Рис 4. Mini X TV Box.

МикроРС MiniX TV Box H24 подключается к телевизору и предназначена для запуска операционной системы Android и ее приложений на большом экране.

Отличительной особенностью MiniX является большой выбор операционных систем - помимо стандартно устанавливаемой Android 4.0, мини-компьютер поддерживает операционные системы Android 2.3, Xubuntu, Fedora, Puppy и ряд других операционных систем на основе Linux. МикроРС имеет следующие характеристики:

• Процессор: Allwinner A10 1Ghz + GPU: Mali400

• ОС: Android ICS, Xubuntu, Puppi linux, Fedora

• USB-Host (поддержка клавиатур, мышек, камер, сетевых карт)

• Память: 1024мб оперативной, 4Гб пользовательской

• Wi-Fi 802.11n

• HDMI+Композитный выход (для старых телевизоров)

Вот его внешний вид:

Рис 5. Mini X. Вид изнутри.


Дополнительные функции МикроРС:

• Для добавления в «старый» ТВ функций smart TV;


• Использование в качестве миниатюрного медиа комбайна, и воспроизведения контента с флешек, внешнего hdd, локальной сети или из сети Internet;
• МикроРС, в том случае, если от персонального компьютера не требуется ничего кроме интернета, почты и редактирования редких документов;
• Микросервер (он же торрент-загрузчик и файлообменник (полноценный FTP));

Для работы с FTP, в центре приложений, непосредственно на самом МикроРС можно скачать и установить бесплатную первую попавшуюся утилиту (приложение) FTP-server. В настройке нет ничего сложного, запускаем приложение, выбираем папку для разрешения доступа, задаем имя пользователя и пароль, активируем сервер. Все, полноценный FTP-сервер виден в локальной сети, FTP-клиент на персональный компьютер ставить никакой необходимости нет – достаточно вбить адрес в адресной строке «Проводника».

Если вдруг решите хранить что-то личное на вашем FTP-сервере, стоит делать это хотя бы в формате шифрованного vhd диска.

• WiFi, 3G, Ethernet роутер. То есть раздача трафика в локальную Wi-Fi сеть из usb 3G модема или из usb lan карты, при условии ее наличия;

• Сетевое хранилище;
• В связке с web-камерой – IP камера, для видеонаблюдения;

Еще одна очень полезная функция, установив приложение IP webcam – можно превратить ваш МикроРС MiniX в ip-камеру, и организовать видеонаблюдение дома, ну или в той местности, куда будет выведена камера. В ней можно задать качество картинки, разрешение, количество fps, и логин/пароль для авторизации.

• Web сервер;
• А еще, доступ ко всем этим функциям из «внешней сети» можно легко разрешить доступ с помощью dyndns для клиентов под Android.

DyDNS

А установив dydns клиент (например, официальный DynDNS client, или какой либо другой универсальный), вы можете получить доступ ко всем этим замечательным функциональным возможностям из вне. То есть у вас всегда под рукой будет ваш FTP-сервер (файлообменник), web-сервер — если он нужен, а при желании можно будет подключиться к вашей камере и узнать что происходит у вас дома/или в зоне видеонаблюдения.

Чтобы получить возможность удаленно управлять устройством (МикроPC), было решено воспользоваться следующим программным обеспечением:

1) droidVNCserver4 - запускает VNC сервер, с которого можно управлять устройством удаленно. К тому же, можно делать это через обычный браузер. Выглядит это так:



Рис 6. Рабочее окно устройства.

2) QuickSSHd5 - это приложение, при помощи которого можно запустить SSH-сервер на Android. При этом для разных ОС на ПК потребуются дополнительные клиенты, которые будут соединяться через SFTP или SCP-протокол. Для Windows, к примеру, необходимо загрузить WinSCP, для Linux – OpenSSH, а для MАС нужен клиент Cyberduck.

SFTP (англ. SSH File Transfer Protocol) — протокол прикладного уровня, предназначенный для копирования и выполнения других операций с файлами поверх надёжного и безопасного соединения.

SCP (от англ. secure copy) — протокол RCP копирования файлов, использующий в качестве транспорта не RSH, а SSH.

Выглядит это как обычный терминал:



Рис 7. Общение с устройством по средствам SSH/SSH2.


Здесь подходит большинство команд от Linux. Также существует отдельный список команд для SSH/SSH2.

3) В самом Windows, чтобы можно было подключится к QuickSSHd, был использован графический клиент WinSCP.



WinSCP6 — это свободный графический клиент протоколов SFTP и SCP, предназначенный для Windows с открытым исходным кодом. Распространяется по лицензии GNU GPL. Обеспечивает защищённое копирование файлов между компьютером и серверами, поддерживающими эти протоколы.
Основные возможности WinSCP

• графический интерфейс;

• интерфейс переведён на несколько языков;

• интеграция с ОС Windows (drag&drop, поддержка схем URL, ярлыки);

• все основные файловые операции;

• поддержка протоколов SFTP и SCP поверх как SSH-1, так и SSH-2;

• автоматизация при помощи скриптов и интерфейса командной строки;

• синхронизация папок по нескольким автоматическим и полуавтоматическим алгоритмам;

• встроенный текстовый редактор;

• поддержка авторизации по паролю, открытым ключом, Керберос (GSS) и keyboard-interactive;

• интеграция с Pageant (PuTTY Agent) для поддержки авторизации по открытым ключам;

• два пользовательских интерфейса: как в проводнике Windows Explorer и как в Norton Commander;

• возможность сохранять настройки соединений;

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



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

Один из двух интерфейсов программы позволяет также управлять файлами на локальном компьютере пользователя.



Соединение с серверами

При помощи WinSCP можно соединиться с сервером SSH (Secure Shell) по протоколу SFTP (SSH File Transfer Protocol) или SCP (Secure Copy Protocol), как правило с машинами под ОС UNIX. SFTP стандартно входит в реализацию протокола SSH-2. SCP точно так же стандартно входит в реализацию протокола SSH-1. Оба этих протокола поддерживаются даже самыми свежими версиями SSH-серверов. WinSCP поддерживает как SSH-1, так и SSH-2.


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


Компания Texas Instruments продолжает выпуск микроконтроллеров одной из своих лучших серий MSP430G2x (LaunchPad) Value Line. На складе Компэл уже доступны контроллеры MSP430G2x53 в корпусах TSSOP-20 и TSSOP-28. При низком энергопотреблении и высокой скорости, данный контроллер обладает самой продвинутой периферией в линейке MSP430G2xxx.

В процессе разработки используется отладочный комплект MK MSP EXP430G2xx (LaunchPad) с двумя микроконтроллерами:

MSP430G2553IN20,

MSP430G2452IN20;



MSP-EXP430G27 – отладочное средство для программирования и отладки, в которое входит все необходимое для начала разработки – сокет для микросхем в 14/20-выводном DIP-корпусе и интегрированный отладчик/программатор, позволяющий работать с МК через интерфейс Spy Bi-Wire (2-wire JTAG).

Отличительные особенности:

• 2 микроконтроллера в комплекте:

- MSP430G2553IN20 –16kB Flash, 512B SRAM, 10 GPIO, 1x 16-разрядный таймер, WDT, BOR, Comparator A+,

- MSP430G2452IN20 – 8kB Flash, 256B SRAM, 10 GPIO, 1x 16-разрядный таймер, WDT, BOR, 1x USI (I2C/SPI) 8-канальный 10-разрядный АЦП;

• интегрированный на плату эмулятор/программатор;

• пользовательская кнопка;

• кнопка сброса;

• пользовательские светодиоды;

• IDE разработчика IAR Kickstart и Code Composer Studio Ver 4.

• 16-ти битное RISC ядро MSP430

• диапазон напряжения питания 1.8…3.6 В

• ультранизкое энергопотребление: Active 230 мкА на 1 МГц; Standby 0.5 мкА;

• гибкое управление энергопотреблением (5 режимов)

• ультрабыстрое время просыпания – менее 1 мкс

• датчик температуры

• два 16-ти битных таймера с 3-мя регистрами захвата/сравнения

• сторожевой таймер

• АЦП 10-бит 200 ksps

• компаратор

• модуль последовательного интерфейса USСI (I2C/SPI/UART)

• рабочий температурный диапазон -40…+85°C

• корпусы TSSOP-20 и TSSOP-28

• возможность аппаратной реализации ёмкостных кнопок (Cap touch I/O)

Следует отметить, что в модуле АЦП (MSP430G2x31, MSP430G2x52, MSP430G2x53) реализована технология прямого доступа к памяти -  DTC (Data Transfer Controller)

Благодаря технологии DTC, АЦП может складывать результаты преобразования в память системы без участия CPU. Использование АЦП данного типа дает следующие преимущества:

• меньшая активность CPU снижает энергопотребление;

• CPU может выполнять дополнительные задачи, не отвлекаясь на обработку данных АЦП;

• автономная работа АЦП


   

Рис 8. Функциональная схема контроллера MSP430



Работа с контроллером


MSP-EXP430G2xx (LaunchPad) позволяет новичкам и опытным разработчикам осуществлять быстрое создание макетов, отладку и программирование измерительных, охранных, промышленных систем и других, чувствительных к затратам приложений.

Основные особенности и преимущества комплекта разработчика MSP-EXP430G2xx (LaunchPad):

• Разъем DIP для отладки и программирования поддерживает устройства, имеющие до 20 выводов, и позволяет осуществлять быстрое макетирование с использованием микроконтроллеров MSP430 Value Line; разработчики могут оперативно менять микроконтроллеры один за другим для оценки, программирования или отладки устройств.

• Запрограммированные микроконтроллеры можно легко извлечь и установить на заказные печатные платы или макетные платы.

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

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

• Комплект MSP-EXP430G2xx (LaunchPad) совместим с любым микроконтроллером MSP430 Value Line, существующими отладочными платами eZ430 и устройствами MSP430, способными поддерживать интерфейс Spy-Bi-Wire.

• Бесплатно предоставляются компиляторы и отладчики без ограничения функциональности, в том числе IDE Code Composer Studio и IDE IAR Embedded Workbench, поддерживающие комплексную среду разработки программного обеспечения.

• Кварцевый резонатор 32 кГц повышает точность встроенного в микроконтроллеры MSP430 генератора частоты с цифровым управлением, обеспечивая необходимую для различных периферийных устройств и таймеров точность режима реального времени.

• В комплект включены два устройства MSP430 (LaunchPad) Value Line; одно из них предварительно запрограммировано с использованием демонстрационного микропрограммного обеспечения, чтобы продемонстрировать использование встроенных периферийных устройств, в том числе 10-разрядного АЦП, компараторов и внутреннего датчика температуры.

• Дизайн с открытым исходным кодом позволяет разработчикам создавать собственные аппаратные средства на базе комплекта MSP-EXP430G2xx (LaunchPad).

3.4. Выбор способов питания устройства


В разрабатываемом устройстве есть два элемента, предъявляющих требования к схемам питания - микроконтроллер и МикроРС. Наш аппаратно-программный комплекс для изучения распределенных систем передачи данных и управления имеет несколько способов питания:

1) Через блок питания на 5V, поставляемый в комплекте с МикроРС;

2) Через USB-кабель от компьютера.

В свою очередь, набор разработчика на базе комплекта MSP430G2xx (Launchpad) можно запитать от батарейки на 9V, это очень удобная возможность использовать его там, где нет доступа к персональному компьютеру (для этого дополнительно потребуется стабилизатор напряжения, его можно собрать самому или купить).

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

3.5. Средства разработки и отладки в процессе разработки


В процессе разработки программного обеспечения было решено использовать отладочный комплект для разработчика MK MSP EXP430G2xx (LaunchPad) для отладки программы микроконтроллера.

3.5.1. Отладочная плата Launchpad MSP430G2xx


Плата LaunchPad MSP430G2xx предназначена для использования при разработке устройств на базе микроконтроллеров. При этом микроконтроллер находится на отдельной плате, которая вставляется в слот на основной плате, в результате чего возможно использование различных типов микроконтроллеров. Плата кроме микроконтроллера также имеет все необходимые цепи для его работы и вшитый эмулятор/программатор.

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

К каждому выводу микроконтроллера подключается кнопка для подачи на него логического нуля или единицы, и могут быть подключены светодиоды, показывающие состояние вывода и подтягивающие резисторы. Каждый порт выведен на отдельный разъём, который позволяет подключать к нему любые внешние схемы.

Также в составе отладочной платы имеется большое количество различной периферии:

• 2 микроконтроллера в комплекте:

- MSP430G2553IN20 – 16kB Flash, 512B SRAM, 10 GPIO, 1x 16-разрядный таймер, WDT, BOR, Comparator A+;

- MSP430G2452IN20 – 8kB Flash, 256B SRAM, 10 GPIO, 1x 16-разрядный таймер, WDT, BOR, 1x USI (I2C/SPI) 8-канальный 10-разрядный АЦП;

• интегрированный на плату эмулятор/программатор;

• пользовательская кнопка;

• кнопка сброса;

• пользовательские светодиоды.

В процессе разработки плата использовалась совместно с МикроРС, работающем на ОС Android.


3.5.2. Использование плат в процессе разработки


Использование данных отладочных плат при разработке позволило отказаться от изготовления прототипов устройства до момента окончательной разработки программы и большей части схемы. Кроме того наличие встроенного отладчика/программатора у микроконтроллера сильно облегчило отладку программы. Для связи контроллера с МикроРС (одноплатным компьютером) используется стандартный порт-USB, также для связи может использоваться кабель (конвертер cp2101, cp2102) USB-UART.

3.5.3. Разработка ПО для контроллера


В качестве IDE, для разработки прошивок для своих контроллеров, TI предлагает Code Composer Studio (основана на Eclipse) и IAR Embedded Workbench KickStart (имеются бесплатные версии для загрузки).

Но, как и Maple, для большего удобства поклонников Arduino, TI сделал форк (использование кодовой базы программного проекта в качестве старта для другого). Arduino IDE 1.0 специально для MSP430 и назвала его IDE Energia LaunchPad. Собственно в нем и была написана программа (прошивка, или правильнее ее назвать sketch) под нашу плату. Программа написана на языке C++.



Sketch:

  1. byte inByte = 0; //Байт данных для UART

  2. int status[12]; // Для статуса пинов



  3. void setup() {

  4. Serial.begin(9600); // конфигурируем UART, устанавливаем скорость обмена 9600бит/сек

  5. pinMode(GREEN_LED, OUTPUT); // конфигурируем зеленый диод на получение выходного значения

  6. pinMode(RED_LED, OUTPUT); // конфигурируем красный диод на получение выходного значения

  7. pinMode(6, OUTPUT); // конфигурируем 6 пин на получение выходного значения

  8. pinMode(7, OUTPUT); // конфигурируем 7 пин на получение выходного значения

  9. pinMode(8, OUTPUT); // конфигурируем 8 пин на получение выходного значения

  10. pinMode(9, OUTPUT); // конфигурируем 9 пин на получение выходного значения

  11. pinMode(10, OUTPUT); // конфигурируем 10 пин на получение выходного значения

  12. pinMode(11, OUTPUT); // конфигурируем 11 пин на получение выходного значения

  13. pinMode(12, OUTPUT); // конфигурируем 12 пин на получение выходного значения

  14. pinMode(13, OUTPUT); // конфигурируем 13 пин на получение выходного значения

  15. pinMode(15, OUTPUT); // конфигурируем 15 пин на получение выходного значения

  16. digitalWrite(GREEN_LED, LOW); // команда - выключение зеленого диода

  17. digitalWrite(RED_LED, LOW); // команда - выключение красного диода

  18. digitalWrite(6, LOW); // команда - выключение 6 пина

  19. digitalWrite(7, LOW); // команда - выключение 7 пина

  20. digitalWrite(8, LOW); // команда - выключение 8 пина

  21. digitalWrite(9, LOW); // команда - выключение 9 пина

  22. digitalWrite(10, LOW); // команда - выключение 10 пина

  23. digitalWrite(11, LOW); // команда - выключение 11 пина

  24. digitalWrite(12, LOW); // команда - выключение 12 пина

  25. digitalWrite(13, LOW); // команда - выключение 13 пина

  26. digitalWrite(15, LOW); // команда - выключение 15 пина

  27. status[1] = 0; // статус - выключен

  28. status[2] = 0; // статус - выключен

  29. status[3] = 0; // статус - выключен

  30. status[4] = 0; // статус - выключен

  31. status[5] = 0; // статус - выключен

  32. status[6] = 0; // статус - выключен

  33. status[7] = 0; // статус - выключен

  34. status[8] = 0; // статус - выключен

  35. status[9] = 0; // статус - выключен

  36. status[10] = 0; // статус - выключен

  37. status[11] = 0; // статус - выключен

  38. }



  39. void loop()

  40. {

  41. if (Serial.available() > 0) { // Если в буфере есть данные, то здесь должен быть прием и обработка данных

  42. inByte = Serial.read(); // читаем байт

  43. switch (inByte){ // и выполняем действие в зависимости от того, какой байт пришел

  44. case 's': // если пришел байт “s”, то показываем статистику какой из портов включен, а какой выключен

  45. Serial.print("RED_LED:"); // выводим красный светодиод

  46. Serial.println(status[10]); // выдает значение 10, делает перенос строки

  47. Serial.print("GREEN_LED:"); // выводим зеленый светодиод

  48. Serial.println(status[11]); // выдает значение 11, делает перенос строки

  49. Serial.print("PIN_1:"); // выводим 1 пин

  50. Serial.println(status[1]); // выдает значение 1, делает перенос строки

  51. Serial.print("PIN_2:"); // выводим 2 пин

  52. Serial.println(status[2]); // выдает значение 2, делает перенос строки

  53. Serial.print("PIN_3:"); // выводим 3 пин

  54. Serial.println(status[3]); // выдает значение 3, делает перенос строки

  55. Serial.print("PIN_4:"); // выводим 4 пин

  56. Serial.println(status[4]); // выдает значение 4, делает перенос строки

  57. Serial.print("PIN_5:"); // выводим 5 пин

  58. Serial.println(status[5]); // выдает значение 5, делает перенос строки

  59. Serial.print("PIN_6:"); // выводим 6 пин

  60. Serial.println(status[6]); // выдает значение 6, делает перенос строки

  61. Serial.print("PIN_7:"); // выводим 7 пин

  62. Serial.println(status[7]); // выдает значение 7, делает перенос строки

  63. Serial.print("PIN_8:"); // выводим 8 пин

  64. Serial.println(status[8]); // выдает значение 8, делает перенос строки

  65. Serial.print("PIN_9:"); // выводит 9 пин

  66. Serial.println(status[9]); // выдает значение 9, делает перенос строки

  67. Serial.println(); // выдает пробел

  68. break;



  69. case 'n': // если пришел байт “n”, то все пины на плате включаются

  70. digitalWrite(GREEN_LED, HIGH); // включение зеленого диода

  71. digitalWrite(RED_LED, HIGH); // включение красного диода

  72. digitalWrite(6, HIGH); // включение 6 пина

  73. digitalWrite(7, HIGH); // включение 7 пина

  74. digitalWrite(8, HIGH); // включение 8 пина

  75. digitalWrite(9, HIGH); // включение 9 пина

  76. digitalWrite(10, HIGH); // включение 10 пина

  77. digitalWrite(11, HIGH); // включение 11 пина

  78. digitalWrite(12, HIGH); // включение 12 пина

  79. digitalWrite(13, HIGH); // включение 13 пина

  80. digitalWrite(15, HIGH); // включение 15 пина

  81. status[1] = 1; // статус - включен

  82. status[2] = 1; // статус - включен

  83. status[3] = 1; // статус - включен

  84. status[4] = 1; // статус - включен

  85. status[5] = 1; // статус - включен

  86. status[6] = 1; // статус - включен

  87. status[7] = 1; // статус - включен

  88. status[8] = 1; // статус - включен

  89. status[9] = 1; // статус - включен

  90. status[10] = 1; // статус - включен

  91. status[11] = 1; // статус - включен

  92. break;



  93. case 'f': // если пришел байт “f”, то все пины на плате выключаются

  94. digitalWrite(GREEN_LED, LOW); // выключение зеленого диода

  95. digitalWrite(RED_LED, LOW); // выключение красного диода

  96. digitalWrite(6, LOW); // выключение 6 пина

  97. digitalWrite(7, LOW); // выключение 7 пина

  98. digitalWrite(8, LOW); // выключение 8 пина

  99. digitalWrite(9, LOW); // выключение 9 пина

  100. digitalWrite(10, LOW); // выключение 10 пина

  101. digitalWrite(11, LOW); // выключение 11 пина

  102. digitalWrite(12, LOW); // выключение 12 пина

  103. digitalWrite(13, LOW); // выключение 13 пина

  104. digitalWrite(15, LOW); // выключение 15 пина

  105. status[1] = 0; // статус - выключен

  106. status[2] = 0; // статус - выключен

  107. status[3] = 0; // статус - выключен

  108. status[4] = 0; // статус - выключен

  109. status[5] = 0; // статус - выключен

  110. status[6] = 0; // статус - выключен

  111. status[7] = 0; // статус - выключен

  112. status[8] = 0; // статус - выключен

  113. status[9] = 0; // статус - выключен

  114. status[10] = 0; // статус - выключен

  115. status[11] = 0; // статус - выключен

  116. break;



  117. case 'r': // если приходит байт “r” - красный светодиод,

  118. if (status[10] == 0) { // то проверяем статус, и в зависимости от него,

  119. digitalWrite(RED_LED, HIGH); // либо включаем диод

  120. status[10] = 1; } // статус - включен

  121. else {

  122. digitalWrite(RED_LED, LOW); // либо выключаем диод

  123. status[10] = 0; } // статус - выключен

  124. break;

  125. // также и с зеленыйм светодиодом

  126. case 'g': // если приходит байт “g” - зеленый светодиод,

  127. if (status[11] == 0) { // то проверяем статус, и в зависимости от него,

  128. digitalWrite(GREEN_LED, HIGH); // включаем диод

  129. status[11] = 1; } // статус - включен

  130. else {

  131. digitalWrite(GREEN_LED, LOW); // выключаем диод

  132. status[11] = 0; } // статус - выключен

  133. break;





  134. case '1': // если приходит байт “1” - 6 пин,

  135. if (status[1] == 0) { // то проверяем статус, и в зависимости от него

  136. digitalWrite(6, HIGH); // подаем значение 1 на 6 пин

  137. status[1] = 1; } // 1 есть на 6 пине

  138. else {

  139. digitalWrite(6, LOW); // подаем значение 0 на 6 пин

  140. status[1] = 0; } // 0 на 6 пине

  141. break;



  142. case '2': // если приходит байт “2” - 7 пин

  143. if (status[2] == 0) { // то проверяем статус, и в зависимости от него

  144. digitalWrite(7, HIGH); // подаем значение 1 на 7 пин

  145. status[2] = 1; } // 1 есть на 7 пине

  146. else {

  147. digitalWrite(7, LOW); // подаем значение 0 на 7 пин

  148. status[2] = 0; } // 0 на 7 пине



  149. break;

  150. case '3': // если приходит байт “3” - 8 пин

  151. if (status[3] == 0) { // то проверяем статус, и в зависимости от него

  152. digitalWrite(8, HIGH); // подаем значение 1 на 8 пин

  153. status[3] = 1; } // 1 есть на 8 пине

  154. else {

  155. digitalWrite(8, LOW); // подаем значение 0 на 8 пин

  156. status[3] = 0; } // 0 на 8 пине

  157. break;



  158. break;

  159. case '4': // если приходит байт “4” - 9 пин

  160. if (status[4] == 0) { // то проверяем статус, и в зависимости от него

  161. digitalWrite(9, HIGH); // подаем значение 1 на 9 пин

  162. status[4] = 1; } // 1 есть на 9 пине

  163. else {

  164. digitalWrite(9, LOW); // подаем значение 0 на 9 пин

  165. status[4] = 0; } // 0 на 9 пине

  166. break;



  167. break;

  168. case '5': // если приходит байт “5” - 10 пин

  169. if (status[5] == 0) { // то проверяем статус, и в зависимости от него

  170. digitalWrite(10, HIGH); // подаем значение 1 на пин 1.0

  171. status[5] = 1; } // 1 есть на пине 1.0

  172. else {

  173. digitalWrite(10, LOW); // подаем значение 0 на пин 1.0

  174. status[5] = 0; } // 0 на пине 1.0

  175. break;





  176. break;

  177. case '6': // если приходит байт “6” - пин 1.1

  178. if (status[6] == 0) { // то проверяем статус, и в зависимости от него

  179. digitalWrite(11, HIGH); // подаем значение 1 на пин 1.1

  180. status[6] = 1; } // 1 есть на пине 1.1

  181. else {

  182. digitalWrite(11, LOW); // подаем значение 0 на пин 1.1

  183. status[6] = 0; } 0 на пине 1.1

  184. break;





  185. break;

  186. case '7': // если приходит байт “7” - пин 1.2

  187. if (status[7] == 0) { // то проверяем статус, и в зависимости от него

  188. digitalWrite(12, HIGH); // подаем значение 1 на пин 1.2

  189. status[7] = 1; } 1 есть на пине 1.2

  190. else {

  191. digitalWrite(12, LOW); // подаем значение 0 на пин 1.2

  192. status[7] = 0; } 0 на пине 1.2

  193. break;





  194. break;

  195. case '8': // если приходит байт “8” - пин 1.3

  196. if (status[8] == 0) { // то проверяем статус, и в зависимости от него

  197. digitalWrite(13, HIGH); // подаем значение 1 на пин 1.3

  198. status[8] = 1; } 1 есть на пине 1.3

  199. else {

  200. digitalWrite(13, LOW); // подаем значение 0 на пин 1.3

  201. status[8] = 0; } 0 на пине 1.3

  202. break;



  203. break;

  204. case '9': // если приходит байт “9” - пин 1.5

  205. if (status[9] == 0) { // то проверяем статус, и в зависимости от него

  206. digitalWrite(15, HIGH); // подаем значение 1 на пине 1.5

  207. status[9] = 1; } 1 есть на пине 1.5

  208. else {

  209. digitalWrite(15, LOW); // подаем значение 0 на пин 1.5

  210. status[9] = 0; } 0 на пине 1.5

  211. break;

  212. }

  213. }

  214. }



Также этот код совместим с микроконтроллером Arduino и будет работать точно также как и на msp430G2xx (LaunchPad). Разница лишь в том, что нужно будет переименовать названия выходов и поменять выходные значения.

Еще, в ходе работы был написан простенький интерфейс в виде HTML-странички с кнопками управления. Для этого нужно зайти на наш МикроРС, создать на нем каталог, в который мы положим конфигурацию веб-сервера, скрипт и нашу страничку с кнопками:


http.cfg (файл конфигурации):
1. *.html:/system/bin/sh - которая означает, что все html-файлы надо выполнять интерпретатором sh, а не просто отдавать пользователю.




sh-скрипт (назовем его starthttpd):
1. insmod /sdcard/www/cp210x.ko >/dev/null 2>&1 — строчка, которая загружает в ядро драйвер конвертера(чтоб не делать это каждый раз вручную), и не ругается, если он там есть.

2. httpd -p12 -h /sdcard/www -c /sdcard/www/http.cfg — запускает сервер на порту 12(кто то занял 80), с корневой папкой /sdcard/www, и конфигурацией, которую мы сделали ранее.

3. stty -F /dev/ttyUSB0 9600 #конфигурируем порт, устанавливаем скорость обмена
4. /system/bin/echo $QUERY_STRING >/dev/ttyUSB0 #отправляем в порт символы, которые мы получили GET-ом.

-h /sdcard/www — корневая директория



index.html(страничка):
echo "Content-type: text/html"
echo ""
echo "
"
echo "" // включение красного пользовательского светодиода

#делаем кнопки, которые передают тот самый параметр(href='?r')


echo "
" // включение зеленого пользовательского светодиода
echo "" // включение пина 1.4
echo "
" // включение пина 1.5
echo "" // включение пина 1.7
echo "
" // включение пина 2.0
echo "" // включение пина 2.1
echo "
" // включение пина 2.2
echo "" // включение пина 2.3
echo "
" // включение пина 2.4
echo "
" // включение пина 2.5
echo "" // включить все пины
echo "
" // выключить все пины
echo "
"
echo "


База данных защищена авторским правом ©infoeto.ru 2016
обратиться к администрации
Как написать курсовую работу | Как написать хороший реферат
    Главная страница