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

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

0 ... 60616263646566 ... 159


ожидание - старт - 10100001А - OOOOaddrA - байт данных А -стоп - ожидание

Байты данных могут считываться по одному или несколько последовательно - в зависимости от того, какое значение имеет бит подтверждения АСК, направляемый микроконтроллером EEPROM после считывания каждого байта. Чтобы прекратить считывание, после приема очередного байта микроконтроллер формирует сообщение NACK (или просто N в приводящихся ниже кодах), что указывает на завершение операции.

При считывании одного байта последовательность действий имеет следующий вид:

ожидание - старт - 1 01 00001А - байт Даннь1х М - стоп - ожидание

а при считывании двух байтов выглядит так:

ожидание - старт - 10100001А - байт Данных А - байт данных М -стоп - ожидание

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

ДОСТУП к ПРОГРАММНОЙ ПАМЯТИ EPROM

Для чтения из программного ПЗУ (здесь речь будет идти о стираемом программируемом ПЗУ - Erasable Programmable Read-only Memory) необходимо использовать последовательность кодов:

movf р

SaveAddress 1, TBLPTRH

, Подготовка регистра TBLPTR

movf р

SaveAddress, TBLPTRL

, для чтения

tablrd

0, 0, SaveData

, Загрузка TBLAT содержимым

, памяти

tlrd

1, SaveData + 1

tlrd

0, SaveData

movf р

SaveData + 1, WREG

, Старший байт команды

movf p

SaveData, WREG

, Младший байт команды

Для записи в программное ПЗУ микроконтроллеров PIC 17СхХ на линию MCLR должно подаваться напряжение Vpp (от 13 до 14 В)-Во время записи в программную память приостанавливается исполнение всех других команд в микроконтроллере PIC 17Схх. Чтобы восстановить исполнение программы после записи кодов в запоминающее устройство, необходимо инициировать прерывание



(аналогичное прерыванию, инициируемому схемой TMRO). Последовательность кодов, которая используется при записи в ПЗУ программ микроконтроллеров PIC 17Схх, приведена ниже:

org 0x00010

TMROInt

, Подтверждение запроса

, на прерывание от таймера

retfie

movfp

SaveAddress, TBLPTRL

, Задание адреса, по которому

movfp

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 мс

movwf

TMROH

, для записи в EEPROM

movlw

LOW (65536 - 10000)

movwf

TMROL

TOSTA, TOCS

, Запуск таймера

movlw

1 << TOIE

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

movwf

INTSTA

CPUSTA, GLINTD

tlwt

0, SaveData

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

tlwt

1, SaveData + 1

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

tablwt

1, 0, SaveData + 1

clrf

INTSTA, f

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

CPUSTA, GLINTD

movlw

call

SendMSG

PORTA, 3

ДОСТУП к ПРОГРАММНОЙ ФЛЭШ-ПАМЯТИ

Для считывания кодов из флэш-памяти микроконтроллеров PIC 1бР87х необходимо использовать следующую программу:

bsf STATUS, RPI

movlw/movwf LOW address/ADDR, w

"lovwf EEADR " 0x0100

i"ovlw/movwf High address/ADDr, w



movwf EEADRH " 0x0100

bsf STATUS, RPO

bsf EEC0N1 " 0x0180, EEPGD

bsf EEC0N1 - 0x0180, RD

bcf STATUS, RPO

movf EEDATA, w

movwf ... ; Запоминание

младшего байта программной памяти.

movwf EEDATA, w

movwf ... ; Запоминание

bcf STATUS, RP1

старшего байта программной памяти.

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

STATUS, RP1

movlw/movwf

LOW address/ADDR, w

movwf

EEADR

movlw/movwf

HIGH address/ADDR, w

movwf

EEADRH

movlw/movwf

LOW Constant/Data, w

movwf

EEDATA

movlw/movwf

High Constant/Data, w

movwf

EEDATAH

STATUS, RPO

EEC0N1 " 0x0180, EEPGO

EEC0N1 " 0x0180, WREN

INTCON, GIE

movlw

0x055

Максимум ОхОЗР.

] Критичный по времени ] раздел.



0 ... 60616263646566 ... 159