Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
686.docx
Скачиваний:
85
Добавлен:
24.04.2019
Размер:
6.68 Mб
Скачать

2 Технические средства встраиваемых систем

В

данной

главе

рассматривается

устройство

таких

компонентов

встраиваемых вычислительных систем как вычислительный блок, устройства

ввода-вывода, сетевой блок. Приводятся примеры конкретных реализаций.

2.1 Элементная база микропроцессорной техники для

встраиваемых применений

2.1.1

Процессор

Процессор – элемент вычислительной системы, устройство для выборки

команд из памяти и выполнения действий, предписанных командами;

устройство, осуществляющее процесс обработки информации. В ряде случаев

процессором также называют программные средства, предназначенные для

обработки информации (например, текстовый процессор, языковой процессор).

Процессоры (в смысле устройств) можно классифицировать по разным

критериям,

например,

по

способу

организации

функционирования

(конвейерные,

матричные),

характеру

обрабатываемой информации,

по

назначению и т.д.

Процессор

характеризуется

размером

и

количеством

адресных

пространств, шириной внутренней и внешней шины данных, системой команд,

способом

обработки

прерываний,

наличием

адресного

селектора

для

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

питанием. В высокопроизводительных ядрах могут присутствовать такие

механизмы как конвейеры, кэш-память, устройство предсказания ветвлений,

несколько АЛУ [6].

Программируемость процессора – не обязательное свойство.

Процессоры могут быть:

1.

2.

3.

4.

Непрограммируемые, не программно реализованные;

Программируемые и программно реализованные;

Непрограммируемые, но программно реализованные;

Программируемые, но не программно реализованные.

Программируемый процессор – процессор, у которого есть система

команд. Его можно настроить на решение той или иной задачи.

Функции непрограммируемого процессора раз и навсегда зафиксированы.

Процессоры могут строиться как аппаратные блоки или по принципу

программно-управляемых устройств.

2.1.2

Классификация процессоров

Процессоры

целесообразно

классифицировать

по

функциональной

направленности, функциональной гибкости, способу реализации [6]. В первом

41

случае говорят об универсальных (общего назначения) и специализированных

(ПВВ, графические, математические, обработки сигналов) процессорах. Первые

призваны решать различные задачи и имеют широкую область применения,

тогда

как

вторые

ориентированы

на

решение

узкого

круга

задач.

Универсальные процессоры характеризуются: способностью обрабатывать

большое число команд; системой команд (СК): если система команд позволяет

решить любую задачу, то процессор универсальный. Нужно анализировать

систему команд на ее сбалансированность, формы данных, способы адресации.

Хотя универсальность процессора – вопрос относительный.

Также можно выделить центральные, периферийные и сервисные

процессоры.

Центральный

процессор

осуществляет

общее

управление

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

с другими элементами ВС, а также управляет работой элементов ВС.

Периферийный процессор выполняет лишь часть функций вычислительной

системы: управляет и обменивается данными с устройствами ввода-вывода

(процессор ввода-вывода), может участвовать в вычислительном процессе

(обрабатывать часть данных). Сервисный (обслуживающий) процессор обычно

не участвует в основном вычислительном процессе и выполняет функции

контроля и обслуживания: выполняет инструментальные функции (доставка и

отладка программного обеспечения, настройка оборудования), осуществляет

контроль правильности функционирования системы, измерение параметров

окружающей среды (температура, влажность), напряжения питания и т.п. В ВС

один и тот же процессор может выполнять функции как периферийного, так и

сервисного процессора.

Степень

функциональной

гибкости,

или

возможность

настройки

процессора на выполнение конкретной функции из допустимого множества в

каждый момент времени, определяется возможностью и оперативностью его

программирования. Если в процессе эксплуатации функция может быть

перенастроена,

то

такой

процессор

называется

программируемым

(programmable processor),

в

противном

случае

мы

имеем

дело

с

непрограммируемым, "жестким" устройством (dedicated processor – близкий, но

не точный термин, другой возможный вариант – hardware accelerator).

Сложность механизма программного управления может изменяться в очень

широких пределах.

Рассмотрим пример. Промышленность выпускает большое число тактовых

генераторов, часть из которых может формировать различные наборы частот в

зависимости от состояния управляющих входов или записанных в специальные

запоминающие ячейки кодов коэффициентов деления. Если пользователю в

составе системной платы ПК генератор попадает с жестко запаянными

значениями на входах (или с запрограммированными в ячейках кодами без

интерфейса для их изменения), то такое устройство следует считать

специализированным ("жестким") процессором. Если же на вашей плате

установлены переключатели для задания частоты, то мы имеем дело с

42

программируемым устройством. Конечно, обычно тактовый генератор, пускай

и программируемый, процессором не называют. Но разве кто-то может

однозначно провести границу функциональной сложности в этом вопросе?

По способу реализации процессоры, прежде всего, следует делить на

аппаратно-реализованные

(или

аппаратные, hardware)

и

программно-

реализованные (соответственно, программные, software). Каждая из указанных

групп реализаций, в свою очередь, имеет множество вариантов. Вполне

пригодным

для

практического

использования

критерием

программной

реализации процессора следует считать наличие в его составе хотя бы одной

программно-реализованной части.

Как на практике классифицировать способ реализации устройства по

аппаратно-программному признаку? Довольно часто программную реализацию

связывают с использованием принципа программного управления при

проектировании устройства. Также широко распространено мнение об

обязательном

свойстве

последовательной

интерпретации

управляющей

информации

устройством

для

отнесения

его

к

разряду

программно-

реализованных.

Общим критерием аппаратной или программной реализации устройства

(функции) предлагается считать степень избыточности присутствующей в

устройстве регулярной структуры (блока постоянной или оперативной памяти,

логической матрицы, операционных элементов и т.д.). Из данного определения

следует, что не только организация управляющей части устройства определяет

способ

его

реализации.

Например,

табличный

функциональный

преобразователь также может быть отнесен к категории программных

устройств. Явным случаем аппаратной реализации является отсутствие в

устройстве регулярных структур вообще (нерегулярная "жесткая" логика, или

по-другому, "клубок схем"). На практике сегодня, в силу ряда причин,

устройство создают на основе избыточных регулярных структур, а затем

фиксируют его в получившемся виде, либо выполняют еще один шаг – удаляют

неиспользованные элементы регулярной структуры (целевая компиляция,

кремниевая компиляция и так далее в соответствии с контекстом). В первом

случае мы будем иметь дело с программно-реализованным устройством, во

втором случае программно-реализованная версия на этапе проектирования

заменяется аппаратной реализацией ("жесткая логика").

Таким

образом,

можно

говорить

о

четырех

базовых

вариантах

процессоров:

 "жесткий" (непрограммируемый) процессор с аппаратной реализацией

(dedicated hardware processor);

 программируемый процессор с аппаратной реализацией (programmable

hardware processor);

 "жесткий" процессор с программной реализацией (dedicated software

processor);

43

 программируемый

процессор

с

программной

реализацией

(programmable software processor).

2.1.3

Микропроцессор и микроконтроллер

Традиционно

он

трактуется

как

программируемый

процессор

в

интегральном исполнении. Однако в связи с развитием технологии ASIC, ASSP,

PLD (ПЛИС) логичнее микропроцессором называть все четыре группы

процессорных элементов в случае их интегрального исполнения.

Вычислительные системы на верхнем уровне рассмотрения могут быть

представлены тремя группами элементов: обработчики, устройства памяти,

интерфейсы. С группой обработчиков связаны термины "процессор" и

"контроллер". Предлагается процессором называть обрабатывающий элемент,

функции которого в рамках прикладной задачи еще не зафиксированы. В

зависимости от закрепленной прикладной (по отношению к данному элементу,

а не к системе в целом) функции процессор будет играть роль контроллера (т.е.

устройства управления), умножителя, супервизора, диспетчера и т.д. В свою

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

