2. 2. Блок деления частоты
Д лительность временной единицы меняется в соответствии с подаваемым числом. При подаче числа N данный блок позволяет выделить N+1 импульс из импульсов тактирования схемы (CLK f = 1 кГц).
Рис. 6 – Схема блока деления частоты, 1 – часть блока для пропускания частоты CLK (когда длительность – 1 мс), 2 – часть блока для деления частоты в соответствии с заданным числом, не равным 0
1
2
Рис. 6 – Схема блока деления частоты
Блок состоит из 2-х частей: каскад двоичных счётчиков 74163, каскад компараторов 7485. На каскад из компараторов поступает заданное число N и число со счётчика, которое считает тактовые импульсы CLK, Q. Если числа Q и N равны, то на выходе компаратора формируется импульс (CKE1), который сбрасывает счёт со счётчика и всё начинается вновь.
Рис. 7 – Временная диаграмма блока деления частоты
Из рис. 7 видно, что при подаче числа N = 0 длительность одной временной единицы – 1 мс, т. е. пропускается частота тактирования CLK f = 1 кГц.
Рис. 8 – Временная диаграмма блока деления частоты в приближении
Из временной диаграммы на рис. 8 видно, что при подаче числа N из тактового сигнала CLK выделяется каждый N+1 импульс.
2. 3. Блок управления фазами шагового двигателя и счётчик временных единиц
Из временной диаграммы, заданной к курсовому проекту, можно выделить период с 0 до 7 включительно временных единиц:
[0..3] – на фазу A подаётся высокий уровень
[0..1] – на фазу D подаётся высокий уровень
[2..5] – на фазу B подаётся высокий уровень
[4..7] – на фазу C подаётся высокий уровень
[6..7] – на фазу D подаётся высокий уровень
Блок состоит из 3-х частей: блоки управления для 4-х фаз шагового двигателя, 8-битный буферный регистр и счётчик временных единиц (счёт ограничен 7 в соответствии с периодом временной диаграммы), который имеет в своём составе конструкцию из D-триггеров для реагирования счётчика на фронт сигнала CKE1 (если не ставить конструкцию из D-триггеров, то счётчик считает в течение длительности импульса CKE1) и конструкцию пропускания тактовой частоты CLK f = 1 кГц (когда нужно установить длительность временной единицы в 1 мс).
Функция LPM_CONSTANT позволяет записать начало/конец действия высокого уровня не побитно (4-разрядное число). Счётчику временных единиц разрешено считать, когда ENT, ENP = 1 (когда приходят импульсы CKE1); считает счётчик от 0 до 7 (коэффициент пересчёта ограничен до 7), при достижении 7 на вход CLRN счётчика подаётся 1 (посредством NAND4) и он сбрасывается.
Рис. 9 – Схема блока управления фазами шагового двигателя и счётчик временных единиц, 1 – часть блока для пропускания частоты тактирования CLK и реагирования счётчика временных единиц по фронту сигнала CKE1
1
Блок, приведённый на рис. 10, применяется для управления фазами A, B, C. Он состоит из 2-х 4-разрядных компараторов 7485. Поступающее число временных единиц UT[3..0] поступает на оба компаратора и сравнивается с числами начала/конца подачи высокого уровня, заданными в соответствии с расписанием для каждой из фаз A, B, C.
Рис. 10 – Схема блока «4BIT_CMP»
Поскольку для фазы D нужно ещё учесть временные единицы перекрытия с фазой A, то применяется блок, представленный на рис. 11. В этом блоке путём сравнения числа UT[3..0] с 0 и 1 учитывается подача высокого уровня на фазу D с 0 по 1 включительно.
Рис. 11 – Схема блока «4BITCMP_TEST»
На временной диаграмме рис. 12 представлены результаты тестирования блока управления фазами шагового двигателя и счётчика временных единиц. Видно, что фаза A перекрывается с фазами B и D в течение 2-х временных единиц; фаза B перекрывается с фазой C, фаза D перекрывается ещё и с фазой C.
Рис. 12 – Временная диаграмма блока управления шаговым двигателем и счётчика временных единиц
Из временной диаграммы на рис. 12 видно, что всё получается в соответствии с временной диаграммой, приведённой в задании.