Высказывания и цитаты:

Если мяса с ножа ты не ел ни куска,
Если руки сложа, наблюдал свысока,
А в борьбу не вступил с подлецом, с палачом,
Значит, в жизни ты был ни при чем, ни при чем!
В.С. Высоцкий

Прежде чем начать какое-либо дело любой человек, спрашивает себя — а зачем ему это нужно. Ведь без мотивации и большого желания трудно или невозможно достигнуть большого результата. Я дам ответ в силу моего мировоззрения: какие технические вещи вы используете? — Компьютер, сотовый телефон, стиральная машинка, автомобиль.
Без какой-либо этой вещи трудно представить современную жизнь. И чем дальше вперед шагнет наука, тем таких вещей будет больше. Все современные приборы включают в себя электронные компоненты, а с недавних пор — эти электронные изделия стали настолько сложными, что для их работы понадобилось писать большой и сложный алгоритм. Этот алгоритм можно реализовать аппаратно, делая под каждую задачу свою маску, по которой изготовится партия микросхем. Но это очень дорого и неудобно. В настоящее время изготавливается универсальная микросхема, в которую записываются различные алгоритмы при помощи специализированного устройства — программатора, а данную микросхему называют программируемой.

Уровень развития в области разработки и производства электронной техники за рубежом опережает значительно уровень развития ее в России. Этому способствовал целый ряд причин. Отечественная элементная база в 90-х годах практически не получила развитие. Это было время, в течении которого она осталась практически на том же уровне, что и в последний год существования Советского Союза. Наукоемкие технологии требовали вложения средств, так как такая работа не способна была поддерживать себя собственными силами. Все сложные проекты и фундаментальные разработки должны финансироваться и из государственного бюджета. А частный капитал не всегда заинтересован в долгосрочных проектах, которые неизвестно принесут ли еще прибыль.

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

Причин такого отставания много, но в ближайшем будущем эта ситуация начнет выправляться — вечно быть потребителем и страной сырьевых ресурсов невозможно, сознание людей уже перестало надеяться на чудо, и мысли о халяве постепенно вытеснились из головы. Страна станет самостоятельно на этот уровень развития экономики, другого развития сценария не планируется. Потому что, в настоящее время обстановка в стране стала меняться — меняться к лучшему. По данным американской статистики до 80% от объема всей промышленности занимает электроника. И в большинстве своем этот рынок занят импортными товарами.

Что же остается нам — людям, которые учились на конструкторов электронной техники, ввиду того, что наша профессия как разработчика электронной техники осталась невостребованной. Нам осталось заниматься ремонтом импортной электронной техники))). Незавидная работа, когда было бы гораздо приятней видеть в магазине стиральную машину, для которой сам написал алгоритм. Хотя есть и другие альтернативные варианты: брать заказы на разработку и написание программ какого-либо устройства, это единичные заказы. Это все пойдет в качестве подработки, но если Вы будете один или будете использовать знания не в качестве основной работы, Вы не сможете никогда создать действительно сложные вещи, — надо искать работу на предприятии в этой области!!!

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

На сегодняшний день программируемая электроника пошла по двум направлениям — хотя они и пересекаются между собой в функциональной части, но используют различные способы работы. Это программируемая логическая интегральная схема (ПЛИС) и программируемый логический контроллер. С использованием этих микросхем уменьшаются размеры устройств, снижается потребляемая мощность, повышается надежность в сравнении с устройствами 20-летней давности. Наиболее эффективно их использование в изделиях, требующих нестандартных решений. Другим критерием их использования является потребность резко сократить сроки и затраты на проектирование, лучшая возможность модификации, эмуляции схем и отладки аппаратуры. Отдельная особенность таких микросхем — защита программного обеспечения и аппаратуры от несанкционированного доступа и копирования.

На сегодняшний день существуют немного различных производителей микросхем, которые выпускают ПЛИС (Программируемые Логические Интегральные Схемы), такие как Xilinx, Altera, Actel, Lattice Semiconductor и другие. У каждой фирмы свои названия выпускаемых устройств и свои собственные системы проектирования, которые позволяют проектировать весь спектр цифровых устройств типа FPGA/CPLD. Основные отличия производителей устройств ПЛИС друг от друга заключается в архитектуре построения внутренних программируемых комбинационных схем, способом загрузки программирования ПЛИС, емкостью логических элементов, числом эквивалентных вентилей, технологии изготовления кристаллов, различные типы корпусов ПЛИС и т. д.

