пятница, 3 сентября 2010 г.

Лекция 1. Часть 1.

Тезисы лекции.



0. Управление и место микропроцессорных систем
- управление = объект управления + система управления
- цель управления (абстрактно): перевести объект управления в заданное
состояние и/или стабилизировать его работу
- микропроцессорная система = программно-аппаратная реализация системы
управления
- цель управления (алгоритмически): проанализировать состояние объекта
управления, принять решение о том что с ним делать, сформировать
управляющие воздействия
- в теории микропроцессорных систем НЕ рассматриваются сами объекты
управления и алгоритмы - только реализация алгоритмов управления, "с
помощью чего управлять"
- объекты управления и алгоритмы "как управлять" - предмет более дисциплин
высокого уровня (теория машин и механизмов, теория автоматического
управления)
- специалист по микропроцессорным системам = электронщик + программист
связанные области знания: теория управления, цифровая обработка сигналов,
теория алгоритмов,
- трудности: реализация алгоритмов управления с одновременным учетом
физических, экономических и надежностных требований

1. Конечные автоматы
- с помощью микропроцессоров может быть реализовано только алгоритмическое
управление,
- системы с памятью и системы без памяти,
- системы без памяти = булевы функции = таблицы
- конечные автомат = модель алгоритма,
- конечный автомат - это граф, с множеством вершин состояний $S=\{S_0, S_1
,... S_k\}$, и множеством дуг переходов между состояниями
$P=\{P_{i,j}\}=\{(S_i, S_j)\}$, а также множеством условий
$C=\{C_{i,j}\}=\{f_{i,j}(P_{i,j})\}$ и множеством действий
$A=\{A_{i,j}\}=\{a_{i,j}(P_{i,j})\}$,
- модель Мили: автомат после начала работы оказывается всегда в состоянии
S_0, далее рассматривается множество условий $C_{0,j}$, если какое-то из
условий выполняется, например для $d=j$, то выполняются действия $A_{0,d}$
и автомат переходит в состояние $S_d$, далее все повторяется аналогично.
конечный автомат - наиболее естественное представление закона управления
для микропроцессорной системы,
- реальные системы далеки от конечных автоматов: неопределенность переходов,
не дискретная динамика, асинхронные процессы, слишком большая сложность
- практика проектирования показывает, что алгоритм принятия решения
предпочтительно представлять как конечный автомат
- неопределенность переходов => доопределить все условия (это может быть
сложно и в этом состоит основной источник ошибок поведения программ),
- непрерывная динамика процессов управления => дискретизация (отдельная
тема),
- асинхронность => несколько параллельно работающих автоматов,
- сложность реальных алгоритмов => иерархические автоматы

2. Встраиваемые системы
- вычислительные системы = то, что реализует алгоритм управления,
- вычислительные системы для производства = встраиваемые системы, [ru.wiki]
- особые требования к конструктиву: устойчивость к вибрации (обычно 5g, удары до 20g), широкий диапазон температур (обычно -40 до +85 град С), отсутствие вращающихся элементов.

3. Реализация управления с пользовательской точки зрения
- решить нужно ли проектировать аппаратную часть?
- экономический расчет: суммарная стоимость $C = C_d + N \cdot C_0$, где $C_d$ -- стоимость проектирования, $N$ -- количество экземпляров устройств, $C_0$ -- себестоимость одного устройства
- если используется готовая аппаратная платформа, то $C_d = 0$, но $C_0$ оказывается выше чем при проектировании аппаратной части с нуля (поскольку при проектировании аппаратной платформы под задачу удается минимизировать стоимость за счет оптимизации функционала),
- чем больше $N$, тем выгоднее отказаться от готового аппаратного обеспечения,
- программируемый логический контроллер -- PLC (programmable logic controller) -- готовое аппаратное решение, маломощный компьютер без графического интерфейса с пользователями, со стандартными промышленными аналоговыми и цифровыми интерфейсами, реализует несложные алгоритмы управления [ru.wiki],
- встраиваемый компьютер -- готовая компьютерная система, состоящая из одноплатного компьютера, кросс-платы и модулей ввода-вывода, обычно применяется для реализации сложных алгоритмов управления и сбора информации,
- распределенная система управления -- множество PLC выполняют функции управления каждый своим объектом, все они объединены в локальную компьютерную сеть, управляемую централизованным сервером [ru.wiki]
- проектирование аппаратного обеспечения включает в себя: выбор электронных компонентов, разработка принципиальной схемы, разработка печатной платы, производство печатных плат и монтаж компонентов, сборка макетного образца устройства, сборка рабочих образцов продукции.

4. Реализация управления с аппаратной точки зрения
- необходимо выполнять программу и общаться с внешним миром (функции ввода-вывода),
- микропроцессор -- электронное устройство, осуществляющее выполнение программы [ru.wiki],
- для работы микропроцессора нужно множество внешних устройств: оперативная и внешняя память, контроллеры системной шины и т.д.
- концепция система на кристалле -- объединение всех схем устройства в одной интегральной микросхеме [ru.wiki],
- микроконтроллер -- микросхема, представляющее собой законченную вычислительную систему: микропроцессор вместе с постоянной и оперативной памятью, подсистемами ввода-вывода, всеми вспомогательными схемами [ru.wiki],
- самые распространенные микроконтроллеры: MCS-51, AVR, ARM, PIC, MSP430,
- крупнейшие производители микроконтроллеров: Atmel, Microchip, Texas Instruments, NXP, STMicroelectronics, Samsung, Fairchild
- процессор цифровой обработки сигналов -- DSP (digital signal processor) -- микропроцессор, отличающийся развитыми математическими функциями (операции с плавающей точкой и операция умножения с накоплением) [ru.wiki],
- наиболее известны DSP от Analog Devices (семейства ADSP и Blackfin) и Texas Instruments (семейства TMS320C)
- программируемая логическая интегральная схема -- FPGA (field-programmable gate array) -- цифровая микросхема, содержащая большое количество логических элементов и триггеров, которые могут быть соединены между собой пользователем, позволяет реализовывать любые цифровые схемы (в т.ч. микропроцессоры) [ru.wiki]
- наиболее известны FPGA от Altera (семейства Cyclone и Stratix) и XilinX (семейства Spartan и Virtex)

5. Некоторые понятия из компьютерных систем
- системы управления: с жесткой логикой и программируемой логикой,
- фундаментальная модель программируемой вычислительной системы: архитектура фон Неймана [ru.wiki]
- базовые блоки: память, системная шина, арифметико-логическое устройство, устройство управления, подсистема ввода-вывода,
- принципы фон Неймана: принцип двоичности, принцип программного управления, принцип однородности памяти, принцип адресуемости памяти, принципы последовательного и условного программного управления,
- гарвардская архитектура: отличие -- память программ и память данных разделены, появилась раньше архитектуры фон Неймана [ru.wiki],
- одна из самых актуальных задач увеличения быстродействия процессора -- минимизация обращений к памяти,
- система команд процессора - множество команд и их двоичных представлений в памяти,
- процессоры условно делятся по виду системы команд на RISC и CISC,
- RISC -- reduced instruction set computer (компьютер с сокращённым набором команд) -- инструкции процессора сильно упрощены, быстро декодируются и выполняются (не более одного цикла обращения к памяти), хорошо распараллеливаются, [ru.wiki]
- RISC-процессоры -- активное использование рабочих регистров, отдельные команды для записи и сохранения данных в память,
- большинство микропроцессоров и микроконтроллеров -- RISC-процессоры,
- CISC -- complex instruction set computer (компьютер с полным набором команд) -- команды различной длины, модификации одной и той же команды с различными вариантам адрессации памяти, команды со сложным функционалом, [ru.wiki]
- CISC-процессоры -- процессоры семейства x86

6. Микроконтроллеры AVR и ARM
- типичные RISC-микроконтроллеры,
- большая номенклатура микросхем под различные применения (для автомобильной техники, для датчиков, для коммуникаций, для управления электродвигателями и т.д.)
- очень низкая цена: типично $8 - $15
- микроконтроллеры AVR: ядро разработано в Norwegian University of Science and Technology (NTNU), город Тронхейм (Trondheim) в 1996 году [ru.wiki]
- микроконтроллеры ARM: базовое ядро впервые разработано в 1985 году компанией Acorn Computers Ltd (UK) на основе разработок университета Беркли (Berkeley RISC project), дальнейшее совершенствование и эволюция ядра привело к появлению модификаций ARM7TDMI (1998 год) и ARM9TDMI (1999 год), доминирующих во встраиваемых системах управления [ru.wiki]
- ядро AVR - 8 бит, быстродействие до 20 MIPS, выпускаются только фирмой Atmel (www.atmel.com)
- ядро ARM7 и ARM9 - 32 бита, выпускаются фирмами Atmel, NXP, Samsung, STMicroelectronics, Fairchild, Texas Instruments, типичное быстродействие 100 MIPS для ARM7 и 200 MIPS для ARM9
- AVR -- гарвардская архитектура, ARM -- принстонская (фон Неймана)

7. Периферийные устройства микроконтроллеров AVR и ARM
- все периферийные устройства отображены в память: работа с периферией = обращение к определенным адресам памяти,
- многофункциональные, двунаправленные GPIO порты ввода/вывода со встроенными подтягивающими резисторами. Конфигурация портов в/в задаётся программно.
- источники тактовых импульсов: кварцевый резонатор, внутренний RC-генератор (частота 1, 2, 4, 8 МГц),
- внутренняя флеш-память команд до 256 KБ (10 000 циклов перезаписи),
- отладка программ осуществляется с помощью интерфейсов JTAG или debugWIRE
- внутреннее EEPROM данных до 4 КБ (100 000 циклов),
- внутренняя SRAM до 8 KБ время доступа 1 такт,
- возможность подключения микросхем внешней памяти (SRAM, SDRAM),
- таймеры c разрядностью 8, 16 бит,
- ШИМ-модулятор (PWM) 8-, 9-, 10-, 16-битный,
- аналоговые компараторы,
- АЦП (ADC) с дифференциальными входами, разрядность 10 бит или 12 бит,
- последовательные интерфейсы, включая: TWI (I2C), UART/USART, SPI, USB, CAN, LCD, Ethernet MAC,
- встроенный датчик температуры

8. Язык программирования C
- самый распространенный в мире язык программирования,
- чувствителен к регистру,
- uses ==> #include
- программа находится внутри функции main,
- begin ... end ==> { ... }
- for i := 0 to N ==> for (int i = 0; i <= N; i++)
- переменная: тип ==> тип переменная;
- переменные можно объявлять где угодно (нет конструкции var)
- if a > b then ... else ... ==> if (a > b) ... else ...
- writeln ==> printf
- readln ==> scanf


Дополнительные материалы:
Видео о микроконтроллерах и ПЛИС (с сайта "Чип и Дип")

Комментариев нет:

Отправить комментарий