如何为AT89C系列单片机加解密
单片机的解密很简单,就是擦除单片机片内的加密锁定位。由于 AT89C 系列单片机擦除操作时序设计上的不合理。使得在擦除片内程序之前首先擦除加密锁定位成为可能。AT89C 系列单片机擦除操作的时序为:擦除开始---->擦除操作硬件初始化(10 微秒)---->擦除加密锁定位(50----200 微秒)--->擦除片内程序存储器内的数据(10 毫秒)----->擦除结束。如果用程序监控擦除过程,一旦加密锁定位被擦除就终止擦除操作,停止进一步擦除片内程序存储器,加过密的单片机就变成没加密的单片机了。
片内程序可通过总线被读出。对于 AT89C 系列单片机有两种不可破解的加密方法。一、永久性地破坏单片机的加密位的加密方法。简称 OTP 加密模式。二、永久性地破坏单片机的数据总线的加密方法。简称烧总线加密模式。OTP 加密模式原理:这种编程加密算法烧坏加密锁定位(把芯片内的硅片击穿),面不破坏其它部分,不占用单片机任何资源。加密锁定位被烧坏后不再具有擦除特性,89C51/52/55 有 3 个加密位进一步增加了加密的可靠性。
一旦用 OTP 模式加密后,单片机片内的加密位和程序存储器内的数据就不能被再次擦除,89C51/52/55 单片机就好象变成了一次性编程的 OTP 型单片机一样。如果用户程序长度大于 89C51 单片机片内存储器的容量,也可使用 OPT 模式做加密,具体方法如下:
1、按常规扩展一片大容量程序存储器,如 27C512(64K)。2、把关键的程序部分安排在程序的前 4K 中。
3、把整个程序写入 27C512,再把 27C512 的前 4K 填充为 0。
4、把程序的前 4K 固化到 AT89C51 中,用 OPT 模式做加密。
5、把单片机的 EA 脚接高电平。 这样程序的前 4K 在单片机内部运行,后 60K 在片外运行。盗版者无法读出程序的前 4K 程序,即使知道后 60K 也无济于事。 烧总线加密模式原理:因为单片机片内的程序代码最终都要通过数据总线读出,如果指导单片机的数据总线的其中一条线永久性地破坏,解密者即使擦除了加密位,也无法读出片内的程序的正确代码。89C1051/2051 的数据总线为 P1 口烧总线模式烧坏 89C2051 的 P1.0 端口,原程序代码为 02H、01H、00H。
读出的数据则为 03H,01H,00H。其中最低位始终为 1,读出的程序代码显然为错码。这种加密模式用于加密 89C1051/2051 单片机。缺点是占用单片机的资源。开发设计人员在设计单片机硬件系统时只要预留出口线 P1.0 不用,以后就可用烧总线模式对单片机加密。