Универсальные контроллеры с открытой архитектурой. Проект Raspberry.



Интеллектуальные системы.

Часть 2. Универсальные контроллеры для создания встраиваемых систем и роботов.

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

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

Микроконтроллер –электронное устройство, основанное на микропроцессоре, выполненное на одном кристалле и включающее в себя: микропроцессорное ядро, оперативную и долговременную память, порты ввода вывода и стандартные интерфейсы.

Типичный микроконтроллер сочетает на одном кристалле функции процессора и периферийных устройств, содержит ОЗУ и (или) ПЗУ. По сути, это однокристальный компьютер, способный выполнять относительно простые задачи.

В отечественной литературе часто встречался термин однокристальная микро-ЭВМ, или ОкМЭВМ. Достоинствами микроконтроллеров являются компактность, нетребовательность к дополнительным элементам, низкая стоимость и простота внедрения.

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

Универсальные контроллеры:

• Контроллеры с открытой архитектурой.

• Промышленные контроллеры.

Универсальные контроллеры с открытой архитектурой. Проект Arduino.

Arduino - торговая марка аппаратно-программных средств для построения простых систем автоматики и робототехники, ориентированная на непрофессиональных пользователей. Программная часть состоит из бесплатной программной оболочки (IDE) для написания программ, их компиляции и программирования.

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

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

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

Под торговой маркой Ардуино выпускается несколько плат с микроконтроллером (англ. boards) и платы расширения - так называемые шилды (от англ. shields). Большинство плат с микроконтроллером снабжены минимально необходимым набором обвязки для нормальной работы микроконтроллера: стабилизатор питания, кварцевый резонатор, цепочки сброса и т. п.

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

Существует ряд плат с унифицированным конструктивом, допускающим конструктивно жесткое соединение процессорной платы и плат расширения в стопку через штыревые линейки.

Кроме того, выпускаются платы уменьшенных габаритов (например, Nano, Lilypad) и специальных конструктивов для задач робототехники. Независимыми производителями также выпускается большая гамма всевозможных датчиков и исполнительных устройств, в той или иной степени совместимых с базовым конструктивом Ардуино.

В линейке устройств Arduino в основном применяются микроконтроллеры Atmel AVR ATmega328, ATmega168, ATmega2560, ATmega32U4 с частотой тактирования 16 или 8 МГц. В старых изделиях применялись ATmega8, ATmega1280 и другие. Есть также плата на процессоре ARM Cortex M3 AT91SAM3X8E с частотой тактирования 84 МГц.

В микроконтроллер предварительно прошивается загрузчик - BootLoader, поэтому внешний программатор не нужен. Тем не менее большинство плат имеет штыревой разьем для внутрисхемного программирования (ICSP).

Порты ввода-вывода микроконтроллеров оформлены в виде штыревых линеек. Никакогобуферизирования, защиты, конвертации уровней или подтяжек, как правило, нет. Микроконтроллеры питаются от 5В или 3,3В, в зависимости от модели платы. Соответственно порты имеют такой же размах допустимых входных и выходных напряжений. Программисту доступны некоторые специальные возможности портов ввода-вывода микроконтроллеров, например широтно-импульсная модуляция (ШИМ), аналогово-цифровой преобразователь (АЦП), интерфейсы UART, SPI, I2C. Количество и возможности портов ввода-вывода определяются конкретным вариантом микропроцессорной платы.

Документация, прошивки и чертежи Arduino распространяются под лицензией CreativeCommonsAttributionShareAlike 2.5 и доступны на официальном сайте Arduino. Рисунок печатной платы для некоторых версий Arduino также доступен. Исходный код для интегрированной среды разработки и библиотек опубликован и доступен под лицензией GPLv2.

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

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

Некоторые программно и аппаратно совместимые продукты избегают названия «Arduino», используя в вариантах собственного названия только «duino». Они были коммерчески выпущены другими производителями.

Помимо портов на платах микроконтроллеров иногда устанавливается периферия в виде интерфейсов USB или Ethernet.

Опциональный набор внешней периферии на модулях расширения (шилдах) включает в себя:

• USB Device (чаще всего как виртуальный COM порт через FTDI FT232, имеются также версии с эмуляцией USB HID Class клавиатур и мышек).

• Проводной и беспроводной Ethernet как на основной плате так и на платах расширения.

• Модули GSM и другие беспроводные интерфейсы.

• USB Host.

• SD card.

• Модуль управления низковольтным мотором на базе L298. Поддерживаются шаговый и коллекторный двигатели с напряжением до 12В и током до 2А на канал. Могут подключаться также реле, электромагниты и т. п. Модуль не имеет гальванической развязки.

• Графический ЖКИ индикатор.

• Модуль с макетным полем и др.

Сторонние производители выпускают широкую гамму датчиков и исполнительных устройств, подключаемых к Ардуино. Например: гироскопы, компасы, манометры, гигрометры, термометры, релейные модули, индикаторы, клавиатуры и т. п.

ArduinoUno- самая популярная версия базовой платформы Arduino. Построена на базе микроконтроллера ATmega328

и с использованием чипа ATMega8U2 для последовательного соединения по USB порту.

Платформа Uno имеет:

• 14 цифровых вход/выходов (6 из которых могут использоваться как выходы ШИМ);

• 6 аналоговых входов;

• кварцевый генератор 16 МГц;

• разъем USB;

• силовой разъем;

• разъем ICSP;

• кнопку перезагрузки.

Для работы (программирования) необходимо подключить платформу к компьютеру посредством кабеля USB, либо подать питание при помощи адаптера AC/DC или батареи.

ArduinoMega 2560построена на базе микроконтроллера Atmega2560 и с использованием чипа ATMega8U2 для последовательного соединения по USB порту.

Платформа Mega 2560 имеет:

• 54 цифровых входа/выходов (14 из которых могут использоваться как выходы ШИМ);

• 16 аналоговых входов;

• 4 последовательных порта UART;

• кварцевый генератор 16 МГц;

• USB коннектор;

• разъем питания;

• разъем ICSP;

• кнопку перезагрузки.

Для работы необходимо подключить платформу к компьютеру посредством кабеля USB или подать питание при помощи адаптера AC/DC, или аккумуляторной батареей. ArduinoMega 2560 совместима со всеми платами расширения, разработанными для платформ Uno или Duemilanove.

ArduinoNano- построенная на микроконтроллере ATmega328 (ArduinoNano 3.0) или ATmega168 (ArduinoNano 2.x) и с использованием чипа FTDIFT232RL для последовательного соединения по USB порту.ArduinoNano имеет небольшие размеры и может использоваться в лабораторных работах, мобильных платформах, роботах.

ArduinoNano может получать питание через подключение Mini-B USB, или от нерегулируемого 6-20 В (вывод 30), или регулируемого 5 В (вывод 27), внешнего источника питания. Автоматически выбирается источник с самым высоким напряжением.

Микросхема FTDI FT232RL получает питание, только если сама платформа запитана от USB. Таким образом при работе от внешнего источника (не USB), будет отсутствовать напряжение 3.3 В, генерируемое микросхемой FTDI, при этом светодиоды RX и TX мигаю только при наличие сигнала высокого уровня на выводах 0 и 1.

ArduinoDue -плата микроконтроллера на базе процессора Atmel SAM3X8E ARM Cortex-M3. Это первая плата Arduino на основе 32-битного микроконтроллера с ARM ядром.

Платформа Due имеет:

• 54 цифровых вход/выхода (из них 12 можно задействовать под выходы ШИМ);

• 12 аналоговых входов;

• 4 UARTа (аппаратных последовательных порта);

• генератор тактовой частоты 84 МГц;

