1. Общие сведения о системах с применением микропроцессоров, методы и технологии реализации программной памяти.

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

Классифицировать микропроцессоры можно по различным признакам (разрядность, быстродействие, система команд, архитектура и т.д.). С учетом области применения, микропроцессоры можно условно разделить на 3 большие группы: универсальные микропроцессоры, микроконтроллеры, сигнальные процессоры.

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

Под микроконтроллером обычно понимают БИС, содержащую, на кристалле, кроме собственно процессора, еще и блоки памяти программ и данных, различные периферийные устройства: АЦП, ЦАП, последовательные и параллельные порты, таймеры, счетчики, и т.д. Микроконтроллеры в основном ориентированы на применение в так называемых встроенных системах (embedded systems), к которым можно отнести большинство изделий радиоэлектроники. Встроенные системы характеризует автономность работы, часто не требуется вмешательство человека в процесс работы изделия. Пример встроенной системы: контроллер управления зажиганием и подачей топлива в автомобиле. Большое количество разнообразных периферийных устройств на кристалле, позволяет существенно улучшить характеристики изделия: снизить стоимость, уменьшить габариты, повысить надежность и т.д..

Сигнальные процессоры (DSPdigital signal processing), это специализированные микропроцессоры, архитектура и система  команд которых, ориентированы на реализацию алгоритмов цифровой обработки сигналов, например алгоритма быстрого преобразования Фурье (БПФ). Область применения данных БИС также весьма широка: от аудиоаппаратуры до радиолокационных станций.

Рассмотрим технологию проектирования изделия с использованием микроконтроллера, как наиболее часто встречающейся задачи.

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

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

-      масочная память (данные заносятся при изготовлении микросхемы);

-      однократно программируемая EPROM память (программу можно занести только один раз, без возможности перепрограммирования, требуется специальное устройство – программатор, с возможностью формирования повышенного напряжения программирования, обычно 12В);

-      перепрограммируемая EPROM память (требуется специальное устройство – программатор, с возможностью формирования повышенного напряжения программирования, обычно 12В, стирание осуществляется УФ лучами);

-      перепрограммируемая FLASH память (программирование и стирание осуществляется при 5В, при наличии встроенных в микроконтроллер блоков, управляющих программированием, программатор не нужен).

Наибольшую популярность в настоящее время приобрели микроконтроллеры с FLASH (flashвспышка) памятью. Это обусловлено возможностью быстрого перепрограммирования FLASH памяти с количеством циклов записи-стирания до 1 млн., что очень удобно при отладке программного обеспечения микроконтроллера, в связи с необходимостью многократной коррекции программы в процессе отладки. В связи с постоянным совершенствованием элементов памяти на основе FLASH технологии, стоимость микроконтроллеров (МК) с FLASH памятью  постоянно снижается и в настоящее время не отличается или незначительно отличается, например, от однократно программируемых МК.

БИС микроконтроллеров производят многие фирмы, наиболее известные из них: Motorola, Intel, Atmel, Mitsubishi, Sumsung, Fudjitsu, Philips, Microchip, Infineon. Выбор того или иного МК определяется многими факторами, прежде всего совокупностью технических характеристик и наличием необходимых периферийных устройств на кристалле, далее по важности идет цена МК, наличие и надежность российских поставщиков, и, наконец, доступность средств разработки программного обеспечения. Исходя из совокупности перечисленных факторов, в России в настоящее время популярны МК фирм Atmel, Microchip,  Motorola, Fhilips и др.

3. Программные и технические средства разработки систем с МК.

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

Отметим, что среду разработки, содержащую компилятор с языка Ассемблер  и отладчик, обычно свободно распространяют фирмы изготовители для своих линеек МК. Среды разработки, содержащие компилятор с языка Си, менее доступны и официально распространяются только коммерческие версии (хотя некоторые фирмы изготовители поставляют так же и Си - компиляторы). На разработке средств проектирования программного обеспечения (ПО) для МК специализируется много фирм, наиболее известные в России: IAR Systems, Hi-Tech, Image Craft, Keil. Из отечественных фирм известна московская фирма Фитон, специализирующаяся как, на пакетах программ проектирования для некоторых семейств МК, так и на технических средствах разработки.

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

