单片机程序中利用ID号进行ID号加密
- 格式:doc
- 大小:25.50 KB
- 文档页数:1
• 18•本文从单片机系统的组成及技术特点出发,分析了单片机系统常见的加密方法及其优缺点,充分利用解密中的汇编代码可读性差的特点,提出了一种基于唯一ID 的单片机程序综合加密方法。
单片机又称为微控制单元,或单芯片微型计算机,其广泛应用于智能仪表、实时工控、通讯设备、导航系统、家用电器等各种领域。
一个单片机产品由硬件和软件组成,硬件的通用性和可见性,硬件加密一般难以实施,加密措施通常通过软件实现。
如何保护好自己的单片机技术成果和知识产权,提高解密成本,是单片机开发者在产品设计中必需考虑的要素之一。
1 常见的加密与解密分析解密的目的是为了省去耗时耗力的开发过程,轻易地做出一个功能相同或相似的产品。
解密过程的第一步是复制硬件,硬件一般由通用器件和印制电路板组成,一般没复制难度;然后读取出单片机的程序文件,基本都可以实现,而且越是使用量大的单片机,读取技术越成熟;最后破解程序中的加密措施,让程序烧录到新的单片机在复制的硬件上正常运行,完成破解。
下面先分析常见的加密方防止通用的编程调试工具读取;关闭调试接口,如stm32系列的JTAG 接口和SWD 接口,此方法可以有效防止常规的破解工具读取,增加一定的破解难度;切断物理意义上的通讯线路,这种方法保护更有效,但从此不能再对单片机写入程序,对于售后服务来说是一种风险。
如stm32系列单片机的存储器读保护级别。
1.3 使用专业的加密芯片使用加密芯片的成本更加高,对于成本敏感的单片机产品接受度很低。
1.4 使用唯一ID号一些单片机在出厂的候芯片内部给予了一个唯一的ID 。
选择一种特殊的算法,利用这个唯一的ID ,产生一组数据X ,把这个数据预先烧录到存储器里。
单片机上电初始化的时候,先读出存储器里的这个数据X ,然后读出自身的ID 号通过加密算法算出一个值Y ,然后比较XY 值是否一样,如果一样则继续工作,否则停止工作,这是最实用的一种方法。
1.5 利用外部电路参数校正对于一些非纯数字电路,电路自身存在有较大的参数偏差,利用软件校正参数偏差,使得每一块电路板的程序电路一种基于唯一ID的单片机程序综合加密方法天地(常州)自动化股份有限公司 陈 贤法及其特点。
关于stm32单片机,用id加密,明码安全问题分析
stm32 提供的id ,可以让我们进行软件加密,
这个功能挺好的,
但是我研究了一下明码加密的弱点,
贴出来,给大家研究一下,
写了一段简单的代码,如下,效验id
程序就是输出ok1,来代表id 的明码对比,
然后我们生成hex 文件,
这个hex 文件,就是我们明码加密后的烧写文件,
当这个文件烧写到指定的id 设备上,才能运行,我们测试是输出ok1; 加密过程已经ok,
下面
我们分析一下弱点,
单片机声明的常量,
编译器会进行编译,并固化到flash 区域,
基本上大多数单片机编译器都是这么做的,
所以就存在了安全问题,
我们用jlink 的软件, J-Flash ARM V4.08
读取或者加载我们的hex 文件,
我们为了便于分析,保存成1.c 文件,
用ue 打开分析,
很容易就找到了我们用于效验设备id 的对比数据:
看上面的数据,不用说了吧,
就是我们用于效验的对比数据,
所以,如果是高手, 还是要注意你的加密的算法,
明码是有其薄弱一面的,
还是谢谢大家看我的文章.
tips:感谢大家的阅读,本文由我司收集整编。
仅供参阅!。
单片机自动识别
随着科技的不断发展,单片机的应用越来越广泛。
单片机是指集成了中央处理器、存储器和输入/输出器的一种微处理器芯片,是现代电子产品中的核心部件之一。
单片机的自动识别技术指的是电子产品能够自动识别所连接的单片机型号以及其功能,并能自主进行配置和匹配。
这种自动识别技术不仅能够提高单片机的使用效率,还可以降低错误率,提高产品性能和可靠性。
单片机的自动识别技术主要包括软件自动识别和硬件自动识别两种方式。
软件自动识别是指通过软件程序实现对单片机型号和功能的识别,通常在系统启动或运行时自动执行。
硬件自动识别是指通过硬件电路实现对单片机型号和功能的识别,常用于产品设计中,可以实现自动配置和匹配。
软件自动识别技术主要包括通过读取单片机芯片内部的ID码、芯片型号等信息来识别单片机;通过对单片机进行扫描,利用CPU的ID 指令来获取单片机ID码;通过调用单片机的唯一硬件ID进行识别等方式。
这些技术实现简单,成本较低,但稳定性较差。
而硬件自动识别技术则可以通过芯片上的引脚、串行EEPROM、I2C 总线等方式实现。
它的稳定性更高,但成本相对较高。
硬件自动识别技术在存储器读写、中断控制、定时器等功能上运用广泛,大大提高了单片机的使用效率和可靠性。
在实际应用中,选择合适的自动识别技术非常重要。
需要根据产品需求、场景和成本等因素进行综合考虑。
总的来说,自动识别技术为电子产品的应用带来了更高的效率和可靠性,它的发展将推进电子产品的智能化和便捷化。
单片机全球唯一id的设计原理
单片机全球唯一ID的设计原理是基于全球唯一标识符(GUID)或UUID。
这些ID是随机生成的,具有极低的重复概率,因此可以保证全球范围内的
唯一性。
UUID是一种128位的数字标识符,通常由32个十六进制数字组成,并按
照的格式分成五部分,例如:32位的厂商ID、16位的硬件序列号、8位的版本号、4位的日期和时间信息以及12位的随机数。
通过这种方式,UUID 可以确保在全世界的唯一性。
在单片机中,全球唯一ID通常被存储在一个非易失性的存储器中,例如ROM或者EEPROM。
当单片机启动或复位时,程序会读取这个ID并验证
其有效性。
如果ID损坏或丢失,则单片机可以通过预设的备份ID进行恢复。
这种设计原理可以防止单片机被克隆或复制,从而保护产品的知识产权和安全性。
同时,全球唯一ID还可以用于跟踪和记录单片机的生产、使用和维
修情况,有助于提高产品的可追溯性和质量控制。
前辈们针对唯一ID加密算法提供了格式各样的算法,我看后也是受益匪浅,先如今也和大家分享一下我的加密算法思路,共同探讨下此法是否可行。
用唯一ID,目的是逼迫盗版者需要反汇编修改代码。
1、完全写自己的armlink ,fromelf 等类似工具〔linux 开源代码〕,加入自己的一些东西,让生成的bin和公共的不一样,这样破解者如果用通用的armlink fromelf所产生的代码必然和自己的工具产生不一样,这个时候,破解者必须破解你加入的一些东西,不然程序完全不能运行。
armlink 可以产生很多自己定义的段,然后对各种段offset。
同时程序配合offset。
2、修改fromelf类似的工具,在把elf文件转化bin文件过程中,任何程序的路口地址都需要动态的偏移,这样,如果用常规fromelf转换,一定出错。
这也加大破解难度。
举个例子,比如我有A ,B两个程序,但是我B程序link后,在elf的时候B程序整体地址偏移0x04,而A函数调用B函数是通过偏移0x4调用的。
但是破解者,如果反汇编编译,那么B函数肯定不会编译0x4,那么A调用B是offset 0x4的,所以程序崩溃。
系统中,有多种偏移,那么破解者头就大了,必须断点调试什么的改,这样的破解,相信代价太高了。
以上思路的原则就是,结合编程c代码,link 和elf转换工具,把bin按照自己的思路组合,如果破解者反汇编,必须要匹配的link和elf工具,不然编译出来的代码不能运行。
如果非要破解,代价高的很。
以上就是我的观点,不知道是否可行,欢迎各位探讨。
很多人纠结ID的算法,这里我没有将,因为我的理解是,只要有唯一ID,然后做一个简单加密,论坛中也有很多高手说明了各种方法。
这里不再赘述!补充:很多前辈都已经讲了很多种基于唯一ID的加密方法。
而我的思路是在他们的方法基础上,让盗版者在反汇编这条路让更难走。
而我文章开头讲了,唯一ID的作用就是让盗版者走反汇编这条路。
单片机概述:单片机是微单片微型计算机的简称,微型计算机的一种。
它把中央处理器(CPU),随机存储器(RAM),只读存储器(ROM),定时器\计数器以及I\O接口,串并通信等接口电路的功能集成与一块电路芯片的微型计算机。
字长:在计算机中有一组二进制编码表示一个信息,这组编码称为计算机的字,组成字的位数称为“字长",字长标志着精度,MCS—51是8位的微型计算机。
89c51 是8位(字长)单片机(51系列为8位)单片机硬件系统仍然依照体系结构:包括CPU(进行运算、控制)、RAM(数据存储器)、ROM(程序存储器)、输入设备和输出设备、内部总线等。
由于一块尺寸有限的电路芯片实现多种功能,所以制作上要求单片机的高性能,结构简单,工作可靠稳定.单片机软件系统包括监控程序,中断、控制、初始化等用户程序。
一般编程语言有汇编语言和C语言,都是通过编译以后得到机器语言(二进制代码)。
1.1单片机的半导体工艺一种是HMOS工艺,高密度短沟道MOS工艺具有高速度、高密度的特点;另一种是CHMOS工艺,互补金属氧化物的HMOS工艺,它兼有HMOS工艺的特点还具有CMOS的低功耗的特点.例如:8051的功耗是630mW,80C51的功耗只有110mW左右。
1。
2开发步5骤:1.设计单片机系统的电路2。
利用软件开发工具(如:Keil c51)编辑程序,通过编译得到。
hex的机器语言。
3.利用单片机仿真系统(例如:Protus)对单片机最小系统以及设计的外围电路,进行模拟的硬软件联合调试。
4。
借助单片机开发工具软件(如:STC_ISP下载软件)读写设备将仿真中调试好的.hex程序拷到单片机的程序存储器里面.5.根据设计实物搭建单片机系统.2。
1MCS-51单片机的组成:(有两个定时器)CPU(进行运算、控制)、RAM(数据存储器)、ROM(程序存储器)、I/O口(串口、并口)、内部总线和中断系统等.工作过程框图如下:运算器组成:8位算术逻辑运算单元ALU(Arithmetic Logic Unit)、8位累加器A(Accumulator)、8位寄存器B、程序状态字寄存器PSW(Program Status Word)、8位暂存寄存器TMP1和TMP2等。
AVR/S51单片机并口ISP下载线AVR和ATMEL的AT89S系列单片机可以使用ISP下载线在线编程擦写,即不必将IC芯片拆下,直接在电路板上进行程序修改、下载等操作。
这样对程序的调试和升级都很方便。
ISP下载线的线路很简单,适合自己动手制作。
本站为了给广大AVR/S51单片机业余爱好者提供一条通用的ISP下载线,在一般的开发过程中可以一线打天下,特制作了支持所有AVR系列和AT89S系列(包含AT89S51/52)的并口下载线。
并口下载线内部使用了HC244芯片对信号进行隔离,带5.1V过压保护,具有二极管电压隔离,可防止误插到JTAG座时的目标板电源保护。
本站做的ISP下载线,其接口与双龙AVR所有开发板兼容的排列。
具体管脚排列如下:本并口ISP下载线具有如下特点:1、支持所有双龙SL系列AVR/AT89S单片机开发实验器,管脚与双龙所有AVR开发板兼容。
2、支持的器件为ATMEL 公司的AT89S 系列(包含AT89S51/52)和AVR系列。
3、支持的烧录文件格式:INTEL格式的HEX文件、EEP文件,二进制BIN文件。
4、支持缓冲区数据修改和保存,缓冲区中的数据可以保存为二进制BIN文件,INTEL格式的HEX或EEP文件。
5、本软件的OS平台可以是WIN98ME、WIN2K、WINXP。
操作使用说明:1、本程序除了有编程所需的各项功能外,还具备芯片ID 码校验、序列号产生、内部RC振荡校准、熔丝配置等功能。
2、当使用序列号产生、内部RC 振荡校准、熔丝配置等功能时,会自动弹出对话窗口,供用户选择。
3、序列号产生、内部RC振荡校准常数的保存地址默认为FLASH存贮器的尾部,用户可以自己修改存放地址及序列号的长度;对有EEPROM 存贮器的芯片,还可以选择保存的EEPORM存贮器中。
4、在熔丝配置窗口,可以直接对熔丝进行编程和读取,但要注意您的选择可能破坏ISP 编程所需的时钟条件。
简答题部分1、51单片机内部集成的功能部件?MCS-51单片机在片内集成了中央处理器(CPU)、程序存储器(ROM)、数据存储器(RAM)、定时器/计数器、并行I/O接口、串行I/O接口和中断系统等几大单元。
CPU是整个单片机的核心部件,由运算器和控制器组成。
运算器可以完成算术运算和逻辑运算,其操作顺序在控制器控制下进行。
控制器是由程序计数器PC (Program Counter)、指令寄存器IR(Instruction Register)、指令译码器ID(Instruction Decoder)、定时控制逻辑和振荡器OSC等电路组成。
CPU根据PC中的地址将欲执行指令的指令码从存储器中取出,存放在IR中,ID对IR中的指令码进行译码,定时控制逻辑在OSC配合下对ID译码后的信号进行分时,以产生执行本条指令所需的全部信号。
程序存储器(ROM)用于存储程序、常数、表格等。
数据存储器(RAM)用于存储数据。
8051内部有两个16位可编程序的定时器/计数器T0和T1,均为二进制加1计数器。
可用于定时和对外部输入脉冲的计数。
8051的中断系统主要由中断允许控制器IE和中断优先级控制器IP等电路组成。
可实现对5个中断源的管理。
8051的中断系统主要由中断允许控制器IE和中断优先级控制器IP等电路组成。
其中,IE用于控制5个中断源中哪些中断请求被允许向CPU提出,哪些中断源的中断请求被禁止;IP用于控制5个中断源的中断请求的优先权级别。
I/O接口是MCS-51单片机对外部实现控制和信息交换的必经之路,用于信息传送过程中的速度匹配和增加它的负载能力。
可分为串行和并行I/O接口。
2、51的程序存储器、外部存储器、内部存储器各自的容量与地址范围?(小抄补充)1、片内外统一编址的64K的程序存储器地址空间(MOVC)2、256B的片内数据存储器的地址空间(MOV)3、以及64K片外数据存储器的地址空间(MOVX)在访问三个不同的逻辑空间时,应采用不同形式的指令以产生不同的存储器空间的选通信号。
科学技术创新2021.13基于单片机的IC 卡门禁系统设计冯美艳殷鹏(安阳学院航空工程学院,河南安阳455000)1概述传统门锁在钥匙丢失或忘记携带时,只能从窗户进入或者采取破坏门锁的办法开锁。
传统门锁在配置时需要找专业人士,比较麻烦而且不能保证所配钥匙的准确性。
在出租房屋业务中,由于经常换租客,传统门锁因为可以随意复制,安全系数低。
针对这些问题提出了一种基于单片机的IC 卡门禁系统[2]。
IC 卡门禁系统可以通过刷卡和输入密码两种方式开锁也可以随意更改密码,可以有效解决以上问题。
2IC 卡门禁系统设计方案IC 卡门禁系统设计方案如图1系统设计方案图所示。
图1系统设计方案图该系统由单片机核心模块、RFID 读卡模块、LCD 显示模块、电源模块、报警模块、电子门锁模块和存储模块七部分组成[3]。
系统的工作模式有设置模式和正常模式两种。
系统上电后,按键模块若有设置按键按下,则系统进入设置模式。
设置模式又分为更新密码和注册IC 卡两种模式。
设置模式完成以后,将信息存入存储模块[4]。
系统上电后,若按键模块设置按键没有按下,则系统进入正常模式。
若有IC 卡靠近,RFID 读卡模块读取IC 卡中的ID 并且通过串口发送至STC89C52单片机模块。
STC89C52单片机模块接受IC 卡中的ID 并且与FLASH 中存储的ID 进行比对,比对成功则开锁并提示门已打开,开锁指示灯亮,反之则不开锁并示警。
若有按键按下密码,则按键模块通过串口将密码发送到单片机模块,单片机模块接受到密码信息并且与FLASH 中存储的密码进行比对,比对成功则开锁并提示开锁成功,开锁指示灯亮,反之则不开锁并示警[5]。
3IC 卡门禁系统软件设计IC 卡门禁系统主要由KEIL 软件设计。
系统分为设置模式和正常模式两种。
程序启动,单片机扫描设置按键是否按下,若按下则进入设置模式,确定是注册IC 卡信息还是更换密码。
并在注册IC 卡信息或更换密码后将新的IC 卡信息或密码保存在FLASH 。
《单片机原理与应用》习题答案习题一1.简述计算机控制系统的基本组成。
计算机的硬件系统由运算器、控制存储器、输入设备和输出设备共五个部分组成。
运算器由算术逻辑单元(ALU)、累加器、数据缓冲寄存器和状态寄存器组成。
运算器在控制器的控制下,完成对取自内部存储器或内部寄存器的数据进行算术或逻辑运算,并产生相应的标志存放到状态寄存器中。
控制器控制着单片机完成各种操作。
主要完成取指令、将指令翻译成计算机的各种微操作并执行指令,同时控制计算机各部件有条不紊地工作等。
控制器和运算器合在一起称为中央处理器,即CPU(Central Processing Unit)。
他是计算机的核心部件。
存储器为计算机的记忆部件,用于存放计算机的程序和数据,一般可分为只读存储器(ROM)和随机存储器(RAM)。
输入设备用于用户向计算机输入原始的数据和程序,并将其转换为计算机能够识别的二进制代码存入计算机中。
常用的输入设备有键盘、鼠标、光电笔、扫描仪等。
输出设备用于将计算机处理的结果转换成人或其它设备能够识别和接收的形式,如字符、文字、图形等。
常用的输出设备有打印机、显示器、绘图仪等。
我们把输入设备和输出设备合在一起称为计算机的输入/输出设备或外部设备。
2.什么叫单片机?简述单片机的特点、应用场合与发展前景。
所谓的单片机就是将计算机的CPU、存储器、I/O接口电路、定时器/计数器、中断部件等计算机的功能部件集成在一块芯片上,形成单芯片的,具备独特功能的微型计算机。
单片机的特点: 1.抗干扰能力强,工作温度范围宽。
2.高的可靠性。
3.控制功能强,数值计算能力相对较差。
4.指令系统比通用微机的指令系统简单,并具有许多面向控制的指令. 5.具有很高的性价比。
单片机的应用领域: 1.工业控制领域单片机广泛应用于工业过程控制与监测、机电一体化系统、工业机器人等领域。
2.家用电器领域3.办公自动化领域4.商业营销领域5.智能仪器仪表领域6.其它领域在汽车与航空航天器电子系统中.单片机的发展前景:8位单片机仍是单片机的主流机型从单片机发展的趋势来说,主要向着大容量高性能、小容量低价格、外围电路内装化方向发展。
1.闪烁灯1.实验任务如图4.1.1所示:在端口上接一个发光二极管L1,使L1在不停地一亮一灭,一亮一灭的时间间隔为秒。
2.电路原理图图4.1.13.系统板上硬件连线把“单片机系统”区域中的端口用导线连接到“八路发光二极管指示模块”区域中的L1端口上。
4.程序设计内容(1).延时程序的设计方法作为单片机的指令的执行的时间是很短,数量大微秒级,因此,我们要求的闪烁时间间隔为秒,相对于微秒来说,相差太大,所以我们在执行某一指令时,插入延时程序,来达到我们的要求,但这样的延时程序是如何设计呢下面具体介绍其原理:如图4.1.1所示的石英晶体为12MHz,因此,1个机器周期为1微秒机器周期微秒MOV R6,#20 2个 2D1: MOV R7,#248 2个 2 2+2×248=498 20× DJNZ R7,$ 2个2×248 (498DJNZ R6,D1 2个2×20=4010002因此,上面的延时程序时间为。
由以上可知,当R6=10、R7=248时,延时5ms,R6=20、R7=248时,延时10ms,以此为基本的计时单位。
如本实验要求秒=200ms,10ms×R5=200ms,则R5=20,延时子程序如下:DELAY: MOV R5,#20D1: MOV R6,#20D2: MOV R7,#248DJNZ R7,$DJNZ R6,D2DJNZ R5,D1RET(2).输出控制如图1所示,当端口输出高电平,即=1时,根据发光二极管的单向导电性可知,这时发光二极管L1熄灭;当端口输出低电平,即=0时,发光二极管L1亮;我们可以使用SETB 指令使端口输出高电平,使用CLR 指令使端口输出低电平。
5.程序框图如图4.1.2所示图4.1.26.汇编源程序ORG 0START: CLRLCALL DELAYSETBLCALL DELAYLJMP STARTDELAY: MOV R5,#20 ;延时子程序,延时秒D1: MOV R6,#20D2: MOV R7,#248DJNZ R7,$DJNZ R6,D2DJNZ R5,D1RETEND7. C语言源程序#include <>sbit L1=P1^0;void delay02s(void)4.2.14.2.14.2.24.3.14.3.14.3.20F0F4.4.14.4.14.4.24.5.1 4.5.20F0F0F0F7f7f7f7f4.6.14.6.2实验任务如图13所示,利用AT89S51单片机的P0端口的-连接到一个共阴数码管的a-h的笔段上,数码管的公共端接地。
单片机原理与应用一、引言单片机作为一种高度集成的微型计算机系统,具有体积小、成本低、功能强、可靠性高等优点,广泛应用于工业自动化、智能仪器、消费电子、家用电器等领域。
本文将详细介绍单片机的原理及其在各行各业中的应用。
二、单片机原理1.单片机概述单片机(MicrocontrollerUnit,MCU)是一种将微处理器、存储器、定时器/计数器、输入/输出接口等集成在一块芯片上的微型计算机系统。
它具有处理能力强、体积小、功耗低、成本低等特点,便于应用于各种嵌入式系统。
2.单片机结构单片机主要由中央处理器(CPU)、存储器(包括程序存储器和数据存储器)、输入/输出接口(I/O口)、定时器/计数器、中断系统等组成。
其中,CPU负责执行程序和数据处理,存储器用于存储程序和数据,I/O口负责与外部设备通信,定时器/计数器用于实现定时和计数功能,中断系统用于处理各种中断请求。
3.单片机工作原理单片机的工作原理可以分为取指令、译码、执行、存储等阶段。
在取指令阶段,CPU从程序存储器中读取指令;在译码阶段,CPU对指令进行解码,确定操作类型和操作数;在执行阶段,CPU根据指令执行相应的操作;在存储阶段,CPU将执行结果存储到数据存储器中。
三、单片机应用1.工业控制单片机在工业控制领域具有广泛的应用,如PLC(可编程逻辑控制器)、温度控制器、电机控制器等。
通过编程,单片机可以实现复杂的逻辑控制和运算功能,提高生产效率和产品质量。
2.智能仪器单片机在智能仪器领域中的应用包括数字电压表、数字频率计、示波器等。
利用单片机的处理能力和I/O口功能,可以实现对各种信号的采集、处理、显示和控制。
3.消费电子单片机在消费电子领域中的应用包括方式、电视、洗衣机、空调等。
通过编程,单片机可以实现各种功能,如用户界面控制、信号处理、通信等。
4.家用电器单片机在家用电器领域中的应用包括微波炉、电饭煲、豆浆机等。
利用单片机的控制功能,可以实现温度控制、定时控制、故障检测等功能。
单片机原理及接口技术课后答案李朝青第三版第一题 8051单片机包含哪些主要逻辑功能部件?1.CPU2.ROM3.RAM4.Timer/Counter5.UART(串口)(通用异步串行接收机发送机)6.4个8bits Port(并口)7.Int0,int1(外部中断)第二题8051的/EA端有什么用处?1.EA端Enable Address(外部程序存储器地址允许输入端)2.低电平有效3.EA=0(低电平有效)时,只允许访问外部存储器4.EA=1时,可以访问部和外部存储器5.EA还有复用功能,Vpp(Pulse of Programming)(编程脉冲)(固化编程电压输入端)第三题8051的存储器分为那几个空间?怎样区别不同空间的寻址?1.ROM(片ROM和片外ROM统一编址)(使用MOVC)(数据传送指令)(16bits地址)(64KB)2.片外RAM(MOVX)(16bits地址)(64KB)3.片RAM(MOV)(8bits地址)(256B)什么是普林斯顿结构?哈佛结构?1.普林斯顿结构,ROM和RAM统一编址2.哈佛结构,ROM和RAM分开编址第四章8051片RAM的空间是怎样分配的?1.片RAM有256B2.低128B是真正的RAM区3.高128B是SFR(特殊功能寄存器)区真正的RAM区可以分成那几个部分?1.4个工作寄存器区(R0~R7)2.位寻址区3.真正的RAM区第五题简述布尔处理存储器的空间分配,片RAM中包含哪些可位寻址单元?1.片RAM区从00H~FFH(256B)2.其中20H~2FH(字节地址)是位寻址区3.对应的位地址是00H~7FH第六题如何简洁地判断8051正在工作?1.用示波器观察8051的XTAL2端是否有脉冲信号输出(判断震荡电路工作是否正常?)2.ALE(地址锁存允许)(Address Latch Enable)输出是fosc 的6分频3.用示波器观察ALE是否有脉冲输出(判断 8051芯片的好坏?)4.观察PSEN(判断8051能够到EPROM 或ROM中读取指令码?)5.因为/PSEN接外部EPROM(ROM)的/OE端子6.OE=Output Enable(输出允许)第七题 8051如何确定和改变当前工作寄存器组?1.PSW(程序状态字)(Program Status Word)中的RS1和RS02.可以给出4中组合3.用来从4组工作寄存器组中进行选择4.PSW属于SFR(Special Function Register)(特殊功能寄存器)第十题8051的/EA信号有什么功能?在使用8031的时候,EA 信号引脚应该如何处理?1.EA=Enable Address(外部程序存储器地址允许输入端)2.EA=0(低电平有效)只允许访问外部存储器3.EA=1外ROM都可以访问4.因为8031没有片ROM5.只能访问片外的EPROM6.应该使EA=0(有效)第十二题部RAM第128B单元划分成那几个主要部分?各部分主要功能是什么?1.当前工作寄存器组(4组)(00H~1FH)2.位寻址区(20H~2FH)3.真正的RAM区(30H~7FH)第十三题使单片机复位有哪几种方法?复位后机器的初始状态如何?1.上电复位2.上电复位+手动复位3.脉冲复位4.复位会重置一些寄存器第十四题开机复位后,CPU使用的是哪组工作寄存器?它们的地址什么什么?1.8051有4个工作寄存器组2.分别从R0~R73.分别位于 00H~07H,08H~0FH,10H~17H,18H~1FH4.开机复位后,默认使用寄存器组0第十五题 PSW的作用是什么?作用是什么?1.PSW是一个SFR(特殊功能寄存器)2.位于片RAM的高128B3.具体地址D0H(00H~FFH)(片RAM的编址)(8bits编址方法)4.PSW=Program Status Word(程序状态字)PSW的常用标志位有哪些?1.CY=Carry(进位标志位)2.AC=Auxiliary Carry(辅助进位标志位)(半进位标志位)3.F0用户标志位4.RS1,RS0,用来选择当前工作寄存器组(R0~R7)(4选1)5.OV=Overflow(溢出标志位)6.P=Parity(奇偶校验位)第十五题位地址7CH和字节地址7CH如何区别?位地址7CH在片RAM中什么地方?1.片RAM的地址从00H~FFH2.其中20H~2FH(字节地址)是位寻址区(bits)3.位地址从00H~7FH4.位地址7CH位于字节地址2FH5.可以从寻址方式来区分6.位地址使用位寻址方式7.字节地址使用直接寻址,间接寻址第十七题 8051的时钟周期,震荡周期有什么关系?1.震荡周期2.时钟周期=状态周期(state)3.时钟周期=2*振荡周期4.机器周期=6*时钟周期=12*震荡周期5.指令周期=1~4个机器周期第十八题一个机器周期的时序如何划分?1.一个机器周期=12个震荡周期=6个时钟周期(状态周期)2.S1P1,S1P2,S2P1,S2P2,S3P1,S3P2,S4P1,S4P2,S5P1,S5P2,S6P1,S6P23.其中s=state(状态),p=phase(相位)第十九题什么叫做堆栈?SP是什么?它的作用是什么?8051堆栈的容量不能超过多少个字节?1.Stack(堆栈)2.具有FILO,LIFO的特性3.SP=Stack Pointer(堆栈指针)4.SP是栈顶指示器评论这1.微处理器,RAM,ROM,以及I/O口,定时器,构成的微型计算机称为单片机。
单片机程序中使用ID加密
在单片机程序设计中,使用ID加密是目前比较流行的手段,其中最有代表的就是STC单片机,只要能见到STC的广告就可以看到他们关于加密的宣传,从STC开始销售单片机就宣传他们的产品无法解密,但是往往是最好解密的单片机,比如STC89系列单片机解密,是51单片机里最容易解密的,可以直接用软件读出程序,STC在其它技术上没有看到多大的宣传,但是在无法解密上是随处宣传,可见下了一饭工夫。
例如目前在其网站上宣传的:采用宏晶第6代加密技术,有全球唯一ID号无法解密,性能更好,大批量稳定生产STC10xx系列/STC11xx系列STC12C5Axx/STC12C52xxSTC12C56xx系列请优先选择使用,管脚直接兼容传统8 9C/S系列,解决了全球传统89系列单片机全部都已被轻易解密的问题,老产品继续生产。
这只是商家的一种销售手段,其实目前STC所有单片机都可以解密,虽然宏晶公司下了一翻苦心,连编程器都没有读芯片的功能,但是作为解密工程师自己开发了解密工具,可以读STC的单片机程序。
例如在ST C单片机写入以下代码就可以实现了ID加密:unsigned char idata *p;
unsigned char i;
unsigned char idata id[7];
i = 0;
for(p=0xf1; p<=0xf7; p++) id[i++] = *p;
有的单片机不具有STC宣传的那样的全球唯一的ID号,是不是就不能采用ID加密了呢?答案是否定的。
比如很多设计者采用了DLASS的DS18B20,这个18B20虽然是个温度传感器,但是具有唯一ID,如果把DS 18B20和单片机连接,让单片机去验证DS18B20的ID,这样也可以实现唯一ID加密,即使把单片机解密了,拷贝后直接无法使用。
使用了ID加密可以提高解密的难度,但是不是无法解密,很多公司的的宣传只是一种夸张,什么世界第一、无法解密。