Категории
Самые читаемые
onlinekniga.com » Компьютеры и Интернет » Программирование » Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С - Стивен Барретт

Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С - Стивен Барретт

Читать онлайн Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С - Стивен Барретт

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 87 88 89 90 91 92 93 94 95 ... 150
Перейти на страницу:

// Функция newline производит запись во все знакоместа одной код символа " "

// -------------------------------------------------------------------------

void newline() {

 int i;

 for(i=0; i<16; i++) LCD_char(' ');

}

// ------------------------------------------------------------------------

// Функция LCD_output производит преобразование кодов ASCII строки символов

//в коды табл. рис. 5.15 для отображения на дисплее и передает эту строку в

//ОЗУ буфера экрана дисплея

// ------------------------------------------------------------------------

void LCD_output(char s[]) {

 int n = 0;

 while (s[n] != '') {

  LCD_char(s[n]);

  ++n;

 }

}

// --------------------------------------------------------------------

// Функция delay формирует временную задержку длительностью в указанное

//число мкс

// --------------------------------------------------------------------

void delay(int usec) {

 int i,j;

 for(i=0; i<usec; i++) {

  for(j=0; j < 7; j++) { }

 }

}

// ------------------------------------------------------------------

// Функция write конфигурирует линии порта PORTP для вывода данных на

// дисплей

// ------------------------------------------------------------------

void write() {

 DDRP = 0xFF; //Порт PORTP на вывод

}

// -------------------------------------------------------------------------

// Функция data производит запись одного символа в ОЗУ данных дисплея. Перед

// обменом с контроллером дисплея контролируется бит состояния, который

// свидетельствует о том, закончил контроллер выполнение предыдущей команды

// управления или нет. Затем на порт PORTP выставляется код символа и

// формируются необходимые сигналы управления

// -------------------------------------------------------------------------

void data(unsigned char n) {

 status_wait();

 PORTP = n;

 PORTDLC = 0xFF;

 PORTDLC = PORTDLC & 0xF7; //C/D в 0

 PORTDLC = PORTDLC & 0xFE; //WR в 0

 PORTDLC = PORTDLC & 0xFB;

 enable();

 disable();

}

// -------------------------------------------------------------------

// Функция command производит передачу команды управления в контроллер

// дисплея

// -------------------------------------------------------------------

void command(unsigned char n) {

 status_wait();

 PORTP = n;

 PORTDLC = 0xFF;

 PORTDLC = PORTDLC & 0xFE;

 enable();

 disable();

}

5.7. Управление электрическим двигателем

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

5.7.1. Силовые полупроводниковые ключи

Для подключения к обмоткам двигателя под управлением МК источника напряжения достаточной мощности могут быть использованы различные приборы: электромагнитные реле, твердотельные реле, биполярные транзисторы и некоторые другие типы транзисторов. В нашем примере мы будем использовать для этой цели мощные полевые транзисторы. В русскоязычной литературе их называют мощными МДП-транзисторами (МДП — Металл-Диэлектрик-Полупроводник), в англоязычной литературе используют аббревиатуру MOSFET (Metal Oxide Semiconductor Field-Effect Transistor). Мы остановились на этом типе полупроводниковых приборов потому, что в современных коммутаторах для двигателей малой и средней мощности используются именно эта элементная база.

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

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

МДП-транзистор может работать как в режиме усиления сигнала, так и в ключевом режиме. Мы будем использовать МДП-транзистр в ключевом режиме для коммутации напряжения питания к обмотке двигателя во время длительности импульса ШИМ-сигнала.

МДП-транзистор имеет три электрода: сток (Drain), исток (Souse) и затвор (Gate). Затвор — это управляющий электрод транзистора, в то время как сток и исток — это электроды, по которым протекает коммутируемый транзистором ток. Схемное обозначение МДП-транзистора с каналом n-типа приведено на рис. 5.19,а. При отсутствии напряжения между затвором и стоком канал для протекания тока между стоком и истоком внутри полупроводниковой структуры транзистора отсутствует. Если на затвор подать положительное напряжение относительно истока, то внутри транзистора формируется канал для протекания тока от стока к истоку. Если снять с затвора напряжение, то этот канал исчезнет, и транзистор не сможет проводить ток между истоком и стоком. Мы получили управляемый полупроводниковый ключ!

а) Условное графическое обозначение n-канального МДП-транзистора (MOSFET)

б) Схема полупроводникового коммутатора для управления электрическим двигателем от МК

в) Схема управления МДП-транзистором с использованием твердотельного реле

Рис. 5.19. Управление электрическим двигателем от МК

В нашем примере мы использовали МДП-транзисторы IRF530 компании International Rectifier. Максимальное значение тока стока ID для этого транзистора равно 14 А. Это означает, что мы можем коммутировать нагрузку с номинальным током 14 А под управлением маломощного сигнала с выхода микроконтроллера. Отметим, что в настоящее время подобные мощные МДП-транзисторы с каналами n- и p-типа выпускаются на токи свыше 100 А.

На рис. 5.19,б показана схема включения электрического двигателя с управлением от микроконтроллера. Резистор R = 10 кОм в цепи управления обеспечивает путь для рассасывания заряда из области управляющего электрода, когда напряжение на затворе становится равным нулю. Также в схеме присутствует защитный диод, который установлен параллельно двигателю. Мы обсудим назначение этого диода несколько позже, при изучении схемы инвертора (раздел 5.7.3). В нашем примере на затвор транзистора подается управляющее напряжение около 5 В. При этом транзистор IRF530 может проводить ток около 4 А. Для увеличения тока нагрузки до 14 А следует повысить управляющее напряжение. Однако используемый в примере электрический двигатель приводится во вращение напряжением 12 В при токе нагрузки 1 А. Поэтому параметры напряжения управления от микроконтроллера для нашего случая вполне удовлетворяют требованиям МДП-транзистора.

5.7.2. Оптоэлектронная потенциальная развязка

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

Чтобы избежать столь неблагоприятного прогноза в работе системы, следует изолировать цепи управления, т.е. плату с МК 68HC12, от силовых цепей установки. Для этого могут быть использованы оптроны (рис. 5.19,в). Управляющая цепь МК подключается к цепи излучающего светодиода оптрона. Когда МК формирует сигнал на включение МДП-транзистра, через светодиод протекает ток. Энергия излучения светодиода по оптическому каналу, расположенному внутри ИС оптрона, достигает полупроводникового прибора на вторичной стороне, и переводит его в открытое состояние. Одним из приборов, относящихся к классу оптронов, является твердотельное реле (рис. 5.19,в). На вторичной стороне этого прибора установлен маломощный МДП-транзистор. Когда светодиод излучает, МДП-транзистор открывается, по цепи резистора протекает ток, и на затворе основного транзистора формируется положительное напряжение относительно истока. Основной транзистор включается, и к обмотке двигателя подключается напряжение источника питания.

1 ... 87 88 89 90 91 92 93 94 95 ... 150
Перейти на страницу:
На этой странице вы можете бесплатно читать книгу Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С - Стивен Барретт.
Комментарии