Разработка многоканального электроэнцефалографа

Автор работы: Пользователь скрыл имя, 19 Марта 2014 в 20:01, курсовая работа

Краткое описание

Развитие медицины определяется прогрессом медико-биологических знаний и уровнем медицинской техники. Совершенствование методов диагностики и оказание помощи больным людям неотделимо от внедрения современных информационных технологий и создания высококачественной медицинской аппаратуры.
Одной из отраслей медицинской науки, которая занимается определением признаков болезни, устанавливает заключение о характере болезни и ее существе, является диагностика. Важнейший этап в лечении – правильная диагностика заболевания. Но как исследовать внутренние органы, не прибегая к хирургическим методам? С наибольшей достоверностью, возможно, сделать только с помощью средств информационно- измерительной техники.

Прикрепленные файлы: 1 файл

Расчет и проектирование ЭЭГ.docx

— 215.85 Кб (Скачать документ)

 

 

 

ВЫБОР ЭЛЕМЕНТА МИКРОКОНТРОЛЛЕРА

Микроконтроллер AT90S1200 фирмы Atmel

 

AT90S1200 - экономичный 8 битовый КМОП  микроконтроллер, построенный с использованием расширенной RISC архитектуры AVR. Устройство имеет 64 байта EEPROM. Исполняя по одной команде за период тактовой частоты, AT90S1200 имеет производительность около 1MIPS на МГц, что позволяет разработчикам создавать системы оптимальные по скорости и потребляемой мощности.

В основе ядра AVR лежит расширенная RISC архитектура, объединяющая развитый набор команд и 32 регистра общего назначения. Все 32 регистра непосредственно подключены к арифметико-логическому устройству (АЛУ), что дает доступ к любым двум регистрам за один машинный цикл. Подобная архитектура дает десятикратный выигрыш в эффективности кода по сравнению с традиционными CISC микроконтроллерами.

Подобная архитектура эффективно поддерживает языки высокого уровня и дает высокую плотность ассемблерных программ. AT90S1200 предлагает следующие возможности: 1кБ загружаемой флэш памяти; 64 байта EEPROM; 15 двунаправленных линий ввода/вывода; 32 регистра общего назначения; настаиваемый таймер/счетчик; внешние и внутренние прерывания; программируемый сторожевой таймер со встроенным генератором; SPI последовательный порт для загрузки программ; два выбираемых программно режима низкого энергопотребления.

Холостой режим (Idle Mode) отключает ЦПУ, оставляя в рабочем состоянии регистры, таймер/счетчик, сторожевой таймер и систему прерываний.

Экономичный режим (Power Down Mode) сохраняет содержимое регистров, но отключает генератор, запрещая функционирование всех встроенных устройств до внешнего прерывания или аппаратного сброса.

Микросхемы производятся с использованием технологии энергонезависимой памяти высокой плотности фирмы Atmel. Загружаемая флэш память на кристалле может быть перепрограммирована прямо в системе через последовательный интерфейс SPI или доступным программатором энергонезависимой памяти. Объединяя на одном кристалле усовершенствованный 8-битовый RISC процессор с загружаемой флэш памятью, AT90S1200 является мощными микроконтроллерами, которые позволяют создавать достаточно гибкие и эффективные по стоимости устройства.

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

ОПИСАНИЕ ВЫВОДОВ

          VCC - вывод источника питания

GND - земля

Port B (PB7..PB0) - Порт B является 8-битовым двунаправленным портом ввода/вывода. Для выводов порта предусмотрены внутренние подтягивающие резисторы (выбираются для каждого бита). Выводы PB0 и PB1 также являются положительным (AIN0) и отрицательным (AIN1) входами встроенного аналогового компаратора. Выходные буферы порта B могут поглощать ток до 20мА и непосредственно управлять светодиодными индикаторами. Если выводы PB0..PB7 используются как входы и извне устанавливаются в низкое состояние, они являются источниками тока, если включены внутренние подтягивающие резисторы. Кроме того, Порт B обслуживает некоторые специальные функции, которые будут описаны ниже.

Port D (PD6..PD0) - Порт D является 7-битовым двунаправленным портом с внутренними подтягивающими резисторами. Выходные буферы порта D могут поглощать ток до 20мА. Как входы установленные в низкое состояние, выводы порта D являются источниками тока, если задействованы подтягивающие резисторы. Кроме того, Порт D обслуживает некоторые специальные функции, которые будут описаны ниже.

RESET - Вход сброса. При удержании  на входе низкого уровня в  течение двух машинных циклов (если генератор работает), сбрасывает устройство.

XTAL1 - вход инвертирующего усилителя  генератора и вход внешнего  тактового сигнала.

XTAL2 - Выход инвертирующего усилителя  генератора.

 

ПРОГРАММИРОВАНИЕ ПАМЯТИ

Программирование битов блокировки памяти

Микроконтроллер AT90S1200 имеет два бита блокировки, которые могут быть оставлены незапрограммированными (1) или программироваться (0), при этом достигаются свойства приведенные в таблице 12.

Таблица 12. Режимы защиты и биты блокировки

Биты блокировки

Тип защиты

Режим

LB1

LB2

 

1

1

1

защита не установлена

2

0

1

дальнейшее программирование флэш памяти запрещено

3

0

0

как режим 2, но запрещено и чтение


 

Примечание: биты блокировки стираются только при полном стирании памяти

Биты конфигурации (Fuse bits)

В AT90S1200 предусмотрено два бита конфигурации - RCEN и SPIEN. Когда бит RCEN запрограммирован (0), микроконтроллер  тактируется от встроенного RC генератора. По умолчанию этот бит стерт (1). Микросхемы AT90S1200A поставляются с запрограммированным битом RCEN.

Когда запрограммирован бит SPIEN (0) разрешен режим последовательного программирования. По умолчанию бит запрограммирован (0).

Эти биты недоступны при последовательном программировании и не изменяются при стирании памяти.

Код устройства

Все микроконтроллеры фирмы Atmel имеют 3-байтовый сигнатурный код, по которому идентифицируется устройство. Этот код может быть прочитан в параллельном и последовательном режимах. Эти три байта размещены в отдельном адресном пространстве и для AT90S1200 имеют следующее значение:

1. $000: $1E - код производителя - Atmel

2. $001: $90 - 1 кБ флэш памяти

3. $002: $01 - при $001==$90 - м/сх AT90S1200

Программирование флэш памяти и EEPROM

AT90S1200 имеет 1кБ перепрограммируемой  флэш памяти программ и 64 байта энергонезависимой памяти данных.

При поставке AT90S1200 флэш память и память данных стерты (содержат $FF) и готовы к программированию. Эта микросхема поддерживает высоковольтный (12В) параллельный режим программирования и низковольтный режим последовательного программирования. Напряжение +12В используется только для разрешения программирования, этот вывод не потребляет тока. Последовательный режим программирования предусмотрен для загрузки программы и данных в AT90S1200 в системе пользователя.

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

Параллельное программирование.

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

 

 

 

Таблица 13. Имена выводов

Имя сигнала при программирован.

Имя

Вывода

Вх/

Вых

Функция

RDY/BSY

PD1

Вых

0:м/сх занята программированием

1:м/сх готова к приему команды

OE

PD2

Вх

Разрешение выходов (активный 0)

WR

PD3

Вх

Импульс записи (активный 0)

BS

PD4

Вх

Выбор байта

XA0

PD5

Вх

Действие XTAL бит 0

XA1

PD6

Вх

Действие XTAL бит 1


 

Биты XA0 и XA1 определяют действие происходящее по положительному импульсу XTAL1. Установки битов приведены в следующей таблице:

Таблица 14. Установка XA1 и XA0

XA1

XA0

Действие при подаче импульса XTAL1

0

0

Загрузка адреса памяти программ или данных (старший/младший байт задается выводом BS)

0

1

Загрузка данных (старший/младший байт для флэш памяти задается выводом BS)

1

0

Загрузка команды

1

1

Не работает, холостой ход


 

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

 

 

 

Таблица 15. Биты конфигурации командного байта

Бит

Значение при установке

7

Стирание кристалла

6

Запись битов конфигурации, расположенных в следующих позициях байта данных: D5 - SPIEN, D0 - RCEN (0 для программирования, 1 для стирания)

