Ключ для защиты от копирования

Назначение и краткое описание схемы.

Cхема предназначена для защиты программ от нелегального копирования. Ее использование позволяет практически полностью исключить эту возможность, так как часть защищаемой программы можно хранить в микроконтроллере, с установленым битом защиты, не позволяющим ее считать, а значит и скопировать.

Ключ подключается к параллельному порту и может работать одновременно с принтером. Сразу замечу, что эта схема имеет два ограничения. Во-первых программа микроконтроллера ничего не делает кроме получения данных от компьютера, их хранения и отправки обратно. Этого достаточно чтобы программно определить наличие или отсутствие ключа, но если в микроконтроллер записать часть программы или перед возвращением данных их шифровать, степень защиты значительно увеличится. Я думаю границей между двумя этими вариантами является цена защищаемой программы в несколько сотен долларов.

И во-вторых эта схема не всегда позволяет работать принтеру подключенному к тому же порту. Epson Stylus Color 600 прекрасно работал, и даже автоматически определился, а Epson LX 1050+ нет. Для исправления этого надо будет немного переделать схему. Но и этот вариант можно использовать с некоторыми принтерами или, если принтер нужен и он не работает, использовать переключатель порта DataSwitch. Если принтер не подключен схема устойчиво работает.

Схема

Схема ключа для защиты от копирования

Комментарии к схеме

В целях уменьшения размера и стоимости устройства использован микроконтроллер AT90S1200 с внутренним RC генератором. Это позволяет спокойно разместить всю собраную схему внутри разъема или переходника подключеного к порту, а стоимость не превышает примерно 200 рублей.

Для обмена данными применяется синхронный последовательный интерфейс, назначение линий приведено в таблице.

Вывод микроконтроллераВывод портаНазначение сигнала
PORTD.3SlctInВыбор принтера или ключа
VSS,RESETD0..D7Питание ключа
PORTD.0StrobeДанные от компьютера
PORTD.1BusyДанные от ключа
PORTD.2AutoLFИмпульсы синхронизации от компьютера

Питание берется с того же порта, при работающем принтере микросхема почти всегда находится в режиме Power Down и потребляет меньше 1 мА, для ее питания достаточно единицы на одном из выводов шины данных. В активном режиме на выводы данных должны быть программно выставлены единицы благодаря чему обеспечиваетя ток достаточный для питания микроконтроллера. Желательно использовать германиевые диоды, т.к. падение напряжения на них меньше. Есть два исполнения микросхемы AT90S1200 с максимальными частотами 4 или 12 МГц и минимальными напряжениями питания соответственно 2,7 и 4 В. Лучше применять первое так как из за существующего разброса параметров паралельных портов на разных компьютерах может оказатся что на питание микросхемы будет подано напряжение менее 4 вольт. Например AT90S1200A-4PC.

Программа микроконтроллера, и другие вспомогательные файлы находятся ниже.

Эта статья опубликована в в журнале "Радиолюбитель" и книге М.Голубцова "Микроконтроллеры AVR от простого к сложному"
Скачать (5 KБ).