Мифы и реальность про микроконтроллеры

February 16, 2011 by admin Комментировать »

Народная мудрость гласит: «Любая задача по плечу, если цель оправдана и времени достаточно». Чтобы убедить читателей в полезности дальнейших занятий и в оправданности траты времени, необходимо проанализировать некоторые устоявшиеся мифы [1-6].

Миф 1: МК—это дорого.

Для профессиональных применений, скорее «да», чем «нет», для бытовых изделий — наоборот. Судите сами, цена дешёвых многократно программируемых МК с флэш-памятью составляет 1…2 доллара США. Если учесть, что микросхема обычно устанавливается в панельку на плате, то один и тот же М К после перепрограммирования можно использовать в нескольких разных приборах. Получается практически «вечная» микросхема, вплоть до её морального старения или до физического исчерпания ресурса ПЗУ (более 100000 циклов «запись-стирание»).

В наши дни сложилась уникальная ситуация, когда нет большой разницы в доступности микроконтроллерной элементной базы в разных странах мира. На первый план выходит логическое мышление, талант программиста и знание стандартных схем включения. Вот где надо бы приложить знаменитую славянскую смекалку и сообразительность, оправдывая тезис о высоком интеллектуальном потенциале нации.

Миф 2: для МК нужен сложный программатор.

Действительно, заводские сертифицированные программаторы, по которым фирмы-изготовители М К принимают от потребителей претензии к качеству продукции, — это сложные и дорогостоящие приборы. Приобретают их обычно крупные промышленные предприятия, аттестованные по системе ISO-9001, на которых налажен массовый выпуск продукции с МК.

Для любительских условий подойдут простейшие самодельные программаторы, подключаемые к персональному компьютеру или ноутбуку через разъёмы СОМ, LPT, USB. Стоимость деталей самых дешёвых из них составляет 1…2 доллара США. Во многих современных М К программатор вообще может потребоваться только один раз для прошивки начального загрузчика. Дальнейшее программирование производится «налету» по стандартным каналам компьютера СОМ, USB.

Миф 3: сложно разобраться в архитектуре МК.

Разумеется, научиться чему-либо без желания и труда — это нереально. С другой стороны, когда в учебнике с многообещающим названием «МКдля начинающих», встречается фраза: «…Основой булева процессора служит аккумуляторный принцип архитектуры с переключаемыми банками рабочих регистров…», то даже у самого усердного ученика опускаются руки.

Предлагаемая далее методика построена на представлении МК в виде автономного блока с известными входными и выходными сигналами. Его внутренняя структура будет сымитирована максимально упрощёнными схемами, которые практически одинаковы для МК разных платформ. При этом пользователю не обязательно знать детальное строение адресного пространства ОЗУ, не надо изучать косвенно регистровые и страничные способы адресации памяти. Немного абстракции, немного упрощений, немного старания и всё получится. Фантастика? Попробуйте и удостоверьтесь сами.

Миф 4: сложно освоить составление программ.

Если начинать с Ассемблера, то «да», а если с языка Си, то «нет». Программу на Ассемблере сложнее составлять, дольше отлаживать, труднее анализировать. Вдобавок к тому, нужно максимально глубоко вникать в архитектуру конкретного МК. Но, даже досконально изучив, например, все ассемблерные команды семейства MCS-51, всё равно придётся начинать почти с нуля при переходе на AVR- или Р1С-контроллеры.

Язык Си, как инструмент программирования высокого уровня, позволяет абстрагироваться от мелочей. В частности, можно не держать в уме названия регистров общего назначения, не помнить их количество, не контролировать глубину стека при входе и выходе из подпрограммы. Всё это производится автоматически (и безошибочно!) при компиляции Си-программы. Более того, синтаксис языка Си практически одинаков и для MCS-51, и для AVR, и для PIC, и для ARM, что позволяет без труда осваивать новые микроконтроллерные платформы.

Си-программы пишутся быстрее и легче ассемблерных. Применяются шаблоны на основе стандартных, легко запоминающихся процедур. Плата за удовольствие — меньшее быстродействие и больший размер файлов прошивки памяти МК. Поданному показателю язык Си уступает Ассемблеру примерно на 20…30%. Но, как показывает практика, большой объём ПЗУ современных МК и высокие тактовые частоты с лихвой перекрывают издержки Си-компиляторов, особенно для простых любительских приложений.

