- •Микропроцессорные системы
- •Введение
- •Проектирование микропроцессорных систем
- •Понятие системы
- •Цикл проектирования системы
- •Задание на курсовой проект
- •Содержание и оформление курсового проекта
- •Защита курсовых проектов
- •Требования пользователей и функциональная спецификация
- •Проектирование системы
- •Проектирование аппаратных средств микропроцессорного устройства
- •Типовая структура мпу
- •Система питания мпу
- •Питание от аккумуляторов
- •Комбинированный источник питания
- •Расчет потребляемой мощности
- •Модуль сброса и синхронизации
- •Расчет схемы сброса и синхронизации
- •Организация памяти микроэвм
- •Блок связи с оператором (пульт управления)
- •Подключение клавиатуры
- •Подключение индикатора
- •Расчет пульта оператора
- •Организация ввода данных
- •Ввод аналоговой информации
- •Расчет входных схем
- •Ввод цифровой и дискретной информации
- •Организация вывода данных
- •Цифровые выходы
- •Аналоговые выходы
- •Управление силовыми цепями
- •Стандартные последовательные интерфейсы
- •Гальваническая развязка
- •Выбор микроконтроллера
- •Проектирование программных средств микропроцессорных устройств
- •Технология разработки программного обеспечения
- •Технология задачи/состояния
- •Взаимодействие между задачами
- •Программная реализация типовых модулей мпу
- •Сопряжение с клавиатурой
- •Сопряжение с жки-модулем
- •Сопряжение с памятью по интерфейсу i2c
- •Сопряжение с последовательным асинхронным интерфейсом
- •Сопряжение с датчиком температуры
- •Пример проектирования микропроцессорного устройства
- •Требования пользователя и построение функциональной спецификации
- •Проектирование системы
- •Проектирование аппаратной части устройства
- •Проектирование программной части
- •Void init(void) // инициализация контроллера
- •Варианты заданий
- •Приложение а
- •1. Основание для разработки
- •2. Назначение разработки
- •3. Требования к разработке
- •3.1Требования к функциональным характеристикам
- •3.2Требования к надежности
- •3.3 Требования к условиям эксплуатации
- •3.4 Требования к составу и параметрам технических средств
- •3.5. Требования к программной и информационной совместимости
- •Приложение в
- •Приложение г
- •Библиографический список
Сопряжение с датчиком температуры
В настоящее время широкое распространение получили интегральные датчики температуры, имеющие цифровой выходной интерфейс. Так, микросхема термометр/термостат DS1620 фирмы Dallas Sem. содержит встроенные схемы измерительного преобразователя температуры и представляет собой процессор с 3-проводным цифровым интерфейсом, состоящим из двунаправленной линии ввода/вывода данных DQ, входа сброса\RSTи входа тактированияCLK. Температура считывается из микросхемы 9-разрядным словом в двоичном дополнительном формате. Диапазон измерения составляет -55С…+125С с дискретностью 0,5С [11]. Другим, более простым и дешевым решением, является применение интегрального датчика ТМР03 фирмы Analog Devices. Его интерфейс – 1-проводной ШИМ выход, скважность которого определяет текущую температуру.
Рис.5.24. Выходной сигнал цифрового термометра ТМР03
На рис.5.24 показан временная диаграмма выходного сигнала. Выход микросхемы – открытый коллектор. Для расчета текущей измеренной температурой необходимо воспользоваться следующим соотношением:
Temp (С) = 235 – (400*Т1)/Т2
Номинальное значение Т1 составляет 10мс.
На рис.5.25 приведен вариант подключения датчика ТМР03 к микроконтроллеру. Резистор R3 является нагрузкой выхода с открытым коллектором.
Ниже приведена тестовая программа снятия данных с термодатчика. Так как программа имеет маленький размер, то она реализована в виде единого модуля. В данной программе измерение длительностей Т1 и Т2 осуществляется циклическим опросом входного порта микроконтроллера, на который подается выходная последовательность с датчика.
Рис.5.25. Подключение датчика температуры к микроконтроллеру
Рассчитаем требуемую разрядность счетчиков длительностей Т1 и Т2. Из формулы следует, что максимальная длительность Т2 составляет примерно 40 мс при 125С, минимальная – 13 мс при -55С. Длительность цикла микроконтроллераMCS51 составляет 12 периодов тактового генератора и при частоте тактового генератора 12 МГц составит: 12/(12*106) с = 1 мкс. Таким образом, максимальное число, которое может быть накоплено в цикле подсчета длительности Т2, составит: 40*10-3/(12/(12*106)) = 40000. Для хранения такого числа требуется переменная типаint (два байта). Реальная накопленная сумма будет меньше в несколько раз, так как цикл накопления состоит не из одной команды, а как минимум из четырех (проверка порта, увеличение значения переменной, пересылки между аккумулятором и переменной).
Определим далее точностные характеристики процесса вычислений, которые зависят от точности вычисления временных интервалов Т1 и Т2. Пусть цикл подсчета длительности состоит из 10 циклов микроконтроллера (примерно 4 команды), что составит 10*1мкс = 10 мкс. Тогда максимальная ошибка вычисления длительности Т2 = 13мс составит: 10*100/(13*1000) = 0,07 %. Общая ошибка вычисления Т1/Т2 не превысит 0,15 %, что в несколько раз меньше ошибки, даваемой самим датчиком: 0,5*100/125 = 0,4 %. Таким образом, можно использовать данный метод вычислений.
Данная программа может быть использована только для проверки работоспособности датчика, так как она занимает все ресурсы микроконтроллера, и он больше ничем не может заниматься. В реальной ситуации измерение временных интервалов рекомендуется осуществлять при помощи системы прерывания и модулей захвата микроконтроллера. Кроме того, использование модулей захвата позволит значительно снизить ошибки вычислений, так как счетчик подсчитывает импульсы от генератора и ошибка вычисления длительности будет равна его периоду.
/* Снятие данных с датчика температуры TMP03/04, тестовая программа */
#include <io51.h>
#define TMPPORT P3.2 /* порт для подсоединения датчика*/
void main(void)
{
unsigned int L,H,T;
H=L=0;
while (TMPPORT); /* Ожидание спада импульса */
while (!TMPPORT) L++; /* Ожидание подъема импульса */
while (TMPPORT) H++; /* Ожидание спада импульса */
/* Вычисление температуры датчика в 0,1 градуса */
T = 2350-(4000*(unsigned long)L)/H;
}
Если датчиком температуры является термосопротивление или термопара, то напряжение, снимаемое с этих датчиков, преобразуется в цифровой код при помощи АЦП. В случае с термосопротивлением, падение напряжения образуется за счет пропускания через него стабильного тока от генератора тока. Структура программы работы с АЦП мало отличается от рассмотренных структур, а реализация процедур зависит от особенностей построения конкретной микросхемы.