Например, для большого количества разнообразных МК, выпускаемых различными фирмами, в основе которых лежит ядро популярного микроконтроллера i8051, фирмы Intel, можно воспользоваться доступной средой проектирования IAR Imbedded Workbench 2.31. Управляющая оболочка позволяет подключать компиляторы разных версий этой же фирмы.

Файл программы может быть загружен в память МК различными способами, в зависимости от типа МК (возможные варианты загрузки памяти программ указываются в технической документации):

1. МК программируется, путем установки микросхемы в программатор, который получает данные от ПЭВМ и выполняет некоторую, оговоренную в технической документации на МК последовательность действий для программирования (стирания) данных в МК. Если МК использует внешнюю память программ, то соответствующие микросхемы памяти программируются так же на программаторе.

2. Многие современные МК можно программировать через последовательный интерфейс SPI (serial programming interface). В этом случае программатор может и не потребоваться, так как все необходимые сигналы для управления и передачи данных можно сформировать непосредственно либо принтерным, либо RS232 портом ПЭВМ.

3. Еще одним вариантом загрузки является загрузка через JTAG  интерфейс. Этот интерфейс обеспечивает не только программирование памяти МК (в том числе и внешней), но и дает большие возможности для отладки ПО МК, многие из новейших МК теперь оснащаются средствами, обеспечивающими поддержку технологии JTAG. Для работы через данный интерфейс обычно требуется плата сопряжения с компьютером.

4. Ряд МК имеют возможность программирования внутренней или внешней памяти программ через встроенный последовательный порт, который подключается к RS232 порту ПЭВМ.

Из технических средств для отладки ПО, кроме упомянутой технологии JTAG, применятся так называемые внутрисхемные эмуляторы (ВСЭ). Это устройство выполнено либо на более мощном процессоре, чем тот, для которого оно предназначено, либо на ПЛИС. Задачей ВСЭ является полная эмуляция работы МК и обмен отладочной информацией с ПЭВМ. ВСЭ подключается непосредственно к контактам на печатной плате вместо МК. ВСЭ являются наиболее дорогими устройствами (от 1000$), но дают самые богатые возможности по отладке программы. ВСЭ так же разрабатываются только для определенных групп МК (с единой архитектурой и системой команд).

4. Общие сведения о программируемых логических интегральных схемах (ПЛИС).

Назначение ПЛИС: дать возможность разработчику, реализовать в предлагаемой микросхеме ту или иную требуемую функцию. В зависимости от сложности ПЛИС, реализуемые функции могут варьироваться от довольно простых (соответствующих одной или нескольким микросхемам низкого уровня интеграции), до весьма сложных устройств, например, аппаратно реализующих алгоритмы цифровой обработки сигналов (ЦОС) и другие сложные задачи обработки данных и управления.

Приведем краткую классификацию ПЛИС по структурному признаку, проводимая ниже классификация предполагает некоторое знакомство с архитектурой самых простых программируемых логических матриц (ПЛМ) на основе программируемых матриц И и ИЛИ.

Большинство современных ПЛИС небольшой степени интеграции построены по архитектуре программируемой матричной логики (PALProgrammable Array Logic). Это ПЛИС, имеющие программируемую матрицу ”И” и фиксированную матрицу “ИЛИ”. В качестве примеров можно привести отечественные ИС КМ1556ХП4, ХП6, ХП8, ХЛ8, ранние разработки (середина–конец 1980-х годов) ПЛИС фирм INTEL, ALTERA, AMD, LATTICE и др.

 Следующий традиционный тип ПЛИС — программируемая макрологика, Programmable Logic Devices (PLD). Они содержат единственную программируемую матрицу “И-НЕ” или “ИЛИ-НЕ”, но за счёт многочисленных инверсных обратных связей способны формировать сложные логические функции.

Вышеперечисленные архитектуры ПЛИС содержат небольшое число ячеек, к настоящему времени морально устарели и применяются для реализации относительно простых устройств, для которых не существует готовых ИС средней степени интеграции. Естественно, для реализации алгоритмов ЦОС они непригодны.

PLD имеют архитектуру, весьма удобную для реализации цифровых автоматов. Развитие этой архитектуры - программируемые коммутируемые матричные блоки, Complex Programmable Logic Devices (CPLD) - это ПЛИС, содержащие несколько матричных логических блоков (МЛБ), объединённых коммутационной матрицей. Каждый МЛБ представляет собой структуру типа PLD, то есть программируемую матрицу “И”, фиксированную матрицу “ИЛИ” и макроячейки.  CPLD, как правило, имеют высокую степень интеграции (до 10000 эквивалентных вентилей, до 256 макроячеек). К этому классу относятся ПЛИС семейства MAX5000 и MAX7000 фирмы ALTERA, схемы XC7000 и XC9500 фирмы XILINX, а также большое число микросхем других производителей (Atmel, Vantis, Lucent и др.).

Другой тип архитектуры ПЛИС - программируемые вентильные матрицы, Field Programmable Gate Array (FPGA), состоящие из логических блоков и коммутирующих путей - программируемых матриц соединений. Логические блоки таких ПЛИС состоят из одного или нескольких относительно простых логических элементов, в основе которых лежит таблица, программируемый мультиплексор, D-триггер, а также цепи управления. Таких простых элементов может быть достаточно много, например, у современных ПЛИС ёмкостью до 1 млн. вентилей число логических элементов достигает нескольких десятков тысяч. За счёт такого большого числа логических элементов они содержат значительное число триггеров, а также некоторые семейства ПЛИС имеют встроенные реконфигурируемые модули памяти, что делает ПЛИС данной архитектуры весьма удобным средством реализации алгоритмов цифровой обработки сигналов, основными операциями в которых являются перемножение, умножение на константу, суммирование и задержка сигнала. Вместе с тем, возможности комбинационной части таких ПЛИС ограничены, поэтому совместно с FPGA применяют  CPLD для реализации управляющих и интерфейсных схем. К FPGA классу относятся ПЛИС XC2000, XC3000, XC4000, Spartan, Virtex фирмы XILINX; ACT1, ACT2 фирмы ACTEL, а также семейства FLEX8000 фирмы ALTERA, некоторые ПЛИС Atmel и Vantis.

Дальнейшее развитие архитектур идёт по пути создания комбинированных архитектур, сочетающих удобство реализации алгоритмов ЦОС на базе таблиц перекодировок и реконфигурируемых модулей памяти, характерных для FPGA-структур и многоуровневых ПЛИС с удобством реализации цифровых автоматов на CPLD-архитектурах (ПЛИС APEX20K фирмы Altera).

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

5. Программные средства разработки систем на ПЛИС, этапы реализации проекта.

Для создания управляющих файлов для программирования ПЛИС можно использовать некоторые из систем схемотехнического проектирования общего назначения, например OrCAD 9.2 фирмы Cadence. Однако ведущие фирмы производители ПЛИС Altera, Xilinx, Actel предлагают свои собственные среды проектирования, причем некоторые их них распространяются свободно, например система проектирования MAX+PLUS II фирмы Altera.

Процедуру разработки нового проекта от концепции до завершения можно упрощённо представить следующим образом:

1. Создание требуемой структуры проекта можно выполнить следующим образом:

-        с помощью её описания в схемном редакторе в виде классического представления на основе стандартных логических элементов и устройств;

-        описания структуры на одном из языков HDL, например, на языке VHDL или Verilog;

-        с помощью сигнального редактора.

2. Назначение семейства ПЛИС для проекта;

3. Компиляция созданного файла описания структуры, в результате которой получаем файл для программирования, выбранной ПЛИС.

4. В случае успешной компиляции возможен временной анализ.

5. Программирование ПЛИС, с помощью несложных устройств сопряжения с ПЭВМ.

6. Проверка работоспособности устройства, в случае ошибок, корректируем структуру и возвращаемся к пункту 3.

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

 

Сайт управляется системой uCoz