Разработка беспроводного канала связи между микроконтроллером на вращающемся стенде и персональным компьютером

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Государственное бюджетное образовательное учреждение

высшего профессионального образования

Рязанский государственный радиотехнический университет

Факультет электроники Кафедра ЭТТНаправление 210100К защитеЗаведующий кафедрой ЭТТ____________ Карабанов С. М.«____» «__________»  2011 г.

"Разработка беспроводного канала связи между микроконтроллером на вращающемся стенде и персональным компьютером"

Выпускная квалификационная работа бакалавра

 

Выпускник Руководитель работыЖидков А.М.Базылев В.К.

5 июня 2011  г.

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Государственное бюджетное образовательное учреждение

высшего профессионального образования

Рязанский государственный радиотехнический университет

УТВЕРЖДАЮЗаведующий кафедрой ЭТТ______________ Карабанов С. М.«____» «__________» 2011 г.

ЗАДАНИЕ

на выпускную квалификационную работу бакалавра

Студенту   ЖИДКОВУ АЛЕКСАНДРУ МИХАЙЛОВИЧУ

1. Тема работы: "Разработка беспроводного канала связи между микроконтроллером на вращающемся стенде и персональным компьютером" 

2. Срок сдачи законченной работы -  18 июня 2011 г.

3. Руководитель работы  -  Базылев Виктор Кузьмич, канд. техн. наук, доцент кафедры ЭТТ

4. Исходные данные: беспроводная связь между микроконтроллером ADuC812, расположенном на вращающемся стенде, и персональным компьютером, графическое отображение принимаемых данных на мониторе компьютера, управление работой микроконтроллера командами оператора персонального компьютера, использование интерфейса RS232, скорость  обмена данными 9600 бит в секунду.

 

5. Содержание работы

5.1. Введение. Общее технико-экономическое обоснование темы

5.2. Анализ литературных данных по способам реализации беспроводного канала связи. Постановка задачи

5.3. Разработка беспроводного канала связи между микроконтроллером ADuC812, расположенном на вращающемся стенде, и персональным компьютером

5.3.1. Разработка тестовой программы обмена для микроконтроллера

5.3.2 Разработка программы обмена и обработки данных на персональном компьютере

5.3.3 Разработка функциональных и принципиальных схем передатчиков и приёмников канала связи

5.3.4. Экспериментальное исследование канала связи

5.3.5. Модернизация программы поиска резонансной частоты виброподвеса лазерного гироскопа с целью беспроводной передачи данных с вращающегося испытательного стенда на персональный компьютер

5.4. Обсуждение результатов и выводы

5.5. Заключение

5.6. Библиографический список

6. Перечень графического материала

6.1. Блок-схема канала связи – 1 лист

6.2. Электрические схемы приёмо-передатчиков – 1 листов

6.3. Блок схемы программ – 2 листа

Руководитель                Базылев В.К.

Выпускник               Жидков А. М.

« ___ » « __________ » 2011   г.

Реферат

Пояснительная записка содержит

Ключевые слова:  лазерный гироскоп, виброподвес, вращающийся стенд,  микроконтроллер ADUC812,  устройство приема – передачи, последовательный порт, персональный комьютер.

Цель работы - разработка устройства для обмена данными между микроконтроллером, расположенном на вращающемся стенде и персональным компьютером.

Разработан беспроводный  (инфракрасный) канал связи для двусторонней передачи данных между персональным компьютером и микроконтроллером,  расположенном на вращающемся стенде. Разработана управляющая программа для персонального компьютера, с помощью которой происходит управление микроконтроллером и производится обработка данных и вывод их на экране в виде графика.

1Введение.

Общее технико-экономическое обоснование тeмы

Анализ литературных данных по способам реализации беспроводного канала связи. Постановка задачи

1 Разработка устройства для приема и передачи данных

1.1 Блок-схем устройства

1.2 Разработка принципиальной схемы устройства

3 Экспериментальное исследование схем приёмопередатчиков

3.2 Разработка программы для микроконтроллера

3.3 Разработка программы для персонального компьютера

3.4 Экспериментальная проверка работы канала связи

3.5 Модернизация программы поиска резонансной частоты виброподвеса лазерного гироскопа

Заключение

Библиографический список

Приложение


1. Введение. Общее технико-экономическое обоснование темы

Основные области применения гироскопов – судоходство, авиация и космонавтика. Почти каждое морское судно дальнего плавания снабжено гирокомпасом для ручного или автоматического управления судном, некоторые оборудованы гиростабилизаторами. В системах управления огнем корабельной артиллерии много дополнительных гироскопов, обеспечивающих стабильную систему отсчета или измеряющих угловые скорости. Без гироскопов невозможно автоматическое управление торпедами. Самолеты и вертолеты оборудуются гироскопическими приборами, которые дают надежную информацию для систем стабилизации и навигации. К таким приборам относятся авиагоризонт, гировертикаль, гироскопический указатель крена и поворота. Гироскопы могут быть как указывающими приборами, так и датчиками автопилота. На многих самолетах предусматриваются гиростабилизированные магнитные компасы и другое оборудование – навигационные визиры, фотоаппараты с гироскопом, гиросекстанты. В военной авиации гироскопы применяются также в прицелах воздушной стрельбы и бомбометания. [1]

Гироскоп создан на основе лазера с кольцевым резонатором, в котором по замкнутому оптическому контуру одновременно распространяются встречные электромагнитные волны. Длины этих волн определяются условиями генерации, согласно которым на длине периметра резонатора должно уложиться целое число волн, поэтому на неподвижном основании частоты этих волн совпадают.

При вращении резонатора лазерного гироскопа путь, проходимый лучами по контуру, становится разным, и частоты встречных волн становятся неодинаковыми. Волновые фронты лучей интерферируют друг с другом, создавая интерференционные полосы.

Вращение резонатора лазерного гироскопа приводит к тому, что интерференционные полосы начинают перемещаться со скоростью, пропорциональной скорости вращения гироскопа, если угловая скорость превышает некоторую величину.

