Заметки на полях
Обычно тактовая частота универсальных МК невелика (хотя типичному инженеру 1980-х, когда ПК работали на частотах не выше 6 МГц, она показалась бы огромной) — порядка 8—16 МГц, иногда до 24 МГц или несколько более. И это всех устраивает: дело в том, что обычные МК и не предназначены для разработки быстродействующих схем. Если требуется быстродействие, то используется другой класс интегральных схем — ПЛИС, «программируемые логические интегральные схемы». Простейшая ПЛИС представляет собой набор никак не связанных между собой логических элементов (более сложные могут включать в себя и некоторые законченные узлы, вроде триггеров и генераторов), которые в процессе программирования такого чипа соединяются в нужную схему. Комбинационная логика работает гораздо быстрее тактируемых контроллеров, и для построения различных логических схем в настоящее время применяют только ПЛИС, от проектирования на «рассыпухе» в массовых масштабах уже давно отказались. Еще одно преимущество ПЛИС — статическое потребление энергии для некоторых серий составляет единицы микроватт, в отличие от МК, которые во включенном состоянии потребляют всегда (если не находятся в режиме энергосбережения). В совокупности с более универсальными и значительно более простыми в обращении, но менее быстрыми и экономичными микроконтроллерами, ПЛИС составляют основу большинства массовых электронных изделий, которые вы видите на прилавках. В этой книге мы, конечно, рассматривать ПЛИС не будем — в любительской практике, в основном из-за дороговизны соответствующего инструментария и высокого порога его освоения, они не используются, и для конструирования одиночных экземпляров приборов даже для профессиональных применений нецелесообразны. А вот если вы закажете разработку некоего прибора профессиональной «конторе», имеющей нужные инструменты и разработчиков с соответствующей квалификацией— почти всегда получите что-нибудь на базе ПЛИС, потому что в конечном итоге так оказывается дешевле.
Если подробности внутреннего функционирования МП нас не очень волнуют (достаточно иметь общее представление о структуре микропроцессорного ядра, чтобы понимать, что именно происходит при выполнении команд), то обмен с внешней средой нас как раз интересует во всех деталях. Для этого служат порты ввода/вывода (I/0-port, от Input/Output). В этом термине имеется некоторая неопределенность, т. к. «порт ввода/вывода» в МК с точки зрения его внутреннего устройства обозначает прежде всего некий регистр для доступа к компонентам, внешним по отношению к вычислительному ядру. А это все узлы, которыми непосредственно управляет пользователь (от таймеров и последовательных портов до регистра флагов и управления прерываниями). Кроме разве что ОЗУ, доступ к которой обеспечивается специальными командами, все остальное в контроллере управляется через порты ввода/вывода.