- •Федеральное агентство по образованию
- •Проектирование цифровых измерительных устройств
- •Удк 621.317.7 (075) ббк 34.9я73
- •Удк 621.317.7 (075) ббк 34.9я73
- •Введение
- •1. Основные определения
- •Контрольные вопросы
- •2. Циу с квантованием по уровню
- •2.1. Вольтметр на основе времяимпульсного ацп однотактного интегрирования
- •2.2. Времяимпульсный вольтметр на основе ацп двухтактного интегрирования
- •2.3. Вольтметр на основе ацп - преобразования
- •2.4. Вольтметр частотно-импульсного преобразования с пнч
- •Пнч с заданным тактом (пнч зт)
- •Пнч с заданной амплитудой (пнч за)
- •Пнч с заданным интегралом непрямоугольного компенсирующего импульса (пнч зи)
- •2.5. Вольтметры уравновешивающего преобразования (кодоимпульсные вольтметры)
- •2.5.1. Вольтметр развертывающего уравновешивания с рсо
- •2.5.2. Вольтметр развертывающего уравновешивания с нсо
- •2.5.3. Вольтметры следящего уравновешивания
- •2.5.4. Вольтметр следящего уравновешивания с рсо
- •2.5.5. Вольтметр следящего уравновешивания с нсо
- •2.6. Вольтметр на основе ацп параллельного преобразования
- •2.7. Ацп конвейерного типа
- •2.8. Краткая информация об интегральных ацп
- •Контрольные вопросы
- •3. Циу с квантованием по времени
- •3.1. Цифровые частотомеры
- •3.1.1. Частотомер непрерывного преобразования
- •3.1.2. Цифровой частотомер средних значений
- •3.1.3. Цифровой частотомер номинальных значений
- •3.1.4. Цифровой процентный частотомер
- •3.2.1. Цифровой периодомер мгновенных значений
- •Цифровой периодомер мгновенных значений (цпмз) предназначен для реализации измерения за один период входного сигнала. Один из вариантов реализации структурной схемы цпмз приведен на рис. 3.6.
- •Порядок расчета структуры
- •3.2.2. Цифровой периодомер средних значений
- •3.3. Цифровые измерители длительности импульсов
- •3.3.1. Общие сведения о цифровых измерителях длительности импульсов
- •3.3.2. Расширение длительности импульсов
- •3.3.3. Использование нониусного метода для измерения длительности импульсов
- •3.3.4. Аналого-цифровой измеритель длительности одиночных импульсов
- •3.4. Цифровые фазометры
- •3.4.1. Цифровой фазометр мгновенных значений
- •Значение кванта или абсолютной погрешности квантования
- •Для расширения частотного диапазона цфмз используют два основных способа.
- •1. Применение гоч с управляемой выходной частотой, например, на базе умножителя частоты (уч) с петлей фапч.
- •2. Применение гоч с аналого-цифровым управлением
- •3.4.2. Цифровой фазометр средних значений
- •Контрольные вопросы
- •4. Измерение параметров элементов электрических цепей
- •4.1. Измерение емкости и индуктивности
- •4.2. Измерение добротности
- •5. Автоматическое переключение пределов измерения в циу
- •6. Циу пространственного преобразования
- •6.1. Циу линейных перемещений
- •6.1.1. Циу линейных перемещений контактного типа
- •6.1.2. Циу линейных перемещений с оптическим преобразователем
- •6.1.3. Числоимпульсный метод измерения перемещения
- •6.1.4. Измерители больших перемещений (расстояния)
- •6.1.5. Измерители угловых перемещений
- •Контрольные вопросы
- •7. Преобразователи код – напряжение
- •7.1. Пкн на основе управляемого делителя напряжения последовательного типа
- •7.2. Пкн на основе управляемого делителя напряжения параллельного типа
- •7.3. Пкн с суммированием напряжений на основе сетки резисторов
- •7.4. Пкн с суммированием токов
- •7.4.1. Пкн на основе матрицы резисторов с весовыми коэффициентами
- •7.4.2. Пкн на основе резистивной матрицы r-2r
- •7.5. Краткая информация об интегральных цап
- •Контрольные вопросы
- •8. Устройства индикации цифровых приборов
- •Индикаторные панели
- •9. Интерфейсы связи цифровых приборов с эвм и другими циу
- •9.1. Применение последовательного интерфейса rs232
- •9.2. Применение параллельного интерфейса ieee1284
- •9.3. Применение однопроводной шины dallas
- •9.4. Применение двухпроводной шины i2c
- •Контрольные вопросы
- •10. Элементы микропроцессорной техники в циу
- •10.1. Общие сведения о микроконтроллерах семейства piCmicro
- •Ядро микроконтроллера
- •Порты ввода-вывода
- •Периферийные модули
- •10.2. Примеры применения микроконтроллеров piCmicro
- •10.2.1. Устройство управления четырьмя светодиодами
- •10.2.2. Управление жки с помощью последовательного адаптера
- •10.3. Общие сведения о микроконтроллерах семейства avr
- •10.4. Примеры применения микроконтроллеров avr
- •10.4.1. Ик дальномер
- •Библиографический список
- •Оглавление
Периферийные модули
PSP – ведомый параллельный порт. С помощью 8-разрядного ведомого параллельного порта можно организовать интерфейс связи с другим микроконтроллером или персональным компьютером. В микроконтроллерах, выпускаемых в настоящее время, ведомый параллельный порт мультиплицирован только с PORTD, PORTE.
В режиме ведомого порта данные асинхронно читаются или записываются внешними сигналами -RD или -WR соответственно. Установка бита PSPMODE в "1" принудительно настраивает выводы -RD, -WR и -CS как входы.
TMR0 – TMR2 – таймеры-счетчики, которые в зависимости от конкретной модификации МК могут служить счетчиками (внешних тактовых импульсов или импульсов тактового генератора МК) или программируемыми делителями частоты. Обычно таймеры TMR0, TMR2 – 8-разрядные, таймер TMR1 – 16-разрядный.
Модули ССР используются для реализации функций работы с ШИМ сигналами. Обычно МК содержит 2 модуля ССР. Каждый модуль ССР содержит 16-разрядный регистр, который может использоваться в качестве: 16-разрядного регистра захвата данных; 16-разрядного регистра сравнения; двух 8-разрядных (ведущий и ведомый) регистров ШИМ.
Модули управляются регистрами CCPxCON.
Модуль SSP – модуль синхронного последовательного порта (SSP) может использоваться для связи с периферийными устройствами, например с другими микроконтроллерами. Периферийными устройствами могут быть: EEPROM память, сдвиговые регистры, драйверы ЖКИ, АЦП и др. Модуль SSP может работать в одном из двух режимов.
1. Последовательный периферийный интерфейс (SPI);
2. Inter-Integrated Circuit (I2C):
– ведомый режим;
– контроль состояния портов ввода/ввода для обнаружения битов START, STOP с целью упрощения программного обеспечения в режиме ведущего и при конкуренции на шине.
Модуль управляется регистрами SSPSTAT и SSPCON. Прием и передача данных SSP осуществляются с помощью приемного/передающего регистра сдвига (SSPSR) и буферного регистра (SSBUF). В регистре SSPSR выполняется сдвиг данных из микроконтроллера или в микроконтроллер старшим битом вперед. В регистре SSPBUF сохраняются записанные данные, пока не будут получены новые. Восемь бит данных, принятые в регистр SSPSR, переписываются в SSPBUF, устанавливается в "1" флаг полного приемного буфера BF (SSPSTAT<0>) и флаг прерывания SSPIF.
Модуль USART – это один из модулей последовательного порта ввода/вывода (имеет существенные отличия от модуля SSP), который может работать в полнодуплексном асинхронном режиме для связи с терминалами, персональными компьютерами или в синхронном полудуплексном режиме для связи с микросхемами ЦАП, АЦП, последовательными EEPROM и т.д.
USART может работать в одном из трех режимов:
– асинхронный, полный дуплекс;
– ведущий синхронный, полудуплекс;
– ведомый синхронный, полудуплекс.
Для управления модулем используются 2 регистра – регистр управления и статуса приемника RCSTA, а также регистр управления и статуса передатчика TXSTA.
Для задания скорости обмена данными применяется специальный генератор BRG. Период выходного сигнала BRG задается с помощью регистра SPBRG.
Источник опорного напряжения, как правило, используется совместно с модулем компараторов. Входной ток выводов компаратора очень мал, поэтому ИОН имеет малую нагрузочную способность. Модуль содержит 16 последовательно включенных резисторов, обеспечивающих выбор нужного напряжения. Резисторы разделены на сегменты для организации двух диапазонов напряжений VREF.
В регистре VRCON находятся биты управления источником опорного напряжения.
Модуль компараторов содержит два аналоговых компаратора, выводы которых мультиплицированы с каналами ввода/вывода. Выход интегрированного источника опорного напряжения может быть подключен на вход компараторов.
В регистре CMCON находятся биты управления модулем компараторов.
Модуль 10-разрядного АЦП имеет до восьми входных каналов. Входной аналоговый сигнал через коммутатор каналов заряжает внутренний конденсатор АЦП CHOLD. Модуль АЦП преобразует напряжение, удерживаемое на конденсаторе CHOLD, в соответствующий 10-разрядный цифровой код методом последовательного приближения. Источник верхнего и нижнего опорного напряжения может быть программно выбран с выводов VDD, VSS, AN3/VREF+ или AN2/VREF-.
Допускается работа модуля АЦП в SLEEP режиме микроконтроллера, при этом в качестве источника тактовых импульсов для АЦП должен быть выбран RC-генератор. Для управления АЦП в микроконтроллере используются 4 регистра:
регистр результата ADRESH (старший байт);
регистр результата ADRESL (младший байт);
регистр управления ADCON0;
регистр управления ADCON1.
Модуль LCD (реализован только в микроконтроллерах PIC16C92x (923, 924, 925, 926)) формирует все необходимые сигналы синхронизации для управления статическими или мультиплицированными ЖКИ с поддержкой до тридцати двух сегментов, четырех общих выводов и управления пикселями ЖКИ (вывод информации на ЖКИ).
Для управления модулем LCD используются три регистра (LCDCON, LCDSE и LCDPS), с помощью которых можно настроить параметры работы модуля, и до 16 регистров данных (LCD00 – LCD15), в которых сохраняется массив данных пикселей. В нормальном режиме работы состояние регистров управления должно соответствовать применяемому ЖКИ.
Подробное описание всех МК PICmicro приводится на сайте www.microchip.com. МК среднего семейства описаны также в [12].
Система команд. Каждая команда состоит из одного 14-разрядного слова, разделенного на код операции (OPCODE), определяющий тип команды, и одного или несколько операндов, определяющих операцию команды.
Полный список команд смотрите в табл. 10.2.
Система команд аккумуляторного типа разделена на три основные группы.
Байт ориентированные команды.
Бит ориентированные команды.
Команды управления и операций с константами.
Для байт ориентированных команд "f" – указатель регистра, а "d" – указатель адресата результата. Указатель регистра определяет, какой регистр должен использоваться в команде. Указатель адресата определяет, где сохраняется результат.
Если "d"=0, результат сохраняется в регистре W. Если "d"=1, результат сохраняется в регистре, который используется в команде.
В бит ориентированных командах "b" определяет номер бита, участвующего в операции, а "f" – указатель регистра, который содержит этот бит.
В командах управления или операциях с константами "к" представляет восемь или одиннадцать бит константы или значения литералов.
Все команды выполняются за один машинный цикл, кроме команд условия, в которых получен истинный результат, и инструкций, изменяющих значение счетчика команд PC (такие команды выполняются за два машинных цикла).
В случае выполнения команды за два машинных цикла во втором цикле выполняется инструкция NOP.
Таблица 10.2
|
Мнемоника команды |
Описание
|
Циклов |
14-разрядный код |
Флаги |
Примечание |
|
Бит 13 Бит 0 | |||||
|
1 |
2 |
3 |
4 |
5 |
6 |
|
Байт ориентированные команды | |||||
|
ADDWF f, d |
Сложение W и f |
1 |
00 0111 dfff ffff |
C,DC,Z |
1,2 |
|
ANDWF f, d |
Побитное "И" W и f |
1 |
00 0101 dfff ffff |
|
1,2 |
|
CLRF f |
Очистить f |
1 |
00 0001 1fff ffff |
Z |
2 |
|
CLRW |
Очистить W |
1 |
00 0001 0xxxx |
Z |
|
|
COMF f, d |
Инвертировать f |
1 |
00 1001 dfff ffff |
Z |
1,2 |
|
DECF f, d |
Вычесть 1 из f |
1 |
00 0011 dfff ffff |
Z |
1,2 |
|
DECFSZ f, d |
Вычесть 1 из f и пропустить, если 0 |
1(2) |
00 1011 dfff ffff |
|
1,2,3 |
Продолжение табл. 10.2
|
1 |
2 |
3 |
4 |
5 |
6 |
|
INCF f, d |
Прибавить 1 к f |
1 |
00 1010 dfff ffff |
Z |
1,2 |
|
INCFSZ f, d |
Прибавить 1 к f и пропустить, если 0 |
1(2) |
00 1111 dfff fff |
|
1,2,3 |
|
IORWF f, d |
Побитное "ИЛИ" W и f |
1 |
00 0100 dfff ffff |
Z |
1,2 |
|
MOVF f, d |
Переслать f |
1 |
00 1000 dfff ffff |
Z |
1,2 |
|
MOVWF f |
Переслать W в f |
1 |
00 0000 1fff ffff |
|
|
|
NOP |
Нет операции |
1 |
00 0000 0xx0 |
|
|
|
RLF f, d |
Циклический сдвиг f влево через перенос |
1 |
00 1101 dfff ffff |
C |
1,2 |
|
RRF f, d |
Циклический сдвиг f вправо через перенос |
1 |
00 1100 dfff ffff |
C |
1,2 |
|
SUBWF f, d |
Вычесть W из f |
1 |
00 0010 dfff ffff |
C,DC,Z |
1,2 |
|
SWAPF f, d |
Поменять местами полубайты в регистре f |
1 |
00 1110 dfff ffff |
|
1,2 |
|
XORWF f, d |
Побитное "Исключающее ИЛИ" W и f |
1 |
00 0110 dfff ffff |
Z |
1,2 |
|
Бит ориентированные команды | |||||
|
BCF f, b |
Очистить бит b в регистре f |
1 |
01 00bb bfff ffff |
|
1,2 |
|
BSF f, b |
Установить бит b в регистре f |
1 |
01 01bb bfff ffff |
|
1,2 |
|
BTFSC f, b |
Проверить бит b в регистре f, пропустить, если 0 |
1(2) |
01 10bb bfff ffff |
|
3 |
|
BTFSS f, b |
Проверить бит b в регистре f, пропустить, если 1 |
1(2) |
01 11bb bfff ffff |
|
3 |
|
Команды управления и операций с константами | |||||
|
ADDLW k |
Сложить константу с W |
1 |
11 111x kkk kkkk |
C,DC,Z |
|
|
ANDLW k |
Побитное "И" константы и W |
1 |
11 1001 kkkk kkkk |
Z |
|
|
CALL k |
Вызов подпрограммы |
2 |
10 0kkk kkkk kkkk |
|
|
|
CLRWDT |
Очистить WDT |
1 |
00 0000 0110 0100 |
-T0,-PD |
|
Окончание табл. 10.2
|
1 |
2 |
3 |
4 |
5 |
6 |
|
GOTO k |
Безусловный переход |
2 |
10 Ikkk kkkk kkkk |
|
|
|
IORLW k |
Побитное "ИЛИ" константы и W |
1 |
11 1000 kkkk kkkk |
Z |
|
|
MOVLW k |
Переслать константу в W |
1 |
11 00xx kkkk kkkk |
|
|
|
RETFIE |
Возврат из подпрограммы с разрешением прерываний |
2 |
00 0000 0000 1001 |
|
|
|
RETLW k |
Возврат из подпрограммы с загрузкой константы в W |
2 |
11 0lxx kkkk kkkk |
|
|
|
RETURN |
Возврат из подпрограммы |
2 |
00 0000 0000 1000 |
|
|
|
SLEEP |
Перейти в режим SLEEP |
1 |
00 0000 0110 0011 |
-T0, -PD |
|
|
SUBLW k |
Вычесть W из константы |
1 |
11 110x kkkk kkkk |
C, DC,Z |
|
|
XORLW k |
Побитное "Исключающее ИЛИ" константы и W |
1 |
11 1010 kkkk kkkk |
Z |
|
Примечание.
При выполнении операции "чтение-модификация-запись" с портом ввода/вывода (например, MOVF PORTB.1) исходные значения считываются с выводов порта, а не из выходных защелок. Например, если в выходной защелке была записана "1", а на соответствующем выходе "0", то обратно будет записан "0".
2. При выполнении записи в TMR0 (и d=1) предделитель TMR0 сбрасывается, если он подключен к модулю TMR0.