Лазерный гироскоп имеет виброподвес  с резонансной частотой колебания. Виброподвес нужен для принудительных колебаний, так как в области малых угловых скоростей лазерный гироскоп нечувствителен к вращению основания, на котором он закреплён. Для испытаний, лазерный гироскоп помещают на вращающийся стенд, на котором происходит настройка виброподвеса на резонансную частоту. Настройка производится с помощью микроконтроллера  ADUC812,  данные о настройке должны передаваться в персональный компьютер (ПК). Для обмена данными между микроконтроллером и ПК необходимо разработать беспроводной канал связи.    Разработке такого канала связи посвящается данная работа.   

2. Анализ литературных данных по способам реализации беспроводного канала связи. Постановка задачи

Лазерный гироскоп  на основе кольцевого резонатора (рис. 2.1),  используется для измерения угловых скоростей

В области малых угловых скоростей лазерный гироскоп нечувствителен к вращению основания, на котором он закреплён (рис. 2.2) Для обеспечения функционирования гироскопа в области малых угловых скоростей его основания используются принудительные колебания этого основания с помощью вибрационной стойки (виброподвеса).  

 

Колебания осуществляются путём подачи синусоидального напряжения на пьезоэлементы виброподвеса. Амплитудно-частотная характеристика механических колебаний виброподвеса имеет вид кривой с резким максимумом шириной в несколько герц. Амплитуда механических колебаний в максимуме увеличивается более чем  в 10 раз. Для работы подвеса его настраивают на максимум амплитуды механических колебаний путём изменения частоты синусоидального напряжения на пьезоэлементах.  Настройка на резонансную частоту виброподвеса осуществляется с помощью микроконтроллера. Для испытаний гироскоп размещают на вращающемся стенде с автономным источником питания.  Перед проведением испытаний виброподвес настраивается на резонансную частоту. Для контроля процесса испытаний необходимо передавать данные от микроконтроллера, размещённого на вращающемся стенде, на ПК.  Для этого необходимо разработать беспроводный канал связи.

Одно из возможных решений данной задачи это использование технологии Bluetooth, обеспечивающей связь в диапазоне 2,4…2,5 ГГц (рис. 2.3). Весь этот диапазон разбит на N – число каналов,  если при передаче данных частота увеличивается на 175 кГц, от выбранного канала, то это будет логическая единица, если уменьшится, то это будет логический ноль. Другими словами логические ноль и единица передаются на разных частотах. 8-разрядный микроконтроллер ADUC812, используемый для цифрового синтеза частоты колебаний виброподвеса,  не имеет встроенного Bluetooth – модуля.  Возможен вариант использования для ПК и микроконтроллера Bluetooth – модуля ВТ – 20 [2],  который используется для замены проводного соединения

Рис.2.3. Частотный диапазон Bluetooth (а) и способ кодирования пакетной информации (б)

по интерфейсу RS232. Но при  разработке устройства для приема – передачи информации, такого Bluetooth – модуля не было в наличии.

Другой способ решения задачи это использование формата передачи данных по ИК лучу, применяемого в пультах управления телевизорами (рис. 2.4.)

Рис.2.4. Принцип кодирования информации в ПДУ

В них для  защиты от внешнего излучения используют сложное кодирование информации.  Логическая единица передается пачкой световых импульсов с определенной частотой. Затем идет пауза – логический ноль. Обычно в пультах используется одна частота модуляции несущей (то есть частоты излучения ИК – светодиода ) — на неё настроен и пульт и приёмник. Частоты модуляции обычно стандартны — это 36 кГц, 38 кГц, 40 кГц. Для согласования интерфейса с микроконтроллером требуются дополнительные устройства кодирования и декодирования информации.

Более простой вариант решения задачи заключается в помещении передатчиков и фотоприёмников в цилиндрическом экране, который экранирует приёмники излучения от внешней засветки (рис. 2.5) 

Рис. 2.5.  Цилиндрический экран (1),   ИК диод (2) и ИК  фототранзистор (3) на вращающимся стенде, неподвижные ИК диод (4) и ИК фототранзистор (5)

На стороне стенда фототранзистор и передающий светодиод размещаются на оси вращения, ось цилиндра экрана и ось вращения стенда совмещаются. С другого конца  экрана на его оси неподвижно размещаются фототранзистор и светодиод приёмника и передатчика. При этом отпадает необходимость в дополнительном кодировании данных с целью защиты от засветки. Обмен данными можно производить по ИК лучу в формате длительностей импульсов интерфейса RS232 портов микроконтроллера и ПК.  

3.1. Разработка устройства для приема и передачи данных

3.1.1. Блок-схем устройства

Блок схема разрабатываемого устройства представлена на рис.3.1. Она содержит ИК фотоприёмники и передатчики со стороны схему преобразования уровней напряжения ПК и МК. По сути, реализуется обмен данными аналогичный связи ПК и МК по нуль-модемному кабелю и интерфейсу RS232.  

С  ПК на микроконтроллер подается команда,  по которой он начинает настройку виброподвеса на резонансную частоту.  После того как микроконтроллер выполнит настройку,  он посылает по последовательному порту данные о настройке  в ПК,  где они обрабатываются и выводятся в виде графика.

 

Рис. 3.1. Блок – схема разрабатываемого устройства:

                               1 – Усилитель тока,

                               2 – Преобразователь уровней напряжения,

                               3 – Передатчик,

                               4 – Приёмник.

3.1.2. Разработка принципиальной схемы устройства

В качестве первого варианта исследовалась схема, приведённая на рис. 3.2.  Схема  включает в себя приёмники и передатчики со стороны ПК и микроконтроллера.

Схема передатчика со стороны ПК выполнена на резисторе R1, диоде VD1 и светодиоде  VD2 , передатчик со стороны МК включает в себя резистор R3, диод VD3 и светодиод VD4. В качестве светодиодов VD2 и VD3 использовались светодиоды ИК - диапазона KM-4457F3C, взятые из шариковой мыши от компьютера. Диоды VD1 и VD4 служили  для защиты светодиода от пробоя обратным напряжением, так как в последовательном порту напряжение логической единицы составляет -12 В.

Приемник выполнен на элементах  VT1 и R2, со стороны ПК, и на элементах VT2 и R4, со стороны микроконтроллера. Так же в схему приёмника включены преобразователи уровней напряжения. Фототранзистор ИК-диапазона (L-610MP4BT-BD), который использовался в качестве приемника(VT1 , VT2), так же был взят из мыши для компьютера.

В схеме присутствуют также микросхемы преобразования уровней напряжения DD1 и DD2. В последовательном порту ПК напряжение на выходе составляет 12 В (логический ноль)  и – 12 В (логическая единица), такие уровни напряжения необходимы для увеличения помехозащищенности канала связи.  В тот момент когда фототранзистор закрыт, на его выходе напряжение равно напряжению источника питания, которое в данном случае  составляет 5 В (логическая единица), а в момент когда транзистор открыт, на его выходе напряжение равно приблизительно 0.2 В (логический ноль). В связи с этим в схеме приемника используется преобразователь уровней напряжения, который преобразует 0.2 и 5 В, соответственно в 12 и  - 12 В. В качестве такого преобразователя использовалась микросхема ADM202, также  можно использовать и микросхему MAX232.

Для работы  по передаче данных в обе стороны, использовались    две линии разъёмов X1 и X2  RxD (приемная) и  TxD (передающая). Так же использовалась и линия SG (земля).  Кроме этих линий в разъёме RS232 присутствовали и другие, которые называют линиями квитирования, или модемными, так как  обычно используются для связи ПК с модемом. Поэтому в данной схеме эти выводы не использовались, и просто соединялись между собой. Для обеспечения работы последовательного порта компьютера линия RTS соединялась с линией CTS, а линия DCD соединялась с линиями DTR  и DSR.

Экспериментально было установлено, что нагрузочная способность последовательного порта  ПК составляла приблизительно 5 мА.  При таком токе светодиод генерирует излучение недостаточное для открывания фототранзистора.  В связи с этим, для увеличения тока протекающий через светодиод, была разработана другая схема передатчика, содержащая усилитель тока  (Рис. 3.3)

В данном варианте схемы, передатчик выполнен на элементах R2, R3, R3, VD2, VD3, VT1 со стороны ПК, и на элементах R8, R9, R10, VD4, VD5, VT4, со стороны микроконтроллера. Усилители собраны на транзисторах VT1, VT4 со стороны ПК и МК соответственно. Диоды VD2 и VD5 служили для защиты от пробоя напряжением -12 В переходов база – эмиттер транзисторов VT1 и  VT4. Резисторы R4 и  R10 необходимы для обеспечения пути рассасывания носителей в базах светодиодов VD3 и VD4 после окончания управляющих импульсов на базах транзисторов VT1 и  VT4. Напряжение питания приёмника и усилителя тока составляет 5 В и 9 В соответственно. Для того чтобы в схеме не использовать два источника питания использовались стабилитроны на 5 В VD1 и VD6. Резисторы R1 и  R8 служили балластными схем папаметрической стабилизации. Для ограничения токов протекающих через стабилитроны служили.

В целом, усилитель тока в схеме передатчика, обеспечивал протекание рабочего тока через светодиод, который составляет примерно 50 мА в импульсе. При таком токе светодиод ИК-диапазона генерировал излучение достаточной мощности, чтобы полностью открыть фототранзистор.

3.1.3. Экспериментальное исследование схем

приёмопередатчиков

Для экспериментального исследования на монтажной плате была собрана схема приемника и передатчика.  Передатчик присоединялся к ПК через последовательный порт, с помощью нуль-модемного кабеля. Сигнал подавался с помощью программы, написанной среде программирования Delphi 7. С  помощью этой программы в порт отправлялись байты, со скоростью передачи 9.6 кб/с.  К выходу приёмника подключался первый канал двухканального цифрового осциллографа, с помощью которого наблюдались осциллограммы выходных импульсов.  Второй канал контролировал напряжение на светодиоде передатчика. На рис. 3.4. представлены осциллограммы напряжений на светодиоде и выходе приемника. В отсутствие резистора R4 или R10 (со стороны МК), подключенного параллельно светодиоду, происходило искажение входного импульса (рис. 3.4 а). Это явление связано с отсутствием пути для рассасывания заряда, из базы светодиода. Хотя в данном эксперименте это явление не влияло на форму импульсов на выходе приёмника, разброс мощностей излучения образцов светодиодов и чувствительностей фотоприёмников может приводить к искажению передаваемой информации. При подключении резистора параллельно светодиоду, искажение импульса отсутствовало (рис. 3.4 б) и логический ноль передатчика чётко фиксировался.

 

а)

б)

Рис.3.3 Форма импульсов напряжения импульсов на светодиоде и фототранзисторе: а) без резистора R4 (R8); б) с резистором R4 (R8)

1 – напряжение на светодиоде

         2 –напряжение на фототранзисторе

3.2 Разработка программы для МК

Программа для микроконтроллера должна выполнять следующие действия:  при подаче напряжения на микроконтроллер, он должен производить настройку последовательного порта, и по команде с ПК начинать цифровой синтез частот колебаний виброподвеса с целью поиска резонансной частоты. Затем данные об амплитуде колебаний виброподвеса на различных частотах должны сохраняться в оперативной памяти микроконтроллера, а затем пересылаться по последовательному порту в персональный компьютер. В качестве первого варианта для проверки работы канала связи программа для микроконтроллера была упрощена. Синтез частот не проводился. Производилась запись данных в оперативную память и по команде оператора персонального компьютера производилась пересылка данных по разработанному каналу связи в персональный компьютер. Блок-схема программы приведена на рис. 3.4.

 

Данная программа выполняет следующие действия:

- инициализация порта;

- запись 10 символов во внутреннюю память;

- переход в ожидание команды от ПК;

- проверка кода команды;

- передача данных в ПК;

Ниже приведен листинг программы (рис. 3.5)

$mod812       ; определение типа микроконтроллера

; Распределение ресурсов

;Регистры:  r1 - текущий адрес ячейки,

                    ;r2 - текущее число обработанных ячеек

                    ;r3 - регистр хранения внешней команды

                   ; РПД: 21h - 0Bh - обрабатываемые данные

;***********Подпрограмма  установки порта и  начальных значений

                      ;пересылаемых  данных******

  mov scon,#01010000b

  mov tmod,#00100000b

  mov th1,#00fdh

  mov ie,#10010000b           ;разрешение прерываний от   

         ;последовательного   порта

  mov r1,#20h                       ;начальный адрес пересылаемого кода

  mov r2,#10                         ;число ячеек

  mov a,#21h                         ;начальное значение пересылаемого кода в

                                             ;начальную  ячейку памяти

                       

  setb tr1                               ;включение таймера, работающего

                                            ;в    последовательном порту

;***************конец подпрограммы установки**************

;***************подпрограмма записи данных в оперативную  память***

                                                

m1:

  mov @r1,a                            ; запись в текущую ячейку

  inc r1

  inc a

  inc a

 djnz r2,m1                            ;проверка числа загруженных ячеек памяти

jmp m5                                  ; обход подпрограммы обработки прерывания

;*******конец подпрограммы записи данных в оперативную память*****

 

;***Подпрограмма обработки прерываний от последовательного порта***

  org 23h

  jnb ri, m3                             ;проверка запроса прерывания от

                                               ;приемника

  clr ri                                      ;очистка бита RI

  mov r3,sbuf                          ;запись в регистр r3 внешней команды

  cjne r3,#0ah,m4                   ;сравнение внешней команды с кодом

                                               ;команды чтения данных

 

  setb ti                                    ; запрос прерывания передатчика для

                                                ; обеспечения начала передачи

  mov r1, #20h 

   mov r2, #0bh                          ; увеличение числа ячеек на 1, в

                                                  ;противном случае   данные

                                                  ; передадутся не полностью

   jmp m4                                  ; переход к передаче даннных

m3: clr ti                                 ; начало передачи данных

  djnz r2, m6                            ; определение заданного числа

                                               ; переданных данных

 

 jmp m4

m6:  mov sbuf, @r1

inc r1                                          ; увеличение текущего адреса ячейки

m4: reti

;***********Конец подпрограммы обработки прерыванитй от

                         ;последовательного порта**

;***********Основная  подпрограмма*****************

m5: jmp m5                                ; ожидание команды передачи данных

end

При подаче напряжения питания на микроконтроллер производилась настройка последовательного порта. Задавалась скорость передачи данных (9.6 кб/с), число бит в посылке (10 бит), контроль чётности (отсутствует). Далее производилась  запись десяти байт  во внутреннюю оперативную память микроконтроллера, после чего он переходил в режим ожидания. После прихода кодового символа (команды на передачу данных в ПК), происходила передача байтов данных из внутренней памяти МК в последовательный порт, откуда они автоматически передавались в ПК.

Проверка работоспособности программы производилось в среде симулятора ADSIM. Для этого текст программы создавался текстовом редакторе и сохранялся в файле с расширением   *.asm,  после чего происходила компиляция программы с помощью ассемблера  asm51.exe.  После компиляции образовывались два файла, один с расширением  *.Lst, второй с расширением *.HEX. Далее эти два файла загружались в симулятор ADSIM, где происходила проверка программы. Отладка программы могла производиться в пошаговом режиме. Для исправления программы надо изменить её код, и затем снова   скомпилировать и загрузить в программу- симулятор ADSIM.  Для проверки работы программы  в симуляторе существуют окна Program Disassembly (окно, в котором отображается команда программы), Internal Data Memory (IRAM) (окно внутреннего ОЗУ), External Data Memory (XRAM) (окно внешнего ОЗУ), UART Terminal Window(окно последовательного порта).  На рис. 3.5 приведено изображение рабочего окна симулятора. Во время отладки программы, с помощью окна UART Terminal Window, вводился кодовый символ, при котором производилась   запись 10  байт из оперативной памяти микроконтроллера  в буфер порта. Записанные в буфер порта символы выводились в окне UART Terminal Window в виде кода ASCII (Рис. 3.6)

Рис. 3.5. Рабочее окно симулятора ADSIM

Рис. 3.6. Результаты работы в симуляторе ADSIM

После проверки в симуляторе ADSIM, производилось программирование  микроконтроллера   ADUC812. Для этого файл с расширением *.hex загружался в резидентную память программ микроконтроллера  с помощью программы download.exe. Микроконтроллер располагался  на отладочной плате Kit ADuC812 (рис. 3.7) Соединение отладочной платы с ПК осуществлялось с помощью нуль-модемного кабеля.

Рис. 3.7. Отладочная плата Kit ADuC812

В состав Kit ADuC812 входят:

  •  микроконтроллер ADuC812;
  •  микросхема статического ОЗУ ёмкостью 128кБ;
  •  2 микросхемы  регистров-защёлок для организации 16- и 24- битной адресации внешней памяти;
  •  разъём интерфейса RS232;
  •  микросхема ADM202, служащая для согласования уровней сигналов КМОП и RS232;
  •  посадочные места или панели для операционных усилителей, включённых повторителями входных аналоговых сигналов;
  •  микросхемы 74НС00 и 74НС14, с помощью которых организован процесс программирования;
  •  разъём питания;
  •  разъём интерфейса i2c;
  •  макетное поле, на котором пользователь может собрать специфическую для своей задачи часть устройства;
  •  кабель для подключения к ПК по интерфейсу RS232;
  •  блок питания.

На макетном поле присутствуют:

  •  выводы земли, питания, аналоговой земли, аналогового питания;
  •  выводы микросхемы ADuC812;

аналоговые входы, подключённые к порту 1 микроконтроллера через буферные повторители и RC-фильтры. ОУ в комплект платы не входят. Пользователю предлагается выбрать их в соответствии с решаемой задачей.

3.3. Разработка программы для ПК

МК после запуска испытательного стенда должен находится в режиме ожидания команды от ПК. По команде с ПК он должен начать поиск резонансной частоты виброподвеса, запись значений амплитуд датчика ускорения в оперативную память и определение максимальной амплитуды датчика ускорения. После этого должна начаться передача данных в ПК. Для этого нужно написать программу для ПК, которая будет взаимодействовать с микрокнтроллером. Программа для ПК должна выполнять следующие действия:

- посылать команду микроконтроллеру, для того чтобы он начал настройку виброподвеса на резонансную частоту

- принять данные от микроконтроллера

-обработать данные и вывести в виде графика зависимости амплитуды напряжения датчика ускорения от частоты.

Рис.3.7. Блок-схема  программы для ПК

Программа написана в среде программирования Delphi 7, блок-схема

