新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > SmartLock并口单片机软件狗加密技术

SmartLock并口单片机软件狗加密技术

作者:时间:2009-04-09来源:网络收藏

由于开发者和用户带来了许多不便和麻烦,因此,全球业的趋势是开发不,依靠版权法来保护软件开发者的权益。但对于一些大型的工程应用软件系统如:AutoCAD、Xilinx FPGA开发系统等,由于销量小、成本高,不得已仍然需要使用软件。另外,对于某些敏感行业的应用软件也必须实行,对程序代码进行保护。

本文引用地址:http://www.eepw.com.cn/article/173792.htm

  早期的方法有:软盘或硬盘加密、加密卡等,由于加密性能、兼容性能或使用不方便等方面的原因而被淘汰。目前广为流行的是软件狗硬件电路加密法,其中又以使用的加密最为可靠。其硬件通常都带有智能抗分析,不可复制,且加密方式灵活、工作可靠、运行速度快、使用方便,不失为的一种优选方法。

  软件狗加密系统的硬件部分外形类似火柴盒,两头分别带有一个IEEE-1284的公头和母头,串接在和打印机之间。软件狗使用的是Atmel公司的89C2051,芯片从微机取电,通过与加密软件进行通信,系统主要使用技术实现软件加密。

1 Smart Lock系统的硬件设计

  通过研究微机打印口接口电路、IEEE-1284通信标准和89C2051型特性,设计出加密系统的硬件电路如图1所示。有89C2051单片机、3个锗二极管、1个12MHz晶振、2个30pF瓷片电容和1个电阻共8个元件。系统从并行口中共引出了11根端口线,其中有8根数据线D0~D7、1根状态线(低电平有效 ,当打印机接收完一字节数据允许微机发送下一字节数据时,发给微机信号)、1根控制线(低电平有效,打印机自动换行信号)和地线GND。

微机的标准并不提供+5V电源,所以只有从驱动能力较强的数据口“借电”。依据IBM PC AT/XT设计标准,并行口数据位的高电平(4.5V)输出电流为2.5mA(旧式的TTL型)或15mA(CMOS型),而89C2051单片机的典型工作电流为5.5mA/3V,工作频率为12MHz。所以使用D4~D6三根数据线经锗二极管并在一起作为单片机电源(采用锗管的原因是因为它的压降较小,只有0.4V)。同时为减少软件狗硬件的功耗,电路设计得极其简洁,除了单片机,没有其它有源器件。

  单片机复位使用的是上电自动复位电路。因此微机对并行口供电几百毫秒之后,单片机才进入正常工作状态。

2 并口通信协议

  软件狗使用数据口的D0~D3及D7作为微机向单片机传送数据的前向数据通道(一次送半字节数据,用D7位标志高/低半字节);并口控制/状态信号中的平时不常用,所以这里用来作为微机向单片机传送数据时的握手信号。信号为高电平,则表示微机已准备好待传送数据,此协议中称为DR(data ready)信号;信号为低电平,表示单片机已准备好接收数据,此协议中称为PR(peripheral ready)信号。

  软件狗从微机接收数据的时序如图2所示。具体步骤是:

  (1)微机中的加密程序将DR()控制线设置为0,然后在并口的D4~D6数据线上给一个负脉冲后再置恒1,使软件狗复位启动;

  (2)加密程序延时300ms后,设置D7为0,表示传送的是数据的低半字节;

  (3)加密程序将需要传送的数据放到并口的D0~D3;

  (4)加密程序在DR控制线上给出一个正脉冲,通知软件狗数据已准备好;

  (5)软件狗收到DR信号后从D0~D3线上读取数据,同时,从D7位可以了解这半字节数据是低位还是高位。读完数据后在PR()状态线上给出负脉冲,通知微机数据已读完,可以进行下一次传送;

  (6)加密程序收到PR信号后,即进行下一轮的数据传送,直到最后所有数据传送完毕或一定时间后仍没有收到PR信号,则出错退出。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