8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

0 ... 25 26 27 28 29 30 31 ... 55

порта компьютера. Сигнал с выхода TxD СОМ-порта компьютера подается на вход преобразователя уровня RS232 в уровень TTL (на схеме также не показан), а на выходе преобразователя образуется сигнал TxDC. На схеме показано, что сигнал TxDC подается на вывод RxD микроконтроллера, а сигнал с вывода TxD микроконтроллера подается на линию RxDC.

Все перечисленные микросхемы работают при функционировании микроконтроллера Р80С552 в штатном режиме при выполнении программы.

DO

D1

3

D2

4

D3

5

D4

6

D5

7

D6 8

D7

9

С574

EQ574

DO

SN74AHCT574 DD4

DO

2

DI

3

га

i

D3

5

D4

6

DS

7

D6 8

D7

9

ALE

11

1n

DI D2 D3 D4 D5 D6 D7 D8

С

EO

QJ Q2 Q3 Q4 Q5 Q6 Q7 Q8

SN74AHCT573 DD7

DI

7

D2

6

D3

5

D4

t

D5

3

D6

2

D7

1

IORD

22

IOWR

23

AO

19

Al

20

A6

21

19

A8

AO

10

18

A9

Al

9

17

A10

A2

8

16

All

A3

7

15

A12

A4

6

It

A13

A5

5

13

A14

A6

t

12

A15

A7

3

A8

25

DO

DI

D2

CLK0<

D3

GO

D4

OUT0

D5

D6

CLK1<

D7

Gl

OUT1

RD"

WR

CLK2<

AO

G2

Al

OUT2

cs"

A9

A10

A12

19 AO

18

Al

17

A2

16

A3

15

A4

It

A5

13

A6

12

A7

5V

A

WR

PSEN

A15

WR RD

10

DP?

AO

Al

A2

A3

A4

A5

A6

A7

A8

A9

A10

All

A12

CS1 C S2 WR CEO

OO 01 02 03 04 05 06 07

11

DO

12

DI

13

D2

15

D3

16

D4

17

D5

18

D6

19

D7

62C64

DD6A

A

YO

В

Yl

Y2

G

Y3

It

13

nre. в

A

YO

В

Yl

Y2

G

Y3

SN74HCTI39

10 IOWR

15

2

It

DO

3

13

DI

t

D2

5

18

D3

6

16

D4

7

17

DS

8

D6

9

D7

10

NR1

5V

A

en

I82C54

10k


В схеме присутствуют две дополнительные 20-выводные микросхемы, которые не функционируют при штатном режиме работы микроконтроллера Р80С552. Это дополнительный регистр НСТ574 (ИР37) - DD3 и микроконтроллер АТ89С2051 - DD2. Они совместно с регистром НСТ573 - DD4 осуществляют прием кодов программы с интерфейса RS232 и загрузку программы в память DD5. Необходимо отметить, что тактовая частота на микроконтроллер Р80С552 подается с микроконтроллера АТ89С2051 (сигнал CLK). Таким образом, в схеме используется единственный кварцевый резонатор Z1, подключенный к выводам XTAL1 и XTAL2 микроконтроллера АТ89С2051. При частоте кварцевого резонатора 22118400 Гц обмен по RS232 может происходить со скоростью 115200 Гц (генератор скорости ТГ).

Схема работает следующим образом. Запуск схемы осуществляется компьютером по интерфейсу RS232 сигналом СОМ-порта DTR, который после преобразователя уровня RS232 в уровень TTL подается на вывод RESET микроконтроллера АТ89С2051 и запускает его программу. Эта программа вначале запрещает работу микроконтроллера Р80С552, выставляя на его выводе RST высокий уровень. Затем АТ89С2051 принимает по RS232 коды загрузки памяти DD5. Приняв очередной байт, АТ89С2051 вначале выставляет через свой порт рО младший байт адреса памяти DD5 на шину данных D0-D7, защелкивает его в регистре DD4 сигналом ALE, затем аналогично выставляет старший байт адреса и защелкивает его в регистре НСТ574 - DD3 сигналом С574. На вход ЕО этого же регистра АТ89С2051 подает низкий уровень сигналом Е0574 для разрешения выходов регистра, на которых появляется старший байт адреса. После этого АТ89С2051 выставляет информационный байт опять на шине данных D0-D7. Таким образом, на шине адреса А0-А12 DD5 выставляется адрес памяти, а на шине данных D0-D7 — информационный байт. Затем АТ89С2051 импульсом WR со своего порта р3.2 записывает этот информационный байт в память DD5. Когда все информационные байты приняты и записаны в память DD5, микроконтроллер АТ89С2051 выставляет все свои сигналы на выводах, кроме вывода рЗ.З, в высокоимпедансное состояние, освобождая (от своих сигналов) необходимые связи для работы основного микроконтроллера Р80С552, и заодно запрещает работу ненужного уже регистра DD3. На вывод рЗ.З АТ89С2051, соединенный с выводом RST Р80С552, подает низкий уровень, и основной микроконтроллер Р80С552 начинает работу, выполняя программу, записанную в памяти DD5, с нулевого адреса,

После того как программа микроконтроллера отработала и компьютер получил от него все необходимые данные, сигналом DTR СОМ-порта компьютера, поданным на вывод RESET микроконтроллера АТ89С2051 (высоким уровнем напряжения), работа 88


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

Что касается загрузки и запуска уже разработанной программы для микроконтроллера, которая должна работать в комплексе с компьютерной программой, то каждый раз загружать программу для микроконтроллера по интерфейсу RS232 необязательно и даже нецелесообразно по двум причинам. Первая - это достаточно долгая процедура, вторая - очень слабая защита от несанкционированного доступа. Вместо загрузки программы в ОЗУ с помощью интерфейса RS232 автор может рекомендовать альтернативный способ загрузки ОЗУ - из вспомогательного микроконтроллера (в данном случае - из АТ89С2051). Этот способ заключается в следующем.

Предположим, программа для микроконтроллера Р80С552 занимает менее 2 кбайт (максимальный объем памяти АТ89С2051). Тогда эту программу можно запрограммировать в АТ89С2051, но не с нулевого адреса, а, например, с 100-го. В этом случае в адресное пространство, располагающееся с нулевого адреса по 100-й, можно запрограммировать программу-загрузчик, которая будет последовательно брать байты программы, располагающиеся с 100-го адреса (т.е. рабочую программу для Р80552), и записывать их (байты) с помощью вышеописанной процедуры записи в ОЗУ. Время записи в ОЗУ одного байта - несколько микросекунд. Всю программу, таким образом, можно записать за несколько миллисекунд, что намного быстрее, чем передавать программу по интерфейсу и записывать в ОЗУ. От компьютера в этом случае требуется только небольшая задержка (после запуска АТ89С2051), прежде чем начать работать с загруженной программой в штатном режиме. Кстати, АТ89С2051 после успешной записи программы в ОЗУ может послать в компьютер какой-либо байт (с кодом, например, @), что будет означать успешную загрузку программы в ОЗУ и готовность системы к работе с компьютером. Компьютер не начнет работать с программой, пока не получит такой код.



0 ... 25 26 27 28 29 30 31 ... 55