программы приведена на рис. 3.7. На рис. 3.8 изображена блок – схема подпрограммы обработчика событий Button1.Click.

При запуске программы возникает событие ОnCreate, при этом загружается его обработчик FormCreate. В результате запуска программы происходит настройка последовательного порта com1, устанавливается следующие параметры:

- скорость 9,6 кб/с;

- контроля четности нет;

- количество стоп – битов – один;

- длина байта 8 бит;

- максимальное время, допустимое между двумя последовательными символами 100 мс;

После этого настройки прекращаются.

При нажатии кнопки пуск, загружается обработчик событий Button1.Click. При этом происходит очистка буфера, после устанавливается маска событий, которая будет отслеживать появление символов  в порту. Начальное и конечное значение частоты, а также шаг изменения частоты заносятся в редакторы Edit1, Edit2 и Edit3.  Затем происходит отправка кодового символа в микроконтроллер, после чего программа переходит  в ожидание прихода данных от микроконтроллера. После прихода данных функция waitcommevent передает управление основной программе, после чего происходит считывание данных из порта. Далее начинается цикл, число итераций которого равняется количеству точек исследуемой зависимости. За одну итерацию происходит построение одной точки.

После окончания измерения всех точек исследуемой характеристики, происходит выход из подпрограммы Button1Click.

При закрытии приложения возбуждается событие OnClose, обработчиком которого является процедура FormClose. Данная подпрограмма выполняет одно действие – закрытие COM-порта.

Далее приведен листинг программы.

//Обработчик события OnCreate

procedure TForm1.FormCreate(Sender: TObject);

begin

port:=createfile('COM1', GENERIC_READ or

GENERIC_WRITE, 0, nil, OPEN_EXISTING, 0, 0);     // открытие порта

Buildcommdcb  ('baud=9600 parity=N data=8 stop=1 ', dcb_);                          

setcommstate(port, dcb_);                              // установка настроек    порта

getcommtimeouts(port, CommTimeouts_);     //  установка максимального

CommTimeouts_.ReadIntervalTimeout:=100;//времени между считываемыми

 setcommtimeouts(port, CommTimeouts_);    //  символами из порта

SetupComm(port,  200, 128); //установка размера буфера

end;

//Обработчик события, Button1Click

procedure TForm1.Button1Click(Sender: TObject);

var

Fx,Ay:real;      //определение переменных

tabl1: array [1..2,1..200] of real;     //массив для хранения значений частоты и           

                                                       // амплитуды напряжения

 nach,con,shag: real;       // начальное, конечное значение и шаг

 count,i: word;       //число точек на графике

 ev: dword;        //маска событий

 buf1: array [1..200] of byte;       // массив для чтения из порта

 dac: byte;       //отправляемый символ

begin

purgecomm(port, PURGE_TXABORT or PURGE_RXABORT

   or PURGE_TXCLEAR or PURGE_RXCLEAR);   //очистка буфера

setcommmask(port, EV_RXCHAR);    //установка ожидания  события, в

                                                              //данном случае   получение символов                                                                        

                             

fillchar(tabl1,sizeof(tabl1),0);                  //задание массива для заполнения

                //данными

series1.Clear;                                            //удаление графика

nach:=strtofloat(edit1.Text);                    //начальное  значение   частоты             con:=strtofloat(edit2.Text);                      //конечное  значение частоты

shag:=strtofloat(edit3.Text);                     //шаг  изменения  частоты

count:=round((nach-con)/shag);                //число точек на графике

dac:= 10; //задание кодового числа

writeFile(port, dac, 1, num, nil);              // запись кодового числа в порт

waitcommevent(port, ev, nil);                 //ожидание получения символов

ReadFile(port, buf1, 200, num, nil);         //чтение данных из порта

for i:=1 to 131 do

begin

tabl1[1,i]:=nach+i*shag;                        //  заполнение массива  данными

tabl1[2,i]:=buf1[i];                                 //  из порта и присвоение

Fx:=tabl1[1,i];                                        //  значений соответствующих

Ay:=tabl1[2,i];                                       //  амплитуде напряжения и частоте

series1.AddXY(Fx,Ay,'',clblack);          //  построение графика

end;

end;

//Обработчик события On OnClose

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

begin

 closehandle(port);                                     // закрытие порта

end;

3.4. Экспериментальная проверка работы канала связи

Для проверки работы канала связи на монтажной плате была собрана схема приёмопередатчика  для обмена данными между ПК и микроконтроллером (Рис. 3.9) Соединение приёмников и передатчиков с ПК и микроконтроллером соответственно, происходило с помощью нуль-модемного кабеля. После подключения питания к схеме и микроконтроллеру, на компьютере запускалась программа, после нажатия кнопки  «Готово»  происходила отправка команды в микроконтроллер, по которой он начинал отправку 10  байт, сохранённых в оперативной памяти  в ПК.  Данные обрабатывались и выводились в виде графика (рис. 3.10)

Рис. 3.9. Общий вид схемы приёма – передатчика на монтажной плате.

Рис. 3.10. Интерфейс программы для ПК.

3.5. Модернизация программы поиска резонансной частоты

После экспериментальной  проверки канала связи, произведена модернизация программы для поиска резонансной частоты виброподвеса с целью вывода зависимости амплитуды датчика ускорения от частоты колебаний виброподвеса в виде графика на мониторе компьютера. После модернизации программа выполняет следующие действия:

- после подачи напряжения питания на микроконтроллер, он производит настройку порта, а затем переходит в ожидание команды от ПК;

- после получения команды, микроконтроллер начинает генерацию минимальной частоты колебаний виброподвеса (340 Гц) и измерение амплитуды датчика ускорения (его амплитуда пропорциональна амплитуде колебаний виброподвеса). Затем происходит сохранение во внешней памяти и в ячейке внутренней памяти. Далее увеличивается частота на 0,916 Гц, и измерение напряжения датчика ускорения и сохранение измеренного значения повторяется. Затем определяется какое из значений больше. Большее значение сохраняется в оперативной памяти. Далее цикл повторяется до достижения наибольшей частоты. В результате во внешней памяти записывается зависимость амплитуд

