Карта сайта | Пишите нам | В избранное | eng
Внимание! У нас изменились номера телефонов. Звоните:
(495) 638-88-00, (499) 940-95-75, факс (499) 735-04-91; +7(909) 638-88-00 и +7(903) 530-10-01 (Билайн). |
Микроэлектронные проекты. Шабров Дмитрий. Автомобильная сигнализация с радиоканалом, плавающим кодом и домашним комплектом для мониторинга состояния датчиков.Автомобильная сигнализация функционально состоит из двух блоков: автомобильного и домашнего комплекта.Автомобильный комплект передставляет собой функционально
законченный блок, способный работать и без домашнего комплекта. Автомобильный
комплект обеспечивает диагностику датчика капота, дверей (один канал),
багажника и датчика удара (один канал). Все механические датчики могут формировать
как плюсовой, так и минусовой потенциал при срабатывании, т.к. диагностика
этих датчиков осуществляется с помощью оптронов LTV829. В предлагаемом варианте
используются датчики, формирующие минусовой потенциал. Автомобильный комплект
обеспечивает управление механическими затворами дверей (один канал со сменой
полярности), сиреной (выходной ток до 2А), фарами (один канал), светодиодом
охраны. Автомобильный комплект обеспечивает прием и выполнение команд от
домашнего комплеката (постановка на охрану, постановка на охрану с выключенным
датчиком удара, запрос эха, мигнуть фарами, подать короткий звуковой сигнал
80мс). Передача от домашнего комплекта осуществляется в некодированоом виде.
Автомобильный комплект обеспечивает прием и выполнение команд от брелка
(постановка на охрану, постановка на охрану с выключенным датчиком удара,
снятие с охраны). Передача от брелка осуществляется в кодированоом виде.
Аварийное снятие с охраны (во время звучания тревожного синнала) и перевод
сигнализации в режим программирования брелков осуществляется с помощю кнопки
Valet. Потребление сигнализации в режиме охраны не более 4.5ма.
Домашний комплект обеспечивает передачу команд автомобильному комплекту (постановка на охрану, постановка на охрану с выключенным датчиком удара, запрос эха, мигнуть фарами, подать короткий звуковой сигнал 80мс). Домашний комплект обеспечивает прием и отображение на дисплее ЖКИ информаци от автомобильного комплекта:
В качесве модулей приема и передачи используется сверхрегенеративный
радиомодуль для приема и TXH20 российской фирмы СМП для передачи. Применение
сверхрегенеративного модуля в качестве приема продиктовано плохой стабильностью
частоты брелков. В этих условиях супергетеродинные приемники не обеспечивают
надежный прием сигналов от брелка, поскольку имеют более узкую полосу приема.
Передача сигналов на домашний комплект не кодирована и осуществляется через
последовательный порт процессора.
Диагностика механических датчиков осуществляется с помощью транзисторных оптронов LTV829, что позволяет работать с механическими датчиками любой полярности и обеспечивает гальваническую развязку цепей диагности с цепями датчиков. Последовательно с оптронами включены светодиоды, обеспечивающие индикацию сработавшего датчика (применялись на стадии отладки). Выходные транзисторы оптронов подключены к выводам процессора. Автомобильный комплект имеет разъем программирования, обеспечивающий программирование процессора от компьютера по шине SPI. Для уменьшения потребления при снятой с охраны сигнализации применена схема подачи питания на LTV829 и датчик удара ( КП505, КТ3107). Элементы схемы подобраны так, что ток, протекающий через КТ3107 ограничивается на уровне 30ма. Управление светодиодом осуществляется с помощью полевого танзистора КП505. Подача питания на передатчик осуществляется с помощью ключа на КТ973 транзисторе. Светодиод обеспечивает индикацию напряжения питания на передатчике. В схеме применен стабилизатор LP2950, имеющий низкий ток утечки на землю. В сигнализации применены стандартные автомобильные разъемы. S1 – 11 контактный силовой разъем подачи питания и вывода силовых сигналов. S2 – разъем подключения механических датчиков. Подключение указанных разъемов стандартно и соответствует сигнализации Mongoose модель IQ. Исключение составляют выводы S2.1 и S2.8. Эти выводы незадействованы в штатном варианте и используются для подключения кнопки Valet. Управления внешними силовыми цепями автомобиля (электрозамок, фары, сирена) осуществляется с помощью реле. Реле управляются силовым драйвером ULN2003. Все реле, показанные на схеме снабжены обратными диодами (на схеме не показаны). Измерение напряжений (питания сигнализации и бортсети автомобиля) осуществляется с помощью 8 - канального АЦП MCP3008. Остальные каналы зарезервированы для работы с датчиком удара на ADXL250. Модуль процессора состоит из процессора AT89s8252, микросхемы
сброса DS1812 и кварца 11.059.000Гц. Внутренняя флэш-память данных используется
для памяти констант брелков. В проекте используется два брелка, однако их
колличество может быть увеличено. Частота кварца выбрана для обеспечения стандартных
скоростей последовательного порта и может быть изменена на обоих комплектах
одновременно. Однако, в этом случае придется изменить константы приема сигналов
от брелка в автомобильном комплекте.
Резистор, включенный последовательно с DS1812 предназначен для исключения взаимного влияния цепей сброса в режиме программирования AT89s8252. Выводы портов Р1 и Р3 процессора подтянуты к источнику +5В через резисторы 47к. Конфигурационная перемычка (P1.1) предназначена для переключения на датчик удара, собранный на микросхеме ADXL250. В данном проекте он не используется и вывод должен оставаться неподключенным. Модуль процессора использует следующие сигналы:
Модуль АЦП предназначен для измерения напряжения питания
сигнализации и для измерения напряжения бортсети автомобиля. В дальнейшем
планируется использовать три канала для измереения аналоговых сигналов
с датчика удара на ADXL250. Чтение АЦП осуществляется с помощью сигналов
шины SPI (SS, MOSI, MISO, SCK). АЦП включен по стандартной схеме, взятой
из DATASHIT на микросхему. Потенциометром устанавливается точное значение
напряжения бортсети.
Модуль драйверов предназначен для управления силовыми
промежуточными реле (фары, электрозамок), включения передатчика, включения
силового ключа сирены. Используемая микросхема ULN2003 уже содержит в своем
составе обратные диоды для гашения всплексов напряжения на обмотках реле.
Однако, настоятельно рекомендуется подключать дополнительные диоды непосредственно
(и вблизи) к обмотке реле для улучшения помехозащиты.
Для уменьшения тока, потребляемого сигнализацией включение силовых
драйверов осуществляется низким логическим уровнем. Транзисторы КТ361
предназначены для инвертирования логического уровня.
Домашний комплект питается от сети переменного тока
220В. В домашнем комплекте применены радиомодули, собранные по супергетеродинной
схеме RX20 и TX20 Российской фирмы СМП. Транзистор КТ3102, включенный
на выходе RX20 является буфером, поскольку микросхема модуля имеет малый
выходной ток.
Файлы проекта:Микросхемы DS1812 предназначена для сброса процессора. Резистор, включенный последовательно с DS1812 предназначен для исключения взаимного влияния цепей сброса. В схеме применены силовые драйверы ULN2003 для управления подачей питания на передатчик, подачи звуковых сигналов, управления внешним светодиодом (мигалка), управления подсветкой ЖКИ индикатора PC2004. Подача питания на передатчик осуществляется с помощью ключа на транзисторе КТ973 . Светодиод обеспечивает индикацию напряжения питания на передатчике. Часы реального времени DS1307 включены по типовой схеме. Чтение и запись микросхемы осуществляется по интерфейсу I2C. Диоды обеспечивают напряжение на выводе 3 не выше 3.9В, поскольку при большем напряжении батареи (по отношению к питающим +5В) микросхема переходит в спящий режим при котором блокирутся интерфейс I2C. В качестве звукового излучателя применена динамическая головка 0.25Вт, сопротивлением 8Ом. В индикаторе PC2004 применена двухуровневая подсветка, уменьшающая яркость индикатора при неактивности. Схема домашнего комплекта обеспечивает также управление внешним светодиодом с периодом мигания 350мс. Функции кнопок:
Программное обеспечение.
Логика работы автомобильного комплекта При включении питания процессор инициализирует рабочие ячейки ОЗУ. Флэш - память не инициалицируется. Включаются фары на время 2.5с. Далее процессор переходит в режим снятия с охраны. Светодиод выключен. В этом режиме доступно программирование брелков. При постановке на охрану нажимается соответствующая кнопка на брелке или на домашнем комплекте. Процессор анализирует состояния датчиков. Если сработал датчик капота, будет подан короткий (100мс) звуковой сигнал и произойдет отказ в постановке на охрану. Если сработал датчик двери или багажника, процессор включит фары на время 500мс и светодиод (постоянно) и перейдет в режим ожидания закрытия дверей. При закрытии всех дверей произойдет постакновка на охрану. При этом процессор включит реле электрозамков на закрытие на время 250мс. Отказ от данного режима может быть осуществлен нажатием кнопки снятия с охраны на брелке. При этом процессор включит реле электрозамков на открытие на время 250мс, выключит светодиод. В режиме охраны светодиод мигает с периодом 300 / 1000мс, если за время охраны не подавался тревожный звуковой сигнал (при срабатывании датчиков дверей, капота или багажника). Иначе период составляет 100 / 400мс. Снятие с охраны возможно только с помощью брелка, т.к. только брелк передает посылки с защищенным плавающим кодом. Для снятия с охраны нажимается соответствующая кнопка на брелке. При этом процессор включит реле электрозамков на открытие на время 250мс, выключит светодиод. При включенной сирены возможно также снятие сигнализации с охраны нажатием кнопки VALET. При срабатывании датчика удара во время охраны процессор включает фары на время 500мс. Если в течении 20с колличество срабатываний датчика удара превысит 4 раза, вместе с фарами будет включаться сирена на время 500мс. При срабатывании датчика двери во время охраны процессор включает попеременно сирену и фары с периодом 350мс. Если в течении 90с срабатывание датчика не будет устранено, процессор исключит датчик из алгоритма анализа датчиков и выключит сирену и фары. Дальнейшая охрана будет осуществлятся без этого датчика. Если во время охраны датчик удара вернулся в нормальное состояние, он снова будет включен в алгоритм анализа датчиков. Программирование брелков (при снятой с охраны сигнализации)
При срабатывании любого из датчиков, а также каждые 55минут происходит передача стандартного пакета на домашний комплект. Посылка включает в себя 8 байт передачи:
Байт статуса сигнализации содержит следующую информацию:
Коды, передаваемые брелком:
коды, передаваемые домашнему комплекту (6-й байт передачи)
Описание констант программы автомобильного комплекта
Работа подпрограммы приема кода KeeLoq:
Осуществляется по прерыванию. На время работы программы все остальные прерывания
запрещаются. Таймер 1 работает в режиме 9: 16 - битный таймер с запуском
от INT1. Запуск таймера осуществляется передним фронтом на INT1, останов на
заднем фронте INT1. Прерывание приема таокже осуществляется на заднем фронте
INT1. Таким образом, при входе в программу приема имеем длительность запускающего
импульса в регистрах TH1:TL1. В подпрограмме приема режим таймера 1 меняется
на 1: 16-битный таймер с запуском / остановом от TR1. Все задержки в подпрограмме
приема осуществляются с помощью этого таймера. При выходе из подпрограммы
приема режим таймера 1 восстанавливается на 9. Алгоритм работы подпрограммы приема:
a) выставляется бит ReSync, и принятое значение счетчика синхронизации сохраняется во флэш - памяти (ячейки 20h и 21h, мл.б и ст.б). Сбрасывается флаг ReLrn (если был устаноален).Осуществляется выход из подпрограммы. При разности значений счетчика синхронизации кодера и
декодера больше +32, выдается звуковой сигнал 150мс и прием прекращается.
В этом случае должен быть подключен внешний процесс, который:
- выставляет бит ReLrn. Установленный бит ReLrn заставляет работать программу по алгоритму, описанному в п.6. Логика работы домашнего комплекта
Домашний комплект имеет четырехстрочный двадцатисимвольный
дисплей ЖКИ PC2004 фирмы Powertip. На дисплее ЖКИ (см рисунок ниже ) в первой
строке отображаются: слева напряжение бортсети автомобиля, в центре: байт
качества канала, справа:. счетчик времени до рестарта программы автомобильного
комплекта.
Во второй строке отображаются режимы работы сигнализации:
В третьей строке отображается название последнего сработавшего
датчика. При срабатывании датчиков дверей или датчика капота прием и отображение
дальнейшей информации блокируется и непрерывно звучит сигнал о сработавшем
датчике. В случае сработавшего датчика удара отображается также колличество
срабатываний и время последнего срабатывания:
В четвертой строке отображаются текущие дата и время. При неактивности системы в течении 1.5мин происходит снижение яркости посветки индикатора. При подачи питания процессор инициализирует рабочие ячейки ОЗУ. Далее инициализируется дисплей ЖКИ и передается код запроса параметров. Если в теченнии 5с ответ от автомобильного комплекта не поступил, счетчик времени до рестарта программы автомобильного комплекта обнуляется и не обслуживается. Обнуляется также байт качества канала. Байт качества канала является интегральным параметром качества канала и представляет собой байт счетчика циклов передачи автомобильного комплекта, работающий на вычитание. Значение счетчика передается при каждом цикле передачи от автомобильного комплекта. Байт отображается и прием прекращается при первой удачно принятой посылке. Чем больше значение этого байта (но не более 50h = 80) тем выше качество канала. Вход в режим коррекции времени возможен при нажатии кнопки 6 (P2.5). Если при включении питания (или при сбросе кнопкой) удерживать кнопку 6 (P2.5), произойдет запись во все ячейки времени и даты DS1307 кода 2 и переход в режим коррекции времени DS1307. При неактивности (не нажатии кнопок) в течении 12.8с в режиме коррекции времени произойдет переход в основной режим. Выход из режима коррекции времени возможен также при нажатии кнопки обнуления секунд или нажатием кнопки сброса. Устанавливаемые значения: часы, минуты - 0-59, дни месяца 1 - 31, год 2000 - 2063. Автоматическая коррекция дней месяца (30, 31) при установке не производится. Микросхема DS1307 обеспечивает коррекцию времени в соответствии с календарем при подсчете времени. Функциональное назначение кнопок:
Протокол передачи домашнего комплекта соответствует протоколу передачи брелка KeeLoq. Плавающий код не обрабатывается и вместо него передаются четыре байта 0FFh. Домашний комплект имеет свой уникальный 32 - битовый серийный номер. При приеме кодовой посылки с таким номером, автомобильный комплект не использует алгоритм декодирования KeeLoq и использует коды команд из некодированной части посылки. По этой причине код снятия с охраны домашним комплектом не передается и блокируется в автомобильном комплекте. Автор считает, что удаленное снятие с охраны (а также случайное) может нанести вред имуществу автомобля. При ассемблировании необходимо include - файлы ds1307, I2C, LCD поместить в каталог с основным файлом homeside.asm Описание констант программы домашнего комплекта
Программирование брелков
Описание кодера HCS300
Так как кодирующий/декодирующий ключ (они одинаковые на обеих сторонах)
не передается, он должен быть одинаково вычислен на передающей и приемной
стороне. Входными данными для вычисления ключа в режиме нормального обучения
является код производителя (64бита, по эфиру не передается), серийный номер
кодера. Серийный номер кодера сообщается декодеру на стадии обучения - специальный режим декодера, когда он принимает последовательно 2 посылки кодера в течение 12.8 секунд. Происходит декодирование с ипользованием серийного номера брелка и декодирующего ключа. Правильность декодирования проверяется по дискриминационным битам, жестко зашитым в программу и одинаковым на передающей и приемной стороне. При правильном декодировании проверяется разность счетчиков синхронизации двух посылок. Если разность составляет +1, происходит запись значения счетчика синхронизации для текущего брелка, т.е. обучение завершено успешно. Благодаря счетчику синхронизации и обеспечиваться "плавание" кода, т.к. значение его меняется при каждом нажатии. Значение счетчика должно быть одинаково в кодере и декодере в пределах окна синхронизации - 16 значений. При рассинхронизации более 16 значений возможен режим вхождения в синхронизацию - когда кодер передает последовательно две посылки. Первую посылку декодер сохраняет во временной памяти, и при разности значений счетчиков в первой и второй посылки +1 перезаписывает свой счетчик синхронизации. Однако такая синхронизация возможна при рассинхронизации в пределах 32 посылок. В противном случае необходимо новое обучение декодера. Формат посылки кодера: вначале передается 32 битовая кодированная часть, которая включает в себя: Синхронизирующий счетчик(16бит), дискриминационные биты(12 бит), код нажатых клавиш передатчика (4бита). Далее передается постоянная часть, которая включает в себя: Серийный номер передатчика(28бит), коды нажатых клавиш(4 бита), бит статуса батареи передатчика(Vlow), бит проверки CRC(2бита). Последующие модели кодеров имеют более длинный формат передачи, однако, у всех передатчиков вначале передается переменная часть и далее 28 бит серийного номера. Дополнительная информация для следующих моделей кодеров добавляется вконец посылки. За счет этого осуществляется совместимость. Для использования совместно с декодером кодер должен быть запрограммирован. Правильность декодирования переменной части кода проверяется по дискриминационным битам, которые должны быть одинаковыми на приемной и передающей стороне. Передатчик HCS300 передает 12 дискриминационных бит, однако в сам кодер программируется только 10 бит. Старшие два бита являются битами переполнения счетчика синхронизации и берутся из слова конфигурации кодера (таблица). Эти биты используются для расширения разрядности счетчика синхронизации. При переполнении счетчика синхронизации (16бит = 65535) эти два бита меняются, а поскольку они являются частью дискриминационной величины, то произойдет рассинхронизации кодера и декодера. В этом случае потребуется повторное обучение декодера. Т.о. повторное обучение потребуется каждый раз через 65535 посылок кодера. При программировании в кодер записывается следующая информация:
Слово конфигурации включает в себя:
Программирование (название задержек взято из DATASHIT на HCS300):
В результате написания программы приема и декодирования KeeLoq выяснилось:
Порядок приема информации:
*Бит Vlow почему – то не меняет свое состояние при снижении
питания до 2.1В
Передаваемые значения кодов нажатия кнопок:
Таким образом, перед использованием кодер HCS300 необходимо запрограммировать. Для этого:
В 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ации Внешний вид домашнего комплекта:
Принципиальная схема автомобильного комплекта. Принципиальная схема модуля процессора. Принципиальная схема модуля АЦП. Принципиальная схема модуля силовых драйверов. Принципиальная схема домашнего комплекта. Программа автомобильного комплекта Исполняемый файл автомобильного комплекта Программа домашнего комплекта Исполняемый файлдомашнего комплекта Принципиальная схема автомобильного комплекта в формате ORCAD 9.2 Принципиальная схема домашнего комплекта в формате ORCAD 9.2 Ассемблер, линкер и файлы конфигурации для линкера фирмы 2500 A.D. Software, Inc. Программатор SPI, схема программатора и пакетный фйл для программирования AT89s8252 Программа программирования брелков Автор проекта: Шабров Дмитрий. 306-4002. dshabrov@mtu-net.ru |
Правила оформления проектов
Приглашаем специалистов
В России кризис и увольнения персонала, а в Телесистемах, как обычно, не так как у всех: мы расширяем деятельность, набираем новых сотрудников и ищем новых партнеров.
Изделия для разработчиков
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||