принтера, последовательного интерфейса, технологического процесса и другие.

Еще один важный термин – "микроконтроллер", следует понимать как

контроллер, построенный на основе микропроцессорной элементной базы.

Микроконтроллеры

могут

быть

однокристальными,

одноплатными,

программируемыми, логическими, промышленными, универсальными и т.д.

Микроконтроллер в одном кристалле содержит микропроцессор и набор

периферийных устройств и контроллеров: контроллер прерываний, таймеры,

контроллер сети, контроллер последовательного канала, контроллер памяти,

контроллер ПДП и т.д.

2.1.4

Классификация микроконтроллеров

Существует множество способов, с помощью которых можно производить

классификацию микроконтроллеров [5, 21].

 По разрядности различают 8, 16 и 32 разрядные микроконтроллеры.

 По возможностям в области обработки сигналов можно рассматривать

обычные микроконтроллеры и DSP-микроконтроллеры.

 По области применения различают следующие микроконтроллеры:

автомобильные, промышленные, для контроллерных сетей, управления

двигателями, управления беспроводными сетями.

По объему вычислительных ресурсов условно можно выделить четыре

характерные группы микроконтроллеров.

 Периферийные процессоры – Microchip PIC 10, PIC12, PIC16, PIC18,

PIC24, Atmel AT90xxxx и т.п.

 Универсальные 8-ми и 16-ти разрядные ОМЭВМ – Intel MCS51,

Siemens SAB 5xx, Atmel Mega10x и т.п.

44

 Универсальные 16-ти и 32 разрядные ОМЭВМ – Fujitsu FR-50, ARM7 и

т.п.

 Универсальные однокристальные 32-х разрядные микроконтроллеры и

процессоры Freescale MPC560xx, ARM9, ARM11 и т.п.

Для первой категории процессоров характерны следующие особенности:

небольшой объем памяти данных (десятки – сотни байт);

небольшой объем памяти программ (единицы – десятки килослов);

сравнительно высокое быстродействие;

система команд RISC;

низкое энергопотребление;

малое число выводов;

невозможность подключения внешней памяти;

Старшие модели микроконтроллеров могут иметь в своем составе сетевые

контроллеры. Основная идея в этих контроллерах – обеспечение создания

устройств с низким энергопотреблением и минимальным количеством

компонентов на плате.

Для второй категории процессоров характерна возможность использования

внешней (внекристальной) памяти. Отличает эту категорию низкая цена и

небольшие

вычислительные

ресурсы.

Производительность

таких

микроконтроллеров как правило значительно ниже, чем у первой категории.

Контроллеры этого типа применяются в основном в простых и дешевых

устройств, не предъявляющих повышенных требований по производительности

и энергопотреблению, но имеющих повышенные требования по объему

программного кода и требуемой памяти данных.

Третья категория процессоров имеет развитые аппаратные средства для

повышения производительности

обработки информации, гораздо

более

мощный, по сравнению с первой и второй категориями центральный

вычислитель и расширенное адресное пространство. Начиная с этой категории

в состав микроконтроллеров производители начинают наиболее активно

включать

сетевые

контроллеры.

В

настоящее

время

это

наиболее

распространенные микроконтроллеры.

В четвертой категории процессоров характерно применение механизмов

защиты памяти и большое адресное пространство, что позволяет без особых

проблем применять операционные системы реального времени. От третьей

категории их также отличает более высокая производительность.

2.1.5

Программируемые логические интегральные схемы

Программируемая логическая интегральная схема (PLD, Programmable

Logic Device) – электронный компонент, состоящий из логических ячеек и

конфигурируемой схемы соединений. Основное назначение – построения

реконфигурируемых цифровых схем. В отличие от обычных интегральных

45

схем, функциональность не определяется на этапе изготовления раз и навсегда

и может создаваться и изменяться конечным пользователем (инженером),

исходя из своих нужд.

ПЛИС,

в

