Введение во встроенные системы и Windows Embedded CE

Встраиваемая вычислительная система eBox 2300 SoC

Разбить на страницы
Показывать лекцию целиком

eBox 2300 MSJK является небольшой дешевой встраиваемой компьютерной системой на основе системы на кристалле X86 (SoC), которая будет использоваться в качестве рабочего устройства для Windows Embedded CE. Она имеет полный набор средств В/В. Фотография с разрешения ICOP Corporation.

Встраиваемая компьютерная система eBox 2300

Представленная на рисунке 5.1 система eBox 2300 является небольшой дешевой встраиваемой вычислительной системой X86. Несмотря на свои небольшие размеры 4.5 на 4.5 дюйма, она содержит многие аппаратные средства, имеющиеся в настольном ПК. Процессор является совместимой с X86 системой на кристалле (SoC) Vortex86 с частотой 200Mhz. Процессор несколько медленнее, чем современные ПК, но потребляет значительно меньше питания, чем настольный ПК, и не требует никаких охлаждающих вентиляторов. Типичный настольный ПК может требовать максимум до 700W, а максимум eBox меньше 15W. Устройство имеет 128MB системной памяти SDRAM, AMI Bios в стиле ПК, и внутренний флэш-диск объемом 256MB (содержащий начальный загрузчик DOS и ОС). Так как оборудование совместимо с ПК, то оно может выполнять различные популярные операционные системы, включая Windows XP, Windows CE, и Linux. Оно работает от внешнего источника питания 5V DC 3A, получаемого из адаптера переменного тока, который поставляется вместе с eBox.

(рис 5.1) Встраиваемая компьютерная система eBox 2300 X86

Архитектура eBox 2300

Система eBox имеет все основные устройства В/В, имеющиеся обычно на настольном ПК. Разъемы В/В задней панели показаны на рисунке 5.2. Имеется вход PS/2 клавиатуры и мыши (требующий кабеля PS/2 Y), и стандартный выход VGA. Обычно с eBox будут соединяться стандартные для ПК клавиатура, мышь и монитор VGA. Модель 2300 MSJK имеет два последовательных порта RS232C (COM1 COM2). Она имеет 2 разъема USB 1.1, гнездо платы CF, и аудио AC97 на передней панели, как видно на рисунке 5.1. Один дополнительный разъем USB имеется на задней панели.

(рис 5.2) Вид задней панели eBox 2300, показывающий разъемы В/В и тумблер питания

Кулисный переключатель питания на задней панели выключает eBox. Выключатель сброс/питание на передней панели также вкачает и выключает eBox, но он по умолчанию может инициализироваться при активности LAN, что позволяет ему включиться самостоятельно, если задний кулисный переключатель не выключен. Система имеет внутренний интерфейс Ethernet 10/100Mbs. Разъем mini-PCI внизу платы процессора может поддерживать дополнительно внутреннюю плату беспроводной связи с внешней антенной.

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

(рис 5.3) Внутренний вид eBox 2300 со снятой верхней крышкой

Имеются кабели для соединения eBox с настольным ПК, который служит в качестве системы разработки программного обеспечения. Windows Embedded CE 6.0, выполняющаяся в Visual Studio 5, может загружать через сетевое соединение и отлаживать новую операционную систему и прикладные программы. Вместе с eBox поставляется сетевой перекрестный кабель для соединения eBox непосредственно с сетевым разъемом настольного ПК без использования концентратора или коммутатора. Если используется концентратор или коммутатор, то потребуется обычный сетевой кабель (без перекрестного соединения).

В Windows Embedded CE отладочная информация обычно доступна из COM1 и вместе с eBox поставляется последовательный null-модемный кабель для соединения с COM1: на eBox и портом COM на настольном ПК, чтобы видеть эту отладочную информацию. Дополнительные устройства В/В будут обычно соединяться с портом COM2:.

Блочная диаграмма системы eBox показана на рисунке 5.4. Архитектура аналогична материнской плате ПК, но Vortex86 SoC содержит функции северного и южного мостов внутри себя в дополнение к процессору X86. На типичном ПК микросхемы северного и южного мостов являются двумя большими микросхемами, припаянными к материнской плате. Отметим, что здесь представлены многие шины и устройств В/В, рассмотренные в предыдущих разделах.

(рис 5.4) Блочная диаграмма встраиваемой компьютерной системы eBox 2300

Начальная загрузка eBox

При включении питания eBox выполняет код инициализации из ROM BIOS, также как и настольный ПК. Во время производства несколько файлов были предварительно записаны на внутренний флэш-диск для начальной загрузки Windows Embedded CE. Файлы флэш-диска настроены для автоматической загрузки DOS и выполнения пакетного файла AUTOEXEC.BAT, который предоставляет пользователю несколько вариантов выбора в меню. Варианты выбора в меню включают загрузку локальной копии ОС из файла NK.BIN на флэш-диске, попытка сетевой загрузки с настольного ПК с помощью DHCP, или попытка сетевой загрузки, используя статический IP-адрес. Для каждого варианта начальной загрузки доступны также несколько вариантов видео разрешения VGA. Чтобы сетевое соединение и процесс загрузки работали, настольный ПК и eBox должны находиться в одной подсети (т.е. только последнее число в IP-адресе может отличаться, другие должны совпадать). Программа DOS с именем LOADCEPC затем загружает по сети новый файл ОС. Каждому eBox присвоено уникальное сетевое имя устройства в форме CEPCXXXX. Если имеется несколько устройств eBox, выполняющихся в одной подсети в лаборатории, не забудьте соединиться с правильным устройством.

Будьте внимательны, чтобы не стереть файлы на флэш-диске, иначе eBox не соединиться и не загрузиться правильно. Можно восстановить эти файлы, используя специально форматированный загрузочный внешний флэш-диск USB для начальной загрузки eBox, а затем вручную копируя фабричные используемые по умолчанию файлы на внутренний флэш-диск (см. подробности в Приложении С). Файл NK.BIN на флэш-диске можно заменить более новой версией для автономной работы, когда новый дизайн будет отлажен и протестирован. Лучше всего переименовать сначала старый файл NK.BIN, чтобы можно было его восстановить в случае возникновения проблем.

(рис 5.5) Вывод на дисплее VGA eBox после успешной загрузки Windows Embedded CE 6.0

Процесс загрузки для eBox, хотя и нормальный для ПК и прекрасно подходит для работы по разработке программного обеспечения, является немного нетипичным для того, что можно встретить во многих встраиваемых устройствах. В реально развернутом встроенном устройстве операционная система будет скорее всего загружаться напрямую, используя программу начальной загрузки из ROM (т.е., без BIOS и без DOS). Загрузка выполняется быстрее, экономится оперативная память и память хранения, и снижаются расходы, так как не требуются лицензионные отчисления для выполнения BIOS и DOS на каждом устройстве. Пример кода загрузчика для ROM обычно предоставляется вместе с ОС и адаптируется для каждого устройства OEM.

Для eBox доступен полный комплект драйверов устройств В/В, как видно в таблице 5.1. Многие из этих драйверов поставляются вместе с CE 6.0, а некоторые поставляются поставщиками полупроводников, или вместе со свободно доступным пакетом поддержки платы (BSP) eBox ICOP.

Драйверы устройств eBox 2300 для CE 6.0
Периферийные устройства eBox-2300 Драйверы CE 6.0
Видео (SiS-550) Vortex86_Display (драйвер включен вместе с ICOP eBox BSP)
Аудио (SiS-7019) Vortex86_Audio (драйвер включен вместе с ICOP eBox BSP)
Ethernet (RealTek-8100) RTL8139 (драйвер поставляется вместе с CE 6.0)
Последовательные порты (совместимый с 16550 UART) Com16550 (драйвер поставляется вместе с CE 6.0)
Порты USB (хост USB 1.1) OHCI (драйвер поставляется вместе с CE 6.0)
Флэш-диск USB USB Storage Class (драйвер поставляется вместе с CE 6.0)
Web-камера USB (USB Video Class 1.1) новый драйвер CE 6.0 USB камеры доступен для загрузки по адресу www.microsoft.com/downloads
Плата памяти CF ATAPI (драйвер поставляется вместе с CE 6.0)
Диск IDE ATAPI (драйвер поставляется вместе с CE 6.0)
MiniPCI (внутренний разъем) PCI Bus (драйвер поставляется вместе с CE 6.0)
Внутренняя плата беспроводной связи 802.11 - дополнительно (VIA VT6655 - только США) VIA VT6655 (драйвер поставляется VIA ICOP)

