5.3.1. Усовершенствованный сторожевой таймер
(Руководство разработчика по микроконтроллерам семейства HCS08)В МК серий DN, DV, DZ, EL, EN, JM, SG и SH встроен более совершенный сторожевой таймер. От рассмотренного выше модуля COP он отличается следующими возможностями:
- Новый способ сброса счетчика. Для обнуления таймера необходимо в регистр SRS записать сначала код 0x55, а затем 0xAA. Оба кода должны быть записаны в течение одного периода работы сторожевого таймера, иначе система будет сброшена. При записи иного значения в регистр SRS или этих же значений, но в другом порядке, МК также сбрасывается. Порядок сброса счетчика сторожевого таймера:
SRS = 0x55;
SRS = 0xAA;
Запись этих же кодов в другом порядке сбрасывает систему:
SRS = 0xAA;
SRS = 0x55;
Запись в COP иного значения также сбрасывает систему:
SRS = 0x10; // Сброс системы - Введены новые настройки коэффициента счета сторожевого таймера. В усовершенствованном сторожевом таймере можно выбирать один из 4 возможных временных периодов и один из двух источников тактирования. Этот выбор производится, как показано в Табл.5.4.
Таблица5.4. Выбор периода работы усовершенствованного сторожевого таймера
COPCLKS | COPT1:COPT0 | Источник тактирования | Коэффициент счета |
---|---|---|---|
x | 00 | Таймер отключен | Таймер отключен |
0 | 01 | Внутренний генератор 1кГц | 32 (32мс) |
0 | 10 | Внутренний генератор 1кГц | 256 (256мс) |
0 | 11 | Внутренний генератор 1кГц | 1024 (1.024с) |
1 | 01 | BUSCLK | 8192 |
1 | 10 | BUSCLK | 65536 |
1 | 11 | BUSCLK | 1 048576 |
- Введено ограничение возможного времени сброса счетчика. Это новый режим работы сторожевого таймера, реализуемый только при тактировании от системной шины BUSCLK. При использовании данного режима сброс сторожевого таймера разрешается только в последней четверти периода счета счетчика. Любые попытки обнулить сторожевой таймер вне разрешенного интервала времени вызовут сброс МК. Режим с ограничением интервала времени сброса счетчика включается с помощью бита COPW, который обычно размещается в регистре SOPT2.
Таблица5.5. Параметры режима с ограничением интервала времени сброса COP
COPCLKS | COPT1:COPT0 | Интервал сброса открывается (код) | Интервал сброса закрывается (код) |
---|---|---|---|
1 | 01 | 6144 | 8192 |
1 | 10 | 49152 | 65536 |
1 | 11 | 196608 | 262144 |
Представленное решение существенно улучшает защищенность программного кода, поскольку даже зацикливание обнуления будет рассматриваться усовершенствованным сторожевым таймером как ошибка. Например:
while(1)
{
SRS=OxAA;
SRS=0x55;
}
5.4. Коды идентификации МК
Устройства семейства HCS08 имеют два регистра специального назначения для идентификации устройства и контроля версии технологической маски. Эта информация позволяет программе-отладчику распознать контроллер.
Идентификационный код — это 12-битное число, а код технологической маски — 4-битное число. В Табл.5.6 указаны идентификационные номера для МК семейства HCS08.
Таблица 5.6. Идентификаторы МК HCS08
Модель МК | Идентификационный код |
---|---|
AC | 0x012 |
AW | 0x008 |
DN, DV, DZ | OxOOE |
EL, SL | 0x013 |
EN | 0x00E |
GB/GT 32/60 | 0x002 |
GT8/16 | 0x00D |
JM | 0x016 |
LC | 0x00C |
QD | 0x01 1 |
QE | 0x015 |
QA/QG | 0x009 |
RC/RD/RE8/16 | 0x003 |
RC/RD/RE/RG 32/60 | 0x004 |
SG | 0x014 |
SH | 0x014 |
Электронные компоненты Freescale >>>
Подробнее о компании Freescale >>>