• связь по USB с поддержкой OTG (USBOn-The-Go технология, позволяющая любому из присоединённых устройств быть управляющим на шине);

• 2 ЦАП (цифро-аналоговых преобразователя);

• 2 TWI;

• разъем питания;

• разъем SPI;

• разъем JTAG;

• кнопка сброса и кнопка стирания.

На Due установлено 32-битное ARM ядро, превосходящее по производительности обычные 8-битные микроконтроллеры.

Arduino TRE -первая плата Ардуино, произведенная в США.

Arduino TRE, по сути, объединяет в себе два устройства:

микрокомпьютер на базе микропроцессора Sitara с ядром Linux;

классическое Ардуино на базе AVR-микроконтроллера (подсистема “реального” времени).

Благодаря микропроцессору Sitara AM335x с тактовой частотой 1 ГГц, Arduino TRE обладает примерно в 100 раз большей производительностью по сравнению с ArduinoUno. Для разработчика такая производительность открывает широкие возможности по использованию мощныхLinux-приложений. Ардуино на базе микропроцессора Sitara может выполнять относительно высокопроизводительные десктоп-приложения Linux, ресурсоемкие алгоритмы и обеспечивать работу быстродействующих интерфейсов связи.

Встроенное AVR-ядро позволяет не только сохранить простоту и традиции программирования Ардуино, но и обеспечивает полную совместимость Arduino TRE с существующими платами расширения. Благодаря этому, разработчики могут расширять функциональность Arduino TRE, что позволяет использовать его для решения широкого спектра задач, таких, как управление 3D-принтерами, автоматизация зданий и освещения, сбор и обработка данных от беспроводных датчиков и пр. задачи, требующие контроль и выполнение различных операций в режиме реального времени.

Следует отметить, что Arduino TRE частично является результатом тесного сотрудничества Arduino и организации BeagleBoard.org. Эта команда пионеров открытого аппаратного обеспечения разделяет страсть к дальнейшему развитию открытых разработок, делая технологии доступными для художников, дизайнеров и простых любителей, увлекающихся электроникой. Вследствие этих обстоятельств проект Arduino TRE основан на опыте Arduino и BeagleBoard.org, сочетая в себе преимущества разработок обеих организаций.

Arduino TRE ожидался в продаже весной 2014 года, однако по состоянию на январь 2015 открытые продажи платформы пока не стартовали.

Программирование Arduino.

Программирование ведется с использованием собственной программной оболочки (IDE), бесплатно доступной с сайта Ардуино. В этой оболочке имеется текстовый редактор, менеджер проектов, препроцессор, компилятор и инструменты для загрузки программы в микроконтроллер. Оболочка написана на языке Java на основе проекта Processing работает в ОС Windows, Mac OS X и Linux.

Язык программирования Ардуино основывается нв С/C++ (используется компилятор AVR-GCC) с некоторыми особенностями (упрощениями), облегчающими новичкам написание первой работающей программы.

• Программы, написанные для Ардуино называются наброски (или иногда скетчи - от англ. sketch) и сохраняются в файлах с расширением ino. Эти файлы перед компиляцией обрабатываются препроцессором Ардуино. Также существует возможность создавать и подключать к проекту стандартные файлы C++.

• Обязательную в C++ функцию main()препроцессор Ардуино создает сам, вставляя туда необходимые «черновые» действия.

• Программист должен написать две обязательные для Ардуино функции setup()и loop().Первая вызывается однократно при старте, вторая выполняется в бесконечном цикле.

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

• Менеджер проекта Arduino IDE имеет нестандартный механизм добавления библиотек. Библиотеки в виде исходных текстов на стандартном C++ добавляются в специальную папку в рабочем каталоге IDE. При этом название библиотеки добавляется в список библиотек в меню IDE. Программист отмечает нужные библиотеки и они вносятся в список компиляции.

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

ПростейшаяАрдуино-программа состоит из двух функций:

setup():функция вызывается однократно при старте микроконтроллера.

