О пользе тараканов
АрхивВзяться за эту статью меня побудили три события, случившиеся практически одно за другим.
Взяться за эту статью меня побудили три события, случившиеся практически одно за другим. Во-первых, с успехом был распродан первый тираж моей книги о микроконтроллерах, выпускаемых фирмой Microchip. Тема явно «пошла», и издатель заказал новую книгу о продукции этой фирмы, позволив мне определиться с ее содержанием по своему усмотрению (ну чем не мечта автора!).
Хочу сразу заявить, что не имею ни малейшего желания заниматься скрытой или явной рекламой продукции этой американской компании. Просто я пишу о том, что знаю, и надеюсь, что это будет интересно читателям. Но ведь если автор пишет обзорно-познавательную статью о новых процессорах, а редакция ее публикует на общих основаниях, то и автора и редакцию вряд ли заподозрят в сговоре с корпорацией Intel или AMD, не так ли? Есть множество хороших фирм, выпускающих хорошие микроконтроллеры. И есть авторы, об этих изделиях пишущие. Каждый возделывает свою делянку.
Так вот, обуяла меня гордыня, и пожелал я, чтобы новая книга была на острие прогресса. А это значит, что написать нужно о совершенно новых продуктах компании. Таковых на тот момент было два: микроконтроллеры серии dsPIC со встроенным цифровым сигнальным процессором и микроконтроллеры серии rfPIC со встроенным микромощным передатчиком УКВ-диапазона.
Признаюсь, интеллектуальная гонка за локомотивом прогресса иногда меня утомляет, и кристаллы серии rfPIC на первый взгляд показались мне если не смесью ужа с ежом, то этаким забавным кракозябликом с не до конца ясным целевым назначением. Но тут случилось событие номер два: меня мимоходом озадачил мой приятель. Хочу, говорит, сделать такое устройство, чтобы мой телевизор в углу экрана показывал температуру за окном! Причем именно за окном владельца телевизора, а не за окном телестудии, расположенной на другом конце города. Каковы, спрашивает, будут твои идеи? Я ему в ответ про широко известные микросхемы (ценою три рубля пучок), которые управляются по шине I2C и позволяют вставлять символы встроенного знакогенератора в заданное место телевизионной картинки. Можно за один вечер составить несложную схемку на основе микроконтроллера практически от любой фирмы. Но оказалось, что проблема в ином. Датчик температуры должен располагаться за окном другой комнаты, где на него не будет светить солнце. Но применить для передачи пары байт в минуту модуль Bluetooth или Wi-Fi додумается только жертва семинаров по беспроводным технологиям. А тянуть через всю квартиру сигнальный провод — это как-то… не по-козловски получается.
А тут (событие номер три) и сам Евгений Антонович, легок на помине, в одном из своих «Огородов» подозрительно так намекает, что в славном Пиндустане якобы есть пульты дистанционного управления, которые работают по радиоканалу и позволяют управлять видеопроектором, стоящим в шумоизолированной комнатке. Всё, мозаика сложилась.
омнительный кракозяблик оказался полезным домашним животным, и я решил, что следующая книга будет про rfPIC. Но осталось давно зреющее чувство обиды за микроконтроллеры, отношение к которым в мире «больших» компьютерщиков сродни отношению сенбернара к хомячкам. Вроде бы они и живые, да какие-то ненастоящие. «А поворотись-ка боком, микросхемка! Экая же ты нелепая! Сколько, говоришь, у тебя памяти? Аж 32 ячейки? А тактовая частота? Целых 10 мегагерц??? Да-а-а… сильна, ничего не скажешь. Гы-гы-гы…»
С другой стороны, никто не станет отрицать, что микроконтроллеры можно найти во множестве самых разных электронных устройств, бытовых и промышленных. Вот и получается, что «настоящие» процессоры берут свое мощью и универсальностью, устраивают гонки за мега- и гигагерцы, соединяются в кластеры… Зато микроконтроллеры, как тараканы, заполняют все доступные щели и вымирать не собираются.
Давайте навскидку перечислим самые очевидные изделия, в которых микроконтроллеру требуется напарник-радиопередатчик. Первое, что приходит в голову, — пульт автомобильной сигнализации. Далее логично следуют всевозможные прочие пульты управления, для которых передача данных по инфракрасному каналу неприемлема. В качестве примера применения rfPIC производитель кристалла предлагает описание законченной конструкции: брелка для управления презентациями (Я предложил бы объединить этот пульт с лазерной указкой, благо батарейки в ней уже есть). Брелок имеет две кнопки: «вперед» и «назад». В разъем USB презентационного компьютера вставляется миниатюрный приемник (о котором мы скажем позже). Нажатием кнопок на брелке докладчик переключает слайды. И нет нужды целиться инфракрасным пультом в приемник, подключенный к ноутбуку, или кивать головой напарнику.
Есть еще один нюанс: радиочастотный микропередатчик, имея значительно большую дальность действия, потребляет в момент передачи в десятки раз меньший ток, чем инфракрасный излучатель. Поэтому для питания ВЧ-передатчика можно использовать малогабаритную литиевую батарейку-таблетку напряжением 3 вольта, что для инфракрасного передатчика совершенно неприемлемо.
Однако истинный масштаб применимости связки микроконтроллер-передатчик раскрывается, если речь заходит об охранных системах и системах сбора данных (первые в этом случае во многом пересекаются со вторыми). Представьте себе, что вы надумали «накрыть» собственную квартиру системой охранных датчиков: на движение, на разбитие стекла и т. п. Это неизбежно потребует прокладки сигнально-питающих кабелей. Которые, между прочим, возле центрального блока иногда собираются в толстый жгут. И далеко не всегда можно долбить стены под проводку, а наружная разводка помещение не украшает, даже будучи размещенной в кабельных коробах. Всевозможные датчики, работающие по радиоканалу, существуют давно. Большинство из них кроме передатчика содержит в себе микроконтроллер, позволяющий датчику в какой-то мере быть «интеллектуальным» и генерирующий уникальную кодовую последовательность. Питаются такие датчики от миниатюрных батареек, которые можно менять не чаще, чем раз в полгода. Датчики можно снимать, добавлять, переносить без особых проблем.
Яркий пример — система контроля давления в автомобильных шинах. Думаю, никто всерьез не предложит снимать информацию с вращающихся колес через скользящие контакты? На самом деле, в автомобилях Mercedes применяются именно микроконтроллеры rfPIC на пару с датчиком давления Motorola, вмонтированные в колесные диски (хотя Motorola и сама выпускает микроконтроллеры, но вот не такие, какие нужны в этой нише).
На этом проповедь о пользе радиофицированных «тараканов» позвольте считать законченной. Перейдем к главному предмету разговора. Что же представляют собой микроконтроллеры со встроенным радиопередатчиком? На данный момент у фирмы Microchip их два: rfPIC12C509 и rfPIC12F675. Первый создан на основе давно известного и чрезвычайно популярного микроконтроллера PIC12C509, который нынче не встраивают разве что в зажигалки. Второй, как нетрудно догадаться, — на основе PIC12F675. В том и другом случае к микроконтроллеру добавили встроенный передатчик, соответственно увеличив число выводов. Причем передатчик электрически развязан с микроконтроллерной частью.
При всей тривиальности решения этот симбиоз не столь очевиден, как кажется. Каждый, кто хоть раз собирал простейший УКВ-передатчик, знает, сколько проблем доставляет паразитное самовозбуждение и уход частоты под влиянием самых разных факторов даже у кварцованных схем. До сих пор корпуса миниатюрных передатчиков представляли собой металлические коробочки высотой 3–5 мм. В нашем случае — стандартный пластиковый корпус типа SSOP (Super Small Outline Package) толщиной 1,7 мм. И никакого экранирования. Уверяю вас, здесь есть чему удивиться.
Вторая по значимости проблема радиочастотных узлов — наводки радиосигнала на остальные элементы схемы. Сколько приходится тратить конструкторских усилий на экранирование и развязки… А тут передатчик буквально в долях миллиметра от кристалла микроконтроллера. Разумеется, за такие вольности пришлось заплатить дорогой ценой — крошечной излучаемой мощностью передатчика. Microchip стыдливо не упоминает максимальную выходную мощность во всем понятных ваттах, приводя ее в децибел-метрах (dBm), но простейший расчет показывает, что в ваттах получается немного: 1,6 мВт. Впрочем, для своего целевого назначения мощности вполне достаточно, особенно если вспомнить о питании от трехвольтовой литиевой таблетки.
Скорость передачи данных по современным меркам никого не удивит. Максимальное значение составляет 40 кбит/с при амплитудной манипуляции. Для передачи критичных данных рекомендуется использовать частотную манипуляцию, но в этом случае потолок скорости вдвое ниже.
Из двух микроконтроллеров каждый интересен по-своему. Микросхема rfPIC12С509 примитивна в контроллерной части, которая тактируется с частотой не более 4 мегагерц, но для нее наработано несметное количество программных и схемных решений, и вдобавок она очень дешева. Этот кристалл был бы идеальным решением для радиолюбителей, если б не был однократно программируемым. Промышленным разработчикам однократность записи не помеха, они могут приобрести аппаратные эмуляторы. Если говорить о радиочастотной части, микросхема выпускается в различных вариантах, отличающихся допустимым типом модуляции. Частотный диапазон один, 310–480 мегагерц.
Второй братец, rfPIC12F675, заметно лучше. У него и тактовая частота вычислителя побольше (до 20 МГц), и встроенная память обширнее. Он снабжен полезными модулями: четырехканальным 10-разрядным АЦП, компаратором и двумя аппаратными масштабируемыми таймерами. Такой начинки вполне достаточно для построения на одном кристалле законченного устройства сбора данных с передачей их по радиоканалу. Это могут быть, например, значения температуры, давления и влажности воздуха за окном плюс контроль напряжения собственной питающей батарейки. Частотных поддиапазонов три, они находятся внутри диапазона 290–930 МГц. Каждому поддиапазону соответствует отдельный вариант кристалла, отличающийся буквенной маркировкой. В связи с малой мощностью излучения никаких разрешений на эксплуатацию устройств, собранных на основе rfPIC, не требуется (Но при серийном производстве соответствующее разрешение все-таки необходимо).
Запрограммировать микроконтроллеры rfPIC, равно как и прочие PIC’ов, не составляет труда. Но подход к процессу несколько своеобразный. Если программу для стандартного PC чаще всего можно на нем же написать и отладить, то в случае с микроконтроллерами это, как правило, невозможно (С умилением вспоминаю «учебные аппаратно-отладочные комплексы» времен своей учебы в Политехе, когда исполняемые коды вводились вручную с клавиатуры, а написание программы, ассемблирование и отладка производились на листке бумаги и в голове). Требуются по крайней мере средства разработки программ, работающие на PC и позволяющие написать текст на неком языке и перевести его в машинные коды. Еще желательно иметь программный эмулятор и/или аппаратный отладочный комплекс. Наличие и качество этих составляющих сильно влияет на продуктивность работы программиста, который из-за специфики железа вынужден быть еще и радиоинженером (Или наоборот: радиоинженер вынужден быть программистом? Наверное, как жизнь сложится). А если уж речь идет об устройстве, где микроконтроллер и радиопередатчик «в одном флаконе», то иметь отладочное устройство необходимо вдвойне. Благодаря ему можно порознь отладить программу и настроить радиочастотную и прочую обвязку.
Кроме всевозможных фирменных эмуляторов Microchip выпускает и наборы для разработки (Development Kit). Они, как правило, тематические, то есть ориентированы на определенный ряд изделий, стоят сравнительно недорого (обычно до $200) и позволяют небольшому предприятию досконально изучить новый кристалл и разработать изделия на его основе. В принципе, полный цикл разработки доступен даже специалисту-одиночке. Для разработчиков, желающих создавать изделия на основе rfPIC, выпускается фирменный набор rfPIC Development Kit 1 (Помочь мне в приобретении этого набора для тестирования охотно согласилась фирма «Фитон» (www.phyton.ru) в лице уважаемого Шоты Кобахидзе, за что я искренне благодарен и ему, и фирме).
А что в подарочке?
Радостного мига вскрытия почтовой упаковки я ждал больше месяца, поскольку заказывали образцы в США. Кроме горстки микросхем, нужных мне для бесчеловечных экспериментов в области радиотехники, своего часа дожидалась коробка с rfPIC Development Kit 1. Он построен на базе другого популярного набора — PICkit 1 FLASH Starter Kit — и помещается с ним в одной коробке. Базовый набор представляет собой плату программатора с отладочной схемой, снабженной минимумом навесных элементов для демонстрационных и отладочных нужд [1]. Сбоку добавлена пустая макетная плата, на которой уже есть линии для подключения питания и кварцевого резонатора. Макетная часть может быть использована в случае, если разводка основной платы для отладки разработанной конструкции не подходит.
Нас на этой плате интересует лишь разъем расширения. Именно в него при отладке вставляется плата передатчика [2] (для программирования кристалла передатчика) и плата приемника [3]. По умолчанию набор поставляется с записанными в память rfPIC12F675 учебными прошивками, позволяющими передавать по радиоканалу код нажатой кнопки и оцифрованное значение напряжения на выводе переменного резистора.
Первый эксперимент, проделанный с набором, я посвятил измерению реальной дальности стабильной передачи, ибо на этот счет Microchip хранит молчание. Попытки сорвать передачу данных в пределах квартиры ни к чему не привели. Светодиоды на отладочной плате исправно мигали в ответ на нажатие кнопки независимо от моих попыток зажать неэкранированную плату передатчика в руке, поднести его к батарее отопления или уйти в дальнюю комнату.
«Ладно…» — сказал я и поехал на полевые испытания. Выглядели они так. Возле калитки дачного участка на табурете лежала отладочная плата с приемником, рядом стояла дочка и махала рукой, когда загорались светодиоды. Я же отходил все дальше по дороге, пока светодиоды не перестали загораться. Результаты получились довольно неплохие. Пара приемник-передатчик на частоте 315 МГц исправно перегоняла данные на расстоянии до 85 метров. Затем связь резко обрывалась. Вторая пара, работающая на частоте 433 МГц, вытянула только 75 метров, и то на последних метрах работала неустойчиво.
Думается, в помещении типа лекционного зала полученные дальности можно сократить процентов на 20, а в панельном железобетонном доме и на все 50–70. Тем не менее, оставшихся 20–30 метров за глаза хватит для большинства бытовых нужд — например, для управления проектором и шторами в домашнем кинотеатре обширного новорусского коттеджа.
Передатчик мелкий, но приемник при нём…
Здесь самое время сказать, что в дополнение к радио/микроконтроллерам Microchip выпускает специальные микросхемы интегрального приемника. Увы, так уж повелось в радиотехнике, что при малой энергетике сигнала простой, но хороший приемник имеет схему в несколько раз более сложную, чем простой, но хороший передатчик (Сравните с детекторным приемом: киловаттный передатчик, но приемник из трех деталей. В случае малой энергетики излучаемого сигнала все наоборот). Поэтому микросхема приемника «обвязана» в несколько раз большим количеством дискретных элементов. Приемник может принимать сигнал с амплитудной модуляцией (обычный аналоговый сигнал — голос, музыка) и частотной или амплитудной манипуляцией (включено/выключено, передача двоичного кода). Кроме того, он снабжен встроенным индикатором уровня сигнала и компаратором.
В данном случае Microchip предлагает микросхему и набор стандартных схем включения, допуская возможность полностью самостоятельной разработки. Однако существуют приемники других производителей, например итальянской фирмы Telecontrolli. По отзывам тех, кто с ними работал, дальность передачи данных от rfPIC достигает 120 метров. Итальянские приемники построены по гибридной технологии с лазерной подгонкой частоты и представляют собой законченный, готовый к применению модуль. Конечно, это дело вкуса, но мне представляется, что во многих случаях такое решение более приемлемо, чем изготовление собственного приемника, благо цена «итальянца в сборе» не намного выше цены одиночной микрочиповской микросхемы. Лучше уж все силы при разработке бросить на отладку прошивки — распространение радиоволн от нас не зависит, зато баги и глюки программы победить можно.
Картофельный копирайт
Инструментарий для создания багов и последующей борьбы с ними у фирмы Microchip имеется серьезный. Во-первых, это интегрированная среда разработки MPLAB IDE — инструмент сам по себе интересный, но его анализ заслуживает отдельной публикации. Во-вторых, в наборе для разработки поставляется два диска со специальным софтом. Программа поддержки отладочной платы, позволяющая выполнять все функции программатора и управлять некоторыми режимами макета, устанавливается легко и быстро. Поскольку устройство общается с компьютером через USB, попутно у меня установился драйвер HID (Human Interface Device), которого раньше не было, причем под именем устройства для ручного ввода данных. Конечно, это далеко не устройство ввода типа графического планшета, но работает и ладно. Причем работает стабильно, да и в обращении оно удобно. Можно писать и ассемблировать программы при помощи пакета MPLAB IDE, тут же записывать полученную прошивку в микроконтроллер отладочного модуля и смотреть, как устройство функционирует. А что еще разработчику надобно? Наверное, чашку кофе и отдельный кабинет, но увы — эти компоненты среды разработки Microchip не предоставляет.
Открытость и непритязательность содержимого сопроводительных дисков лично у меня вызвала просто щенячий восторг. Посудите сами: софт поддержки программатора написан на Visual Basic и состоит из одного простого окна [4], что не мешает ему прекрасно работать. На этом же диске имеется исходный текст программы с комментариями, а также краткое описание протокола USB и его команд. Лицензионное соглашение оповещает вас, что весь софт предназначен для частного использования покупателем набора в учебных целях. Это понятно — вы можете изучать и модифицировать примеры прошивок микроконтроллера, даже переписать по своему усмотрению оболочку программатора или написать свою, лишь тиражировать и перепродавать диски нельзя. Но! На дисках вы найдете электрические схемы, деталировки, описания работы и даже Gerber-файлы всех печатных плат. Gerber-файлы — это, упрощенно говоря, стандартные описания платы для автоматизированной производственной линии. Следовательно, вы имеете возможность отдать этот диск на ближайший радиозавод или послать файлы по электронной почте в Тайвань и через энное время получить тираж необходимых печатных плат (можно даже в сборе).
Не могу избавиться от подозрения, что если сделать не просто пять-десять плат программатора для нужд своего малого предприятия, а несколько сотен (тысяч) на продажу и снабдить их портированной, например, на язык С++ оболочкой, то возмездие от Microchip вряд ли последует, поскольку копирайт фигурирует только в файлах описаний и без явного указания предмета копирайта, а в технологических файлах для станка с ЧПУ копирайту просто нет места. Более того, думаю, вам будут даже благодарны: распространение отладочных наборов является хорошим маркетинговым шагом, стимулирующим разработчиков переходить на продукцию Microchip. Ситуация с копирайтом в данном случае напоминает оригинальный метод распространения картофеля на Руси. Когда крестьян попытались заставить приобретать и сажать картофель, те решительно отказались. Тогда картофелем засадили казенные поля и к моменту созревания урожая поставили по периметру вооруженных солдат, которым дали тайный приказ «не замечать» попыток кражи. Картофель с полей был успешно разворован и через пару лет произрастал во всех окрестных деревнях. Такая известная компания, как Microchip, к тому же исконно американская, с соответствующим менталитетом, не может позволить себе продавать наборы разработчика за 100–200 долларов и в то же время открыто разрешать их тиражирование. Но если кто-то, особенно в третьих странах (Все догадались, в каких?), решит добровольно рекламировать Microchip, имея с этого небольшой гешефт, можно его «не заметить», сославшись на пробелы лицензионного соглашения. (На всякий случай подчеркиваю: это мое личное предположение.)
Проблема с копирайтом, между прочим, может возникнуть у совершенно неожиданного персонажа: компании AMD. Аббревиатура PIC означает Peripheral Interface Controller — контроллер обслуживания периферийных устройств, права на нее зарегистрированы и принадлежат Microchip. Под этой маркой микрочиповские изделия давно известны любому радиоинженеру. Но этой же аббревиатурой AMD теперь обозначает свой бюджетный компьютер Personal Internet Communicator (см. «КТ» ##565, 566). Вовсе не обязательно, что на этой почве между AMD и Microchip случится конфликт, но официально использовать сокращение PIC в качестве торговой марки компании AMD вряд ли позволят.
На этой злорадно-оптимистичной ноте позвольте прерваться и подвести итог. К сожалению, ничего не могу придумать лучше фразы «Чипы всякие нужны, чипы всякие важны» (наверное, в детстве я слишком часто читал Сергея Михалкова). Практически одновременно с выпуском серии rfPIC был запущен в производство аналогичный гибрид, микросхема rfHCS, представляющая собой аппаратный кодер данных на основе патентованного генератора прыгающего кода. В нее тоже встроен микропередатчик. Можно не сомневаться, что для обеих серий найдется свой потребитель. Но будет ли спрос достаточно велик, чтобы через несколько лет производство не свернули? Думаю, да. Потребность в простых устройствах была, есть и будет. Значит, будет спрос и на решения простых задач.