cyclone-ep1c6q240c8n

Микросхемы ПЛИС – это не микроконтроллеры, в которых пользовательская программа выполняется последовательно, команда за командой. В ПЛИС реализуется именно электронная схема, состоящая из логики и триггеров.

Программируемая Логическая Интегральная Схема (аббревиатура по-английски FPGA — Field Programmable Gate Array), также употребляют понятие CPLD (аббревиатура по-английски CPLD complex programmable logic device).

ПЛИС содержат относительно крупные программируемые логические блоки — макроячейки, соединённые с внешними выводами и внутренними шинами. Функциональность CPLD кодируется в энергонезависимой памяти. FPGA содержат блоки умножения-суммирования, которые широко применяются при обработке сигналов (DSP), а также логические элементы (как правило, на базе таблиц перекодировки — таблиц истинности) и их блоки коммутации. FPGA обычно используются для обработки сигналов, имеют больше логических элементов и более гибкую архитектуру, чем CPLD. Программа для FPGA хранится в распределённой памяти, которая может быть выполнена как на основе энергозависимых ячеек статического ОЗУ — в этом случае программа не сохраняется при исчезновении электропитания микросхемы (при каждом включении питания микросхемы необходимо заново конфигурировать её при помощи начального загрузчика, который может быть встроен и в саму FPGA), так и на основе энергонезависимых ячеек Flash-памяти или перемычек antifuse.

Для программирования используются программаторы и отладочные среды, позволяющие задать желаемую структуру цифрового устройства в виде принципиальной электрической схемы или программы на специальных языках описания аппаратуры: Verilog, VHDL, AHDL и др.

Мы здесь плагиатом не занимаемся, поэтому пишу ссылки:
обзор, программное обеспечение, уроки проектирования, занятия»
Реферат по ПЛИС.docx»
архитектура ПЛИС»
пример программирования ПЛИС «
первый проект на ПЛИС Altera»
сравнение типов FPGA и CPLD»

ссылки буду добавлять и перемещать, создавать новые разделы, когда накопится много информации, пока так.

Контроллер — устройство управления в электронике и вычислительной технике. Типов контроллеров существует большое разнообразие. Все эти устройства выполняют пользовательскую программу последовательно шаг за шагом. Все они имеют структуру, подобную маленькому персональному компьютеру: Арифметико-логическое устройство (АЛУ) — аналог процессора, оперативную память ОЗУ (в отличие от компьютерной — она здесь статическая), flash-память ПЗУ (аналог жесткого диска), устройства ввода-вывода это порты контроллера (аналог клавиатуры, монитора и т.д.). Как мы заметили — контроллер имеет все те же структурные блоки, что и персональный компьютер, но у него на порядки меньше вычислительные возможности каждого блока, но это для него не главное — у них другие задачи, таких возможностей достаточно для определенного рода задач.
Я бы хотел обратить внимание на два типа контроллеров, с которыми придется работать конструктору: Микроконтроллер и Промышленный контроллер. В наибольшей степени вероятности вам не понадобятся другие типы, как как они специализированные и имеющие в составе выше названные.
Микроконтроллер — микросхема, управляющая электронными устройствами.
220px-ATtiny2313
Промышленный контроллер — управляющее устройство, применяемое в промышленности и других отраслях для автоматизации технологических процессов и в быту.

controller
Производителей промышленных контроллеров много: Siemens, Mitshubishi, Omron и другие, с которыми я не имел дела.
Для написания программ для контроллеров используются следующие языки

1) Sequental Function Chart (SFC) – язык последовательных функциональных блоков – находится над всеми остальными и дает возможность описать логику программы на уровне чередующихся функциональных блоков и условных переходов;
sfc

2) Function Block Diagram (FBD) – язык функциональных блоковых диаграмм – позволяет строить сложную комплексную процедуру из элементарных библиотечных блоков;
yazik-programirovaniya-FBD

3) Ladder Diagrams (LD) – язык релейных диаграмм – используется для описания различных логических выражений и реализует такие элементы, как открытый и закрытый контакты, виток. Кроме того, реализованы функции и функциональные блоки;
Ladder-Diagram

4) Structured Text (ST) – язык структурированного текста – относится к классу языков высокого уровня и по мнемонике похож на Pascal;
st

5) Instruction List (IL) – язык инструкций – принадлежит к классу языков низкого уровня и позволяет создавать высокоэффективные функции. Его имеет смысл применять для написания наиболее критичных мест.
Instruction-List