первом

приближении,

представляет

собой

множество

однотипных логических элементов, соединяемых с помощью специальных

коммутационных

матриц.

Соединение

и

инициализация

элементов

осуществляется

посредством

бинарного

образа,

загружаемого

в

конфигурационную память ПЛИС. Файлы конфигурации (бинарные образы)

генерируются с помощью САПР производителя конкретной ПЛИС и являются

его интеллектуальной собственностью. На аппаратной базе FPGA можно

реализовывать системы на кристалле. Описания проектов возможно делать как

на языках структурно-функционального описания аппаратуры (Verilog,VHDL),

так и при помощи более высокоуровневых языков, таких как SystemC.

Применение ПЛИС:

 Связывающая логика (glue logic). ПЛИС выступает как средство

обеспечения совместимости нескольких интерфейсов. Изначально это

достигалось с помощью логики 74 и 40 серий, а в более сложных

случаях с помощью CPLD и FPGA. Примеры: декодер шины адреса,

расширитель портов.

 Для шифрования интеллектуальной собственности электронных схем

 Для прототипирования ИС и в малосерийном производстве

 Цифровая обработка сигналов, изображений

 Криптография

 Высокопроизводительные вычисления

2.1.6

Программируемая логическая матрица

PAL (Programmable Array Logic) – программируемая логическая матрица

(ПЛМ).

Представляет

собой

простую

программируемую

логическую

интегральную схему (ПЛИС).

ПЛМ делаются на базе технологии ПЗУ, то есть они программируются

однократно. Внутри, ПЛМ представляют собой несколько логических

элементов «И» с перемычками на входах, выходы которых подключены

фиксированным образом к элементам «ИЛИ». Процесс программирования

заключается в пережигании перемычек (на рисунке они показаны волнистой

линией) с целью получения нужной булевой функции.

46

Рисунок 8. Фрагмент ПЛМ: входной и выходной буфер, матрица И (2 терма), матрица ИЛИ

2.1.7

CPLD

CPLD (complex programmable logic device) – электронное устройство,

принадлежащее к классу программируемых электронных схем (ПЛИС) и

находящееся по сложности между FPGA и PAL. CPLD состоят из блоков

логических

вентилей,

объединенных

программируемой

коммутационной

матрицей. В отличие от FPGA, схемы CPLD делают обычно на базе

энергонезависимой памяти. В последнее время, различия между CPLD и FPGA

постепенно стираются.

2.1.8

FPGA

FPGA (Field-Programmable Gate Array) представляет собой множество

однотипных логических элементов, соединить которые можно с помощью

программируемой коммутационной схемы. Основная цель создания FPGA

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

простых технологий, в лабораторных условиях получить на кристалле

достаточно сложное и при этом ещё и работающее цифровое устройство. Итак,

что мы выигрываем при использовании технологии FPGA? Во-первых, мы

избавляемся от сложного производства интегральных схем. Во-вторых,

упрощается проектирование кристалла из-за отсутствия проблем с топологией

микросхемы и взаимным влиянием различных узлов. Что мы теряем? Мы

теряем

производительность,

снижаем

надежность,

увеличиваем

чувствительность к помехам, увеличиваем энергопотребление кристалла и

получаем меньшую отдачу от использования площади кристалла из-за роста

количества вентилей в 20..30 раз.

К

основным

направлениям

применения

FPGA

можно

отнести:

прототипирование, симуляцию и изготовление мелко и среднесерийных

47

устройств.

При

достаточно

больших

партиях

устройств

становится

экономически выгодным изготовление ASIC.

Схемы строятся на баз логических элементов. Каждый логический элемент

FPGA состоит из двух основных частей: программируемого логического

элемента (так называемый LUT — Lookup Table) и триггера на выходе.

Рисунок 9. Логический элемент FPGA

Один логический элемент состоит из нескольких десятков логических

вентилей сделанных в базисе 2 И-НЕ или 2 ИЛИ-НЕ. Программируемый