Взаимодействие внешнего оборудования с eBox 2300

Многие встроенные устройства должны соединять дополнительное внешнее оборудование и сигналы с компьютером. Эти сигналы могут быть как аналоговыми, так и цифровыми. Для аналоговых сигналов требуются конверторы A/D или D/A для соединения с цифровым компьютером. Простейшим способом соединения внешнего оборудования с компьютером является использование порта GPIO или параллельного порта.

В связи с размером и ограничениями по стоимости небольшое устройство eBox не имеет доступных внешне таких интерфейсов. Двумя другими оставшимися вариантами являются устройства USB и устройства последовательного доступа. Мы рассмотрим некоторые доступные коммерческие устройства В/В общего назначения, которые поддерживают USB и последовательный интерфейс.

Взаимодействие с внешним оборудованием с помощью USB

Устройства USB обычно нуждаются в драйвере устройства, специфическом для каждого устройства. Для Windows Embedded CE 6.0 драйвер устройства должен быть доступен в версии совместимой с X86 CE 6.0. Это немного ограничивает текущие варианты выбора, так как новая версия CE 6.0 была выпущена только что, но со временем появятся другие варианты. К счастью существуют два устройства USB с проектом общедоступного исходного кода для драйвера устройства CE USB.

(рис 5.6) Phidgets поддерживает цифровой и аналоговый В/В с широким спектром модулей датчиков

Phidgets является семейством цифровых и аналоговых интерфейсов В/В на основе USB и датчиков, созданных для любителей робототехники и электроники. Драйвер с общедоступным исходным кодом доступен для устройств Phidget. Самые распространенные модули Phidget включают устройства для аналогового и цифрового В/В. Датчики и модули предоставляют поддержку для радиоуправляемых (R/C) сервомоторов, датчиков вращения, датчиков движения, датчиков температуры, датчиков влажности, RFID, и GPS. Другие датчики могут взаимодействовать с платами цифрового и аналогового В/В общего назначения. Дополнительную информацию об этом и другим проектам общедоступного исходного кода для CE можно найти по адресу http://msdn2.microsoft.com/en-us/embedded/aa731151.aspx

Другой возможностью является устройство USB, которое работает с помощью драйвера виртуального коммуникационного порта. Несколько устройств, содержащих микросхемы FTDI, действуют таким образом, что имеют одновременно аналоговые и цифровые средства В/В со встроенным программным обеспечением, которое отвечает на команды, посланные на виртуальный коммуникационный порт. Показанный ниже модуль 245PBT включает микроконтроллер USB и микроконтроллер PIC, подключенный к 40-контактному модулю адаптера DIP (www.DLPdesign.com/usb). Он поддерживает цифровой В/В и аналоговые входы. Он может подключаться в стандартную электронную протоплату.

(рис 5.7) DLP D245PB-G имеет микроконтроллер USB и микроконтроллер В/В PIC

Взаимодействие с Web-камерой USB

Многим встроенным устройствам требуется ввод фотографий или видео камеры. Проект общедоступного исходного кода с драйвером USB для Windows Embedded CE доступен для недорогой Web-камеры Logitech QuickCAM Pro 5000 USB. Драйвер может захватывать фотографии и видео поток с частотой 10 кадров в секунду с разрешение 320x240 пикселей.

(рис 5.8) Для этой камеры Logitech USB существует проект общедоступного исходного кода CE

Дополнительную информацию об этом и других общественных проектах для Windows Embedded CE, включая модули датчиков Phidget, можно найти по адресу http://msdn2.microsoft.com/en-us/embedded/aa731151.aspx.

Кроме того недавно был опубликован новый драйвер камеры USB CE 6.0 по адресу www.microsoft.com/downloads. Он обеспечивает получение фотографий и видео захвата с камер, которые соответствуют стандарту USB Video Class версии 1.1.

Взаимодействие с внешним оборудованием с помощью последовательного порта

Устройства последовательного доступа имеют небольшое облегчающее использование программное преимущество в том, что не требуются никакие специальные драйверы устройств, так как драйверы для поддержки последовательных устройств включены в ОС. К сожалению полоса пропускания В/В последовательной передачи по сравнению с USB будет меньше. Платы последовательного доступа будут также требовать свой собственный источник питания, в отличие от небольших дешевых плат USB, которые могут использовать питание 5V DC 500MA из кабеля USB.

Платы Cypress Programmable System on a Chip (PSoC) являются одним из наиболее интересных и легко используемых дешевых вариантов. Однокристальное устройство PsoC содержит микроконтроллер, A/D, D/A, программируемые блоки усиления, цифровой В/В, и последовательный В/В. Сначала с помощью графического программного инструмента выбирают необходимые аналоговые и цифровые блоки, размещают и соединяют в кристалле для обеспечения широкого набора средств В/В. Затем встроенное программное обеспечение микроконтроллера программируется на языке ассемблера или на С. Используя настольный ПК с кабелем USB специальный адаптер программирует встроенную программу во флэш-памяти внутри устройства. Инструменты разработки и небольшой дешевый PCB с микросхемой, LCD-дисплеем, разъемами В/В, и небольшой областью протоплаты доступны для учебных заведений с академической скидкой (www.cypress.com/CUAP ). Версия USB платы также доступна, но Cypress не предоставила для нее в настоящее время ни одного драйвера устройств USB для CE.

(рис 5.9) Оценочный комплект Cypress PSoC CY3210 имеет LCD, последовательный интерфейс, и небольшую область протоплаты

Дешевые датчики для проектов встроенных систем

Широкое множество дешевых датчиков доступно для проектов создания встроенных систем. Некоторые из наиболее популярных датчиков для небольших роботов и любительских проектов показаны на рисунке 5.6. Модуль отслеживания линии обнаруживает темную линию на полу и может использоваться для отслеживающего линию робота. ИК датчики близости можно использовать для обнаружения присутствия препятствий в пределах полуметра. Дешевые преобразователи угол-код можно использовать для получения информации о скорости и положении сервомеханизмов и моторов DC. Спутниковые приемники GPS могут определять положение наружного устройства с точностью нескольких метров. Дешевые модули ультразвуковых локаторов посылают ультразвуковой сигнал для измерения расстояния до ближайшего объекта. Интервал действия обычно от нескольких сантиметров до примерно 10 метров. Они измеряют время возвращения сигнала и, используя скорость звука в воздухе, вычисляют расстояние. ИР датчики расстояния возвращают расстояние до ближайшего объекта, определяя угол отражения инфракрасного (ИК) луча от поверхности объектов, и обычно работают в интервале расстояний от нескольких сантиметров до полуметра. Модули электронного компаса могут определять ориентацию устройства, используя магнитное поле Земли. Модули камер на твердотельных CMOS можно использовать для захвата изображений и видео. Показанный модуль камеры Omnivision использует интерфейс I2C для управления, а данные изображения передаются на 8-битный параллельный порт.

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

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

Датчики поставляются с аналоговым и/или цифровым выводами. Цифровые датчики могут соединяться с портом GPIO. Для взаимодействия с датчиками с аналоговым выходом, требуется микросхема A/D преобразования в цифровые сигналы, или можно использовать одну из описанных ранее плат USB или последовательного В/В с аналоговым входом. Платы USB и последовательного В/В с аналоговым входом имеют свой внутренний конвертор A/D, а некоторые имеют даже конвертор D/A для аналогового выхода. Небольшие дешевые 8-16 битные микросхемы A/D доступны также с интерфейсами SPI или I2C. Часто требуются дополнительные схемы преобразования сигналов для аналоговых сигналов для масштабирования уровня напряжения сигналов и управления (согласования импеданса) аналоговых входов и выходов.

