PIC - микропроцессоры |
| Цифровые устройства - Микропроцессоры | |
| 19.10.2009 07:02 | |
|
Термин «микроконтроллер» обычно ассоциируется с микросхемой, имеющей 40 или 28 выводов, а также многочисленные порты ввода/ вывода. Предполагается, что подобная микросхема не всегда достаточно быстродействующая, требующая к тому же дорогостоящих сиcтем разработки - словом, далеко не идеал для ряда широко распространенных приложений, в которых необходимо объединить малые габариты, требуемые параметры и низкую стоимость. Наиболее популярны на сегодняшний день микроконтроллеры семейства PIC16Cxx компании Microchip. Простота и доступность этого радиоэлемента, способного конкурировать c более совершенными изделиями, вызвана тем, что подобные микроконтроллеры снабжены ограниченным количеством линий ввода/вывода и размещаются в пластмассовом корпусе ОП с малым числом выводов. Они способны обходиться без кварцевого резонатора, вместо которого используются керамические резонаторы или RC-цепи, и легко программируются. Такие радиоэлементы можно найти в мобильных телефонах, радиоприемниках и магнитолах, системах контроля доступа и кодированного телеуправления, различных датчиках. Они встречаются везде, начиная от автомобилей и электробытовых приборов и заканчивая «конструкторами» - наборами деталей, в которых они могут легко заменить обычные микросхемы. (Если стереть ' маркировку микроконтроллера, будет обеспечена и дополнительная защита от незаконного повторения.) Основные области их применения - это все приложения, которые будут слишком сложными, дорогими или громоздкими, если разрабатывать их с использованием обычных цифровых схем или микроконтроллера. Таким образом, переход к микроконтроллеру ОП позволяет значительно усовершенствовать новые приложения и улучшить технические параметры целого ряда уже существующих товаров. Микроконтроллеры семейства PIC16Cxx сочетают в себе свойства традиционной цифровой техники, программируемых схем и микропроцессоров. Ими пользуются всякий раз, когда с их помощью можно выпустить более высокопроизводительный и компактный продукт, причем быстрее и за меньшую цену. Семейство PIC16Cxx основано па двух базовых аппаратных конфигурациях с 12 или с 20 линиями ввода/вывода соответственно. Р1С16С54 - наиболее простой прибор, размещенный в корпусе DIP или SOIC с 18 выводами. Он имеет 12 линий ввода/вывода, ОЗУ емкостью 32 байта и СППЗУ емкостью 512x12 бит (что уже является оригинальным решением). Совместимый с ним на уровне выводов микроконтроллер P1C16C56 оснащен СППЗУ с удвоенным объемом памяти. Размещенный в корпусе DIP или SOIC с 28 выводами, микроконтроллер PIC16C55 располагает 20 линиями I/O, 32-байтным ОЗУ и СППЗУ емкостью 512x12 бит. Его вариант PIC1GC57 имеет СППЗУ с увеличенным в четыре раза объемом памяти. PIC16C71 - более новый и заметно улучшенный микроконтроллер. В частности, здесь добавлены аналоговые входы (встроен АЦП) и вместо 12-разрядных используются 14-разрядные команды, которые записываются в 1024 ячейки ПЗУ. Появившийся недавно, но уже очень распространенный PIC16C84 изготовлен по технологии ЭСППЗУ. Несмотря на то что он размещен в пластмассовом корпусе, его можно моментально «очистить» и тотчас же перепрограммировать. Часть его энергонезависимой памяти доступна для данных, которые не должны теряться при отключении питания. Наиболее распространенное исполнение версий с СППЗУ - пластмассовый корпус (ОП - ОТР), но существуют микросхемы и в керамическом корпусе с кварцевым окошком (УФ СППЗУ - UVPROM), используемые в процессе разработки и отладки. Есть и возможность программирования на производстве (quick turn production, QTP -быстрый запуск в производство), что гораздо выгоднее изготовления масочных ПЗУ. Переход от прототипа к серии происходит быстрее и без значительных расходов, а возможные изменения программы вызовут минимальные затруднения. Все эти радиоэлементы выполнены по технологии КМОП и питаются от напряжения 5 или 3 В (версии с пониженным потреблением энергии), ток потребления от 15 мкА до 2 мА в зависимости от тактовой частоты. Разрешается включить дежурный режим (standby), причем ток составит менее 3 мкА. Кроме того, они выпускаются с различными вариантами тактовых генераторов (0-20 МГц). Эти радиоэлементы приспособлены для работы в системах с автономным питанием, в портативных или даже карманных устройствах. Все микроконтроллеры PIC располагают встроенным счетчиком-таймером, вход синхронизации которого подключен к специально предназначенному выводу, но может работать и от общего тактового генератора. Наконец, допустимо использовать программируемый таймер аварийного сброса - watch dog. Основная особенность PIC - их RISC-архитектура (Reduced Instruction Set Computer - ограниченная система команд компьютера), которая по отношению к классической конфигурации CISC имеет следующие преимущества: • более компактный код (вдвое); • возросшее быстродействие (вчетверо); • ускорение процесса разработки (приблизительно 30%). Вместо 50-100 команд по несколько байтов и нескольких рабочих циклов обычных микроконтроллеров язык Р1С16С5х ограничивается 33 командами, исполняемыми за один рабочий цикл (за исключением команд условных переходов, использующих два периода) и занимающими в памяти программ (12 разрядов вместо 8) только одно слово. Микроконтроллер PIC16C71 имеет 35 команд. Преимущество рассматриваемых микроконтроллеров особенно заметно, поскольку многие программисты практически не используют наиболее сложные команды CISC-процессоров из-за того, что они слишком различаются у разных процессоров. Конечно, применяется и программное обеспечение, написанное на языке высокого уровня (С), а затем откомпилированное, но в этом случае код получается более громоздким и выполняется медленнее, чем необходимо. С набором команд, ограниченным только самыми главными операциями, становится довольно просто писать непосредственно на ассемблере компактные и эффективные программы, причем делать это быстро. Этот принцип поддерживается особенной архитектурой, называемой Гарвардской, в которой две разные шины выделены для данных и для команд, что полностью устраняет узкое место в архитектурах CISC-машин. Параллельно с этим используется система, именуемая Pipe-Line (конвейер), что позволяет выполнять команду одновременно с подготовкой следующей, извлекая максимум из каждого тактового периода. Рабочие показатели достигают 5 MIPS (миллионы команд в секунду), что делает возможным оригинальный подход к определенным задачам, которые выгодно обрабатывать в реальном масштабе времени. При использовании микроконтроллеров PIC допустимо, например, заменять громоздкие таблицы данных алгоритмами быстрых вычислений практически так же, как это делалось бы в устройствах на DSP (Digital Signal Processor - цифровой сигнальный процессор). Микроконтроллеры PIC вполне оправдали существование специфических средств разработки, которые можно приобрести по весьма низким ценам. Коммерческий успех дешевых и удобных в программировании микроконтроллеров привел к тому, что компания Motorola, в частности, решила бесплатно предоставить своим клиентам необходимое программное обеспечение для сборки собственных простых программаторов; компания SGS-Thomson предпочла выпустить в продажу недорогой полный «комплект разработчика». Фирма Microchip проводит политику, которая удачно объединяет эти два подхода: комплект Starter Kit, который называется PICSTART-16B, можно приобрести по весьма разумной цене, особенно учитывая его содержимое: специальный программатор, подключаемый к ПК (см. рис. 4.3), программное обеспечение (ассемблер, симулятор и программатор), а также полный комплект документации и несколько корпусов микроконтроллеров PIC, стираемых ультрафиолетовыми лучами. Разнообразное и практически эквивалентное программное обеспечение можно загрузить и бесплатно (с BBS или из Internet), К тому же алгоритмы программирования были в конце концов опубликованы. В главе 5 мы покажем, до какой степени простой может оказаться, например, сборка программатора для микроконтроллера PIC16C84. ПО, управляющее программатором Piсstart, удобно и просто в использовании благодаря «оконной» структуре, напоминающей Windows, достаточно быстрой и не занимающей много места в памяти. Оно позволяет загружать полученный после работы программы-ассемблера шестнадцатеричный файл, редактировать его в случае необходимости, а затем «зашить» в PIC. Понятно, что предварительно надо подготовить так называемые биты конфигурации: бит таймера автозагрузки (watch clog), защиты от копирования, типа тактового генератора, идентификатора. После завершения программирования выполняется контрольное считывание, но можно считывать или проверять содержимое памяти PIC в любое время и контролировать чистоту памяти нового или стертого микроконтроллера. Что же касается программы-ассемблера и симулятора, то они на первый взгляд ничем особенным не отличаются. Функционируя в режиме командной строки, они напоминают о том времени, когда вся работа происходила на телетайпах. Однако при более внимательном рассмотрении становится понятно, что это мощные средства, не уступающие продуктам, цена которых в пять-десять раз превышает цену всего этого комплекта. Поэтому можно порекомендовать пользователю хорошо изучить определенный набор сокращенных команд (если только он не предпочитает постоянно пользоваться системой справочной информации) вместо того, чтобы щелкать кнопками мыши. Вероятно, именно этим и отличаются настоящие программисты-профессионалы От пользователей. Симулятор позволяет выполнить искусственный прогон программы, предварительно обработанной ассемблером, в несколько десятков или сотен раз медленнее, чем такое происходило бы в реальности. В сочетании с возможностью расставлять точки останова и выводить на экран содержимое различных регистров микроконтроллера это позволяет создавать программы для работы в режиме реального времени с точностью почти до одного тактового периода.
|