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

ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ

Федеральное государственное образовательное учреждение

высшего профессионального образования

«Чувашский государственный университет им. И.Н. Ульянова»

Факультет Информатики и вычислительной техники

Специальность 220100

Дипломник:

Фамилия Бронин .

Имя Климент .

Отчество Васильевич


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


Кафедра Информационных вычислительных систем

Заведующий кафедрой: Галанина Н. А., к.т.н., доцент

Руководитель: Егоров Е. Г., старший преподаватель

Консультанты: Егоров Е. Г., старший преподаватель

Блохинцев А. А., доцент

Рецензент:

приказа о допуске к дипломному проектированию: ______________

Проект начат _______________________

Проект закончен ____________________

приказа о допуске к защите ________

Оценка экзаменационной комиссии по защите: ___________________

Декан факультета

Секретарь

экзаменационной комиссии

«____» __________________ 2007 г.

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

Федеральное государственное образовательное учреждение

высшего профессионального образования

«Чувашский государственный университет им. И.Н. Ульянова»

Факультет информатики и вычислительной техники

УТВЕРЖДАЮ

Декан факультета

_______________/Калмыков Б.М.

___” ______ 2007 г.


ЗАДАНИЕ

НА ДИПЛОМНЫЙ ПРОЕКТ

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


Студент: Бронин Климент Васильевич

Группа: ИВТ-12-02


СОДЕРЖАНИЕ ЗАДАНИЯ:

Исходные данные к проекту: Количество аудио выходов - 1. Тип аудио выхода - стерео. Разрядность ЦАП - 16. Количество управляющих клавиш – 4. Тип дисплея – LCD. Разрешение дисплея - не менее 64x32. Объем встроенной памяти 1 Гбайт. Поддержка интерфейса USB версии 1.1. Количество входов USB – 1. Поддержка интерфейса Bluetooth версии 1.1. Встроенная поддержка формата MP3.

Схемотехническая часть: Анализ области применения устройства. Обзор мультимедиа-устройств с поддержкой USB и/или Bluetooth. Выбор процессора устройства. Выбор базовых компонентов устройства. Разработка структурной, функциональной и принципиальной схем устройства.

Программная часть: Разработка алгоритма управляющей программы устройства. Разработка шаблона драйвера устройства для операционной системы Windows XP.

Конструкторская часть: Разработка печатной платы устройства.

Экономическая часть: Расчет себестоимости и цены устройства.

Экологическая часть: Анализ условий труда и безопасности при разработке проекта и эксплуатации устройства.

Содержание расчетно-пояснительной записки: Введение. 1. Анализ области применения устройства. Обзор мультимедиа-устройств с поддержкой USB и/или Bluetooth. Выбор процессора устройства. Выбор базовых компонентов устройства. 2. Разработка структурной схемы устройства. 3. Разработка функциональной схемы устройства. 4. Разработка принципиальной электрической схемы устройства. 5. Программная часть. 6. Конструкторская часть. 7. Экономическая часть. 8. Экологическая часть. Заключение.

Содержание графической части проекта: 1. Структурная схема устройства; 2. Функциональная схема устройства; 3. Принципиальная электрическая схема устройства; 4. Печатная плата. Чертеж детали; 5. Печатная плата. Сборочный чертеж; 6. Блок-схема алгоритма управляющей программы.

Консультанты:

по схемотехнической части: ст. пр. Егоров Г.Е.

по программной части: ст. пр. Егоров Г. Е.

по конструкторской части: ст. пр. Егоров Г. Е.

по экономической части: ст. пр. Егоров Г. Е.

по экологической части: доцент Блохинцев А. А.

Руководитель проекта: ст. пр. Егоров Г. Е.

Задание принял к исполнению студент Бронин К. В.

Задание зарегистрировано

Заведующий кафедрой к.т.н., доцент Галанина Н. А.

Содержание


Аннотация

Annotation



Аннотация


Дипломный проект посвящён разработке портативной звуковой USB-карты. В автономном режиме устройство способно выполнять функции MP3-плеера с поддержкой Bluetooth.

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

Вторая, третья и четвертая главы посвящены разработке аппаратной части устройства, а пятая глава – разработке шаблона драйвера устройства.

Конструкторская часть описывает процесс разработки печатной платы устройства.

В экономической части приведён расчёт себестоимости устройства, а экологическая часть посвящена безопасности и экологичности проекта.

Annotation


The purpose of the degree work is development of a portable sound USB-cards. In free running mode this device executes MP3-player’s functions and supports Bluetooth.

In theoretical part are considered modern multimedia-device, supporting USB and Bluetooth, and is motivated choice of the processor device and its base component.

The Second, the third and the fourth chapters are dedicated to development of the hardware part device, and the fifth chapter is dedicated to development of the pattern of the driver device.

Design part describes the development of the device’s circuit board.

Economic part contains the calculation of the device’s cost and ecological part dedicates safety and ecological capacities of the project.


Введение


Сейчас многие портативные устройства поддерживают интерфейс USB, особенно те устройства, которые построены на микропроцессорах.

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

Одна из новинок, появившаяся в 2006 году и не обделенная вниманием, – это звуковые USB-колонки, представляющие собой звуковую карту, подключаемую к USB-порту, и несколько динамиков.

Другим более привычным USB-мультимедиа устройством является MP3-плеер. Современные MP3-плееры отличаются от своих предшественников поддержкой Bluetooth. Причем это выражается не только в передаче звука на беспроводные наушники, но и в возможности обмена файлами с другими Bluetooth-устройствами. С развитием портативных плееров увеличивается и объем встроенной памяти. На данный момент стандартом является 1 Гбайт.

Целью данного дипломного проекта является разработка устройства, которое будет совмещать в себе возможности современного MP3-плеера с поддержкой Bluetooth и звуковой USB-карты. Устройство должно иметь широкие аппаратные возможности, которые впоследствии при модификации программной части, должны дать потребителю новые возможности.

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

В автономном режиме устройство должно работать как MP3-плеер с поддержкой Bluetooth. Поддержка Bluetooth должна выражаться как минимум в передаче звука на беспроводные наушники, а также иметь возможность расширения Bluetooth-функций устройства.

Наличие дисплея, стерео аудио выхода и встроенной памяти объемом 1Гбайт вместе с поддержкой USB и Bluetooth и возможностью перепрограммирования обуславливают широкие возможности использования устройства и делают его привлекательным потребителю.


1. Анализ области применения устройства


Основная сфера применения устройства – это рынок потребительской мультимедиа электроники, в частности рынок портативных MP3-плееров и диктофонов.

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

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

легко реализуемое расширение периферии;

дешевое решение позволяющее передавать данные с приемлемой скоростью;

полная поддержка в реальном времени голосовых, аудио- и видеопотоков;

интеграция с выпускаемыми устройствами;

охват всевозможных конфигураций и конструкций персонального компьютера;

обеспечение стандартного интерфейса, способного быстро завоевать рынок;

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

Практически все требования были учтены и потребители получили действительно удобный и функциональный интерфейс.

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

Беспроводной интерфейс Bluetooth позволяет различным устройства, которые поддерживают данный интерфейс, – ноутбукам, PDA, сотовым телефонам, принтерам и беспроводным гарнитурам – автоматически связываться с достаточно близко расположенными, себе подобными устройствами для обмена информацией. Одно Bluetooth-устройство способно вести «разговор» с 7 «друзьями». Для связи используется нелицензируемый в большинстве стран мира диапазон радиочастот 2,4 ГГц. Скорость передачи данных может составлять от 721 Кбит/с до 3 Мбит/сек в зависимости от используемой спецификации устройства, а расстояние – от 10 до 30 метров.

Одной из новых тенденций развития рынка портативных плееров является поддержка беспроводного интерфейса Bluetooth.

Таким образом, поддержка популярного и широко использующегося проводного интерфейса USB наряду с набирающим популярность беспроводным интерфейсом Bluetooth, делают устройство современным и конкурентоспособным на этом рынке.

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

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

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


1.1 Обзор мультимедиа-устройств с поддержкой USB и/или Bluetooth


Рынок USB-устройств очень быстро развивается. Интерфейс USB не только приходит на смену устаревшим RS-485, RS-232 и LPT, но и конкурирует с уже привычными интерфейсами, такими как Ethernet и WireFire.

Интерфейс USB можно использовать для передачи данных, для передачи данных и питания устройства или просто для питания/подзарядки устройства. Столь широкие возможности объясняются тем, что устройство может получать питание напрямую от шины.

Среди мультимедиа устройств, поддерживающих USB, можно выделить звуковые колонки, колонки с питанием от USB, различные плееры и диктофоны, FM- и TV-тюнеры. Наиболее популярным, конечно, является MP3-плеер.

Интерфейс Bluetooth, который первоначально был ориентирован на рынок портативных компьютеров и сотовых телефонов, теперь начинает завоевывать и рынок портативных устройств, в том числе и рынок MP3-плееров. Интерфейс используется не только для передачи звука на беспроводные наушники, но и для обмена звуковыми файлами, что весьма привлекательно для современной молодежи.

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

На сегодняшний день самым распространенным и типичным мультимедиа-устройством, поддерживающим и USB, и Bluetooth, является MP3-плеер.

Приведем его характеристики:

поддержка интерфейсов USB и Bluetooth;

воспроизведение MP3-, WMA-, WAVE- и OGG-файлов;

встроенная память объемом не менее 1 Гбайт;

возможность записи звука;

возможность использования в качестве FM-радио.

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


1.2 Выбор процессора устройства


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

Для обеспечения соединения с USB можно воспользоваться двумя возможностями.

Можно подобрать такой управляющий микроконтроллер, который поддерживал интерфейс USB с возможностью программного определения режима работы устройства.

Другой подход предполагает подбор такой микросхемы сопряжения с USB, которая также обеспечивала бы соединение с управляющим микроконтроллером. Однако этот подход не рационален в силу нескольких причин:

при использовании двух микросхем вместо одной, могут возникнуть как аппаратные, так и программные трудности;

выигрыш в стоимости будет минимален, так как микроконтроллеры с поддержкой USB уже внедрены в массовое производство и доступны в различных ценовых вариантах;

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

Рассмотрим микросхемы обеспечивающие соединение c USB-портом и микроконтроллеры с поддержкой USB и высокой производительностью. Среди множества производителей этой продукции можно выделить такие компании, как Atmel, Cypress Semiconductors, Cygnal, FTDI, Microchip и National Semiconductors.

Компания FTDI (Future Technology Devices International) специализируется на производстве микросхем сопряжения микропроцессорных устройств с USB. Микросхемы такого рода целесообразно использовать, если управляющий микроконтроллер не имеет собственных средств сопряжения с USB. Однокристальные микросхемы FT232AM и FT232BM представляют собой асинхронный двунаправленный преобразователь USB в последовательный интерфейс, т.е. управляющий микроконтроллер обязательно должен иметь UART порт. FT245AM и FT245BM преобразуют USB в параллельный интерфейс. Стоимость этих микросхем составляет $4.5.

Микропроцессоры C8051F320 и C8051F321 компании Cygnal поддерживают протокол USB2.0, содержат 20 цифровых входов/выходов, АЦП, 4 таймера, а их производительность составляет 25 MIPS. Стоимость микросхемы – около 50$, что, конечно, очень дорого и обуславливает невозможность использования данной микросхемы в разрабатываемом устройстве.

Среди микросхем компании Cypress Semiconductors наибольшим интересом у разработчиков пользуется универсальный контроллер CY7C68013A. Рабочая конфигурация контроллера определяется программой, загруженной во внутреннюю оперативную память. Именно эта возможность делает контроллер универсальным: в зависимости от задачи его можно настроить для выполнения тех или иных необходимых функций, к тому же пользователь сам может обновлять программное обеспечение готовых приборов в процессе эксплуатации. Благодаря этому данная микросхема выгодно отличается от рассмотренной продукции компании FTDI.

Компания Microchip выпускает микроконтроллеры с архитектурой PIC и встроенной USB-функцией. Микроконтроллеры семейства PIC16xxxx имеют последовательный интерфейс, от 22 до 33 программируемых выводов и АЦП. Микроконтроллеры семейства PIC18xxxx поддерживают интерфейсы CAN и SPI, имеют от 19 до 34 программируемых выводов и АЦП.

National Semiconductors предлагает линейку процессоров семейства CP3000, поддерживающих и USB 1.1, и Bluetooth 1.1. Для создания полностью готового Bluetooth-устройства требуется лишь приемопередатчик, в качестве которого производитель предлагает использовать свою же микросхему LMX5252. Процессоры также поддерживают интерфейсы SPI, UART и PCM. Некоторые из них, например CP3BT26 и CP3CN23 имеют АЦП. Старший представитель семейства CP3SP33 поддерживает протоколы USB 2.0 и Bluetooth 1.2 и имеет встроенное DSP-ядро, предназначенное для декодирования MP3 и WMA. Однако этот процессор только вводится в массовое производство, что сильно затрудняет его использование. Все процессоры семейства CP3000 имеют от 40 программируемых выводов и более и отличаются вполне приемлемой ценой, кроме CP3SP33.

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

Микроконтроллеры с архитектурой MCS51 поддерживают помимо USB ряд других интерфейсов, таких как SPI, UART и TWI. Среди них выделяется процессор AT89C5132, который помимо этого поддерживает интерфейсы I2S и IDE, возможность соединения с MultiMediaCard и DataFlash и имеет 10-разрядный аналого-цифровой преобразователь.

Микроконтроллеры с ядром AVR, такие как AT90USB1286, AT90USB1287, AT90USB646 и AT90USB647, имеют 8-канальный 10-разрядный аналого-цифровой преобразователь и способны обеспечивать производительность до 16 MIPS.

Микроконтроллеры семейства AT91с ядром ARM имеют аналого-цифровой преобразователь, большое количество программируемых выводов, поддерживают различные интерфейсы: UART, TWI и SPI. Среди них стоит выделить микроконтроллеры семейства AT91SAM7SE, поддерживающие протокол USB 2.0, имеющие большое количество программируемых выводов и возможность подключения внешней NAND Flash или Compact Flash памяти.

Проанализировав возможности рассмотренных микроконтроллеров, нельзя не заметить очевидное превосходство микроконтроллеров CP3BT26 и AT91SAM7SE. Таким образом, есть возможность использования либо CP3BT26, либо AT91SAM7SE.

В первом случае, требуется Bluetooth-приемопередатчик, внешняя память с подключением по SPI и внешний цифро-аналоговый преобразователь, способный декодировать MP3. Также нужно проработать механизм передачи звука на беспроводные наушники.

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

Как выяснилось, требуется современный цифро-аналоговый преобразователь. Рассмотрим цифро-аналоговые преобразователи фирмы Micronas, например, UAC3575B и UAC3576B. Они снабжены аналого-цифровым и цифро-аналоговым преобразователями, цифровым эквалайзером, входом для микрофона и поддерживают USB 2.0. Их функциональности вполне достаточно для разрабатываемого устройства.

Хорошо известны также микросхемы семейства VS1001 фирмы VLSI. Они предназначены для декодирования MPEG аудио данных, имеют мощное DSP ядро, 18-битный цифро-аналоговый преобразователь и поддерживают последовательный интерфейс. Стоимость такого чипа составляет примерно 20$.

Недавно фирма Free2Move анонсировала модули, предназначенные для Bluetooth мультимедиа устройств и отличающиеся высокой функциональностью, малыми размерами порядка 25мм*15мм и широкой сферой применения. Рассмотрим некоторые из них.

Модуль F2M03CL2 содержит законченный аудио кодек, поддерживает последовательный интерфейс, UART и PCM. Аппаратно поддерживается протокол Bluetooth 1.1. Также есть 8 цифровых входов/выходов и 2 аналоговых.

Другой модуль F2M03MLA имеет 16-битный стерео кодек, 16-битные цифро-аналоговый и аналого-цифровой преобразователи, 32-битное DSP-ядро, поддерживает интерфейсы SPI, UART, I2C и PCM и протокол Bluetooth 2.0. Также есть возможность подключения микрофона.

Другие модули, такие как F2M03GLA, поддерживают USB 2.0, однако их мультимедиа возможности ограничены лишь поддержкой интерфейса PCM, возможности которого соответствуют лишь передаче речевых аудио данных.

Для разрабатываемого устройства возможно использование лишь модуля F2M03MLA. Стоимость его составляет 60$, что, однако вполне соответствует его возможностям.

Проанализировав все вышеописанные данные, можно выделить несколько вариантов:

если выбрать в качестве процессора устройства микроконтроллер CP3BT26, то дополнительно потребуется реализовать посредством интерфейса SPI возможность подключения внешней памяти, а также нужно будет использовать цифро-аналоговый преобразователь – либо VS1001, либо UAC3575B; возможность использования модуля F2M03MLA в данном случае нецелесообразна, так как произойдет дублирование возможностей;

другой вариант – выбрать микроконтроллер AT91SAM7SE, поддерживающий и USB и NAND Flash, и Bluetooth мультимедиа модуль F2M03MLA, соединение с которым можно организовать по интерфейсу SPI или UART.

В первом варианте получим следующие характеристики устройства: USB 1.1, Bluetooth 1.1, аудио выход и аудио вход.

Второй вариант устройства имеет такие характеристики: USB 2.0, Bluetooth 2.0, аудио вход, аудио выход.

