Встроенные Системы Часть 1. Введение Кафедра Информатики, мат-мех СПбГУ Copyright © 2004 Victor Vengerov vvv@oktetlabs.ru О себе Автор - Виктор Венгеров, ведущий инженер и лидер проектов компании OKTET Labs. Сотрудник лаборатории встроенных и телекоммуникационных систем СПбГУ. Имеет более чем десятилетний опыт работы в следующих областях: •Системное программирование •Разработка ПО встроенных систем •ОС Linux •GNU development tools •Bring-up и перенос ОС на уникальное оборудование •Разработка драйверов •Разработка firmware Определение Встроенная система (embedded system) – это компьютерная система (hardware+software) специального назначения (то есть, предназначенная и оптимизированная для решения определенной задачи), которая обычно является частью большей системы и часто предназначена для работы без вмешательства человека. Примеры Встроенных Систем Устройства сетевой и телекоммуникационной инфраструктуры: Коммутаторы (switches) Маршрутизаторы (routers) Межсетевые экраны (firewalls) Оборудование телефонных станций Базовые станции, центры коммутации сетей мобильной связи Устройства IP-телефонии, видеотелефонии Мобильные телефоны Примеры Встроенных Систем (продолжение) Компьютерное и офисное оборудование: Дисковые накопители, RAID-массивы Принтеры Модемы Мониторы Сканеры Устройства чтения/записи CD-ROM, DVD-ROM Ленточные накопители Копировальные машины Телефонные и факсимильные аппараты Кассовые аппараты Примеры Встроенных Систем (продолжение) Бытовая электроника: Телевизоры Видеомагнитофоны Проигрыватели CD/DVD-дисков AV-receivers Микроволновые печи Стиральные машины Видеоигры Климатизаторы Электронные книги Спутниковые ресиверы Примеры Встроенных Систем (окончание) Системы промышленной автоматизации Бортовые системы автомобилей Навигационное оборудование Медицинское оборудование Банкоматы Системы охраны и наблюдения О чем этот курс? Что такое «встроенные системы» Как разрабатывать ПО для них (ОС, инструментарий, отладка, тестирование) Особенности аппаратной архитектуры встроенных систем. Как разрабатываются микросхемы (ASIC)? Какими они бывают? Какие еще компоненты используются. Предварительные требования Знание языка программирования C Знакомство с технологией разработки программного обеспечения Понимание архитектуры современных ЭВМ Знание принципов построения современных операционных систем Общие особенности ВС Нестандартное оборудование, оптимизированное для целевой задачи Критичность к ресурсам Требования к энергосбережению Автономность, устойчивость к сбоям Характеристики ВС Система реального времени (real-time system) Безопасность (safety-critical) Устойчивость к отказам (fault tolerance) Подключаемость к сети (networkenabled) Система реального времени СРВ – это система, в которой корректность результата определяется не только логикой производимых вычислений, но и моментом времени, в который они получены. Жесткая СРВ – система, для которой нарушение временных требований означает непригодность системы для использования (например, последствия такого нарушения приводят к разрушениям или смерти). Мягкая СРВ – система, в которой нарушение временных требований приводит к ухудшению качества, но не фатально. Системы, критичные к безопасности Safety-critical system – это система, сбой в работе которой может повлечь увечья или смерть людей. Примеры: •Системы управления самолетом •Системы управления ядерным реактором •Системы управления транспортом Системы, устойчивые к отказам Fault-tolerant system – система, построенная таким образом, чтобы в случае отказа компонента системы, его место занял бы резервный компонент или была бы выполнена процедура восстановления, без остановки работы системы. Подключаемость к сети Network-enabled system – система, которая в процессе своей работы допускает управление и взаимодействие (обмен информацией) с другими системами, доступными через компьютерную сеть. ВС: Взгляд со стороны ПО Application OS BSP Drivers CPU On-chip cache and memory On-board cache and memory On-chip peripheral On-board peripheral ВС: Взгляд со стороны ПО (продолжение) Application (приложение) – программный код, реализующий логику работы встроенной системы. OS - Операционная Cистема – программа обеспечивающая запуск и работу других программ (приложения) системы. BSP – Board Support Package, инициализация и реализация примитивов, специфичных для данного устройства Drivers – программы работы с периферийными устройствами ВС: Взгляд со стороны ПО (продолжение) CPU – процессорное ядро, примеры: MIPS ARM SuperH Xtensa H8 Sparc DSP (процессор обработки сигналов, например Texas Instruments) Микроконтроллеры Proprietary (специально разработанный) ВС: Взгляд со стороны ПО (продолжение) On-chip peripheral – устройства, расположенные на той же микросхеме, что и процессор. Примеры: Контроллер памяти Интерфейсы для внешней периферии (PCI, USB, I2C, SPI, PCCard, AC97, MMC…) Коммуникационные контроллеры (Ethernet, HDLC, ATM) Таймер, часы Контроллер прерываний GPIO Видеоконтроллер Программируемая логика ВС: Взгляд со стороны ПО (продолжение) Off-chip peripheral – имеющиеся в системе устройства, расположенные на плате. Примеры: Датчики, устройства сбора данных, ЦАП, АЦП, кодеки Устройства ввода и отображения информации Устройства хранения информации