Чип с набором инструкций такого рода имеет множество специализированных операций, называется CISC и расшифровывается как Complex Instruction Set Computer.
Эти чипы имеют высокую стоимость проектирования и реализации, а также обладают большими размерами. Со временем стало ясно, что эти сложные инструкции используются редко и что порой быстрее выполнять ту же задачу в несколько этапов с помощью основных команд. По этой причине были разработаны новые чипы, в которых набор команд был сведен к минимуму, они называются RISC (Reduced Instruction Set Computer). Наиболее известными RISC-процессорами являются PIC, AVR, ARM или SPARC. ARM или Advanced RISC Machine, которые широко используются в производстве телефонов, планшетных ПК и мобильных устройств, так как обладают низким энергопотреблением и отличной производительностью.
В 1990-х компании ATMEL и Microchip представили первую «электрически» перепрограммируемую интегральную схему. До этого для перепрограммирования микроконтроллера необходимо было подвергнуть его воздействию УФ-лучей, а затем использовать специальную программирующую схему, как правило, очень дорогую. Это нововведение сочеталось с возможностью использования языков программирования высокого уровня, таких как С, вместо машинного кода, способствовало распространению микроконтроллеров. Современные микроконтроллеры имеют возможность хранить небольшую программу-загрузчик, которая располагается в защищенной области памяти, так что она не может быть случайно перезаписана. Загрузчик, является особой программой, которую также можно записать на флеш-память. Таким образом, вам не нужен особо сложный программатор, но простой последовательный вентиль, который передает написанное нами программное обеспечение от нашего компьютера на микросхему. Схемы для программирования находятся внутри самого микроконтроллера, а загрузчик, который предназначен для написания нашей программы, находится во внутренней памяти.
Использование микропроцессоров
Перед началом проекта с использованием микроконтроллера мы должны выбрать наиболее подходящую модель. Выбор не такой простой: существуют десятки производителей, и каждый из них выпускает сотни продуктов.
Оценим, сколько входов и выходов нам необходимо, мощность, скорость и доступность памяти.
Подготовим рабочую зону, установив драйверы, комплекты разработки программного обеспечения и компиляторов. Большинство продуктов доступны только для Windows, и это может повлиять на наш выбор. В дополнение к официальной среде разработки иногда можно найти подходящие бесплатные альтернативы.
Последовательность операций, которую необходимо соблюдать при программировании микроконтроллера, проста:
• написать программу на С или другом языке;
• составить программу в понятном для микроконтроллера виде;
• перенести скомпилированную программу на микрочип.
Программы для микроконтроллеров также называются прошивками и обычно написаны на языке С. Программа, написанная в текстовом файле, читается программой под названием компилятор, который преобразует его в последовательность битов понятных для микроконтроллера.
Прошивка передается во флеш-память, находящуюся внутри микроконтроллера, с помощью программатора. Флеш-память подобна USB-флешке или карте памяти SD, но находится внутри микрочипа.
Каждый производитель чипов в дополнение к продаже интегральных схем также продает набор средств разработки, содержащий программатор, программное обеспечение и макетные платы, которые являются электронными платами с установленным конкретным микроконтроллером. Макетные платы оснащены входными и выходными разъемами, USB-портами, разъемами питания, светодиодами, кнопками и дисплеями и всем оборудованием, необходимым для тестирования чипа без необходимости конструирования и сборки схем. Отличный сайт, где вы можете найти множество материалов в свободном доступе, программаторы и аксессуары, это Olimex (http://www.olimex.com). На Olimex вы также можете найти инструкции по установке среды для программирования с открытым доступом, которая использует популярную интегрированную среду разработки (IDE) Eclipse.
Наиболее распространенными микроконтроллерами являются AVR компании ATMEL
[5]. Семейство AVR предлагает множество возможностей, от небольшого чипа с 6 выводами до ATmega с 50 входами/выходами. Для программирования AVR-чипа используются специальные USB-программаторы, или вы можете сделать программатор на основе «Ардуино».
Другое широко распространенное семейство микроконтроллеров – это PIC компании Microchip. Для программирования PIC вы можете использовать программатор pickit3 и IDE Mplab. Компилятор компании Microchip требует лицензии. Мы можем использовать его бесплатно, но при этом оптимизатор будет выключен и прошивка будет иметь больший размер и занимать больше памяти.
Производители также предлагают микроконтроллеры с ARM-технологией. Для программирования чипа ARM мы можем использовать некоторые решения с открытым исходным кодом или программатор ULINK2 компании Keil, которая производит аппаратные и программные средства, а также макетные платы для основных производителей ARM-чипов.
Рис. 9.1. Программатор для PIC Pickit3, ULink для ARM и самодельный FABIsp
При использовании этих комплектов и макетных плат вам требуется немного терпения, потому что некоторые моменты могут быть сложными для понимания. Код написан на языке С, это непростой язык, поэтому среда разработки может быть достаточно сложной: множество функций и возможностей не всегда понятны. Вам потребуется время, чтобы разобраться и собрать информацию, читая руководства и справочники, и в этот момент ваше увлечение может превратиться в работу.
«Ардуино» (т. е. программно-аппаратная платформа) проложила нам путь, показав, что вещи могут быть очень простыми. Чтобы использовать «Ардуино», достаточно установить текстовый редактор, который содержит компилятор и программу для перевода информации к «Ардуино». Внешнийпрограмматор не нужен. «Ардуино» использует небольшую программу, установленную в качестве загрузчика внутри микросхемы. Плата подключается непосредственно к компьютеру с помощью обычного USB-кабеля. Идея «Ардуино» – простая, но очень мощная с точки зрения удобства и упрощения системы, которая облегчила распространение этих комплектов даже среди неспециалистов в электронике и программировании.
Комплект для разработки
Давайте рассмотрим некоторые из самых известных платформ для разработки.
«Ардуино»
«Ардуино» является одной из самых популярных плат с микроконтроллером. Она была создана в Италии, в городе Иврея в 2005 году в Interaction Design Institute, который несколько лет ранее уже имел опыт работы с другой платформой, называемой Wiring (аналогичная платформа, но, возможно, немного впереди своего времени и намного дороже). Плата «Ардуино UNO» имеет 14 цифровых выводов, которые могут быть сконфигурированы как входы или выходы, 6 аналоговых входов и несколько выходов, используемых для генерирования ШИМ-сигналов. Плата выпускалась в разных версиях, первая модель называлась Diecimila, за ней последовала модель «2009», а затем UNO с чипом ATmega328 производства ATMEL.