Очевидно преимущество второго варианта, на нем и сделаем выбор. Таким образом, в качестве процессора устройства выбран микроконтроллер AT91SAM7SE, который соединяется с готовым Bluetooth мультимедиа модулем по какому-либо доступному интерфейсу.


1.3 Выбор базовых компонентов устройства


Использование AT91SAM7SE и F2M03MLA, обеспечивает поддержку USB, Bluetooth и памяти, а также предоставляет возможность декодирования MP3 файлов и преобразования цифрового сигнала в аналоговый для использования устройства в качестве звуковой карты.

Для достижения максимально возможной функциональности разрабатываемого устройства рассмотрим выбранные компоненты подробнее. И на основе их возможностей подберем базовые компоненты устройства.

Микроконтроллеры семейства AT91SAM7SE построены на RISC-архитектуре и являются лидером в отношении производительность/потребление.

Имеется встроенная быстрая флеш-память объемом 32, 256 или 512 кбайт и интерфейс для подключения внешней памяти. По этому интерфейсу можно подключить 2 микросхемы Compact Flash памяти или 1 микросхему NAND Flash памяти. Для разрабатываемого устройства подойдет микроконтроллер AT91SAM7SE256, имеющий 256 кбайт внутренней флеш-памяти.

Максимальная частота составляет 55 МГц, что обеспечивает 0.9MIPS/ МГц. Поддерживаются 16/32-битные команды и 8/16/32-битные данные. Микроконтроллер имеет 7 режимов работы, 32-битные регистры общего назначения количеством – 31 и 6 статусных регистров.

Микроконтроллер имеет 2 USART (Universal Synchronous Asynchronous Receiver Transceiver) порта, 1 SPI (Serial Peripheral Interface) порт, 1 TWI (Two-Wire Interface) порт, 1 SSC (Serial Synchronous Controller) порт и 1 USB порт. Помимо этого имеется трехканальный 16-битный таймер, таймер реального времени и сторожевой таймер. 88 из 128 пинов микроконтроллера можно запрограммировать. Каждая линия может быть либо входом с подтягивающим резистором, либо обычным входом, либо входом прерывания.

SPI порт может работать с 4 последовательными устройствами, в том числе и с LCD-дисплеями и обеспечивает скорость до 1Мбит/сек. Встроенный контроллер памяти также может работать с LCD-дисплеем.

USB порт способен обеспечить скорость передачи до 12Мбит/сек и имеет 8 конечных точек.

Теперь рассмотрим модуль F2M03MLA. Он поддерживает интерфейсы SPI, UART имеет 8 программируемых линий, каждая из которых может использовать встроенный pull-up и pull-down резистор. 4 аналоговых аудио линии можно использовать как выход для наушников или миниатюрных динамиков. Еще 4 аудио линии предназначены для аудио входом, причем в состав модуля входит усилитель для микрофона.

Помимо этого модуль поддерживает несколько аудио интерфейсов – PCM, I2S и SPIDF.

Аппаратно поддерживаются четыре Bluetooth-профиля:

headset;

hands free;

A2DP;

AVRCP.

Также есть возможность модификации программной части модуля для расширения Bluetooth возможностей. Благодаря встроенной антенне радиус действия Bluetooth может достигать 150 метров.

Помимо процессора устройства и Bluetooth аудио модуля базовыми компонентами устройства являются LCD-дисплей, память и питание для обеспечения автономной работы устройства.

Напряжение питания для AT91SAM7SE и F2M03MLA варьируется от 3.0 до 3.6 В, а номинальным считается напряжение 3.3 В.

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

никель-кадмиевые (NiCd) – самые дешевые;

никель-металлгидридные (NiMH)требуют профилактической полной разрядки хотя бы раз в месяц;

литий-ионные (Li-ion) – наиболее распространенные; после года эксплуатации наблюдается уменьшение емкости аккумулятора;

литий-полимерные (Li-pol) новинка на рынке аккумуляторов, немного дешевле, чем Li-ion и выдерживает 150 циклов зарядки-разрядки.

Характеристики различных аккумуляторов от различных производителей приведены в табл. 1.


Таблица 1. Сравнительные характеристики аккумуляторов

Модель

Тип аккумулятора

Цена, руб.

Производитель

A2618

NiMH

494

Ericson

TriumMars

NiMH

260

MITSUBISHI

NECDB 2000

NiMH

390

NEC

SGH-S100

Li-ion

1300

Samsung

MPx200

Li-ion

1300

Motorola

BAT-MOTZ3

Li-ion

309.4

Motorola

MPx220

Li-ion

2080

Motorola

Zondex J-5

Li-ion

650

Sony

Zondex Z5

Li-ion

910

Sony

BOSCH909

Li-ion

650

BOSCH

A2618

Li-ion

494

ORA Electronics


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

Так как разрабатываемое устройство рассчитано на частое подключение к USB, то целесообразно предусмотреть и возможность питания от шины. Следовательно, требуется микросхема, которая может подзаряжать аккумулятор от USB и играть роль DC/DC конвертера.

Наиболее распространены DC/DC конвертеры компании MAXIM. Семейство конвертеров MAX639 обеспечивает выходное напряжение 3 и 3.3 В при входном напряжении от 4 до 11.5 В. Конвертеры MAX17xx способны при входном напряжении 0.8 – 5 В обеспечивать 3.3 В на выходе. Однако эти микросхемы не годятся для подзарядки аккумуляторов.

Микросхема MAX1811 может быть использована для подзарядки одной литий-ионной батарейки или аккумулятора. Входное напряжение может подаваться напрямую от USB-порта, а выходное напряжение составляет 3.3 В. Таким образом, данная микросхема может быть использована для подзарядки аккумулятора и для питания устройства.

Устройство должен иметь встроенную память объемом 1Гбайт. Можно использовать Compact Flash или NAND Flash память.

Как известно, память типа NAND Flash имеет особенность, определяемую технологией производства: наличие секторов с дефектными битами, причем число таких секторов увеличивается в процессе эксплуатации микросхемы. Таким образом, для корректной работы необходим механизм, управляющий процессом записи и проверяющий целостность записанных данных. Микроконтроллер AT91SAM7SE имеет встроенный ECC (Error Corrected Code) контроллер, который в процессе записи вычисляет контрольную сумму пакета данных и записывает ее в специально отведенную область памяти, а при чтении проверяет ее. Используя механизм избыточного кодирования, можно исправить одиночную ошибку в пакете и обнаружить двойную ошибку.

К тому же, NAND Flash память отличается малыми размерами и высоким быстродействием, поэтому ее использование предпочтительнее. Микроконтроллер AT91SAM7SE поддерживает 8- и 16-разрядное подключение NAND Flash микросхем.

Рассмотрим подобные микросхемы емкостью 1 Гбайт.

Компания Samsung выпускает память K9K8G08U1A емкостью 8 Гбит с 8-разрядным интерфейсом.

Ее аналогом является память NAND08GW3B2A, производимая компанией STMicroelectronics.

Обе микросхемы внедрены в массовое производство и по обеим микросхемам производители предоставляют полную информацию о характеристиках и возможностях использования. Ценовая разница также несущественна. Для разрабатываемого устройства выберем память NAND08GW3B2A.

Еще одним базовым компонентом устройства является LCD-дисплей. Для разрабатываемого устройства вполне подойдет символьный дисплей, например 20*4 или 16*4 фирмы Bolymin, Systronix, Optrex или Picvue. Однако использование символьного дисплея ограничивает возможности программной модификации устройства (при перепрошивке), поэтому воспользуемся графическим дисплеем.

Графический LCD-дисплей может отображать не только название композиции, ее исполнителя, но и, например, отображать работу графического эквалайзера. Также он способен обеспечить приятную цветовую гамму.

Сегодня рынок графических LCD-дисплеев очень разнообразен как в плане размеров и разрешающей способности, так в плане стоимости, и способен дать оптимальное решение практически любому разработчику. Доступны дисплеи со встроенным контроллером, обеспечивающим легкое взаимодействие с главным процессором устройства, и дисплеи с внешним контроллером.

Во избежание дополнительных аппаратных трудностей желательно использовать дисплеи со встроенным контроллером. Напряжение питания дисплея (питание для отображения графической информации), логики дисплея (питание контроллера) и подсветки должно составлять не более 3.6 В, чтобы не пришлось использовать дополнительных аппаратных затрат. Дисплей также должен быть компактен и удобен. Для устройства вполне подойдет прямоугольный дисплей 128 на 64 точки или квадратный дисплей примерно 80 на 80 точек.

Этим требованиям удовлетворяют графические LCD-модули фирмы Sunlike с разрешающей способностью 128 на 64. Их характеристики приведены в табл. 2.


Таблица 2. Характеристики графических дисплеев с разрешением 128*64 фирмы Sunlike

Модель

Размер модуля, мм

Размер видимой

области экрана, мм

Контроллер

SG12864A

93 x 70 x 8.8 (12.7)

72.0 x 40.0

KS0107 или

KS0108

SG12864C

78 x 70 x 8.8 (12.7)

72.0 x 40.0

KS0107 или

KS0108

SG12864D

93 x 70 x 11.8

70.7 x 40.0

S6B0107

SG12864F

87 x 70 x 8.8 (12.7)

72.0 x 40.0

T6963C

SG12864G

78 x 70 x 8.8 (12.7)

70.7 x 40.0

T6963C

SG12864H

75 x 52.7 x 7.9 (10.0)

60.0 x 32.5

KS0107 или

KS0108

SG12864I

78 x 70.0 x 10.5 (13.2)

62.0 x 44.0

S6B0107

SG12864J

78 x 70.0 x 10.5 (13.2)

62.0 x 44.0

T6963C

SG12864M

84.4 x 66.0 x 8.8 (12.7)

72.0 x 40.0

S6B0107

SG12864T

75.2 x 52.5 x 7.9 (9.2)

60.0 x 32.5

--

SH12864A

80.0 x 54.0 x 9.7

70.7 x 38.8

ST7565


Наиболее удобным из указанных дисплеев в силу своих размеров и наличия встроенного контроллера является модель SG12864H.

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

Для устройства подойдет любой микрофон с питанием не более 3.6 В и компактными размерами. Параметры конденсаторных и электретных микрофонов, которые можно без проблем приобрести, приведены в табл. 3.


Таблица 3. Конденсаторные и электретные микрофоны

Модель

Цена, руб.

Размеры, мм

Напряжение, В

Тип микрофона

ECM-10A

17.40

6

4.5

конденсаторный

ECM-10B

14.02

6

4.5

конденсаторный

ECM-10C

17.40

6

4.5

конденсаторный

ECM-10D

17.40

6

4.5

конденсаторный

ECM-30A

15.40

10

4.5

конденсаторный

ECM-30B

12.13

10

4.5

конденсаторный

ECM-30C

15.38

10

4.5

конденсаторный

ECM-60A

14.70

10

4.5

конденсаторный

HMO0603A

23.72

6

3

электретный

HMO0603B

48.12

6

3

электретный

HMO1001A

12.82

9.8

1.5

электретный


Из перечисленных микрофонов для разрабатываемого устройства подходят две модели – HMO0603A и HMO0603B.


2. Разработка структурной схемы устройства


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

USB-вход;

LCD-дисплей;

1 Гбайт встроенной памяти;

аудио выход и 2 миниатюрных динамика;

микросхему для зарядки аккумулятора и сам аккумулятор;

управляющие клавиши.

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

Управляющий микроконтроллер (процессор) должен обеспечивать взаимодействие всех компонентов устройства. Во-первых, он обеспечивает соединение с USB-портом. Во-вторых, управляет работой модуля F2M03MLA, отвечающего за мультимедийные и Bluetooth возможности устройства. В-третьих, обеспечивает работу с памятью устройства и выдает данные для отображения на LCD-дисплей. Для управления работой устройства в автономном режиме предназначены управляющие клавиши, сигналы которых должны поступать процессору устройства.

Модуль F2M03MLA выводит звук либо на проводные наушники или на миниатюрные динамики, либо на беспроводные наушники. Также он обеспечивает запись звука через аудио вход или микрофон. Модуль представляет собой полностью законченное схемотехническое изделие, и его программируемые линии ввода/вывода уже сконфигурированы для приема некоторых управляющих сигналов, таких как повышение, понижение уровня звука, стоп и воспроизведение. Следовательно, клавиши управления уровнем звука можно подключить не к управляющему микроконтроллеру устройства, а к модулю F2M03MLA. Это позволит наиболее полно использовать возможности модуля и даст некоторое преимущество в скорости выполнения функций управления уровнем звука.

Питание всех перечисленных компонентов обеспечивается через USB-вход. Если же устройство используется в автономном режиме, то питание осуществляется аккумулятором. Зарядка аккумулятора осуществляется через USB-порт посредством специальной микросхемы.

Таким образом, данные от USB-порта (компьютера) будут поступать через USB-вход устройства управляющему микроконтроллеру, и далее через него будут подаваться на входы Bluetooth аудио модуля либо встроенной памяти. Аналогично, данные будут поступать USB-порту в обратном направлении через процессор устройства.

Итак, получили следующую структурную схему устройства (рис. 1):


Процессор

устройства

Модуль F2M03MLA

USB вход

Аудио вход

Аудио выход

Микрофон

Динамики

Микросхема для зарядки

аккумулятора

Память

LCD-дисплей

Управляющие клавиши

Клавиши

управления

уровнем звука


Рис. 1. Структурная схема устройства

3. Разработка функциональной схемы устройства


Судя по структурной схеме устройства необходимо проработать функциональные возможности соединения:

процессора устройства и памяти;

процессора устройства и LCD-дисплея;

процессора устройства и USB входа;

процессора устройства и управляющих клавиш;

модуля F2M03MLA и клавиш управления уровнем звука;

модуля F2M03MLA и комбинированных аудио входа и выхода, совмещающих в себе микрофон и динамики.

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

Рассмотрим функциональные схемы компонентов устройства и варианты их соединения между собой.


3.1 Обзор функциональных возможностей процессора устройства


Функциональная схема микроконтроллера AT91SAM7SE состоит из следующих частей:

JTAG-порт – для программирования микроконтроллера;

упреждающий диспетчер прерываний – для работы с 2 аппаратными прерываниями и 1 быстрым прерыванием;

DBGU-порт (фактически это двухпроводной UART-порт) – для тестирования и отладки прошивки микроконтроллера;

диспетчер управления питанием;

диспетчер сброса/восстановления;

таймер;

сторожевой таймер;

таймер реального времени;

3 диспетчера линий ввода/вывода;

2 USART-порта;

SPI-порт;

таймер/счетчик;

аналого-цифровой преобразователь;

регулятор напряжения питания;

SRAM-память;

Flash-память;

интерфейс быстрого программирования;

программа-загрузчик SAM-BA – обеспечивает легкое программирование Flash-памяти, обеспечивает графический интерфейс пользователя;

интерфейс внешней шины – для подключения внешней памяти; содержит SDRAM-диспетчер, диспетчер статической памяти и диспетчер коррекции ошибок;

USB-порт;

диспетчер широко-импульсной модуляции;

синхронный последовательный диспетчер – для подключения внешних синхронных устройств;

TWI-порт.

Доступны 88 программируемых линий ввода/вывода.

Для организации соединения между процессором устройства и NAND Flash памятью нужно использовать интерфейс внешней шины. Соединение можно организовать по 8- или 16-разрядной мультиплексированной шине команд, адреса и данных.

Микроконтроллер AT91SAM7SE дает несколько возможностей для соединения с LCD-дисплеем:

через двухпроводной интерфейс TWI;

через диспетчер статической памяти.

Более удобен второй вариант, который позволяет организовать передачу данных по 8-разрядной шине данных.

Для соединения с модулем F2M03MLA также доступны несколько вариантов:

соединение по интерфейсу SPI;

соединение по интерфейсу UART.

Интерфейс SPI может обеспечить более высокую скорость передачи, чем UART. Основной трафик данных в устройстве представляет собой следующую цепочку: USB (память)→AT91SAM7SEF2M03MLA. Таким образом, использование интерфейса SPI предпочтительнее.

USB-порт управляющего микроконтроллера состоит из двух линий данных. USB-вход также содержит две линии данных, линии заземления и питания. То есть, организация соединения не вызывает дополнительных вопросов.

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

Для устройства требуются следующие клавиши управления (кроме клавиш управления уровнем звука):

воспроизведение или вверх;

стоп или вниз;

на одну композицию вперед или вправо;

на одну композицию назад или влево;

вызов меню/пауза или кнопка подтверждения какого-либо действия.

На рис. 2 показано расположение данных клавиш.


Рис. 2. Расположение управляющих клавиш устройства


Часть управляющих клавиш, наиболее используемых, можно использовать вместе с линиями обработки прерываний диспетчера прерываний. К примеру, воспроизведение, меню и стоп. Остальные клавиши нужно использовать вместе с диспетчером линий ввода/вывода.

Клавиши управления уровнем звука будут использовать линии ввода/вывода модуля F2M03MLA.


3.2 Обзор функциональных возможностей модуля F2M03MLA


Функциональная схема модуля состоит из:

порта PCM, предназначенного для обмена речевыми данными;

SPI-порта;

UART-порта;

8 программируемых линий ввода/вывода, из которых 3 могут использоваться в качестве линий I2S интерфейса для подключения внешней памяти;

аудио интерфейса, содержащего 4 линии для входа и 4 линии для выхода аналоговых звуковых данных;

Bluetooth антенны.

4 выходных аудио линии могут использоваться для комбинированного аудио выхода, совмещающего динамики и выход для проводных наушников.

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

2 программируемых линии могут использоваться для подключения к ним клавиш управления уровнем звука.

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


3.3 Функциональная схема устройства


Таким образом, получили следующую функциональную схему устройства:

двухпроводное соединение процессора устройства и USB-порта;

8-разрядная двунаправленная мультиплексированная шина команд, адреса и данных для подключения NAND Flash памяти к управляющему микроконтроллеру устройства, линии управления работой памяти (раздел 4.5);

8-разрядная однонаправленная шина данных для выдачи процессором устройства данных LCD-дисплею, линии управления работой LCD-дисплея (раздел 4.5);

соединение модуля F2M03MLA и процессора устройства по интерфейсу SPI;

обеспечение комбинированного аудио выхода с использованием 4 аналоговых аудио линий;

обеспечение комбинированного аудио входа с использование 2 аналоговых аудио линий;

подключение к 5 программируемым линиям процессора устройства управляющих клавиш: воспроизведение, стоп, вперед, назад, пауза/меню;

подключение к 2 программируемым линиям модуля клавиш управления уровнем звука.

Полученная схема отображает передачу данных, управляющих сигналов и сигналов синхронизации между базовыми компонентами устройства, а также между самим устройством и внешним интерфейсом (USB). Функциональная схема устройства приведена на рис. 3.


Процессор

устройства

Модуль F2M03MLA

USB вход

Комбинированный аудио вход

Память

LCD-дисплей

Управляющие клавиши

Клавиши

управления

уровнем звука

2


8


ALE

CLE

OE

WE

8


RES

CS

RS

WR

RD

5


SPCK

MOSI

MISO

NPCS

2


Комбинированный аудио

выход

2


4



Рис. 3. Функциональная схема устройства

4. Разработка принципиальной электрической схемы устройства


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

Для разрабатываемого устройства необходимо реализовать:

схему соединения AT91SAM7SE с USB;

схему подключения питания к AT91SAM7SE256, F2M03MLA, NAND08GW3B2A и SG12864H;

схему подключения микрофона к F2M03MLA;

схему подключения кварцевого резонатора и PLL фильтра к AT91SAM7SE.


4.1 Расчет схемы подключения резонатора к AT91SAM7SE


Типичная схема подключения кварцевого резонатора от 3 до 20 МГц к микроконтроллеру AT91SAM7SE приведена на рис. 4.



Рис. 4. Типичное подключение кварцевого резонатора к AT91SAM7SE


Помимо резонатора требуется подключение внешнего фильтра второго порядка к PLL-входу микроконтроллера. Параметры фильтра влияют на частоту работы USB-порта устройства. Схема подключения фильтра приведена на рис. 5.



Рис. 5. PLL фильтр для AT91SAM7SE


Для обеспечения соединения с USB PLL должен быть запрограммирован на 48, 96 или 192 МГц. Чтобы обеспечить такие характеристики производитель предлагает следующие емкости и сопротивления PLL фильтра: C2=8.44 нФ, C1=76 нФ, R=980 Ом.


4.2 Расчет схемы подключения питания и USB входа к AT91SAM7SE


Atmel рекомендует следующую схему подключения питания (рис. 6):



Рис. 6. Типовая схема питания AT91SAM7SE

Во избежание пульсаций нужно использовать два конденсатора параллельно:

NPO-конденсатор 470 нФ или 1нФ – между VDDOUT и GND как можно ближе к микроконтроллеру;

X7R-конденсатор 2.2 мкФ или 3.3 мкФ – между VDDOUT и GND.

Для входа VDDIN также требуется использование входного разделительного конденсатора по возможности поближе к корпусу. Можно использовать два конденсаторы параллельно: NPO-конденсатор 100 нФ и X7R-конденсатор 4.7 мкФ.

Для подключения к USB Atmel рекомендует использовать схему, изображенную на рис. 7.



Рис. 7. Типовое соединение AT91SAM7SE c USB


Сопротивление REXT должно составлять 270 Ом. Использования линии ввода/вывода для мониторинга USB необязательно.


4.3 Расчет схемы подключения питания к F2M03MLA


Питание для F2M03MLA должно выбираться тщательно и может повлиять на уменьшение производительности модуля или даже повредить его. Производитель рекомендует использовать регулятор напряжения XC6209B332MR фирмы Torex. Напряжение должно иметь низкий уровень шума – менее чем 10мВ/мс между 0 и 10 МГц. Регулятор должен иметь время отклика не более 20 мкс.

Схема использования рекомендуемого регулятора напряжения приведена на рис. 8.



Рис. 8. Типовая схема использования XC6209x302


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


4.4 Подключение микрофона к F2M03MLA


Для подключения микрофона к модулю F2M03MLA можно использовать 2 или 4 входных аудио линии. На рис. 9 показана схема с двумя используемыми линиями.



Рис. 9. Схема подключения микрофона к модулю F2M03MLA

4.5 Расчет схем соединения AT91SAM7SE с базовыми компонентами


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

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

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

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

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

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

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

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

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

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

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

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

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

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



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


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


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


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



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


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

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

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

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

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

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

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

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

Встроенный контроллер памяти AT91SAM7SE (Static Memory Controller, 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) и драйвера устройства для операционной системы Windows XP.

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

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

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

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

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

Помимо этого есть возможность просмотра программы микроконтроллера в режиме отладки и тестирования, используя JTAG/ICE (Embedded ICE) порт и порт 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 (SAM Boot Assistant) – бесплатный загрузчик от Atmel.

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

ER-Tronic имеет понятный интерфейс и удобный редактор кода, однако совсем не имеет справки.

Другая сторона разработки устройства с точки зрения программиста – это разработка драйвера устройства.

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

Наиболее популярные из них – это NuMega Driver Studio, Jungo WinDriver и Jungo Kernel Driver.

NuMega Driver Studio – это программный комплекс, входящий в состав среды разработки Microsoft Visual Studio. NuMega Driver Studio представляет собой программу-помощника, отвечая на вопросы которого, можно получить вполне работоспособный шаблон драйвера. Для компиляции полученного кода потребуются классы и библиотеки NuMega и Microsoft DDK.

Jungo WinDriver – это программный пакет, предназначенный для разработки драйверов устройств, использующих стандарты PCI, Compact PCI, USB, ISA, ISA PnP, EISA и работающих под управлением операционных систем Windows9X/Me/NT/2000/XP. Позволяет обращаться к физической памяти, портам, устанавливать собственные обработчики аппаратных прерываний. Не требует наличия Windows DDK и программирования на уровне ядра. Используется графическая оболочка для диагностики оборудования и автоматической генерации кода на языка C/C++ или Pascal (Delphi).

Jungo Kernel Driver имеет те же характеристики, что и Jungo WinDriver. Единственное отличие в том, что этот программный пакет обеспечивает более высокую производительность и требует наличия Windows DDK. Также используется графическая оболочка для диагностики оборудования и автоматической генерации кода.


5.2 Разработка блок-схемы алгоритма управляющей программы


Управляющий микроконтроллер AT91SAM7SE имеет встроенную программу-загрузчик, которая определяет дальнейший характер его работы. Во-первых, инициализируются DBGU-порт и USB-порт микроконтроллера, затем управление передается программе-загрузчику SAM-BA.

Загрузочная последовательность представлена на рис. 13.

Успешная

инициализация

USB

Инициализация

микроконтроллера

Запуск загрузчика SAM-BA

Запуск загрузчика SAM-BA

Успешное автоматическое определение скорости передачи

Да

Нет

Нет

Да


Рис. 13. Загрузочная последовательность AT91SAM7SE


Инициализация управляющего микроконтроллера состоит из следующих этапов:

инициализация FIQ (линии быстрого прерывания);

установка стека в режим supervisor;

инициализация встроенного Flash контроллера;

обнаружение внешнего резонатора;

если не обнаружен внешний резонатор, то настройка внутреннего резонатора микроконтроллера;

переключение основной частоты устройства на главный внутренний резонатор;

копирование кода в SRAM-память;

инициализация переменных C;

инициализация PLL;

выключение сторожевого таймера, активация возможности сброса;

инициализация USB-порта;

передача управления загрузчику SAM-BA.

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

Если есть соединение по USB, то в зависимости от установок, хранящихся в энергонезависимой памяти устройства, необходимо сконфигурировать микроконтроллер для работы в качестве звуковой USB-карты или флеш-памяти.

В режиме звуковой карты управляющий микроконтроллер должен выполнять следующие действия:

получать данные от USB-порта компьютера;

передавать их дальше цифро-аналоговому преобразователю в составе модуля F2M03MLA.

В режиме флеш-памяти AT91SAM7SE должен обеспечить работу со встроенной памятью устройства.

Если нет соединения по USB, то устройство должно выполнять функции MP3-плеера, а именно:

управление при помощи управляющих клавиш;

выдача информации на LCD-дисплей;

считывание информации со встроенной памяти устройства и передача стерео кодеку в составе модуля F2M03MLA;

обеспечение возможности передачи звука на беспроводные наушники.

Таким образом, получили следующую блок-схему алгоритма управляющей программы (рис. 14).

Включение

AT91SAM7SE

Да

Нет

Считываем настройки из памяти AT91SAM7SE

Успешная

инициализация

USB

Режим

звуковой USB-карты

Да

Нет

Настройка ЦАП

модуля F2M03MLA,

передача данных

от USB-порта модулю

Настройка NAND

Flash памяти

Нет

Настройка NAND

Flash памяти,

стерео кодека

модуля F2M03MLA,

прерываний модуля F2M03MLA,

LCD-дисплея,

прерываний AT91SAM7SE


Работа в качестве

MP3-плеера

Работа в качестве

съемного диска


Работа в качестве

звуковой карты



Рис. 14. Блок-схема алгоритма управляющей программы


Работа в качестве звуковой карты, съемного диска или MP3-плеера представляет собой отдельные блоки в прошивке управляющего микроконтроллера.


5.3 Разработка шаблона драйвера устройства


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

Интуитивно ясно, что должна существовать какая-то программная прослойка между аппаратным и программным обеспечением, выполняющая “согласующие” и “унифицирующие” действия. Эта прослойка работает напрямую с аппаратурой, а прикладное и системное программное обеспечение имеет дело только с этой интерфейсной прослойкой. Этой программной прослойкой являются драйвера устройств.

Рассмотрим внутреннюю организацию шины USB.

Система USB подразделяется на три логических уровня с определенными правилами взаимодействия. Устройство содержит интерфейсную, логическую и функциональную части. Все передачи инициируются хостом, а периферийные устройства могут лишь реагировать на его запросы. Хост также делится на три части – интерфейсную, системную и программное обеспечение.

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

Уровень клиентского программного обеспечения в хосте обычно представляется драйвером устройства.

Логическое устройство USB представляет собой набор независимых конечных точек, с которыми клиентское программное обеспечение обменивается информацией. Каждому логическому устройству USB назначается свой адрес, уникальный на данной шине USB. Каждая конечная точка характеризуется своим номером и направлением передачи.

Транзакция на шине USB – это последовательность обмена пакетами между хостом и периферийным устройством, в ходе которой может быть передан или принят один пакет данных. Когда клиентское программное обеспечение передает запрос уровню системного драйвера, USB-драйвер преобразует его в одну или несколько транзакций шины и затем передает получившийся перечень транзакций контроллеру хоста.

Хост контроллер передает данные периферийному устройству в виде кадров. Каждая передача состоит из одной или нескольких транзакций. Каждая транзакция состоит из пакетов. Каждый пакет состоит из идентификатора пакета, данных и контрольной суммы.

Существует четыре различных типа передачи:

управляющие передачи – для конфигурирования устройства во время подключения, для управления устройство и получения статусной информации в процессе работы;

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

передачи по прерываниям – передача одиночных пакетов данных небольшого размера за ограниченное время;

изохронные передачи – для обмена данными в реальном времени, имеют наивысший приоритет.

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

Запрос к устройству и его параметры передаются в виде конфигурационного пакета. Стандартные запросы к устройству – это:

получение состояния (GET_STATUS) – позволяет определить состояние устройства, интерфейса или конечной точки;

сброс свойства (CLEAR_FEATURE) – для запрета свойства или состояния;

разрешение свойства (SET_FEATURE);

задание адреса на шине (SET_ADDRESS) – для присвоения устройству адреса;

получение дескриптора (GET_DESCRIPTOR) – для получения дескриптора устройства, конфигурации или точки;

передача дескриптора (SET_DESCRIPTOR) – позволяет дополнить существующий дескриптор или добавить новый дескриптор устройства, конфигурации или строки;

получение кода конфигурации (GET_CONFIGURATION) - устройство выдает код своей текущей конфигурации;

задание кода конфигурации (SET_CONFIGURATION) – позволяет задать устройству новую конфигурацию.

Дескриптор устройства – это структура данных или форматированный блок информации, который позволяет хосту получить описание устройства.

Стандартный дескриптор устройства содержит основную информацию об USB-устройстве и его конфигурациях. Устройство должно иметь только один такой дескриптор, однако если устройство может работать в нескольких режимах (на разных скоростях), то оно должно иметь еще и уточняющий дескриптор.

Дескриптор конфигурации содержит информацию об одной из возможных конфигураций устройства.

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

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

Дескриптор строки (необязателен) содержит текст в формате UNICODE.

Также могут быть использованы специфические дескрипторы.

В Windows 2000/XP драйверная поддержка реализуется на основе WDM. С точки зрения WDM существует три типа драйверов:

драйвер шины – для обслуживания шины;

функциональный драйвер – основной драйвер устройства;

драйвер фильтра – для поддержания дополнительной функциональности устройства.

Основные процедуры драйвера WDM – это:

DriverEntry – точка входа драйвера;

AddDevice – создание объекта драйвера;

UnLoad – для возможности выгрузки драйвера без перезагрузки системы;

Модель WDM предоставляет следующие типы устройств:

Hub Device (hubclass.sys) – хабы (устройство, обеспечивающее дополнительные порты на шине USB) ;

HID (Human Interface Device) Device (hidclass.sys) – мыши, клавиатуры, джойстики;

Audio Device (sysaudio.sys) – звуковые колонки, виртуальные MIDI-устройства;

Mass Storage Device (usbstor.sys) – устройства хранения данных, флеш-диски;

Printer (usbprinter.sys) – принтеры;

Communication Device (usb8023.sys, mdismp.sys) – устройства коммуникации (модемы, сетевые карты).

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

При разработке драйвера устройства использовалась программная среда NuMega Driver Studio 2.0, а также классы драйверов устройств и библиотеки в составе Windows 2000 DDK.

После установки Visual Studio появляется дополнительное окно с возможностями запуска помощника создания драйвера, запуска помощника создания сетевого драйвера, изменения переменных окружения и компиляции с помощью утилиты Build из DDK.

Библиотека классов Driver Studio представляет собой надстройку над чистым WDM API, что избавляет программиста от использования довольно запутанных низкоуровневых функций и позволяет выполнять все необходимые операции. Базовым классом устройства является класс KDriver, который предоставляет базовые функции драйвера. Для управления оборудованием используется класс KDevice, который обрабатывает запросы на чтение/запись к устройству. Класс KIrp представляет собой оболочку для структуры пакета запроса. Класс KRegistryKey позволяет обращаться к данным драйвера, сохраненным в реестре.

Собственно для работы с USB-устройствами предназначены следующие классы:

KUsbInterface – предоставляет функции для работы с USB-интерфейсами, драйвер может создавать столько интерфейсов, сколько их описано в дескрипторе устройства;

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

Принцип работы с этими классами следующий:

в конструкторе экземпляра KDriver создается экземпляр класса KPnpDevice (для поддержки Plug-n-Play);

в конструкторе экземпляра KPnpDevice создаются экземпляры классов – KUsbLowerDevice (базовый класс для устройств нижнего уровня), KUsbInterface, KUsbPipe;

в функции драйвера OnStartDevice выполняется активизация одной из точек конфигурации при помощи вызова функции m_Lower.ActivateConfiguration();

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

Для создания шаблона драйвера нужно создать проект и выбрать архитектуру создаваемого драйвера (WDM или Windows NT 4.0). Выбираем модель WDM. Теперь необходимо выбрать шину, на которой будет располагаться устройство. Выбираем шину USB. Для USB-устройства необходимо указать идентификатор производителя (USB Vendor ID) и идентификатор продукта (USB Product ID), они должны соответствовать значениям в дескрипторе устройства.

Указанные значения идентификаторов будут записаны в inf-файл.

Следующий шаг – задание набора конечных точек. У управляющего микроконтроллера 8 конечных точек.

Теперь необходимо выбрать функции драйвера. Возможные варианты – Read (обработка запросов на чтение), Write (обработка запросов на запись), Flush (поддержка функции сброса буферов), Device Control (поддержка пользовательских запросов), Internal Device Control (обработка запросов от других драйверов) и Cleanup (обработка запросов на очистку буферов обмена).

Драйвер для режима звуковой карты должен иметь только функцию Write. А драйвер для режима флеш-диска должен иметь функции Read и Write.

Следующий шаг – выбор способа обработки запросов:

None – запросы не буферизуются в очереди;

Driver Managed – драйвер содержит одну или более очередей, в которых хранятся запросы ввода/вывода;

System Managed – драйвер использует только одну очередь сообщений.

Выберем для обоих драйверов – System Managed.

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

Последний шаг – задание кодов функции Device Control и задание дополнительных настроек – создание тестового приложения для драйвера (необязательно), настройки отладки и создания лога событий.

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

Для доработки шаблона драйвера требуется дописать функции ввода/вывода и по необходимости расширить список интерфейсов каждого драйвера.

Рассмотрим процесс установки драйвера.

Скомпилировав проекты получим два драйвера – AT91UsbSounCard и AT91UsbMassStorage.

Теперь подключив устройство в режиме звуковой карты, нужно установить драйвер AT91UsbSounCard, указав путь к файлу AT91UsbSounCard.inf и файлу самого драйвера. Система обнаружит драйвер и установит его.

Аналогично в режиме флеш-диска нужно установить драйвер AT91UsbMassStorage.

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

Тексты проекты шаблонов драйверов приведены в приложении.


5.4 Возможности расширения функциональности устройства


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

Осуществить программную модификация данного устройства очень просто: подключаете устройство к USB-порту компьютера и при помощи программы-загрузчика “заливаете” новую прошивку.

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

К таким возможностям относится расширение Bluetooth профилей устройства за счет перепрошивки модуля F2M03MLA, например, реализация возможности передачи файлов по Bluetooth (производители модуля в скором времени планируют реализовать эту возможность). Для драйвера можно разработать утилиту для управления характеристиками устройства.

6. Конструкторская часть


6.1 Обзор средств разработки печатных плат


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

На начальном этапе распространения в нашей стране САПР электронной аппаратуры на персональных компьютерах наибольшее распространение получили пакеты программ PCAD и OrCAD. Оба пакета решали примерно одинаковые задачи: графический ввод принципиальных схем и разработка печатных плат, моделирование цифровых устройств и проектирование программируемых логических интегральных схем (ПЛИС).

Пакет PCAD на некоторое время стал фактическим стандартом на промышленных предприятиях, обеспечивая выпуск конструкторской и технологической документации.

Однако со временем ситуация изменилась.

Появились новых версий старых систем проектирования печатных плат, причем часть из них претерпела значительные изменения.

Наилучших результатов добилась компания Mentor Graphics, развивающая линии продуктов Expedition PCB и PADS PowerPCB. Ключом к успеху компании явилась ориентация на современные интегрированные среды проектирования для Windows.

Пакет Expedition PCB представляет сейчас наиболее мощное решение в области проектирования плат. Основу системы составляет среда AutoActive, позволяющая реализовать такие функции, как предтопологический анализ целостности сигналов, интерактивная и автоматическая трассировка с учетом требований высокочастотных плат и специальных технологических ограничений, накладываемых использованием современной элементной базы.

Другой продукт компании Mentor, система PADS PowerPCB предлагает более дешевое решение. Эта система может похвастаться лучшим автотрассировщиком BlaseRouter, поддерживающим все необходимые при трассировке высокочастотных плат функции. Пакет имеет модули предтопологичекого и посттопологического анализа, тесно взаимодействующих с системой контроля ограничений.

Далее по мощности предлагаемых решений идет компания Cadence. Для верхнего уровня проектирования предлагается пакет PCB Design Studio, а в качестве редактора печатных плат здесь используется программа Allegro, позволяющая разрабатывать многослойные и высокоскоростные платы с высокой плотностью размещения компонентов. В качестве штатного модуля авторазмещения и автотрассировки здесь используется программа SPECCTRA, управляемая обширным набором правил проектирования и технологических ограничений. Анализ электромагнитной совместимости топологии платы выполняется с помощью специального модуля SPECCTRAQuest SI Expert, для предварительного анализа проекта и подготовки наборов правил проектирования используется модуль SigXplorer.

Другой продукт компании Cadence, пакет OrCAD рекомендуется как более легкое и дешевое решение для проектирования печатных плат. В последнее время продукт почти не развивается.

Третьим производителем САПР печатных плат можно назвать австралийскую компанию Altium, развивающую пакет Protel DXP. Этот пакет обеспечивает сквозной цикл проектирования смешанных аналого-цифровых печатных плат с использованием программируемой логики фирм Xilinx и Altera. Весь инструментарий реализован на базе интегрированной среды проектирования Design Explorer, работающей под управлением операционной системы Windows XP. К имевшимся ранее средствам посттопологического анализа целостности сигналов (Signal Integrity) добавилась возможность выполнять предтопологический анализ. Но главным новшеством системы Protel DXP должен был стать топологический автотрассировщик Situs, призванный реализовать новый подход к автоматической разводке плат.

На фоне полной мобилизации усилий на разработку пакета Protel DXP компания Altium продолжает развивать свой второй пакет проектирования печатных плат PCAD. Эта система остается достаточно популярной в России, что скорее определяется привязанностью наших разработчиков к названию PCAD.

Программный пакет PCAD представляет собой набор следующих модулей:

Schematic – редактор принципиальных схем с возможностью использования иерархических структур;

РСВ – редактор топологий, поддерживает до 999 слоев, 11 из которых являются постоянными, в то время как остальные могут распределяться конструктором на сигнальные, экранные и несигнальные вспомогательные; трассировка может выполняться с помощью богатого набора интерактивного инструментария;

Library Executive – менеджер библиотек с интегрированной элементной базой, содержащей информацию о корпусах, условно-графических обозначениях и связи между ними.

Новая версия P-CAD 2004 позиционируется как средство комплексной разработки высокоскоростных систем на базе печатных плат и включает следующие новинки:

новый схемотехнический редактор с поддержкой многоканальных иерархических принципиальных схем;

новый автотрассировщик, основанный на топологическом алгоритме;

новый инструментарий интерактивной трассировки;

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

PCAD-2004 отличается удобством ведения проекта и мощными средствами навигации. Также реализованы возможности трассировки дифференциальных пар и полная интеграция со средствами разработки систем на базе ПЛИС, микроконтроллеров и микропроцессоров различных архитектур.


6.2 Разработка печатной платы устройства


При разработке печатной платы использовалась система автоматического проектирования PCAD-2004.

Сначала была создана база компонентов, используемых в разрабатываемом устройстве, описаны посадочные места и составлены условно-графические изображения компонентов. Для создания библиотеки элементов была использована утилита Library Executive, входящая в состав PCAD-2004.

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

Приведем размеры некоторых используемых компонентов (табл. 4):


Таблица 4. Размеры используемых элементов

Элемент

Размеры, мм

AT91SAM7SE256

22 * 16

F2M03MLA

18.6 * 13.2

NAND08GW3B2A

12 * 20

SG12864H

75 * 52.7

MAX1811

6.2 * 5

Чип-резистор R 0805

1 * 2

USB вход типа А

12 * 20


Очевидно, что использование реальных размеров элементов проблематично, поэтому для удобства выберем масштаб 1:50.

После того как была создана библиотека компонентов, ее нужно подключить в других утилитах, а именно Schematic Editor и PCB, отвечающих за создание принципиальной электрической схемы и чертежа печатной платы разрабатываемого устройства.

После создания схемы подбираем формат для схемы, основываясь на ее размерах и необходимости использования не менее 60% выбранного формата. Для данной схемы подходит формат A1.

После создания принципиальной электрической схемы и проверки её на наличие ошибок генерируем список цепей при помощи пункта меню UtilsGenerate NetList. Список цепей сохраняется в файл, который затем нужно открыть в PCAD PCB при помощи пункта меню UtilsLoad NetList.

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

Для трассировки печатной платы нужно воспользоваться в PCAD PCB пунктом меню RouteAutorouters.

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

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

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

7. Экономическая часть


7.1 Расчёт себестоимости устройства


7.1.1 Определение единовременных затрат

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

Единовременные затраты связаны с проектированием. Устройство разрабатывается одним инженером-проектировщиком и одним инженером-программистом.

Этапы и производительность работ инженера–проектировщика указаны в табл. 5.


Таблица 5. Этапы работы инженера–проектировщика

Номер этапа

Название этапа

Время, мес.

1

Получение технического задания, уяснение цели

0.2

2

Разработка технического предложения,работа с литературой

0.5

3

Разработка технического проекта

0.5

4

Разработка рабочего проекта

1

5

Разработка программы

1

6

Отладка

0.5


Итого

3.7


Этапы и производительность работ инженера–программиста указаны в табл. 6.


Таблица 6. Этапы работы инженера–программиста

Номер этапа

Название этапа

Время, мес.

1

Получение тех. задания, уяснение цели

0.2

2

Разработка алгоритма

0.5

3

Написание программы

1

4

Отладка

0.3


Итого

2.0


Средняя зарплата обоих специалистов составляет 15 000 руб.

Накладные расходы составляют 80% от заработной платы инженеров.

В итоге единовременные затраты, затраты на проектирование платы контроллера составят:


ЕЗ = (15000.00 * 0.8 + 15000.00) * 3.7+(15000.00 * 0.8 + 15000.00) * 2.0 = 153900 руб.


7.2 Расчёт заработной платы


7.2.1 Расчёт основной заработной платы

Для расчета основной заработной платы подсчитаем время, которое рабочий затратил на изготовление одного изделия (22 часа) и умножим на стоимость одного нормочаса Снч.


Рсд = Снч * Тшт, где Снч = 50 руб.

ЗПосн =  Рсд * (1+П/100) * (1+R/100),


где ЗПосн – основная заработная плата;

П – премия выплачиваемая рабочему, равная 25%;

R – районный коэффициент, равный 15%.


ЗПосн = 22 * (1+25/100) * (1+15/100) = 52.80 руб.


7.2.2 Расчет дополнительной заработной платы

Дополнительная заработная плата берется от основной заработной платы:


ЗПдоп=ЗПосн(Н/100),


где ЗПдоп – дополнительная заработная плата;

ЗПосн – основная заработная плата; Н - норматив 15%.


ЗПдоп = 52.80 * (15/100) = 7.92 руб.


7.3 Расчет материальных затрат


7.3.1 Расчет стоимости комплектующих изделий

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


Таблица 7. Стоимость комплектующих изделий

Наименование

изделия

Марка изделия

Кол-во

Цена 1 шт., руб.

Микросхема

AT91SAM7SE256

1

219.18

Микросхема

F2M03MLA

1

1560.00

Микросхема

NAND08GW3B2A


320.00

ЖК дисплей

SG12864H

1

1534.92

Микросхема

MAX1811

1

44.20

Микрофон

HMO0603A

1

23.72

Динамик

LPB 2515

2

73.03

USB вход

USB A-1J

1

7.37

Аудио вход 3.5 мм

Гн. 3.5 стерео 5 конт.металл

2

6.17

Кварцевый резонатор

DT-38T

1

5.60

Чип-резистор 0805

R0805 16k7, R0805 330k,

R0805-5 10k, R0805-5 1k,

R0805-5 27R

17

0.30

NPO чип-

конденсатор

NPO 0805 100 нФ,

NPO 0805 1 нФ,

NPO 0805 47 нФ,

NPO 0805 15 пФ,

NPO 0805 8.44 нФ,

NPO 0805 76 нФ

10

0.30

X7R чип-

конденсатор

X7R 0805 4.7 мкФ,

X7R 0805 3.3 нФ,

X7R 0805 0.1 мкФ

4

0.30

Клавиатурный

кнопочный

переключатель

SKHHAJ

7

4.63

Кнопка вкл/выкл

SK-22D02-PG7

1

10.54

Аккумулятор

BAT-MOTZ3

1

309.40

Светодиод

AL-314B5C

1

8.10


Итого: 3053.33 руб.


Стоимость изделия существенно сокращается при оптовых закупках комплектующих. Скидка при оптовых закупках на данные радиоэлементы составляет в среднем 30%, а на чип-резисторы и чип-конденсаторы – 50%. То есть при условии промышленного изготовления расходы на основные комплектующие составят 2137.33 руб.


7.3.2 Расчет стоимости вспомогательных материалов

Стоимость вспомогательных материалов (Свсп) определяется по формуле:


СвспРкг,


где М – масса материала в килограммах;

Ркг – расценка-стоимость одного килограмма.

Расчет стоимости вспомогательных материалов для устройства контроллера приведен в табл. 8.


Таблица 8. Стоимость вспомогательных материалов

Материал

Масса, кг

Ркг, руб./кг

Стоимость, руб.

Припой ПОС-61

0.07

60

4.2

Флюс КЭ2

0.015

25.2

0.378

Спирт этиловый

0.030

2.4

0.072

Спирто-бензиновая смесь

0.14

3

0.42

Итого



5.07

Таким образом, суммарные материальных затраты равны:


Сматвспкомпл,


где Свсп – стоимость вспомогательных материалов;

Скомпл – стоимость комплектующих изделий.


Смат = 2137.33 + 5.07 = 2142.40 руб.


7.3.3 Расчет отчислений на социальные нужды

Отчисления на социальные нужды вычисляются относительно основной и дополнительной заработной платы:


Осц=(ЗПосн+ЗПдоп) Нсц/100,


где ЗПосн – основная заработная плата; ЗПдоп – дополнительная заработная плата; Нсц – норматив отчислений на социальные нужды 39,5%.


Осц=(52.80 + 7.92) * 40/100 = 24.29 руб.


7.3.4 Расчет цеховых, общезаводских расходов. Расход заводской себестоимости

Цеховые расходы находятся по формуле:


ЦР=(ЗПосн+ЗПдоп) * Нцр/100,


где Нцр – норматив цеховых расходов 120%.


ЦР=(52.80 + 7.92) * 120/100 = 72.86 руб.


Общезаводские расходы берутся от суммы основной и дополнительной заработной платы:


ЗР = (ЗПосн+ЗПдоп) * Нзр/100,


где Нзр – норматив общезаводских расходов 350%.


ЗР = (52.80 + 7.92) * 350/100 = 212.52 руб.


Заводская себестоимость определяется как сумма материальных затрат (Смат), основной и дополнительной заработной платы (ЗПосн, ЗПдоп), отчислений на социальные нужды (Осц), цеховых и заводских расходов (ЦР, ЗР):


Сзавмат+ЗПосн+ЗПдопсц+ЦР+ЗР.

Сзав = 2142.40 + 52.80 + 9.72 + 24.92 + 72.86 + 212.52 = 2515.22 руб.


7.4 Расчет полной себестоимости


Полная себестоимость определяется по формуле:


Сп = Сзав * (1+В/100),


где В – процент внепроизводственных расходов, равный 5%


Сп = 2515.22 * (1+5/100) = 2640.98 руб.

8. Экологическая часть


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

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

Администрация проводит работу по обеспечению безопасности труда совместно или по согласованию с комитетом профсоюза. Ее представители вместе с профсоюзным активом осуществляет административно-общественный контроль за состоянием условий и безопасности труда на рабочих местах. Специалисты контролируют безопасность оборудования и технологических процессов, обеспечивает их соответствие требованиям и нормам охраны труда.

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


8.1 Анализ опасных и вредных производственных факторов и их влияние на оператора


Факторы производственной среды оказывают существенное влияние на функциональное состояние и работоспособность оператора. Существует разделение производственных факторов на опасные и вредные.

Опасный производственный фактор производственный фактор, воздействие которого на работающего в определенных условиях приводит к травме или другому внезапному резкому ухудшению здоровья.

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

Приведем опасные и вредные факторы, воздействующие на оператора при эксплуатации системы, используя ГОСТ 12.0.003-74 "Опасные и вредные производственные факторы. Классификация". Опасные и вредные производственные факторы подразделяются по природе действия на следующие группы (будем приводить конкретные группы факторов и факторы, которые непосредственно воздействуют на оператора):

физические;

психофизические.

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

К опасным факторам при эксплуатации системы (т.е. при работе с ЭВМ) можно отнести различные экстремальные ситуации, следствием которых является резкое ухудшение здоровья оператора. Такими факторами являются в основном:

возникновение пожара (например, возгорание монитора);

нарушение изоляции токоведущих частей.

К вредным производственным факторам можно отнести следующие:

повышенный уровень шума на рабочем месте;

неблагоприятный микроклимат;

повышенный уровень электромагнитных излучений;

недостаточность естественного света;

повышенный уровень ионизирующих излучений в рабочей зоне;

повышенный уровень статического электричества;

повышенный уровень ультрафиолетовой радиации;

повышенный уровень инфракрасной радиации.

Психофизические опасные и вредные производственные факторы по характеру действия подразделяются:

физические перегрузки (статические и динамические);

нервно-психические перегрузки (умственное напряжение и перенапряжение, монотонность труда, эмоциональные перегрузки, утомление, эмоциональный стресс, эмоциональная перегрузка).

Рассмотрим эти факторы поподробнее.


8.1.1 Повышенный уровень шума на рабочем месте

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

С физиологической точки зрения шумом является всякий нежелательный, неприятный для восприятия человека шум. Шум ухудшает условия труда, оказывая вредное воздействие на организм человека. При длительном воздействии шума на организм человека происходят нежелательные явления:

снижается острота зрения, слуха;

повышается кровяное давление;

понижается внимание.

Сильный продолжительный шум может быть причиной функциональных изменений сердечно-сосудистой и нервной систем, что приводит к заболеваниям сердца и повышенной нервозности.

Ухо человека воспринимает звуковые колебания с частотой от 16 до 20000 Гц. Звуки с частотой ниже 16 Гц называют инфразвуками, а выше 20000 Гц - ультразвуками. Инфразвуки и ультразвуки также воздействуют на человека, но он их не слышит.

В зависимости от условий работы уровень звукового давления оценивается по двум методам:

нормирование по предельному спектру шума;

нормирование уровня звука.

Первый метод нормирования является основным для постоянных шумов и выражается в децибелах среднеквадратичных звуковых давлений в восьми октавных полосах частот со среднегеометрическими частотами 63, 125, 250, 500, 1000, 2000, 4000, 8000 Гц.

Второй метод нормирования общего уровня шума, измеряемого по шкале А шумомера, называемого уровнем звука, в дБА, используется для ориентировочной оценки постоянного и непостоянного шума.

Постоянный шум - уровень звука за восьмичасовой рабочий день изменяется не менее чем на 5 дБА. Такой шум подразделяется на:

колеблющийся во времени;

прерывистый;

импульсный.

Гигиенические нормы допустимых уровней звукового давления и уровня звука на рабочих местах приводятся в СН 245-71, в СанПиН 2.2.2.542-96 “Гигиенические требования к видеодисплейным терминалам, персональным электронно-вычислительным машинам и организации работы”.

Для измерения шума применяют отечественные шумомеры Ш-63, Ш-70, прибор ИШВ-1 в комплекте с октавными фильтрами, а для анализа шума используется спектрометр типа С34. Применяются также и зарубежные приборы для измерения шума: акустические комплекты фирм РГТ (Германия) и Брюль и Къер (Дания).


8.1.2 Неблагоприятный микроклимат

Значительным физическим фактором является микроклимат рабочей зоны, особенно температура и влажность воздуха. Человек постоянно находится в процессе теплового взаимодействия с окружающей средой. Исследования показывают, что высокая температура в сочетании с высокой влажностью воздуха оказывает большое влияние на работоспособность оператора. Увеличивается время реакции оператора ЭВМ, нарушается координация движений, резко увеличивается число ошибочных действий. Высокая температура на рабочем месте оператора отрицательно влияет на психологические функции: понижается внимание, уменьшается объем оперативной памяти, снижается способность к ассоциациям.

Пониженная влажность воздуха отрицательно сказывается на состоянии кожного покрова человека: кожа теряет влагу, становится сухой и шершавой. При пониженной влажности ощущается сухость во рту, появляется жажда.

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

В производственных помещениях, в которых работа на ВДТ и ПЭВМ является вспомогательной, температура, относительная влажность и скорость движения воздуха на рабочих местах должны соответствовать действующим санитарным нормам микроклимата производственных помещений (СанПиН 2.2.2.542-96 “Гигиенические требования к видеодисплейным терминалам, персональным электронно-вычислительным машинам и организации работы”).


8.1.3 Повышенный уровень излучений

Электромагнитным излучением называется излучение, прямо или косвенно вызывающее ионизацию среды. Контакт с электромагнитными излучениями представляет серьезную опасность для человека.

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

Спектр излучения компьютерного монитора включает в себя рентгеновскую, ультрафиолетовую и инфракрасную области, а также широкий диапазон электромагнитных волн других частот. В ряде экспериментов было обнаружено, что электромагнитные поля с частотой 60 Гц (возникающие вокруг линий электропередач, видеодисплеев и даже внутренней электропроводки) могут инициировать биологические сдвиги (вплоть до нарушения синтеза ДНК) в клетках животных. В отличие от рентгеновских лучей электромагнитные волны обладают необычным свойством: опасность их воздействия совсем не обязательно уменьшается при снижении интенсивности облучения, определенные электромагнитные поля действуют на клетки лишь при малых интенсивностях излучения или на конкретных частотах - в “окнах прозрачности”. Источник высокого напряжения компьютера - строчный трансформатор - помещается в задней или боковой части терминала, уровень излучения со стороны задней панели дисплея выше, причем стенки корпуса не экранируют излучения. Поэтому пользователь должен находиться не ближе чем на 1.2 м от задних или боковых поверхностей соседних терминалов. Напряженность электростатического поля в рабочей зоне достигает 85-63 кВ/м при нормируемой 20 кВ/м. Воздействие электростатических полей в сочетании с пониженной влажностью воздуха, которая воздается при работе дисплея, может вызвать заболевание кожи лица и кистей рук в виде сыпи, покраснения, зуда и шелушения.

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

Конструкция ВДТ и ПЭВМ должна обеспечивать мощность экспозиционной дозы рентгеновского излучения в любой точке на расстоянии 0,05 м. от экрана и корпуса ВДТ при любых положениях регулировочных устройств не должна превышать 7,74х10 А/кг, что соответствует эквивалентной дозе, равной 0,1 мбэр/час (100 мкР/час).

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

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

При статической электризации напряжение относительно земли достигает десятков, а иногда и сотен тысяч вольт. Значения токов при этих явлениях составляют, как правило, доли микроампера (0.0001-1мА). Человек начинает ощущать ток величиной 0.6-1.5мА. По ГОСТ 12.1.038-82 (Электробезопасность. Предельно допустимые значения напряжений прикосновения и токов.) напряжение электрического тока не должно превышать 42В в помещениях без повышенной опасности.


8.1.4 Недостаточность освещения

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

Из общего объема информации человек получает через зрительный канал около 90%. Качество поступающей информации во многом зависит от освещения: неудовлетворительное количественно или качественно оно не только утомляет зрение, но и вызывает утомление организма в целом. Освещение оказывает влияние на эргономику зрения. Рабочее место должно быть организовано таким образом, чтобы не возникали блики и отражения на мониторе, клавиатуре, на рабочей поверхности. При использовании специальных фильтров для устранения отражений и бликов может ухудшиться качество изображения. Во избежание этого следует найти другие способы устранения (встроенные фильтры, устранение источников бликов и отражений и т.д.).

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

Уровни яркости освещения во всех участках поля зрения оператора должны быть примерно одинаковыми во избежании напряжения зрения. Переход от одной яркости поля зрения к другой вызывает так называемую адаптацию зрения. Различают световую (от малой яркости к большой) и темповую (от большой яркости к малой) адаптацию. В неблагоприятных условиях время адаптации, особенно темповой, может длиться минутами и стать причиной несчастного случая. Чтобы время адаптации было малым, наблюдаемые первичная и вторичная яркости должны отличаться не более чем в 3-5 раз.

Согласно действующим санитарным нормам СНиП 11-4.79 (с изменениями 1985 года) для искусственного освещения регламентирована наименьшая допустимая освещенность рабочих мест, а для естественного и совмещенного - коэффициент естественной освещенности (КЕО). Требования к освещению для индивидуального восприятия оператором информации с двух разных носителей - с экрана дисплея и документа на бумаге различаются.

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

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

Рекомендуемые соотношения яркостей в поле зрения следующие

между экраном и документом 1:5 - 1:10;

между экраном и поверхностью рабочего стола 1:5;

между экраном и клавиатурой, а также между клавиатурой и документом – не более 1:3;

между экраном и окружающими поверхностями 1:3 - 1:10.

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

Следует ограничивать отраженную блесткость на рабочих поверхностях (экран, стол, клавиатура и др.) за счет правильного выбора типов светильников и расположения рабочих мест по отношению к источникам естественного и искусственного освещения, при этом яркость бликов на экране ВДТ и ПЭВМ не должна превышать 40 кд/кв.м и яркость потолка, при применении системы отраженного освещения, не должна превышать 200 кд/кв.м.

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

Освещенность на поверхности стола в зоне размещения рабочего документа должна быть 300 - 500 лк. Допускается установка светильников местного освещения для подсветки документов. Местное освещение не должно создавать бликов на поверхности экрана и увеличивать освещенность экрана более 300 лк.

Яркость светильников общего освещения в зоне углов излучения от 50 до 90 градусов с вертикалью в продольной и поперечной плоскостях должна составлять не более 200 кд/кв.м, защитный угол светильников должен быть не менее 40 градусов.

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

8.1.5 Перегрузки эмоциональные и умственные

При умственной работе изменяются обменные процессы, не выше 10-15%. При умственной работе требуется значительное нервно-эмоциональное напряжение, при этом возможны значительные изменения кровяного давления, пульса, повышение уровня сахара в крови. Такой характер изменений показателен для работников различных пультов управления.

Характеризуя изменения состояния человека при умственной работе, можно констатировать, что качественные изменения при всех видах работ одинаково. Различны лишь интенсивность процессов и изменения показателей деятельности.

8.1.5.1 Утомление. Различают быстрое утомление и медленное. Быстрое утомление наступает в результате большой физической работы и напряжения. Медленное утомление характеризуется снижением работоспособности в результате чрезмерно длительной и монотонной работы.

Хроническое переутомление определяется следующими признаками:

ощущение переутомления до начала работы;

повышенной раздражительностью;

снижением интереса к работе;

снижением аппетита;

потерей веса;

нарушением сна;

кошмарными снами.

При хронической утомляемости возможны:

тошнота;

тремор вытянутых рук;

пониженное артериальное давление.

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

8.1.5.2 Монотонность. Различают два вида монотонности:

за счет информационной перегрузки одних и тех же нервных центров в результате поступления большого объема одинаковых сигналов при многократном повторении и единообразных движений;

из-за постоянства информации и недостатке новой информации.

Меры по снижению влияния монотонности:

каждая операция должна быть содержательной, ее длительность должна быть не менее 30 сек; число элементов операций должно быть не менее 5;

осуществлять перевод персонала с одной операции на другую;

необходимо применять оптимальные режимы труда и отдыха в течение рабочего дня;

соблюдать эстетичность производства.

8.1.5.3 Стресс. При стрессе вся деятельность организма сопровождается усилением функций различных систем человеческого организма: слуха, зрения, мышц.

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


8.1.6 Возникновение пожара

Пожары представляют особую опасность, так как сопряжены с большими материальными потерями. Характерная особенность данного здания - небольшие площади помещений.

Пожарная безопасность объекта должна обеспечиваться системами предотвращения пожара и противопожарной защиты. Помещение здания ОАО “Элара” относится к категории Д (не пожароопасных) В этих помещениях нет легко воспламеняющихся, самовозгорающихся и взрывчатых веществ, мощных электроустановок и искрящегося оборудования, механизмов с движущимися частями, износ и коррозия которых могли бы привести к пожару. Все основные причины возникновения пожаров практически исключены, но это не является причиной пренебрежения пожарной безопасностью. Пожар может возникнуть и от внешних источников. Поэтому некоторые меры должны быть приняты:

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

обеспечение правильных путей эвакуации;

наличие огнетушителей и пожарной сигнализации;

соблюдение всех противопожарных требований к системам отопления и кондиционирования воздуха.

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

Есть 5 степеней огнестойкости (и 3 дополнительных). Первая степень огнестойкости указывает на то, что огнестойкость здания 2.5 часа.

Опасными факторами пожаров являются:

пламя, искры характеризующиеся количеством теплового потока на единицу поверхности;

повышенная температура. Человек начинает ощущать боль от теплового воздействия при температуре поверхности более 45 С;

повышенная концентрация СО + другие токсичные продукты горения; концентрация до 3% может привести к потери сознания, до 10% – смерть;

пониженная концентрация кислорода в воздухе с 17% - головокружение, с 13% - головные боли, с 9% - потеря сознания, с 6% - смерть.

8.1.7 Нарушение изоляции токоведущих частей

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

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


8.2 Мероприятия по устранению опасных и вредных производственных факторов


8.2.1 Организационные мероприятия

К организационным мероприятиям относятся:

инструктажи по технике безопасности;

медицинский осмотр;

контроль;

аттестация рабочих мест;

организация производства.

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

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

Перед допуском к самостоятельной работе вновь поступивших на работу, а также для переводимых с одной работы на другую непосредственный руководитель работ проводит первичный инструктаж на рабочем месте. Этот инструктаж проводят по инструкциям, разработанным, разработанным для программистов. После первичного инструктажа и проверки знаний программист первые 2-14 смен проходит стажировку, т. е. выполняет работу под наблюдением мастера или бригадира, после чего допускается к самостоятельной работе. Разрешение на самостоятельную работу фиксируют датой и подписью инструктирующего и инструктируемого в журнале регистрации инструктажа.

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

Внеплановый инструктаж проводят при изменении правил по охране труда: изменении технологического процесса, замене или модернизации оборудования; нарушение работниками требований и инструкций безопасности труда, которые могут привести или привели к травме, аварии, взрыву или пожару. Этот инструктаж проводят индивидуально или с группой работников в объеме первичного инструктажа на рабочем месте. О проведении внепланового инструктажа, так же как и остальных видов инструктажа, делается запись в журнале регистрации инструктажа с подписью инструктируемого и инструктирующего, с указанием причины, вызвавшей его проведение.

Для своевременного выявления возможных нарушений здоровья и профилактики проводятся периодические медицинские осмотры операторов в соответствии с приказом Минздрава номер 555, с обязательным участием окулиста. Операторам с нарушением зрения должны назначаться корректирующие очки с учетом рабочего расстояния от глаз до экрана. Следует помнить, что предотвратить болезнь легче, чем лечить ее. Необходимо обращаться за медицинской помощью к специалистам при первых признаках синдрома длительных статических нагрузок. Сигналами опасности являются перенапряжение мышц, боли, болезненные и напряженные ощущения в запястьях, руках, плечах и шее, онемение и покалывание, мышечные судороги. В связи с этими мероприятиями установлены следующие требования к организации медицинского обслуживания пользователей ВДТ и ПЭВМ (в соответствии с СанПиН 2.2.2.0-94):

профессиональные пользователи ВДТ и ПЭВМ должны проходить обязательные предварительные (при поступлении на работу) и периодические медицинские осмотры в порядке и в сроки, установленные Министерством здравоохранения Российской Федерации;

к непосредственной работе с ВДТ и ПЭВМ допускаются лица, не имеющие медицинских противопоказаний;

женщины со времени установления беременности и в период кормления ребенка грудью к выполнению всех видов работ, связанных с использованием ВДТ и ПЭВМ, не допускаются.

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

На каждом предприятии должен осуществляться 3-х ступенчатый контроль:

контроль рабочих мест каждый день начальником отдела;

контроль рабочих мест по отделу проводится раз в неделю начальником ИВЦ вместе с ответственным лицом по охране труда;

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

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

При профессиональном обучении будущих программистов предусматривается обязательное изучение вопросов охраны труда.

В соответствии с ГОСТ 12.0.004-90 "Организация обучения безопасности труда" устанавливаются виды и порядок обучения, а также проверка знаний по охране труда, и в том числе и по безопасности труда программиста. При этом ответственность за своевременное и качественное обучение безопасности труда программиста возлагается на руководителя подразделения, а контроль за выполнением этих мероприятий осуществляет инженер по охране труда.

Теоретическое обучение проводится в рамках специального предмета "Охрана труда" в объеме не менее 10 часов с последующим проведением экзамена по безопасности труда и практическим навыкам.

Аттестация рабочих мест производится в соответствии с Положением о порядке проведения аттестации рабочих мест по условиям труда. Основные задачи проведения аттестации:

измерение параметров основных производственных (опасных и вредных) факторов;

определение тяжести и напряженности труда;

рабочего места по факторам травмобезопасности;

оценка фактического состояния условий труда на рабочих местах;

разработка мероприятий по улучшению и оздоровлению условий труда;

предоставление льгот и компенсаций за неблагоприятные условия труда;

составление статистической отчетности о состоянии условий труда;

переход к сертификации производственных объектов.

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

В состав комиссии рекомендовано вводить специалистов служб охраны труда и техники безопасности, главных специалистов, медицинских работников, представителей профсоюзных организаций. Ее функции:

осуществляет руководство и контроль за проведением работы на всех ее этапах;

формирует правовую и нормативно-справочную базу для проведения аттестации рабочих мест;

полный перечень рабочих мест организации, подлежащих аттестации;

выявляет на основе анализа производственного травматизма наиболее опасные участки работы и оборудования;

определяет перечень вредных и опасных факторов производственной среды;

учитывает жалобы работников на условия труда, присваивает коды производствам, цехам, участкам, рабочим местам и вносит их в карты аттестации рабочих мест для автоматизированной обработки;

аттестует рабочие места и подготавливает предложения о готовности организации к сертификации.

Данные проведенных измерений уровней производственных факторов оформляют в виде протокола.

Устройство самого предприятия и его подразделений (цехов, отделов, лабораторий и т.п.) в соответствии с требованиями строительных норм и правил ("Производственные здания промышленных предприятий. Нормы проектирования". СНиП П-М.2-72); ГОСТ 12.1.005-76 ("Воздух рабочей зоны. Общие санитарно-гигиенические требования".); санитарных норм проектирования промышленных предприятий (СН 245-71) и других государственных нормативных документов, имеющих отношение к устройству предприятий, что в полной мере обеспечивает нормальные условия труда.

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

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


8.2.2 Технические мероприятия

8.2.2.1 Мероприятия по снижению уровня шума на рабочих местах. Снижение шума, создаваемого на рабочих местах внутренними источниками, а также шума, проникающего извне, осуществляется следующими методами:

уменьшением шума в источнике;

рациональной планировкой помещения;

уменьшением шума по пути его распространения.

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

8.2.2.2 Мероприятия по приведения температуры воздуха рабочей зоны, влажности, подвижности воздуха к оптимальным значениям. Для обеспечения установленных норм микроклиматических параметров и чистоты воздуха в помещениях применяют вентиляцию. Общеобменная вентиляция используется для обеспечения в помещениях соответствующего микроклимата; местные вентиляторы - для охлаждения ЭВМ и вспомогательных устройств. Периодически должен вестись контроль за атмосферным давлением и влажностью воздуха.

В холодное время года предусматривается система отопления. Для отопления помещений здания используются водяные и воздушные системы центрального отопления.

Нагревательные поверхности отопительных приборов должны быть достаточно ровными и гладкими, чтобы на них не задерживалась пыль, и можно было легко очищать их от загрязнения.

Радиаторы должны устанавливаться в нишах, прикрытых деревянными решетками, гармонирующими с общим оформлением помещения. Применение таких решеток способствует также повышению электробезопасности в помещениях. При этом температура на поверхности нагревательных приборов не должна превышать 95 С, чтобы исключить пригорание пыли.

В здании применяется общеобменная искусственная вентиляция в сочетании с местной (как искусственной, так и естественной).

8.2.2.3 Мероприятия по снижению повышенного уровня излучений. Рентгеновское излучение в 5 см от экрана при напряжении на аноде кинескопа 25 кВ ослабляется фильтром "полной защиты" минимум в 20 раз, а иногда ослабление доходит до 80-95%. По шведскому стандарту MPR II оно не должно превышать 5000 нГр/ч.

Кроме ослабления вредных излучений, фильтры повышают контрастность изображения (четкость) примерно в 3-4 раза, а также ослабляют отражения от ярких предметов и источников света, находящихся сбоку или сверху оператора в 10 и более раз (снижая при этом яркость изображения всего в 2-3 раза). Хорошие дисплеи имеют антибликовое матовое покрытие, но у дешевых мониторов на нашем рынке экран полированный, как у телевизора, и тогда без фильтра от бликов можно избавиться только перемещением стола с компьютером в темный угол. Наименьший вред оказывают мониторы с меткой "Low Radiation". Они снабжены специальным стеклянным светофильтром с толстым свинцовым стеклом, т.е. специальным стеклом с примесью солей тяжелых металлов, и металлизацией - для снятия статического заряда. Низкое излучение характерно также для монохромных EGA/VGA мониторов. У цветных мониторов высоковольтное напряжение на аноде кинескопа достигает 25-27 кВ, что в 1.5-2 раза выше, чем у монохромных.

8.2.2.4 Мероприятия по устранению или снижению недостаточной освещенности рабочей зоны. Для обеспечения нормируемых значений освещенности в помещениях использования ВДТ и ПЭВМ следует проводить чистку стекол оконных рам и светильников не реже двух раз в год и проводить своевременную замену перегоревших ламп.

Для общего освещения помещений лучше использовать люминесцентные лампы. Это обусловлено такими их достоинствами:

высокой световой отдачей;

продолжительным сроком службы;

малой яркостью светящейся поверхности.

Светильники с люминесцентными лампами должны размещаться рядами, параллельно с окнами. Главными недостатками люминесцентных ламп являются производимый ими шум и мерцание.

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

Искусственное освещение в помещениях эксплуатации ВДТ и ПЭВМ должно осуществляться системой общего равномерного освещения. В производственных и административно-общественных помещениях, в случаях преимущественной работы с документами, допускается применение системы комбинированного освещения (к общему освещению дополнительно устанавливаются светильники местного освещения, предназначенные для освещения зоны расположения документов). В качестве источников света при искусственном освещении должны применяться преимущественно люминесцентные лампы типа ЛБ. При устройстве отраженного освещения в производственных и административно-общественных помещениях допускается применение металлогалогенных ламп мощностью до 250 Вт. Допускается применение ламп накаливания в светильниках местного освещения.

Общее освещение следует выполнять в виде сплошных или прерывистых линий светильников, расположенных сбоку от рабочих мест, параллельно линии зрения пользователя при рядном расположении ВДТ и ПЭВМ. При периметральном расположении компьютеров линии светильников должны располагаться локализовано над рабочим столом ближе к его переднему краю, обращенному к оператору.

Для освещения помещений с ВДТ и ПЭВМ следует применять светильники серии ЛПО36 с зеркализованными решетками, укомплектованные высокочастотными пускорегулирующими аппаратами (ВЧ ПРА). Допускается применять светильники серии ЛПО36 без ВЧ ПРА только в модификации "Кососвет", а также светильники прямого света - П, преимущественно прямого света - Н, преимущественно отраженного света - В. Применение светильников без рассеивателей и экранирующих решеток не допускается.

8.2.2.5 Мероприятия по снижению пожароопасности в рабочей зоне. Противопожарную защиту обеспечивают следующие меры:

максимально возможное применение негорючих и трудно горючих материалов;

ограничение количества горючих веществ и их надлежащее размещение;

предотвращение распространения пожара за пределы очага;

применение средств пожаротушения;

эвакуация людей;

применение средств коллективной и индивидуальной защиты;

применение средств пожарной сигнализации.

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


8.3 Расчет общеобменной вентиляции


Исходные данные к расчету вентиляции:

размер помещения: длина – 5 м, ширина – 3 м, высота – 3,5 м;

Количество рабочих мест – 4.

План помещения представлен на рис. 15.


Рис. 15. План помещения


V рабочего помещения = V = 5*3*3.5 = 52.5 м3.

Теперь вычислим объем помещения приходящегося на 1 человека:


Vi = V/ n = 52.5/4 = 13,125 м3/чел.


Получается, что Vi менее чем 20 м3/чел, что является недостаточным при естественной вентиляции. При данном объеме требуется не менее 30 м3/час воздуха на 1 человека, что должно обеспечить установленный в помещении кондиционер.

Предлагаю использовать отечественный кондиционер марки БК-1500. Бытовые автономные кондиционеры оконного типа БК – 1500 используются в жилых, служебных и других помещениях с целью создания благоприятных условий для жизнедеятельности.

Кондиционер обеспечивает:

охлаждение воздуха;

автоматическое поддержание заданной температуры;

очистка воздуха от пыли;

вентиляция;

уменьшение влажности воздуха;

изменение скорости движения и направления воздушного потока;

воздушный обмен с наружной средой.

Предлагаю использовать кондиционер БК-1500. Его технические характеристики приведены в табл. 9.


Таблица 9. Технические данные кондиционера БК – 1500

Тип

КБ – 0,4 – 01 УЗ

Максимальная площадь обслуживаемого помещения, м2

25

Производительность по холоду, Вт (ккал/ч)

1740

Производительность по воздуху, м3

400

Потребляемая мощность, Вт

900

Холодильный агрегат

Хладон – 22 (R22)

Количество хладагента в системе, кг

0,8

Напряжение, В

220

Частота тока, Гц

~50

Уровень шума, дБа, не более

58

Рабочий ток, А, не менее

5

Габаритные размеры, мм (высота – ширина- глубина)

400 – 600 - 585

Масса, кг

51


Судя по характеристике, он вполне походит для данного помещения. Так как для обеспечения нормальной жизнедеятельности в данном помещении на 1 человека должно быть не менее 30 м3/час воздуха, на 4 человек не менее 120м3/час, а данный кондиционер может обеспечить 400 м3/час, это означает, что на 1 человека получается 100 м3/час, что вполне достаточно. Значит одного кондиционера достаточно.


8.4 Экологичность проекта. Утилизация отходов, возникающих при изготовлении печатных плат


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

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

Наиболее распространены следующие способы изготовления токопроводящих покрытий:

электрохимический: наносят тонкий слоя металла при помощи химического осаждения и наращивают его в электролитической ванне до нужной толщины;

фольгирование: лист медной фольги приклеивают к изоляционному основанию с одной или двух сторон.

Рисунок печатного монтажа может быть получен путем химического травления, фотохимическим способом или трафаретной печати. Травление происходит при помощи водного раствора технического хлорного железа. Процесс травления заканчивается промывкой платы в проточной воде.

Сточная вода предприятия-изготовителя печатных плат представляет опасность и должна подвергаться очистке. Для этого применяются отстойники и очистные установки различных конструкций. Также очистку можно проводить химическим методом – переводом растворимых солей железа и меди в нерастворимые и последующей фильтрацией.

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

Установка состоит из 4 узлов:

узел очистки промывных вод;

узел регенерации растворов электролитных ванн;

узел регенерации отработанных травильных растворов;

узел регенерации моющих и обезжиривающих растворов.

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

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


8.5 Выводы


Как видно из полученных результатов, для создания в помещении условий, наиболее благоприятных для максимальной производительности труда, требуется наличие кондиционера, который мог бы обеспечивать 30 м3/ час на одного человека.

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

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


Заключение


Результатом выполнения дипломного проекта является звуковое USB-устройство с поддержкой Bluetooth. Были рассмотрены современные микроконтроллеры с поддержкой USB и Bluetooth и интерфейсы, применяемые в микроконтроллерных и микропроцессорных системах. Детально рассмотрены микроконтроллер AT91SAM7SE256 и Bluetooth аудио модуль F2M03MLA, их возможности и сферы применения. Разработаны 2 шаблона драйвера для данного устройства.

Также были рассмотрены современные средства разработки компании Atmel, популярный проводной интерфейс USB и популярный беспроводной интерфейс Bluetooth.

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

Литература


  1. Агуров П. В. Интерфейсы USB. Практика использования и программирования. – СПб.: БХВ-Петербург, 2004 г.

  2. Агуров П. В. Последовательные интерфейсы ПК. Практика программирования. – СПб.: БХВ-Петербург, 2004 г.

  3. Ан П. Сопряжение ПК с внешними устройствами. – Пер. с англ. – М.: ДМК Пресс, 2001 г.

  4. Гребнев В. В. Микроконтроллеры семейства AVR фирмы Atmel. – М.: ИП РадиоСофт, 2002 г.

  5. Стешенко В. Б. P-CAD. Технология проектирования печатных плат. – СПб.: БХВ-Петербург, 2003 г.

  6. Фрунзе А. В. Микроконтроллеры? Это же просто! Т. 1. – М.: ООО “ИД Скимен”, 2002 г.

  7. Фрунзе А. В. Микроконтроллеры? Это же просто! Т. 2. – М.: ООО “ИД Скимен”, 2002 г.

  8. Фрунзе А. В. Микроконтроллеры? Это же просто! Т. 3. – М.: ООО “ИД Скимен”, 2003 г.

  9. Lennart Yseboodt, Michael De Nil. EFSL - Embedded Filesystems Library - 0.3. 2005 г.

  10. Олег Вальпа. Устройство флеш-памяти с USB интерфейсом. //СОВРЕМЕННАЯ ЭЛЕКТРОНИКА. – 2006 г, № 5, с. 56-59.

  11. Олег Пушкарёв. Применение MMC-карт в микроконтроллерных системах. //СОВРЕМЕННАЯ ЭЛЕКТРОНИКА. – 2006 г, № 1, с. 46-49.

  12. Дмитрий Тумайкин. Реализация интерфейса USB в микроконтроллерных устройствах. //СОВРЕМЕННАЯ ЭЛЕКТРОНИКА. – 2007 г, № 2, с. 34-37.

  13. Дмитрий Чекунов. Практикум программиста USB-устройств. Часть 1. EZ-USB FX2LP – универсальное USB-решение. //СОВРЕМЕННАЯ ЭЛЕКТРОНИКА. – 2005 г, № 4, с. 70-77.

  14. Дмитрий Чекунов. Практикум программиста USB-устройств. Часть 2. Разработка аппаратно-программного ядра USB-устройства. //СОВРЕМЕННАЯ ЭЛЕКТРОНИКА. – 2005 г, № 5, с. 66-73.

  15. Дмитрий Чекунов. Практикум программиста USB-устройств. Часть 2. Разработка аппаратно-программного ядра USB-устройства. //СОВРЕМЕННАЯ ЭЛЕКТРОНИКА. – 2005 г, № 6, с. 66-74.

  16. Дмитрий Чекунов. Практикум программиста USB-устройств. Часть 3. Расширение функций ядра USB-устройства. //СОВРЕМЕННАЯ ЭЛЕКТРОНИКА. – 2006 г, № 2, с. 70-77.

  17. ГОСТ 2.104 – 68 Единая система конструкторской документации. Основные надписи. Введ. 01.01.71. – 9с. – Группа Т52.

  18. ГОСТ 2.316-68 Единая система конструкторской документации. Правила нанесения на чертежах надписей, технических требований и таблиц. Введ. 01.01.71. – 7с. – Группа Т52.

  19. ГОСТ 2.702-75 Единая система конструкторской документации. Правила выполнения электрических схем. Введ. 01.07.77. – 22с. – Группа Т52.

  20. ГОСТ 2.605-68 Единая система конструкторской документации. Плакаты учебно-технические. Введ. 01.01.71. – 10с. – Группа Т52.

  21. ГОСТ 2.759-82 Единая система конструкторской документации. Обозначения условные графические в схемах. Элементы аналоговой техники. Введ. 01.07.83. – 13с. – Группа Т52.

  22. ГОСТ 12.0.004 – 90 ССБТ. Организация обучения безопасности труда. Введ. 01.07.91 – 14с. – Группа Т58.

  23. ГОСТ 12.1.005 – 88 ССБТ. Общие санитарно-гигиенические требования к воздуху рабочей зоны. Введ. 01.01.89. – 49с. – Группа Т58.

  24. СНиП 2.04.05-91 Строительные нормы и правила. Отопление, вентиляция и кондиционирование. Введ. 01.01.92. – 71с.

  25. www.atmel.com.

  26. www.bluetooth.org.

  27. www.elcp.ru.

  28. www.f2move.com.

  29. www.maxim-ic.com.

  30. www.micronas.com.

  31. www.national.com.

  32. www.samsung.com.

  33. www.st.com.

  34. www.vlsi.fi.


Приложение A


Текст программы

AT91UsbSounCard.cpp

// AT91UsbSounCard.cpp // Generated by DriverWizard version DriverStudio 2.0.0 (Build 526)

// Requires Compuware's DriverWorks classes

#define VDW_MAIN

#include

#include

#include "AT91UsbSounCard.h"

#include "AT91UsbSounCardDevice.h"

#pragma hdrstop("AT91UsbSounCard.pch")

POOLTAG DefaultPoolTag('19TA');

KTrace t("AT91UsbSounCard");

#pragma code_seg("INIT")

DECLARE_DRIVER_CLASS(AT91UsbSounCard, NULL)

