保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

基于PIC16C54单片机的智能软件狗设计


  软件狗的软件设计有两部分:软件狗的单片机程序和PC程序。单片机程序包括对93C46的操作、与PC通讯接口、数据编码、工作状态控制等功能。PC程序包括本软件狗开发用的测试工具程序、用户定制软件狗的工具程序、软件狗随用户程序发行时的动态链接库程序。测试工具程序用于测试软件狗对串行EEPROM的读写操作、软件狗与PC间的通讯测试;用户定制软件狗的工具程序用于对软件狗设置密码的初始化工作;动态链接库程序为用户的应用程序提供编程接口。单片机程序使用MTLAB集成环境的MTASM开发,PC软件使用VC5.0开发。本文只介绍单片机软件。
  
  2.1软件狗与PC的通讯
  
  软件狗与PC之间的数据通信方法是自行设计的。PC向软件狗送数据时使用并口的选择输入(SELECTIN,这里称之为PCRDY)线,数据线的D3~D0。单片机在PCRDY信号的下降沿读取数据,每一个字节分两次发送,先发低四位,后发高四位。PC向软件狗方向发送数据的时序如图2所示。
  
  软件狗向PC方向发送数据时使用并口的选择输入(SELECTIN,这里称之为PCRDY)线、应答(ACK,这里称之为DO)线、选择(SLC,这里称之为BUSY)线。软件狗向PC发送数据时按先发低位后发高位的顺序串行地将数据发给PC,一个字节分8次发完。软件狗向PC方向发送数据的时序如图3所示。
  
  PC与软件狗之间的数据通讯遵循“命令一应答”规则,PC发命令,单片机处理完命令后发应答数据。双方可以根据命令及其应答的意义解析数据帧的结构,以校验通讯的正确性。命令与应答数据帧的第一个字节的高四位总是命令或应答代码,低四位总是此命令或应答所带参数的个数。各命令与应答数据帧的结构定义如表1所示。
  
  表1各命令与应答数据帧的结构定义
  
  功能代码参数个数参数连接命令08软件狗的序列号连接应答00无擦除命令10无擦除应答10无读ROM命令21ROM的起始地址读ROM应答28返回读出的数据写ROM命令31~16第一个字节为ROM的起始地址,后面N-1个字节为写入的数据写ROM应答30无校验编码命令49第一个字节为校验功能号,后面8个字节为待编码的数据校验编码应答49第一字节为校验功能号,后面8个字节为编码后的数据
  2.2加密算法
  
  考虑到软件狗使用时不能对应用程序的执行速度产生较大影响,对DES加密算法分析后进行了简化,用来对数据进行加密。DES加密算法的核心思想是使加密后的数据没有显著的变化规律,一个方面使不同被加密数据加密后,原始数据一位的变化会引起后密后数据多处无明显规律变化,即变化扩展原则;另一方面使用密钥,密钥的作用是将被加密数据与之进行运算以改变原始数据。综合这两个方面的原则,采取了将被加密数据“换位一与密钥异或”8次的加密方法。这种方法实现比较简单,且将被加密数据与原来数据比较,不同的被加密数据间的加密结果比较,很难发现其中规律,加密效果不错。
  
  整个系统的加密原理是PC利用系统时间产生一个随机数,将此随机数发送给软件狗,软件狗对此进行加密返回加密结果,PC自己也对此进行加密将自己的加密结果与软件狗的加密结果进行比较。另外,每一个软件狗都有一个序列号,连接时必须提供正确的序列号才能连接进行其它工作。同时序列号也用于区分不同的软件狗,使得多个软件狗可以插在同一个并口上正常工作。每个软件狗可以设置16个不同的密钥,用户可以为应用程序的不同功能模块设置不同的密钥。
  
  2.3程序流程
  
  PIC16C54单片机的程序流程如图4所法。设置OPTION:初始化单片机的工作模式;设置PORTB、清除RAM:位于单片机空闲循环体内,设置PORTB的输出方向,软件狗在空闲时对打印口无影响;接收命令:接收PC发出的数据,按照软件狗与PC的通信规则进行解释;处理命令:一个CASE结构的程序体,根据命令含义执行不同功能;返回命令处理结果;按照软件狗与PC的通信规则向PC返回应答信息。
  
  笔者使用WKPE、DOG、DOGGIE等打狗软件对本软件狗进行了破解实验,这几种软件无法破解本软件狗。另外本软件狗在若干种品牌机和兼容机上进行了测试,都可以正常工作并且对Windows打印作业无影响。实验结果表明,本软件狗有比较好的安全性、通用性和稳定性。
  
  
  
 

《基于PIC16C54单片机的智能软件狗设计(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/173145.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。