⑴ 单片机时钟制作的可行性研究,短点的,一二百字足矣
多功能电子时钟
概述:加入世贸组织以后,中国会面临激烈的竞争。这种竞争将是一场科技实力、
管理水平和人才素质的较量,风险和机遇共存。于是老师在单片机理论课程学习的基
础上,为我们安排了一个涉及MCS—51 单片机多种资源应用及具有综合功能的电子
时钟设计。
关键字: 显示时间 定时 温度采集 系统仿真
1 引 言
《单片原理及应用》是一门技术性、应用性很强的学科,实践教学是它的一个极
为重要的环节。不论是硬件扩展、接口应用还是编程方法、程序调试,都离不开实验
教学。如果不在切实认真地抓好学生的实践技能的锻炼上下功夫,单凭课堂理论课学
习,势必出现理论与实践脱节的局面。任随书本上把单片机技术介绍得多么重要、多
么实用多么好用,同学们仍然会感到那只是空中楼阁,离自己十分遥远,或者会感到
对它失去兴趣,或者会感到它高深莫测无从下手,这些情况都会令课堂教学的效果大
打折扣。
仿真设计的目的就是在理论学习的基础上,通过完成一个涉及MCS
—51 单片机都种资源应用并具有综合功能的小系统目标板的设计与编程应用,使学生
不但能够将课堂上学到的理论知识与实际应用结合起来,而且能够对电子电路、电子
元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排版调试、焊
接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立
进行某些单片机应用系统的开发设计工作打下一定的基础。
该电子时钟不但具有定时作用还有温度采集作用。定时部分可以显示时、分、秒,
而且用按键还可以实现时间的调整和闹铃的设定。温度采集部分实现环境温度数据的
采集。
2 系统结构
整个电子时钟系统电路可分为五大部分:中央处理单元(CPU)、电源电路部分、
显示部分、键盘输入部分、温度采集部分。
2. 1 中央处理单元
CPU选用AT89C—2051 对整个系统进行控制:
1)它将定时数据输出到LED,实现时间的显示;
2)根据键盘输入调用相应键处理子程序,实现时间的调整和闹铃的设定;
3)接收温度传感器输入的温度数据,进行一定的转换,然后输出到2 位的LED
更多资料请访问 福星电子网-收集整理
3
显示器显示出来。
2.2 电源电路部分
在各种电子设备中,直流稳压电源是必不可少的组成部分,它是电子设备唯一能
量来源,它的设计思路是根据我们以前学过的模电电子技术,要想得到我们所要的
+6V输出电压,就需将交流220V的电压经过变压器、整流电路、滤波电路和稳压电
路四个部分。
2.3 显示部分
显示部分是整个电子时钟最为重要的部分,它分为时间的显示和温度的显示两部
分,共需要8 位LED 显示器。采用动态显示方式,所谓动态显示方式是时间(或温
度)数字在LED 上一个一个逐个显示,它是通过位选端控制在哪个LED 上显示数字,
由于这些LED 数字显示之间的时间非常的短,使的人眼看来它们是一起显示时间数
字的,并且动态显示方式所用的接口少,节省了CPU 的管脚。由于端口的问题以及
动态显示方式的优越性,在此设计的连接方式上采用共阴级接法。显示器LED 有段
选和位选两个端口,首先说段选端,它由LED 八个端口构成,通过对这八个端口输
入的不同的二进制数据使得它的时间(或温度)显示也不同,从而可以得到我们所要
的时间显示和温度。但对于二十个管脚的AT89C2051来说,LED 八个段选管脚太多,
于是我选用74LS164 芯片来扩展主芯片的管脚,74LS164 是数据移位寄存器,还选用
了74LS244 作为数据缓存器。
2.4 键盘部分
它是整个系统中最简单的部分,根据功能要求,本系统共需四个按键:
功能移位键、功能加键、功能减键、定闹键。并采用独立式按键。温度采
集部分
此部分选用DS18B20 传感器,主要由四部分组成:64 位ROM、温度传感器、非挥
发的温度报警触发器TH 和TL、配置寄存器。有三个管脚:DQ 为数字信号输入/输出
端;GND 为电源地;VDD 为外接供电电源输入端。电源有两种接法:1)远端因入;2)
寄生电源方式。它是支持“一线总线”接口的温度传感器,测量温度范围为
-55°C~+125°C,在-10~+85°C 范围内,可编程为9 位—12 位A/D 转换精度,工作电
压在3V—5V之间。现场温度直接以“一线总线”的数字方式传输,大大提高了系统
的抗干扰性。
何为“一线总线”:独特的电源和信号复合在一起;仅使用一条口线;每个芯片
唯一编码,支持联网寻址;简单的网络化的温度感知;零功耗等待。
2.电路制作
根据元器件种类和体积以及技术要求将其布局在电路板上的适当位置。可以先从
体积较大的器件开始,如单片机底座、电源稳压器、变压线圈、锁存器、温度传感器
等。待体积较大的元器件布局好之后,小型的电子元器件就可以根据间隙面积灵活布
置。二极管、电感器、阻容元件的装配方式一般有直立式、俯卧式和混合式三种。
①直立式。电阻、电容、二极管等都是竖直安装在印刷板上的。这种方式的特点
是:在一定的单位面积内可以容纳较多的电子元件,同时元件的排列也比较紧凑。缺
点是:元件的引线过长,在一个平面上,欠美观,元器件引脚弯曲,且密度较大,元
器件之间容易引脚碰触,可靠性欠佳,且不太适合频率较高的电路采用。
②俯卧式。电阻、电容、二极管等都是俯卧式安装在印刷板上的。这样可以明显
地降低元件的排列高度,可实现薄形化,同时元器件的引脚也最短,适合于较高工作
频率的电路采用,也是目前采用最广泛的一种安装方式。
③混合式。为了适应各种不同条件的要求或某些位置受面积所限,在一块印刷电
路板上,有的元器件则采用俯卧式。这受到电路结构各式以及机壳内尺寸的限制,同
时灵活处理。
元器件配置布局应考虑的因素:
①电路板是矩形,元件排列的长度方向一般应与电路板的长边平行,这样不但可
以提高元件的装配好的印刷电路板更美观。
②应尽可能地缩短元件及元件之间的引线。尽量避免电路板上的导线的交叉,设
法减小它们的分布电容和互相之间的电磁干扰,以提高系统工作的可靠性。
③应以功能电路的核心器件为中心,外围元件围绕它进行布局。
更多资料请访问 福星电子网-收集整理
5
④要注意各种门电路多余的处理,或接电源端或接地端,并按照正确的 方法实
现不同逻辑门的组合转换。
⑤元器件的配置和布局应有利于设备的装配、检查、高度和维修。
元器件焊接注意事项:
焊接前务必认准元件数值,会认元件上的标识和会用数字多用表测试。焊接时速
度要快,电烙铁不可长时间停留在电路板和元件的焊脚上。特别是晶振、发光二极管、
电解电容、9041 三极管等元件,时间过长容易导致元器件损坏。
3.软件仿真
3.1仿真器介绍
仿真器采用伟福仿真器系统,该仿真器介绍如下:
系统的特点介绍
本仿真器系统由仿真主机+仿真头、MULTIA用户板、实验板、开关电源等组成。
本系统的特点是:
1.主机+仿真头的组合,通过更换不同型号的仿真头即可对各种不同类型的单片
机进行仿真,是一种灵活的多CPU 仿真系统。采用主机+POD 组合方式,更换POD,可
以对各种CPU 进行仿真。本仿真器主机型号为E2000/S,仿真头型号为POD8X5X(可
仿真系列8X5X单片机)。
2.双平台,具有DOS版本和WINDOWS 版本,后者功能强大,中/英文界面任选,
用户源程序的大小不再有任何限制,支持ASM,C,PLM 语言混合编程,具有项目管理
功能,为用户的资源共享、课题重组提供强有力的手段。支持点屏显示,用鼠标左键
点一下源程序中的某一变量,即可显示该变量的数值。有丰富的窗口显示方式,多方
位,动态地显示仿真的各种过程,使用极为便利。本操作系统一经推出,立即被广大
用户所喜爱。
3.双工作模式
1)软件模拟仿真(不要仿真器也能模拟仿真)。
2)硬件仿真。
4.双CPU 结构,100%不占用户资源。
全空间硬件断点,不受任何条件限制,支持地址、数据、外部信号、事件断点、
支持实时断点计数、软件运行时间统计。
5.双集成环境
编辑、编译、下载、调试全部集中在一个环境下
多种仿真器,多类CPU 仿真全部集成在一个环境下。可仿真51 系列,196 系列,
PIC 系列,飞利蒲公司的552、LPC764、DALLAS320,华邦438 等51 增强型CPU。为
了跟上形势,现在很多工程师需要面对和掌握不同的项目管理器、编辑器、编译器。
他们由不同的厂家开发,相互不兼容,使用不同的界面,学习使用都很吃力。伟福
WINDOWS 调试软件提供了一个全集成环境,统一的界面,包含一个项目管理器,一个
功能强大的编辑器,汇编Make,Build 和调试工具并提供千个与第三方编译器的接口。
更多资料请访问 6
由于风格统一,大大节省了精力和时间。
6.强大的逻辑分析仪综合调试功能。
逻辑分析仪由交互式软件菜单窗口对系统硬件的逻辑或时序进行同步实时采样,
并实时在线调试分析,采集深度32K(E2000/L),最高时基采样频率达20MHz,40
路波形,可精确实时反映用户程序运行时的历史时间。系统在使用逻辑分析仪时,除
普通的单步运行、键盘断点运行、全速硬件断点运行外,还可实现各种条件组合断点
如:数据、地址、外部控制信号、CPU 内部控制信号、程序区间断点等。由于逻辑仪
可以直接对程序的执行结果进行分析,因此极大地便利于程序的调试。
7.强大的追踪器功能
追踪功能以总线周期为单位,实时记录仿真过程中CPU 发生的总线事件,其触
发条件方式同逻辑分析仪。追踪窗口在仿真停止时可收集显示追踪的CPU指令记忆信
息,可以以总线反汇编码模式、源程序模式对应显示追踪结果。屏幕窗口显示波形图
最多追踪记忆指令32K并通过仿真器的断点、单步、全速运行或各种条件组合断点来
完成追踪功能。总线跟踪可以跟踪程序的运行轨迹。可以统计软件运行时间。
伟福系统仿真
3.2 仿真器编程
双击桌面上的WAVE 图标或从开始/程序/WAVE FOR WINDOWS/WAVE 进入本开发环
境。在实验开始时要先根据需要设置好仿真器类型、仿真头类型以及CPU类型,并注
7
意是否“使用伟福软件模拟器”,若使用硬件仿真,请注意去掉“使用伟福软件模拟
器”前的选择。在文件窗口下可进行包括新建、打开、保存等文件操作。在编译文件
窗口下可将源文件编译成目标文件。在窗口窗口下可以观察各种窗口信息,其中最常
用到的是CPU 窗口和数据窗口。在CPU 窗口下可以通过CPU 窗口看到编译正确的机器
码及反汇编程序,可以更清楚地了解程序执行过程。CPU 窗口中还有SFR窗口和位窗
口,了解程序执行过程中寄存器内容的变化。在数据窗口下有DATA 内部数据窗口;
CODE 程序数据窗口;XDATA 外部数据窗口;PDTA外部数据窗口。
结束语
通过这次的设计使我认识到我对单片机方面的知识知道的太少了,对于书本上的
很多知识还不能灵活运用,有很多我们需要掌握的知识在等着我去学习,我会在以后
的学习生活中弥补我所缺少的知识。本次的设计使我从中学到了一些很重要的东西,
那就是如何从理论到实践的转化,怎样将我所学到的知识运用到我以后的工作中去。
在大学的课堂的学习只是在给我们灌输专业知识,而我们应把所学的用到我们现实的
生活中去,此次的电子时钟设计给我奠定了一个实践基础,我会在以后的学习、生活
中磨练自己,使自己适应于以后的竞争。
参考文献
[1] 李建忠主编,单片机原理及应用,西安电子科技大学出版社,2004
⑵ 需要什么工具才能解开加密的芯片
芯片破解方法
(1)软件攻击
该技术通常使用处理器通信接口并利用协议、加密算法或这些算法中的安全漏洞来进行攻击。软件攻击取得成功的一个典型事例是对早期ATMEL AT89C 系列单片机的攻击。攻击者利用了该系列单片机擦除操作时序设计上的漏洞,使用自编程序在擦除加密锁定位后,停止下一步擦除片内程序存储器数据的操作,从而使加过密的单片机变成没加密的单片机,然后利用编程器读出片内程序。
目前在其他加密方法的基础上,可以研究出一些设备,配合一定的软件,来做软件攻击。
近期国内出现了了一种51芯片破解设备(成都一位高手搞出来的),这种解密器主要针对SyncMos. Winbond,在生产工艺上的漏洞,利用某些编程器定位插字节,通过一定的方法查找芯片中是否有连续空位,也就是说查找芯片中连续的FF FF字节,插入的字节能够执行把片内的程序送到片外的指令,然后用解密的设备进行截获,这样芯片内部的程序就被解密完成了。
(2) 电子探测攻击
该技术通常以高时间分辨率来监控处理器在正常操作时所有电源和接口连接的模拟特性,并通过监控它的电磁辐射特性来实施攻击。因为单片机是一个活动的电子器件,当它执行不同的指令时,对应的电源功率消耗也相应变化。这样通过使用特殊的电子测量仪器和数学统计方法分析和检测这些变化,即可获取单片机中的特定关键信息。
目前RF编程器可以直接读出老的型号的加密MCU中的程序,就是采用这个原理。
(3)过错产生技术
该技术使用异常工作条件来使处理器出错,然后提供额外的访问来进行攻击。使用最广泛的过错产生攻击手段包括电压冲击和时钟冲击。低电压和高电压攻击可用来禁止保护电路工作或强制处理器执行错误操作。时钟瞬态跳变也许会复位保护电路而不会破坏受保护信息。电源和时钟瞬态跳变可以在某些处理器中影响单条指令的解码和执行。
(4)探针技术
该技术是直接暴露芯片内部连线,然后观察、操控、干扰单片机以达到攻击目的。
为了方便起见,人们将以上四种攻击技术分成两类,一类是侵入型攻击(物理攻击),这类攻击需要破坏封装,然后借助半导体测试设备、显微镜和微定位器,在专门的实验室花上几小时甚至几周时间才能完成。所有的微探针技术都属于侵入型攻击。另外三种方法属于非侵入型攻击,被攻击的单片机不会被物理损坏。在某些场合非侵入型攻击是特别危险的,这是因为非侵入型攻击所需设备通常可以自制和升级,因此非常廉价。
大部分非侵入型攻击需要攻击者具备良好的处理器知识和软件知识。与之相反,侵入型的探针攻击则不需要太多的初始知识,而且通常可用一整套相似的技术对付宽范围的产品。因此,对单片机的攻击往往从侵入型的反向工程开始,积累的经验有助于开发更加廉价和快速的非侵入型攻击技术。
编辑本段
侵入型芯片破解过程
侵入型攻击的第一步是揭去芯片封装(简称“开盖”有时候称“开封”,英文为“DECAP”,decapsulation)。有两种方法可以达到这一目的:第一种是完全溶解掉芯片封装,暴露金属连线。第二种是只移掉硅核上面的塑料封装。第一种方法需要将芯片绑定到测试夹具上,借助绑定台来操作。第二种方法除了需要具备攻击者一定的知识和必要的技能外,还需要个人的智慧和耐心,但操作起来相对比较方便,完全家庭中操作。
芯片上面的塑料可以用小刀揭开,芯片周围的环氧树脂可以用浓硝酸腐蚀掉。热的浓硝酸会溶解掉芯片封装而不会影响芯片及连线。该过程一般在非常干燥的条件下进行,因为水的存在可能会侵蚀已暴露的铝线连接 (这就可能造成解密失败)。
接着在超声池里先用丙酮清洗该芯片以除去残余硝酸,并浸泡。
最后一步是寻找保护熔丝的位置并将保护熔丝暴露在紫外光下。一般用一台放大倍数至少100倍的显微镜,从编程电压输入脚的连线跟踪进去,来寻找保护熔丝。若没有显微镜,则采用将芯片的不同部分暴露到紫外光下并观察结果的方式进行简单的搜索。操作时应用不透明的纸片覆盖芯片以保护程序存储器不被紫外光擦除。将保护熔丝暴露在紫外光下5~10分钟就能破坏掉保护位的保护作用,之后,使用简单的编程器就可直接读出程序存储器的内容。
对于使用了防护层来保护EEPROM单元的单片机来说,使用紫外光复位保护电路是不可行的。对于这种类型的单片机,一般使用微探针技术来读取存储器内容。在芯片封装打开后,将芯片置于显微镜下就能够很容易的找到从存储器连到电路其它部分的数据总线。由于某种原因,芯片锁定位在编程模式下并不锁定对存储器的访问。利用这一缺陷将探针放在数据线的上面就能读到所有想要的数据。在编程模式下,重启读过程并连接探针到另外的数据线上就可以读出程序和数据存储器中的所有信息。
还有一种可能的攻击手段是借助显微镜和激光切割机等设备来寻找保护熔丝,从而寻查和这部分电路相联系的所有信号线。由于设计有缺陷,因此,只要切断从保护熔丝到其它电路的某一根信号线(或切割掉整个加密电路)或连接1~3根金线(通常称FIB:focused ion beam),就能禁止整个保护功能,这样,使用简单的编程器就能直接读出程序存储器的内容。
虽然大多数普通单片机都具有熔丝烧断保护单片机内代码的功能,但由于通用低档的单片机并非定位于制作安全类产品,因此,它们往往没有提供有针对性的防范措施且安全级别较低。加上单片机应用场合广泛,销售量大,厂商间委托加工与技术转让频繁,大量技术资料外泻,使得利用该类芯片的设计漏洞和厂商的测试接口,并通过修改熔丝保护位等侵入型攻击或非侵入型攻击手段来读取单片机的内部程序变得比较容易。
目前国内比较有名的芯片破解公司有沪生电子,余洋电子,星辰单片机,恒丰单片机和龙人科技等。
编辑本段
应对芯片破解的建议
任何一款单片机从理论上讲,攻击者均可利用足够的投资和时间使用以上方法来攻破。这是系统设计者应该始终牢记的基本原则。因此,作为电子产品的设计工程师非常有必要了解当前单片机攻击的最新技术,做到知己知彼,心中有数,才能有效防止自己花费大量金钱和时间辛辛苦苦设计出来的产品被人家一夜之间仿冒的事情发生。我们根据沪生的解密实践提出下面建议:
(1)在选定加密芯片前,要充分调研,了解芯片破解技术的新进展,包括哪些单片机是已经确认可以破解的。尽量不选用已可破解或同系列、同型号的芯片选择采用新工艺、新结构、上市时间较短的单片机,如可以使用ATMEGA88/ATMEGA88V,这种国内目前破解的费用一需要6K左右,另外目前相对难解密的有ST12系列,DSPPIC等;其他也可以和CPLD结合加密,这样解密费用很高,解密一般的CPLD也要1万左右。
(2)尽量不要选用MCS51系列单片机,因为该单片机在国内的普及程度最高,被研究得也最透。
(3)产品的原创者,一般具有产量大的特点,所以可选用比较生僻、偏冷门的单片机来加大仿冒者采购的难度,选用一些生僻的单片机,比如ATTINY2313,AT89C51RD2,AT89C51RC2,motorola单片机等比较难解密的芯片,目前国内会开发使用熟悉motorola单片机的人很少,所以破解的费用也相当高,从3000~3万左右。
(4)在设计成本许可的条件下,应选用具有硬件自毁功能的智能卡芯片,以有效对付物理攻击;另外程序设计的时候,加入时间到计时功能,比如使用到1年,自动停止所有功能的运行,这样会增加破解者的成本。
(5)如果条件许可,可采用两片不同型号单片机互为备份,相互验证,从而增加破解成本。
(6)打磨掉芯片型号等信息或者重新印上其它的型号,以假乱真(注意,反面有LOGO的也要抹掉,很多芯片,解密者可以从反面判断出型号,比如51,WINBOND,MDT等)。
(7)可以利用单片机未公开,未被利用的标志位或单元,作为软件标志位。
(8)利用MCS-51中A5指令加密,其实世界上所有资料,包括英文资料都没有讲这条指令,其实这是很好的加密指令,A5功能是二字节空操作指令加密方法在A5后加一个二字节或三字节操作码,因为所有反汇编软件都不会反汇编A5指令,造成正常程序反汇编乱套,执行程序无问题仿制者就不能改变你的源程序。
(9)你应在程序区写上你的大名单位开发时间及仿制必究的说法,以备获得法律保护;另外写上你的大名的时候,可以是随机的,也就是说,采用某种算法,外部不同条件下,你的名字不同,比如wwwhusooncom1011、wwwhusooncn1012等,这样比较难反汇编修改。
(10)采用高档的编程器,烧断内部的部分管脚,还可以采用自制的设备烧断金线,这个目前国内几乎不能解密,即使解密,也需要上万的费用,需要多个母片。
(11)采用保密硅胶(环氧树脂灌封胶)封住整个电路板,PCB上多一些没有用途的焊盘,在硅胶中还可以掺杂一些没有用途的元件,同时把MCU周围电路的电子元件尽量抹掉型号。
(12)对SyncMos,Winbond单片机,将把要烧录的文件转成HEX文件,这样烧录到芯片内部的程序空位自动添00,如果你习惯BIN文件,也可以用编程器把空白区域中的FF改成00,这样一般解密器也就找不到芯片中的空位,也就无法执行以后的解密操作。
当然,要想从根本上防止单片机被解密,那是不可能的,加密技术不断发展,解密技术也不断发展,现在不管哪个单片机,只要有人肯出钱去做,基本都可以做出来,只不过代价高低和周期长短的问题,编程者还可以从法律的途径对自己的开发作出保护(比如专利)。刚好电脑上有这个文档 希望能帮到你
⑶ 用于单片机烧写的文件-----.hex文件,如何将.hex文件转换为容易解读的语言---C语言。详细步骤!
用51反汇编工具 V1.0 智能版(这个可以反汇编的)
Hex-Rays插件 v1.0.071108。。。(这个可以反C语言的,貌似是最好的了)
但是反出来的效果不太好。。
因为官方的要付费,所以没用过,不能给你提供详细步骤了,不好意思
自己去搜索下,研究下吧 呵呵
⑷ 单片机解密的方法有哪些啊
芯片破解 2017/08/18 10:26:02
单片机解密,主要有以下方法
1、漏洞破解
早年Atmel的一个Flash片子有一个bug,就是芯片擦除的时候,会先擦除保护位再擦除内容 。
于是破解法就来了,擦除的时候,准确定时,中途断电,于是保护去掉了,内容也可以读出 了。
但此类,越来越少,新芯片用此法几乎绝种了,因为没有一个客户会容忍自己的供应商竟然 如此置客户代码安全于不顾。
2、后门破解
因为FAE芯片分析,很多厂商在IC内部放入后门,通过花花肠子式的时序进入测试模式,然 后可以读出用户程序。也有的芯片内部藏有另外一个存储区,必要时候写一段代码进去,然 后用这段代码把 用户程序读取出来。
这个也越来越少,但仍有一些厂商一直保留有此类后门。但进入不是那么简单的时序,资料 管控也不是大陆的低端IC厂可比的。
3、FIB修改
很多电工有PCB割线的经验,单片机破解也一样,把芯片打开后,用离子束把保护逻辑破坏 ,而保持其他电路不变,然后用标准的烧录器读取出来。这个最麻烦的是,寻找IC内部的保 护逻辑电路。很 多二手的低端FIB设备,也从IC测试领域逐步流向单片机解密行业。
目前FIB修改,是破解的主力。想想STC破解成本高的原因,不是它保护技术高,是因为它没 有公开的读取工具。还有就是PIC的熔丝深埋技术,就是把保护逻辑放在IC的内层,也是大 幅提高破解成本。还 有烧断烧录IO也是个好法子,致芯科技对大部分STC、PIC芯片都已经 有非常成熟的解密方案。
⑸ 单片机破解的应对单片机破解的几点建议
任何一款单片机从理论上讲,攻击者均可利用足够的投资和时间使用以上方法来攻破。这是系统设计者应该始终牢记的基本原则。因此,作为电子产品的设计工程师非常有必要了解当前单片机攻击的最新技术,做到知己知彼,心中有数,才能有效防止自己花费大量金钱和时间辛辛苦苦设计出来的产品被人家一夜之间仿冒的事情发生。我们根据沪生电子的解密实践提出下面建议:
(1)在选定加密芯片前,要充分调研,了解单片机破解技术的新进展,包括哪些单片机是已经确认可以破解的。尽量不选用已可破解或同系列、同型号的芯片选择采用新工艺、新结构、上市时间较短的单片机,如可以使用ATMEGA88/ATMEGA88V,这种国内目前破解的费用一需要6K左右,另外目前相对难解密的有ST12系列,DSPPIC等;其他也可以和CPLD结合加密,这样解密费用很高,解密一般的CPLD也要1万左右。
(2)尽量不要选用MCS51系列单片机,因为该单片机在国内的普及程度最高,被研究得也最透。
(3)产品的原创者,一般具有产量大的特点,所以可选用比较生僻、偏冷门的单片机来加大仿冒者采购的难度,选用一些生僻的单片机,比如ATTINY2313,AT89C51RD2,AT89C51RC2,motorola单片机等比较难解密的芯片,目前国内会开发使用熟悉motorola单片机的人很少,所以破解的费用也相当高,从3000~3万左右。
(4)在设计成本许可的条件下,应选用具有硬件自毁功能的智能卡芯片,以有效对付物理攻击;另外程序设计的时候,加入时间到计时功能,比如使用到1年,自动停止所有功能的运行,这样会增加破解者的成本。
(5)如果条件许可,可采用两片不同型号单片机互为备份,相互验证,从而增加破解成本。
(6)打磨掉芯片型号等信息或者重新印上其它的型号,以假乱真(注意,反面有LOGO的也要抹掉,很多芯片,解密者可以从反面判断出型号,比如51,WINBOND,MDT等)。
(7)可以利用单片机未公开,未被利用的标志位或单元,作为软件标志位。
(8)利用MCS-51中A5指令加密,其实世界上所有资料,包括英文资料都没有讲这条指令,其实这是很好的加密指令,A5功能是二字节空操作指令加密方法在A5后加一个二字节或三字节操作码,因为所有反汇编软件都不会反汇编A5指令,造成正常程序反汇编乱套,执行程序无问题仿制者就不能改变你的源程序。
(9)你应在程序区写上你的大名单位开发时间及仿制必究的说法,以备获得法律保护;另外写上你的大名的时候,可以是随机的,也就是说,采用某种算法,外部不同条件下,你的名字不同,比如wwwhusooncom1011、wwwhusooncn1012等,这样比较难反汇编修改。
(10)采用高档的编程器,烧断内部的部分管脚,还可以采用自制的设备烧断金线,这个目前国内几乎不能解密,即使解密,也需要上万的费用,需要多个母片。
(11)采用保密硅胶(环氧树脂灌封胶)封住整个电路板,PCB上多一些没有用途的焊盘,在硅胶中还可以掺杂一些没有用途的元件,同时把MCU周围电路的电子元件尽量抹掉型号。
(12)对SyncMos,Winbond单片机,将把要烧录的文件转成HEX文件,这样烧录到芯片内部的程序空位自动添00,如果你习惯BIN文件,也可以用编程器把空白区域中的FF改成00,这样一般解密器也就找不到芯片中的空位,也就无法执行以后的解密操作。
当然,要想从根本上防止单片机被解密,那是不可能的,加密技术不断发展,解密技术也不断发展,现在不管哪个单片机,只要有人肯出钱去做,基本都可以做出来,只不过代价高低和周期长短的问题,编程者还可以从法律的途径对自己的开发作出保护(比如专利)。