5

Запись битов блокировки, расположенных в следующих позициях байта данных: D2 - LB2, D1 - LB1 (для программирования устанавливать 0)

4

Запись памяти программ или данных (определяется битом 0)

3

Чтение сигнатуры

2

Чтение битов блокировки и конфигурации, расположенных в следующих позициях байта данных: D7 - LB1, D6 - LB2, D5 - SPIEN, D0 - RCEN

1

Чтение памяти программ или данных (определяется битом 0)

0

0 - доступ к памяти программ, 1 - к памяти данных


 

 

 

ВХОД В РЕЖИМ ПРОГРАММИРОВАНИЯ

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

1. Подать напряжение 4.5...5.5 В на выводы питания

2. Установить RESET и BS в 0 и выдержать  не меньше 100 нс.

3. Подать 12В на RESET и выждать не  менее 100 нс перед изменением BS.

СТИРАНИЕ КРИСТАЛЛА

При стирании кристалла стираются память программ и данных, а также биты блокировки. Биты блокировки не сбрасываются до полного стирания памяти программ и данных. Биты конфигурации не изменяются. (Стирание кристалла производится перед его программированием).

Загрузка команды "стереть кристалл"

1. Установить XA1,XA0 в '10'. Это разрешает  загрузку команды.

2. Установить BS в 0

3. Установить PB в '1000 0000'. Это команда  стирания кристалла.

4. Подать положительный импульс  на XTAL1. При этом загружается команда  и начинается стирание памяти  программ и данных. После импульса XTAL1, подать отрицательный импульс  на WR, чтобы разрешить стирание  битов блокировки по окончанию  цикла стирания. Подождать около 10 мс до окончания цикла стирания. Стирание кристалла не генерирует сигнала RDY/BSY.

 

ПРОГРАММИРОВАНИЕ ФЛЭШ ПАМЯТИ

Загрузить команду "программирование флэш памяти"

1. Установить XA1,XA0 в '10'. Это разрешает  загрузку команды.

2. Установить BS в 0

3. Установить PB в '0001 0000'. Это команда  программирования флэш памяти

4. Подать положительный импульс  на XTAL1. При этом загружается команда.

Загрузить младший байт адреса

1. Установить XA1,XA0 в '00'. Это разрешает  загрузку адреса.

2. Установить BS в 0. Это выбирает  младший байт адреса.

3. Установить на PB младший байт  адреса.

4. Подать положительный импульс  на XTAL1. При этом загружается младший  байт адреса.

Загрузить старший байт адреса

1. Установить XA1,XA0 в '00'. Это разрешает  загрузку адреса.

2. Установить BS в 1. Это выбирает  старший байт адреса.

3. Установить на PB старший байт  адреса. ($00..$01)

4. Подать положительный импульс  на XTAL1. При этом загружается старший  байт адреса.

Загрузить байт данных

1. Установить XA1,XA0 в '01'. Это разрешает  загрузку данных.

2. Установить на PB младший байт  данных.

3. Подать положительный импульс  на XTAL1. При этом загружается младший  байт данных.

Запись младшего байта данных.

1. Установить BS в '0'. Это выбирает  младший байт данных

2. Подать на WR отрицательный импульс. Это инициирует программирование байта. RDY/BSY переходит в низкое состояние.

3. Перед программированием следующего  байта подождать, пока RDY/BSY перейдет  в высокое состояние.

Загрузить байт данных

1. Установить XA1,XA0 в '01'. Это разрешает  загрузку данных.

2. Установить на PB старший байт  данных.

3. Подать положительный импульс  на XTAL1. При этом загружается старший  байт данных.

Запись старшего байта данных.

1. Установить BS в '1'. Это выбирает  старший байт данных

2. Подать на WR отрицательный импульс. Это инициирует программирование байта. RDY/BSY переходит в низкое состояние.

3. Перед программированием следующего  байта подождать, пока RDY/BSY перейдет  в высокое состояние.

Загруженные адрес и данные сохраняются в устройстве после программирования, при этом процесс программирования упрощается.

Информация о работе Разработка многоканального электроэнцефалографа