Автор работы: Пользователь скрыл имя, 09 Января 2012 в 22:12, курсовая работа
Целью данной работы является проектирование и реализация устройства, способного осуществлять сбор и накапливание информации, передаваемой по последовательной линии с неизвестной скоростью.
Введение 2
1. Теоретические основы 2
2. Методика работы 6
2.1. Сбор информации 6
2.2. Взаимодействие с компьютером 9
3. Код программы 12
4. Анализ результатов 28
Заключение 30
Список литературы
Анализатор
последовательной линии
Введение 2
1. Теоретические основы 2
2. Методика работы 6
2.1. Сбор информации 6
2.2. Взаимодействие с компьютером 9
3. Код программы 12
4. Анализ результатов 28
Заключение 30
Список литературы 31
Целью данной работы является проектирование и реализация устройства, способного осуществлять сбор и накапливание информации, передаваемой по последовательной линии с неизвестной скоростью.
Последовательные
интерфейсы используются для связи
двух или более устройств между
собой. Характерная черта таких
интерфейсов – использование
последовательного метода передачи
цифровой информации, при котором
данные передаются последовательно
бит за битом, для чего используется
всего лишь одна линия. При этом физическая
реализация двустороннего обмена может
осуществляться с помощью 2 – 3 проводов.
Значительное (по сравнению с параллельными
интерфейсами) сокращение числа каналов
передачи и проводов позволило упростить
и удешевить приемопередающие устройства
и кабельные системы. В общем,
последовательные интерфейсы отличаются
лучшей помехоустойчивостью [здесь
не учитывается влияние типа линий
передачи], поскольку в них исключено
взаимное влияние между линиями
данных (фактически, линия данных всего
одна, а, например, в 8-разрядном параллельном
интерфейсе – 8). Сравнительная простота
и низкие аппаратные требования обусловили
широкое использование
Основой
устройства, работающего с последовательной
линией, будет микроконтроллер AVR семейства
Mega. Почему AVR? одним из существенных преимуществ
AVR стало применение конвейера. В результате
для AVR не существует понятия машинного
цикла: большинство команд выполняется
за один такт. Для сравнения отмечу, что
пользующиеся большой популярностью МК
семейства PIC выполняют команду за 4 такта,
а классические 8051 — вообще за 12 тактов
(хотя есть и современные модели x51 с машинным
циклом в один такт). Огромное преимущество
AVR-архитектуры — наличие 32 оперативных
регистров, не совсем равноправных, но
позволяющих в ряде случаев вообще не
обращаться к оперативной памяти и не
использовать стек (что в принципе невозможно
в том же семействе x51). Еще одна особенность
AVR со схемотехнической точки зрения—
все выводы в них могут пребывать в трех
состояниях (вход — отключено — выход)
и электрически представляют собой
КМОП-структуры (т. е. имеет место симметрия
выходных сигналов и высокое сопротивление
для входных). В общем случае это значительно
удобнее портов х51 (двустабильных и TTL-совместимых)
и предполагает лучшую помехозащищенность
(по крайней мере, от помех по шине "земли").
Как и все микроконтроллеры AVR фирмы «Atmel»,
микроконтроллеры семейства Mega являются
8-разрядными микроконтроллерами, предназначенными
для встраиваемых приложений. Они изготавливаются
по малопотребляющей КМОП-технологии, которая
в сочетании с усовершенствованной RISC-архитектурой
позволяет достичь наилучшего соотношения
быстродействие/
• FLASH-память программ объемом 8…128 Кбайт (число циклов стирания/записи не менее 1000);
• оперативная память (статическое ОЗУ) объемом 1…4 Кбайт;
• память данных на основе ЭСППЗУ (EEPROM) объемом 512 байт…4 Кбайт (число циклов стирания/записи не менее 100000);
• возможность защиты от чтения и модификации памяти программ и данных;
• возможность программирования непосредственно в системе через последовательные интерфейсы SPI и JTAG;
• возможность самопрограммирования;
• возможность внутрисхемной отладки в соответствии со стандартом IEEE 1149.1 (JTAG);
• различные способы синхронизации: встроенный RC-генератор с внутренней или внешней времязадающей RC-цепочкой или с внешним резонатором (пьезокерамическим или кварцевым); внешний сигнал синхронизации;
• наличие нескольких режимов пониженного энергопотребления;
• наличие детектора снижения напряжения питания (brownout detector, BOD);
• возможность программного снижения частоты тактового генератора.
В микроконтроллерах
AVR реализована Гарвардская
Задачу можно условно разделить на две: организация работы устройства по сбору информации с последовательной линии и организация взаимодействия устройства с компьютером. При этом, сбор информации с последовательной лини будет осуществляться с использованием одного из трех таймеров/счетчиков общего назначения имеющихся в ATmega8, а взаимодействие с компьютером будет реализовано посредством модуля универсального синхронно/асинхронного приемопередатчика (USART).
Микроконтроллеры семейства в зависимости от модели имеют в своем составе от двух до четырех таймеров/счетчиков общего назначения. В ATmega8 их три (T0, T1, T2). Таймер/счетчик T1 может использоваться для отсчета временных интервалов и как счетчик внешних событий. Кроме того, он может выполнять запоминание своего состояния по внешнему сигналу. Упрощенная схема 16-и разрядного таймера/счетчика представлена на рисунке ниже (рис.1).
Рис.1. Упрощенная схема 16-и разрядного таймера/счетчика.
В состав каждого таймера/счетчика входят следующие регистры ввода/вывода:
• 16-разрядный счетный регистр TCNT1 (TCNT3);
• 16-разрядный регистр захвата ICR1 (ICR3);
• два или три 16-разрядных регистра сравнения OCR1A, OCR1B, OCR1C (OCR3A, OCR3B, OCR3C);
• два или три 8-разрядных регистра управления TCCR1A, TCCR1B, TCCR1C (TCCR3A, TCCR3B, TCCR3C).
Каждый
из 16-разрядных регистров
Передача данных.
Работа
передатчика разрешается
Рис. 2.Изменение состояния вывода TXD.
Если во время передачи в регистр UDR было записано новое слово данных, то после передачи последнего стоп-бита оно пересылается в сдвиговый регистр. Если же к моменту окончания передачи кадра такой записи выполнено не было, устанавливается флаг прерывания «Передача завершена» TXC (TXCn) регистра UCSRA (UCSRnA). Сброс флага осуществляется аппаратно при входе в подпрограмму обработки соответствующего прерывания или программно, записью в этот разряд лог. 1. Выключение передатчика осуществляется сбросом разряда TXEN (TXENn) регистра UCSRB (UCSRnB). Если в момент выполнения этой команды осуществлялась передача, сброс разряда произойдет только после завершения текущей и отложенной передач, т. е. после очистки сдвигового и буферного регистров передатчика. При выключенном передатчике вывод TXD (TXDn) может использоваться как контакт ввода/вывода общего назначения.
Прием данных.
Работа
приемника разрешается
корректного старт-бита. Каждый разряд содержимого кадра затем считывается с частотой, определяемой установками контроллера скорости передачи или тактовым сигналом XCK (XCKn). Считанные разряды данных последовательно помещаются в сдвиговый регистр приемника до обнаружения первого стоп-бита кадра. После этого содержимое сдвигового регистра пересылается в буфер приемника, из которого принятое значение может быть получено путем чтения регистра данных модуля. Для индикации состояния приемника в модулях USART/UART используется флаг прерывания «Прием завершен» RXC (RXCn) регистра UCSRA (UCSRnA). Этот флаг устанавливается в «1» при наличии в буфере приемника непрочитанных данных. В модулях UART этот флаг сбрасывается после прочтения регистра данных, а в модулях USART — при опустошении буфера (после считывания всех находящихся в нем данных).
Выключение приемника осуществляется сбросом разряда RXEN (RXENn) регистра UCSRB (UCSRnB). В отличие от передатчика приемник выключается сразу же после сброса разряда, т. е. кадр, принимаемый в этот момент, теряется. В модулях USART, кроме того, при выключении приемника очищается его буфер, т. е. теряются также все непрочитанные данные. При выключенном приемнике вывод RXD (RXDn) может использоваться как контакт ввода/вывода общего назначения.