Карта сайта | Пишите нам | В избранное | eng
Внимание! У нас изменились номера телефонов. Звоните:
(495) 638-88-00, (499) 940-95-75, факс (499) 735-04-91; +7(909) 638-88-00 и +7(903) 530-10-01 (Билайн). |
Микроэлектронные проекты. Александр Елисеев, Станислав Картонович. Как сделать автосигнализацию с бесконтактными ключами на PIC16C505 с использованием компилятора HI-TECH C 7.85
Здесь приведен вариант автомобильной сигнализации: реализация небольшого мелкосерийного проекта. Главная цель: минимальная цена; вторая повышение эффективности противоугонных свойств введением дополнительных секретов. Управление сигнализацией производиться с помощью одного транспондера и двух приемных антен. Транспондеры для управления выбраны ввиду их высокой надежности (по сравнению с технологией контактных идентификаторов TouchMemory) и неприхотливости в обслуживании (по сравнению с радио-брелками). Подробнее о примененной технологии см. проект "Как сделать простую систему бесконтактной идентификации". Для отключения сигнализации и снятия блокировки необходимо последовательно поднести транспондер к обеим антеннам. Идентификация транспондера первой антенной отключает сигнал тревоги, идентификация второй антенной снимает блокировку. При отключенной тревоге, но не снятой блокировке, двигатель можно завести на короткое время, которое уменьшается с каждой новой попыткой запуска двигателя. Процесс напоминает деградацию системы зажигания и заканчивается включением сигнала тревоги и переходом в режим охраны. Такой режим расчитан на сценарий насильственного угона и дает водителю больший простор для действий. Секретом служит расположение приемных антенн и сценарий активизации блокировок, в рассчете на злоумышленников незнакомых с системой (некая вариация функции AntiHiJack). Введена также возможность обнаружения сканирования кодов транспондеров.
Принципиальная схема
Особенности компилятораНесмотря
на желание использовать все возможности синтаксиса C, следует все время держать
в памяти схемы трансляции C конструкций в asm код и представлять во что это
может превратиться. Например, при использовании максимальной оптимизации предоставляемой
компилятором конструкция Оптимизатору HI-TECH компилятора довольно часто приходиться помогать, когда речь заходит о предельной компактности кода. Например, в блоке цепочки присвоений переменным значений может оказаться, что переменные находяться в различных банках памяти. Компилятор в таком случае начинает дополнительно вставлять команды переключения банков bcf 4,x и bsf 4,x . При этом от того, в какой последовательности инициализируются переменные зависит число дополнительных команд. Для минимизации числа команд я использую такую последовательность: переменные из банка 0, 1, 3, 2. Проблемы компиляцииКомпиляция оказалась проблемой нетривиальной, что и можно было ожидать учитывая присутствие ассемблерного модуля и непростых ограничениях при использовании страниц программной памяти. Увидев в документации обнадеживающую фразу о том, что использовать команды линкера программисту никогда не понадобиться я попытался не вникая в подробности в лоб скомпилировать С и asm модули. Естественно, произошла ошибка размещения моего ассемблерного модуля. Беда в том, что в модуле используются переходы с использованием модификации регистра PCL, а такой код может распологаться только в областях с маской x0xxxxxxxx . Попытки манипулирования опциями в описании областей psect в ассемблерном файле ни к чему не привели, а только обнаружили отказ компилятора в обработке опций LIMIT и WITH. Стало очевидно, что на такую интеграцию ассемблера и C разработчики, явно, не раcсчитывали. Пришлось скачать всю документацию, какая была на сайте HI_TECH и методом ненаучного тыка пробовать создавать командный файл для линкера. Попыток с 50-и линкер перестал выдавать сообщение об ошибках. Поскольку компилятор размещает программный модуль только в одной странице памяти, то для оптимального использования памяти программа была разбита на множество мелких модулей. КомпиляцияКомпиляция
производится запуском командного файла Koyot.bat содержащего строку:
где koyot.cmd
- файл содержащий управляющие опции компилятора:
Для ассемблерной
секции receipt явно указан адрес размещения 210h в связи с тем, что программный
модуль настроен на исполнение во второй странице программной памяти. Смещение
в 10h от начала страницы определяется с учетом размещения в начале страницы
служебной таблицы для адресов возврата из подпрограмм генерируемой компилятором.. Состав проектаПроект состоит из следующих файлов:
Готовые изделияВ настоящее время фирма SKARTAS (тел. +370-2-436054 Вильнюс, Станислав Картонович ) может предложить серию недорогих автомобильных охранных устройств пригодных для любых автомобилей. Описания устройств приведены ниже.
02.01.2001
|
Правила оформления проектов
Приглашаем специалистов
В России кризис и увольнения персонала, а в Телесистемах, как обычно, не так как у всех: мы расширяем деятельность, набираем новых сотрудников и ищем новых партнеров.
Изделия для разработчиков
| ||||||||||||||||||