Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Федеральное агентство связи
Сибирский государственный университет телекоммуникаций и информатизации
Кафедра САПР
Курсовая работа по курсу «Цифровые устройства и микроконтроллеры»
Блок битстаффинга для модема
Выполнила: Шауэрман А. К.
Ст.гр. РТ-44
Проверил: Микушин А. В.
Новосибирск 2007
Содержание
Стр.
Введение 3
передачи непрерывных сообщений дискретными каналами 5
заданного сигнала 10
15
Заключение 26
Приложение А
Список использованной литературы 27
Введение
Студенту группы РТ-44 Даутовой М.Г.,
спроектировать устройство: Устройство сбора дискретной информации
1. Назначение устройства: Сбор информации от датчиков и передача её по двухпроводной линии связи
2. Режимы работы:
3. Время реакции на изменение информации от датчиков: 0.1сек
4. Сигналы управления: FFSK
5. Напряжение питания: 9В.
Содержание проекта.
1. Разработка алгоритма работы устройства
2. Распределение алгоритма на аппаратную и программную часть
3. Разработка функциональной схемы контроллера
4. Разработка принципиальной схемы устройства
5. Разработка программы
Дата выдачи задания 10.11 . Дата защиты 22.12 .
Срок сдачи проекта 15.12 . Руководитель
Алгоритм работы устройства
Рисунок 1 алгоритм работы устройства
Алгоритм состоит в том,чтобы по очереди считывать значение преобразованного напряжения с аналогового га цифровой, которое генерируется на выходе датчика и выводить эти данные тоже по очереди на последовательный порт.
Распределение алгоритма на аппаратную и программную часть
Датчики температурные. Есть датчики, которые выдают информацию в цифровом и аналогом виде. Цифровые датчики имеют встроенный АЦП. Но можно выбрать микроконтроллер с встроенным АЦП. В данной курсовой рассматривается вариант : температурный датчик микроконтроллер с АЦП ADUC842.
АЦП оцифровывает значения напряжении в интервале от 0 до 2,5 В. Датчик выбран LM20. На выходе он выдает напряжения от 0,3 до 2б485 В. Укладываемся в этот интервал.
Выбранный температурный датчик на выходе выдает значения в виде напряжения. Эти напряжения в соответствии с температурой показаны на рисунке:
Рисунок Соответствие температуры и напряжения в температурном датчике LM20
Рисунок Вольт - температурная характеристика датчика LM20
Датчик на выходе выдает напряжение от 0,3 до 2,485 В, что как раз укладывается в рамки АЦП 0 ÷VREF = 0 ÷ 2,5 В.
АЦП в ADUC842 12-разрядный. Значит, полученное оцифрованное значение записывается в 12 бит. Для этого понадобиться 2 Байта.
Данные, полученные с АЦП записываются в два регистра специального назначения ADCDATAH и ADCDATAL.
Рисунок Формат полученного слова с АЦП
Как видно из рисунка, младшие 8 бит записываются в ADCDATAL, а в ADCDATAH в первый 4 бита записывается старшие 4 бита информации, а в старшие 4 бита записывается номер канала, с которого приняты эти данные. Эти данные по очереди записываются в буферный регистр и отправляются по I2C.
Для получения данных с АЦП должным образом, нужно сконфигурировать АЦП, это делается в регистрах ADCCON1 и ADCCON2.
Конфигурация ADCCON1:
7-бит: MD1 если собирается использоваться АЦП то значенме этого юита должно быть «1»;
6-бит: EXT_REF - Так как нам хвататет внутреннего интервала напряжении 2,5 В, то его можно оставить «0»;
Остальные биты нам не нужны, пожтому их значение можно оставить равным нулю.
Конфигурация ADCCON2:
7-бит: ADCI - устанавливается,когда заканчивается циклпреобразования АЦП. Перед следующим преобразованием нужно обнулить это значение.
6-бит: DMA мы этот режим не используем,поэтому его нужно оставить в значении «0».
5-бит: CCONV ставим значение «1» для непрерывной работы АЦП.
4-бит: SCONV автоматически сбрасывается когда закнчивается преобразованиет с одного порта.
3, 2, 1, 0-биты: выбор канала.Задается вдвоичном виде:
0-канал 0000
1-канал 0001
2-канал 0010
…
7-канал 0111
Остальные конфигурации либо не используются, либо используются в других целей..
По заданию сказано, что передача информации по двухпроводной линии связи, значит по последовательному порту по протоколу I2C.
Последовательный порт может сконфигурирован на SPI или на I2C.
Для этого существует регистр SPICON. Для работоспобности I2C нужно обнулить бит SPE. (SPE=0). Остальные биты не важны для этого интерфецса. Следующий конфигурационный регистр I2CCON:
бит |
название |
описание |
7 |
MDO |
Бит выходных данных ( только в режиме программный ведущий) Используется для передачи данных в режиме «программный ведущий». Данные, записанные в этот бит разрешения передачи данных (MDE). |
6 |
MDE |
Бит разрешения передачи данных ( только в режиме программный ведущий). Устанавливается пользователем для назначения контакта SDATA 1-передача данных 0- прием данных |
5 |
MCO |
Бит выходного синхроимпульса ( только в режиме программный ведущий) Используется в режиме передающего I2С интерфейса. Данные записанные в этот бит будут записаны на контакт SCLOCK. |
4 |
MDI |
Бит входных данных ( только в режиме программный ведущий) Используется для приема данных в режиме «программный ведущий». В этот бит считывается значение SDATA по сигналу SCLOCK, если сброшен бит разрешения передачи данных (MDE). |
3 |
I2CM |
Бит выбора режима «ведущий/ведомый». Устанавливается и сбрасывается пользователем. 0-«аппаратный ведомый» 1-«программный ведущий» |
2 |
I2CRS |
Бит сброса I2С (только в режиме аппаратный ведомый) Устанавливается и сбрасывается пользователем. 0-нормальная работа I2С 1-сброс интерфейса I2С |
1 |
I2CTX |
Бит направления передачи ( только в режиме аппаратный ведомый) Устанавливается аппаратно 0-прием 1-передача |
0 |
I2CI |
Флаг прерывания ( только в режиме аппаратный ведомый) Устанавливается аппаратно после приема или передачи байта Сбрасывается программно. |
Рисунок Алгоритм работы программы
Структурная и функциональная схема
Рисунок структурная схема устройства сбора информации
Структурная схема показывает, что оцифрованная информация получается 16-битное. А по последовательному порту передается 8-битное. Поэтому старший байт и младший байт передаются по очереди и так далее со следующими датчиками.
Рисунок функуциональная схема устойства сбора информации
Разработка программы
Сначала идет конфигурация АЦП и последовательного порта на I2C:
void main()
{ SPE=0; //vklyuchenie interfeisa I2C
I2CM=1; //software slave
ADCCON1=0x41;
Далее нужно циклически выполнять заданную миссию. А в цикле постоянно считывать и отправлять по I2C данные.
void main()
{ SPE=0; //vklyuchenie interfeisa I2C
I2CM=1; //software slave
ADCCON1=0x41;
while(1) {
ADCCON2=0x0C; //s pervogo datchika
Peredacha_DATA();
ADCCON2=0x1C; //s 2-go datchika
Peredacha_DATA();
ADCCON2=0x2C; //s 3-go datchika
Peredacha_DATA();
ADCCON2=0x3C; //s 4-go datchika
Peredacha_DATA();
ADCCON2=0x4C; //s 5-go datchika
Peredacha_DATA();
ADCCON2=0x5C; //s 6-go datchika
Peredacha_DATA();
ADCCON2=0x6C; //s 7-go datchika
Peredacha_DATA();
ADCCON2=0x0C; //s 8-go datchika
Peredacha_DATA();
}
}
Р