Компоненты и технологии • №2 '2011 компоненты



Pdf көрінісі
бет1/129
Дата28.09.2023
өлшемі4.1 Mb.
#478975
  1   2   3   4   5   6   7   8   9   ...   129
Kurniz



96
КОМПОНЕНТЫ И ТЕХНОЛОГИИ • № 2 '2011
компоненты
микроконтроллеры
Андрей Курниц
kurnits@stim.by
Что такое ОС для МК?
В нынешний век высоких технологий все 
профессионалы знакомы с термином «опе‑
рационная система» (ОС). История ОС на‑
чинается с 1960‑х годов. Первые ОС пред‑
назначались для больших ЭВМ, а впослед‑
ствии — и для персональных компьютеров. 
Назначением ОС стало заполнение ниши 
между низкоуровневой аппаратурой и вы‑
сокоуровневыми программами, они предо‑
ставляют программам удобный интерфейс 
обращения к системным ресурсам, будь 
то процессорное время, память или устрой‑
ства ввода/вывода. С тех пор технологии 
шагнули далеко вперед: целую вычислитель‑
ную систему (процессор, память, устрой‑
ства ввода/вывода) разместили на одном 
кристалле — появились микроконтроллеры 
(МК). В соответствии с древним изречени‑
ем «Природа не любит пустоты» удачная 
концепция ОС не могла не быть применена 
и к микроконтроллерам. В настоящее время 
создано и развивается множество ОС, ори‑
ентированных на выполнение на МК [1, 6]. 
Однако МК как платформа для выполнения 
ОС имеет существенные отличия от совре‑
менных компьютеров.
Прежде всего, МК работает в режиме ре‑
ального времени, то есть время реакции ми‑
кроконтроллерного устройства на внешнее 
событие должно быть строго меньше задан‑
ной величины и должно быть сопоставимо 
со скоростью протекания внешних процессов. 
Типичный пример: время реакции на сраба‑
тывание датчика давления в промышленной 
установке должно быть не более 5 мс, иначе 
произойдет авария. Таким образом, ОС для 
МК — это операционная система реально‑
го времени (ОСРВ). К ОСРВ предъявляются 
жесткие временные требования в отличие 
от распространенных ОС общего назначения 
(Windows, UNIX‑подобные и др.).
Во‑вторых, микроконтроллер, по сути, 
это однокристальный компьютер с сильно 
ограниченными аппаратными ресурсами, 
хотя диапазон выпускаемых МК по про‑
изводительности и объемам памяти очень 
широк. Встречаются как «карлики», напри‑
мер 8‑разрядный ATtiny10 с 6 выводами, 
32 байт ОЗУ, 1 кбайт ПЗУ и производитель‑
ностью 1210
6
операций в секунду (12 MIPS), 
так и «гиганты», например 32‑разрядный 
TMS320C28346 c 256 выводами, 512 кбайт ОЗУ 
и производительностью 60010
6
операций 
с плавающей точкой в секунду (600 MFLOPS). 
Тем не менее все МК имеют существенные ап‑
паратные ограничения, что предъявляет спец‑
ифические требования к ОСРВ для МК.
Их основные особенности:
1. Низкая производительность.
2. Малый объем ОЗУ и ПЗУ.
3. Отсутствие блока управления памятью 
(Memory management unit, MMU), исполь‑
зуемого большинством современных ОС, 
например Windows и UNIX‑подобными.
4. Отсутствие аппаратных средств поддержки 
многозадачности (например, средств бы‑
строго переключения контекста).
В‑третьих, микроконтроллер сам по себе 
предназначен для выполнения низкоуровне‑
вых задач, будь то опрос состояния кнопок, пе‑
редача команды по I
2
C‑интерфейсу или вклю‑
чение обмотки электромотора. Программа 
для МК, как правило, обращается к перифе‑
рии напрямую, программист имеет полный 
контроль над аппаратной частью, нет необ‑
ходимости в посредниках между аппаратурой 
и прикладной программой. Может показать‑
ся, что операционная система для МК вообще 
не нужна, что любую программу можно на‑
писать и без ОС. На самом деле так оно и есть! 
Но есть один нюанс: микроконтроллер ред‑
ко используют только для опроса состояния 
кнопок, только для передачи команды по I
2
C‑
интерфейсу или только для включения об‑
мотки электромотора. Гораздо чаще из МК 
пытаются «выжать» все, на что он способен, 
а в микроконтроллерное устройство зало‑
жить все возможные функции. Количество 
функций‑задач, одновременно выполняемых 
МК, может доходить до нескольких десятков. 
И вот тут‑то и начинаются проблемы.
Как организовать мультизадачность 
и поочередное выполнение каждой задачи? 
Как обеспечить запуск задачи через строго 
определенные интервалы времени? Как пере‑
дать информацию от одной задачи другой? 
Обычно эти вопросы не встают перед про‑
граммистом в начале разработки, а возникают 
где‑то в середине, когда он запрограммировал 
большинство функций будущего устройства, 
используя изобретенные им самим средства 
«многозадачности». И тогда заказчик «про‑
сит» добавить еще несколько «маленьких» де‑
талей в работу устройства, например сбор ста‑
тистики работы и запись ее на какой‑нибудь 
носитель… Знакомая ситуация?


Достарыңызбен бөлісу:
  1   2   3   4   5   6   7   8   9   ...   129




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет