НПО Системы Безопасности
(499)340-94-73 График работы:
ПН-ПТ: 10:00-19:00
СБ-ВС: выходной

Главная » Периодика » Безопасность

0 ... 96979899100101102 ... 159


3. в регистры TABLATH и TABLATL загружаются данные для записи

4. Активизируется прерывание от таймера TMRO с задержкой 1000 мкс (инициализируется таймер TMRO и разрешается пре-рывание TMRO).

5. Выполняется команда табличной записи tablwt.

6. Блокируются прерывания TMRO.

7. Считываются данные, проводится проверка соответствия.

8. Если соответствия нет, выдается сообш;ение об ошибке.

В качестве примера можно привести следующий фрагмент записи в программную память PIC 17Схх:

0x00010

TMROInt

Запрос на прерывание

от таймера разрешен.

retfie

movf р

SaveAddress, TBLPTRL

Указание адреса памяти.

movf p

SaveAddress + 1, TBLPTRH

в которую ведется запись

PORTA, 3

Включениенапряжения

программирования.

movlw

HIGH ((100000/5) + 256)

Задержка 100 мс

на стабилизацию

movwf

Dlay

напряжения программирован.ия

movlw

LOW ((100000/5) + 256)

addlw

OxOFF

btfsc

ALUSTA, Z

decfsz

Dlay, f

goto

$ - 3

movlw

HIGH (65536 - 10000)

Задержка 10 мс

на запись в EPROM.

movwf

TMROH

movlw

LOW (65536 - 10000)

movwf

TMROL

TOSTA, TOCS

Старт таймера.

movlw

1<<T0IE

Разрешение прерываний.

movwf

INTSTA

CPUSTA, GLINTD

tlwt

0, SaveData

Загрузка данных

в регистр указателя таблииы

tlwt

1, SaveData + 1

tablwt

1, 0, SaveData + 1

Запись данных.

clrf

INTSTA, f

Запрещение прерываний.

CPUSTA, GLINTD

movlw



PIC17CXX

MCLR

ТХ RX

I+5 В

7805

2N3905

+5В<

Программирующая головка

МАХ232

Линия приема RX

Линия передачи ТХ

Рис. 9.10

Схема включения микроконтроллера PIC 17Схх при последовательном внутоисхемном поогоаммиоовонии

Для разрешения внутрисхемного программирования напряжение на выводе MCLR должно переключаться с 5 В (Vdd) на 13 В. На рИС 9.10 приведена схема, рекомендуемая фирмой Microchip. С по-мощыо этой схемы напряжение на выводе MCLR микроконтроллера l7Cxx поддерживается на уровне 5 В до тех пор, пока на выводе RA2 сохраняется высокий уровень. При низком уровне напряжения на выводе RA2 величина напряжения, подводимого к MCLR, становится равной 13 В (Vpp). Ток программирования при напряжении 13 В составляет минимум 30 мА.

Программа-загрузчик (Boot code) в данной случае представляет собой программное обеспечение поддержки интерфейса главного устройства (хост-интерфейса). Она считывает данные и затем выполняет их программирование по указанному адресу. Этот код должен «зашиваться» в PIC-микроконтроллер, прежде чем будет выполняться ICSP-программирование. Типичная программа-загрузчик для PIC 17Схх выполняет следующие операции:

1. Установить соединение с главным устройством.

2. Если связи нет, перейти к выполнению программы приложения.

3. Разрешить Vpp (RA2 = 0).

4. Подождать, пока хост отправит инструкцию (данные).



5. Запрограммировать слово.

6. Проверить, что слово запрограммировано правильно.

7. Вернуться к пункту 4.

ПРОГРАММИРОВАНИЕ PIC 18СХХ

Подобно PIC 17Схх микроконтроллеры PIC 18Схх обладают способностью к «самопрограммированию» с помощью команд табличного считывания и записи. В случае PIC 18Схх эта возможность используется не только внутри приложений, но применяется также и для программирования «стертого» микроконтроллера.

Для программирования PIC 18Схх команды загружаются в микроконтроллер после того, как на выводе MCLR устанавливается напряжение Vpp (13-14 В, как и в EPROM других PIC-микроконтроллеров), а на выводах RB6 и RB7 - низкие уровни. Передача инструкций (которые содержат программируемые данные) к Р1С-микрокоц-троллеру происходит путем передачи сначала 4-битной специальной команды, за которой следует 16-разрядная команда. При передаче специальной команды сначала передается старший бит, который является указателем. Если он равен I, то 4-разрядный код соответствует командам TBLRD и IBLWT, как показано в табл. 9.10.

Таблица 9.10

Мнемоника команд программирования PIC 18Схх

Специальная команда

Мнемоника

Операция

Циклы

0000

Перейти к следующей команде

1000

TBLRD -

Считать таблицу

1001

TBLRD •+

Считать таблицу, инкрементировать

TBLPTR

1010

TBLRD •-

Считать таблицу, декрементировать

TBLPTR

1011

TBLRD +•

Инкрементировать TBLPTR, считать таблицу

1100

TBLWT .

Записать таблицу

1101

TBLWT •+

Записать таблицу, инкрементировать

TBLPTR

1110

TBLWT .-

Записать таблицу, декрементировать

TBLPTR

1111

TBLWT

Инкрементировать TBLPTR, записать таблицу

На рис. 9. II представлены временные диаграммы сигналов при передаче данных. Сначала передаются четыре бита кода пор, за которыми следует 16-разрядная команда.



0 ... 96979899100101102 ... 159