Форма входа |
---|
Категории раздела | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Поиск |
---|
|
Наш опрос |
---|
Мини-чат |
---|
Контроль |
---|
Партнёры |
---|
Главная » Статьи » Рациональные предложения | [ Добавить статью ] |
Народная мудрость гласит: «Любая задача по плечу, если цель оправдана и вре- мени достаточно». Чтобы убедить читателей в полезности дальнейших занятий и в оправданности траты времени, необходимо проанализировать некоторые усто- явшиеся мифы. Для профессиональных применений, скорее «да», чем «нет», для бытовых из- делий — наоборот. Судите сами, цена дешёвых многократно программируемых МК с флэш-памятью составляет 1…2 доллара США. Если учесть, что микросхема обычно устанавливается в панельку на плате, то один и тот же МК после перепро- граммирования можно использовать в нескольких разных приборах. Получается практически «вечная» микросхема, вплоть до её морального старения или до фи- зического исчерпания ресурса ПЗУ (более 100000 циклов «запись-стирание»). В наши дни сложилась уникальная ситуация, когда нет большой разницы в доступности микроконтроллерной элементной базы в разных странах мира. На первый план выходит логическое мышление, талант программиста и знание стан- дартных схем включения. Вот где надо бы приложить знаменитую славянскую смекалку и сообразительность, оправдывая тезис о высоком интеллектуальном потенциале нации. Действительно, заводские сертифицированные программаторы, по которым фирмы-изготовители МК принимают от потребителей претензии к качеству про- дукции, — это сложные и дорогостоящие приборы. Приобретают их обычно круп- ные промышленные предприятия, аттестованные по системе ISO-9001, на кото- рых налажен массовый выпуск продукции с МК. Для любительских условий подойдут простейшие самодельные программа- торы, подключаемые к персональному компьютеру или ноутбуку через разъёмы COM, LPT, USB. Стоимость деталей самых дешёвых из них составляет 1...2 долла- ра США. Во многих современных МК программатор вообще может потребоваться только один раз для прошивки начального загрузчика. Дальнейшее программиро- вание производится «на лету» по стандартным каналам компьютера COM, USB. Разумеется, научиться чему-либо без желания и труда — это нереально. С дру- гой стороны, когда в учебнике с многообещающим названием «МК для начинаю- щих», встречается фраза: «…Основой булева процессора служит аккумуляторный принцип архитектуры с переключаемыми банками рабочих регистров…», то даже у самого усердного ученика опускаются руки. Предлагаемая далее методика построена на представлении МК в виде авто- номного блока с известными входными и выходными сигналами. Его внутрен- няя структура будет сымитирована максимально упрощёнными схемами, которые практически одинаковы для МК разных платформ. При этом пользователю не обязательно знать детальное строение адресного пространства ОЗУ, не надо изу- чать косвенно регистровые и страничные способы адресации памяти. Немного абстракции, немного упрощений, немного старания и всё получится. Фантасти- ка? Попробуйте и удостоверьтесь сами. Если начинать с Ассемблера, то «да», а если с языка Си, то «нет». Программу на Ассемблере сложнее составлять, дольше отлаживать, труднее анализировать. Вдобавок к тому, нужно максимально глубоко вникать в архитектуру конкретного МК. Но, даже досконально изучив, например, все ассемблерные команды семей- ства MCS-51, всё равно придётся начинать почти с нуля при переходе на AVR- или PIC-контроллеры. Язык Си, как инструмент программирования высокого уровня, позволяет аб- страгироваться от мелочей. В частности, можно не держать в уме названия реги- стров общего назначения, не помнить их количество, не контролировать глубину стека при входе и выходе из подпрограммы. Всё это производится автоматически (и безошибочно!) при компиляции Си-программы. Более того, синтаксис языка Си практически одинаков и для MCS-51, и для AVR, и для PIC, и для ARM, что позволяет без труда осваивать новые микроконтроллерные платформы. Си-программы пишутся быстрее и легче ассемблерных. Применяются шабло- ны на основе стандартных, легко запоминающихся процедур. Плата за удоволь- ствие — меньшее быстродействие и больший размер файлов прошивки памяти МК. По данному показателю язык Си уступает Ассемблеру примерно на 20…30%. Но, как показывает практика, большой объём ПЗУ современных МК и высокие тактовые частоты с лихвой перекрывают издержки Си-компиляторов, особенно для простых любительских приложений. Здесь забывают основную концепцию Си-программирования — это многова- риантность решения одной и той же задачи. Профессионал составит лаконичную, хорошо структурированную и легко читаемую программу, а любитель напишет неоптимальный и только одному ему понятный «исходник». Но, в случае с МК, выполнять несложные задачи обе программы будут с одинаковым успехом и без больших отличий во времени. Иногда в Интернете можно встретить суждения о «запутанности», «непонят- ности», «несуразности» чьих-то исходных листингов. В свою заслугу такие люди ставят «вычищение» текста и сокращение длины программы на пару-тройку бай- тов. Если функциональность устройства осталась прежней, то получается, что проделан напрасный труд. Опытные программисты так не поступают, а улучшив что-либо в листинге, обязательно укажут фамилию того первопроходца, который первым создал каркас программы и любезно подарил миру свою идею. Язык Си допускает использование ограниченного числа «понятных» операто- ров. Никто не заставляет программиста применять алгоритмы, в которых он «пла- вает». Например, опрос кнопок в МК можно организовать через прерывания, но, если эта процедура кому-то покажется сложной, то существует запасной вариант опроса кнопок через периодическое чтение линий порта. Существует так называемый «школьный» вариант языка Си, освоить который под силу даже начинающему. В нем любой желающий устанавливает собственные разумные ограничения на синтаксис операторов и функций, составляет перечень разрешённых к применению алгоритмов и стандартных приёмов. Пусть програм- ма получится длиннее, ничего страшного. Степень дальнейшего углубления зна- ний каждый определяет для себя самостоятельно. Технический прогресс не стоит на месте и притормозить его шаманскими за- клинаниями нельзя. Считается, что современный радиолюбитель должен каждые пять лет повышать свой технический уровень. Делать это приходится в индивиду- альном порядке по книгам, журналам, Интернету. Учеба, применительно к МК, имеет свою специфику. В частности, первое из- ученное семейство не должно стать последним. В начале 2000-х годов специали- сты рекомендовали начинать освоение МК с популярной микросхемы AT89C2051 фирмы Atmel, имеющей ядро MCS-51. Многие любители досконально изучили возможности этого МК и до сих пор успешно разрабатывают простые и полезные для дома конструкции. Но, ограничивая себя одной моделью, человек лишается стимула к приобретению новых знаний. А сожалеть есть о чем. В частности, родственное семейство ATmega фирмы Atmel допускает внутрисхемное программирование без изъятия МК из панельки, обладает в 12 раз лучшей производительностью и имеет на порядок-два выше объ- ём памяти. Не за горами переход на ещё более «навороченное» 8-битное семейство Atmel ATXmega, недорогие 16-битные DSP и 32-битные ARM с операционными системами реального времени… Свежим веянием последнего времени становится мультиплатформенность, когда разработчик в своём резюме подчёркивает владение несколькими типами МК. В зависимости от исходных требований технического задания он выбирает ту микросхему, которая позволяет оптимизировать изделие по критерию «цена + ка- чество». Знание методологий разных микроконтроллерных платформ значитель- но расширяет инженерный кругозор и облегчает восприятие всего нового. Разработчикам пора научиться гибкости, толерантности и уважительному от- ношению к МК разных фирм. Признаком хорошего тона должно стать умение применять на практике две-три микроконтроллерные платформы. Соответствую- щую подготовку должны проходить и студенты в вузах. Будущее за специалис- тами-универсалами. Однако привязанность к какому-то одному семейству МК у человека всё равно останется. Как говорят французы: «Люблю, потому что лю- блю»; ничего не поделаешь — человеческий фактор. | |
Просмотров: 1589
| Теги: |
Всего комментариев: 0 | |