Часть 14 Компьютеры, контроллеры и каналы передачи данных
==989
Здесь и в Части 15 рассматриваются компьютеры и контроллеры ( их часто называют микрокомпьютеры и микроконтроллеры ). Тема очень велика, и попыток описать её полностью не будет. Вместо этого внимание будет сконцентрировано на электронных аспектах:
- как подключать внешние компоненты к компьютеру, и
- как превратить микроконтроллер во «встроенный» элемент внутри какого-то прибора.
Кроме того, здесь рассматриваются компьютеры и шины данных ( канал для обмена информацией ), чтобы понимать, как они функционируют, и как получить работающий механизм обмена данными. Обозначенный вопрос требует базового знакомства с архитектурой компьютеров, памятью, временнЫми диаграммами обмена на шине и набором команд. Работа с аппаратурой будет проиллюстрирована кодом обмена данными с выходным «портом» на параллельной шине данных _1 . В конце будет дан краткий обзор популярных последовательных шин данных: FireWire, USB, CAN-bus, Ethernet.
Часть 15 посвящена микроконтроллерам - замечательным недорогим микросхемам, которые позволяют добавить немного интеллекта практически в любое электронное устройство.
Терминология
Мэйнфреймы, ЦПУ, миникомпьютеры, микрокомпьютеры, микропроцессоры, микроконтроллеры. Что означают эти термины? Все эти сбивающие с толку имена - историческое наследство. Понятие «микрокомпьютер» стало восторженной реакцией на появление компьютера, чей центральный процессор ( ЦПУ или CPU ) удалось разместить в одной микросхеме ( «микропроцессор» ). Одна ИМС заменила основную составную часть «миникомпьютера» или «мэйнфрейма» - плату, набитую жёсткой логикой.
Это события давно минувших дней. Теперь уже заметная разница лежит между компьютерами , которые используются в основном для обработки данных, и контроллерами , которые входят в состав других электронных приборов, компьютерами не являющихся. Примерами первых служат рабочие станции, ноутбуки, суперкомпьютеры, а контроллер - просто микросхема, которая может стоять в зубной щётке, весах, TV-приставке и т.п. _2 . В общем случае микропроцессоры, стоящие в компьютерах, оптимизированы для вычислений, дороги, нуждаются в поддержке сложных «чипсетов». Микроконтроллеры, напротив, разменивают вычислительные возможности на возможности автономной работы, предпочитая иметь внутри столько периферийных блоков, сколько лезет на кристалл. Микроконтроллеры недороги, имеют малое потребление и полностью самодостаточны. Процесс миниатюризации компьютеров в несколько драматической форме показан на рис. 14.1 _3 .
Рис. 14.1 От мэйнфреймов до микроконтроллеров: 50 лет прогресса компьютеров ( фотография мэйнфрейма является собственностью корпорации IBM )
Иначе говоря, компьютеры, о которых идёт речь в данной части, не обременяют пользователя подробностями о своей конструкции: ни о памяти, дисках, платах ввода-вывода, ни о системном и низкоуровневом программировании. Обо всех этих элементах уже позаботился производитель компьютера и поставщики программного обеспечения. Пользователю остаётся заниматься только нестандартными интерфейсами и собственно прикладным программированием. В отличие от больших машин, микроконтроллеры потребуют от разработчика не только вникать в схемотехнику, но и писать [* как минимум вникать и адаптировать ] базовое программное обеспечение. Производители компьютеров обычно заинтересованы в обеспечении базового и вспомогательного ПО ( а иногда и периферийного оборудования ), как части вычислительной системы. Полупроводниковые же компании, выпускающие микроконтроллеры, считают своей основной задачей только производство всё более мощных кристаллов и маркетинг.
==989
1 Для этой задачи была выбрана шина PC104/ISA как из-за простоты организации, так и из-за стабильности присутствия в мире встраиваемых версий PC. <-
2 Картина несколько смазана тем фактом, что, скажем, процессор внутри кабельной TV-приставки или Blu-ray проигрывателя проводит серьёзную обработку цифрового видео ( дешифровку, разархивирование, преобразование форматов ), хотя само изделие не считается при этом «компьютером». <-
3 А ещё через десять лет за те же $5 можно получить 100-мегагерцовый ARM м 1MB программной памяти, 80KB ОЗУ, 47 линий ввода-вывода, 10-разрядное АЦП с 11 каналами измерения, 10-разрядный ЦАП, 6 таймеров по 16 разрядов каждый, 3 порта I2C и 4 SPI, 4 ШИМ контроллера, 4 модуля UART и 3 USART. Ну, как не любить закон Мура?! <-