Рисунок 2.3 – Функциональная схема устройства для чтения электронных книг
2.5 Разработка программного обеспечения микроконтроллера
Несвязанное с компьютером устройство может только считывать записанную в него книгу. Для стирания памяти либо записи в неё надо выбрать пункт меню: "Связь с ЭВМ", непосредственно затем послать либо число 0x5e, либо 0xe5. В первом случае устройсво перейдёт в командный режим, во втором - в отладочный, когда принимаемый от компьютера символ будет просто отображаться на экране.
Команды, подаваемые на устройство, таковы:
10 - стереть первую МС памяти,
20 - стереть вторую МС памяти,
30 - записать в память данные,
40 - считать из памяти начиная с текущего адреса,
50 - выставить текущий адрес.
Последние две команды являются также отладочными и не используются в обычном нормальном функционировании устройства. Первые две не требуют никаких дальнейших действий кроме ожидания сообщения на экране устройства, что память стёрта. Команда записи в память потребует сначала ввести заголовок данной книги (то есть автора и название, это нужно для дальнейшей идентификации текста при использовании устройства), завершив его посылкой символа 0x07, а затем передать массив текста. После окончания цикла записи символа в память устройство подтверждает приём, посылая этот же символ в компьютер, что позволяет контролировать скорость передачи данных, и не потерять данные при записи. Передача текста также финишируется посылкой кода 0x07. Этот код был выбран потому, что является управляющим и обозначает звонок, писк на динамике компьютера (bell), то есть принципиально не может встретиться в текстовых файлах.
Файлы программ находятся в приложениях А-З:
reader.asm – Приложение А;
rus.inc – Приложение Б;
reader.hex – Приложение В;
reader.cpp – Приложение Д;
reader.exe – Приложение Ж;
reader.ini – Приложение З.
Первый файл, reader.asm (Приложение А), содержит собственно код для AT90S8515, следующий файл содержит эквиваленты русских букв (AVR Studio традиционно некорректно работает с неанглийскими символами, причём проблема эта прекрасно известна программистам Atmel), reader.hex (Приложение В) - откомпилированный код, прошивка того, что получилось. Далее содержится пример программы для компьютера, написанной на языке Си под DOS, позволяющей записывать текстовые файлы - reader.cpp (Приложение Д), reader.exe (Приложение Ж) - это соответственно откомпилированный reader.cpp, а reader.ini (Приложение З) - файл настроек для программы. Настроек, собственно, две: это на какой порт подключено устройство (в примере поддерживаются только COM1 и COM2, впрочем, легко добавить в исходник программы и остальные порты) и кодировка записываемого текста (WIN или DOS). Само устройство отображает текст, который записан в него только в кодировке WIN, но поскольку очень много текстов в Интернете, доставшихся в наследство ещё от FIDO, имеют кодировку DOS, то программа позволяет перекодировать при записи, на лету, освобождая пользователя от этой предварительной процедуры. Также программа отфильтровывает "лишние" пробелы, получившиеся при форматировании текста, убирает переносы, оставляя нетонутыми дефисы и тире перед фразами речи. Для программы при запуске существуют два возожных параметра - либо "reader.exe e", означающий стирание памяти, либо "reader.exe w <имя_файла>", позволяющее записать файл. При записи программа попросит ввести имя автора и название книги.
2.6 Выбор элементной базы
Устройство предназначено для прочтения текстовой информации, записанной по COM-порту во flash-память AT49F040, на алфавитно-цифровом индикаторе с контроллером HD44780 фирмы Hitachi и русифицированным знакогенератором. Размер памяти 1 Мбайт, всего возможно записать 8 книг, с возможностью оставить закладку на каждую книгу. Размер дисплея 40х2 строчки, что, как показала практика, вполне достаточно для восприятия смысла написанного.
"Сердцем" устройства является микроконтроллер AT90S8515, управляющий шинами адреса-данных, принимающий команды от компьютера и выводящий на индикатор. Для защёлкивания младших 8 бит адреса служит регистр КР1533ИР33 (аналог 74ALS573). Для преобразования уровней RS-232C служит также хорошо известная микросхема ADM202 фирмы Analog Devices.
Особых приоритетов в выборе элементной базы нет, поэтому выбираем наиболее подходящие комплектующие, которые будут соответствовать критериам:
- минимизация размера;
- минимизация стоимости;
- надежность работы.
Единственно на что требуется обратить внимание – кнопки. Для эстетики можно поставить красивые и миниатюрные кнопки, но они не выдержат интенисивного нажимания (всё-таки двустрочный дисплей, нажимать прийдется где-то раз в секунду), поэтому прийдется поставить произведение отечественной "оборонки" - кнопки на основе концевиков - КМ1-1.
Спецификация элементов приведена в Приложении К.
2.7 Разработка схемы электрической принципиальной
Разрабатываем в Accel EDA схему электрическую принципиальную устройства для чтения электронных книг (Рисунок 2.4).
Рисунок 2.4 - Принципиальная схема устройства для чтения электронных книг в Accel EDA
Электрическая принципиальная схема устройства для чтения электронных книг приведена в Приложении Л.
3. Технико-экономическое обоснование объекта разработки
В данном разделе проводится технико-экономический расчет стоимости устройства для чтения электронных книг.
Стоимость устройства будет состоять из стоимости разработки ПО для микроконтроллера, стоимости разработки конструкторской документации (КД) и стоимости сборки и испытания устройства.
3.1 Расчет расходов на ПО, которое разрабатывается
Исходные данные для расчета стоимости разработки ПО, которое разрабатывается приведены в таблице 3.1.
Таблица 3.1 – Исходные данные по предприятию
№п/п | Статьи затрат | Усл. обоз. | Ед. изм. | Значения | |
Проектирование и разработка ПО | |||||
1 | Часовая тарифная ставка программиста | Зпр | грн. | 8,00 | |
2 | Коэффициент сложности программы | с | коэф. | 1,40 | |
3 | Коэффициент коррекции программы | Р | коэф. | 0,05 | |
4 | Коэффициент увеличения расходов труда | Z | коэф. | 1,3 | |
5 | Коэффициент квалификации программиста | k | коэф. | 1,0 | |
6 | Амортизационные отчисления | Амт | % | 10,0 | |
7 | Мощность компьютера, принтера | WМ | Квт/ч | 0,40 | |
8 | Стоимость ПЕОМ IBMSempron LE1150(AM2)/1GB/TFT | Втз | грн. | 3200,00 | |
9 | Тариф на электроэнергию | Це/е | грн. | 0,56 | |
10 | Норма дополнительной зарплаты | Нд | % | 10,0 | |
11 | Отчисление на социальные расходы | Нсоц | % | 37,2 | |
12 | Транспортно-заготовительные расходы | Нтр | % | 4,0 | |
Эксплуатация П0 | |||||
13 | Численность обслуживающего персонала | Чо | чел | 1 | |
14 | Часовая тарифная ставка обслуживающего персонала | Зпер | грн. | 6,00 | |
15 | Время обслуживания систем | То | час/г | 150 | |
16 | Стоимость ПЕОМ | Втз | грн. | 3200,00 | |
17 | Норма амортизационных отчислений на ПЕОМ | На | % | 10,0 | |
18 | Норма амортизационных отчислений на ПЗ | НаПО | % | 10,0 | |
19 | Накладные расходы | Рнак | % | 25,0 | |
20 | Отчисление на содержание и ремонт ПЕОМ | Нр | % | 10,0 | |
21 | Стоимость работы одного часа ПЕОМ | Вг | грн. | 6,5 |
Первичными исходными данными для определения себестоимости ПО является количество исходных команд (операторов) конечного программного продукта. Условное количество операторов Q в программе задания может быть оценено по формуле: