Описание работы устройств
1. Блок АЦП.
АЦП представляет собой восьмиканальный пяти микросекундный А/Ц преобразователь с однополярным питанием. Пользователю предоставлены многоканальный мультиплексор, устройство выборки-хранения, встроенный ИОН, система калибровок и собственно АЦП. Все компоненты блока легко управляется через три интерфейсных регистра специального назначения. АЦП позволяет работать как в однократном режиме измерения, так и в циклическом.
А/Ц преобразователь состоит из стандартного конвертера последовательного приближения и емкостного ЦАП. Конвертер получает аналоговые входные сигналы в диапазоне 0 - Vref. На кристалле расположен ИОН - прецизионный блок с низким дрейфом, откалиброванный изготовителем до 2.5В. Однократный или повторяющийся режимы преобразования могут выполняться программно или подачей внешнего сигнала Запуска Преобразования на контакт 25(CONVST/). Также для инициирования повторяющегося процесса преобразования можно использовать сигналы Таймера2. АЦП можно установить в режим передачи данных по каналу прямого доступа к памяти - ПДП( DMA), когда блок повторяет циклы преобразования и посылает выборки во внешнюю память данных (RAM), минуя процессор. Этот процесс может охватывать весь объем внешней памяти 16МБ. ADuC812 поставляется с заводскими калибровочными коэффициентами, которые загружаются автоматически по включению питания, обеспечивая тем самым оптимальную работу устройства. Ядро АЦП содержит внутренние регистры калибровок Смещения и Усиления, причем, обеспечено, чтобы программная процедура калибровки пользователя подавляла заводские установки, давая тем самым минимум ошибок в конечной системе. Если необходимо, то через АЦП можно так же преобразовать сигнал внутреннего температурного сенсора.
ADuC812 поставляется с заводскими калибровочными коэффициентами, которые автоматически при включении питания загружаются в соответствующие SFR, что происходит прозрачно для пользователя. В большинстве приложений использование заводских констант является достаточным.
Для управления АЦП имеется 3 основных SFR-регистра: ADCCON1, ADCCON2, ADCCON3.
Регистр ADCCON1 управляет преобразованием, временем переключения, режимами преобразования и потреблением устройства.
№ бита | Мнемоника | Описание |
EXС | Бит разрешения внешнего запуска. Если установлен, то контакт 23 (CONVST/) будет использоваться как сигнал запуска (активный низкий должен быть не менее 100 нс). | |
T2C | Бит запуска преобразования от Таймера2. Если бит установлен, то сигнал переполнения Таймера2 используется для запуска АЦП. | |
AQ0 | Биты задержки переключения, выбирают время, необходимое для перезарядки УВХ при переключении мультиплексора: AQ1 AQ0 Число тактов задержки запуска АЦП 0 0 1 0 1 2 1 0 3 1 1 4 | |
AQ1 | ||
CK0 | Биты деления тактовой частоты, выбирают коэффициент деления основной частоты микропроцессора для получения тактовой частоты АЦП. Цикл преобразования АЦП занимает 16 тактов, в дополнении к числу тактов переключения. Коэффициент выбирается из: CK1 CK0 Делитель для MCLK 0 0 1 0 1 2 1 0 4 1 1 8 | |
CK1 | ||
MD0 | Биты режима выбирают режимы работы АЦП следующим образом: MD1 MD0 Режим АЦП 0 0 Дежурный 0 1 Нормальный 1 0 Дежурный, если не выполняется цикл преобразования 1 1 Холостой, если не выполняется цикл преобразования | |
MD1 |
Регистр ADCCON2 управляет выбором номера канала и режимами преобразования
№ бита | Мнемоника | Описание |
CS0 | Биты выбора входных каналов. Позволяют осуществлять выбор номера канала АЦП под управлением программы. Преобразование будет выполняться для канала, номер которого указан данными битами. В режиме ПДП выбор номера канала осуществляется из ID канала, записанного во внешней памяти. CS3 CS2 CS1 CS0 CH# 0 n2 n1 n0 Номер входного канала(n2n1n0) 1 0 0 0 Температурный сенсор 1 x x x Другие комбинации 1 1 1 1 Останов ПДП | |
CS1 | ||
CS2 | ||
CS3 | ||
SCONV | Бит запуска однократного преобразования. Устанавливается пользователем для однократного запуска АЦП. Бит сбрасывается автоматически по завершению преобразования. | |
CCONV | Бит циклического преобразования. Устанавливается пользователем для установки АЦП в режим непрерывного циклического преобразования. В этом режиме АЦП выполняет преобразование в соответствии с типом синхронизации и конфигурацией каналов, выбранными в других SFR. | |
DMA | Бит разрешения режима ПДП. Устанавливается пользователем для начала операции ПДП со стороны АЦП. | |
ADCI | Бит прерывания АЦП устанавливается аппаратно по окончанию однократного цикла преобразования АЦП или по окончанию передачи блока в режиме ПДП. ADCI очищает аппаратно при переходе по вектору на процедуру обслуживания прерывания. |
Регистр ADCCON3 Дает индикацию занятости АЦП для прикладных программ.
Как только АЦП сконфигурирован с помощьюADCCON1- 3, он начнет преобразовывать аналоговые входные сигналы и давать12- разрядные выходные коды в регистрах ADCDATAH(L). В четырех разрядах ADCDATAH хранится номер канала. Формат слова результата показан на Рис.1:
2. Таймеры/ Счетчики.
Таймеры/ Счетчики могут работать в 3-х основных режимах:
- Оставлен для совместимости с 48-й серией, на таймер поступает OSC/32, разрядность 13 бит.
- Работает как 16-ти разрядный счетчик. При переполнении состояние изменяется с FFFFh на 0000h. При необходимости изменения коэффициента деления после переполнения в каждом такте необходимо записывать заданную константу.
- Счетчик работает как 8-ми разрядный, причем используется младшая часть – TL. В старшей части (TH) находится делитель, который по переполнению TL автоматически перегружается из TH в TL.
Режимы работы таймеров Таймер0 и Таймер1 задают два регистра специальных функций (SFR – Special Function Register): регистр режима – TMOD, расположенный по адресу 89h в регистровой памяти и регистр управления таймерами и внешними прерываниями – TCON (88h). Для управления работой таймера Таймер2 служит регистр T2CON.
Регистр TMOD условно разбит на две половины: первая его часть отвечает за Таймер0, а вторая – за Таймер1.
Распределение битов регистра TMOD следующее:
0бит (М0) – Младший байт поля управления режимом;
1бит (М1) – Старший байт поля управления режимом;
2бит (С/Т0) – Выбор функции таймера или счетчика для Таймера0: 0–таймер ,1–счетчик;
3бит (GATE0) – Флаг управления входом:
• 0 – работа канала разрешается (INT0=1, TR=1).
• 1 – работа счетчика зависит только от TR0.
Распределение битов регистра TCON следующее:
0бит (IT0) – Управление типом входа INT0:
• 0 – вход прогнозируется как динамически по заданному фронту импульса.
• 1 – статическое состояние входа.
1бит (IE0) – Флаг запроса прерывания INT0 при динамическом входе. Сбрасывается, когда происходит режим подтверждения прерывания.;
2 и 3 биты (IT1/IE1) – Тоже, что и предыдущие биты, но для Таймера0;
4бит (TR0) – Флаг программного запуска Таймера0;
5бит (TF0) – Флаг переполнения Таймера0, который вызывает запрос прерывания. При подтверждении прерывания флаг сбрасывается;
6 и 7биты (TR1,TF1) – Для Таймера1;
Для работы с таймером используется механизм прерываний, работой которого можно управлять через регистр маски прерываний IE (Interrupt Enable). Назначение битов регистра IE следующее:
0бит (EX0) – бит разрешения внешнего прерывания INT0.
1бит (ET0) – бит разрешения прерывания по переполнению Таймера0.
2бит (EX1) – бит разрешения внешнего прерывания INT1.
3бит (ET1) – бит разрешения прерывания по переполнению Таймера1.
4бит (ES) – бит разрешения прерывания от последовательного порта UART.
5бит (ET2) – бит разрешения прерывания по переполнению Таймера2.
6бит (EADC) – бит разрешения прерывания АЦП.
7бит (EA) – бит разрешения глобального прерывания. Если EA=0, то все прерывания запрещены.
Структурная схема
Блоки структурной схемы:
1) Микроконтроллер.
Состоит из следующих элементов:
а) С1, С2, ZQ1–схема тактового генератора. Осуществляет выработку внешнего сигнала тактирования микроконтроллера частотой 24МГц.
б)С3,R5–схема первоначального сброса микроконтроллера. Обеспечивает корректный запуск.
в) DD1–микроконтроллер.
2) Клавиатура.
Переключает температурные режимы холодильника. Состоит из трех клавиш: “+” - положительнoe, “-” – отрицательнoe приращение, “P” – выбор устанавливаемого режима (изменение температуры морозилки, 2и камеры, быстрая заморозка, разморозка).
3) Внешний светодиодный семисегментные индикаторы(АЛС) и дешифратор DD2.
При подаче кода цифры на младшие четыре бита порта P2(P2.0-P2.3) он дешифруется и выводиться на семисегментный светодиодный индикатор при этом отображение четырех разных цифр выполняется путем быстрого сканирования (поочередного отображения каждой цифры с большой частотой так, что глаз не успевает замечать мерцания) для дополнительного отображения минусовой температуры в морозильной камере используется дополнительный светодиод. Коммутация активного элемента индикатора выполняется с помощью транзисторных ключей подключенных к старшей части порта Р2.
4) Блоки управления Компрессорами.
Компрессоры управляются через маломощные реле коммутируемые двумя транзисторами применение сильноточных реле не обосновано так как электроника холодильника имеет их в своем составе в виде встроенных элементов.
Выбор элементной базы
При разработке устройства были использованы следующие электронные компоненты:
1. Микроконтроллер ADuC 812. Был рассмотрен в курсе лабораторных работ и имеет подходящие характеристики для применения на практике.
2. Микросхема КР514ИД2 которая является дешифратором 10-7сегм.
3. Транзисторы серии КТ315 для коммутации индицирования индикатора.
4. Светодиод HL1 AL307B для отображение “-”.
5. Стабилизатор DA1 K145КРЕН5 для получения 5В питания.
6. Семисегментный индикатор HG1 АЛС333Г зеленого свечения.
Описание программы
Программа состоит из следующих основных блоков или подпрограмм.
1) Инициализация устанавливает 1 режим 0-го Таймера, настраивается режим AЦП, порты на ввод и вывод а также устанавливаются значения используемых переменных и флагов (например температура морозилки –6 второй камеры +6).
2) Обработка прерывания 0-го Таймера в ней выполняются следующие функции :
а) сканирование клавиатуры и выполнение функций изменения установленных параметров.
б) сканирование семисегментного индикатора для поочередного отображения цифр температуры.
в) подсчет времени для выполнения операции быстрой заморозки и отсчет 3-х суток для операции авторазморозки. (при t = +1).
3) Основная программа(бесконечный цикл).
В начале вызывает блок инициализации далее в неё вынесены такие медленная процедура как, оцифровка температур и управление компрессорами, а также реакция на нажатие клавиш в виде изменения параметров (температур) или включения соответствующего режима.