Шапка

15.1 Введение

Как сообщалось в Части 14 , микроконтроллер - µC - в своей исходной форме - законченный вычислительный узел, предназначенный для встраивания в какое-либо электронное устройство, которое не считается «компьютером» _1 . Микроконтроллеры недороги, просты в использовании [* Хм ]   и позволяют добавить вычислительные возможности практически в любую электронную схему. Всю работу выполняет процессорное ядро, которое тратит свои такты на общение со встроенной памятью и встроенной же периферией.

Подчеркнём данную особенность: практически все микроконтроллеры ( даже те из них, что стОят меньше доллара ) имеют внутри и оперативную память ( статическое ОЗУ ), и постоянную память программ ( «флэш» ). Многие дополнительно располагают встроенным блоком EEPROM для хранения калибровочных данных, конфигурации, настроек и т.д. _2 . Пользователь может выбирать набор периферийных блоков [* по каталогу, покупая конкретную микросхему ] , среди которых есть коммуникационные интерфейсы ( SPI, I2C, USB, Ethernet, Bluetooth, ZigBee ), внешние шины ( PCI, PCIe, SATA, PCMCIA, карты памяти ), аналоговые элементы ( компараторы, АЦП, ЦАПы ), а также специализированные блоки ( ШИМ, LCD, GPS, WiFi, цифровой звук ).

Иначе говоря, микроконтроллер ( рис. 15.1 ) - это микросхема, которая имеет в своём составе комплект «ЦПУ + память + периферийные устройства». Будь это внешние элементы, они потребовали бы наличия шины данных ( см. Часть 14 ) для связи между собой. Такую шину можно организовать, если хочется, но правильнее просто подобрать по каталогу микроконтроллер, уже имеющий на кристалле нужный блок.

Рис. 15.1   Микроконтроллер имеет память и периферию на том же кристалле, что и ЦП. Под аббревиатурой ICSP скрывается адаптер для «внутрисхемного программирования»

Естественно, встраиваемая система не будет загружаться с диска, она даже не имеет его. Именно с этой целью в состав µC включается программная память, и именно поэтому она должна хранить информацию в отсутствие питания: посудомоечная машина должна знать, для чего она предназначена, даже если сетевой шнур вынимался из розетки. [* Тут сразу вспоминается стиральная машина Asko, которая сходила с ума, если в момент стирки пропадало питание. Стиральные машины с командным автоматом таким дефектом мозга не страдают ( за отсутствием мозга )] . Микроконтроллеры встраиваются в целевое устройство и в большинстве случаев их нельзя снять с печатной платы, поэтому должен существовать способ внутрисхемного программирования ( и перепрограммирования ). Задача решается с управляющего компьютера по последовательному интерфейсу «внутрисхемного программирования» ( “ICSP” обычно SPI или JTAG ) через аппаратный адаптер.

Микроконтроллеры - интересная штука. О них можно думать как о схемных элементах, подобных операционным усилителям. Аналогия вполне уместная: микроконтроллер так же, как ОУ, является универсальным элементом, только не в аналоговой, а в цифровой технике _3 . Микроконтроллер вместе с несколькими дополнительными компонентами ( например, разъёмом USB, кнопками, индикаторами ), распаянный на печатной плате, превращается в универсальный модуль, функция которого задаётся программистом. Производители микроконтроллеров с охотой выпускают подобные изделия, называя их «набором для разработки» и часто дополняют его программным обеспечением ( см. рис. 15.24 на стр. 1090 ). Существуют подобные изделия сторонних фирм и проекты с открытыми исходными кодами, например, “Ethernut” и “Arduino” _4 . Первый предлагает порт Ethernet, а второй обычные последовательные интерфейсы с сетевым блоком в виде опции.

Познакомимся с микроконтроллерами на конкретном примере.

1 Недавняя публикация Maxim Integrated Products ( App Note 3967 ) начинается с предложения: «Сердцем современного сложного прибора является микроконтроллер ( µC ), который взаимодействует с одним и более периферийных устройств». В целом правильно, но слово «сложного» можно исключить. <-

2 EEPROM позволяет перезаписывать или стирать отдельные байты, а флэш-память допускает работу только с блоками, причём требует стирать их перед новой записью. Именно поэтому EEPROM очень небольшого размера гораздо удобнее для хранения пользовательских данных, а в ёмкой флэш-памяти удобнее держать редко изменяемый программный код. Оба вида памяти сохраняют данные в отсутствие питания и являются внутрисхемно программируемыми. Кроме того, флэш имеет меньшее число циклов стирания-записи - 10'000 против 100'000 у EEPROM. <-

3 Хотя разработчики, использующие программируемую логику, могут возразить, что их кристаллы «универсальнее», потому что допускают загрузку программной конфигурации ( “soft core” ), превращающей FPGA в микроконтроллер, а микроконтроллер превратить в FPGA нельзя. <-

4 Есть и другие: BeagleBoard & BeagleBone, Odroid, Raspberry Pi и Teensy. <-

Previous part:

Next part: