Для чего необходима плата контроллера
Что такое контроллер, и с чем его едят?
Автор:
Опубликовано 01.01.1970
Ура, свершилось! Открываем раздел по микроконтроллерам!
Я знаю, что все вы, дорогие товарищи, давно держите в своих пытливых умах целый список вопросов про контроллеры. Но не знаете, кому их задать… Теперь жить вам должно стать чуть-чуть проще, ибо мы ответим на все (почти все) ваши вопросы.
- процессор
- оперативная память — ОЗУ
- постоянная память — ПЗУ
- генератор тактовой частоты
- таймеры
- порты ввода/вывода
- последовательные интерфейсы
- и много чего еще.
Например, в более «навороченных» контроллерах может быть АЦП (аналого-цифровой преобразователь), ЦАП (наоборот) и прочие прибамбасы. Чего только ни придумают! Но мы с вами, для начала, рассмотрим более простой вариант. Для примера возьмем контроллер фирмы Atmel, AT90s2313.
Чтобы понять, как работает контроллер, надо знать, что у него внутри. Ниже я нарисовал как мог сильно упрощенную схему контроллера – без таймеров, генераторов и прочей фигни – все только самое необходимое.
Самый главный элемент любого процессора – арифметико-логический узел (АЛУ). Кстати, по буржуйски он называется так-же – ALU (ariphmetic-logical unit). В нем-то, как вы уже догадались, и происходят все мыслимые и немыслимые арифметические и логические операции над числами. Кстати, насчет чисел: контроллер, как и любая другая цифровая система, работает с двоичными числами. О том, что это такое, я подробно распинался в статье «Что такое digital».
Тот контроллер, который мы сейчас мучаем, работает с 8-разрядными двоичными числами, иными словами – он 8-битный. То есть, АЛУ может захавать два 8-битных слова, произвести над ними какую то арифметическую или логическую операцию, и выплюнуть ответ – опять же, 8-битное слово.
Вопрос: а какие бывают арифметические и логические операции? И че эт ваще такое?
Ну, арифметическим операциям нас всех учили еще в 1 классе – это сложение, вычитание, сравнение 🙂
Логические операции – это операции алгебры логики. Вот некоторые из них: «И», «ИЛИ», «НЕ», «исключающее ИЛИ», сдвиг влево, сдвиг вправо.
Также существуют операции, которые ни относятся ни к тем ни к другим: сброс в «0», установка в «1» и т.п.
Чтобы произвести операцию, АЛУ должен взять откуда-то два числа. Выполнив операцию, опять же, должен положить куда-то ответ. Для этих целей служат регистры общего назначения – РОН. Их у нас 16. Каждый регистр – это ячейка памяти емкостью 8 бит. Иначе говоря – 1 Байт. Именно в них и хранятся числа, с которыми работает АЛУ.
Для каждой команды, которую выполняет АЛУ, необходимо назвать те регистры, с которыми он будет в данный момент работать.
Пример:
add R16,R17 — сложить значение регистров R16 и R17 и положить ответ в R16
sub R16,R18 — вычесть из R16, R18 и положить ответ в R16
and R24,R17 — произвести операцию «И» с R24 и R17, ответ – в R24
eor R16,R24 — произвести «исключающее ИЛИ» с R16 и R24, ответ – в R16.
Как вы могли заметить, ответ всегда помещается в тот регистр, который назван первым.
Естественно, старое содержимое регистра при этом затирается. Если нам нужно сохранить изначальное содержимое регистра, то перед операцией надо скопировать его в какой-нибудь другой регистр. Иначе – никак.
Оператор копирования – mov
Пример:
mov R16,R17
add R17,R24
Кроме РОН, на схеме присутствует ОЗУ – оперативная память контроллера. Для чего она?
Да для того, чтобы хранить данные при выполнении программы. Регистров ведь – всего 16. Для полноценной работы этого явно недостаточно. В регистрах хранится обычно только те данные, которые будут использоваться непосредственно прямо сейчас. Все остальное удобнее положить в память. Позднее мы поговорим о таких вещах как стек, указатели и пр. Пока что запомним, что память есть.
Ну вот. Откуда АЛУ берет данные для вычислений – разобрались. Теперь разберемся, откуда он берет команды.
А все очень просто!
Для этого существует регистр команд. В этот регистр постепенно выводятся команды той программы, которую выполняет контроллер. Эти команды касаются всего контроллера, а не только АЛУ (как мы помним, в контроллере просто тьма всего). Чтобы «выудить» из общей кучи «свою» команду, АЛУ постоянно заглядывает в регистр команд на предмет, нет ли там что-нить для него. И как только видит – стрелой мчится выполнять.
В регистр команд, команды попадают из программной памяти. Программная память – это ПЗУ (постоянное запоминающее устройство), в котором по каждому адресу записана одна команда. Вместе, все эти команды и составляют программу, и записаны в той последовательности, в какой они стоят в программе.
Чтобы «достать» команду из ПЗУ, надо сказать ему адрес ячейки памяти, в которой лежит эта команда. В ответ, ПЗУ выдаст содержимое этой ячейки. Команды записываются в ячейки в той последовательности, в которой стоят в программе. Поэтому, для того чтобы последовательно «перебирать» команды, достаточно просто каждый раз прибавлять к адресу «1».
Именно этим и занимается счетчик команд.
Однако же, программа, выполняющаяся внутри микросхемы и ни коим образом не связанная с внешним миром была бы просто никому не нужна. Для полноценной работы, контроллеру необходимо обмениваться данными с внешним миром.
Для этого существуют порты ввода/вывода (ПВВ).
Порт – это пачка однобитных каналов, каждый из которых может быть независимо настроен либо на ввод, либо на вывод.
В контроллере AT90s2313 два ПВВ – PortB и PortD.
PortB состоит из 8-ми каналов,
Portd – из 7-ми.
Эта «культяпость» порта D объясняется простой нехваткой ножек микросхемы. Просто разработчики очень хотели запихнуть все это дело в 20-ножный корпус, и поэтому урезали PortD на один канал.
Любая программа для контроллера начинается именно с настройки портов. Мы должны определить, какие каналы будут работать на ввод, какие – на вывод. По умолчанию, все каналы включены на ввод. Но это мы обсудим чуть позже.
Ну в общем-то, вот первоначальные сведения о микроконтроллерах.
Дальше мы поговорим о том как написать, скомпилировать и зашить в контроллер его программу.
Большая Энциклопедия Нефти и Газа
Плата контроллера обычно снабжается разъемом, к которому может быть подключен кабель, ведущий к самому устройству. Многие контроллеры способны управлять двумя, четырьмя или даже восемью идентичными устройствами. [2]
Для ПЭВМ ДВК, в которых установлена плата контроллера графического дисплея ( КГД), разработан интерпретатор языка Бейсик ( GBASIC), включающий операторы графики. [3]
Импульсы с АЦП поступают на счетный вход платы контроллера , где входящая в состав платы однокристальная микроЭВМ по заданному алгоритму производит подсчет этих импульсов и принимает соответствующее решение о подаче сигналов на формирователь телемеханики. [4]
С выхода триггера 12 последовательность импульсов поступает на плату контроллера . [5]
УКП-202К состоит из небольшого приборного шкафа, в котором смонтированы плата контроллера , блок питания и клеммные соединители. [6]
Микропроцессорный контроллер состоит из аналогового блока, содержащего преобразователь частоты селектора и аналого-цифровой преобразователь ( преобразователь напряжение-частота); платы контроллера , которая связана с дисплейной платой, имеющей дисплейную и клавиатурную части, и платой преобразователей. [7]
Сетевой уровень с функциональной точки зрения является программным, и для реализации его функций может оказаться необходимым предусмотреть наличие платы интеллектуального контроллера обмена информацией. [9]
Функциональная схема системы приведена на рис. 2.2 и состоит из следующих элементов: датчики герметичности; аналоговый блок; дисплейная плата; плата контроллера ; плата преобразователей. [10]
Контроллер AUZ, выполненный на микросхеме К588ВГ6 предназначен для декодирования командных слов, пришедших с внешней магистрали через ретраслятор ни, выработки управляющих сигналов последовательного опроса счетчиков Д5 через мультиплексор ftflS — MX. Адреса модулей устанавливаются на плате контроллера и сравниваются в кодере. Каждый запрос контроллеру от компьютизированной станции состоит из двух командных слов. В первом слове закодирован адрес контроллера. Второе слово без адреса это обусловлено формированием сигнала СНА контроль запроса и дальнейшим формированием электрической схемой записи информации и выдачи ответных слов. [11]
Функциональные модули, с помощью которых изменяется конфигурация устройства, представляют собой платы размером 70×40 мм. Устанавливаются они на специальные разъемы прямо на плату контроллера . Количество одновременно устанавливаемых модулей зависит от заданной заказчиком конфигурации устройства. [12]
При аппаратной реализации создание и регенерацию избыточных данных обрабатывает интерфейс контроллера диска. Некоторые поставщики реализуют защиту данных RAID напрямую в оборудовании, как в платах контроллеров дисковых массивов . Поскольку методы зависят от поставщика и не используют драйверы операционной системы, они обычно дают повышенное быстродействие по сравнению с программной реализацией. [13]
Если промышленно-выпускаемый Одноплатный контроллер по каким-либо причинам не удовлетворяет разработчика, то для совместной отладки программных и аппаратных средств может быть использован специальный пульт отладки и эмулятор ПЗУ. При таком подходе первый и второй этапы отладки выполняются независимо друг от друга. Прикладное ПО может быть отлажено с помощью кросс-средств, реализованных на ПЭВМ. Готовый загрузочный модуль под управлением ПЭВМ загружается в эмулятор ПЗУ. В качестве эмулятора может быть использован модуль ППЗУ с ультрафиолетовым стиранием или модуль ОЗУ, снабженный автономным источником питания, который позволяет сохранить информацию при переносе. После записи программы эмулятор ПЗУ механически переносится на плату контроллера . Выполнение записанной в эмуляторе ПЗУ программы ведется под управлением специального пульта отладки, функции которого аналогичны функциям отладчика. [14]
Этот модуль используется в нерекуперативных системах электроприводов для преобразования трехфазного переменного напряжения в постоянное. Для снижения вредного влияния высших гармоник на качество питающего напряжения применяют двенадцатипульсную схему выпрямителя. Она может быть построена из двух шестипульсных выпрямителей, питающихся от общего трехобмоточного трансформатора с двумя вторичными обмотками, сдвинутыми на 30 электрических градусов. Чтобы предотвратить чрезмерный рост среднего значения выпрямленного напряжения при групповом торможении, устанавливается блок тормозных резисторов. Базовая конфигурация состоит из шестипульсного диодного моста со сглаживающим реактором постоянного тока, платы контроллера для управления одним шестипульсным диодным мостом. [15]
О промышленных контроллерах «на пальцах» для «чайников»
Что такое и какие задачи решает контроллер (регулятор) для промышленности? Каким может быть контроллер и что такое система с микропроцессорным управлением? Подробные ответы на эти вопросы вы найдёте в статье ниже.
Для начала нужно четко понять, что целью любого промышленного контроллера, в том числе программно-логического (с программируемой логикой) является управление оборудованием и/или процессом, а решаемые контроллером задачи в каждом конкретном случае могут быть разными — контролировать последовательность событий, поддерживать постоянство некоторой переменной, следовать какому-то заданному изменению и т. д.
Так, например, система управления автоматическим сверлильным станком может включить опускание сверла, когда заготовка находится в нужном положении, начать собственно сверление, когда сверло достигает заготовки, остановить процесс сверления, когда выполнено отверстие требуемой глубины, поднять сверло, выключить его до момента замены заготовок и повторения операции.
В то же время система управления конвейером может использоваться для контроля количества предметов, движущихся по конвейерной ленте, и направления их в упаковочный ящик, причем о наличии предмета на ленте может поступать сигнал от фотодатчика, датчика температуры, веса, а контроллер будет управлять электродвигателем, перемещающим конвейерную ленту, клапанами проходов/переходов и т. д.

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

Здесь под логикой следует понимать правильную последовательность действия контроллера по завершению события (сигналу от датчика). По сути, контроллер действует в полной аналогии с логикой или мыслительным процессом квалифицированного профильного рабочего, который при ручном сверлении сначала размещает заготовку, потом включает двигатель, опускает сверло, выполняет сверление на заданную глубину, поднимает сверло, выключает двигатель, меняет заготовку. А значит в контроллер необходимо изначально «вложить» эту логику, что может быть сделано с помощью жесткой зависимости переключателя/реле от датчика или путем программирования «умного» контроллера с микропроцессором.
Что такое система с микропроцессорным управлением
По сути, вместо того, чтобы жестко использовать каждую цепь переключений для каждой ситуации, более целесообразно создать одну и ту же базовую систему с набором переключателей, реле, датчиков и микропроцессором, а затем для определенного процесса подготовить программу, которая будет «инструктировать» микропроцессор, как реагировать на каждый входной сигнал и куда подавать управляющие команды. Т. е., упрощенно, это может быть программа вида: «если переключатель «A» замыкается подать сигнал на цепь двигателя, если переключатель «B» замыкается — сигнал на цепь клапана» и т. д.
Изменяя инструкции в программе, можно использовать одну и ту же микропроцессорную систему для управления самыми разными ситуациями, как, например, современная бытовая стиральная машина — входные сигналы в нее поступают от циферблатов, используемых для выбора требуемого цикла стирки, переключателя, сигнализирующего, что дверца машины закрыта, датчиков температуры и уровня воды. На основе этих входных данных микропроцессор запрограммирован на выдачу выходных сигналов, которые включают двигатель барабана и регулируют его скорость, открывают или закрывают клапаны холодной и горячей воды, включают сливной насос, управляют водонагревателем и дверным замком, чтобы машину нельзя открывать, пока цикл стирки не завершится.
Программируемый логический контроллер (ПЛК) — это особая форма микропроцессорного контроллера, который использует программируемую память для хранения инструкций и реализации таких функций, как логика, последовательность, синхронизация, вычисления для управления машинами и процессами. ПЛК изначально разрабатываются инженерами, возможно, с ограниченным знанием компьютеров и языков программирования, но с квалификацией, обеспечивающей создание устройства, которое можно программировать узкопрофильным IT-специалистам по заданному техническому заданию в зависимости от конкретного технологического процесса.

