Федеральное агентство по образованию бийский технологический институт (филиал)
Вид материала | Документы |
Содержание4.5Операции с памятью 4.5.1Тестирование ОЗУ 4.5.2Программа тестирования ПЗУ Промежуточное значение контрольной суммы 0BH Итоговое значение контрольной суммы 41H Контрольные вопросы |
- Федеральное агентство по образованию бийский технологический институт (филиал), 981.77kb.
- Федеральное агентство по образованию Бийский технологический институт (филиал), 2694.55kb.
- Федеральное агентство по образованию бийский технологический институт (филиал), 2134.54kb.
- Федеральное агентство по образованию бийский технологический институт (филиал), 1660.78kb.
- Федеральное агентство по образованию бийский технологический институт (филиал), 1946.38kb.
- Федеральное агентство по образованию бийский технологический институт (филиал), 3460.44kb.
- Решением Ученого совета, 125.93kb.
- Федеральная целевая программа "Развитие электронной компонентной базы и радиоэлектроники", 3538.74kb.
- Бийский технологический институт (филиал), 2586.35kb.
- Министерство образования и науки федеральное агентство по образованию майкопский государственный, 102.13kb.
4.5Операции с памятью
В состав микроконтроллерных устройств нередко включают запоминающие устройства (ЗУ). ЗУ характеризуются объёмом хранимой информации, разрядностью, способом подключения (с параллельным или последовательным интерфейсом).
По выполняемой функции ЗУ можно классифицировать на оперативные запоминающие устройства (ОЗУ) и постоянные запоминающие устройства (ПЗУ).
ПЗУ используют для хранения кода программы, констант, таблиц. ОЗУ необходимо для хранения переменных, информации, накапливаемой в процессе измерения и т.д. Так же, как и в ПЗУ, в ОЗУ могут располагаться таблицы и, в редких случаях, код программы.
На рисунке 4.25 приведена схема подключения ОЗУ и ПЗУ к микроконтроллеру.
Для повышения надёжности микропроцессорного устройства предусматривается возможность его самотестирования. Это предполагает выдачу информации о реакции отдельных блоков микропроцессорного устройства на заданное воздействие.
ЗУ также могут быть протестированы. Следует отметить, что существует множество алгоритмов тестирования ЗУ, причём эти алгоритмы различны для ОЗУ и ПЗУ.
4.5.1Тестирование ОЗУ
Один из алгоритмов тестирования ОЗУ предполагает заполнение памяти тестовой информацией (в простейшем случае в ячейку памяти записывается младший байт её адреса, просуммированный с некоторой константой).
Листинг 4.39 содержит текст программы тестирования ОЗУ ёмкостью 8 кБ.
Листинг 4.39 – Программа тестирования ОЗУ | ||
| .ORG 0000H | ; Адрес начала программы |
TEST: | MOV R0, #00H CALL WRITE CALL READ | ; Загрузка в R0 числа, ; прибавляемого к тестовой ; информации (контрольного ; байта) ; Вызов подпрограммы записи ; тестовой информации в ОЗУ ; Вызов подпрограммы чтения ; тестовой информации из ОЗУ с ; проверкой правильности записи |
| CJNE A, 00H, STOP DJNZ R0, TEST JMP BEGIN | ; Проверка результата ; тестирования. При ; обнаружении ошибки останов ; программы ; Иначе переход к следующему ; циклу тестирования ; Переход к основной программе в ; случае успешного тестирования |
STOP: | JMP $ | ; Останов программы при ; обнаружении ошибки ОЗУ |
; Основная программа | ||
BEGIN: | … | |
; Подпрограмма записи тестовой информации в ОЗУ | ||
WRITE: NEXTW: | MOV DPTR, #0000H MOV A, DPL ADD A, R0 MOVX @DPTR, A INC DPTR MOV A, DPH CJNE A, #20H, NEXTW RET | ; В DPTR заносится адрес, по ; которому необходимо ; сохранить байт ; тестовой информации ; В аккумулятор помещается ; младший байт адреса и ; прибавляется число из ; регистра R0 ; Запись тестовой информации в ; ОЗУ ; Инкрементирование адреса ; Проверка предела заполнения ; памяти и переход на начало ; цикла записи, если память ; заполнена не полностью ; Выход из подпрограммы |
; Подпрограмма чтения тестовой информации из ОЗУ с проверкой ; правильности записи | ||
READ: NEXTR: | MOV DPTR, #0000H MOVX A, @DPTR CLR C SUBB A, R0 CJNE A, DPL, ERR INC DPTR MOV A, DPH CJNE A, #20H, NEXTR MOV A, R0 RET | ; В DPTR заносится адрес, с ; которого необходимо ; считать байт ; тестовой информации ; Чтение байта из ОЗУ ; Вычитание из считанного ;значения контрольного байта ; Проверка правильности ; записи данных ; Инкрементирование адреса ; Проверка предела чтения ; памяти и переход на начало ; цикла чтения, если память ; считана не полностью ; Загрузка в аккумулятор байта ; из регистра R0 ; Выход из подпрограммы |
ERR: | MOV A, R0 CPL A RET | ; Загрузка в аккумулятор байта ; из регистра R0 и ; его инвертирование ; Выход из подпрограммы |
4.5.2Программа тестирования ПЗУ
Алгоритм тестирования ПЗУ отличен от алгоритма тестирования ОЗУ, поскольку внутрисистемная запись тестовой информации в постоянное запоминающее устройство, как правило, невозможна.
Для тестирования ПЗУ выполняют подсчёт контрольной суммы и сравнивают полученное значение с известным значением. Контрольная сумма – это сумма содержимого каждой из ячеек памяти без учёта
переполнения. Контрольная сумма может быть однобайтной, двухбайтной и т.д.
Например, если ёмкость восьмиразрядного ПЗУ 4 байта и в нем хранится код 0СH, FFH, 16H, 20H, то однобайтное значение контрольной суммы будет рассчитано следующим образом:
0СH+ FFH=10BH | Промежуточное значение контрольной суммы 0BH |
0BH+16H=21H | Промежуточное значение контрольной суммы 21H |
21H+20H=41H | Итоговое значение контрольной суммы 41H |
Листинг 4.40 содержит текст программы тестирования ПЗУ ёмкостью 2 кБ.
Листинг 4.40 – Текст программы тестирования ПЗУ | ||
CTRL: SUM: | .EQU 34H .REG R0 | ; Известная контрольная сумма ; Регистр контрольной суммы |
| .ORG 0000H | ; Адрес начала программы |
NEXTR: | MOV SUM, #00H MOV DPTR, #0000H MOV A, #00h MOVС A, @A+DPTR ADD A, SUM MOV SUM, A INC DPTR MOV A, DPH CJNE A, #08H, NEXTR CJNE SUM, #CTRL, ERR | ; Обнуление регистра ; контрольной суммы ; В DPTR заносится адрес, с ; которого необходимо ; начать считать ; контрольную сумму ; Чтение байта из ПЗУ ; Прибавление считанного байта ; к содержимому регистра ; контрольной суммы ; Инкрементирование адреса ; Проверка предела чтения ; памяти и переход на начало ; цикла чтения, если память ; считана не полностью ; Сравнение контрольных сумм ; и останов программы, если ; подсчитанная контрольная ; сумма не совпадает с ; заданной |
BEGIN: | … | ; Основная программа |
ERR: | JMP $ | ; Останов при обнаружении ; ошибки |
Контрольные вопросы
- Какие типы ЗУ применяются в микроконтроллерных устройствах?
Для чего необходимо тестирование ЗУ?
Почему метод тестирования ОЗУ не всегда приемлем для тестирования ПЗУ?
Опишите один из алгоритмов тестирования ОЗУ.