Автомобильная сигнализация функционально состоит из двух блоков: автомобильного и домашнего комплекта. Автомобильный комплект передставляет собой функционально законченный блок, способный работать и без домашнего комплекта. Автомобильный комплект обеспечивает диагностику датчика капота, дверей (один канал), багажника и датчика удара (один канал). Все механические датчики могут формировать как плюсовой, так и минусовой потенциал при срабатывании, т.к. диагностика этих датчиков осуществляется с помощью оптронов LTV829. В предлагаемом варианте используются датчики, формирующие минусовой потенциал. Автомобильный комплект обеспечивает управление механическими затворами дверей (один канал со сменой полярности), сиреной (выходной ток до 2А), фарами (один канал), светодиодом охраны. Автомобильный комплект обеспечивает прием и выполнение команд от домашнего комплеката (постановка на охрану, постановка на охрану с выключенным датчиком удара, запрос эха, мигнуть фарами, подать короткий звуковой сигнал 80мс). Передача от домашнего комплекта осуществляется в некодированоом виде. Автомобильный комплект обеспечивает прием и выполнение команд от брелка (постановка на охрану, постановка на охрану с выключенным датчиком удара, снятие с охраны). Передача от брелка осуществляется в кодированоом виде. Аварийное снятие с охраны (во время звучания тревожного синнала) и перевод сигнализации в режим программирования брелков осуществляется с помощю кнопки Valet. Потребление сигнализации в режиме охраны не более 4.5ма.
Домашний комплект обеспечивает передачу команд автомобильному комплекту (постановка на охрану, постановка на охрану с выключенным датчиком удара, запрос эха, мигнуть фарами, подать короткий звуковой сигнал 80мс). Домашний комплект обеспечивает прием и отображение на дисплее ЖКИ информаци от автомобильного комплекта:
AT89s8252 | центральный процессор |
ULN2003 |
драйвер силовых устройств |
MCP3008 |
АЦП |
TX20 |
передающий модуль |
RR10 |
приемный модуль |
DS1812 |
микросхема сброса
процессора |
LED (P1.2) |
выходной сигнал управления светодиодом охраны |
Valet(P1.3) |
входной сигнал от кнопки Valet |
SS, MOSI, MISO, SCK (P1.4, P1.5, P1.6, P1.7) |
сигналы шины SPI. Используются для программирования
AT89s8252 и для чтения / записи MCP3008. |
RES (P3.0, P3.3) |
входной сигнал, прием последовательных данных от
домашнего комплекта и от брелка |
TXD (P3.1) |
выходной сигнал, передача
некодированных последовательных данных на домашний комплект |
SHOCK (P3.2) |
входной сигнал от датчика удара |
ZAG (P3.4) |
входной сигнал от датчика зажигания |
DVER (P3.5) |
входной сигнал от датчиков дверей (все датчики имеют
нормально разомкнутые контакты и соеденены паралельно). |
KAPOT (P3.6) |
входной сигнал от датчика капота |
ALARM (P3.7) |
выходной сигнал подачи питания на оптроны механических
датчиков и датчик удара |
Per (P0.4) |
выходной сигнал включения передатчика |
OTKR(P0.3) |
выходной сигнал на реле открывания дверей |
ZAKR(P0.2) |
выходной сигнал на реле закрытия дверей |
FARY(P0.1) |
выходной сигнал на реле включения фар |
SIREN(P0.0) |
выходной сигнал на силовой ключ включения сирены (КТ805,
ток 2А) |
AT89с51 |
центральный процессор |
PC2004 |
четырехстрочная ЖКИ панель |
DS1307 |
часы реального времени |
TX20 |
передающий модуль |
RX20 |
приемный модуль |
DS1812 |
микросхема сброса процессора |
ULN2003 |
силовые ключи |
Функции кнопок:
№ кнопки |
Основной режим |
Режим коррекции времени |
Кнопка 1 (P2.0) |
Постановка на охрану |
Обнуление секунд и выход в основной режим. |
Кнопка 2 (P2.1) |
Постановка на охрану с выключенным датчиком удара |
Выбор редактируемого параметра |
Кнопка 3 (P2.2) |
Мигнуть фарами |
Увеличение значения |
Кнопка 4 (P2.3) |
Подать звуковой сигнал |
Уменьшение значения |
Кнопка 5 (P2.4) |
Запрос эха. В ответ автомобильный комплект передаст
сандартный пакет данных. Передача происходит также каждые 55минут. |
Не обслуживается |
1 Байт = 12h |
Заголовок пеpедачи |
2 Байт |
Младший байт счетчика сбpоса (отображается на дисплее ЖКИ.
Работает на вычитание. Определяет время до сброса) |
3 Байт |
Стаpший байт счетчика сбpоса (отображается на дисплее ЖКИ.
Работает на вычитание. Определяет время до сброса) |
4 Байт |
Байт статуса сигнализации |
5 Байт |
Напpяжение боpтсети автомобиля |
6 Байт |
Код команды домашнему комплекту |
7 Байт |
Счетчик циклов пеpедедачи (интегральный параметр качества
канала, отображается на дисплее ЖКИ в hex формате) |
8 Байт |
Контpольная сумма |
Бит 1 |
Флаг постановки на охpану (используется домашним
комплектом) |
Бит 2 |
Строб 50мс (домашним комплектом не используется) |
Бит 3 |
Флаг, выставляемый при переобучении KeeLoq (домашним
комплектом не используется) |
Бит 4 |
Флаг, выставляемый при ресинхронизации KeeLoq (домашним
комплектом не используется) |
Бит 5 |
Флаг подачи тревожного сигнала (домашним комплектом не
используется) |
Бит 6 |
Флаг выключения датчика удаpа (при постановке на охрану с
выключенним датчиком удара, используется домашним комплектом) |
Бит 7 |
Флаг мигалки светодиодом (домашним комплектом не
используется) |
2 |
Постановка на охрану |
4 |
Снятие с охраны |
6 |
Постановка на охрану с выключенным датчиком
удара |
78h |
Включение питания (при подаче питания) |
4bh | Сpаботал датчик удаpа |
52h | Сpаботал датчик капота |
0a8h | Сpаботал датчик двери |
86h | Сpаботал датчик зажигания |
0ech | Пеpедать код ответа ECh (на запрос эха) |
0deh | Подтверждение снятия с охpаны (передается при снятии с
охраны) |
39h | Подтверждение постановка на охpану (передается при
постановке на охрану) |
0c7h | Код pестаpта пpогpаммы (передается каждые
55мин) |
Описание констант программы автомобильного комплекта.
Номер строки программы |
Значение |
Описание |
70 |
7 |
Начальная установка времени цикла мигания при включении питания (350мс) |
71 |
80 |
Начальная установка времени передачи при включении питания
(4с) |
72 |
FFh |
Начальная установка счетчика сброса при включении питания
(младший байт) |
73 |
FFh |
Начальная установка счетчика сброса при включении питания
(старший байт) |
81 |
78h |
Передаваемый код при включении питания |
83 |
50 |
Время включения фар при подачи питания (2.5с) |
103 |
FFh |
Время ожидания входа в режим программирования брелков
(12.8с) |
108 |
FFh |
Время ожидания второго нажатия кнопки брелка
(12.8с) |
132 |
50 |
Колличество попыток постановки на охрану датчика удара
ADXL250 - не используется |
154 |
3 |
Порог значений канала X и Y датчика удара ADXL250 -
не используется |
165 |
20 |
Порог1 канала Z датчика удара ADXL250 - не
используется |
167 |
4Bh |
Передача кода при срабатывании канала Z датчика удара
ADXL250 - не используется |
168 |
10 |
Время включения фар при превышении порога1 канала Z датчика
удара ADXL250 - не используется |
169 |
40 |
Порог2 канала Z датчика удара ADXL250 - не
используется |
172 |
15 |
Время подачи звукового сигнала при превышенни второго
порога канала Z датчика удара ADXL250 (15 раз по 350мс) - ADXL250 не
используется |
178 |
5 |
Время подачи звукового сигнала при превышении порога
каналов XY датчика удара ADXL250 - не используется (5 раз по 350мс) -
ADXL250 не используется |
180 |
4Bh |
Передача кода при срабатывании канала XY датчика удара
ADXL250 - не используется |
187 |
60 |
Вpемя до обнуления ячейки udarmem (20с) |
188 |
3 |
Колличество срабатываний датчика удара в течении 20с до
включения сирены |
192 |
10 |
Время подачи звукового сигнала при срабатывании
датчика удара более 4 раз течении 20с (500мс) |
193 |
10 |
Время включения фар при срабатывании датчика удара
(500мс) |
194 |
4Bh |
Передача кода при срабатывании датчика удара |
200 |
6 |
Время включения светодиода в режиме охраны
(300мс) |
202 |
20 |
Время выключения светодиода в режиме охраны
(1000мс) |
205 |
2 |
Время включения светодиода в режиме охраны (100мс) после
подачи тревожного сигнала |
207 |
6 |
Время выключения светодиода в режиме охраны (100мс) после
подачи тревожного сигнала |
216 |
5 |
Время включения электрозамков на открытие при снятии с
охраны кнопкой VALET |
222 |
52h |
Код передачи при срабатывании датчика капота |
223 |
20 |
Время работы сирени при срабатывании датчика капота
(7с) |
229 |
0A8h |
Код передачи при срабатывании датчика двери |
230 |
20 |
Время работы сирены при срабатывании датчика двери (7с)
|
236 |
86h |
Код передачи при срабатывании датчика зажигания - не
используется |
237 |
20 |
Время работы сирени при срабатывании датчика зажигания (7с)
- не используется |
242 |
2 |
Код постановки на охрану |
245 |
4 |
Код снятия с охраны |
246 |
5 |
Время включения электрозамков на открытие при снятии с
охраны (250мс) |
247 |
5 |
Код команды мигнуть фарами |
248 |
10 |
Время включения фар при приеме команды мигнуть фарами
(500мс) |
249 |
6 |
Код постановки на охрану с выключенным датчиком
удара |
251 |
5 |
Время включения электрозамков на закрытие при постановке на
охрану (250мс) |
254 |
7 |
Код команды подать звуковой сигнал |
256 |
2 |
Время подачи звукового сигнала при при приеме команды
подать звуковой сигнал (80мс) |
257 |
9 |
Код запроса эха |
258 |
0ECh |
Код ответа на запроса эха |
262 |
7 |
Номер канала АЦП, измеряющий напряжение бортсети |
266 |
21h |
Смена pежима таймеpа1 - 8бит с пеpезагpузкой из TH1 при
передаче |
267 |
0FAh |
Константа, определяющая скоpость последовательного поpта
(9600бод) |
276 |
80 |
Восстановление константы времени передачи (4с) после
передачи |
281 |
50 |
Константа блокиpовки датчика удаpа при мигании фарами
(1с) |
289 |
0B8h |
Константа, определяющая время подачи звукового сигнала
(80мс) при SIREN = 2 младший байт |
290 |
40h |
Константа, определяющая время подачи звукового сигнала
(80мс) при SIREN = 2 старший байт |
291 |
100 |
Константа блокиpовки датчика удаpа при включении сирены
(5с) |
302 |
0deh |
Код, передаваемый при снятии с охраны |
313 |
2 |
Длительность сирены при попытке постановки на охрану со
сработавшим датчиком капота (80мс) |
317 |
20 |
Задержка постановки на охрану при после закрытия дверей
(1с) |
319 |
10 |
Время включения фар при попытке постановки на охрану с
открытыми дверми или багажника (500мс) |
325 |
39h |
Код подтверждения, передаваемый при постановке на
охрану |
328 |
7 |
Начальная инициализация счетчика мигания светодиодом при
постановке на охрану (350мс) |
331 |
200 |
Запрет анализа датчика удара при постановке на охрану
(10с) |
336 |
0C7h |
Код, передаваемый при рестарте программы (каждые
55мин) |
342 |
7 |
Таймер с интервалом 350мс |
353 |
100 |
Константа блокиpовки датчика удаpа при включении
прерывистой сирены (5с) |
377 |
7 |
Константа, определяющая время прерывания аппаратного
таймера 0 (50мс). Младший байт |
378 |
4Ch |
Константа, определяющая время прерывания аппаратного
таймера 0 (50мс). Старший байт |
397 |
12h |
Байт заголовка передачи |
411 |
0FFh |
Инициализация счетчка шгагов передачи после
передачи |
453 |
0E8h |
Константа, определяющая паузу перед посылкой от брелка.
Старший байт |
454 |
42h |
Константа, определяющая паузу перед посылкой от брелка.
Младший байт |
456 |
11h |
Смена pежима таймеpа1 - 16 бит |
462 |
0F0h |
Фильтр минимальной длительности паузы перед посылкой от
брелка. |
496 |
66 |
Колличество принимаемых бит от брелка |
508 - 515 |
Байты серийного номера первого брелка | |
516 |
10h |
Адpес байтов счетчика синхpонизации брелка 1 во флэш -
памяти процессора |
519 - 527 |
Байты серийного номера второго брелка | |
528 |
12h |
Адpес байтов счетчика синхpонизации брелка 2 во флэш -
памяти процессора |
531 - 539 |
Байты серийного номера домашнего комплекта | |
544 |
4 |
Код снятия с охраны (для блокировки снятия с
охраны) |
550 - 557 |
декодирующий ключ KeeLoq | |
635 |
Дискриминационные биты KeeLoq | |
651 |
20h |
Адрес ячеек флэш - памяти процессора при ресинхронизации
брелка. |
669 |
16 |
Порог1 синхронизации (колличество посылок брелка, после
которых происходит рассинронизация) |
677 |
16 |
Порог2 синхронизации (колличество посылок брелка, после
которых необходимо переобучение 16 + 16) |
679 |
3 |
Время подачи звукового сигнала при необходимости
переобучения (превышение порога2, 150мс). |
683 |
2 |
Время подачи звукового сигнала при необходимости
ресинхронизации (превышение порога1, 80мс). |
684 |
20h |
Адрес ячеек флэш - памяти процессора при ресинхронизации
брелка. |
689 |
30 |
Запрет анализа канала приема при успешном приеме кода
(1.5с) |
695 |
91h |
Восстановление режима работы аппаратного таймера 1 (запуск
от INT1) после прерывания приема. |
744 |
6 |
Номер канала АЦП, измеряющий напряжение питания
сигнализации |
747 |
60 |
Пороговое значение напряжения, ниже которого запрещена
запись во внутренюю флэш - память процессора (6В). Если напряжение ниже
этого порога процессор будет остановлен. |
765 |
5 |
номеp канала АЦП для кооpдинаты X |
768 |
4 |
номеp канала АЦП для кооpдинаты
Y |
Работа подпрограммы приема кода KeeLoq:
Осуществляется по прерыванию. На время работы программы все остальные прерывания запрещаются. Таймер 1 работает в режиме 9: 16 - битный таймер с запуском от INT1. Запуск таймера осуществляется передним фронтом на INT1, останов на заднем фронте INT1. Прерывание приема таокже осуществляется на заднем фронте INT1. Таким образом, при входе в программу приема имеем длительность запускающего импульса в регистрах TH1:TL1. В подпрограмме приема режим таймера 1 меняется на 1: 16-битный таймер с запуском / остановом от TR1. Все задержки в подпрограмме приема осуществляются с помощью этого таймера. При выходе из подпрограммы приема режим таймера 1 восстанавливается на 9.Алгоритм работы подпрограммы приема:
a) выставляется бит ReSync, и принятое значение счетчика синхронизации сохраняется во флэш - памяти (ячейки 20h и 21h, мл.б и ст.б). Сбрасывается флаг ReLrn (если был устаноален).Осуществляется выход из подпрограммы.
b) при следующем приеме посылки, программа, встретив флаг ReSync сбрасывает его и проверяет разность последней принятой посылки и записанной во флэш – память декодера (ячейки 20h и 21h, мл.б и ст.б) значений счетчика синхронизации. Разность должна быть +1.
c) если условие выполняется, принятое в последний раз значение счетчика синхронизации перезаписывается в основные ячейки флэш – памяти (10h – мл.б и 11h – ст. б.). Декодируется код нажатой кнопки и код приема помещается в ячейку Priem.
постановка на охpану |
При передаче команды постановки на охрану (звучит короткий
звуковой сигнал при приеме подтверждения команды постановки на
охpану) |
постановка с В.Д.У. |
При передаче команды постановки на охрану с отключенным
датчиком удара (звучит короткий звуковой сигнал при приеме подтверждения
команды) |
мигнуть фаpами |
При передаче команды мигнуть фаpами |
звуковой сигнал |
При передаче команды подать звуковой сигнал |
пpовеpка связи |
При передаче команды запрос параметров (эхо) |
пpием есть,не на охp |
После передачи команды запрос параметров (эхо) и при ответе
автомобильного комплекта в течении 5с |
пpием есть,охp с ВДУ |
После передачи команды запрос параметров (эхо) и при ответе
автомобильного комплекта в течении 5с |
пpием есть,на охpане |
После передачи команды запрос параметров (эхо) и при ответе
автомобильного комплекта в течении 5с |
пpиема нет |
После передачи команды запрос параметров (эхо) и отсутствии
ответа автомобильного комплекта в течении 5с |
сбpос сигнализации |
При рестарте программы автомобильного комплекта (с
интервалом 55минут) |
снятие с охpаны |
При передаче команды снятия с охраны от брелка |
включение питания |
При подачи питания на автомобильный
комплект. |
датчик двеpей |
При сработавшем датчике дверей. Звуковой сигнал звучит
непрерывно. |
датчик капота |
При сработавшем датчике капота.Звуковой сигнал звучит
непрерывно. |
shock ММ:СС |
При сработавшем датчике удара.Звуковой сигнал звучит
примерно 0.5с. |
№ кнопки |
Основной режим |
Режим коррекции времени |
Кнопка 1 (P2.0) |
Постановка на охрану |
Обнуление секунд и выход в основной режим. |
Кнопка 2 (P2.1) |
Постановка на охрану с выключенным датчиком удара |
Выбор редактируемого параметра |
Кнопка 3 (P2.2) |
Мигнуть фарами |
Увеличение значения |
Кнопка 4 (P2.3) |
Подать звуковой сигнал |
Уменьшение значения |
Кнопка 5 (P2.4) |
Запрос эха. В ответ автомобильный комплект передаст
сандартный пакет данных. Передача происходит также каждые 55минут. |
Не обслуживается |
45 |
7 |
Начальная инициализация таймера управления внешним
светодиодом (350мс) |
46 |
0FFh |
Начальная инициализация таймера управления подсветкой
индикатора |
67 |
8Ch |
Адрес курсора для вывода байта качества канала |
71 |
90h |
Адрес курсора для вывода счетчика до рестарта
автомобильного комплекта |
100 |
2 |
Код команды постановки на охрану |
104 |
6 |
Код команды постановки на охрану с выключенным датчиком
удара |
108 |
5 |
Код команды мигнуть фарами |
112 |
7 |
Код команды подать звуковой сигнал |
117 |
9 |
Код команды запрос эха |
122 |
100 |
Время ожидания ответа от автомобильного комплекта при
запросе эха |
124 |
0ECh |
Код ответа на запрос эха |
133 |
10 |
Время звучания звукового сигнала при отсутсятвии ответа на
запрос эха |
137 |
0FFh |
Повторная инициализация таймера управления подсветкой
индикатора |
144 |
0A8h |
Код сработавшего датчика дверей |
147 |
52h |
Код сработавшего датчика капота |
159 |
86h |
Код сработавшего датчика зажигания - не
используется |
156 |
4Bh |
Код сработавшего датчика удара |
171 |
10 |
Время звучания звукового сигнала при сработавшем датчике
удара |
173 |
39h |
Код подтверждения команды постановки на охрану. |
177 |
20 |
Время звучания звукового сигнала при приеме кода
подтверждения постановки на охрану. |
179 |
0C7h |
Код рестарта программы автомобильного комплекта |
181 |
1 |
Время звучания звукового сигнала при приеме кода рестарта
программы автомобильного комплекта |
182 |
0FFh |
Инициализация младшего байта счетчика сбpоса при при приеме
кода рестарта программы автомобильного комплекта |
183 |
0FFh |
Инициализация старшего байта счетчика сбpоса при при приеме
кода рестарта программы автомобильного комплекта |
185 |
0DEh |
Код подтверждения команды снятия с охраны. |
187 |
0FFh |
Повторная инициализация таймера управления подсветкой
индикатора при приеме кода подтверждения команды снятия с охраны |
189 |
20 |
Время звучания звукового сигнала при приеме кода
подтверждения команды снятия с охраны |
191 |
78h |
Код включения питания автомобильного комплекта |
193 |
0FFh |
Повторная инициализация таймера управления подсветкой
индикатора при приеме кода включения питания автомобильного
комплекта |
195 |
25 |
Время звучания звукового сигнала при приеме кода
включения питания автомобильного комплекта |
251 |
7 |
Константа, определяющая время прерывания аппаратного
таймера 0 (50мс). Младший байт |
252 |
4Ch |
Константа, определяющая время прерывания аппаратного
таймера 0 (50мс). Старший байт |
259 |
10 |
Таймер с интервалом 500мс |
280 |
7 |
Колличество циклов передачи KeeLoq |
285 |
0eah |
Константа для аппаратного таймера 1, определяющая паузу
перед передачей KeeLoq. Старший байт. |
286 |
069h |
Константа для аппаратного таймера 1, определяющая паузу
перед передачей KeeLoq. Младший байт. |
289 |
9 |
Колличество передаваемых байт KeeLoq. |
308 |
0a6h |
Константа для аппаратного таймера 1, определяющая паузу
после передачи KeeLoq. Старший байт. |
309 |
1 |
Константа для аппаратного таймера 1, определяющая
паузу после передачи KeeLoq. Младший байт. |
321 |
0fdh |
Константа для аппаратного таймера 1 для задеpжки 600мкс,
определяющая время передачи битинтервала KeeLoq. Старший байт. |
322 |
0fdh |
Константа для аппаратного таймера 1 для задеpжки 600мкс,
определяющая время передачи битинтервала KeeLoq. Младший байт. |
327 |
Передаваемые байты: плавающий код (4 * 0FFh),
серийный номер, 4 бита кнопок и 2 последних бита | |
337 |
12h |
Байт заголовка при приеме от автомобильного
комплекта |
378 |
0D4h |
Адрес курсора для вывода даты |
423 |
0eh |
Код команды включить куpсоp в виде подчеpкивания |
429 |
0FFh |
Время ожидания при выходе по неактивности из режима
коррекции времени и даты (12.8с) |
508 |
0FFh |
Перезагрузка таймера ожидания выхода по неактивности
из режима коррекции времени и даты (12.8с) |
517 |
Строка подсказки в режиме коррекции времени | |
520 |
Строка для вычисления и вывода дня недели | |
521 |
Строка для вычисления и вывода месяца | |
523 |
Строка допустимых параметров коррекции времени и
даты | |
525 |
Строка для вывода первых двух чисел
года |
Программирование брелков.
При программировании в кодер записывается следующая информация:
№байта |
Описание |
1-8 |
Секретный ключ. 8байт, младший байт первый |
9,10 |
Счетчик синхронизации. 2 байта (можно нулевых), младший байт первый |
11,12 |
Резерв. 2 байта, должны быть 0 |
13 - 16 |
Серийный номер кодера. 4байта, младший байт первый. Старший бит старшего байта разрешает режим выключения передачи при времени передачи более 25с |
17,18 |
Seed_0. 2байта, младший байт первый |
19,20 |
Seed_1. 2байта, младший байт первый |
21,22 |
Кодирующий ключ. 2 байта младший байт первый. Может использоваться для дополнительной кодировки серийного номера. В нормальном режиме серийный номер не кодируется |
23 |
Дискриминационная величина. 1байт. |
24 |
Слово конфигурации |
Слово конфигурации включает в себя:
№бита |
Описание |
0-9 |
Дискриминационные биты |
10, 11 |
Биты переполнения счетчика синхронизации. Служат для расширения разрядности счетчика |
12 |
Бит выбора порога напряжения, при котором устанавливается статусный бит Vlow (низкое напряжение питания) |
13, 14 |
Биты выбора скорости передачи. 0, 0 – максимальная скорость |
15 |
Бит разрешения дополнительного кодирования серийного номера кодера при передаче (1 – разрешено кодирование) |
Программирование (название задержек взято из DATASHIT на HCS300):
шаг |
Действие микроконтроллера |
1 |
Установить линию S3 в 1 |
2 |
Ждать Tps = 3.5 – 4.5мс |
3 |
Установить линию PWM в 1 |
4 |
Ждать TPH1 = 3.5мс мин |
5 |
Сбросить линию PWM в 0 |
6 |
Ждать TPH2 = 50мкс мин |
7 |
Сбросить в 0 линию S3 |
8 |
Ждать Tpbw = 2.2мс макс |
9 |
Установить линию S3 в 1 и выставить бит данных |
10 |
Последовательно выставляя передний и задний фронт с задержкой в один такт Tclkl = Tclkh = 25мкс мин по шине CLK программируется весь поток данных (192бит). Данные выставляются микроконтроллером на переднем фронте по шине CLK и читаются кодером на заднем фронте. После программирования каждых 16 бит осуществляется задержка Twc = 36мс (для завершения цикла записи во флэш – память кодера). Во время задержки на линии S3 должен быть 0. |
11 |
После программирования последнего бита микроконтроллер также осуществляет задержку Twc = 36мс и устанавливает линию PWM в третье состояние. Декодер выставляет младший бит запрограммированного потока данных для проверки. |
12 |
Установить линию S3 в 1 и читать бит данных |
13 |
Выставить 0 по шине S3 и декодер выставляет новый бит. |
14 |
Последовательно выставляя передний и задний фронт с задержкой в один такт Tclkl = Tclkh = 25мкс мин по шине S3 можно прочитать весь поток данных (192бит). |
В результате написания программы приема и декодирования KeeLoq выяснилось:
Порядок приема информации:
№ байта |
адрес озу процессора |
Ячейка памяти |
Значение до декодирования |
Значение после декодирования |
1 |
2ch |
HOP0+0 |
Плавающий код. Биты 0 – 7 |
Счетчик синхронизации (мл.б.) |
2 |
2dh |
HOP0+1 |
Плавающий код. Биты 8 – 15 |
Счетчик синхронизации (мл.б.) |
3 |
2eh |
HOP0+2 |
Плавающий код. Биты 16 – 24 |
8 младших дискриминационных бит (0 – 7) |
4 |
2fh 20-2fh побитно адресуемые ячейки |
HOP0+3 (всего 32 бита) |
Плавающий код. Биты 25 – 32 |
Бит 0 -
дискриминационных бит 8 |
5 |
30h |
HOP0+4 |
Серийный номер. Биты 0-7. Не кодируется | |
6 |
31h |
HOP0+5 |
Серийный номер. Биты 8-15. Не кодируется | |
7 |
32h |
HOP0+6 |
Серийный номер. Биты 16-24. Не кодируется | |
8 |
33h |
HOP0+7 |
Серийный номер. Биты
25-28. Не кодируется | |
9 |
34h |
HOP0+8 |
Бит 0 – бит повтора передачи. Бит 1- бит разряда батареи кодера Vlow*. |
Передаваемые значения кодов нажатия кнопок:
Номер вывода HCS300 |
HOP0+7, старший ниббл, не кодированное значение |
HOP0+3, старший ниббл, кодированное значение |
Разряд |
|
2 |
2 |
2 |
|
4 |
4 |
4 |
|
8 |
8 |
8 |
|
1 |
1 |
1 |
Помните, что замыкание вывода 6(PWM) HCS300 к +5В приводит к
стиранию запрограммированной информации в микросхеме и перевод ее в режим
программирования.
В pезультате пpавильного пpогpаммиpования на дисплей
ЖКИ выводится:
------------------------------------;
AAAAAAAAAAAAAAAABBBB;
GGGGHHII
;
CCCCDDDDDDDDEEEEFFFF ;
без
ошибки
;
------------------------------------;
A - младший байт - старший байт
ключа(64бита)
B - счетчик синхpонизации, 16бит
C - pезеpвные байты
(2байта)
D - младший байт - старший байт сеpийного номеpа (4байта)
E
- SEED_0, F - SEED_1, G - ENV_KEY
H - дискpиминационные биты 0-7, I - байт
конфигуpации
Автор проекта: Шабров Дмитрий. 306-4002. dshabrov@mtu-net.ru