NTSTATUS AT91UsbSounCard::DriverEntry(PUNICODE_STRING RegistryPath){

t << "In DriverEntry\n";

KRegistryKey Params(RegistryPath, L"Parameters");// Open the "Parameters" key under the driver

if ( NT_SUCCESS(Params.LastError()) ){

#if DBG

ULONG bBreakOnEntry = FALSE;

Params.QueryValue(L"BreakOnEntry", &bBreakOnEntry);

// Read "BreakOnEntry" value from registry

if (bBreakOnEntry) DbgBreakPoint();// If requested, break into debugger

#endif

LoadRegistryParameters(Params);// Load driver data members from the registry}

m_Unit = 0;

return STATUS_SUCCESS;}

void AT91UsbSounCard::LoadRegistryParameters(KRegistryKey &Params){

m_bBreakOnEntry = FALSE;

Params.QueryValue(L"BreakOnEntry", &m_bBreakOnEntry);

t << "m_bBreakOnEntry loaded from registry, resulting value: [" << m_bBreakOnEntry << "]\n";}

// End INIT section

#pragma code_seg()

NTSTATUS AT91UsbSounCard::AddDevice(PDEVICE_OBJECT Pdo){

t << "AddDevice called\n";

AT91UsbSounCardDevice * pDevice = new (

static_cast(KUnitizedName(L"AT91UsbSounCardDevice", m_Unit)),

FILE_DEVICE_UNKNOWN, NULL, 0, DO_DIRECT_IO | DO_POWER_PAGABLE )

AT91UsbSounCardDevice(Pdo, m_Unit);

if (pDevice == NULL){

t << "Error creating device AT91UsbSounCardDevice"<< (ULONG) m_Unit << EOL;

return STATUS_INSUFFICIENT_RESOURCES;}

NTSTATUS status = pDevice->ConstructorStatus();

if ( !NT_SUCCESS(status) ){

t << "Error constructing device AT91UsbSounCardDevice"

<< (ULONG) m_Unit << " status " << (ULONG) status << EOL;

delete pDevice;}

else{

m_Unit++;

pDevice->ReportNewDevicePowerState(PowerDeviceD0);}

return status;}

AT91UsbSounCard.h

// AT91UsbSounCard.h // Generated by DriverWizard version DriverStudio 2.0.0 (Build 526)

// Requires Compuware's DriverWorks classes

#ifndef __AT91UsbSounCard_h__

#define __AT91UsbSounCard_h__

#define EOL "\n"

extern KTrace t;

class AT91UsbSounCard : public KDriver

{SAFE_DESTRUCTORS

public:

virtual NTSTATUS DriverEntry(PUNICODE_STRING RegistryPath);

virtual NTSTATUS AddDevice(PDEVICE_OBJECT Pdo);

void LoadRegistryParameters(KRegistryKey &Params);

int m_Unit;

// The following data members are loaded from the registry during DriverEntry

ULONG m_bBreakOnEntry;};

#endif // __AT91UsbSounCard_h__

AT91UsbSounCardDevice.cpp

// AT91UsbSounCardDevice.cpp Implementation of AT91UsbSounCardDevice device class

// Generated by DriverWizard version DriverStudio 2.0.0 (Build 526)

// Requires Compuware's DriverWorks classes

#pragma warning(disable:4065) // Allow switch statement with no cases

#include

#include

#include "AT91UsbSounCardDeviceinterface.h"

#include "AT91UsbSounCard.h"

#include "AT91UsbSounCardDevice.h"

#pragma hdrstop("AT91UsbSounCard.pch")

extern KTrace t;// Global driver trace object

GUID AT91UsbSounCardDevice_Guid = AT91UsbSounCardDevice_CLASS_GUID;

AT91UsbSounCardDevice::AT91UsbSounCardDevice(PDEVICE_OBJECT Pdo, ULONG Unit) :

KPnpDevice(Pdo, &AT91UsbSounCardDevice_Guid){

t << "Entering AT91UsbSounCardDevice::AT91UsbSounCardDevice (constructor)\n";

if ( ! NT_SUCCESS(m_ConstructorStatus) )// Check constructor status

{return;}

m_Unit = Unit;// Remember our unit number

m_Lower.Initialize(this, Pdo); // Initialize the lower device

m_Interface.Initialize(

m_Lower, //KUsbLowerDevice

0, //InterfaceNumber

1, //ConfigurationValue

0 //Initial Interface Alternate Setting

);// Initialize each Pipe object

SetLowerDevice(&m_Lower);// Inform the base class of the lower edge device object

SetPnpPolicy();// Initialize the PnP Policy settings to the "standard" policy

SetPowerPolicy();// Initialize the Power Policy settings to the "standard" policy}

AT91UsbSounCardDevice::~AT91UsbSounCardDevice()

{t << "Entering AT91UsbSounCardDevice::~AT91UsbSounCardDevice() (destructor)\n";}

char *PNPMinorFunctionName(ULONG mn){

static char* minors[] = {

"IRP_MN_START_DEVICE",

"IRP_MN_QUERY_REMOVE_DEVICE",

"IRP_MN_REMOVE_DEVICE",

"IRP_MN_CANCEL_REMOVE_DEVICE",

"IRP_MN_STOP_DEVICE",

"IRP_MN_QUERY_STOP_DEVICE",

"IRP_MN_CANCEL_STOP_DEVICE",

"IRP_MN_QUERY_DEVICE_RELATIONS",

"IRP_MN_QUERY_INTERFACE",

"IRP_MN_QUERY_CAPABILITIES",

"IRP_MN_QUERY_RESOURCES",

"IRP_MN_QUERY_RESOURCE_REQUIREMENTS",

"IRP_MN_QUERY_DEVICE_TEXT",

"IRP_MN_FILTER_RESOURCE_REQUIREMENTS",

"",

"IRP_MN_READ_CONFIG",

"IRP_MN_WRITE_CONFIG",

"IRP_MN_EJECT",

"IRP_MN_SET_LOCK",

"IRP_MN_QUERY_ID",

"IRP_MN_QUERY_PNP_DEVICE_STATE",

"IRP_MN_QUERY_BUS_INFORMATION",

"IRP_MN_DEVICE_USAGE_NOTIFICATION",

"IRP_MN_SURPRISE_REMOVAL"};

if (mn > IRP_MN_SURPRISE_REMOVAL)return "";

else return minors[mn];}

NTSTATUS AT91UsbSounCardDevice::DefaultPnp(KIrp I){

t << "Entering AT91UsbSounCardDevice::DefaultPnp with IRP minor function="

<< PNPMinorFunctionName(I.MinorFunction()) << EOL;

I.ForceReuseOfCurrentStackLocationInCalldown();

return m_Lower.PnpCall(this, I);}

NTSTATUS AT91UsbSounCardDevice::DefaultPower(KIrp I) {

t << "Entering AT91UsbSounCardDevice::DefaultPower\n";

I.IndicatePowerIrpProcessed();

I.CopyParametersDown();

return m_Lower.PnpPowerCall(this, I);}

NTSTATUS AT91UsbSounCardDevice::SystemControl(KIrp I){

t << "Entering AT91UsbSounCardDevice::SystemControl\n";

I.ForceReuseOfCurrentStackLocationInCalldown();

return m_Lower.PnpCall(this, I);}

NTSTATUS AT91UsbSounCardDevice::OnStartDevice(KIrp I){

t << "Entering AT91UsbSounCardDevice::OnStartDevice\n";

NTSTATUS status = STATUS_UNSUCCESSFUL;

AC_STATUS acStatus = AC_SUCCESS;

I.Information() = 0;

acStatus = m_Lower.ActivateConfiguration(1);// ConfigurationValue 1 (the first configuration)

switch (acStatus)

{case AC_SUCCESS:t << "USB Configuration OK\n";

status = STATUS_SUCCESS;break;

case AC_COULD_NOT_LOCATE_INTERFACE:t << "Could not locate interface\n";

break;

case AC_COULD_NOT_PRECONFIGURE_INTERFACE:

t << "Could not get configuration descriptor\n";break;

case AC_CONFIGURATION_REQUEST_FAILED:

t << "Board did not accept configuration URB\n";break;

case AC_FAILED_TO_INITIALIZE_INTERFACE_OBJECT:

t << "Failed to initialize interface object\n";break;

case AC_FAILED_TO_GET_DESCRIPTOR:t << "Failed to get device descriptor\n";break;

case AC_FAILED_TO_OPEN_PIPE_OBJECT:status = STATUS_SUCCESS;

t << "Failed to open pipe object\n";break;

default:t << "Unexpected error activating USB configuration\n";break;}

return status; // base class completes the IRP}

NTSTATUS AT91UsbSounCardDevice::OnStopDevice(KIrp I){

NTSTATUS status = STATUS_SUCCESS;

t << "Entering AT91UsbSounCardDevice::OnStopDevice\n";

m_Lower.DeActivateConfiguration();

return status;

UNREFERENCED_PARAMETER(I);}

NTSTATUS AT91UsbSounCardDevice::OnRemoveDevice(KIrp I){

t << "Entering AT91UsbSounCardDevice::OnRemoveDevice\n";

m_Lower.ReleaseResources();

return STATUS_SUCCESS;

UNREFERENCED_PARAMETER(I);}

NTSTATUS AT91UsbSounCardDevice::OnDevicePowerUp(KIrp I){

NTSTATUS status = STATUS_SUCCESS;

t << "Entering AT91UsbSounCardDevice::OnDevicePowerUp\n";

return status;

UNREFERENCED_PARAMETER(I);}

NTSTATUS AT91UsbSounCardDevice::OnDeviceSleep(KIrp I){

NTSTATUS status = STATUS_SUCCESS;

t << "Entering AT91UsbSounCardDevice::OnDeviceSleep\n";

return status;

UNREFERENCED_PARAMETER(I);}

NTSTATUS AT91UsbSounCardDevice::Create(KIrp I){

NTSTATUS status;

t << "Entering AT91UsbSounCardDevice::Create, " << I << EOL;

status = I.PnpComplete(this, STATUS_SUCCESS, IO_NO_INCREMENT);

t << "AT91UsbSounCardDevice::Create Status " << (ULONG)status << EOL;

return status;}

NTSTATUS AT91UsbSounCardDevice::Close(KIrp I){

NTSTATUS status;

t << "Entering AT91UsbSounCardDevice::Close, " << I << EOL;

status = I.PnpComplete(this, STATUS_SUCCESS, IO_NO_INCREMENT);

t << "AT91UsbSounCardDevice::Close Status " << (ULONG)status << EOL;

return status;}

NTSTATUS AT91UsbSounCardDevice::CleanUp(KIrp I){

t << "Entering CleanUp, " << I << EOL;

return I.PnpComplete(this, STATUS_SUCCESS);}

NTSTATUS AT91UsbSounCardDevice::Read(KIrp I){

t << "Entering AT91UsbSounCardDevice::Read, " << I << EOL;

if (FALSE)// If (Request is invalid)

{I.Information() = 0;// Invalid parameter in the Read request

return I.PnpComplete(this, STATUS_INVALID_PARAMETER);}

if (I.ReadSize() == 0)// Always ok to read 0 elements.

{I.Information() = 0;

return I.PnpComplete(this, STATUS_SUCCESS);}

NTSTATUS status = STATUS_SUCCESS;

KMemory Mem(I.Mdl());// Declare a memory object

PUCHAR pBuffer = (PUCHAR) Mem.VirtualAddress();// Use the memory object to create a pointer to the caller's buffer

ULONG dwTotalSize = I.ReadSize(CURRENT); // Requested read size

ULONG dwBytesRead = 0; // Count of bytes read

I.Information() = dwBytesRead;

return I.PnpComplete(this, status);}

NTSTATUS AT91UsbSounCardDevice::Write(KIrp I){

t << "Entering AT91UsbSounCardDevice::Write, " << I << EOL;

if (FALSE)

{I.Information() = 0;// Invalid parameter in the Write request

return I.PnpComplete(this, STATUS_INVALID_PARAMETER);}

if (I.WriteSize() == 0)// Always ok to write 0 elements.

{I.Information() = 0;

return I.PnpComplete(this, STATUS_SUCCESS);}

NTSTATUS status = STATUS_SUCCESS;

KMemory Mem(I.Mdl());// Declare a memory object

PUCHAR pBuffer = (PUCHAR) Mem.VirtualAddress();// Use the memory object to create a pointer to the caller's buffer

ULONG dwTotalSize = I.WriteSize(CURRENT);

ULONG dwBytesSent = 0;

I.Information() = dwBytesSent;

return I.PnpComplete(this, status);}

NTSTATUS AT91UsbSounCardDevice::DeviceControl(KIrp I){

NTSTATUS status;

t << "Entering AT91UsbSounCardDevice::Device Control, " << I << EOL;

switch (I.IoctlCode())

{default:status = STATUS_INVALID_PARAMETER;// Unrecognized IOCTL request

break;}

if (status == STATUS_PENDING){return status;}

else{return I.PnpComplete(this, status);}}

AT91UsbSounCardDevice.h

// AT91UsbSounCardDevice.h // Generated by DriverWizard version DriverStudio 2.0.0 (Build 526)

// Requires Compuware's DriverWorks classes

#ifndef __AT91UsbSounCardDevice_h__

#define __AT91UsbSounCardDevice_h__

class AT91UsbSounCardDevice : public KPnpDevice

{// Constructors

public:

SAFE_DESTRUCTORS;

AT91UsbSounCardDevice(PDEVICE_OBJECT Pdo, ULONG Unit);

~AT91UsbSounCardDevice();

// Member Functions

public:

DEVMEMBER_DISPATCHERS

virtual NTSTATUS OnStartDevice(KIrp I);

virtual NTSTATUS OnStopDevice(KIrp I);

virtual NTSTATUS OnRemoveDevice(KIrp I);

virtual NTSTATUS DefaultPnp(KIrp I);

virtual NTSTATUS DefaultPower(KIrp I);

virtual NTSTATUS OnDevicePowerUp(KIrp I);

virtual NTSTATUS OnDeviceSleep(KIrp I);

#ifdef _COMMENT_ONLY

virtual NTSTATUS CleanUp(KIrp I); // COMMENT_ONLY

virtual NTSTATUS Create(KIrp I); // COMMENT_ONLY

virtual NTSTATUS Close(KIrp I); // COMMENT_ONLY

virtual NTSTATUS DeviceControl(KIrp I); // COMMENT_ONLY

virtual NTSTATUS SystemControl(KIrp I); // COMMENT_ONLY

virtual NTSTATUS Read(KIrp I); // COMMENT_ONLY

virtual NTSTATUS Write(KIrp I); // COMMENT_ONLY

#endif

// Member Data

protected:

// Unit number for this device (0-9)

ULONG m_Unit;

KUsbLowerDevice m_Lower;

KUsbInterface m_Interface;};

#endif

interface.h

// interface.h - device interface classes for AT91UsbSounCard

// This GUID identifies the device interface class used by the AT91UsbSounCardDevice device

#define AT91UsbSounCardDevice_CLASS_GUID \

{ 0xb46f2426, 0x8406, 0x49bc, { 0xb6, 0xbd, 0xb4, 0x51, 0x40, 0xf1, 0xcc, 0x39 } }

function.h

// function.h This file controls which driver functions are enabled.

#ifndef __function_h__

#define __function_h__

#define DRIVER_FUNCTION_CREATE

#define DRIVER_FUNCTION_CLOSE

#define DRIVER_FUNCTION_DEVICE_CONTROL

#define DRIVER_FUNCTION_READ

#define DRIVER_FUNCTION_WRITE

#define DRIVER_FUNCTION_ADD_DEVICE

#define DRIVER_FUNCTION_PNP

#define DRIVER_FUNCTION_POWER

#define DRIVER_FUNCTION_SYSTEM_CONTROL

#define DRIVER_FUNCTION_UNLOAD

#define DRIVER_FUNCTION_CLEANUP

#endif

AT91UsbSounCard.inf

[Version]

Signature="$Windows 95$"

Provider=%ProviderName%

Class=NewDeviceClass

ClassGUID={ff646f80-8def-11d2-9449-00105a075f6b}

; 9X Style

[ClassInstall]

Addreg=Class_AddReg

; NT Style

[ClassInstall32]

Addreg=Class_AddReg

[Class_AddReg]

HKR,,,,%DeviceClassName%

HKR,,Icon,,"-18"

;--------- DestinationDirs Section -------------------------------------------

[DestinationDirs]

AT91UsbSounCard_Files_Driver = 10,System32\Drivers

;--------- Manufacturer and Models Sections ----------------------------------

[Manufacturer]

%MfgName%=Mfg0

[Mfg0]

%DeviceDesc%=AT91UsbSounCard_DDI, USB\VID_FFF1&PID_FFF0

;---------- DDInstall Sections -----------------------------------------------

; --------- Windows 9X -----------------

; Experimentation has shown that DDInstall root names greater than 19 characters

; cause problems in Windows 98

[AT91UsbSounCard_DDI]

CopyFiles=AT91UsbSounCard_Files_Driver

AddReg=AT91UsbSounCard_9X_AddReg

[AT91UsbSounCard_9X_AddReg]

HKR,,DevLoader,,*ntkern

HKR,,NTMPDriver,,AT91UsbSounCard.sys

HKR, "Parameters", "BreakOnEntry", 0x00010001, 0

; --------- Windows NT -----------------

[AT91UsbSounCard_DDI.NT]

CopyFiles=AT91UsbSounCard_Files_Driver

AddReg=AT91UsbSounCard_NT_AddReg

[AT91UsbSounCard_DDI.NT.Services]

Addservice = AT91UsbSounCard, 0x00000002, AT91UsbSounCard_AddService

[AT91UsbSounCard_AddService]

DisplayName = %SvcDesc%

ServiceType = 1 ; SERVICE_KERNEL_DRIVER

StartType = 3 ; SERVICE_DEMAND_START

ErrorControl = 1 ; SERVICE_ERROR_NORMAL

ServiceBinary = %10%\System32\Drivers\AT91UsbSounCard.sys

[AT91UsbSounCard_NT_AddReg]

HKLM, "System\CurrentControlSet\Services\AT91UsbSounCard\Parameters",\

"BreakOnEntry", 0x00010001, 0

; --------- Files (common) -------------

[AT91UsbSounCard_Files_Driver]

AT91UsbSounCard.sys

;--------- Strings Section ---------------------------------------------------

[Strings]

ProviderName="Your Company Name here"

MfgName="Name of HW Manufacturer here"

DeviceDesc="Description of Device here"

DeviceClassName="Description of Device class here"

SvcDesc="Description of NT service here"

AT91UsbMassStorage.cpp

// AT91UsbMassStorage.cpp // Generated by DriverWizard version DriverStudio 2.0.0 (Build 526)

// Requires Compuware's DriverWorks classes

#define VDW_MAIN

#include

#include

#include "AT91UsbMassStorage.h"

#include "AT91UsbMassStorageDevice.h"

#pragma hdrstop("AT91UsbMassStorage.pch")

POOLTAG DefaultPoolTag('19TA');

KTrace t("AT91UsbMassStorage");

// Begin INIT section

#pragma code_seg("INIT")

DECLARE_DRIVER_CLASS(AT91UsbMassStorage, NULL)

NTSTATUS AT91UsbMassStorage::DriverEntry(PUNICODE_STRING RegistryPath){

t << "In DriverEntry\n";

KRegistryKey Params(RegistryPath, L"Parameters");// Open the "Parameters" key under the driver

if ( NT_SUCCESS(Params.LastError()) )

{#if DBG

ULONG bBreakOnEntry = FALSE;

Params.QueryValue(L"BreakOnEntry", &bBreakOnEntry);// Read "BreakOnEntry" value from registry

if (bBreakOnEntry) DbgBreakPoint();// If requested, break into debugger

#endif

LoadRegistryParameters(Params);// Load driver data members from the registry}

m_Unit = 0;

return STATUS_SUCCESS;}

void AT91UsbMassStorage::LoadRegistryParameters(KRegistryKey &Params){

m_bBreakOnEntry = FALSE;

Params.QueryValue(L"BreakOnEntry", &m_bBreakOnEntry);

t << "m_bBreakOnEntry loaded from registry, resulting value: [" << m_bBreakOnEntry << "]\n";}

// End INIT section

#pragma code_seg()

NTSTATUS AT91UsbMassStorage::AddDevice(PDEVICE_OBJECT Pdo){

t << "AddDevice called\n";

AT91UsbMassStorageDevice * pDevice = new (

static_cast(KUnitizedName(L"AT91UsbMassStorageDevice", m_Unit)),

FILE_DEVICE_UNKNOWN,

NULL,

0,

DO_DIRECT_IO)

AT91UsbMassStorageDevice(Pdo, m_Unit);

if (pDevice == NULL){

t << "Error creating device AT91UsbMassStorageDevice"

<< (ULONG) m_Unit << EOL;

return STATUS_INSUFFICIENT_RESOURCES;}

NTSTATUS status = pDevice->ConstructorStatus();

if ( !NT_SUCCESS(status) ){

t << "Error constructing device AT91UsbMassStorageDevice"

<< (ULONG) m_Unit << " status " << (ULONG) status << EOL;

delete pDevice;}

else{m_Unit++;}

return status;}

AT91UsbMassStorage.h

// AT91UsbMassStorage.h // Generated by DriverWizard version DriverStudio 2.0.0 (Build 526)

// Requires Compuware's DriverWorks classes

#ifndef __AT91UsbMassStorage_h__

#define __AT91UsbMassStorage_h__

#define EOL "\n"

extern Trace t; // Global driver trace object

class AT91UsbMassStorage : public KDriver{

SAFE_DESTRUCTORS

public:

virtual NTSTATUS DriverEntry(PUNICODE_STRING RegistryPath);

virtual NTSTATUS AddDevice(PDEVICE_OBJECT Pdo);

void LoadRegistryParameters(KRegistryKey &Params);

int m_Unit;

// The following data members are loaded from the registry during DriverEntry

ULONG m_bBreakOnEntry;};

#endif // __AT91UsbMassStorage_h__

AT91UsbMassStorageDevice.cpp

// AT91UsbMassStorageDevice.cpp // Implementation of AT91UsbMassStorageDevice device class

// Generated by DriverWizard version DriverStudio 2.0.0 (Build 526)

// Requires Compuware's DriverWorks classes

#pragma warning(disable:4065) // Allow switch statement with no cases

#include

#include

#include "..\AT91UsbMassStorageDeviceinterface.h"

#include "AT91UsbMassStorage.h"

#include "AT91UsbMassStorageDevice.h"

#pragma hdrstop("AT91UsbMassStorage.pch")

extern KTrace t; // Global driver trace object

GUID AT91UsbMassStorageDevice_Guid = AT91UsbMassStorageDevice_CLASS_GUID;

AT91UsbMassStorageDevice::AT91UsbMassStorageDevice(PDEVICE_OBJECT Pdo, ULONG Unit) :

KPnpDevice(Pdo, &AT91UsbMassStorageDevice_Guid){

t << "Entering AT91UsbMassStorageDevice::AT91UsbMassStorageDevice (constructor)\n";

// Check constructor status

if ( ! NT_SUCCESS(m_ConstructorStatus) ){return;}

m_Unit = Unit;// Remember our unit number

m_Lower.Initialize(this, Pdo);// Initialize the lower device

m_Interface.Initialize(

m_Lower, //KUsbLowerDevice

0, //InterfaceNumber

1, //ConfigurationValue

0 //Initial Interface Alternate Setting);

SetLowerDevice(&m_Lower);

SetPnpPolicy();}

AT91UsbMassStorageDevice::~AT91UsbMassStorageDevice()

{t << "Entering AT91UsbMassStorageDevice::~AT91UsbMassStorageDevice() (destructor)\n";}

char *PNPMinorFunctionName(ULONG mn){

static char* minors[] = {

"IRP_MN_START_DEVICE",

"IRP_MN_QUERY_REMOVE_DEVICE",

"IRP_MN_REMOVE_DEVICE",

"IRP_MN_CANCEL_REMOVE_DEVICE",

"IRP_MN_STOP_DEVICE",

"IRP_MN_QUERY_STOP_DEVICE",

"IRP_MN_CANCEL_STOP_DEVICE",

"IRP_MN_QUERY_DEVICE_RELATIONS",

"IRP_MN_QUERY_INTERFACE",

"IRP_MN_QUERY_CAPABILITIES",

"IRP_MN_QUERY_RESOURCES",

"IRP_MN_QUERY_RESOURCE_REQUIREMENTS",

"IRP_MN_QUERY_DEVICE_TEXT",

"IRP_MN_FILTER_RESOURCE_REQUIREMENTS",

"",

"IRP_MN_READ_CONFIG",

"IRP_MN_WRITE_CONFIG",

"IRP_MN_EJECT",

"IRP_MN_SET_LOCK",

"IRP_MN_QUERY_ID",

"IRP_MN_QUERY_PNP_DEVICE_STATE",

"IRP_MN_QUERY_BUS_INFORMATION",

"IRP_MN_DEVICE_USAGE_NOTIFICATION",

"IRP_MN_SURPRISE_REMOVAL"};

if (mn > IRP_MN_SURPRISE_REMOVAL)return "";

else return minors[mn];}

NTSTATUS AT91UsbMassStorageDevice::DefaultPnp(KIrp I){

t << "Entering AT91UsbMassStorageDevice::DefaultPnp with IRP minor function="

<< PNPMinorFunctionName(I.MinorFunction()) << EOL;

I.ForceReuseOfCurrentStackLocationInCalldown();

return m_Lower.PnpCall(this, I);}

NTSTATUS AT91UsbMassStorageDevice::DefaultPower(KIrp I){

t << "Entering AT91UsbMassStorageDevice::DefaultPower\n";

I.IndicatePowerIrpProcessed();

I.CopyParametersDown();

return m_Lower.PnpPowerCall(this, I);}

NTSTATUS AT91UsbMassStorageDevice::SystemControl(KIrp I){

t << "Entering AT91UsbMassStorageDevice::SystemControl\n";

I.ForceReuseOfCurrentStackLocationInCalldown();

return m_Lower.PnpCall(this, I);}

NTSTATUS AT91UsbMassStorageDevice::OnStartDevice(KIrp I){

t << "Entering AT91UsbMassStorageDevice::OnStartDevice\n";

NTSTATUS status = STATUS_UNSUCCESSFUL;

AC_STATUS acStatus = AC_SUCCESS;

I.Information() = 0;

acStatus = m_Lower.ActivateConfiguration(1);// ConfigurationValue 1 (the first configuration)

switch (acStatus){

case AC_SUCCESS:t << "USB Configuration OK\n";

status = STATUS_SUCCESS;break;

case AC_COULD_NOT_LOCATE_INTERFACE:t << "Could not locate interface\n";break;

case AC_COULD_NOT_PRECONFIGURE_INTERFACE:

t << "Could not get configuration descriptor\n";break;

case AC_CONFIGURATION_REQUEST_FAILED:

t << "Board did not accept configuration URB\n";break;

case AC_FAILED_TO_INITIALIZE_INTERFACE_OBJECT:

t << "Failed to initialize interface object\n";break;

case AC_FAILED_TO_GET_DESCRIPTOR:t << "Failed to get device descriptor\n";break;

case AC_FAILED_TO_OPEN_PIPE_OBJECT:status = STATUS_SUCCESS;

t << "Failed to open pipe object\n";break;

default:t << "Unexpected error activating USB configuration\n";break;}

return status; // base class completes the IRP}

NTSTATUS AT91UsbMassStorageDevice::OnStopDevice(KIrp I){

NTSTATUS status = STATUS_SUCCESS;

t << "Entering AT91UsbMassStorageDevice::OnStopDevice\n";

m_Lower.DeActivateConfiguration();

return status;

UNREFERENCED_PARAMETER(I);}

NTSTATUS AT91UsbMassStorageDevice::OnRemoveDevice(KIrp I){

t << "Entering AT91UsbMassStorageDevice::OnRemoveDevice\n";

// Device removed, release the system resources used by the USB lower device.

m_Lower.ReleaseResources();

return STATUS_SUCCESS;

UNREFERENCED_PARAMETER(I);}

NTSTATUS AT91UsbMassStorageDevice::Create(KIrp I){

NTSTATUS status;

t << "Entering AT91UsbMassStorageDevice::Create, " << I << EOL;

status = I.PnpComplete(this, STATUS_SUCCESS, IO_NO_INCREMENT);

t << "AT91UsbMassStorageDevice::Create Status " << (ULONG)status << EOL;

return status;}

NTSTATUS AT91UsbMassStorageDevice::Close(KIrp I){

NTSTATUS status;

t << "Entering AT91UsbMassStorageDevice::Close, " << I << EOL;

status = I.PnpComplete(this, STATUS_SUCCESS, IO_NO_INCREMENT);

t << "AT91UsbMassStorageDevice::Close Status " << (ULONG)status << EOL;

return status;}

NTSTATUS AT91UsbMassStorageDevice::CleanUp(KIrp I){

t << "Entering CleanUp, " << I << EOL;

return I.PnpComplete(this, STATUS_SUCCESS);}

NTSTATUS AT91UsbMassStorageDevice::Read(KIrp I){

t << "Entering AT91UsbMassStorageDevice::Read, " << I << EOL;

if (FALSE) // If (Request is invalid)

{I.Information() = 0;// Invalid parameter in the Read request

return I.PnpComplete(this, STATUS_INVALID_PARAMETER);}

if (I.ReadSize() == 0)// Always ok to read 0 elements.

{I.Information() = 0;

return I.PnpComplete(this, STATUS_SUCCESS);}

NTSTATUS status = STATUS_SUCCESS;

KMemory Mem(I.Mdl()); // Declare a memory object

// Use the memory object to create a pointer to the caller's buffer

PUCHAR pBuffer = (PUCHAR) Mem.VirtualAddress();

ULONG dwTotalSize = I.ReadSize(CURRENT); // Requested read size

ULONG dwBytesRead = 0; // Count of bytes read

I.Information() = dwBytesRead;

return I.PnpComplete(this, status);}

NTSTATUS AT91UsbMassStorageDevice::Write(KIrp I){

t << "Entering AT91UsbMassStorageDevice::Write, " << I << EOL;

if (FALSE){

// Invalid parameter in the Write request

I.Information() = 0;

return I.PnpComplete(this, STATUS_INVALID_PARAMETER);}

// Always ok to write 0 elements.

if (I.WriteSize() == 0){

I.Information() = 0;

return I.PnpComplete(this, STATUS_SUCCESS);}

NTSTATUS status = STATUS_SUCCESS;

KMemory Mem(I.Mdl()); // Declare a memory object

// Use the memory object to create a pointer to the caller's buffer

PUCHAR pBuffer = (PUCHAR) Mem.VirtualAddress();

ULONG dwTotalSize = I.WriteSize(CURRENT);

ULONG dwBytesSent = 0;

I.Information() = dwBytesSent;

return I.PnpComplete(this, status);}

NTSTATUS AT91UsbMassStorageDevice::DeviceControl(KIrp I){

NTSTATUS status;

t << "Entering AT91UsbMassStorageDevice::Device Control, " << I << EOL;

switch (I.IoctlCode()){

default:

// Unrecognized IOCTL request

status = STATUS_INVALID_PARAMETER;

break;}

if (status == STATUS_PENDING){return status;}

else{return I.PnpComplete(this, status);}}

AT91UsbMassStorageDevice.h

// AT91UsbMassStorageDevice.h

// Generated by DriverWizard version DriverStudio 2.0.0 (Build 526)

// Requires Compuware's DriverWorks classes

#ifndef __AT91UsbMassStorageDevice_h__

#define __AT91UsbMassStorageDevice_h__

class AT91UsbMassStorageDevice : public KPnpDevice

{// Constructors

public:

SAFE_DESTRUCTORS;

AT91UsbMassStorageDevice(PDEVICE_OBJECT Pdo, ULONG Unit);

~AT91UsbMassStorageDevice();

// Member Functions

public:

DEVMEMBER_DISPATCHERS

virtual NTSTATUS OnStartDevice(KIrp I);

virtual NTSTATUS OnStopDevice(KIrp I);

virtual NTSTATUS OnRemoveDevice(KIrp I);

virtual NTSTATUS DefaultPnp(KIrp I);

virtual NTSTATUS DefaultPower(KIrp I);

#ifdef _COMMENT_ONLY

virtual NTSTATUS CleanUp(KIrp I); // COMMENT_ONLY

virtual NTSTATUS Create(KIrp I); // COMMENT_ONLY

virtual NTSTATUS Close(KIrp I); // COMMENT_ONLY

virtual NTSTATUS DeviceControl(KIrp I); // COMMENT_ONLY

virtual NTSTATUS SystemControl(KIrp I); // COMMENT_ONLY

virtual NTSTATUS Read(KIrp I); // COMMENT_ONLY

virtual NTSTATUS Write(KIrp I); // COMMENT_ONLY

#endif

// Member Data

protected:

ULONG m_Unit;

KUsbLowerDevice m_Lower;

KUsbInterface m_Interface;};

#endif

interface.h

// interface.h - device interface classes for AT91UsbMassStorage

#define AT91UsbMassStorageDevice_CLASS_GUID \

{ 0x636be6b4, 0x408c, 0x4b38, { 0x93, 0x4e, 0xac, 0xf3, 0x75, 0x71, 0xff, 0x9d } }

function.h

// function.h // This file controls which driver functions are enabled.

#ifndef __function_h__

#define __function_h__

#define DRIVER_FUNCTION_CREATE

#define DRIVER_FUNCTION_CLOSE

#define DRIVER_FUNCTION_DEVICE_CONTROL

#define DRIVER_FUNCTION_READ

#define DRIVER_FUNCTION_WRITE

#define DRIVER_FUNCTION_ADD_DEVICE

#define DRIVER_FUNCTION_PNP

#define DRIVER_FUNCTION_POWER

#define DRIVER_FUNCTION_SYSTEM_CONTROL

#define DRIVER_FUNCTION_UNLOAD

#define DRIVER_FUNCTION_CLEANUP

#endif

AT91UsbMassStorage.inf

;--------- Version Section ---------------------------------------------------

[Version]

Signature="$Windows 95$"

Provider=%ProviderName%

Class=NewDeviceClass

ClassGUID={ff646f80-8def-11d2-9449-00105a075f6b}

; 9X Style

[ClassInstall]

Addreg=Class_AddReg

; NT Style

[ClassInstall32]

Addreg=Class_AddReg

[Class_AddReg]

HKR,,,,%DeviceClassName%

HKR,,Icon,,"-18"

;--------- DestinationDirs Section -------------------------------------------

[DestinationDirs]

AT91UsbMassStorage_Files_Driver = 10,System32\Drivers

;--------- Manufacturer and Models Sections ----------------------------------

[Manufacturer]

%MfgName%=Mfg0

[Mfg0]

%DeviceDesc%=AT91UsbMassStorage_DDI, USB\VID_FFF2&PID_FFF1

;---------- DDInstall Sections -----------------------------------------------

; --------- Windows 9X -----------------

; Experimentation has shown that DDInstall root names greater than 19 characters

; cause problems in Windows 98

[AT91UsbMassStorage_DDI]

CopyFiles=AT91UsbMassStorage_Files_Driver

AddReg=AT91UsbMassStorage_9X_AddReg

[AT91UsbMassStorage_9X_AddReg]

HKR,,DevLoader,,*ntkern

HKR,,NTMPDriver,,AT91UsbMassStorage.sys

HKR, "Parameters", "BreakOnEntry", 0x00010001, 0

; --------- Windows NT -----------------

[AT91UsbMassStorage_DDI.NT]

CopyFiles=AT91UsbMassStorage_Files_Driver

AddReg=AT91UsbMassStorage_NT_AddReg

[AT91UsbMassStorage_DDI.NT.Services]

Addservice = AT91UsbMassStorage, 0x00000002, AT91UsbMassStorage_AddService

[AT91UsbMassStorage_AddService]

DisplayName = %SvcDesc%

ServiceType = 1 ; SERVICE_KERNEL_DRIVER

StartType = 3 ; SERVICE_DEMAND_START

ErrorControl = 1 ; SERVICE_ERROR_NORMAL

ServiceBinary = %10%\System32\Drivers\AT91UsbMassStorage.sys

[AT91UsbMassStorage_NT_AddReg]

HKLM, "System\CurrentControlSet\Services\AT91UsbMassStorage\Parameters",\

"BreakOnEntry", 0x00010001, 0

; --------- Files (common) -------------

[AT91UsbMassStorage_Files_Driver]

AT91UsbMassStorage.sys

;--------- Strings Section ---------------------------------------------------

[Strings]

ProviderName="Your Company Name here"

MfgName="Name of HW Manufacturer here"

DeviceDesc="Description of Device here"

DeviceClassName="Description of Device class here"

SvcDesc="Description of NT service here"

Нравится материал? Поддержи автора!

Ещё документы из категории информатика:

X Код для использования на сайте:
Ширина блока px

Скопируйте этот код и вставьте себе на сайт

X

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

После чего кнопка «СКАЧАТЬ» станет доступной!

Кнопочки находятся чуть ниже. Спасибо!

Кнопки:

Скачать документ