loop():функция вызывается после setup()в бесконечном цикле все время работы микроконтроллера.

• Так выглядит полный текст простейшей программы (скетча) мигания светодиодом:

• #define LED_PIN 13

• voidsetup () {

•     pinMode (LED_PIN, OUTPUT); // определяем 13 контакт как цифровой выход-LED

•     }

• voidloop () {

•     digitalWrite (LED_PIN, HIGH); // включаемсветодиод

•     delay (1000); // пауза(1000 миллисекунд)

•     digitalWrite (LED_PIN, LOW); // выключаемсветодиод

•     delay (1000); // пауза(1000 миллисекунд)

•     }

• Загрузка программы в микроконтроллер Ардуино происходит черезспециальный предварительно запрограммированный загрузчик, которым оснащены все микроконтроллеры Ардуино. Загрузчик создан на основе Atmel AVR ApplicationNote AN109.

• Загрузчик может работать через интерфейсы RS-232, USB или Ethernet в зависимости от состава периферии конкретной процессорной платы. В некоторых вариантах, таких как ArduinoMini или неофициальнойBoarduino, для программирования требуется отдельный переходник.

• Пользователь может самостоятельно запрограммировать загрузчик в чистый микроконтроллер. Для этого в IDE интегрирована поддержка программатора на основе проекта AVRDude. Поддерживается несколько типов популярных недорогих программаторов.

Универсальные контроллеры с открытой архитектурой. Проект Raspberry.

RaspberryPi(Ра́збериПа́й) - это миниатюрный, размером с кредитную карту, ультра дешёвый компьютер (одноплатный компьютер), созданный Дэвидом Брабеном. RaspberryPi изначально разработанный как бюджетная система для обучения информатике. Впоследствии получивший намного более широкое применение и популярность. Разрабатывается RaspberryPiFoundation, Великобритания (www.raspberrypi.org).

RaspberryPi основан на процессоре с архитектурой ARM 11, частотой в 700 МГц. В последних версиях прошивки официально разрешили “разгонять” процессор до 1000 МГц. Это позволяет достичь приемлемой производительности при низком энергопотреблении.

RaspberryPi выпускается в трех комплектациях: модель «A», модель «B» и модель «B+». Все версии оснащены ARM11 процессором Broadcom BCM2835 с тактовой частотой 700 МГц и модулем оперативной памяти на 256МБ/512МБ, размещенными по технологии «package-on-package» т.е. непосредственно на процессоре.

Модель «A» оснащается одним USB 2.0 портом, модель «B» двумя, а модель «B+» - четырьмя. Также в моделях «B» и «B+» присутствует порт Ethernet. Помимо основного ядра, BCM2835 включает в себя графическое ядро с поддержкой OpenGL ES 2.0, аппаратного ускорения и FullHD-видео и DSP-ядро.

Одной из особенностей (недостатков) является отсутствие часов реального времени.

Вывод видеосигнала возможен через композитный разъём RCA или через цифровой HDMI-интерфейс. В версии «B+» вывод возможен через аудиоразьем 3,5. Корневая файловая система, образ ядра и пользовательские файлы размещаются на карте памяти SD, MMC, microSD (только в модели «B+») или SDIO.

В совокупности с низкими требованиями открытого программного обеспечения (OpenSource) к аппаратной части и специально собранным ядром операционной системы, оптимизированным под данную платформу, позволяет установить на него операционную систему Linux (либо RiscOS), а также набор сопутствующего программного обеспечения. Всё программное обеспечение бесплатно, и относительно мало требовательно к ресурсам.

Однако, главным принципиальным преимуществом данного проекта для использования в задачах создания встраиваемых систем и робототехники является интегрированная в архитектуру платформы подсистема управления простыми внешними электронными устройствами и компонентами (реализация функций контроллера класса Arduino) в т.ч. с использованием стандартных шин и интерфейсов UART, GPIO, JTAG, SPI, I2C, DSI, CSI.

