
Раздел 2 проектно-конструкторский
2.1 Выбор элементной базы
Для успешного построения устройства нам необходимо выбрать тип микроЭВМ, светодиодов, микросхем стабилизаторов и адаптера RS-232, ключевых элементов и пр., т.е. всех составляющих схемы разрабатываемого устройства.
Микроконтроллер.
В современных микроЭВМ применяются следующие архитектуры процессоров:
RISC (Reduce Instruction Set Commands) – архитектура с сокращенным набором команд;
CISC (Complex Instruction Set Commands) – традиционная архитектура с расширенным набором команд;
ARM (Advanced RISC-machine) – усовершенствованная RISC архитектура.
Главная задача RISC архитектуры — обеспечение наивысшей производительности процессора. Её отличительными чёртами является:
малое число команд процессора (несколько десятков);
каждая команда выполняется за минимальное время (1-2 машинных цикла, такта).
максимально возможное число регистров общего назначения процессора (несколько тысяч);
увеличенная разрядность процессора (12,14,16 бит).
Современная RISC архитектура включает, как правило, только последние 3 пункта, т.к. за счет повышенной плотности компоновки БИС стало возможным реализовать большое количество команд.
CISC архитектура применяется в основном в больших микропроцессорных комплектах, высокопроизводительных ЭВМ. Для реализации нашего устройства достаточно будет использовать простой контроллер с RISC архитектурой, имеющего развитые средства разработки, отладки программ и записи их в память микросхемы.
Отбрасывая ОМЭВМ, предназначенные для работы с аналоговыми сигналами (DSP), для выполнения большого объема вычислений, получаем всего несколько семейств микроконтроллеров, доступных широкой массе потребителей: Microchip PIC, Atmel AVR, Intel MCS'51, Motorola 68HC05, и пр. Они отличаются в основном системой команд и производительностью. Рисунок 1 показывает сравнительную производительность микроконтроллеров этих семейств.
Рисунок
1 — Сравнительная характеристика
некоторых микропроцессорных платформ
То, что одно семейство, имеющее короткое время исполнения команд, например, AVR, эффективнее другого, с более "длинными" командами, например MCS'51, однозначно утверждать нельзя. AVR-семейство представляет собой чистую RISC-архитектуру, программы для микроконтроллеров этого типа достаточно длинные, объемные, т.к. все операции проводятся через РОНы. У микроконтроллеров семейства PIC система команд урезанная, и состоит всего из 33 команд. Хотя они исполняются достаточно быстро, общая производительность низка. Примерно то же самое относится к семейству HC05. Однокристальные микроЭВМ семейства C'51 пользуются спросом и уважением разработчиков всего мира, в первую очередь за эффективную систему команд, дающую хорошую производительность системы в целом, не смотря на длинный командный цикл. Сравнивая два противоположных в этом плане семейства AVR и C'51, в конечном итоге их производительности примерно равны: за одно и то же время они делают одну и ту же "работу".
Немаловажным обстоятельством является удобство в использовании ОМЭВМ для разработчика. Стандартные МК фирмы Intel имели внутреннюю память программ с УФ-стиранием, либо с масочным ПЗУ, что сильно сдерживало их использование в "домашних" условиях. Фирма ATMEL разработала полный аналог этих МК, с добавлением такой функции, как ISP — программирование в системе: для перезаписи программы в контроллер требуются считанные секунды.
AVR-семейство контроллеров продолжает развиваться и по сей день, обеспечивая разработчика широким набором встроенной периферии. В сравнении с семейством MCS'51 оно более удобно в использовании, т.к. в AVR каждый модуль – таймер, счетчик, интерфейс UART, SPI и др., независим друг от друга. В 51-х контроллерах этого не скажешь: таймеры и интерфейсы так или иначе взаимосвязаны. Для нашего устройства с большой нагрузкой на ПО, где необходимо осуществлять подсчет текущего времени суток, динамически формировать изображение на матрице, выдерживать строгие временные интервалы для поддержки однопроводного интерфейса – и все с разной частотой и периодичностью, AVR подходит более всего.
Набор AVR-микроконтроллеров достаточно широк. Для выбора конкретного типа необходимо подсчитать минимальное число выводов, а также определить необходимые встроенные аппаратные средства для поддержки работы других элементов.
В таблице 3 приведены некоторые типы AVR-микроконтроллеров. Они отличаются набором периферии, объемом внутренней памяти программ и данных, числом доступных портов ввода-вывода, корпусами, быстродействием, напряжением питания и пр. Излишние функциональные возможности нежелательны, т.к. это увеличивает стоимость контроллера; их недостаток, наоборот, приведет к невозможности выполнения поставленной задачи. Чтобы правильно выбрать тип контроллера, необходимо иметь представление о программе, выполняемой на нем, и ее задачах. Она потребует достаточно много места: один протокол Modbus только в "чистом" виде, т.е. только процедуры приема и отправки байтов, кодирования/декодирования пакетов, занимают около 1 Кб (modbus.asm). Обработка команд, поступающих с ПК, также потребует около 1 Кб постоянной памяти (command.asm). Обеспечение работы однопроводного интерфейса и обслуживание датчика температуры занимает примерно 1,5 Кб (ds18x.asm). Обработчики прерываний от системных таймеров и связанные с ними процедуры займут около 2 Кб. Основной модуль программы займет еще примерно 2 Кб. Получается, объем только постоянной памяти программ должен быть не менее 7 Кбайт.
Таблица 3 — Микроконтроллеры семейства AVR.
AVR ® |
FLASH (KB) |
EEPROM (Bytes) |
RAM (Bytes) With 32 Register |
Instructions |
I/O pins |
Interrupts |
Ext Interrupts |
SPI |
UART |
TWI |
Hardware Multiplier |
8-bit timer |
16-bit timer |
PWM |
Watchdog Timer |
RTC Timer |
Analog Comp |
10-bit A/D Channels |
On Chip RC-Oscillator |
Brown Out Detector |
In System Programming |
Self Program Memory |
Vcc(V) |
Clock Speed (MHz) |
Packages |
ATtiny11L |
1 |
- |
32 |
90 |
6 |
4 |
1(+5) |
- |
- |
- |
- |
1 |
- |
- |
Y |
- |
Y |
- |
Y |
- |
Y |
- |
2.7-5.5 |
0-2 |
8-pin DIP, SOIC |
ATtiny11 |
1 |
- |
32 |
90 |
6 |
4 |
1(+5) |
- |
- |
- |
- |
1 |
- |
- |
Y |
- |
Y |
- |
Y |
- |
Y |
- |
4.0-5.5 |
0-6 |
8-pin DIP, SOIC |
ATtiny12V |
1 |
64 |
32 |
90 |
6 |
5 |
1(+5) |
- |
- |
- |
- |
1 |
- |
- |
Y |
- |
Y |
- |
Y |
Y |
Y |
- |
1.8-5.5 |
0-1 |
8-pin DIP, SOIC |
ATtiny12L |
1 |
64 |
32 |
90 |
6 |
5 |
1(+5) |
- |
- |
- |
- |
1 |
- |
- |
Y |
- |
Y |
- |
Y |
Y |
Y |
- |
2.7-5.5 |
0-4 |
8-pin DIP, SOIC |
ATtiny12 |
1 |
64 |
32 |
90 |
6 |
5 |
1(+5) |
- |
- |
- |
- |
1 |
- |
- |
Y |
- |
Y |
- |
Y |
Y |
Y |
- |
4.0-5.5 |
0-8 |
8-pin DIP, SOIC |
ATtiny15L |
1 |
64 |
32 |
90 |
6 |
8 |
1(+5) |
- |
- |
- |
- |
2 |
- |
1 |
Y |
- |
Y |
4 |
Y |
Y |
Y |
- |
2.7-5.5 |
1.6 |
8-pin DIP, SOIC |
ATtiny26L |
2 |
128 |
128+32 |
118 |
16 |
11 |
1(+8) |
1 |
1 |
1 |
- |
2 |
- |
4 |
Y |
- |
Y |
11 |
Y |
Y |
Y |
- |
2.7-5.5 |
0-8 |
20-pin DIP, SOIC |
32-pin MLF |
|||||||||||||||||||||||||
ATtiny26 |
2 |
128 |
128+32 |
118 |
16 |
11 |
1(+8) |
1 |
1 |
1 |
- |
2 |
- |
4 |
Y |
- |
Y |
11 |
Y |
Y |
Y |
- |
4.5-5.5 |
0-16 |
20-pin DIP, SOIC |
32-pin MLF |
|||||||||||||||||||||||||
ATtiny28V |
2 |
- |
32 |
90 |
20 |
5 |
1(+8) |
- |
- |
- |
- |
1 |
- |
- |
Y |
- |
Y |
- |
Y |
- |
Y |
- |
1.8-5.5 |
0-1 |
28-pin DIP |
32-pin TQFP, MLF |
|||||||||||||||||||||||||
ATtiny28L |
2 |
- |
32 |
90 |
20 |
5 |
1(+8) |
- |
- |
- |
- |
1 |
- |
- |
Y |
- |
Y |
- |
Y |
- |
Y |
- |
2.7-5.5 |
0-4 |
28-pin DIP |
32-pin TQFP, MLF |
|||||||||||||||||||||||||
AT90S1200 |
1 |
64 |
32 |
89 |
15 |
3 |
1 |
- |
- |
- |
- |
1 |
- |
- |
Y |
- |
Y |
- |
Y |
- |
Y |
- |
2.7-6.0 |
0-4 |
20-pin DIP, SOIC, SSOP |
AT90S1200 |
1 |
64 |
32 |
89 |
15 |
3 |
1 |
- |
- |
- |
- |
1 |
- |
- |
Y |
- |
Y |
- |
Y |
- |
Y |
- |
4.0-6.0 |
0-12 |
20-pin DIP, SOIC, SSOP |
AT90S2313 |
2 |
128 |
128+32 |
120 |
15 |
10 |
2 |
- |
1 |
- |
- |
1 |
1 |
1 |
Y |
- |
Y |
- |
- |
- |
Y |
- |
2.7-6.0 |
0-4 |
20-pin DIP, SOIC |
AT90S2313 |
2 |
128 |
128+32 |
120 |
15 |
10 |
2 |
- |
1 |
- |
- |
1 |
1 |
1 |
Y |
- |
Y |
- |
- |
- |
Y |
- |
4.0-6.0 |
0-10 |
20-pin DIP, SOIC |
AT90LS2323 |
2 |
128 |
128+32 |
120 |
3 |
2 |
1 |
- |
- |
- |
- |
1 |
- |
- |
Y |
- |
- |
- |
- |
- |
Y |
- |
2.7-6.0 |
0-4 |
8-pin DIP, SOIC |
AT90S2323 |
2 |
128 |
128+32 |
120 |
3 |
2 |
1 |
- |
- |
- |
- |
1 |
- |
- |
Y |
- |
- |
- |
- |
- |
Y |
- |
4.0-6.0 |
0-10 |
8-pin DIP, SOIC |
AT90LS2343 |
2 |
128 |
128+32 |
120 |
5 |
2 |
1 |
- |
- |
- |
- |
1 |
- |
- |
Y |
- |
- |
- |
Y |
- |
Y |
- |
2.7-6.0 |
0-1 |
8-pin DIP, SOIC |
AT90LS2343 |
2 |
128 |
128+32 |
120 |
5 |
2 |
1 |
- |
- |
- |
- |
1 |
- |
- |
Y |
- |
- |
- |
Y |
- |
Y |
- |
2.7-6.0 |
0-4 |
8-pin DIP, SOIC |
AT90S2343 |
2 |
128 |
128+32 |
120 |
5 |
2 |
1 |
- |
- |
- |
- |
1 |
- |
- |
Y |
- |
- |
- |
Y |
- |
Y |
- |
4.0-6.0 |
0-10 |
8-pin DIP, SOIC |
AT90LS4433 |
4 |
256 |
128+32 |
120 |
20 |
14 |
2 |
1 |
1 |
- |
- |
1 |
1 |
1 |
Y |
- |
Y |
6 |
- |
Y |
Y |
- |
2.7-6.0 |
0-4 |
28-pin DIP |
32-pin TQFP |
|||||||||||||||||||||||||
AT90S4433 |
4 |
256 |
128+32 |
120 |
20 |
14 |
2 |
1 |
1 |
- |
- |
1 |
1 |
1 |
Y |
- |
Y |
6 |
- |
Y |
Y |
- |
4.0-6.0 |
0-8 |
28-pin DIP |
32-pin TQFP |
|||||||||||||||||||||||||
AT90S8515 |
8 |
512 |
512-32 |
130 |
32 |
12 |
2 |
1 |
1 |
- |
- |
1 |
1 |
2 |
Y |
- |
Y |
- |
- |
- |
Y |
- |
2.7-6.0 |
0-4 |
40-pin DIP |
44-pin PLCC, TQFP |
|||||||||||||||||||||||||
AT90S8515 |
8 |
512 |
512-32 |
130 |
32 |
12 |
2 |
1 |
1 |
- |
- |
1 |
1 |
2 |
Y |
- |
Y |
- |
- |
- |
Y |
- |
4.0-6.0 |
0-8 |
40-pin DIP |
44-pin PLCC, TQFP |
|||||||||||||||||||||||||
AT90LS8535 |
8 |
512 |
512-32 |
130 |
32 |
16 |
2 |
1 |
1 |
- |
- |
2 |
1 |
3 |
Y |
Y |
Y |
8 |
- |
- |
Y |
- |
2.7-6.0 |
0-4 |
40-pin DIP |
44-pin PLCC, TQFP |
|||||||||||||||||||||||||
AT90S8535 |
8 |
512 |
512-32 |
130 |
32 |
16 |
2 |
1 |
1 |
- |
- |
2 |
1 |
3 |
Y |
Y |
Y |
8 |
- |
- |
Y |
- |
4.0-6.0 |
0-8 |
40-pin DIP |
44-pin PLCC, TQFP |
|||||||||||||||||||||||||
ATmega8L |
8 |
512 |
1K+32 |
130 |
23 |
18 |
2 |
1 |
1 |
1 |
Y |
2 |
1 |
3 |
Y |
Y |
Y |
4+2 |
Y |
Y |
Y |
Y |
2.7-5.5 |
0-8 |
28-pin DIP |
6+2 |
32-pin MLF, TQFP |
||||||||||||||||||||||||
ATmega8 |
8 |
512 |
1K+32 |
130 |
23 |
18 |
2 |
1 |
1 |
1 |
Y |
2 |
1 |
3 |
Y |
Y |
Y |
4+2 |
Y |
Y |
Y |
Y |
4.5-5.5 |
0-16 |
28-pin DIP |
6+2 |
32-pin MLF, TQFP |
||||||||||||||||||||||||
ATmega8535L |
8 |
512 |
512-32 |
130 |
32 |
20 |
3 |
1 |
1 |
1 |
Y |
2 |
1 |
4 |
Y |
Y |
Y |
8 |
Y |
Y |
Y |
Y |
2.7-5.5 |
0-8 |
40-pin DIP |
44-pin TQFP, MLF |
|||||||||||||||||||||||||
ATmega8535 |
8 |
512 |
512-32 |
130 |
32 |
20 |
3 |
1 |
1 |
1 |
Y |
2 |
1 |
4 |
Y |
Y |
Y |
8 |
Y |
Y |
Y |
Y |
4.5-5.5 |
0-16 |
40-pin DIP |
44-pin TQFP, MLF |
|||||||||||||||||||||||||
ATmega8515L |
8 |
512 |
512+32 |
130 |
35 |
16 |
3 |
1 |
1 |
1 |
Y |
1 |
1 |
2 |
Y |
- |
Y |
- |
Y |
Y |
Y |
Y |
2.7-5.5 |
0-8 |
40-pin DIP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44-pin TQFP, MLG |
ATmega8515 |
8 |
512 |
512+32 |
130 |
35 |
16 |
3 |
1 |
1 |
1 |
Y |
1 |
1 |
2 |
Y |
- |
Y |
- |
Y |
Y |
Y |
Y |
4.5-5.5 |
0-16 |
40-pin DIP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44-pin TQFP, MLG |
ATmega161L |
16 |
512 |
1K+32 |
130 |
35 |
20 |
3 |
1 |
2 |
- |
Y |
2 |
1 |
4 |
Y |
Y |
Y |
- |
- |
Y |
Y |
Y |
2.7-5.5 |
0-4 |
40-pin DIP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44-pin TQFP |
ATmega161 |
16 |
512 |
1K+32 |
130 |
35 |
20 |
3 |
1 |
2 |
- |
Y |
2 |
1 |
4 |
Y |
Y |
Y |
- |
- |
Y |
Y |
Y |
4.0-5.5 |
0-8 |
40-pin DIP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44-pin TQFP |
ATmega162V |
16 |
512 |
1K+32 |
130 |
35 |
20 |
3(+16) |
1 |
2 |
1 |
Y |
2 |
2 |
6 |
Y |
Y |
Y |
- |
Y |
Y |
Y |
Y |
1.8-3.6 |
0-1 |
40-pin DIP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44-pin TQFP, MLF |
ATmega162L |
16 |
512 |
1K+32 |
130 |
35 |
20 |
3(+16) |
1 |
2 |
1 |
Y |
2 |
2 |
6 |
Y |
Y |
Y |
- |
Y |
Y |
Y |
Y |
2.7-5.5 |
0-8 |
40-pin DIP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44-pin TQFP, MLF |
ATmega162 |
16 |
512 |
1K+32 |
130 |
35 |
20 |
3(+16) |
1 |
2 |
1 |
Y |
2 |
2 |
6 |
Y |
Y |
Y |
- |
Y |
Y |
Y |
Y |
4.5-5.5 |
0-16 |
40-pin DIP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44-pin TQFP, MLF |
ATmega163L |
16 |
512 |
1K+32 |
130 |
32 |
17 |
2 |
1 |
1 |
1 |
Y |
2 |
1 |
3 |
Y |
Y |
Y |
8 |
Y |
Y |
Y |
Y |
2.7-5.5 |
0-4 |
40-pin DIP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44-pin TQFP |
ATmega163 |
16 |
512 |
1K+32 |
130 |
32 |
17 |
2 |
1 |
1 |
1 |
Y |
2 |
1 |
3 |
Y |
Y |
Y |
8 |
Y |
Y |
Y |
Y |
4.0-5.5 |
0-8 |
40-pin DIP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44-pin TQFP |
ATmega16L |
16 |
512 |
1K+32 |
130 |
32 |
20 |
3 |
1 |
1 |
1 |
Y |
2 |
1 |
4 |
Y |
Y |
Y |
8 |
Y |
Y |
Y |
Y |
2.7-5.5 |
0-8 |
40-pin DIP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44-pin TQFP, MLF |
ATmega16 |
16 |
512 |
1K+32 |
130 |
32 |
20 |
3 |
1 |
1 |
1 |
Y |
2 |
1 |
4 |
Y |
Y |
Y |
8 |
Y |
Y |
Y |
Y |
4.5-5.5 |
0-16 |
40-pin DIP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44-pin TQFP, MLF |
ATmega323L |
32 |
1K |
2K+32 |
130 |
32 |
19 |
3 |
1 |
1 |
1 |
Y |
2 |
1 |
4 |
Y |
Y |
Y |
8 |
Y |
Y |
Y |
Y |
2.7-5.5 |
0-4 |
40-pin DIP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44-pin TQFP |
ATmega323 |
32 |
1K |
2K+32 |
130 |
32 |
19 |
3 |
1 |
1 |
1 |
Y |
2 |
1 |
4 |
Y |
Y |
Y |
8 |
Y |
Y |
Y |
Y |
4.0-5.5 |
0-8 |
40-pin DIP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44-pin TQFP |
ATmega32L |
32 |
1K |
2K+32 |
130 |
32 |
20 |
3 |
1 |
1 |
1 |
Y |
2 |
1 |
4 |
Y |
Y |
Y |
8 |
Y |
Y |
Y |
Y |
2.7-5.5 |
0-8 |
40-pin DIP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44-pin TQFP, MLF |
ATmega32 |
32 |
1K |
2K+32 |
130 |
32 |
20 |
3 |
1 |
1 |
1 |
Y |
2 |
1 |
4 |
Y |
Y |
Y |
8 |
Y |
Y |
Y |
Y |
4.5-5.5 |
0-16 |
40-pin DIP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44-pin TQFP, MLF |
ATmega64L |
64 |
2K |
4K+32 |
133 |
53 |
34 |
8 |
1 |
2 |
1 |
Y |
2 |
2 |
6+2 |
Y |
Y |
Y |
8 |
Y |
Y |
Y |
Y |
2.7-5.5 |
0-8 |
64-pin TQFP, MLF |
ATmega64 |
64 |
2K |
4K+32 |
133 |
53 |
34 |
8 |
1 |
2 |
1 |
Y |
2 |
2 |
6+2 |
Y |
Y |
Y |
8 |
Y |
Y |
Y |
Y |
4.5-5.5 |
0-16 |
64-pin TQFP, MLF |
ATmega169V |
16 |
512 |
1K+32 |
139 |
54 |
22 |
1(+16) |
1 |
1 |
1 |
Y |
2 |
1 |
4 |
Y |
Y |
Y |
8 |
Y |
Y |
Y |
Y |
1.8-3.6 |
0-1 |
64-pin TQFP, MLF |
ATmega169L |
16 |
512 |
1K+32 |
139 |
54 |
22 |
1(+16) |
1 |
1 |
1 |
Y |
2 |
1 |
4 |
Y |
Y |
Y |
8 |
Y |
Y |
Y |
Y |
2.7-3.6 |
0-4 |
64-pin TQFP, MLF |
ATmega103L |
128 |
4K |
4K+32 |
121 |
48 |
16 |
8 |
1 |
1 |
- |
- |
2 |
1 |
4 |
Y |
Y |
Y |
8 |
- |
- |
Y |
- |
2.7-3.6 |
0-4 |
64-pin TQFP |
ATmega103 |
128 |
4K |
4K+32 |
121 |
48 |
16 |
8 |
1 |
1 |
- |
- |
2 |
1 |
4 |
Y |
Y |
Y |
8 |
- |
- |
Y |
- |
4.0-5.5 |
0-6 |
64-pin TQFP |
ATmega128L |
128 |
4K |
4K+32 |
133 |
53 |
34 |
8 |
1 |
2 |
1 |
Y |
2 |
2 |
6+2 |
Y |
Y |
Y |
8 |
Y |
Y |
Y |
Y |
2.7-5.5 |
0-8 |
64-pin TQFP, MLF |
ATmega128 |
128 |
4K |
4K+32 |
133 |
53 |
34 |
8 |
1 |
2 |
1 |
Y |
2 |
2 |
6+2 |
Y |
Y |
Y |
8 |
Y |
Y |
Y |
Y |
4.5-5.5 |
0-16 |
64-pin TQFP, MLF |
Всем требованиям рассмотренных в разделе 1.5 удовлетворяет микросхема ATmega32L (см. Приложение Б). Следует отметить, что она имеет четыре 8-битных порта, поэтому избыточное число выводов можно использовать, исключив, н-р, дешифратор строк. Эту задачу возлагаем теперь на ПО.
Адаптер интерфейса RS-232.
Для построения адаптера интерфейса RS-232 фирма MAXIM выпустила ряд микросхем, отличающихся числом линий связи и электрическими параметрами. В настоящее время существуют их более дешевые аналоги пр-ва других фирм, например, ADM, STM.
При выборе той или иной ИМС необходимо руководствоваться следующими соображениями:
Должно быть минимально необходимое число линий;
Корпус типа DIP для монтажа на плату 3 класса точности;
Однополярное напряжение питания.
Вообще, из представленных в таблице 4 ИМС подойдет любая, т.к. связь с ПК будет осуществляться по протоколу Modbus, а он требует только двух линий передачи данных. Выберем те, которые имеют минимальное число выводов, т.е в корпусе DIP-16. Всем критериям удовлетворяют только 2 типа: MAX202 и MAX232. Неудивительно, что именно эти ИМС пользуются наибольшей популярностью у разработчиков и встречаются наиболее часто в различных любительских и профессиональных схемах.
Адаптер переходник с интерфейса RS-232 на USB интерфейс.
Основные характеристики:
Производитель - Orient Hero International Ltd
Модель - USS-101
Параметры производительности:
Скорость передачи данных - 1 Мбит/сек
Прочие характеристики:
Длина кабеля - 0.8 метра
Прочее:
Со стороны COM порта для крепежа используются винты
Таблица 4 — Микросхемы преобразователей RS-232
Датчик температуры
При выборе типа датчиков температуры использовалась таблица 5.
Таблица 5 — Параметры распространенных датчиков температуры
В сравнении с датчиками серии ds1820 фирмы Dallas они проигрывают в точности и удобстве подключения. Можно, конечно, использовать термозависимые сопротивления типа ТСМ, ТСП и др., но это требует использования АЦП, схем согласования, и дополнительной программной обработки первичных результатов. Датчики фирмы Dallas имеют отличную точность (0,5°С), требуют всего 2 провода (земляной и сигнальный), выдают данные в цифровом виде. Конечно, связь по однопроводному интерфейсу без использования аппаратной поддержки требует более сложного программного обеспечения, но из-за относительной медлительности интерфейса и за счет использования в связи с этим системы прерываний нагрузка на процессор получается минимальной.
Прочие элементы.
Цифровые микросхемы регистров, дешифраторов можно использовать любые из ТТЛ, ТТЛШ, КМОП-логики, серий 555, 1533, 1554.
Резисторы с допуском 5-10% - типа МЛТ, С2-23 соответствующей мощности; конденсаторы: электролитические К50-35 или импортные аналоги VISHAY, JAMICON и др., в цепях питания для подавления помех К10-17б.
Остальные элементы – по назначению, с подходящими конструктивными, технологическими, электрическими параметрами.
2.2 Разработка принципиальной схемы устройства
Принципиальная схема устройства представлена на листе 2 Графического приложения. Практически все элементы схемы установлены в соответствии с технической документацией на микросхемы. Расчету подлежит только блок ключевых элементов.
Блок силовых ключей собран на транзисторах VT1 – VT16 типа КТ816А. Максимальный ток IКЭ = 1 А, напряжение UКЭ = 25В. Резисторы R4 – R19 ограничивают ток базы при подаче на вход канала напряжения лог. “0”. Минимальный ток базы, необходимый для насыщения транзистора, равен:
Сопротивление токоограничивающего резистора равно:
По ряду E24 выбираем сопротивление резистора 470 Ом.
Остальные элементы схемы устанавливаются в соответствии с технической документацией на соответствующие ИМС, и расчета не требуют.
2.3 Разработка алгоритма работы микроЭВМ.
Алгоритм работы микроЭВМ должен обеспечивать следующие функции:
- заполнение сдвигового регистра столбцов данными, соответствующими текущей строке;
- поочередное включение строк светодиодной матрицы при динамическом формировании изображения;
- формирование изображения на матрице в соответствии с текущем режимом работы;
- чтение Flash-памяти при отображении текста бегущей строки;
- учет текущего времени суток и автоматическая коррекция хода часов;
- поддержка однопроводного интерфейса;
- периодическое считывание показаний температурного датчика;
- обеспечение связи с ПК по интерфейсу RS-232, по протоколу Modbus;
- выполнение команд, прием и выдача данных на ПК;
- обслуживание дополнительных кнопок подстройки часов.
Это глобальные задачи, каждая из которых решается независимо друг от друга. Каждая из них включает в себя множество подзадач, сложных и простых, из которых складывается работа микроЭВМ в целом.
Рассмотрим принцип динамического формирования изображения на светодиодной матрице, управляемой сигналами строк (аноды) и столбцов (катоды). Формирование изображения и вывод его на дисплей – две разные задачи, которые стыкуются между собой с помощью буфера в оперативной памяти – т.н. видеопамяти. Она представляет собой просто область ОЗУ, в которой каждый бит определяет состояние соответствующего ему светодиода. Первая задача – формирование изображения - отвечает за заполнение этой видеопамяти определенными значениями; вторая задача – вывод на дисплей – считывает эту видеопамять и управляет светодиодами.
Поскольку доступ к информации осуществляется побайтно, т.е. группами по 8 бит, а число строк в разрабатываемом устройстве также равно 8, то само собой напрашивается решение представлять состояние каждого столбца в виде отдельного байта, где их число равно общему числу столбцов. Таким образом, чтобы сдвинуть "бегущий" текст на одну позицию влево, достаточно информацию, хранимую в видеопамяти, сдвинуть на один байт в сторону "левого" байта. Шрифт текста бегущей строки представляет собой символы размером 5 х 7 точек. Исключение составляют некоторые большие символы, такие как русская заглавная буква "Д" и др., где требуется 8 строк. Каждый символ текста на матрице занимает 5 столбцов; расстояние между символами одинарное, в один столбец. Изображение каждого символа хранится в энергонезависимой памяти, в специально отведенной для этих целей области, называемой знакогенератором. Каждый символ занимает 5 байт; таким образом требуется 5 х 256 = 1280 байтов.
Текст бегущей строки выводится справа налево; от старших байтов видеопамяти в сторону младших. Поэтому когда символ уже находится в пределах матрицы, обращения к знакогенератору не происходит: его изображение с определенной скоростью перемещается по видеопамяти, пока не выйдет совсем. Чтение знакогенератора требуется, чтобы "ввести" символ в рабочее поле. Это делается следующим образом. На самом деле видеопамять имеет несколько большую длину, как раз на ширину символа. Невидимые столбцы (5 шт) располагаются справа от матрицы, т.е. они занимают самые старшие 5 байт видеопамяти. При сдвиге изображения на один столбец влево они также участвуют в работе, но остаются невидимыми. Через каждые 6 сдвигов, когда эта область будет пуста, происходит обращение к памяти текста. Для этого организуется специальный счетчик, который указывает на текущую позицию символа в тексте. Его размерность равна слову, т.е. 2 байтам. Перед запуском бегущей строки этот счетчик (другими словами: "бегунок", позиция курсора, указатель и пр.) инициализируется, т.е. указывает на самый первый символ текста. Считанный ASCII-код символа затем умножается на 5, чтобы получить начальный адрес в памяти знакогенератора, где находится его изображение. Считанные 5 байтов знакогенератора копируются в старшие 5 байтов видеопамяти, заполняя опустевшее место самого правого, невидимого символа. Когда достигается граница текста, что проверяется простым сравнением счетчика текущей позиции с длиной текста, заполнение отключается — при сдвиге видеопамяти она заполняется нулями.
Немного по-другому происходит формирование изображения при выводе текущего времени суток и температуры. Время представляется в формате ЧЧ:ММ:СС. Учет текущего времени осуществляется в процедуре прерывания от системного таймера, который настроен точно на частоту 1 Гц. Самому устройству "знать" время нет необходимости, поэтому в памяти время хранится в виде, оптимальном для процедуры формирования изображения. Всего выделяется 6 байт: 2 для значений часа, 2 – для минут и 2 – для секунд. 2 байта нужны для раздельного хранения значений единиц и десятков. При отображении времени и температуры изображение статично, т.е. не сдвигается ни в какую сторону. Позиция каждого символа на матрице определена заранее и не меняется. Для заполнения видеопамяти изображением времени и температуры используется всего одна отдельная процедура. Она последовательно символ за символом "печатает" текст на изображении. Примерное изображение приведено на рисунке 2.
Рисунок 1 — Вывод текущего времени и температуры.
Первым обрабатывается счетчик десятков часов. Значение десятков часов (на рис.2 оно равно 1), представленное в двоичном коде 0x0116, преобразуется в ASCII-код 0x31 путем простого прибавления числа 0x30 (см. таблицу ASCII-кодов). Затем это значение используется как адрес при обращении к ПЗУ знакогенератора, где считываются 5 байтов изображения. Эти значения копируются в область видеопамяти, начиная с 12-ого байта. Так на дисплее появляется изображение цифры "1". Далее обрабатывается счетчик единиц часов. После этого в байтах с адресами 24 и 25 записывается значение 0x36 – это изображение двоеточия, разделяющего минуты от часов. И так далее.
Аналогично выводится температура, но здесь требуется преобразование форматов. Датчик температуры типа DS1820 выдает значение в своем, специфическом формате.
Рисунок 2 — Формат представления температуры датчика DS18B20.
Как видно, значение содержит дробную часть, а целая часть разделена между двумя байтами. Чтобы корректно отобразить температуру на дисплее, это значение преобразуется таким образом, чтобы целая и дробная части располагались в разных байтах. Кроме того, отрицательные значения должны быть преобразованы в положительные, с запоминанием знака, т.к. датчики серии DS18 выдают их в дополнительном коде.
Только после этого двоичный код преобразуется в двоично-десятичный, состоящий из трех разрядов - байтов. Печать этих байтов осуществляется аналогично выводу времени. Преобразование в двоично-десятичный код, в особенности дробной части числа, будет рассмотрено в следующей главе. В зависимости от знака, на дисплей перед температурой выводится символ "+" или "-".
Работа бегущей строки зависит от двух параметров: скорость сдвига информации и интервал между окончанием текста и его повторным запуском. Когда текст не выводится, на дисплее отображаются время и температура. По окончании паузы вновь запускается вывод текста.
Теперь о непосредственном выводе изображения. Для этого используется таймер, работающий с периодом 400 Гц. Каждые 2,5 мс вызывается процедура, которая включает очередную строку светодиодов. Т.к. строк 8, то регенерация всего изображения будет происходить за 20 мс, т.е. с частотой 50 Гц. Эту частоту можно изменить, установив соответствующий параметр.
Перед включением следующей строки предыдущая гасится. Затем в цикле, который выполняется с запретом любых прерываний для скорейшего завершения, из видеопамяти последовательно считываются байты. Из них выделяется только один бит, соответствующий текущей строке. Младший бит соответствует верхней строке, старший – нижней. Этими битами заполняется сдвиговый регистр, после чего строка включается. Это осуществляется подачей на анодный строковый сигнал напряжения питания светодиодной матрицы. Столбцовые ключи коммутируют катоды светодиодов на "землю".
Получается, формирование изображения на светодиодной матрице намного проще, чем заполнить видеопамять правильными значениями.
Одна из задач микроконтроллера – работа с внешней Flash-памятью. Ее подключение осуществляется по SPI-интерфейсу, а обмен данными выполняется по командам.
Таблица 6 — Система команд Flash-памяти AT25640.
Имя команды |
Код команды |
Описание |
WREN |
0000 X110 |
Разрешение записи |
WRDI |
0000 X100 |
Запрет записи |
RDSR |
0000 X101 |
Чтение регистра состояния |
WRSR |
0000 X001 |
Запись регистра состояния |
READ |
0000 X011 |
Чтение данных |
WRITE |
0000 X010 |
Запись данных |
Работа с микросхемой начинается с выдачи активного сигнала CS, после которого она готова к обмену информацией по SPI-интерфейсу. Первым байтом всегда идет код команды. После этого передаются данные. При чтении или записи данных на микросхему передается еще и адрес, который достаточно послать один раз за обращение. После этого счетчик адреса будет автоматически увеличиваться на 1 при каждом считывании байта.
Довольно сложной задачей является поддержка работы однопроводного интерфейса. Он достаточно медленный, а одно обращение к датчику температуры занимает минимум 5 мс. Поэтому для приема и выдачи битов используется прерывание от вспомогательного таймера. Кроме того, обмен данными осуществляется по специальному протоколу, которого также нужно придерживаться. Линейным программированием здесь хороших результатов не добьешься, т.к. помимо обслуживания датчика, микроконтроллер выполняет целый ряд других, не менее важных задач. Выходом из положения стало использование принципа "автоматного" программирования. Программный код, отвечающий за обслуживание однопроводного интерфейса, разбит на отдельные блоки, называемые состояниями. Микроконтроллер в части касающейся может быть только в одном состоянии, т.е. периодически выполняет один и тот же блок. Переходы между состояниями зависят от разных условий, что и дало название автоматного программирования по аналогии с автоматами на жесткой логике в схемотехнике. Кроме этого, используются некоторые специальные приемы, облегчающие программирование и значительно сокращающие время на обслуживание.
Рассмотрим задачу подключения к ПК через последовательный интерфейс RS-232. Связь осуществляется по протоколу Modbus. С использованием этого протокола информация передается группами, называемыми пакетами. Существуют две разновидности Modbus, отличающиеся способом кодирования байтов: Modbus RTU и Modbus ASCII. В RTU-режиме каждый байт передается как есть. Появление ошибок определяется циклическим избыточным кодом CRC. Достоинством этой схемы является более высокая скорость передачи по сравнению с ASCII-режимом, но требует большей вычислительной мощности от ЭВМ из-за использования CRC-кода. В ASCII-режиме каждый байт передается двумя ASCII-кодами шестнадцатеричного представления. Обнаружение ошибок обеспечивается линейным циклическим кодом LRC, который представляет собой простую сумму всех байт пакета (за исключением первого и последнего) без учета переноса.
Каждый пакет состоит из полей:
Признак начала пакета – символ ":" (только в ASCII-режиме)
Адрес устройства
Код функции
Адрес
Данные
Контрольная сумма
Признак конца пакета – символы CRLF (только в ASCII-режиме).
Хотя в RTU-режиме фактическая скорость передачи информации выше почти в 2 раза, режим ASCII предпочтительнее использовать в микроконтроллерных устройствах. Это обусловлено его простотой, большей надежностью, лучшей синхронизацией, более легким исполнением на ассемблере, хотя, конечно, кодирование каждого байта в виде двух кодов и декодирование на приеме значительно усложняют процедуры приема-отправки сообщений. В остальном ASCII-режим предпочтительнее.
Главное правило протокола – на любой пакет, посланный одним устройством (запрос), должен придти ответный пакет (подтверждение). Если ответа не последовало в течении определенного времени тайм-аута, пакет считается потерянным, и передача повторяется. Принимающее устройство, обнаруживая ошибку в данных, уничтожает принятую часть пакета и ответа не формирует. Данное требование обусловлено полудуплексным режимом передачи информации.
2.4 Разработка исходных текстов программ микро-ЭВМ
В нашем устройстве были использован микроконтроллер фирмы ATMEL, который имеет развитые средства поддержки, разработки и отладки. К ним относится среда проектирования программ для AVR микроконтроллеров, называемая AVR Studio ver. 4.12 SP3. Это чрезвычайно удобная среда проектирования предназначена для написания ассемблерных и Си-программ для МК, и их отладки. Программирование осуществляется по интерфейсу RS-232 с помощью программатора AVRISP. Исходный текст ассемблерной программы для микроЭВМ приведен в Приложении В. На каждое действие в программе даны комментарии, облегчающие понимание программы. Широко используются макросы, значительно сокращающие объем текста, что повышает читаемость программы.
Вся программа разбита на модули, каждый из которых предназначен для решения своей задачи:
main.avr - главный модуль программы
macros.avr - набор макросов
ds18x.avr - модуль работы с датчиками серии DS18x
command.avr - описание команд работы с ПК
modbus.avr - обслуживание протокола modbus
math.avr - набор математических процедур
При разработке программы были решены некоторые необычные, сложные задачи, например, перевод дробной части числа из двоичного формата в десятичный. Эта процедура находится в модуле math.avr. Простой перевод из двоичного в двоично-десятичный формат даст неправильный результат. К примеру, число 0x01 для целой части означает число, равное 1. При дробном представлении двоичный код 0x01 равен 2-8=0,00390625. Это есть вес младшего разряда. Соответственно, вес старшего разряда равен 0,5. Нам такое большое число цифр после запятой не нужно – достаточно четырех, из которых впоследствии можно использовать любое из них. Таким образом, двоичный код, например, 0x80 должен дать цифру 5000, представленную в двоично-десятичном формате. Но сначала нам надо преобразовать дробное представление хотя бы в обычное двоичное. Это осуществляется в цикле, который повторяется 8 раз – по числу дробных разрядов. Если в текущем разряде стоит "1", то его вес прибавляется к общей сумме, которая перед запуском цикла обнуляется. Вес старшего разряда равен 5000 (500 для трех разрядов, 50 тыс. для пяти разрядного числа и т.д.). При переходе к следующему, более младшему разряду, текущий вес понижается в 2 раза. Деление на 2 заменяется простой операцией побитного сдвига вправо.
Есть другой способ – просто умножить двоичное представление дробного числа на 5000 и откинуть младший байт. Но это потребует 16-битной операции умножения, т.е. 16 тактов вместо 8.
В остальном работа программы понятна из комментариев, данных почти в каждой строке.
2.5 Разработка программы для ПК
Для программирования бегущей строки используется персональный компьютер. Связь с ПК осуществляется через USB адаптер подключаемый к COM-порту устройства, по интерфейсу RS-232. Программа обслуживания бегущей строки разработана в среде Delphi 6.0. Она содержит всего 2 формы: основную и редактор шрифта. В основной форме пользователь может прописать текст бегущей строки, задать скорость ее движения и интервал между повторами. Кроме того, предоставляется возможность синхронизации с панелью, когда ее изображение копируется на экран ПК. В этом режиме можно увидеть в удаленном режиме, что именно отображается на панели в каждый момент времени.
Любая программа на Delphi состоит из модулей. В разработанной программе имеется 4 модуля:
- модуль обслуживания основного окна интерфейса;
- модуль обслуживания редактора шрифта;
- модуль обслуживания COM-порта ПК;
- модуль протокола Modbus.
COM-порт предоставляет физический и транспортный уровни связи, в то время как Modbus – сетевой и прикладной. Вся информация передается пакетами, построенными по определенным правилам, с использованием специального кодирования. Контроль целостности данных производится с помощью контрольной суммы, добавляемой в конце каждого кадра.
Разберем для начала, на каком принципе построено взаимодействие с бегущей строкой. ПК и строка образуют простейшую сеть, без адресации, ведущим устройством в которой является ПК. Бегущая строка самостоятельно инициировать передачу не может; она всегда посылает ответный пакет на запрос, исходящий от ПК. Формат кадра протокола следующий:
- байт с кодом 0x3A, или символ ':' (двоеточие);
- код функции – 1 байт;
- данные (от 0 до 120 байтов);
- контрольная сумма (1 байт);
- байт с кодом 0x0A или 0x0D ("возврат каретки" или "перевод строки").
Код функции определяет действие, которое должно выполнить строка. В ответном пакете этот код функции повторяется, т.е. ПК всегда знает, что выполнило, или какие данные отправило устройство.
Программный модуль ComPort.pas обеспечивает работу с COM-портом. Практически весь модуль взят из книги [12]. Он описывает процедуры захвата порта, работы с ним (прием / передача байтов), работу с дополнительными сигналами порта (DTR, DTS, RTS, CTS, RI, CD), освобождение порта. Преимущество этого модуля состоит в том, что он практически не тормозит центральный процессор, вся работа с портом осуществляется асинхронно, т.е. необходимые процедуры или функции вызываются при появлении соответствующих условий. Для этого используется поток (TThread). Он непрерывно отслеживает состояние COM-порта, и вызывает всего 2 процедуры:
- TReadByteEvent – по поступлению нового символа по COM-порту;
- TChangeStateEvent – по изменению сигналов на входах порта.
Программный модуль Modbus.pas работает с массивами данных, структурированных по правилам протокола Modbus. Он является связующим звеном между программой на ПК и программой на контроллере бегущей строки. Чтобы отправить данные на устройство, этот модуль принимает от основной программы (модуль main.pas) запрос в виде массива данных, в котором указаны:
TxPack[0] – длина данных, или общее количество байт для отправки;
TxPack[1] – код функции;
TxPack[2..255] – данные функции.
Этот запрос преобразуется в кадр, т.е. производится кодирование информации, добавляются служебные символы в начало и конец кадра, вычисляется контрольная сумма. Затем этот запрос отсылается в COM-порт. Здесь COM-порт представляется в виде файла, в который можно записать неограниченное число байт. Один за другим эти байты будут отправлены с порта, в том порядке, в каком они были записаны в этот файл.
Ответный кадр от устройства приходит уже в виде отдельных байтов, из которых модуль Modbus должен сложить правильный кадр. Любые байты, приходящие с порта, будут игнорироваться до тех пор, пока не будет принят символ с кодом 0x3A. Это признак начала пакета, после которого остальные байты будут помещаться в специальный буфер RxPack[0..255] до приема символа с кодом 0x0A или 0x0D. За эти действия отвечает процедура OnReadByte. Когда будет принят весь кадр, за его обработку отвечает процедура ReadFrame. Эта процедура проверяет контрольную сумму, производит декодирование информации, и передачу принятого пакета на верхний (прикладной) уровень.
В основной программе (модуль main.pas) за связь с устройством отвечает процедура TForm1.OnReadFrame. Она запускается из модуля modbus.pas, и является асинхронной по отношению к остальной программе. Ее запуск всегда инициируется приемом пакета от устройства. Отправить запрос на устройство сравнительно просто: для этого надо указать код функции, данные, которые сопровождают ее (н-р, адрес или значение параметра для записи), и обязательно указать длину этого запроса в байтах. После этого вызвать процедуру MBLink.Send. И можно быть увереным, что если качество связи хорошее, это пакет обязательно дойдет до адресата и вернется в виде ответа, реакцией на который будет запуск процедуры OnReadFrame с тем же кодом функции.
В этой процедуре с помощью конструкции case .. of .. осуществляется анализ кода функции. На каждый код функции программа реагирует каким-либо соответствующим действием, н-р, отправкой следующего запроса, записью данных, или просто завершением сеанса связи. Сеанс связи – это последовательное выполнение связанных друг с другом одним смыслом запросов, приводящих к выполнению определенной задачи. Рассмотрим все типы сеансов. Текущий сеанс связи хранится в переменной Mode:
0 – основной режим работы, с ожиданием действий пользователя;
1 – опрос параметров устройства при запуске программы;
2 – синхронизация с панелью;
3 – чтение памяти знакогенератора;
4 – чтение FLASH-памяти устройства;
5 – запись данных на панель;
6 – верификация;
Сразу после запуска программы на ПК устанавливается режим 1 с выдачей контрольной команды check_net – проверка связи. Если связь с устройством установлена (кабель подключен, COM-порт настроен правильно, и устройство включено), то обязательно придет ответный пакет с тем же кодом функции. Эта функция "пустая", т.е. не требует от устройства никаких действия. В этом можно убедиться, если посмотреть программный код в модуле commands.asm:
.cseg
check_net: ;Проверка связи
ret
Однако для ПК этот код является "стартовым выстрелом" для начала работы с панелью. В процедуре OnReadFrame в ответ на приход этого кода функции формируется тут же новый запрос get_time – чтение текущего времени устройства. Устройство отвечает на него, и процедура OnReadFrame запускается еще раз, но уже с кодом get_time в принятом пакете. При обработке этого кода функции на устройство отправляется пакет get_date – чтение текущей даты устройства. На этом процесс завершается, и программа переходит в режим 0.
В режиме синхронизации с панелью каждые 0,25 сек формируется запрос read_info, на что устройство посылает 112 байтов видеопамяти. При приеме пакета на мониторе отображаются состояния всех светодиодов, т.е. пользователь видит картинку, которую "рисует" панель в данный момент времени. При этом другие команды пользователя блокируются.
Память знакогенератора имеет большой объем – 1280 байт, и не может быть считана за один раз. Поэтому это выполняется в сеансе связи с номером 3. При приеме от устройства очередной порции информации программа формирует следующий запрос, но уже с другим адресом. Устройство, приняв пакет с кодом read_sign, выдает данные из таблицы знакогенератора, начиная с адреса, указанного в функции read_sign – он идет вторым байтом пакета. Когда вся память будет считана, программа переходит в основной режим работы.
Аналогичным образом идет работа в остальных режимах, т.к. они предназначены для обмена большим объемом информации. Верификация данных – проверка на правильность записи данных. После того, как пользователь ввел текст бегущей строки и записал его в Flash-память устройства, программа проверяет правильность записи повторным чтением текста и сравнением его с исходным. При несовпадении данных программа выдает сообщение.
Вспомогательный модуль EditForm предназначен для редактирования начертаний символов. Каждый символ имеет размер 5 х 7 точек, т.е. занимает 5 байт. Пользователь может выбрать нужный символ, и нажатием мыши на графическом поле зажечь или погасить светодиод. После внесенных изменений необходимо выполнить команду записи таблицы знакогенератора, иначе они будут утеряны.
Рисунок 3 - Графическое представление программы.
Графическое представление программы представляет собой окно. Центральная часть основное рабочее поле где выводятся символы, в верхнем левом углу находится панель меню где можно отрыть, сохранить, осуществить необходимые настройки. Под рабочем полем расположена строка ввода текста в конце её расположена кнопка очистки всей строки, ниже расположены инструменты управления скорости перемещения бегущей строки, правее расположенны 2 кнопки одна из них для записи информации в память устройства, а другая для счивания с устройства. Правее расположена метка синхронизации она служит для связи и обновления информации между устройством и ПК. Делее расположена метка блокировки панели она служит для запрета или разрешения работы устройства. В нижней части окна расположена строка справочной информации: канал подключения (COM2), скорость передачи данных (19200 байт/сек), статус (поиск, проверка,готов), дата, время.
2.6 Разработка печатной платы устройства
Чертеж печатной платы приведен на листе 4 Графического приложения.
Топология печатной платы была разработана в соответствии с принципиальной схемой; для этих целей применялся САПР PCAD-2001. Эта система проектирования электронных блоков, узлов, ПП используется многими профессиональными разработчиками из-за ее многофункциональности, удобства в работе, простоте понимания.
Материал ПП - двусторонний фольгированный стеклотекстолит марки СФ-2-0,35. Основная ширина дорожек – 0,6 мм. Размещение компонентов производилось в основной координатной сетке 2,54 мм. Если компонент имеет ножки, расстояние между которыми не кратно 2,54 мм, то он располагается т.о., чтобы в узел попала его первая ножка, либо геометрический центр корпуса. Все компоненты располагаются параллельно вертикальной, либо горизонтальной оси платы. Трассировка дорожек выполнена в координатной сетке 1,27 мм. В узких местах допускалось понижение межосевого расстояния до 1,016мм (сетка 0,508мм). При проводке линий связи между ножками микросхем их ширина уменьшается до 0,45мм на интервале 1,27 мм до и после ножек ИМС.
Обоснование конструктивно-технологических характеристик устройства.
Для проектирования конструкции печатной платы нам необходимо произвести выбор вида печатной платы, необходимого класса точности, материала ее изготовления, выбрать метод её изготовления, произвести расчет элементов рисунков печатной платы, привести рекомендации по монтажу и пайке.
Данные действия, являясь составной частью процесса разработки электронного устройства, представляют собой комплекс расчетов, при выполнении которых необходим учет разносторонних требований к изделию, знание современных технологий схемотехники, конструирования электронных устройств и других теоретических и прикладных дисциплин.
2.7 Выбор вида печатной платы, класса точности и материала
Печатные платы (ПП) служат основанием для монтажа микросхем и обеспечивают коммуникацию всех элементов в соответствии с принципиальной схемой. Применение ПП позволяет на один – два порядка повысить плотность компоновки по сравнению с объемным (или ещё так называемым навесным) монтажом и на порядок снизить массу. В печатной плате основным является технологический процесс. Технологический процесс это часть разработки печатной платы, содержащая действия по изготовлению и последующему определению результата труда.
Печатную плату для модуля выбираем двустороннюю с металлизированными монтажными и переходными отверстиями.
Данный вид печатной платы характеризуется: широкими коммутационными возможностями; повышенной прочностью сцепления выводов навесных ЭРЭ с проводящим рисунком платы; ненамного большей стоимостью по сравнению с ПП без гальванического соединения слоев.
Так как в проектируемом устройстве используются печатные платы с дискретными ИЭТ при малой мощности и средней насыщенности поверхности ПП навесными изделиями, а также с микросхемами, имеющими штыревые выводы, следовательно, класс точности 3.
Стандарт ГОСТ 23752—79 устанавливает пять классов точности ПП и гибких печатных кабелей в соответствии со значениями основных параметров и предельных отклонений элементов конструкции (оснований ПП, проводников, контактных площадок, отверстий.) Область применения классов точности по ГОСТ 23752—79:
3 — для ПП с микросборками и микросхемами, имеющими штыревые и планарные выводы, а также с безвыводными ИЭТ при средней и высокой насыщенности поверхности ПП навесными изделиями.
Основания печатных плат должны обладать достаточной механической плотностью, малыми диэлектрическими потерями, высокой нагревостойкостью, и хорошей адгезией (сцепляемостью) материалов платы и печатных проводников. При изготовлении печатных плат широко используют стеклотекстолит, стеклоткань, гетинакс, фторопласт-4, и некоторые другие диэлектрики. Толщина плат 0,8..3 мм. [8].
Был выбран фольгированный стеклотекстолит марки СФ-2-35Г-2,0; где толщина фольги: hф = 35 мкм, толщина материала диэлектрика: hм = 2,0 мм. Таким образом, толщина ПП составит: hПП = 2,070 мм. Плотность печатного монтажа составит: = 0,33. Для расчетов печатного монтажа hПП принимаем равным 2,0 мм. Необходимо добавить, что фольгированный стеклотекстолит марки СФ-2-35Г-2,0, имеет относительно низкую стоимость и прост в технологическом использовании.
2.8 Выбор метода изготовления печатной платы.
Печатные платы, как правило, классифицируются по материалу основания, числу слоев и технологическим методам получения проводящего рисунка.
Наиболее распространенными методами изготовления печатных плат являются: химический, предусматривающий избирательное удаление металла с предварительно фольгированной поверхности платы, комбинированный, представляющий собой комбинацию технологических приёмов травления фольгированного диэлектрика с последующей металлизацией отверстий. В последнее время большое распространение получили: субтрактивный, аддитивный, полуаддитивный методы. [12]
Субтрактивный метод получения проводящего рисунка заключается в удалении участков проводящей фольги, защищенного от растворения задубленным фоторезистом или специальной краской, путем травления.
Аддитивный метод заключается в избирательном осаждении проводящего материала на не фольгированный материал основания, на которое предварительно наносится проводящий рисунок, либо методом переноса с временного металлического основания, либо токопроводящей пастой через сетчатый трафарет, либо нанесение проводящего рисунка и контактных площадок химическим способом.
Полуаддитивный метод предусматривает предварительное нанесение тонкого(вспомогательного) проводящего покрытия, впоследствии удаляемого с пробельных мест.
Комбинированный позитивный метод основан на сочетании химико-гальванического способа металлизации отверстий, контактных площадок и проводников со способами химического травления фольги с пробельных мест, применяется для ДПП первого и второго класса.
В соответствии с ГОСТ 23751-86 конструирование печатных плат следует осуществлять с учетом следующих методов изготовления:
- химического для ОПП;
- комбинированного позитивного для ОПП, ДПП;
- электрохимического (полуаддитивного) для ДПП;
Таким образом, печатная плата, разрабатываемая в данном проекте, будет изготавливаться на основе фольгированного диэлектрика комбинированным позитивным методом.
Последовательность технологических процессов изготовления ДПП:
Входной контроль диэлектрика;
Получение заготовок;
Образование базовых отверстий;
Образование отверстий под металлизацию;
Химическая металлизация диэлектрика;
Гальваническая металлизация платы;
Создание защитного рельефа;
Гальваническая металлизация рисунка;
Нанесение металлорезиста на рисунок;
Удаление защитного рельефа;
Травление меди с пробельных мест;
Оплавление металлорезиста.
2.9 Расчет элементов печатного рисунка печатной платы.
При конструктивно-технологическом расчете печатных плат обычно учитывают производственные погрешности рисунка проводящих элементов, фотошаблона, базирования, сверления и т.п. Ниже в табличном виде (таблица 7) приведены граничные значения основных параметров монтажа для пяти классов точности [14]. Выбранные в соответствии с таблицей 6 размеры необходимо согласовать с технологическими возможностями конкретного производства. Предельные значения технологических параметров конструктивных элементов печатной платы получены в результате анализа производственных данных и экспериментальных исследований точности отдельных операций.
Таблица 7 — Граничные значения основных параметров печатного монтажа
Условное обозначение параметра * |
Номинальные значения основных размеров для класса точности |
||||
1 |
2 |
3 |
4 |
5 |
|
t, мм |
0,75 |
0,45 |
0,25 |
0,15 |
0,10 |
s, мм |
0,75 |
0,45 |
0,25 |
0,15 |
0,10 |
b, мм |
0,30 |
0,20 |
0,10 |
0,05 |
0,025 |
|
0,40 |
0,40 |
0,33 |
0,25 |
0,20 |
где: t – ширина проводника; S – расстояние между проводниками, контактными площадками, проводником и контактной площадкой или проводником и металлизированным отверстием; b – расстояние от края просверленного отверстия до края контактной площадки данного отверстия (гарантийный поясок); - отношение минимального диаметра металлизированного отверстия к толщине платы.
Минимальный диаметр переходного отверстия определяется из соотношения:
dmin > hПП = 2 0,33 = 0,66 мм. (1)
Рассчитаем минимальный эффективный диаметр контактной площадки:
,
(2)
где: b – расстояние от края просверленного отверстия до края контактной площадки (берется в соответствии с классом точности платы (табл.1.)), мм;
dmax – максимальный диаметр просверленного отверстия, мм;
отв – погрешность расположения отверстия, мм;
кп – смещение центра контактной площадки, мм.
Вычислим необходимые параметры dmax, отв, b, кп .
(3)
где: d – определяется точностью изготовления сверла и его смещением.
В свою очередь рассчитываем:
,
(4)
где: dМ ОТВ – диаметр металлизированного отверстия. При этом dМ ОТВ выбираем из ряда, рекомендуемого отраслевым стандартом, и с учетом собираемости со штыревыми выводами ЭРЭ и ИМС. Следует отметить, что коэффициент 0,1..0,15 – величина усреднения и учитывает минимально допустимую толщину слоя гальванической меди 25мкм, слой металлорезиста, усадку отверстия после сверления, а также возможный разброс толщины при гальваническом осаждении меди и металлорезиста.
dсв = 0,6+0,1 = 0,7 мм,
Подставив получившееся значение dсв в формулу (3) получим, что
dmax = 0,7+0,02 =0,72 мм,
Погрешность расположения отверстия определяем как:
ОТВ = О + (5)
ОТВ = 0,06 + 0,02 = 0,08 мм, учитывая неточности сверления станка и погрешности базирования платы на станке.
Смещение центра контактной площадки зависит от точности расположения ее рисунка на шаблоне, погрешности экспонирования, погрешности расположения базовых отверстий в фотошаблоне и заготовке платы и определяем как:
(6)
кп = 0,04+0,02+0,5(0,03+0,02) = 0,085 мм,
Подставив значения в (2) получаем, что минимальный диаметр контактной площадки равен:
D1min = 2(0,3+(0,72:2)+0,08+0,085) = 1,65
Таким образом, минимальный эффективный диаметр контактной площадки составит 1,65 мм.
Минимальный диаметр контактной площадки рассчитаем по следующей формуле:
Dmin = D1min+1,5(h+hnm)+hp и он составит: (7)
Dmin = 1,65+1,5(0,035+0,006)+0,02 = 1,7315 мм
Расчет ширины проводников ведется из условия сохранения достаточной прочности сцепления проводника с диэлектриком, зависящей от адгезионных свойств материала основания и гальванической фольги. Минимальная эффективная ширина проводника t1MIN определена экспериментально и равна 0,18 мм для плат первого и второго классов. Минимальная ширина проводника определяется по следующей формуле:
и
она составит: (8)
tMIN = 0,18 +1,5(0,035+0,006)+0,02 = 0,2615 мм.
Расчет минимальных расстояний между элементами проводящего рисунка определяется заданным уровнем сопротивления изоляции при рабочем напряжении схемы или техническим требованием на печатные платы.
Фактический зазор между элементами проводящего рисунка зависит от шага элементов, их максимальных размеров и точности расположения относительно заданных координат.
Минимальное расстояние между проводником и контактной площадкой:
, (9)
где L0 – расстояние между центрами рассматриваемых элементов, принимаем равным 2,54 мм.
Минимальный диаметр контактной площадки на фотошаблоне:
DШ min = Dmin – hp (10)
DШ min = 1,7315 – 0,02 = 1,7115 мм.
Минимальная ширина проводника на фотошаблоне:
tШ min = tmin – hp (11)
tШ min = 0,2615 – 0,02 = 0,2415 мм.
Максимальный диаметр контактной площадки на фотошаблоне:
DШ max = DШ min + DШ (12)
DШ max = 1,7115 + 0,03 = 1,7415 мм.
Максимальная ширина проводника на фотошаблоне:
tШ max = tmin + tШ (13)
tШ max = 0,2615 + 0,06 = 0,3215 мм.
Максимальный диаметр контактной площадки:
Dmax = DШ max + hp + Э (14)
Dmax = 1,7415 + 0,02 + 0,03 = 1,7915 мм.
Максимальная ширина проводника:
tmax = tШ max + hp + э (15)
tmax = 0,3215 + 0,02 + 0,03 = 0,3715 мм.
Подставив в (9) значения из (14) и (15) получаем:
S1min = 2,54-((1,7915/2+0,085)+(0,3715/2+0,05)) = 1,2835 мм.
Минимальное расстояние между двумя контактными площадками:
S2 min = L0 – (Dmax + 2КП) (16)
S2 min = 2,54 – (1,9915 + 2*0,085) = 0,3385 мм.
Минимальное расстояние между двумя проводниками:
S3 min = L0 – (t max + 2Шt) (17)
S3 min = 2,54 – (0,3715 + 2*0,05) = 2,0285 мм.
Итого минимальное расстояние между проводником и контактной площадкой на фотошаблоне: S4MIN = 2,5-((1,7415/2+0,085)+(0,3215/2+0,05)) = 1,3335 мм.
Минимальное расстояние между двумя контактными площадками на фотошаблоне:
S5 min = L0 – (DШ max + 2КП) (18)
S5 min = 2,54 – (1,7415+2*0,085) = 0,5885 мм.
Минимальное расстояние между двумя проводниками на фотошаблоне:
S6 min = L0 – (t Ш max + 2Шt) (19)
S6 min = 2,54 – (0,3215 + 2*0,05) = 2,0785 мм.
Стандарт ОСТ 4.070.010—78 «Платы печатные под автоматическую установку элементов. Конструкция и основные размеры» содержит специальные указания для выбора диаметров отверстий и контактных площадок под выводы устанавливаемого элемента (таблица 7), а также другие сведения. При любой установке элементов диаметры монтажных, переходных металлизированных и не металлизированных отверстий следует выбирать из ряда: 0,4; 0,5; 0,6; 0,7; 0,8; 0,9; 1,0; 1,1; 1,2; 1,3; 1,4; 1,5; 1,6; 1,7; 1,8; 2,0; 2,1; 2,2; 2,3; 2,4; 2,5; 2,6; 2,7; 2,8; 3,0. Центры отверстий должны располагаться в узлах координатной сетки. Также оригинал рисунка печатных проводников выполняют на координатной сетке, образуемой пересекающимися под прямым углом рядами параллельных линий. Для печатных плат промышленной аппаратуры принят шаг координатной сетки, равный 2,54 мм.
Рассчитанные выше значения задают минимальные параметры для выбора диаметра отверстий и контактных площадок.
Таблица 8 — Диаметры отверстий и контактных площадок, мм
Диаметры |
Минимальное расстояние между центрами отверстий |
||
Вывода элемента |
Отверстий |
Контактной площадки |
|
0,4 ; 0,5 |
0,9 |
3,0 |
2,5 |
0,6 ; 0,7 |
1,1 |
||
0,8 ; 0,9 |
1,3 |
3,75
|
|
1,0 ; 1,1 |
1,5 |
||
1,2 ; 1,3 ; 1,4 |
1,8 |
||
1,5 ; 1,6 |
2,0 |
4,0 |
5,0 |
1,7 ; 1,8 ; 1,9 |
2,2 |
Таблица 9 — Предельные значения технологических параметров
Наименование коэффициента |
Обозначения |
Величина (мм) |
|
1 |
2 |
3 |
|
Толщина предварительно осажденной меди |
hпм |
0,005 – 0,008 |
|
Толщина наращенной гальванической меди |
hг |
0,050 – 0,060 |
|
Толщина металлического резиста |
hр |
0,020 |
|
Погрешность расположения отверстия относительно координатной сетки, обусловленная точностью сверлильного станка |
o |
0,020 – 0,100 |
|
Погрешность базирования плат на сверлильном станке |
б |
0,010 – 0,030 |
|
Погрешность расположения относительно координатной сетки на фотошаблоне контактной площадки |
ш |
0,020 – 0,080 |
|
Погрешность расположения относительно координатной сетки на фотошаблоне проводника |
шt |
0,030 – 0,080 |
|
Погрешность расположения печатных элементов при экспонировании на слое |
э |
0,010 – 0,030 |
|
Погрешность расположения контактной площадки на слое из-за нестабильности его линейных размеров, % от толщины |
м |
‘0 – ‘0,100 |
|
Погрешность расположения базовых отверстий на заготовке |
з |
0,010 – 0,030 |
|
Погрешность расположения базовых отверстий на фотошаблоне |
п |
0,010 – 0,050 |
|
Погрешность положения контактной площадки на слое, обусловленная точностью пробивки базовых отверстий |
пр |
0,030 – 0,050 |
|
Погрешность положения контактной площадки, обусловленная точностью изготовления базовых штырей пресс-формы |
пф |
0,020 – 0,050 |
|
Погрешность диаметра отверстия после сверления |
d |
0,010 – 0,030 |
|
1 |
2 |
3 |
|
Погрешность изготовления окна фотошаблона |
Dш |
0,010 – 0,030 |
|
Погрешность на изготовление линии на фотошаблоне |
tш |
0,030 – 0,060 |
|
Погрешность диаметра контактной площадки фотокопии при экспонировании рисунка, мм |
Э |
0,010 – 0,030 |
|
Примечание: |
- погрешность расположения; - погрешность размеров. |
|
Рекомендации по монтажу и пайке
1. Микросхемы. Лужение выводов интегральных микросхем рекомендуется производить двукратным погружением в расплавленный припой, температура которого не превышает 250 оС, в течении 2 с, интервал между погружениями должен составлять не менее 5 мин. Пайку выводов ИМС разрешается производить на расстоянии не менее 5 мм от корпуса, заземленным паяльником мощностью не более 40 Вт при температуре жала не выше 265 оС, в течении 3 с, соблюдая меры предосторожности, исключающие перегрев микросхем и механические её повреждения. Интервал между пайками соседних выводов должен быть 3..10 с, а расстояние от места пайки вывода до корпуса ИМС – не менее 5 мм. При монтаже в схему допускается одноразовый изгиб выводов на расстоянии не менее 2,5 мм от корпуса, при этом необходимо обеспечить неподвижность основания. Радиус изгиба – 1 мм и более. Не допускается кручение выводов вокруг оси. Также при монтаже допускается смещение свободных концов в горизонтальной плоскости в пределах ±0,4 мм для их совмещения с контактными площадками.
2. Транзисторы. При пайке выводов необходимо защищать корпус транзистора от попадания флюса и передачи тепла от места пайки к корпусу. Пайку выводов разрешается производить на расстоянии не менее 5 мм от корпуса. При монтаже в схему допускается одноразовый изгиб выводов на расстоянии не менее 2,5 мм от корпуса. Температура жала паяльника не более 260ºС, время пайки не более 4 с.
3. Диоды. При монтаже в схему допускается одноразовый изгиб выводов на расстоянии не менее 2 мм от корпуса под углом 90. Пайку производить при температуре не более 265ºС, время пайки не более 4 с.
2. Конденсаторы. При монтаже неполярных конденсаторов необходимо обеспечить изоляцию их корпусов от других элементов схемы, шасси и друг от друга.
3. Резисторы. Пайку выводов разрешается производить на расстоянии не менее 4 мм от корпуса. При паянии желательно обеспечить теплоотвод. Температура жала паяльника не должна превышать 230ºС. Время пайки не более 4 с. При монтаже в схему допускается одноразовый изгиб выводов на расстоянии не менее 2 мм от корпуса под углом 90.
4. Резонаторы кварцевые. Пайку выводов резонатора кварцевого разрешается производить на расстоянии не менее 4 мм от корпуса. Остальные условия монтажа и пайки аналогичны условиям монтажа и пайки ИМС.
Тепловой расчет печатной платы
Определим суммарную потребляемую мощность устройства. В таблице 7 приведен перечень всех элементов схемы с указанием потребляемой мощности.
Таблица 10 – Потребляемая мощность ЭРЭ
Тип ЭРЭ |
Кол-во |
Ток потребления |
Суммарная потребляемая мощность |
ATmega32L |
1 |
16 мА |
80 мВт |
MAX232ACPE |
1 |
8 мА |
40 мВт |
КР1533ИР8 |
14 |
14x12 мА |
840 мВт |
AT25640 |
1 |
4 мА |
20 мВт |
Итого: |
196 мА |
980 мВт |
Таблица 11 – Объем, занимаемый ЭРЭ
Вид ЭРЭ |
Наименование |
Количество |
Объем, 10-6 м3 |
Микросхема |
ATmega32L |
1 |
2,341 |
Микросхема |
MAX232ACPE |
1 |
0,226 |
Микросхема |
КР1533ИР8 |
14 |
3,164 |
Микросхема |
LM7805 |
1 |
0,11 |
Микросхема |
LM317T |
1 |
0,11 |
Резистор |
МЛТ-0,125Вт |
19 |
0.342 |
Резистор |
3296 |
1 |
0,1 |
Конденсатор |
К10-17б |
36 |
2,13 |
Конденсатор |
К50-35-16В |
10 |
0,51 |
Диод |
1N4148 |
3 |
0,25 |
Транзистор |
КТ816А |
8 |
0,8 |
Резонатор |
HC-49S |
1 |
0,215 |
Итого: |
10,298 |
Размеры платы:
L1=0,162 м (длина)
L2=0,132 м (ширина)
H= 0,040 м (высота)
Объем модуля: Vб=L1* L2*H=0,162*0,132*0,04=0,00086 м3.
Коэффициент заполнения объема блока:
Kз=VЭРЭ/VБ=10,29810-6/0,00086=0,011.
Приведенный размер основания нагретой зоны :
Lпр=
Приведенная высота нагретой зоны :
hз=H*Kз=0,04*0,011=0,44 мм.
Приведенная высота воздушного зазора:
H1=(H-hз)/2=(0,04-0,00044)/2= 19,78 мм.
Приведенная поверхность нагретой зоны:
Sз=2*Lпр/( Lпр+2hз)=(2*0,162)/(0,162+2*0,00044)= 1,98 м2.
Исходные данные:
a = 162 mm
b = 132 mm
c = 40 mm
к – степень черноты поверхности корпуса = 0,92
tmax– макс. значение температуры окружающей среды = 50С (323 К)
tс – температура окружающей среды = 20С (293 К)
Суммарная мощность, выделяемая устройством:
Р = 0,96 Вт
Порядок расчета:
Задаем перегрев корпуса tIk – относительно окружающей среды в 1-ом приближении (5-10 К)
Определяем температуру корпуса в 1-ом приближении: tIk = tмах+ tIk
Рассчитываем площадь поверхности корпуса: Sк = 2(ab + ah + bh), м2
Находим определяющий размер эквивалентного куба:
Определяем вид теплового потока от корпуса к среде по условию:
Находим тепловую проводимость при передаче тепла от корпуса в окружающую среду при конвективном и лучевом способе передачи тепла.
Для конвективного: кк = 2*A2*(tk-tc)1/4*((a*h+b*h)h1/4 + a*b/min(a,b)1/4))
Для лучевого: кл = к *5,57*10-8 *((tк4 – tmax4) / ( tк – tmax))*Sк,
где tк – предполагаемая температура корпуса,
tc – предполагаемая температура среды,
Кн – l для естественной вентиляции,
А2 – коэффициент теплопередачи, зависит от вида окружающей среды, для воздуха А2 = 1,36.
7. Находим суммарную тепловую проводимость: I= кк + кл.
8.
Находим реальный перегрев корпуса:
,
9. Проверяем условие tIk - tIkр< 23 К
10. Если условие выполняется, то принимают перегрев корпуса: tk = tIkр
Если условие не выполняется, то проводим расчет во втором приближении принимая tIIk = tIk и корректируем пункты 2-9. Расчет заканчивается в том приближении, в котором выполняется условие tIk - tIkр< 23 К
Расчет:
Первое приближение:
tIk = 10 К
tIk = 323 + 10 = 333 К
Sк = 2(ab + ah + bh) = 2*(0,162*0,132+0,162*0,04+0,132*0,04)= 0,066 м2
L
=
=
0,105 м2
(0,84/0,105)3 = 473К, tIk < 473 условие выполняется, следовательно действует закон 1/4 степени.
кк = 0,439 Вт/К
кл = 0,276 Вт/К
I = 0,715 Вт/К
tIkp = 5,095 /0,715 = 7,123 К
tIk - tIkр= |10 – 7,123| = 2,987 < 23 К
Реальный перегрев корпуса tIIkр = 2,673 К, а максимальное допустимое значение равно 3 К, следовательно никаких мер по охлаждению принимать не надо.
2.10 Выводы
В данном разделе нами была спроектирована принципиальная схема устройства, произведен расчет отдельных ее частей. На основе всех данных, полученных в результате проектирования аппаратной части, была написана программа работы микро-ЭВМ. Для этого использовалась среда проектирования AVR Studio, поставляемая бесплатно самой фирмой ATMEL.
Тип используемой микроЭВМ – ATmega32L, тактовая частота 8МГц. Текcт программы содержит 17397 строк. Размер скомпилированного кода – 7315 байт, что составляет 94,2% от доступной емкости памяти программ. Используется 420 байт оперативной памяти (82,0% от доступного), и 8 байт энергонезависимой памяти (0.8%). В программе использовано 63,1% системы команд микроконтроллера, 61% регистров общего назначения.
Ниже приведен отчет компилятора AVR Studio при компиляции исходного текста программы.
ATmega32L memory use summary [bytes]:
Segment Begin End Code Data Used Size Use%
------------------------------------------------------------------------------------------
[.cseg] 0x000000 0x001C92 7315 402 7717 8192 94.2%
[.dseg] 0x000060 0x000204 0 420 420 512 82.0%
[.eseg] 0x000000 0x000008 0 8 8 1024 0.8%
Изображение формируется на светодиодной матрице размером 8 х 112 динамическим способом. Для этого производится соединение анодов по строкам и катодов по столбцам. Степень мультиплексирования равна 1/8. Частота регенерации всего изображения составляет 50 Гц.
Измерение температуры производится цифровым интегральным датчиком типа DS18B20, имеющим однопроводной интерфейс. Точность измерения равна 0,5°С, цена деления 0,0625°С. Хранение текста бегущей строки осуществляется в отдельной flash-памяти емкостью 8 Кбайт. Для связи с ПК используется интерфейс RS-232.
С помощью САПР PCAD была разработана топология печатной платы устройства, рассчитаны параметры ПП, допуски по отдельным технологическим параметрам, сделан анализ теплового режима работы. Для печатной платы выбран стеклотекстолит марки СФ-2-0,35, толщиной 2,0 мм. Размер печатной платы блока управления 162 х 132 мм.
Светодиодная матрица конструктивно выполнена в виде модулей, каждый из которых содержит 8 х 8 светодиодов. 14 модулей располагаются на кронштейнах вплотную друг к другу. Сигналы строк объединяются паянными перемычками, сигналы столбцов подводятся отдельными шлейфами через 16-контактные разъемы. Вся бегущая строка заключается в прочный закрытый корпус, на боковой поверхности которого выведены разъемы питания, RS-232, кнопки управления. Габаритный размер устройства – 1200 х 150 х 100 мм.