Реферат по предмету "Коммуникации и связь"


Проектирование удаленного устройства индикации

--PAGE_BREAK--

Рис.1 Схемавключениямикроконтроллера


2.2 Формированиетактовыхимпульсов
Тактовыеимпульсыдляработымикроконтроллераможно формироватьспомощьюлибовстроенногогенератораимпульсов, либоподключаявнешнийгенераторнакварцевомрезонаторе. Внутреннийгенератортактовыхимпульсоввнашемслучаене обеспечитнеобходимуюстабильностьдляработысинтерфейсомRS-485, поэтомумыбудемиспользоватьвнешнийкварцевыйгенератор на7.3728 MHz. Дляработынатакойчастотеразработчикифирмы ATMELсоветуютиспользоватьдвадополнительныхконденсатора емкостью22 pF, включенныепоследующейсхеме:

2.3 Схемасброса
Схемасбросадолжнаформироватьимпульслогическогонулядля подачиегонаинверсныйвыводсбросамикроконтроллераRESET. Это импульсдолженформироватьсяпри, например, нажатиинакнопку сбросаустройстваилиприпереключенииключа. Кромеэтого, этот сигналсбросадолженподаватьсяинавыводсбросаLCD— дисплея.

Длятакойсхемыподходитвключениетранзистора, показанноена рис.3. Когдаключоткрыт, транзисторнаходитсявзакрытом состоянииинавходыRESETAVRиRSTLCD-дисплеяпоступает сигналлогическойединицы. Когдаключзамыкается, транзистор открываетсяинавходысбросаустройствпоступаетсигнал логическогонуля.




Рис.3 Схемаформированиясигналасброса
2.4 Схемывходныхивыходныхустройств
Входнымустройствомвнашемпроектеявляетсямикросхема обеспечениясвязипопротоколупередачиданныхRS-485 МАХ485 со следующимиэлектрическимихарактеристиками:

Изэтихпараметроввидно, чтомикросхемаМАХ485 согласуетсяс микроконтроллеромATmegal6.


Рис. 4 ПодключениемикросхемыMAX4S5
Выходноеустройствожидкокристаллическийграфический дисплейBG12864DфирмыBolyminсовстроеннымконтроллером Т6963С. Этотдисплейобладаетследующимихарактеристиками:

•Механическиехарактеристики

•Назначениевыводов

ВсоответствиисэтимипараметрамисхемаподключенияLCD-дисплеякмикроконтроллерубудетследующей:

2.5 Схемастабилизаторанапряжения
Вкачествестабилизаторанапряжениявнашемустройстве используетсяимпульсныйпонижающийстабилизаторLM2574, который обладаетследующимихарактеристиками:

•       входноенапряжение— до60 V{дляHVверсий)

•       выходноенапряжение— 3.3 V, 5 V, 12 V, 15V

•       выходнойток— 0.5 А

Схемавключениястабилизаторадляпреобразования+10 V— +5 Vприведенанарис.6:




Рис. 6 (Схема стабилизатора напряжения




3. Проектированиепрограммногообеспечения микроконтроллера
3.1 Проектированиефункцииинициализациимикроконтроллера
Процедураинициализациимикроконтроллерадолжнасостоятьиз процедурилиоператоровинициализациивсехузловсамого микроконтроллераивсехпериферийныхустройств, иустановитьвсе начальныезначениядляихрегистров. Такимобразом, мыдолжны проинициализироватьследующиеузлыустройства— портА, портС, УСАПП, таймер0 иLCD-дисплей.

ПортыАиСвначалеработыустройстваработаюттолькона выводданных, поэтомуприихнастройкенеобходимов соответствующиерегистрыDDRxзаписатьзначение0, темсамым настроив все их выводы на передачу данных. Для этого используются две процедуры;
voidInitPortAWrite(void){

DDRA= Oxff; }

void InitPortCWrite(void){ DDRC = Oxff; PORTC = 0x30;
ИнициализациятаймераОпроходитпоследующемуалгоритму— устанавливаетсяделительчастотына1024 записьюзначения5 в регистрTCCRO. Затемразрешаетсяпрерываниеэтоготаймераи устанавливаетсяегоначальноезначение:
void InitTimer(void)

i

_disable_interrupt() ;

TCCRO= 5;// установитьделительчастоты1024

TIMSK|= (1 «TOIEO); // разрешитьпрерываниятаймера

TCNTO = TmrO_Reload;

enable_interrupt{);

]
ИнициализацияУСАППработаетследующимобразом— врегистр

UBRRзаписываетсязначение, котороесоответствуетзаданной скоростипередачиданныхдлясоответствующейчастотыработы микроконтроллера.

УСАПП и параметры кадра данных. Кроме этого, т.к. прием и обработка данных в программе происходит через кольцевой буфер, то в процедуре инициализации необходимо провести начальные установки для головы и хвост буфера — обнулить их.
void USART_Init( unsigned int baudrate )

i

unsigned char x;

UBRROH = (unsigned char) (baudrate»8); UBRROL = (unsigned char) baudrate;

UCSRB = ({1 «RXCIE) j

UCSRC = (1«URSEL) | (3«UCSZO) | (1«UPM1);

x = 0;

USART_RxTail = x; USARTJRxHead = x;

}
3.2 Проектирование процедур обработки прерываний
В процессе работы нашего устройства могут возникнуть два прерывания — от таймера 0 и от УСАПП. Прерывание от таймера О обрабатывается очень просто: перезагружается начальное значение и флаг его срабатывания устанавливается в 1.


pragma vector=TIMERO_OVF_vect

interrupt void TIMERO_OVF_interrupt(void)

{

TCNT0=TmrO_Reload; TmrOFlag= 1;

}
ПрерываниеотУСАППговоритотом, чтоприемпакетаданных былзаконченипринятвбуферныйрегистрUDR. Обработчикэтого прерываниядолженпринятьэтиданныеипоместитьвкольцевой буфер. Дляэтогодолженбытьрассчитанновыйиндексбуфера (указательголовы) иеслиэтотиндексвдругсталравенуказателю хвоста, этоговоритотом, чтопроизошлаошибкаибуфер приемникапереполнился.
^pragma vector=USART_RXC__vect

^interrupt void USART_RX_interrupt{ void )

{

unsigned char data; unsigned char tmphead;

data = UDR;

tmphead = ( USART_RxHead + 1 );

USART_RxHead= tmphead; /* СохранитьновыйиндексV

if

(

/* Ошибка! Буфферприемникапереполнен*/

)

USART_RxBuf[tmphead] = data; /* Сохранитьполученныеданныевбуффере*/

}




3.3 Проектированиепроцедурвводаинформации
Вводинформациивразрабатываемоеустройствоосуществляется черезУСАППпопротоколуRS-4 85. Какужеотмечалось, прием данныхвпрограммепроисходитпопрерываниюотУСАПП, обработчик которогопомещаетпринятыйбайтвОуферприемника. Вглавной программе, длятого, чтобыможнобылоанализироватьэтотбуфери читатьданныеуженепосредственноизнего, необходимапроцедура, котораябудетдоставатьданныеизбуфератакимобразом, чтобы первымипоступалибайты, попавшиевбуферраньшевсех. Это делаетпроцедураUSART_Receive(), котораясначалаждет поступленияданныхвбуфер, азатемпоодномубайтудостаетих оттуда.
BYTE USART_Receive( void )

1

unsigned char tmptail;

while ( USARTJixHead == USART_RxTail )

;

tmptail = USART_RxTail + 1; USART_RxTail = tmptail; return USART_RxBuf[tmptail];

f
3.4 Проектированиепроцедурвыводаинформации
ВыводинформациивнашемустройствеосуществляетсянаLCD-дисплей. Основнойпроцедурой, котораяотображаетстроки поступившихданныхнадисплее— этопроцедураAutoWriteMode(), котораяпосутиуправляетдисплеем, выводянанего последовательносимволы, хранящиесявглобальноммассиве OutString[], врежимеавтозаписи, Приэтомнамнеобходимотолько менятьадреспозиции, вкоторуювыводятсяданные.

WORD AutoWriteMode(WORD Address, BYTE NumBytes)

{

SetAddressPointer(Address); SendCommanct{SET_DATA_AUTO_HRITE_COMMAND);

forfint i = 0; i

AutoWrite(OutString[i]);

Address++; }

SendCommand(AUTO_RESET_COMMAND); return Address; }
3.5 Проектирование процедур управления периферийными устройствами
Все процедуры управления LCD-дисплеем осуществляются согласно системе команд встроенного контроллера Т6963:
    продолжение
--PAGE_BREAK--


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

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

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

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.