механических колебаний виброподвеса от частоты. Во внутренней памяти сохраняется значение частоты на которой амплитуда колебаний максимальна. Информация о частоте максимума определяется по смене знака разности последующего и предыдущего значения напряжений датчика ускорения. На время поиска резонанса прерывание от последовательного порта запрещаются;

- затем производится передача сохранённых значений напряжения колебаний из внешней памяти в ПК по беспроводному каналу. Для этого разрешается прерывание от последовательного порта и выключается таймер-счётчик ноль, обеспечивающий синтез частоты. После завершения передачи данных таймер-счетчик включается и продолжается генерация колебаний на резонансной частоте. Одновременно микроконтроллер ожидает команду от ПК.

Блок – схема программы изображена на рис. 3.11

Ниже приведён листинг программы.

$mod812

; Программа генерации синусоид с шагом 1 Гц и определения резонансной частоты подвеса

; начальное значение частоты 340 Гц (h)

; конечное значение частоты 460 Гц (h)

;***********************************************************

; Распределение ресурсов:

; ячейки внутренней памяти данных:

accuml data 20h     ;адрес ячейки для младшего байта аккумулятора                 

                              ; фазы

accumh data 21h    ;адрес ячейки для старшего байта аккумулятора

                              ;фазы

dell data 23h          ;адрес ячейки младшего байта кода текущей

                              ;частоты

delh data 24h        ;адрес ячейки старшего байта кода текущей частоты

;30h - адрес предыдущего значения ДУСа,

;31h - адрес текущего значения ДУСа

;32h -  адрес младшего байта кода частоты с большим

                        ;значением ДУСа

;33h -  адрес старшего байта кода частоты с большим

                  ;значением ДУСа

; Регистры:

;R0 - адрес на странице внешней памяти при записи

;R1 - адрес на странице внешней памяти при чтении

;R3 - для сохранения аккумулятора при переходе к подпрограмме             

                 ;прерывания (можно хранить и в ячейке)

;R4 - для сохранения PSW при переходе к подпрограмме

  ;прерывания (можно хранить и в ячейке)

; R6,R7 - используются для создания программной задержки 142 мс

 ;ljmp m1

  ;**************************************************

 ; подпрограмма прерывания от Т\С0 для выдачи значения sin

 org 000bh

 mov r3, a      ;сохранение значения аккумулятора основной

                         ;программы

 mov r4,PSW ;сохранение значения регистра PSW (сохр. бита С)

 mov a, accuml

 add a,dell            ;сложение младших байтов аккумулятора

                             ;и кода частоты

 mov accuml, a

 mov a, accumh

 addc a,delh         ;сложение старших байтов аккумулятора и кода

                              ;частоты с учётом переноса

 mov accumh, a

 movc a,@a+dptr

 mov DAC0L,a

 mov a,r3 ;возврат значения аккумулятора в основную программу

 mov PSW,r4 ;возврат значения регистра PSW в основную

                        ;программу (возврат  бита С)

   ;  nop ; для того, чтобы во 2-м режиме таймера повторялось 92

                 цикла, иначе  чередуются 91 и 93!

    reti

    ;**************************************************************;*******Подпрограмма прерывания от последовательного порта********

    org 0023h

    jmp  m11

  

 ;*****************************************

 ;Подпрограмма прерывания от АЦП

 ORG 0033H ; (ADC ISR)

   mov 31h,adcdatal

   mov a,31h

   movx @R0, a    ;сохранение данных во внешнюю память

   inc R0

   subb a,30h

   jc m4        

   mov 30h,31h ; загрузка большего значения ДУСа

   mov 32h,dell     ;Сохранение младшего байта кода  частоты с

                              ;большим  значением ДУСа

   mov 33h,delh    ;Сохранение старшего байта кода  частоты

                             ;с большим   значением ДУСа

   m4: reti

   ;****************************************************************

m1:                                   

 ;***********Инициализация последовательного  порта**********

    mov scon,#01010000b

    mov tmod,#00100000b

    mov th1,#00fdh     

    setb tr1

    mov IE, #10010000b      

    jmp m5

 m8:

   clr ti

   cjne r1, #131, m12

   reti

   m12:  movx a, @R1    ;отправка данных в ПК

   mov sbuf, a

   inc R1  

   reti

m11:

     jnb ri, m8 ;проверка запроса прерывания от приемника

     clr ri    ;очистка бита RI

     mov r1,sbuf   ;запись в регистр r1 внешней команды

     reti  

m5: cjne r1, #10, $      ; ожидание команды чтения данных

mov r1, #0

mov P2, #0                ;задание нулевой страницы внешеней памяти

mov DAC0H,#0        ; Обнуление старшего регистра ЦАП0

mov DAC0L,#0         ; Обнуление младшего регистра ЦАП0

mov DACCON, #10101101b  ; Включение ЦАП0 (DAC0)

mov TMOD, #10b                  ; установка 2-го режима работы т\с0

mov TL0,#174                        ;Задание интервала 100 мкс для 1-го  

                 ;срабатывания таймера  (тактовая частота мк 11,059 мГц )

mov TH0,#164                       ;Задание интервала 100 мкс для любого   

                    ;срабатывания таймера  (тактовая частота мк 11,059 мГц)

mov IP,#00000010b ;Задание приоритета прерываний от т\с 0

mov accuml,#0         ;задание начального значения младшего байта

                                 ; аккумулятора фазы

mov accumh,#0        ;задание начального значения старшего байта

                                  ; аккумулятора  фазы

mov dell , #180    ;Задание начальной частоты (340 Гц), младший

                             ; байт

mov delh , #08     ;Задание начальной частоты (340 Гц), старший байт

mov dptr, #0110h    ;Начальный адрес таблицы

MOV     ADCCON1,#07Ch   ; power up ADC, 14.5us conv+acq time

                                          ;(задание  времени преобразования АЦП)

 MOV     ADCCON2,#0   ; select channel to convert (Выбор 0-го канала

                                       ;мультиплексора)

 mov IP,#00000010b ; высший приоритет прерывания от Т\С0

 mov IE, #11000010b

 setb tr0               ;Пуск таймера интервалов отсчётов ЦАП

 DELAY:             ; Задержка 142 мс (48 периодов на частоте 340 Гц  и           

                             ; 65  периодов на 460 Гц)

 MOV     R7,#255         ; 2550 * 535us = 142ms

 DLY1:   MOV     R6,#255         ; 255 * 2.17us = 535us

 DJNZ    R6,$            ; sit here for 535us

 DJNZ    R7,DLY1         ; repeat 255 times (142 ms total)

 ;RET