Или проще, контроллеры с пакетом входов и выходов создаются инженерами, а программируются по изначально заданной логике, которая определена конкретным технологическим процессом, программистами, например, если происходит A или B, включается C, если происходит A и B, включается D и т. д. Причем изначально тандемом инженер-программист в контроллер закладывается возможность изменения параметров регулирования, телекоммуникация с системами автоматики, диспетчерским пунктом, пользовательскими терминалами и пр.
Большое преимущество ПЛК заключается в том, что один и тот же базовый контроллер можно использовать с широким спектром систем управления, а, чтобы изменить систему и правила действий нужно всего-то ввести другой набор инструкций. В целом ПЛК похожи на компьютеры, но в то время как компьютеры оптимизированы для задач расчета и отображения, контроллеры с программируемой логикой — для задач управления в промышленной среде, а потому они:
- прочные, надежные, инертные (в допустимых пределах) к вибрациям, шуму, изменениям температуры, влажности;
- имеют интерфейс для входов и выходов уже внутри контроллера;
- легко программируются;
- как правило, имеют понятный язык программирования, который в первую очередь связан с логикой и операциями переключения.
Об основных комплектующих, входах, выходах, интерфейсе контроллеров в следующих материалах.
Зачем нужен контроллер
Так уж получается, что поколения компьютерной техники сменяются очень быстро, и то, что считалось современным 2 года назад, сейчас уже отсталое и снятое с производства. Но что делать потребителю, который не рассчитывает на замену всего комплекса компьютерных устройств каждые 3 года, а хочет всего лишь новый системный блок, оставляя старый принтер, сканер или TV Tuner, и оказывается, что их порты отсутствуют на новом системном блоке или ноуте, потому что считаются устаревшими? А если наоборот: человек на старый системный блок хочет подцепить современную цифровую камеру или несколько USB устройств, а гнёзд не хватает.
Во всех этих случаях помогают самые разнообразные контроллеры. Они бывают как внешние для ноутов, так и в виде плат, вставляемых в PCI порт стандартного ПК. Контроллер — это переходник и разветвитель, если говорить о нём упрощённо. С помощью 1 платы контроллера на старый ПК можно добавить 4-6 USB портов, одни из которых будут находиться на задней планке ПК, а другие будут внутри блока на самой плате контроллера.
Не всегда купленный контроллер будет совместим с Вашим ПК и вполне возможно, что придется его подбирать, меняя на контроллер другого производителя, иначе ПК будет зависать и вытворять другие неприятные вещи.
На большинстве ПК также отсутствует порт 1398, на самом деле тоже являющийся частью USB и используемый многими производителями видеокамер для их подключения к ПК. Такой порт часто используется в контроллерах разветвителях USB совместно с стандартными портами USB.
Также на практически всех современных ПК отсутствует порт LPT, используемый большинством моделей устаревших, но до сих пор работающих, принтеров. Для использования этих портов тоже существуют вставляемые в порт PCI контроллеры, а также внешние контроллеры — переходники с LPT на USB (правда, не всегда срабатывающие).
Так же не забудьте о других переходниках с интерфейсом USB. Это переходники PCI- LPT для настольного ПК или PCMCIA LPT для ноутбука.