Подключение питания осуществляется посредством разьёмаmicro-USB, производители рекомендует использовать источник питания мощностью не менее 1Вт и стабилизированным напряжением 5В.

Промышленное производство и продажи микрокомпьютеров семейства Raspberry стартовали в 2012 г. По состоянию на окончание 2014 г. продано не меннее 4 млн. экземпляров.

Базовые операционные системы:

• Raspbian рекомендуется для всех тех, кто только начинает знакомиться с RaspberryPi

• Pidora (Fedora)

• OpenELEC XBMC цифровой медиа-центр с открытым исходным кодом

• Raspbmc XBMC цифровой медиа-центр с открытым исходным кодом

Другие операционные системы:

• FreeBSD.

• Archlinux ARM

• RaspbianServerEdition - урезанная версия Raspibian с некоторыми дополнительными пакетами

• RISC OS

• IPFire - дистрибутив брандмауэра с открытыми исходными кодами для систем x86 и ARM. Он позволяет сделать из RaspberryPi простой маршрутизатор для домашних сетей и малых офисов.

• Raspberry Pi Thin Client - тонкийклиент

Основные характеристики:

• Аппаратная платформа:  ARM11 (ARMv6)

• ОС: Debian, Fedora, Arch Linux, Gentoo, RISC OS, Android, Firefox OS, NetBSD, FreeBSD, Slackware, Tiny Core Linux

• Цена: $ 25 (модель A), $ 35 (модель B и B+)

• Тип: одноплатный компьютер

• Форм-фактор: нестандартный

• Разработчик: Raspberry Pi Foundation

• Государство: Великобритания

• Год выпуска: 2012

• Оперативная память: 256 (ModelA), 512 (ModelB) Мб, интегрирована в CPU (часть резервируется видеокартой)

• Постоянная память: флеш карта MMC или microSD в модели B+

• Аудио подсистема: интегрирована в CPU

• Чипсет Ethernet и USB: SMSC LAN9512

• Электропитание:microUSB, 5В, от 700 мА

• Периферия:   в комплекте отсутствует

• Интерфейсы: HDMI, USB, видео RCA, StereoJack 3.5 мм, Ethernet (отсутсвует в ModelA) ,UART, GPIO, JTAG, SPI, I2C, DSI, CSI

• Запоминающее устройство: карта памяти SD, MMC, microSD

• Вес: 45 г

• Размер: 85,6 × 53,98×17 мм

Центральный процессор

• Разработчик CPU: Broadcom

• Модель:CPU BCM2835

• Тактовая частота CPU: 700 МГц («турбо-режим» до 1ГГц)

Видео подсистема

• Разработчик GPU: Broadcom

• Модель GPU: VideoCore IV

• Основное преимущество Raspberry - набор низкоуровневых интерфейсов, которые позволяют подключать к RaspberryPi платы расширения, внешние контроллеры, датчики и прочие аксессуары.

• Во-первых, на плате есть 15-пиновые слоты CSI-2 для подключения камеры и DSI для установки дисплея.

• Во-вторых, имеется колодка на 26 линий ввода-вывода общего назначения (GPIO, GeneralPurposeInput/Output - Входы/Выходы общего назначения), из которых по факту для управления доступно только 17. На них же реализованы интерфейсы UART, консольный порт, SPI и I²C. В последней модификации Raspberry - модели “B+” количество GPIO увеличено до 40.

• На новых ревизиях плат разведены, но не распаяны ещё четыре GPIO, дополнительно дающие I²C и I²S. Использование GPIO - это минимальная базовая возможность создания встраиваемых систем.

Разработка встраиваемых систем с использованием платформы Raspberry возможна в двух базовых вариантах:

• Программирование безиспользование операционной системы.

• Программирование с использованием операционной системы.


Дата добавления: 2018-02-18; просмотров: 1319; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!