SETB    SCONV            ; Запуск АЦП

jb SCONV, $      ; Организация задержки на время работы АЦП

*******************************

 mov a, dell

 add a,#6               ; Изменение частоты на величину 0,916 Гц

 mov dell,a

 mov a,delh

 addc a,#0

 mov delh,a

 cjne a,#11,DELAY ;Контролируем достижение старшим байтом

                                  ;приращения   верхнего (11) значения

 mov a, #199  ;   должно быть 199

 subb a,dell            ;Контролируем достижение младшим байтом                 

                              ;приращения верхнего (199)    значения

  jnc DELAY

;**************************************************************

  mov dell, 32h ;Загрузка младшего байта кода резонансной частоты

  mov delh,33h ;Загрузка младшего байта кода резонансной частоты

  clr TR0          ; остановка генерации синусоиды

  mov IE, #10010010b    ; снятие запрета прерывания от

                                        ;последовательного порта

  setb ti                          ;начало передачи данных в ПК

  cjne r1, #131, $             ; определение передачи всех данных

  setb TR0              ;запуск генерации синусоиды на резонансной

                               ;частоте

  cjne r1, #10, $   ;работа на резонансной частоте пока не

                            ;поступит запрос на передачу

  jmp m5              ; возврат к определению резонансной частоты

  org 0110h                ;Таблица 256 значений round(255/2*(1+sin(?)))

DB 128DB 131DB 134DB 137DB 140DB 143DB 146DB 149DB 152DB 156DB 159DB 162DB 165DB 168DB 171DB 174DB 176DB 179DB 251DB 252DB 253DB 253DB 254DB 254DB 254DB 255DB 255DB 255DB 255DB 255DB 255DB 255DB 254DB 254DB 253DB 253DB 252DB 252DB 251DB 250DB 249DB 248DB 247DB 246DB 245DB 244DB 242DB 241DB 239DB 238DB 236DB 235DB 233DB 231DB 229DB 227DB 225DB 223DB 221DB 219DB 217DB 215DB   1DB   1DB   0DB   0DB   0DB   0DB   0DB   0DB   0DB   1DB   1DB   1DB   2DB   2DB   3DB   4DB   4DB   5DB   6DB   7DB   8DB   9DB  11DB  12DB 182DB 185DB 188DB 191DB 193DB 196DB 199DB 201DB 204DB 206DB 209DB 211DB 213DB 216DB 218DB 220DB 222DB 224DB 212DB 210DB 207DB 205DB 202DB 200DB 197DB 195DB 192DB 189DB 186DB 184DB 181DB 178DB 175DB 172DB 169DB 166DB 163DB 160DB 157DB 154DB 151DB 148DB 145DB 142DB 138DB 135DB 132DB 129DB 126DB 123DB 120DB 117DB 113DB 110DB 107DB 104DB 101DB  98DB  95DB  92DB  89DB  86DB  13DB  15DB  16DB  18DB  20DB  21DB  23DB  25DB  27DB  29DB  31DB  33DB  35DB  37DB  39DB  42DB  44DB  46DB  49DB  51DB  54DB  56DB  59DB  62DB 226DB 228DB 230DB 232DB 234DB 235DB 237DB 239DB 240DB 242DB 243DB 244DB 246DB 247DB 248DB 249DB 250DB 251DB  83DB  80DB  77DB  74DB  71DB  69DB  66DB  63DB  60DB  58DB  55DB  53DB  50DB  48DB  45DB  43DB  40DB  38DB  36DB  34DB  32DB  30DB  28DB  26DB  24DB  22DB  20DB  19DB  17DB  16DB  14DB  13DB  11DB  10DB   9DB   8DB   7DB   6DB   5DB   4DB   3DB   3DB   2DB   2DB  64DB  67DB  70DB  73DB  76DB  79DB  81DB  84DB  87DB  90DB  93DB  96DB  99DB 103DB 106DB 109DB 112DB 115DB 118DB 121DB 124DB 128DB 0,0 End

Моделирование программы в симуляторе ADSIM подтвердило её работоспособность. Ввиду недоступности виброподвеса испытания с применением виброподвеса не проводились.  

Заключение

Данная работа направлена на создание беспроводного канала связи между персональным компьютером и микроконтроллером,  расположенном на вращающемся стенде. Разрабатывалась схема приёмо-передатчика на основе использования инфракрасного излучения для передачи данных. Проводилось экспериментальное исследование схем приёмопередатчика. В среде программирования Delphi 7 разрабатывалась программа для управления микроконтроллером по беспроводного каналу связи. Была написана тестовая программа для микроконтроллера на ассемблере,  которая осуществляла запись 10 байтов в оперативную память, а  затем по команде с ПК начинала передачу байтов в компьютер. Отладка этой программы производилась в симуляторе ADSIM.  Была проведена экспериментальная проверка канала связи при помощи разработанного устройства приёма-передачи, расположенного на монтажной плате, и управляющих программ для микроконтроллера и ПК, которая показала работоспособность канала связи. Проводилась модернизация программы поиска резонансной частоты виброподвеса. Данная программа обеспечивала  обмен, обработку данных и представление данных в виде графика зависимости амплитуды датчика ускорения от частоты колебаний виброподвеса.  

Основные результаты работы заключаются в следующем:

  1.  Разработан и создан беспроводный (инфракрасный) канал связи для обмена данными между персональным компьютером и микроконтроллером, расположенном на вращающемся стенде.
  2.  Написана работоспособная программа для персонального компьютера в среде программирования Delphi 7 для управления микроконтроллером и приёмом и обработкой данных.
  3.  Разработана тестовая программа для микроконтроллера на ассемблере для контроля работы канала связи.
  4.   Модернизирована программа поиска резонансной частоты колебаний виброподвеса, обеспечивающая передачу данных о настройке виброподвеса на персональный компьютер.

 

Библиографический список

  1.  http://www.krugosvet.ru/enc/nauka_i_tehnika/tehnologiya_i_promyshlennost/GIROSKOP.html
  2.  http://www.kit-e.ru/articles/wireless/2007_09_169.php
  3.  Сташин В.В., Урусов А.В., Мологонцева О.Ф. Проектирование цифровых устройств на однокристальных микроконтроллерах. . М.: Энергоатомиздат, 1990. – 224 с.
  4.  Ревич Ю.В. Нестандартные приёмы программирования в Delphi. СПБ.: БХВ-Петербург, 2005. – 560 с.
  5.  Кузьминов А.Ю. Интерфейс RS232.Связь между компьютером и микроконтроллером. М.: Радио и связь, 2004. – 168 с.
  6.  Агуров П.В. Последовательные интерфейсы ПК. Практика программирования. СПС.: БХС-Петербург, 2004. -496 с.
  7.  http://www.lengras.ru/tel26.php
  8.  http://intpc.ru/229-sovremennye-interfejsy-pk-usb-firewire-irda.html
  9.  http://www.ixbt.com/peripheral/irda.html
  10.  Бродин В.Б., Калин А.В. Системы на микроконтроллерах и БИС программируемой логики. М.: ЭКОМ, 2002. – 400 с

 

Приложение

 Перечень элементов схемы приёмо-передатчиков

Поз.обозн.НаименованиеКол.ПримечаниеРезисторыR1,R7МЛТ-0,125 Вт 1 кОм +-5%2R5, R6МЛТ-0,125 Вт 1.3 кОм +-5%2R2, R3,R7,R8Млт-00.125-130 Ом+-5%4Диоды полупроводниковыеVD1, VD6КС162А11VD3, VD4KM-4457F3C2VD5Д311А1VD2Д105А2транзисторыVT1,VT4L-610MP4BT-BD2VT2, VT3KT315A2КонденсаторыC1, C2, C3 C4 C5, C6, C7, C8С9, С10K90 0,1 мкФ10микросхемыDD1, DD2ADM2022

 

 

Рис. 2.2. Зона нечувствительности лазерного гироскопа

Все байты записаны?

Начало

Инициализация

Запись 10 байт  в РПД

Нет

Да

Ожидание событий

1

1

Передача данных

Команда на передачу  получена?

Нет

Да

Все данные переданы?

Нет

Конец

Да

Нет

Ожидание

событий

Начало

Конец

Инициализация порта, установка параметров

Закрытие

порта

Да

1

1

2

Рис. 2.1. Кольцевой лазер гироскопа ЛГ-1: 1 – ситалловый моноблок, 2 – аноды, 3 – холодный катод, 4 – зеркала оптического резонатора, 5 – фотодиод, предназначенный для регистрации информационного сигнала, 6 – фотодиоды системы автоматического регулирования периметра, 7 – смесительная призма, 8 – пьезоэлектрические преобразователи, регулирующие положения сферических зеркал, 9 – датчик угловой скорости (используется для регистрации колебаний моноблока при включенном виброподвесе), 10 – виброподвес, 11 –высверленные каналы, внутри которых разрядом постоянного тока возбуждается активная среда лазера, 12 – диафрагма для селекции поперечных мод оптического резонатора.

Рис. 3.4. Блок – схема программы для МК

Очистка

буфера

Начало

Отправка кодового

символа

Ожидание прихода

данных

Прием данных

с МК

Число итераций равно

числу точек

на графике

Построение точки

на графике

Конец

Рис.3.8 Блок – схема  подпрограмма Button1.Click

4

4

3

3

2

2

1

1

МК

ПК

ИК

излучение

RxD

RxD

TxD

TxD

Нет

Нет

Нет

Цепь. Конт.

  DCD     1

  RxD      2

  TxD      3

  DTR     4

  SG        5

  DSR     6

  RTS     7

  CTS     8

  RI         9

Да

2

2

Повторная команда

с ПК получена?

Рис. 3.11  Блок – схема программы для поиска резонансной частоты

Нет

Прямой цифровой  синтез

синусоидального сигнала на

резонансной частоте

Загрузка кода

резонансной частоты

Да

Нет

Все данные

переданы?

Передача данных в ПК

1

Сохранение

предыдущего

значения

1

Увеличение

частоты

на 0,916 Гц

Максимальная частота

достигнута?

Да

Да

Сохранение измеренного

значения

Нет

Измеренное значение

больше чем на предыдущей

частоте

Сохранение измеренного

значения во внешнюю память

X2

Измерение напряжения датчика

колебаний  на текущей частоте с помощью АЦП

Начало синтеза частоты

Инициализация генератора

синусоиды

Да

Нет

Команда

на передачу  

получена?

Ожидание событий

Инициализация порта

Начало

Нет

← Предыдущая
Страница 1
Следующая →

Файл

Диплом.doc

Диплом.doc
Размер: 2.6 Мб

.

Пожаловаться на материал

Дипломная работа. Цель работы - разработка устройства для обмена данными между микроконтроллером, расположенном на вращающемся стенде и персональным компьютером.

У нас самая большая информационная база в рунете, поэтому Вы всегда можете найти походите запросы

Искать ещё по теме...

Похожие материалы:

План-конспектуроку з силових видів спорту Навчити техніці присіданнязі штангою на плечах

План-конспект уроку з силових видів спорту для студентів 53 групи студента 53 групи факультету фізичного виховання ЧНПУ імені Т.Г.Шевченка Ківіна Максима Васильовича

Обучение в сотрудничестве как один из интерактивных методов обучения иностранному языку

Выпускная квалификационная работа. Специальность Иностранный язык. ель исследования: изучение приёмов обучения в сотрудничестве на уроках английского языка в средней школе.

Основы экологического права. Виды ответственности за экологические правонарушения

Гражданско-правовая ответственность за экологические правонарушения — вид юридической ответственности, применяемой за экологические, гражданско-правовые правонарушения-деликты. Материальная ответственность.  Уголовная ответственность

Мастерство режиссера

Процесс обучения режиссуре чрезвычайно сложен, поскольку осно ван на индивидуальном подходе к студенту. Режиссеры — это профессионалы эксклюзивной подготовки. Из программы «Режиссура и мастерство актера»

Sociology and Social Science

It’s general truth that sociology is the scientific study of the structure and development of society.

Сохранить?

Пропустить...

Введите код

Ok