Миф 5: на языке Си программы пишут только профессионалы.

Здесь забывают основную концепцию Си-программирования — это многовариантность решения одной и той же задачи. Профессионал составит лаконичную, хорошо структурированную и легко читаемую программу, а любитель напишет неоптимальный и только одному ему понятный «исходник». Но, в случае с МК, выполнять несложные задачи обе программы будут с одинаковым успехом и без больших отличий во времени.

Иногда в Интернете можно встретить суждения о «запутанности», «непонятности», «несуразности» чьих-то исходных листингов. В свою заслугу такие люди ставят «вычищение» текста и сокращение длины программы на пару-тройку байтов. Если функциональность устройства осталась прежней, то получается, что проделан напрасный труд. Опытные программисты так не поступают, а улучшив что-либо в листинге, обязательно укажут фамилию того первопроходца, который первым создал каркас программы и любезно подарил миру свою идею.

Язык Си допускает использование ограниченного числа «понятных» операторов. Никто не заставляет программиста применять алгоритмы, в которых он «плавает». Например, опрос кнопок в МК можно организовать через прерывания, но, если эта процедура кому-то покажется сложной, то существует запасной вариант опроса кнопок через периодическое чтение линий порта.

Существует так называемый «школьный» вариант языка Си, освоить который под силу даже начинающему. В нем любой желающий устанавливает собственные разумные ограничения на синтаксис операторов и функций, составляет перечень разрешённых к применению алгоритмов и стандартных приёмов. Пусть программа получится длиннее, ничего страшного. Степень дальнейшего углубления знаний каждый определяет для себя самостоятельно.

Миф 6: достаточно освоить только один тип МК.

Технически"й прогресс не стоит на месте и притормозить его шаманскими заклинаниями нельзя. Считается, что современный радиолюбитель должен каждые пять лет повышать свой технический уровень. Делать это приходится в индивидуальном порядке по книгам, журналам, Интернету.

Учеба, применительно к МК, имеет свою специфику. В частности, первое изученное семейство не должно стать последним. В начале 2000-х годов специалисты рекомендовали начинать освоение М К с популярной микросхемы АТ89С2051 фирмы Atmel, имеющей ядро MCS-51. Многие любители досконально изучили возможности этого МК и до сих пор успешно разрабатывают простые и полезные для дома конструкции. Но, ограничивая себя одной моделью, человек лишается стимула к приобретению новых знаний.

А сожалеть есть о чем. В частности, родственное семейство ATmega фирмы Atmel допускает внутрисхемное программирование без изъятия МК из панельки, обладает в 12 раз лучшей производительностью и имеет на порядок-два выше объём памяти. Не за горами переход на ещё более «навороченное» 8-битное семейство Atmel ATXmega, недорогие 16-битные DSP и 32-битные ARM с операционными системами реального времени…

Свежим веянием последнего времени становится мультиплатформенность, когда разработчик в своём резюме подчёркивает владение несколькими типами М К. В зависимости от исходных требований технического задания он выбирает ту микросхему, которая позволяет оптимизировать изделие по критерию «цена + качество». Знание методологий разных микроконтроллерных платформ значительно расширяет инженерный кругозор и облегчает восприятие всего нового.

Разработчикам пора научиться гибкости, толерантности и уважительному отношению к МК разных фирм. Признаком хорошего тона должно стать умение применять на практике две-три микроконтроллерные платформы. Соответствующую подготовку должны проходить и студенты в вузах. Будущее за специалис- тами-универсалами. Однако привязанность к какому-то одному семейству МК у человека всё равно останется. Как говорят французы: «Люблю, потому что люблю»; ничего не поделаешь — человеческий фактор.

Оставить комментарий

микросхемы мощности Устройство импульсов питания пример приемника провода витков генератора выходе напряжение напряжения нагрузки радоэлектроника работы сигнал сигнала сигналов управления сопротивление усилитель усилителя усиления устройства схема теория транзистора транзисторов частоты