(рис 5.10) Дешевые датчики слева направо: Отслеживания линии, ИК датчик близости, углового положения, GPS, ультразвуковой локатор, ИК датчик расстояния, электронный компас, камера CMOS

Компания Analog Devices (www.analog.com) делает разнообразные ИС конверторов A/D и D/A с параллельным и SPI интерфейсами. Она также выпускает гироскопы MEM, акселерометры, и другие датчики. Образцы устройств можно запросить на их Web-сайте.

Многие новые устройства и датчики доступны только в корпусах для монтажа на поверхности. Для проектов, использующих устройства с поверхностным монтажем с интерфейсом LPC доступны небольшие дешевые платы адаптеров с контактами, которые вставляются в стандартную .1-дюймовую протоплату. Адаптеры доступны для многих из наиболее распространенных стилей корпусов поверхностного монтажа по адресу www.winslowadaptics.com и www.beldynsys.com. Устройство поверхностного монтажа должно быть тщательно припаяно ко многим платам адаптеров.

(рис 5.11) Специальные платы адаптеров облегчают прототипирование с помощью компонентов с поверхностным монтажем. Показан небольшая 10-контактная микросхема 16-битного SPI A/D поверхностного монтажа, смонтированная на специальной поверхности присоединенной к плате адаптера DIP, которая позволяет ей подключаться прямо в 1-дюймовую студенческую протоплату

Если требуется плата с печатным монтажем (PCB) для специальной конструкции оборудования с датчиками или другими простыми устройствами, существует ряд дешевых служб на основе Web изготовления PCB. Для проектирования PCB предоставляются средства CAD, а файлы конструкции посылаются через Web изготовителю PCB. Изготовитель предоставляет затем бесплатную оценку стоимости, изготавливает платы, и экспресс-почтой пересылает их заказчику за пару дней. Двумя такими службами изготовления PCB на основе Web являются www.expressPCB.com и www.4PCB.com.

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

Использование сервомеханизмов для встроенных систем

Дешевые, управляемые по радио (R/C) сервомеханизмы, как видно на рисунке 5.12, часто используются для создания роботов и других движущихся и вращающихся устройств. Типичный сервомеханизм поворачивается на 280 градусов. Сервомеханизмы управляются по радио с помощью 1-битного цифрового сигнала широтноимпульсной модуляции (PWM), и они настроены для работы от источника постоянного тока (DC) 5V.

Каждые 20 мсек посылается импульс 1-2 мсек для задания углового положения для сервопривода. Управляющий сигнал PWM совместим с 5V сигналами логики.

(рис 5.12) Недорогой радиоуправляемый (R/C) сервомотор. Внутри корпуса находится мотор постоянного тока (DC), редуктор, управление PWM, и схема управления. Его можно модифицировать и использовать в качестве управляющих моторов для небольших роботов. Доступен серво-контроллер Phidgets. 1-битный цифровой сигнал широтноимпульсной модуляции (PWM) используется для управления сервомотором

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

Все сервомоторы R/C имеют три провода (питание, земля, и сигнал PWM), но различные модели могут иметь различный порядок и цвет трех проводов в разъеме.

Некоторые более крупные роботы и R/C механизмы используют сервомотор для рулевого управления, а модуль контроллера скорости PWM для моторов. Имеется модуль Phidget USB, который выводит сигнал PWM для управления сервомотором, и процессор Cypress PsoC также можно запрограммировать для генерации сигналов PWM. Используя таймеры, сигналы PWM можно генерировать также с помощью GPIO с некоторой дополнительной нагрузкой на процессор.

Беспроводная поддержка для eBox

Для eBox доступна внутренняя плата беспроводной связи 802.11 WiFi вместе с драйвером для CE 6.0 от VIA и ICOP. Она вставляется во внутренний разъем платы mini-PCI и включает антенну, как показано на рисунке 5.13. Можно использовать беспроводные адаптеры USB для WiFi и Bluetooth, если они имеют доступные драйверы CE 6.0. Беспроводные адаптеры игровых систем, которые соединяются со стандартным соединением Ethernet, также можно использовать для обеспечения беспроводного соединения для eBox.

(рис 5.13) Внутренний комплект беспроводной связи 802.11 для eBox 2300 MSJK. Фотография с разрешения ICOP

Модемы сотовых телефонов

Модемы сотовых телефонов также можно соединить с последовательным портом eBox и использовать для проектов, которые требуют передачи голоса и данных, используя локальную сеть сотовой связи. Windows CE 6.0 включает драйвер для автономного модема Enfora SA-GL GSM/GPRS, показанного на рисунке 5.14. Для него требуется SIM-карта с активной учетной записью сотовой связи. Чтобы добавить драйвер в ядро CE, задайте переменную окружения IMGENFORA=1 и добавьте драйвер Cellcore/RIL во время операции сборки ОС (операции сборки ОС будут описаны в лекции 7).

(рис 5.14) Автономный модем сотовой связи Enfora SA-GL GSM/GPRS можно использовать с CE и eBox. (www.enfora.com) Фотография с разрешения Enfora Inc

Недорогое основание робота для eBox

Новое основание робота iRobot Create можно использовать в качестве дешевого основания робота для eBox. Оно использует популярный робот-пылесос Roomba. Внутренний микроконтроллер робота Create сообщает о состоянии датчика и принимает команды мотору через последовательный порт. Последовательный порт можно присоединить к eBox, а eBox можно смонтировать на основании в открытом грузовом отсеке. Требуются стабилизирующая схема 5VDC 3A и соединение питания для работы eBox от батареи вместо адаптера переменного тока. Импульсные регуляторы стоят немного больше, но являются более эффективными, чем дешевые линейные стабилизаторы, поэтому они будут обеспечивать для роботов более продолжительную работу от батарей. Для увеличения времени работы можно добавить отдельную батарею для eBox. Робот iRobot Create показан на рисунке 5.15.

(рис 5.15) Основание робота iRobot Create можно использовать как недорогое основание робота для eBox 2300. eBox, Web-камера Logitech, и дополнительную батарею можно видеть смонтированными на основании робота Create (www.irobot.com). Фотография с разрешения Microsoft

Примеры студенческих проектов, использующих eBox

eBox выполняющий CE 6.0 создает прекрасную платформу для студенческих проектов. Несколько примеров можно видеть на следующих рисунках. Проекты содержат Phidgets LCD, который выводит новости Интернет с лент RSS, как видно на рисунке 5.15. Каналы можно выбирать, используя стандартный ИК пульт дистанционного управления ТВ.

Сигналы ИК пульта управления декодируются платой Cypress PSoC (левая сторона рисунка 5.16), которая взаимодействует через последовательный порт с eBox (верхний правый угол рисунка 5.16).

(рис 5.16) Этот проект выводит прокручивающуюся ленту RSS Web-новостей на LCD дисплее Phidgets LCD

Студенты создали VoIP-телефонную систему, используя два устройства eBox, как показано на рисунке 5.17. Для набора номера используется дешевая USB HID цифровая клавиатура. LCD-модуль Phidgets выводит статус вызова.

(рис 5.17) VoIP-телефонная система, использующая два устройства eBoxes, выполняющих CE 6.0

Система контроля температуры на основе Web, показанная на рисунке 5.18, использует eBox с датчиком температуры Phidgets. Цифровые выходы с платы Phidgets включают нагреватель, A/C, и вентилятор. eBox выполняет сервер Web-страниц для обеспечения удаленного контроля и мониторинга через Интернет.

(рис 5.18) Система удаленного контроля и мониторинга температуры на основе Web-страницы, созданная с помощью аналогового температурного датчика, соединенного с платой интерфейса Phidgets 8/8/8, присоединенной к устройству eBox, выполняющему CE6.0. Цифровые выходы Phidget, видимые в красных LED, управляют передаваемыми сигналами тепла, AC и вентилятора (рис 5.19) Этот студенческий проект робота управляется устройством eBox, выполняющим CE 6.0. Работающий от батареи eBox имеет возможность беспроводной связи, и его можно видеть вверху слева на роботе