На вкус и цвет товарищей нет — люди, которые много лет занимаются написанием программ предпочитают писать Ladder Diagrams, они говорят, что это вначале сложнее для понимания, но если вы его изучите, то потом не вернетесь на FBD. Некоторые контроллера имеют такие элементы, которые реализовать в Ladder Diagrams может не получиться, тогда программист переключает режим и пишет часть кода в Instruction List, я столкнулся с этим, когда мы переделывали часть кода на ЧПУ Siemens 840D. Instruction List я бы сравнил с языком ассемблера, и отсюда все соответствующие преимущества и недостатки. Я много лет занимался программированием микроконтроллеров на ассемблере и он сразу стал мне понятен, но он не является наглядным. О работе ЧПУ я напишу в другой статье.
Хочу обратить внимание, что почти все производители держат высокую цену на программное обеспечение для своих контроллеров. Его трудно найти в интернете в свободном доступе, там можно скачать те программы, которые выпущены давно, а которые вам нужны для нового контроллера либо триал версия либо требует покупки.
В свое время я прошел обучение по программированию контроллеров Siemens на своем заводе — с их помощью, с их же панелями и другим оборудованием можно делать просто красивые вещи.

Мой интерес же заняли микроконтроллеры — потому что они дешевы, потому что на те микроконтроллеры, которые мне попались я нашел документацию в свободном доступе. С 2007 года и на сегодняшний день считается, что самыми перспективными микроконтроллерами являются представители семейства ARM. Из них на ARM7,ARM9,ARM11,Cortex A, Cortex M я бы посоветовал обратить внимание. Они дешевы, высокопроизводительны, для них созданы отличные средства отладки и разработки. Самостоятельно изучать их с нуля я думаю будет трудно — и после нескольких месяцев траты времени я думаю, вы бросите. Но именно на них в первую очередь я буду делать внимание.
А тогда в далеком прошлом мне попался 8-ми разрядный микроконтроллер PIC от Microchip. Для него была бесплатная среда разработки и много документации в свободном доступе. В институте его тогда не преподавали, преподаватели сами не знали о микроконтроллерах ничего. Потом я изучил микроконтроллер AVR от Atmel. Он обладает преимуществом в цене, быстодействии, простоте работы по сравнению с PIC, — и если вы первый раз беретесь изучать микроконтроллеры, рекомендую — начинать надо именно с него!!!
Остальные производители, типа MSP430, Philips, Motorola, Holtec, Cypress и многие многие другие имеют даже лучшие характеристики чем PIC и AVR, но они не получили такой популярности, потому что на них мало документации, они остались уделом не любителей-конструкторов, а промышленных предприятий. О каждом будет сказано в статьях. Arduino — для многих людей, которые хотят быстро и сразу ничего не читая до этого и не паяя. Благодаря тому, что эти наборы имеют готовые библиотеки примеров, можно не долго думая собрать нормальные по функциям устройства, но очень сложные свои устройства на них сделать трудно, но таких случаев может просто не быть

Если Вы однажды выучили программирование какой либо модели микроконтроллера, вы легко выучите и другие модели, они в большинстве устроены аналогично. Для написания программ для микроконтроллера используются языки ассемблер и Си, все остальные языки — java, basic я бы не рекомендовал, потому что ассемблер это язык низкого уровня, все языки осуществляют преобразования со своего уровня в язык ассемблера, а он необходим для понимания работы, отладки устройства, у меня часто бывают такие ошибки, которые можно исправить, только включив отладку ассемблерного кода. Но писать программу на ассемблере долго и трудно, очень сложно переносить ее с одного микроконтроллера на другой. Большинство разработчиков пишут именно на СИ и примеров на нем великое множество, он понятен, наглядный. Java — современный язык, похож на СИ, но как я сказал — на нем пока мало примеров, мало производителей его поддерживают. Basic на мой взгляд не очень удобен, и опять же мало примеров, мало средств для разработки.
Итак, вы поняли примерно, с чего начать.
С первых уроков Вы сможете помигать светодиодами, потом переделаете чужую программу, потому что изучение лучше начинать на чужих примерах, потом напишите что-нибудь простенькое сами, потом подключите интерфейсы для обмена информацией к любому устройству — по такому пути шел я. Не думайте что это очень сложно, вопрос только во времени и в преподавателе. Успехов!
Продолжение следует…