Смекни!
smekni.com

Комбинированное звуковое USB-устройство с функциями автономного MP3-плеера и поддержкой Bluetooth (стр. 6 из 17)

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

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

Управляющий микроконтроллер устройства AT91SAM7SE соединяется с Bluetooth аудио модулем F2M03MLA по интерфейсу SPI, с микросхемой памяти – по интерфейсу подключения внешней памяти и с LCD-дисплеем при помощи встроенного контроллера памяти.

Рассмотрим подключение по интерфейсу SPI.

SPI (SerialPeripheralInterface, последовательный периферийный интерфейс) используется для синхронной последовательной передачи данных. Интерфейс, по сути, является сдвиговым регистром, который последовательно выдает биты данных другому SPI-устройству. Во время передачи данных, одно устройство “мастер” (master) управляет потоком данных, а другие устройства, действующие в подчиненном режиме (slave), получают либо выдают данные “мастеру”.

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

Интерфейс SPI использует две линии для данных и две линии для управления:

MasterOut/SlaveIn (MOSI) – выход данных для “мастера” или вход для данных для подчиненного устройства; по этой линии данные от “мастера” могут поступать одновременно нескольким подчиненным устройствам;

MasterIn/SlaveOut (MISO) – вход данных для “мастера” или выход для данных для подчиненного устройства; в один момент времени эта линия может использоваться лишь одним подчиненным устройством;

SPCK – эта линия используется для синхронизации; подчиненное устройство должно работать в темпе устройства “мастера”;

NSS – эта линия используется для выбора подчиненного устройства; таким образом устройство “мастер” инициирует обмен данными.

Микроконтроллер AT91SAM7SE может работать как в режиме master, так и в режиме slave. В режиме master к нему можно подключить 4 внешних slave-устройства.

Модуль F2M03MLA может использоваться только в режиме slave.

Схема использования интерфейса SPI между управляющим микроконтроллером AT91SAM7SE и другим SPI-устройством приведена на рис. 10.

Рис. 10. Использование интерфейса SPI для связи двух устройств

Теперь рассмотрим способ соединения AT91SAM7SEcNANDFlash памятью. Для соединения микроконтроллера AT91SAM7SE и внешней 8-разрядной NANDFlash памяти можно воспользоваться схемой, изображенной на рис. 11, на котором также показана схема подключения питания к памяти.


Рис. 11. 8-разрядноесоединение AT91SAM7SE c NAND Flash

Блок-схема памяти NAND08GW3B2A представлена на рис. 12.

Рис. 12. Блок-схема NAND08GW3B2A

Как уже упоминалось, используется интерфейс подключения внешней памяти (ExternalBusInterface, EBI). Для NANDFlash памяти используются следующие сигналы:

NANDCS – сигнал выбора памяти (пин E у NAND08GW3B2A);

NANDOE – сигнал разрешения для выходных буферов данных (пин R у NAND08GW3B2A);

NANDWE – сигнал разрешения записи команды, данных или адреса (пин W у NAND08GW3B2A);

NANDCLE – сигнал разрешения защёлки команды (пин CLу NAND08GW3B2A);

NANDALE – сигнал разрешения защёлки адреса (пин ALу NAND08GW3B2A).

Сигнал RB означает готовность устройства либо наоборот невозможность обращения к нему в данный момент времени. Сигнал PRL отвечает за автоматическое выполнение операции чтения при включении питания.

Также используются 8 линий ввода/вывода, по которым передаются и данные, и адреса.

Встроенный контроллер памяти AT91SAM7SE (StaticMemoryController, SMC) используется для управления внешней памятью или периферийными устройствами, в том числе LCD-контроллерами. SMC содержит следующие входы/выходы:

NCS[7:0] – 8 линий выбора внешних устройств;

NRD – сигнал чтения;

NWR0/NEW – сигнал разрешения записи;

NWR1/NUB – сигнал разрешения записи или сигнал выбора старшего байта;

A0/NLB – нулевой бит адреса или сигнал выбора младшего байта;

A[22:1] – линии шины адреса;

D[15:0] – линии шины данных;

NWAIT – внешний сигнал ожидания.

SMC контроллер полностью программируем и может обеспечить соединение с использованием 22-разрядной линии адреса и 16-разрядной шины данных.

LCD-дисплей SG12864H имеет встроенный ST7565-совместимый контроллер, обеспечивающий 8-разрядное параллельное соединение с процессором устройства. Для управления им используются следующие сигналы:

RES – сигнал сброса;

CS- сигнал выбора дисплея;

RS – сигнал выбора типа данных;

WR – сигнал записи;

RD – сигнал чтения.

Таким образом, можно организовать соединение микроконтроллера AT91SAM7SE и LCD-дисплея SG12864H по 8-разрядной шине данных с использованием управляющих сигналов SMC контроллера.

4.6 Возможности аппаратной модернизации устройства

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

Поэтому остаются неучтенными некоторые возможности устройства, реализовать которые не удалось.

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

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

Интерфейс SPI управляющего микроконтроллера AT91SAM7SE может работать с еще 3 внешними периферийными устройствами помимо модуля F2M03MLA. В роли одного из этих устройств может выступать MMC, SD или microSD карта памяти. При рассмотрении этого вопроса нужно учесть максимальное быстродействие SPI порта AT91SAM7SE и его реальные возможности по обслуживанию и модуля, и карты памяти, чтобы избежать “зависания” устройства.


5. Программная часть

Программная часть данного дипломного проекта состоит из программы для процессора устройства (AT91SAM7SE) и драйвера устройства для операционной системы WindowsXP.

Программирование управляющего микроконтроллера может осуществляться несколькими способами:

через параллельный интерфейс быстрого программирования (Fast Flash Programming Interface, FFPI), в этом случае микроконтроллер воспринимается как EEPROMпамять;

через последовательный интерфейс быстрого программирования (FFPI), используя стандартный протокол IEEE 1149.1 JTAG;

через UART порт микроконтроллера, используя встроенную программу-автозагрузчик;

через USB порт микроконтроллера, используя встроенную программу-автозагрузчик.

Помимо этого есть возможность просмотра программы микроконтроллера в режиме отладки и тестирования, используя JTAG/ICE(EmbeddedICE) порт и порт UART.

Atmel также предлагает аппаратные средства для работы с AT91SAM7SE в виде отладочной платы AT91SAM7SE-EK, позволяющее подробно изучить возможности микроконтроллера. На официальном сайте компании (www.atmel.com) доступны демонстрационные программные коды и различная литература для этой отладочной платы.

Драйвер устройства должен обеспечить возможность работы с ним средствами операционной системы Windows при подключении к USB-порту компьютера.


5.1 Обзор средств разработки

Для программирования микропроцессоров необходимо несколько инструментов:

обязательные:

компилятор языка C, ассемблер и линковщик;

программатор;

необязательные:

отладчик;

эмулятор.

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

Для микроконтроллера AT91SAM7SE существует несколько компиляторов языка C. Перечислим их:

IAR (IAR KickStart иусеченнаяверсия IAR Embedded Workbench);

Keil;

ICCARM (пока что не доработан полностью);

GCC (бесплатный C-компилятор для Windows и Linux);

WinARM.

Программатор предназначен для “заливки” программы в память микропроцессора. Существует несколько способов программирования, различающихся по типу соединения, например, возможно программирование по интерфейсу SPI, JTAG или USB. Последний способ представляется наиболее удобным и доступным, так как не требует использования дополнительных разъемов, проводов и оборудования.

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

Существует несколько программ, позволяющих производить программирование AT91SAM7SE по интерфейсу USB:

FLIP – это стандартный программатор, предоставляемый компанией Atmel для своих микроконтроллеров;

ER-Tronic – это узко специализированный программатор для данного микроконтроллера;

Rowley Associates;

SAM-BA (SAMBootAssistant) – бесплатный загрузчик от Atmel.

К достоинствам программы FLIP относят поддержку большого числа функций: очистка, проверка, чтение и запись EEPROM- и Flash-памяти; возможность ручного редактирования буферов памяти; возможность загрузки и сохранения буферов в HEX-формате; отслеживание изменений в процессе разработки. Недостатками данной программы являются некоторая запутанность интерфейса и слабая справочная система.