На рисунке 5.19 можно видеть созданный студентами мобильный робот. Для управления роботом используются eBox и интерфейсная плата Phidgets LCD. Он имеет аналого-цифровые преобразователи на моторах и систему лазерного дальномера (Ladar). Лазерный дальномер соединяется с последовательным портом eBox.

Как видно на рисунке 5.20, несколько линий цифрового В/В из Phidgets LCD интерфейсной платы были соединены с протоплатой для взаимодействия с сигналами моторов и аналого-цифровых преобразователей робота.

(рис 5.20) Цифровой В/В интерфейсной платы LCD 8/8/8, соединенной с сигналами управления и датчиков робота. Лазерный дальномер виден вверху слева

Проект, показанный на рисунке 5.21, является выполняющимся на eBox приложением GUI, которое следит за и управляет устройствами аналогового и цифрового В/В на плате Cypress PsoC с интерфейсом USB.

Студены разработали драйвер устройства USB взаимодействия с человеком (HID) для CE 6.0 для своего нового устройства. Специальная встроенная программа на плате Cypress USB отвечает на команды USB, полученные из eBox. Можно включать и выключать индикаторы LED платы Cypress, считывать статус кнопки, данные, записанные на LCD-дисплее, и аналоговые входы можно снова считать в eBox.

(рис 5.21) Этот студенческий проект состоит из драйвера CE USB HID и GUI для платы USB PSoC

Проект сканера eBox Phidget IR, показанный на рисунке 5.22, использует два R/C сервомотора, управляемых Phidget, с коммерческой рамкой монтирования R/C сервомотора панорамирования и наклона, созданной для твердотельных камер или датчиков расстояния, и аналоговым ИК датчиком расстояния, соединенным с интерфейсной платой Phidgets. Монтажные отверстия eBox используются для присоединения платы, используемой для монтажа внешнего оборудования.

(рис 5.22) Этот проект eBox Phidget является сканером, построенным с помощью ИК датчика расстояния с сервомоторами панорамирования и наклона. Отметим продуманное использование монтажных отверстий eBox и пластикового листа для присоединения внешнего оборудования поверх eBox. Фотография с разрешения Dan Slaeker

Студенты создали конструкцию для записи данных полета для R/C модели самолета, показанной слева на рисунке 5.23. Самолет имеет устройство eBox, смонтированное над крылом в небольшом укрытии (рядом с центром тяжести для баланса). Приемник GPS соединен с последовательным портом на eBox. Конструкция настроена как неуправляемое устройство (т.е., отсутствуют монитор или клавиатура) и модуль LCD Phidgets выводит информацию о статусе. Записанные во время полета данные переформатируются и используются для генерации изображения маршрута полета, используя спутниковые изображения из Web, как показано справа на рисунке 5.23.

(рис 5.23) Студенты смонтировали eBox на этой R/C модели самолета вместе с приемником GPS и небольшой батареей. Они записали данные полета и вывели данные, используя программу Google Earth

Небольшая батарея 7.4V LiPo, соединенная с ИС регулятора напряжения 5 Volt 3 Amp, осуществляет питание eBox. В этой конфигурации eBox требует около 1.5 Amps, и батарея может обеспечить питанием eBox примерно в течение 40 минут. Большинство небольших R/C самолетов могут нести с собой топлива только примерно на 10-15 минут полета.

