Министерствообразования науки РФ
Государственноеобразовательное учреждение высшего профессионального образования
«Уральскийгосударственный технический университет–УПИ
именипервого Президента России Б.Н. Ельцина»
Радиотехническийинститут–РТФ
Кафедратеоретических основ радиотехники
Разработкауниверсального шестиканального термометра
Отчет попроизводственной практике
РуководительКопылов А.Е.
СтудентХазиева М.Д.
ГруппаР-37071
Екатеринбург2010
СОДЕРЖАНИЕ
ЗАДАНИЕНА ПРАКТИКУ
РЕФЕРАТ
УСЛОВНЫЕОБОЗНАЧЕНИЯ, СИМВОЛЫ И СОКРАЩЕНИЯ
ВВЕДЕНИЕ
1. ОБЩАЯ ХАРАКТЕРИСТИКА ПРЕДПРИЯТИЯ
2. ПРАКТИЧЕСКАЯРАБОТА
2.1Анализзадания на практику
2.2Описаниеизвестных методов решения
2.3Используемые методыи алгоритмы решения задачи
3. ЭКСПЕРИМЕНТАЛЬНЫЕ ИССЛЕДОВАНИЯ
3.1 Цель иметодика проведения эксперимента
3.2 Анализполученных результатов и оценка их достоверности
ЗАКЛЮЧЕНИЕ
БИБЛИОГРАФИЧЕСКИЙСПИСОК
ПРИЛОЖЕНИЕ1. Электрическаясхема
ПРИЛОЖЕНИЕ2. Текст программы-19
ПРИЛОЖЕНИЕ3. Копия экрана
ПРИЛОЖЕНИЕ4. Реальнаямодель устройства
ЗАДАНИЕНА ПРАКТИКУ.
Разработатьприбор, реализующий работу универсального шестиканального термометра(измерителятемпературы), передающий данные параметры(температуры)через последовательныйинтерфейс RS-232.
Разработкавключает в себя: принципиальную и электрическую схемы, создание программы дляданного микроконтроллера и реальную модель универсального шестиканальноготермометра.
РЕФЕРАТ
Отчет попрактике 21 с., 2 ч., 2 источника, 4 прил.
Разработкауниверсального шестиканального термометра.
Объектомразработки является измеритель температуры различных радиоэлектронныхустройств.
Цель работы:разработка принципа действия, структурной и принципиальной электрической схемприбора, измеряющего температуру в электронных блоках различногофункционального назначения, по данным температуры делается вывод отермоустойчивости электронных приборов.
Результатыработы: проведен обзор методов измерения температур, выбран метод, наиболееудобный для применения в малогабаритном переносном приборе.
Основныеконструктивные, технологические и эксплуатационные характеристики: созданэкспериментальный образец, обладающий чувствительностью -40 °C до +100°C иточностью в 1°C.
Степеньвнедрения: прибор использован при выполнении проверки работы блока управленияшаговым двигателем, фирмы «Интенсоник+» .
Итоги внедрениярезультатов работы: подтверждены потребительские и эксплуатационныехарактеристики прибора.
Областьприменения — исследование температурного режима как в окружающей среде, так и вразличных радиоэлектронных устройствах.
Экономическаяэффективность или значимость работы: созданный прибор позволяет решать задачиизмерения и мониторинга температуры в шести различных точках.
Прогнозныепредположения о развитии объекта исследования: введение дополнительногоиндикатора отображения температуры.
\
УСЛОВНЫЕ ОБОЗНАЧЕНИЯ, СИМВОЛЫ И СОКРАЩЕНИЯ
РЭУ — радиоэлектронныеустройства
UART – универсальныйасинхронный приемопередатчик
АЦП – аналого-цифровойпреобразователь
RS-232 —интерфейс передачи информации между двумя устройствами на расстоянии до 15метров. Информация передается по проводам с уровнями сигналов, отличающимися отстандартных 5 В, для обеспечения большей устойчивости к помехам. Асинхроннаяпередача данных осуществляется с установленной скоростью при синхронизацииуровнем сигнала стартового импульса.
ВВЕДЕНИЕ
Для любогосовременного предприятия, специализирующегося на производстве и проектированиирадиоэлектронных приборов, необходимо наличие стандартной аппаратуры,упрощающей само проектирование, создание или проверку устройств.
К одному изтаких аппаратов, можно причислить шестиканальный измеритель температуры.
Созданиешестиканального измерителя температуры значительно облегчает задачу проверкиработы любого проектируемого РЭУ, выявления ошибок или нахождения своего родаперегрузки .
1. ОБЩАЯ ХАРАКТЕРИСТИКАПРЕДПРИЯТИЯ
Практика былапройдена на предприятии ООО«Интенсоник+», специализирующемся напроектировании и производстве РЭУ.
ООО«Интенсоник+» является производителем оборудования для нефтегазовойпромышленности.
Основныенаправления деятельности предприятия – разработка и изготовление аппаратурыновых технологий для нефтегазовой промышленности.
Приоритетныминаправлениями являются технологии индукционного нагрева скважин и устьевого оборудования.
Кроме этогопредприятие производит безроликовые датчики натяжения геофизического кабеля иисточники питания для основного парка геофизических скважинных приборов.
2. ПРАКТИЧЕСКАЯРАБОТА
2.1 Анализ задания на практику
В качествезадания на практику предложено спроектировать шестиканальный измерительтемпературы, с выводом данных через последовательный интерфейс RS-232 .
Исходя изналичия на складах предприятия, были выбраны следующие компоненты дляреализации задания: микроконтроллер Atmel AVR Mega8(частота 4МГц),микросхема преобразования логических уровней MAX232, термодатчики LM335.
Для отладкиприема данных на верхнем уровне использовалась программа Microsoft Hyper Terminal версия 5.1. Длянаписания программы для микроконтроллера использовалась лицензионная копияпрограммы IAR Embedded Workbench 2.31Eкомпании IAR Systems, которая на данный момент является наилучшимпрограммным решением для написания C/C++ кода на микроконтроллеры.
2.2 Описание известных методоврешения
Стандартным решениемдля такого рода задачи является разработка устройства, содержащего простейшеесемейство микроконтроллеров, с поддержкой передачи данных по UART, АЦП, имикросхему преобразования логических уровней (с 5 на 15 V), общеизвестной ишироко используемой платой является MAX232, которая имеет множество аналогов.
Существуетмножество видов термодатчиков, различающихся по таким параметрам, какточность, диапазон измерений, стоимость и по сложности исполнения. Мы выбралитермодатчик LM335, так как он имеется в большом количестве на складе иудовлетворяет всем нашим требованиям.
2.3 Используемыеметоды и алгоритмы решения задачи
Решение задачисостоит из нескольких пунктов :
1. общая настройкапортов ввода/вывода, таймеров, конфигурация и т.д.
2. настройка АЦП.
1) внутреннийисточник напряжения 5V
2) прерыванияот компаратора
3) коэффициентделения 128(частота 31 250 ГЦ)
4) непрерывноепреобразование
3. настройка UART
1) асинхронныйрежим
2) прерыванияпо передаче вкл.
3) скоростьобмена 9600 Бод(бит в секунду)
4. прерывания потаймеру, формирование задержки 500мс.
5. прерывание АЦПот компаратора
6. формированиебуфера передачи данных (3 байта – 1-й байт- №канала, 2-й, 3-й байт — данные),отправка буфера передачи данных.
3. ЭКСПЕРИМЕНТАЛЬНЫЕ ИССЛЕДОВАНИЯ
3.1 Цель и методикапроведения эксперимента
После того, как была разработанаэлектрическая схема и написана программа, необходимо проверить правильностьвыполненного задания.Для этого написанный код записываем(прошиваем) вмикроконтроллер, находящийся на реальной модели устройства.
Запустив разработанное устройство, оценим правильность его работы.
3.2 Анализполученных результатов и оценка их достоверности
Запустившестиканальный измеритель температуры, мы убедились в правильности написанияпрограммы. Программа удовлетворяет заданным требованиям, а именно:
— выводит данныетемпературы на экран, в очередном порядке номер канала и температуру и, измеренную данным каналом.
— измеренияпроизводятся с интервалом в 5 секунд.
ЗАКЛЮЧЕНИЕ
В процессепрохождения производственной практики были получены следующие навыки:
1. эксплуатацияи обслуживания радиоэлектронных систем
2. изучениеэтапов проектирования и особенностей разработки радиоэлектронных устройств
3. проектированияреального прибора, математическое моделирование структурной схемы измерителя,макетирование и экспериментальное исследование отдельных узлов измерителя
4. опытработы на предприятии .
Можно сделатьвывод о том, что цели и задачи производственной практики были выполнены.Успешному прохождению производственной практики способствовало доброжелательноеотношение руководителей предприятия и помощь с их стороны.
Библиографический список
1. МикроконтроллерыAVR: от простого к сложному. Голубцов М.С., Кириченкова А.В.
Москва, СОЛОН-Пресс,2004.
2. МикроконтроллерыAVR семейств Tiny и Mega фирмы «ATMEL».Евстинеев А.В.
Издательскийдом «Додэка-XXI»,2000.
ПРИЛОЖЕНИЕ 1.Электрическаясхема
/>
ПРИЛОЖЕНИЕ 2. Текст программы
#include
#include
#include«term.h»
unsignedchar count_time_gen=10; //счетчик времени работы генератора
unsignedchar count_time_ind=10; // счетник времени индикации
unsigned charnum_ch=6; // счетчик каналов от 0 до MAX_CH-1
int ampl=0; //амплитуда с выхода АЦП
unsignedchar strobe_count=0; // счетчик строба измерения
unsignedchar count_50=1; // счетчик 500ms
unsignedchar t0_ext=1; // дополнительный делитель дляTCNT0
unsignedchar bufer_led[bufer_led_size]; // 0 — led`s 1-4 BCD
char txd_bufer[txd_buf_len]={'',TAB,' ',' ',' ',CR,LF,0 }; // буфер передачи
// N:- 2 4
char txd_index=txd_buf_len-1;
#definedis_measure_ok 1 // 0x0002 // измерение завершилось 1
#definedis_measure 2 // 0x0004 // запущено измерение(счет) 2
unsignedchar dis_flag=(1
#defineadc_start {ADCSR|=(1
__flashconst unsigned char table_ascii[]={'0','1', '2', '3', '4', '5', '6', '7','8','9', 'E', 'r', 'o', ' ', ' ', ' '};
voidd2_bcd(long val);
voidmeasure_a(void);
voiddisplay_parm(void);
voidcount_time_gen_init(void);
voidcount_time_ind_init(void);
voidfotm_trx(void);
voidtransmit(void);
C_taskvoid main(void)
{//main
count_50=count_50_init;// init count 500 ms
// инициализация АЦП
ADMUX=(1
ADCSR=((1
// инициализация UART
UBRRH=ubr19200>>8;
UBRRL=ubr19200;
UCSRB=(1
UCSRC = 0;//Async. mode, 8N1
// num_ch=6; //иниц счетчика каналов
//init and start TCNT0
t0_ext=t0_ext_init;
TCNT0=t0_init;
TIMSK|= ((1
_SEI();// global irq enable
TCCR0=((1
_WDR(); //сброситьсторожевик
WDTCR|=((1
for(;;);// LOOP FOREVER
}//end of main
#pragmavector=ADC_vect
__interruptvoid ADC_proc (void)
{
// АЦП закнчилпреобразование
_SEI();
_WDR(); // сброссторожевого таймера
ampl=ADC;
dis_flag|= (1
//set_mux;
}
#pragmavector=TIMER0_OVF_vect
__interruptvoid ovf0_proc (void)
{
//диспетчер
TCNT0=t0_init;// перезапускTCNT0
_SEI(); //разрешить сложенные прерывания
t0_ext-=1;
if (!t0_ext)
{// счетчикдосчитал
t0_ext=t0_ext_init;//перезапуск дополнительного делителя
//отработка 10ms
// счетчик на500 ms
count_50 -=1;
_WDR(); //сброситьсторожевик
if(!count_50){//äîñ÷èòàë
count_50=count_50_init;
// отработка 500ms
if(count_time_ind)count_time_ind--;
if(count_time_gen)count_time_gen--;
// конец отработки 500ms
} //end if(!count_50
// измерение иобработка его результатов
if(!count_time_ind)
{
if(!count_time_gen)
{
count_time_gen_init();
if(++num_ch>=MAX_CH){num_ch=0;} // сканирование каналов
}
measure_a(); //измерять температуру пока не будет измерено
if(dis_flag & (1
//расчеточередного измерения
ampl=a_term*(ampl+b_term);//расчитать текущий параметр Y=a*(f+b)
display_parm();// формирование знакомест
fotm_trx(); //формирование буфера для передачи
count_time_ind_init();// инициализация счетчика иедикации
dis_flag &=~(1
} //end if измерение окончено
}//endif (!count_time_ind)
transmit(); //выдача в COM PORT содержимого индикатора
}//end of счетчик досчитал(t0_ext)
}//end of ovf0_proc
voidfotm_trx(void)
{ //формирование буфера передачи
txd_bufer[0]=table_ascii[bufer_led[1]];// номер канала
txd_bufer[2]=table_ascii[bufer_led[2]];// параметр
txd_bufer[3]=table_ascii[bufer_led[3]];//параметр
txd_index=0;
}
voidtransmit(void)
{
if(txd_bufer[txd_index]){
UDR=txd_bufer[txd_index++];
}
}
voidmeasure_a(void)
{
ADMUX=num_ch;// номер канала в мультиплексор АЦП
adc_start;
}
voiddisplay_parm(void)
{// отображениена терминале значения параметра
bufer_led[1]=num_ch+1;// выдать номер канала (1...6 вместо 0...5)
d2_bcd(ampl);//вызовпрограммы обработки числа
}//end of display_parm
voidd2_bcd(long val)
{//2-10
bufer_led[2]=val/10;
if(!bufer_led[2]) bufer_led[2]=blank_symb;
bufer_led[3]=val%10;
}//end of d2_bcd
term.h
voidcount_time_gen_init(void){
count_time_gen=time_gen;
}
voidcount_time_ind_init(void){
count_time_ind=time_ind;
}
#definetcnt1_freq 4000000 // частота тактирования таймера
#definebufer_led_size 5 // длина буфера индикатора
#defineblank_symb 0x0F // символ гашения
#definetxd_buf_len 8 // äдлина буфера передачиRS232
#define CR 13 //перевод строки
#define LF 10 //в начало строки
#define TAB 9 //табуляция
#define ubr1920012 // 19200 бит/с при 4МГц кварце
#define t0_init (256-125)// для загрузки в таймер диспетчера
#definet0_ext_init 5 // 125*5=625
#definecount_50_init 50 // для загрузки в счетчик 500ms
#defineMAX_CH 6
#definea_term 0.4883//коэффициент пересчета
#defineb_term -559// коэффициент пересчета
#definetime_gen 10 //5 сек время переключения каналов
#definetime_ind 10 //5 сек время индикации
Описаниепрограммы
Работа программыосновывается на решении следующих задач:
1. общая настройкапортов ввода/вывода, таймеров, конфигурация и т.д.
2. настройка АЦП.
1) внутреннийисточник напряжения 5V
2) прерывания откомпаратора
3) коэффициентделения 128(частота 31 250 ГЦ)
4) непрерывноепреобразование
3. настройка UART
1) асинхронныйрежим
2) прерыванияпо передаче вкл.
3) скоростьобмена 9600 Бод(бит в секунду)
4. прерывания потаймеру, формирование задержки 500мс.
5. прерывание АЦПот компаратора
6. формированиебуфера передачи данных (3 байта – 1-й байт- №канала, 2-й, 3-й байт — данные),отправка буфера передачи данных
Содержимоебуфера передачи данных отображается на экране, с помощью программы HiperTerminal.
Описание применения программы.
Программапозволяет обрабатывать данные, полученные с термодатчика и выводить их на экранчерез последовательный RS-232. В очередном порядке выводится номер канала и температураи, измеренную данным каналом.
ПРИЛОЖЕНИЕ 3
Копия экрана
/>
ПРИЛОЖЕНИЕ 4
Реальная модель устройства
/> />