Сравнение ПЛМ и контроллеров

jbox
Offline
Зарегистрирован: 30.12.2018

Здравствуйте уважаемые форумчане!

Я наслышан, что в настоящее время задачи автоматизации возможно решать двумя способами: приминением контроллеров ( тот же ардуино ) и применением программируемых логических матриц ( ПЛМ ). Хочу рассмотреть плюсы и минусы применения тех и других устройств в конкретных задачах. Где хороши контроллеры? Где хороши ПЛМ?

Если я правильно понимаю ПЛМ представляет из себя набор логических элементов НЕ, ИЛИ, И, ИСКЛ. ИЛИ. Которые внутри микросхемы возможно соединять в различные схемы путем пережигания перемычек.

Контроллер представляет из себя процессор, который обрабатывает заложенный в память скетч.

Таким образом ПЛМ решает задачи аппаратно, контроллер - программно.

Ну, допустим, я захотел создать электронные часы на ПЛМ или просто на ТТЛ логике. Что мне потребуется? Задающий генератор ( три элемента НЕ + навесные резистор, конденцатор и кварц. ) Потребуется делитель частоты ( счетчик ), выдающий на выходе 1 Гц. Потребуются счетчики секунд, минут и часов. Потребуется преобразование двоичного кода в код семисегментных индикаторов, потребуется логика для коррекции показания часов и несколько кнопок. Поколдовав с электрической схемой все это возможно собрать на элементарной ТТЛ логике или на той же ПЛМ, но решение будет весьма жестко привязано к типу применяемого индикатора. Что-то изменить в схеме будет весьма затруднительно ( разработка новой схемы и перепрограммирование ПЛМ возможно понадобится изменение печатной платы ( например при использовании другого индикатора. Плюсы: ТТЛ логика не расходует ресурсы в холостую. Генератор занимается своим делом, счетчики своим, логика индикации своим, логика коррекции хода - своим.

Если собирать часы на контроллере возникает следующая проблема: встроенный в схему ардуино кварц не годен для формирования с высокой точностью импульсов частотой 1 Гц. т.к. программный подсчет числа таких импульсов зависит от количества операций, выполняемых процессором в скетче т.е. от длинны и сложности скетча. Следовательно задающий генератор и счетчик/делитель до 1 Гц необходимо выносить в отдельное устройство ( таймер реального времени ). Все остальное ( вывод индикации на разного типа дисплеи, управление коррекцией хода и и даже дистанционное управлеие такими часами решается программно. Причем никаких изменений физически в плату вносить не придется ( при смене индикатора, при добавлении, например термометра к часам, при конструировании часов, висящих, например на стене здания и коррекцию хода которых решить можно исключительно дистанционно.

Для дистанционного управление ПЛМ придется изрядно попотеть меняя схему управления счетчиками, конструируя физический уровень приема и передачи сигнала ( по тому же интерфейсу RS-485.

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

ПЛМ гораздо менее гибок. Любое даже незначительное изменение функционала или модификации под другой индикатор потребует перелопачивать всю электрическую схему ( или как минимум ее части ). Требует серьезной квалификации разработчика, знания на физическом уровне логики работы применяемого индикатора ( динамический, статический и т.д. и т.п. )

Таким образом конструирование на контроллерах существенно проще. ПЛМ - существенно надежнее из-за применения аппаратных методов решения задачи. Впрочем и то и другое утверждение для меня не столь очевидны.

Таким образом область применения контроллеров - широкая область задач, максимальная гибкость в бытовой и частично в промышленной автоматике. Область применения ПЛМ - существенно более узка. Только промавтоматика критичная к надежности.

Хочу услышать мнение знающих. Так ли все я расписал?

Заранее спасибо.

 

 

 

 

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

по ПЛМ это к Юрию Панчулу

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Кроме старых ПЛМ из чисто логики, сейчас есть более сложные изделия, содержащие внутри себя в т.ч. и сумматоры, память и мн. др. элементы, из которых "контроллер" (в т.ч. и многопроцессорный) реализуется под задачу, со своей системой команд используя язык проектирования Verilog или аналогичный. В общем-то сейчас т.н. "микроконтроллеры" ( и не только) так и проектируются, а некоторые сразу используют такие такие ПЛИС.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

jbox пишет:

Если собирать часы на контроллере возникает следующая проблема: встроенный в схему ардуино кварц не годен для формирования с высокой точностью импульсов частотой 1 Гц. т.к. программный подсчет числа таких импульсов зависит от количества операций, выполняемых процессором в скетче т.е. от длинны и сложности скетча. Следовательно задающий генератор и счетчик/делитель до 1 Гц необходимо выносить в отдельное устройство ( таймер реального времени ).

Отнюдь.

Таймер - пожалуй одно из наиболее стандартных переиферийных устройств, а потому присутствует в любом из современных микроконтроллеров. Следовательно, учет времени можно сделать аппаратным и, следовательно, от "количества операций" его работа не будет зависеть в принципе.

Другое дело, стабильность работы такого генератора будет определяться стабильностью работы кварца. И точности "обычного" кварцевого, а тем более - керамического резонатора для часов, как правило, окажется недостаточно. Ну так это уже вопрос обвеса, который мало зависит от того, внутренний ли это таймер или внешний RTC. Опять же, во многих МК уже есть встроенный RTC - как одно из периферийных устройств.

 

А в целом по изложенной проблеме: у меня сложилось впечатление, что специалисты по МК и специалисты по ПЛИС являются двумя изолированными (и взаимоисключающими друг друга) группами специалистов. Поэтому встретить человека, одинаково хорошо разбирающегося как в МК, так и в ПЛИС (имеется в виду не тривиальный случай, при котором квалификация в обеих областях =0), мне кажется, довольно маловероятно.

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Тех специалистов по ПЛИС, кого знаю лично - все на 146% выросли из специалистов по IBM PC, затем вошли в разряд "специалистов по МК" и позже ушли на Verilog. :)

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Когда начали объединять ПЛИС с АЦП и ОЗУ  начался новый скачек технологий https://habr.com/post/323716/

ПС: Это значит - нарисуй себе свой МК который даже не будет нуждаться в извлечении кода команды из памяти, что еще сильнее ускорит процесс работы системы в целом.

IvanKor
Offline
Зарегистрирован: 30.04.2018

jbox пишет:
Для дистанционного управление ПЛМ придется изрядно попотеть меняя схему управления счетчиками, конструируя физический уровень приема и передачи сигнала ( по тому же интерфейсу RS-485.

Можно через RS-485 или 1 Gigabit Ethernet  https://habr.com/post/369389/  под рутом : cat dma.rbf > /dev/fpga0 где dma.rbf собственно ПЛМ написанная на верилоге, который подобен "С". Т.е. различий нет ... они стерты. Осталась разница только в цене.

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

andriano пишет:

А в целом по изложенной проблеме: у меня сложилось впечатление, что специалисты по МК и специалисты по ПЛИС являются двумя изолированными (и взаимоисключающими друг друга) группами специалистов. Поэтому встретить человека, одинаково хорошо разбирающегося как в МК, так и в ПЛИС (имеется в виду не тривиальный случай, при котором квалификация в обеих областях =0), мне кажется, довольно маловероятно.

а Юрий Панчул )))

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016
andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

ua6em пишет:

а Юрий Панчул )))

А какой у него ник на форуме?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

andriano пишет:

ua6em пишет:

а Юрий Панчул )))

А какой у него ник на форуме?

Юрий Панчул - разработчик и верификатор микропроцессорных ядер он везде Юрий Панчул )))

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

А подскажите мне, темному, ПЛМ это CPLD или FPGA?

Вроде и те и  другие и программируемые и логические и матрицы. Но разница весьма значительная.