Модули Phidgets, показанные на рисунке 5.24, были собраны на пластиковом мини боксе (Bud #PC11404) для использования в различных студенческих лабораторных проектах. Все соединяющие провода Phidget пропущены через просверленные отверстия позади каждого модуля и аккуратно спрятаны внутри мини бокса.

(рис 5.24) Несколько модулей Phidgets смонтированных на пластиковом боксе для студенческих лабораторных проектов на основе CE eBox. Представлены модули LCD, 8 LED, 8 переключателей, ADC с 8 различными аналоговыми датчиками, и 2 R/C сервомотора на подвеске панорамирования наклона с ИК датчиком расстояния. Провода скрыты внутри бокса

Так как частота обновления датчика Phidgets на основе USB по умолчанию составляет около 50 - 125 раз в секунду, они должны использоваться для сигналов, которые не требуют очень высокой частоты сэмплирования данных. В некоторых случаях плата Cypress PSoC будет лучше подходить для более высоких частот данных, так как пользователь может написать встроенную программу микроконтроллера для обработки сигналов с более высокой частотой данных. Затем можно использовать интерфейс последовательного порта eBox для передачи команд более высокого уровня и статусной информации с помощью встроенной программы микроконтроллера PSoC. Встроенная программа микроконтроллера выполняет операции нижнего уровня данных с более высокой частотой локально.

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

Дополнительная информация

  • Дополнительную информацию о eBox 2300 и технические данные можно найти на сайтах: www.embeddedpc.net и www.ece.gatech.edu/~hamblen/Ebox.
  • Наборы интерфейсов Phidget, драйверы CE, и модули датчиков доступны по следующему адресу:

    Phidgets USA http://www.phidgetsusa.com

    A division of Trossen Innovations, LLC или http://www.phidgets.com

    One Westbrook Corporate Center

    Suite 910

    Westchester, IL 60154

    877-898-1005

  • Основание робота iRobot Create по адресу:

    iRobot http://www.irobot.com/create

    63 South Avenue

    Burlington, MA 01803

    800-727-9077

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

    Lynxmotion, Inc. http://www.lynxmotion.com

    104 Partridge Road

    Pekin, IL 61554-1403

    309-382-1254

  • Наборы датчиков роботов, колеса с сервомоторами для роботов, и наборы АЦП для колес с сервомотором можно также получить отсюда:

    Acroname http://www.acroname.com

    P.O. Box 1894

    Nederland, CO 80466

    303-258-3161

  • Широкое множество интересных дешевых модулей датчиков доступно отсюда:

    Devantech Ltd (Robot Electronics) http://www.robot-electronics.co.uk

    Unit 2B Gilray Road

    Diss

    Norfolk

    IP22 4EU

    England

  • Несколько интересных наборов роботов и частей доступны здесь:

    Robotics Connection http://www.roboticsconnection.com

    4355 Cobb Pkwy

    Suite J148

    Atlanta, GA 30339

    770-314-1577I

  • Модули датчиков, беспроводной связи, GPS, и сотовой связи доступны здесь:

    Spark Fun Electronics http://www.sparkfun.com

    2500 Central Ave.

    Suite Q

    Boulder, CO 80301

  • Дополнительные подробности об описанных студенческих проектах eBox 2300, включая полный исходный код, доступны в Web по адресу:

    http://www.ece.gatech.edu/~hamblen/489X/projects

  • Лабораторные упражнения

  • Разработайте идею проекта конструкции, использующей eBox и другое оборудование, которое может быть доступно. Начертите блочную диаграмму системного уровня проекта конструкции. Определите аппаратные и программные задачи, требуемые для завершения проекта. Оцените время, требуемое для каждой задачи на диаграмме Ганнта, включая оценку стоимости частей и реалистическую оценку стоимости работы, предполагая 100% накладные расходы на зарплату. Определите, как можно быстро получить все дополнительные части, необходимые для проекта.
  • Спроектируйте периферийное устройство В/В на основе платы Cypress PSoC с развитой логикой для использования с eBox. Соедините новый интересный датчик с микросхемой процессора PsoC, используя небольшую область протоплаты, предоставленную на плате PSoC. Запрограммируйте микроконтроллер PSoC для чтения данных датчика (аналоговых или цифровых), перешлите данные на LCD-дисплей платы, и периодически посылайте данные на последовательный порт. С помощью кабеля последовательный порт PSoC будет соединяться с последовательным портом на устройстве eBox, которое затем прочитает данные датчика из своего последовательного порта. Программное обеспечение PSoC поддерживает также устройства SPI и I2C.
  • Страницы:

    eBox 2300 MSJK является небольшой дешевой встраиваемой компьютерной системой на основе системы на кристалле X86 (SoC), которая будет использоваться в качестве рабочего устройства для Windows Embedded CE. Она имеет полный набор средств В/В. Фотография с разрешения ICOP Corporation.

    Встраиваемая компьютерная система eBox 2300

    Представленная на рисунке 5.1 система eBox 2300 является небольшой дешевой встраиваемой вычислительной системой X86. Несмотря на свои небольшие размеры 4.5 на 4.5 дюйма, она содержит многие аппаратные средства, имеющиеся в настольном ПК. Процессор является совместимой с X86 системой на кристалле (SoC) Vortex86 с частотой 200Mhz. Процессор несколько медленнее, чем современные ПК, но потребляет значительно меньше питания, чем настольный ПК, и не требует никаких охлаждающих вентиляторов. Типичный настольный ПК может требовать максимум до 700W, а максимум eBox меньше 15W. Устройство имеет 128MB системной памяти SDRAM, AMI Bios в стиле ПК, и внутренний флэш-диск объемом 256MB (содержащий начальный загрузчик DOS и ОС). Так как оборудование совместимо с ПК, то оно может выполнять различные популярные операционные системы, включая Windows XP, Windows CE, и Linux. Оно работает от внешнего источника питания 5V DC 3A, получаемого из адаптера переменного тока, который поставляется вместе с eBox.

    (рис 5.1) Встраиваемая компьютерная система eBox 2300 X86

    Архитектура eBox 2300

    Система eBox имеет все основные устройства В/В, имеющиеся обычно на настольном ПК. Разъемы В/В задней панели показаны на рисунке 5.2. Имеется вход PS/2 клавиатуры и мыши (требующий кабеля PS/2 Y), и стандартный выход VGA. Обычно с eBox будут соединяться стандартные для ПК клавиатура, мышь и монитор VGA. Модель 2300 MSJK имеет два последовательных порта RS232C (COM1 COM2). Она имеет 2 разъема USB 1.1, гнездо платы CF, и аудио AC97 на передней панели, как видно на рисунке 5.1. Один дополнительный разъем USB имеется на задней панели.

    (рис 5.2) Вид задней панели eBox 2300, показывающий разъемы В/В и тумблер питания

    Кулисный переключатель питания на задней панели выключает eBox. Выключатель сброс/питание на передней панели также вкачает и выключает eBox, но он по умолчанию может инициализироваться при активности LAN, что позволяет ему включиться самостоятельно, если задний кулисный переключатель не выключен. Система имеет внутренний интерфейс Ethernet 10/100Mbs. Разъем mini-PCI внизу платы процессора может поддерживать дополнительно внутреннюю плату беспроводной связи с внешней антенной.

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

    (рис 5.3) Внутренний вид eBox 2300 со снятой верхней крышкой

    Имеются кабели для соединения eBox с настольным ПК, который служит в качестве системы разработки программного обеспечения. Windows Embedded CE 6.0, выполняющаяся в Visual Studio 5, может загружать через сетевое соединение и отлаживать новую операционную систему и прикладные программы. Вместе с eBox поставляется сетевой перекрестный кабель для соединения eBox непосредственно с сетевым разъемом настольного ПК без использования концентратора или коммутатора. Если используется концентратор или коммутатор, то потребуется обычный сетевой кабель (без перекрестного соединения).

    В Windows Embedded CE отладочная информация обычно доступна из COM1 и вместе с eBox поставляется последовательный null-модемный кабель для соединения с COM1: на eBox и портом COM на настольном ПК, чтобы видеть эту отладочную информацию. Дополнительные устройства В/В будут обычно соединяться с портом COM2:.

    Блочная диаграмма системы eBox показана на рисунке 5.4. Архитектура аналогична материнской плате ПК, но Vortex86 SoC содержит функции северного и южного мостов внутри себя в дополнение к процессору X86. На типичном ПК микросхемы северного и южного мостов являются двумя большими микросхемами, припаянными к материнской плате. Отметим, что здесь представлены многие шины и устройств В/В, рассмотренные в предыдущих разделах.

    (рис 5.4) Блочная диаграмма встраиваемой компьютерной системы eBox 2300

    Начальная загрузка eBox

    При включении питания eBox выполняет код инициализации из ROM BIOS, также как и настольный ПК. Во время производства несколько файлов были предварительно записаны на внутренний флэш-диск для начальной загрузки Windows Embedded CE. Файлы флэш-диска настроены для автоматической загрузки DOS и выполнения пакетного файла AUTOEXEC.BAT, который предоставляет пользователю несколько вариантов выбора в меню. Варианты выбора в меню включают загрузку локальной копии ОС из файла NK.BIN на флэш-диске, попытка сетевой загрузки с настольного ПК с помощью DHCP, или попытка сетевой загрузки, используя статический IP-адрес. Для каждого варианта начальной загрузки доступны также несколько вариантов видео разрешения VGA. Чтобы сетевое соединение и процесс загрузки работали, настольный ПК и eBox должны находиться в одной подсети (т.е. только последнее число в IP-адресе может отличаться, другие должны совпадать). Программа DOS с именем LOADCEPC затем загружает по сети новый файл ОС. Каждому eBox присвоено уникальное сетевое имя устройства в форме CEPCXXXX. Если имеется несколько устройств eBox, выполняющихся в одной подсети в лаборатории, не забудьте соединиться с правильным устройством.

    Будьте внимательны, чтобы не стереть файлы на флэш-диске, иначе eBox не соединиться и не загрузиться правильно. Можно восстановить эти файлы, используя специально форматированный загрузочный внешний флэш-диск USB для начальной загрузки eBox, а затем вручную копируя фабричные используемые по умолчанию файлы на внутренний флэш-диск (см. подробности в Приложении С). Файл NK.BIN на флэш-диске можно заменить более новой версией для автономной работы, когда новый дизайн будет отлажен и протестирован. Лучше всего переименовать сначала старый файл NK.BIN, чтобы можно было его восстановить в случае возникновения проблем.

    (рис 5.5) Вывод на дисплее VGA eBox после успешной загрузки Windows Embedded CE 6.0

    Процесс загрузки для eBox, хотя и нормальный для ПК и прекрасно подходит для работы по разработке программного обеспечения, является немного нетипичным для того, что можно встретить во многих встраиваемых устройствах. В реально развернутом встроенном устройстве операционная система будет скорее всего загружаться напрямую, используя программу начальной загрузки из ROM (т.е., без BIOS и без DOS). Загрузка выполняется быстрее, экономится оперативная память и память хранения, и снижаются расходы, так как не требуются лицензионные отчисления для выполнения BIOS и DOS на каждом устройстве. Пример кода загрузчика для ROM обычно предоставляется вместе с ОС и адаптируется для каждого устройства OEM.

    Для eBox доступен полный комплект драйверов устройств В/В, как видно в таблице 5.1. Многие из этих драйверов поставляются вместе с CE 6.0, а некоторые поставляются поставщиками полупроводников, или вместе со свободно доступным пакетом поддержки платы (BSP) eBox ICOP.

    Драйверы устройств eBox 2300 для CE 6.0
    Периферийные устройства eBox-2300 Драйверы CE 6.0
    Видео (SiS-550) Vortex86_Display (драйвер включен вместе с ICOP eBox BSP)
    Аудио (SiS-7019) Vortex86_Audio (драйвер включен вместе с ICOP eBox BSP)
    Ethernet (RealTek-8100) RTL8139 (драйвер поставляется вместе с CE 6.0)
    Последовательные порты (совместимый с 16550 UART) Com16550 (драйвер поставляется вместе с CE 6.0)
    Порты USB (хост USB 1.1) OHCI (драйвер поставляется вместе с CE 6.0)
    Флэш-диск USB USB Storage Class (драйвер поставляется вместе с CE 6.0)
    Web-камера USB (USB Video Class 1.1) новый драйвер CE 6.0 USB камеры доступен для загрузки по адресу www.microsoft.com/downloads
    Плата памяти CF ATAPI (драйвер поставляется вместе с CE 6.0)
    Диск IDE ATAPI (драйвер поставляется вместе с CE 6.0)
    MiniPCI (внутренний разъем) PCI Bus (драйвер поставляется вместе с CE 6.0)
    Внутренняя плата беспроводной связи 802.11 - дополнительно (VIA VT6655 - только США) VIA VT6655 (драйвер поставляется VIA ICOP)

    Взаимодействие внешнего оборудования с eBox 2300

    Многие встроенные устройства должны соединять дополнительное внешнее оборудование и сигналы с компьютером. Эти сигналы могут быть как аналоговыми, так и цифровыми. Для аналоговых сигналов требуются конверторы A/D или D/A для соединения с цифровым компьютером. Простейшим способом соединения внешнего оборудования с компьютером является использование порта GPIO или параллельного порта.

    В связи с размером и ограничениями по стоимости небольшое устройство eBox не имеет доступных внешне таких интерфейсов. Двумя другими оставшимися вариантами являются устройства USB и устройства последовательного доступа. Мы рассмотрим некоторые доступные коммерческие устройства В/В общего назначения, которые поддерживают USB и последовательный интерфейс.

    Взаимодействие с внешним оборудованием с помощью USB

    Устройства USB обычно нуждаются в драйвере устройства, специфическом для каждого устройства. Для Windows Embedded CE 6.0 драйвер устройства должен быть доступен в версии совместимой с X86 CE 6.0. Это немного ограничивает текущие варианты выбора, так как новая версия CE 6.0 была выпущена только что, но со временем появятся другие варианты. К счастью существуют два устройства USB с проектом общедоступного исходного кода для драйвера устройства CE USB.

    (рис 5.6) Phidgets поддерживает цифровой и аналоговый В/В с широким спектром модулей датчиков

    Phidgets является семейством цифровых и аналоговых интерфейсов В/В на основе USB и датчиков, созданных для любителей робототехники и электроники. Драйвер с общедоступным исходным кодом доступен для устройств Phidget. Самые распространенные модули Phidget включают устройства для аналогового и цифрового В/В. Датчики и модули предоставляют поддержку для радиоуправляемых (R/C) сервомоторов, датчиков вращения, датчиков движения, датчиков температуры, датчиков влажности, RFID, и GPS. Другие датчики могут взаимодействовать с платами цифрового и аналогового В/В общего назначения. Дополнительную информацию об этом и другим проектам общедоступного исходного кода для CE можно найти по адресу http://msdn2.microsoft.com/en-us/embedded/aa731151.aspx

    Другой возможностью является устройство USB, которое работает с помощью драйвера виртуального коммуникационного порта. Несколько устройств, содержащих микросхемы FTDI, действуют таким образом, что имеют одновременно аналоговые и цифровые средства В/В со встроенным программным обеспечением, которое отвечает на команды, посланные на виртуальный коммуникационный порт. Показанный ниже модуль 245PBT включает микроконтроллер USB и микроконтроллер PIC, подключенный к 40-контактному модулю адаптера DIP (www.DLPdesign.com/usb). Он поддерживает цифровой В/В и аналоговые входы. Он может подключаться в стандартную электронную протоплату.

    (рис 5.7) DLP D245PB-G имеет микроконтроллер USB и микроконтроллер В/В PIC

    Взаимодействие с Web-камерой USB

    Многим встроенным устройствам требуется ввод фотографий или видео камеры. Проект общедоступного исходного кода с драйвером USB для Windows Embedded CE доступен для недорогой Web-камеры Logitech QuickCAM Pro 5000 USB. Драйвер может захватывать фотографии и видео поток с частотой 10 кадров в секунду с разрешение 320x240 пикселей.

    (рис 5.8) Для этой камеры Logitech USB существует проект общедоступного исходного кода CE

    Дополнительную информацию об этом и других общественных проектах для Windows Embedded CE, включая модули датчиков Phidget, можно найти по адресу http://msdn2.microsoft.com/en-us/embedded/aa731151.aspx.

    Кроме того недавно был опубликован новый драйвер камеры USB CE 6.0 по адресу www.microsoft.com/downloads. Он обеспечивает получение фотографий и видео захвата с камер, которые соответствуют стандарту USB Video Class версии 1.1.

    Взаимодействие с внешним оборудованием с помощью последовательного порта

    Устройства последовательного доступа имеют небольшое облегчающее использование программное преимущество в том, что не требуются никакие специальные драйверы устройств, так как драйверы для поддержки последовательных устройств включены в ОС. К сожалению полоса пропускания В/В последовательной передачи по сравнению с USB будет меньше. Платы последовательного доступа будут также требовать свой собственный источник питания, в отличие от небольших дешевых плат USB, которые могут использовать питание 5V DC 500MA из кабеля USB.

    Платы Cypress Programmable System on a Chip (PSoC) являются одним из наиболее интересных и легко используемых дешевых вариантов. Однокристальное устройство PsoC содержит микроконтроллер, A/D, D/A, программируемые блоки усиления, цифровой В/В, и последовательный В/В. Сначала с помощью графического программного инструмента выбирают необходимые аналоговые и цифровые блоки, размещают и соединяют в кристалле для обеспечения широкого набора средств В/В. Затем встроенное программное обеспечение микроконтроллера программируется на языке ассемблера или на С. Используя настольный ПК с кабелем USB специальный адаптер программирует встроенную программу во флэш-памяти внутри устройства. Инструменты разработки и небольшой дешевый PCB с микросхемой, LCD-дисплеем, разъемами В/В, и небольшой областью протоплаты доступны для учебных заведений с академической скидкой (www.cypress.com/CUAP ). Версия USB платы также доступна, но Cypress не предоставила для нее в настоящее время ни одного драйвера устройств USB для CE.

    (рис 5.9) Оценочный комплект Cypress PSoC CY3210 имеет LCD, последовательный интерфейс, и небольшую область протоплаты

    Дешевые датчики для проектов встроенных систем

    Широкое множество дешевых датчиков доступно для проектов создания встроенных систем. Некоторые из наиболее популярных датчиков для небольших роботов и любительских проектов показаны на рисунке 5.6. Модуль отслеживания линии обнаруживает темную линию на полу и может использоваться для отслеживающего линию робота. ИК датчики близости можно использовать для обнаружения присутствия препятствий в пределах полуметра. Дешевые преобразователи угол-код можно использовать для получения информации о скорости и положении сервомеханизмов и моторов DC. Спутниковые приемники GPS могут определять положение наружного устройства с точностью нескольких метров. Дешевые модули ультразвуковых локаторов посылают ультразвуковой сигнал для измерения расстояния до ближайшего объекта. Интервал действия обычно от нескольких сантиметров до примерно 10 метров. Они измеряют время возвращения сигнала и, используя скорость звука в воздухе, вычисляют расстояние. ИР датчики расстояния возвращают расстояние до ближайшего объекта, определяя угол отражения инфракрасного (ИК) луча от поверхности объектов, и обычно работают в интервале расстояний от нескольких сантиметров до полуметра. Модули электронного компаса могут определять ориентацию устройства, используя магнитное поле Земли. Модули камер на твердотельных CMOS можно использовать для захвата изображений и видео. Показанный модуль камеры Omnivision использует интерфейс I2C для управления, а данные изображения передаются на 8-битный параллельный порт.

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

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

    Датчики поставляются с аналоговым и/или цифровым выводами. Цифровые датчики могут соединяться с портом GPIO. Для взаимодействия с датчиками с аналоговым выходом, требуется микросхема A/D преобразования в цифровые сигналы, или можно использовать одну из описанных ранее плат USB или последовательного В/В с аналоговым входом. Платы USB и последовательного В/В с аналоговым входом имеют свой внутренний конвертор A/D, а некоторые имеют даже конвертор D/A для аналогового выхода. Небольшие дешевые 8-16 битные микросхемы A/D доступны также с интерфейсами SPI или I2C. Часто требуются дополнительные схемы преобразования сигналов для аналоговых сигналов для масштабирования уровня напряжения сигналов и управления (согласования импеданса) аналоговых входов и выходов.

    (рис 5.10) Дешевые датчики слева направо: Отслеживания линии, ИК датчик близости, углового положения, GPS, ультразвуковой локатор, ИК датчик расстояния, электронный компас, камера CMOS

    Компания Analog Devices (www.analog.com) делает разнообразные ИС конверторов A/D и D/A с параллельным и SPI интерфейсами. Она также выпускает гироскопы MEM, акселерометры, и другие датчики. Образцы устройств можно запросить на их Web-сайте.

    Многие новые устройства и датчики доступны только в корпусах для монтажа на поверхности. Для проектов, использующих устройства с поверхностным монтажем с интерфейсом LPC доступны небольшие дешевые платы адаптеров с контактами, которые вставляются в стандартную .1-дюймовую протоплату. Адаптеры доступны для многих из наиболее распространенных стилей корпусов поверхностного монтажа по адресу www.winslowadaptics.com и www.beldynsys.com. Устройство поверхностного монтажа должно быть тщательно припаяно ко многим платам адаптеров.

    (рис 5.11) Специальные платы адаптеров облегчают прототипирование с помощью компонентов с поверхностным монтажем. Показан небольшая 10-контактная микросхема 16-битного SPI A/D поверхностного монтажа, смонтированная на специальной поверхности присоединенной к плате адаптера DIP, которая позволяет ей подключаться прямо в 1-дюймовую студенческую протоплату

    Если требуется плата с печатным монтажем (PCB) для специальной конструкции оборудования с датчиками или другими простыми устройствами, существует ряд дешевых служб на основе Web изготовления PCB. Для проектирования PCB предоставляются средства CAD, а файлы конструкции посылаются через Web изготовителю PCB. Изготовитель предоставляет затем бесплатную оценку стоимости, изготавливает платы, и экспресс-почтой пересылает их заказчику за пару дней. Двумя такими службами изготовления PCB на основе Web являются www.expressPCB.com и www.4PCB.com.

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

    Использование сервомеханизмов для встроенных систем

    Дешевые, управляемые по радио (R/C) сервомеханизмы, как видно на рисунке 5.12, часто используются для создания роботов и других движущихся и вращающихся устройств. Типичный сервомеханизм поворачивается на 280 градусов. Сервомеханизмы управляются по радио с помощью 1-битного цифрового сигнала широтноимпульсной модуляции (PWM), и они настроены для работы от источника постоянного тока (DC) 5V.

    Каждые 20 мсек посылается импульс 1-2 мсек для задания углового положения для сервопривода. Управляющий сигнал PWM совместим с 5V сигналами логики.

    (рис 5.12) Недорогой радиоуправляемый (R/C) сервомотор. Внутри корпуса находится мотор постоянного тока (DC), редуктор, управление PWM, и схема управления. Его можно модифицировать и использовать в качестве управляющих моторов для небольших роботов. Доступен серво-контроллер Phidgets. 1-битный цифровой сигнал широтноимпульсной модуляции (PWM) используется для управления сервомотором

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

    Все сервомоторы R/C имеют три провода (питание, земля, и сигнал PWM), но различные модели могут иметь различный порядок и цвет трех проводов в разъеме.

    Некоторые более крупные роботы и R/C механизмы используют сервомотор для рулевого управления, а модуль контроллера скорости PWM для моторов. Имеется модуль Phidget USB, который выводит сигнал PWM для управления сервомотором, и процессор Cypress PsoC также можно запрограммировать для генерации сигналов PWM. Используя таймеры, сигналы PWM можно генерировать также с помощью GPIO с некоторой дополнительной нагрузкой на процессор.

    Беспроводная поддержка для eBox

    Для eBox доступна внутренняя плата беспроводной связи 802.11 WiFi вместе с драйвером для CE 6.0 от VIA и ICOP. Она вставляется во внутренний разъем платы mini-PCI и включает антенну, как показано на рисунке 5.13. Можно использовать беспроводные адаптеры USB для WiFi и Bluetooth, если они имеют доступные драйверы CE 6.0. Беспроводные адаптеры игровых систем, которые соединяются со стандартным соединением Ethernet, также можно использовать для обеспечения беспроводного соединения для eBox.

    (рис 5.13) Внутренний комплект беспроводной связи 802.11 для eBox 2300 MSJK. Фотография с разрешения ICOP

    Модемы сотовых телефонов

    Модемы сотовых телефонов также можно соединить с последовательным портом eBox и использовать для проектов, которые требуют передачи голоса и данных, используя локальную сеть сотовой связи. Windows CE 6.0 включает драйвер для автономного модема Enfora SA-GL GSM/GPRS, показанного на рисунке 5.14. Для него требуется SIM-карта с активной учетной записью сотовой связи. Чтобы добавить драйвер в ядро CE, задайте переменную окружения IMGENFORA=1 и добавьте драйвер Cellcore/RIL во время операции сборки ОС (операции сборки ОС будут описаны в лекции 7).

    (рис 5.14) Автономный модем сотовой связи Enfora SA-GL GSM/GPRS можно использовать с CE и eBox. (www.enfora.com) Фотография с разрешения Enfora Inc

    Недорогое основание робота для eBox

    Новое основание робота iRobot Create можно использовать в качестве дешевого основания робота для eBox. Оно использует популярный робот-пылесос Roomba. Внутренний микроконтроллер робота Create сообщает о состоянии датчика и принимает команды мотору через последовательный порт. Последовательный порт можно присоединить к eBox, а eBox можно смонтировать на основании в открытом грузовом отсеке. Требуются стабилизирующая схема 5VDC 3A и соединение питания для работы eBox от батареи вместо адаптера переменного тока. Импульсные регуляторы стоят немного больше, но являются более эффективными, чем дешевые линейные стабилизаторы, поэтому они будут обеспечивать для роботов более продолжительную работу от батарей. Для увеличения времени работы можно добавить отдельную батарею для eBox. Робот iRobot Create показан на рисунке 5.15.

    (рис 5.15) Основание робота iRobot Create можно использовать как недорогое основание робота для eBox 2300. eBox, Web-камера Logitech, и дополнительную батарею можно видеть смонтированными на основании робота Create (www.irobot.com). Фотография с разрешения Microsoft

    Примеры студенческих проектов, использующих eBox

    eBox выполняющий CE 6.0 создает прекрасную платформу для студенческих проектов. Несколько примеров можно видеть на следующих рисунках. Проекты содержат Phidgets LCD, который выводит новости Интернет с лент RSS, как видно на рисунке 5.15. Каналы можно выбирать, используя стандартный ИК пульт дистанционного управления ТВ.

    Сигналы ИК пульта управления декодируются платой Cypress PSoC (левая сторона рисунка 5.16), которая взаимодействует через последовательный порт с eBox (верхний правый угол рисунка 5.16).

    (рис 5.16) Этот проект выводит прокручивающуюся ленту RSS Web-новостей на LCD дисплее Phidgets LCD

    Студенты создали VoIP-телефонную систему, используя два устройства eBox, как показано на рисунке 5.17. Для набора номера используется дешевая USB HID цифровая клавиатура. LCD-модуль Phidgets выводит статус вызова.

    (рис 5.17) VoIP-телефонная система, использующая два устройства eBoxes, выполняющих CE 6.0

    Система контроля температуры на основе Web, показанная на рисунке 5.18, использует eBox с датчиком температуры Phidgets. Цифровые выходы с платы Phidgets включают нагреватель, A/C, и вентилятор. eBox выполняет сервер Web-страниц для обеспечения удаленного контроля и мониторинга через Интернет.

    (рис 5.18) Система удаленного контроля и мониторинга температуры на основе Web-страницы, созданная с помощью аналогового температурного датчика, соединенного с платой интерфейса Phidgets 8/8/8, присоединенной к устройству eBox, выполняющему CE6.0. Цифровые выходы Phidget, видимые в красных LED, управляют передаваемыми сигналами тепла, AC и вентилятора (рис 5.19) Этот студенческий проект робота управляется устройством eBox, выполняющим CE 6.0. Работающий от батареи eBox имеет возможность беспроводной связи, и его можно видеть вверху слева на роботе

    На рисунке 5.19 можно видеть созданный студентами мобильный робот. Для управления роботом используются eBox и интерфейсная плата Phidgets LCD. Он имеет аналого-цифровые преобразователи на моторах и систему лазерного дальномера (Ladar). Лазерный дальномер соединяется с последовательным портом eBox.

    Как видно на рисунке 5.20, несколько линий цифрового В/В из Phidgets LCD интерфейсной платы были соединены с протоплатой для взаимодействия с сигналами моторов и аналого-цифровых преобразователей робота.

    (рис 5.20) Цифровой В/В интерфейсной платы LCD 8/8/8, соединенной с сигналами управления и датчиков робота. Лазерный дальномер виден вверху слева

    Проект, показанный на рисунке 5.21, является выполняющимся на eBox приложением GUI, которое следит за и управляет устройствами аналогового и цифрового В/В на плате Cypress PsoC с интерфейсом USB.

    Студены разработали драйвер устройства USB взаимодействия с человеком (HID) для CE 6.0 для своего нового устройства. Специальная встроенная программа на плате Cypress USB отвечает на команды USB, полученные из eBox. Можно включать и выключать индикаторы LED платы Cypress, считывать статус кнопки, данные, записанные на LCD-дисплее, и аналоговые входы можно снова считать в eBox.

    (рис 5.21) Этот студенческий проект состоит из драйвера CE USB HID и GUI для платы USB PSoC

    Проект сканера eBox Phidget IR, показанный на рисунке 5.22, использует два R/C сервомотора, управляемых Phidget, с коммерческой рамкой монтирования R/C сервомотора панорамирования и наклона, созданной для твердотельных камер или датчиков расстояния, и аналоговым ИК датчиком расстояния, соединенным с интерфейсной платой Phidgets. Монтажные отверстия eBox используются для присоединения платы, используемой для монтажа внешнего оборудования.

    (рис 5.22) Этот проект eBox Phidget является сканером, построенным с помощью ИК датчика расстояния с сервомоторами панорамирования и наклона. Отметим продуманное использование монтажных отверстий eBox и пластикового листа для присоединения внешнего оборудования поверх eBox. Фотография с разрешения Dan Slaeker

    Студенты создали конструкцию для записи данных полета для R/C модели самолета, показанной слева на рисунке 5.23. Самолет имеет устройство eBox, смонтированное над крылом в небольшом укрытии (рядом с центром тяжести для баланса). Приемник GPS соединен с последовательным портом на eBox. Конструкция настроена как неуправляемое устройство (т.е., отсутствуют монитор или клавиатура) и модуль LCD Phidgets выводит информацию о статусе. Записанные во время полета данные переформатируются и используются для генерации изображения маршрута полета, используя спутниковые изображения из Web, как показано справа на рисунке 5.23.

    (рис 5.23) Студенты смонтировали eBox на этой R/C модели самолета вместе с приемником GPS и небольшой батареей. Они записали данные полета и вывели данные, используя программу Google Earth

    Небольшая батарея 7.4V LiPo, соединенная с ИС регулятора напряжения 5 Volt 3 Amp, осуществляет питание eBox. В этой конфигурации eBox требует около 1.5 Amps, и батарея может обеспечить питанием eBox примерно в течение 40 минут. Большинство небольших R/C самолетов могут нести с собой топлива только примерно на 10-15 минут полета.

    Модули Phidgets, показанные на рисунке 5.24, были собраны на пластиковом мини боксе (Bud #PC11404) для использования в различных студенческих лабораторных проектах. Все соединяющие провода Phidget пропущены через просверленные отверстия позади каждого модуля и аккуратно спрятаны внутри мини бокса.

    (рис 5.24) Несколько модулей Phidgets смонтированных на пластиковом боксе для студенческих лабораторных проектов на основе CE eBox. Представлены модули LCD, 8 LED, 8 переключателей, ADC с 8 различными аналоговыми датчиками, и 2 R/C сервомотора на подвеске панорамирования наклона с ИК датчиком расстояния. Провода скрыты внутри бокса

    Так как частота обновления датчика Phidgets на основе USB по умолчанию составляет около 50 - 125 раз в секунду, они должны использоваться для сигналов, которые не требуют очень высокой частоты сэмплирования данных. В некоторых случаях плата Cypress PSoC будет лучше подходить для более высоких частот данных, так как пользователь может написать встроенную программу микроконтроллера для обработки сигналов с более высокой частотой данных. Затем можно использовать интерфейс последовательного порта eBox для передачи команд более высокого уровня и статусной информации с помощью встроенной программы микроконтроллера PSoC. Встроенная программа микроконтроллера выполняет операции нижнего уровня данных с более высокой частотой локально.

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

    Дополнительная информация

  • Дополнительную информацию о eBox 2300 и технические данные можно найти на сайтах: www.embeddedpc.net и www.ece.gatech.edu/~hamblen/Ebox.
  • Наборы интерфейсов Phidget, драйверы CE, и модули датчиков доступны по следующему адресу:

    Phidgets USA http://www.phidgetsusa.com

    A division of Trossen Innovations, LLC или http://www.phidgets.com

    One Westbrook Corporate Center

    Suite 910

    Westchester, IL 60154

    877-898-1005

  • Основание робота iRobot Create по адресу:

    iRobot http://www.irobot.com/create

    63 South Avenue

    Burlington, MA 01803

    800-727-9077

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

    Lynxmotion, Inc. http://www.lynxmotion.com

    104 Partridge Road

    Pekin, IL 61554-1403

    309-382-1254

  • Наборы датчиков роботов, колеса с сервомоторами для роботов, и наборы АЦП для колес с сервомотором можно также получить отсюда:

    Acroname http://www.acroname.com

    P.O. Box 1894

    Nederland, CO 80466

    303-258-3161

  • Широкое множество интересных дешевых модулей датчиков доступно отсюда:

    Devantech Ltd (Robot Electronics) http://www.robot-electronics.co.uk

    Unit 2B Gilray Road

    Diss

    Norfolk

    IP22 4EU

    England

  • Несколько интересных наборов роботов и частей доступны здесь:

    Robotics Connection http://www.roboticsconnection.com

    4355 Cobb Pkwy

    Suite J148

    Atlanta, GA 30339

    770-314-1577I

  • Модули датчиков, беспроводной связи, GPS, и сотовой связи доступны здесь:

    Spark Fun Electronics http://www.sparkfun.com

    2500 Central Ave.

    Suite Q

    Boulder, CO 80301

  • Дополнительные подробности об описанных студенческих проектах eBox 2300, включая полный исходный код, доступны в Web по адресу:

    http://www.ece.gatech.edu/~hamblen/489X/projects

  • Лабораторные упражнения

  • Разработайте идею проекта конструкции, использующей eBox и другое оборудование, которое может быть доступно. Начертите блочную диаграмму системного уровня проекта конструкции. Определите аппаратные и программные задачи, требуемые для завершения проекта. Оцените время, требуемое для каждой задачи на диаграмме Ганнта, включая оценку стоимости частей и реалистическую оценку стоимости работы, предполагая 100% накладные расходы на зарплату. Определите, как можно быстро получить все дополнительные части, необходимые для проекта.
  • Спроектируйте периферийное устройство В/В на основе платы Cypress PSoC с развитой логикой для использования с eBox. Соедините новый интересный датчик с микросхемой процессора PsoC, используя небольшую область протоплаты, предоставленную на плате PSoC. Запрограммируйте микроконтроллер PSoC для чтения данных датчика (аналоговых или цифровых), перешлите данные на LCD-дисплей платы, и периодически посылайте данные на последовательный порт. С помощью кабеля последовательный порт PSoC будет соединяться с последовательным портом на устройстве eBox, которое затем прочитает данные датчика из своего последовательного порта. Программное обеспечение PSoC поддерживает также устройства SPI и I2C.
  • Вернуться к учебному плану