文章详情

单片机基本常识9

ACALL addr 11 *1 addr(a7~a0) 绝对子程序调用
  LCALL addr 16 12 addr(15~8) 长子程序调用
  addr(7~0)
  RET 22子程序调用返回
  RETI addr 11 32 中断调用返回
  AJMP addr 11 △1 addr(a7~a6) 绝对转移
  LJMP addr 16 02addr(15~8) 长转移
  addr(7~0)
  SJMP rel 80 rel 短转移,相对转移
  JMP @A+DPTR 73 相对于DPTR间接转移
  JZ rel 60 rel A为零转移
  JNZ rel 70 rel A为零转移
  CJNE A,direct,rel B5 direct rel 直接字节与A比较,不等则转移
  CJNE A,#data,rel B4 data rel立即数与A比较,不等则转移
  CJNE A,Rn,#data,rel B8~BF data rel立即数与寄存器比较,不等则转移
  CJNE @Ri,#data,rel B6~B7 data rel立即数与间接RAM比较,不等则转移
  DJNZ Rn,rel D8~DF rel 寄存器减1,不为零则转移
  DJNZ direct,rel B5 direct rel 直接字节减1,不为零则转移
  NOP 00 空操作
  布尔变量操作
  CLR C C3 清零进位
  CLR bit C2 清零直接位
  SETB C D3 置位进位
  SETB bit D2 置位直接位
  CPL C B3 进位取反
  CPL bit B2 直接位取反
  ANL C,bit 82 dit 直接数“与”到进位
  ANL C,/bit B0 直接位的反“与”到进位
  ORL C,bit 72 bit 直接位“或”到进位
  ORL C,/bit A0 bit 直接位的反“或”到进位
  MOV C,bit A2 bit 直接位送进位
  MOV bit,C 92 bit 进位送直接位
  JC rel 40 rel 进位位为1转移
  JNC rel 50 rel 进位位为0转移
  JB bit,rel 20 bit rel 直接位为1相对转移
  JNB bit,rel 30 bit rel 直接位为0相对转移
  JBC bit,rel 10 bit rel 直接位为1相对转移,然后清零该位
  单片机芯片
  STC单片机
  STC公司的单片机主要是基于8051内核,是新一代增强型单片机,指令代码完全兼容传统8051,速度快8~12倍,带ADC,4路PWM,双串口,有全球唯一ID号,加密性好,抗干扰强.
  PIC单片机:
  是MICROCHIP公司的产品,其突出的特点是体积小,功耗低,精简指令集,抗干扰性好,可靠性高,有较强的模拟接口,代码保密性好,大部分芯片有其兼容的FLASH程序存储器的芯片.
  EMC单片机:
  是台湾义隆公司的产品,有很大一部分与PIC 8位单片机兼容,且相兼容产品的资源相对比PIC的多,价格便宜,有很多系列可选,但抗干扰较差.
  ATMEL单片机(51单片机):
  ATMEl公司的8位单片机有AT89、AT90两个系列,AT89系列是8位Flash单片机,与8051系列单片机相兼容,静态时钟模式;AT90系列单片机是增强RISC结构、全静态工作方式、内载在线可编程Flash的单片机,也叫AVR单片机.
  PHLIPIS 51LPC系列单片机(51单片机):
  PHILIPS公司的单片机是基于80C51内核的单片机,嵌入了掉电检测、模拟以及片内RC振荡器等功能,这使51LPC在高集成度、低成本、低功耗的应用设计中可以满足多方面的性能要求.
  HOLTEK单片机:
  台湾盛扬半导体的单片机,价格便宜,种类较多,但抗干扰较差,适用于消费类产品.
  TI公司单片机(51单片机):
  德州仪器提供了TMS370和MSP430两大系列通用单片机.TMS370系列单片机是8位CMOS单片机,具有多种存储模式、多种外围接口模式,适用于复杂的实时控制场合;MSP430系列单片机是一种超低功耗、功能集成度较高的16位低功耗单片机,特别适用于要求功耗低的场合
  松翰单片机(SONIX):
  是台湾松翰公司的单片,大多为8位机,有一部分与PIC 8位单片机兼容,价格便宜,系统时钟分频可选项较多,有PMW ADC 内振 内部杂讯滤波。缺点RAM空间过小,抗干扰较好。
  飞思卡尔单片机
  飞思卡尔 8 位单片机系列主要包括 RS08 类、HCS08 类、HC08 类、HC08 汽车类、 HCS08 汽车类。
  英飞凌单片机
  英飞凌单片机的XC82x和XC83x单片机系列经过专门设计,可进一步在各种工业领域内降低系统成本,提高能效。
  深联华单片机(51单片机)
  深联华公司的单片机主要是基于8051内核,是新一代安全防逆向型单片机,指令代码完全兼容传统8051,速度快8~12倍,带有62 K FLASH ROM,内置256字节RAM和集成外置1024字节RAM,白噪声密码-没有规律可循,每颗芯片都有自己的密码,同样的密码不可重用。
  三星单片机
  三星单片机有KS51和KS57系列4位单片机,KS86和KS88系列8位单片机,KS17系列16位单片机和KS32系列32位单片机,三星还为ARM公司生产ARM单片机,常见的S344b0等.三星单片机为OTP型ISP在片编程功能.
  SST 单片机
  美国SST公司推出的SST89系列单片机为标准的51系列单片机,包括SST89E/V52RD2, SST89E/V54RD2,SST89E/V58RD2,SST89E/V554RC,SST89E/V564RD等.它与8052系列单片机兼容.提供系统在线编程(ISP功能).内部flash擦写次数1万次以上,程序保存时间可达100年.
  还有很多优秀的单片机生产企业这里没有收集,每个企业都有自己的特点,大家根据需要选择单片机,在完全实现功能的前提下追求低价位,当然并不是这样最好,实际中选择单片机跟开发者的应用习惯和开发经验是密不可分的.
  攻击技术
  攻击单片机主要有四种技术,分别是: (1)软件攻击
  该技术通常使用处理器通信接口并利用协议、加密算法或这些算法中的安全漏洞来进行攻击。软件攻击取得成功的一个典型事例是对早期ATMEL AT89C 系列单片机的攻击。攻击者利用了该系列单片机擦除操作时序设计上的漏洞,使用自编程序在擦除加密锁定位后,停止下一步擦除片内程序存储器数据的操作,从而使加过密的单片机变成没加密的单片机,然后利用编程器读出片内程序。
  (2) 电子探测攻击
  该技术通常以高时间分辨率来监控处理器在正常操作时所有电源和接口连接的模拟特性,并通过监控它的电磁辐射特性来实施攻击。因为单片机是一个活动的电子器件,当它执行不同的指令时,对应的电源功率消耗也相应变化。这样通过使用特殊的电子测量仪器和数学统计方法分析和检测这些变化,即可获取单片机中的特定关键信息。
  (3)过错产生技术
  该技术使用异常工作条件来使处理器出错,然后提供额外的访问来进行攻击。使用最广泛的过错产生攻击手段包括电压冲击和时钟冲击。低电压和高电压攻击可用来禁止保护电路工作或强制处理器执行错误操作。时钟瞬态跳变也许会复位保护电路而不会破坏受保护信息。电源和时钟瞬态跳变可以在某些处理器中影响单条指令的解码和执行。
  (4)探针技术
  该技术是直接暴露芯片内部连线,然后观察、操控、干扰单片机以达到攻击目的。为了方便起见,人们将以上四种攻击技术分成两类,一类是侵入型攻击(物理攻击),这类攻击需要破坏封装,然后借助半导体测试设备、显微镜和微定位器,在专门的实验室花上几小时甚至几周时间才能完成。所有的微探针技术都属于侵入型攻击。另外三种方法属于非侵入型攻击,被攻击的单片机不会被物理损坏。在某些场合非侵入型攻击是特别危险的,但是因为非侵入型攻击所需设备通常可以自制和升级,因此非常廉价。
  大部分非侵入型攻击需要攻击者具备良好的处理器知识和软件知识。与之相反,侵入型的探针攻击则不需要太多的初始知识,而且通常可用一整套相似的技术对付宽范围的产品。
  加密方法
  科研成果保护是每一个科研人员最关心的事情,加密方法有软件加密,硬件加密,软硬件综合加密,时间加密,错误引导加密,专利保护等措施有矛就有盾,有盾就有矛,有矛有盾,才促进矛盾质量水平的提高。加密只讲盾,现先讲一个软件加密:利用MCS-51 中A5 指令加密,其实世界上所有资料,包括英文资料都没有讲这条指令,其实这是很好的加密指令。A5 功能是二字节空操作指令。加密方法:在A5 后加一个二字节或三字节操作码,因为所有反汇编软件都不会反汇编A5 指令,造成正常程序反汇编乱套,执行程序无问题仿制者就不能改变你的源程序。
  硬件加密:8031/8052单片机就是8031/8052掩模产品中的不合格产品,内部有ROM,可以把8031/8052 当8751/8752 来用,再扩展外部程序器,然后调用8031 内部子程序。当然你所选的同批8031芯片的首地址及所需用的中断入口均应转到外部程序区。
  硬件加密
  用高电压或激光烧断某条引脚,使其读不到内部程序,用高电压会造成一些器件损坏重要RAM 数据采用电池(大电容,街机采用的办法)保护,拔出芯片数据失去机器不能起动,或能初始化,但不能运行。
  用真假方法加密
  擦除芯片标识

  把8X52单片机,标成8X51 单片机,并用到后128B的RAM 等方法,把AT90S8252 当AT89C52,初始化后程序段中并用到EEPROM 内容,你再去联想吧!
  用激光(或丝印)打上其它标识如有的单片机引脚兼容,有的又不是同一种单片机,可张冠李戴,只能意会了,这要求你知识面广一点 。
  用最新出厂编号的单片机,如2000 年后的AT89C 就难解密,或新的单片机品种,如AVR 单片机。
  DIP封装改成PLCC,TQFP,SOIC,BGA等封装,如果量大可以做定制ASIC,或软封装,用不需外晶振的单片机工作(如AVR 单片机中的AT90S1200),使用更复杂的单片机,FPGA+AVR+SRAM=AT40K系列。
  硬件加密与软件加密只是为叙说方便而分开来讲,其实它们是分不开的,互相支撑,互相依存的软件加密:其目的是不让人读懂你的程序,不能修改程序,你可以………….....
  利用单片机未公开,未被利用的标志位或单元,作为软件标志位,如8031/8051有一个用户标志位,PSW.1 位,是可以利用的程序入口地址不要用整地址,如:XX00H,XXX0H,可用整地址-1,或-2,而在整地址处加二字节或三字节操作码,在无程序的空单元也加上程序机器码,最好要加巧妙一点用大容量芯片,用市场上仿真器不能仿真的芯片,如内部程序为64KB 或大于64KB 的器件,如:AVR 单片机中ATmega103 的Flash 程序存储器为128KBAT89S8252/AT89S53中有EEPROM,关键数据存放在EEPROM 中,或程序初始化时把密码写到EEPROM 中,程序执行时再查密码正确与否,尽量不让人家读懂程序。关于单片机加密,讲到这里,就算抛砖引玉。
  单片机故障的排除
  1单片机正常工作的三个条件
  单片机工作的三个条件分别是电源、时钟晶振、复位。当单片机不能正常工作时,我们首先就要检查这三个条件,用电压表或者万用表检测他的电源和接地脚,检测两个引脚之间的电压是不是5V左右;对于时钟晶体振荡有没有正常工作,我们最好用示波器进行检测,看能否检测到相应频率的正弦波脉冲;复位检测比较简单,单片机的复位电平一般是高电平复位,单片机在接通电源的时候一般复位引脚上会出现5V左右的高电平,另外在按下复位按键时,复位引脚上也会出现高电平,用一般的电压表或者万用表都可以进行检测。 2单片机内部是否正常工作的检测
  单片机内部有没有正常工作,我们主要是通过写入程序的方式来进行检测和排查。这个检测需要有“烧入”代码的硬件和软件才行,检测的原理就是通过“烧入”代码的硬件和软件,将一段带有检测功能的正常代码“烧入”到单片机。检查两个方面:第一就是能不能将目标代码正常写入单片机,不能正常写入单片机时,说明单片机已经损坏,需要更换同型号的单片机;第二就是目标代码可以正常写入单片机,写入后的效果是不是就是程序设定的功能,如果是说明单片机正常。
  单片机在更换时,我们最好采用同型号的单片机,然后写入公司给予的目标代码,单片机的价格目前一般比较便宜,零售价格大概也就5元左右。