логический элемент содержит в себе таблицу истинности, позволяющую

реализовать любую комбинационную схему. Как правило, такого рода

элементы выполняют в виде набора регистров памяти. Так называемая

конфигурационная память FPGA, содержит в себе информацию необходимую

для соединения логических элементов и таблицы истинности для LUT.

Логические элементы, составляющие FPGA, принадлежат уровню RTL. Их

соединение хорошо описывается структурными VHDL и Verilog. Используемая

модель вычислений — модель дискретных событий.

По мере совершенствования технологий производства интегральных схем

появляется тенденция к укрупнению базовых элементов FPGA. В большинство

современных моделей добавляют память, элементы арифметико-логических

устройств, умножители и целые процессорные ядра.

2.1.9

Системы-на-кристалле

Система-на-кристалле (System-on-Chip, SoC) – в общем случае системы, на

едином кристалле которых интегрированы процессор (процессоры, в том числе

специализированные), некоторый объем памяти, ряд периферийных устройств

и интерфейсов, — то есть максимум того, что необходимо для решения задач,

поставленных перед системой. Выражение "система на кристалле" не является,

строго говоря, термином. Это понятие отражает общую тенденцию к

повышению уровня интеграции за счет интеграции функций.

Производительность

приборов

класса

"система-на-кристалле"

в

значительной мере зависит от эффективности взаимодействия всех встроенных

компонентов и от эффективности их взаимодействия с внешним, относительно

прибора, миром. В первую очередь это связано с различием в быстродействии

встроенных компонентов, в особенности организации интерфейсов.

Системы на кристалле обычно состоят из трех основных цифровых

системных блоков: процессор, память и логика. Процессорное ядро реализует

48

поток управления, когда каждой управляющей программой однозначно

устанавливаются последовательности выполнения операций обработки данных,

что позволяет задавать один из возможных алгоритмов работы всей

интегральной схемы. Память используется по ее прямому назначению —

хранение кода программы процессорного ядра и данных. Наконец, логика

используется для реализации специализированных аппаратных устройств

обработки и прохождения данных, состав и назначение которых определяются

конечным приложением — потока данных.

Реальная система на кристалле содержит как минимум все три

перечисленных блока, что исключает применение многочисленных отдельных

интегральных

схем

и

реализацию

интерфейсов

связи

между

ними.

Однокристальное конфигурируемое или программируемое решение допускает

оперативное изменение своей внутренней аппаратной структуры и конечного

предназначения как на этапе производства, так и в полевых условиях,

непосредственно в проекте. Такие интегральные схемы были отнесены к группе

изделий системного уровня интеграции, но получили другое название —

Configurable System on a Chip или CSoC. Поскольку термин CSoC не

стандартизован, то существуют и другие названия изделий этого класса —

System on Programmable Chip (SoPC), Programmable System on a Chip (PSoC)

или просто SoC, что определяется вкусом и желаниями конкретного

производителя микросхем.

Типовая встраиваемая система, построенная на базе SoC, содержит

различные наборы следующих интерфейсов и контроллеров:

Системная шина и контроллеры шин LPC/ISA, PCI, PCMCIA;

Контроллеры управления NOR/NAND Flash, SDRAM, SRAM, DDR;

Контроллер Ethernet;

Последовательные интерфейсы UART, SPI/SSP/uWire, RS-232, RS-

422/RS-485, CAN;

Беспроводные интерфейсы WiFi/IEEE802.11, ZigBee, Bluetooth, IrDA;

Интерфейсы поддержки Flash-карт памяти: SD/MMC, CompactFlash,

MemoryStick;

Контроллер LCD STN/TFT/OLED;

Контроллер матричной клавиатуры;

Модули беспроводной передачи данных GSM/GPRS, CDMA;

Модули приема сигналов спутниковых навигационных систем GPS,

Glonass;

Аппаратные поддержки плавающей точки, шифрования, DRM и т.п.;

Аудио- и видеоинтерфейсы.

49

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]